/*
* Copyright (C) 2008-2012 OMRON SOFTWARE Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jp.co.omronsoft.openwnn;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.util.AttributeSet;
import android.view.Window;
import android.view.WindowManager;
import android.widget.LinearLayout;
/**
* The view of the base input.
*/
public class BaseInputView extends LinearLayout {
/** The dialog that opens with long tap */
public AlertDialog mOptionsDialog = null;
/**
* Constructor
*/
public BaseInputView(Context context, AttributeSet attrs) {
super(context, attrs);
}
/**
* Constructor
*/
BaseInputView(Context context) {
super(context);
}
/**
* Called when the window containing has change its visibility.
*
* @see android.view.View#onWindowVisibilityChanged(int)
*/
@Override protected void onWindowVisibilityChanged(int visibility) {
super.onWindowVisibilityChanged(visibility);
if ((visibility != VISIBLE) && (mOptionsDialog != null)) {
mOptionsDialog.dismiss();
}
}
/**
* Show dialog.
*
* @param builder the builder of dialog
*/
public void showDialog(AlertDialog.Builder builder) {
if (mOptionsDialog != null) {
mOptionsDialog.dismiss();
}
mOptionsDialog = builder.create();
Window window = mOptionsDialog.getWindow();
WindowManager.LayoutParams dialogLayoutParams = window.getAttributes();
dialogLayoutParams.token = getWindowToken();
dialogLayoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_ATTACHED_DIALOG;
window.setAttributes(dialogLayoutParams);
window.addFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
mOptionsDialog.show();
}
/**
* Close dialog.
*/
public void closeDialog() {
if (mOptionsDialog != null) {
mOptionsDialog.dismiss();
mOptionsDialog = null;
}
}
}