am 2a7ade6d
: Merge "Update hard keyboard status on closing input methods panel" into honeycomb
* commit '2a7ade6d7ca0fc962554628dbbb446fd20f0ba52': Update hard keyboard status on closing input methods panel
This commit is contained in:
@ -22,7 +22,8 @@
|
|||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:paddingBottom="28dip"
|
android:paddingBottom="28dip"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical"
|
||||||
|
android:visibility="gone">
|
||||||
<View
|
<View
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="0dip"
|
android:layout_height="0dip"
|
||||||
|
@ -34,7 +34,6 @@ import android.view.View;
|
|||||||
import android.view.inputmethod.InputMethodInfo;
|
import android.view.inputmethod.InputMethodInfo;
|
||||||
import android.view.inputmethod.InputMethodManager;
|
import android.view.inputmethod.InputMethodManager;
|
||||||
import android.view.inputmethod.InputMethodSubtype;
|
import android.view.inputmethod.InputMethodSubtype;
|
||||||
import android.widget.CompoundButton;
|
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import android.widget.RadioButton;
|
import android.widget.RadioButton;
|
||||||
@ -48,8 +47,8 @@ import java.util.Map;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
|
|
||||||
public class InputMethodsPanel extends LinearLayout implements StatusBarPanel, View.OnClickListener,
|
public class InputMethodsPanel extends LinearLayout implements StatusBarPanel,
|
||||||
CompoundButton.OnCheckedChangeListener {
|
View.OnClickListener {
|
||||||
private static final boolean DEBUG = TabletStatusBar.DEBUG;
|
private static final boolean DEBUG = TabletStatusBar.DEBUG;
|
||||||
private static final String TAG = "InputMethodsPanel";
|
private static final String TAG = "InputMethodsPanel";
|
||||||
|
|
||||||
@ -86,6 +85,7 @@ public class InputMethodsPanel extends LinearLayout implements StatusBarPanel, V
|
|||||||
private View mConfigureImeShortcut;
|
private View mConfigureImeShortcut;
|
||||||
|
|
||||||
private class InputMethodComparator implements Comparator<InputMethodInfo> {
|
private class InputMethodComparator implements Comparator<InputMethodInfo> {
|
||||||
|
@Override
|
||||||
public int compare(InputMethodInfo imi1, InputMethodInfo imi2) {
|
public int compare(InputMethodInfo imi1, InputMethodInfo imi2) {
|
||||||
if (imi2 == null) return 0;
|
if (imi2 == null) return 0;
|
||||||
if (imi1 == null) return 1;
|
if (imi1 == null) return 1;
|
||||||
@ -142,7 +142,6 @@ public class InputMethodsPanel extends LinearLayout implements StatusBarPanel, V
|
|||||||
mInputMethodMenuList = (LinearLayout) findViewById(R.id.input_method_menu_list);
|
mInputMethodMenuList = (LinearLayout) findViewById(R.id.input_method_menu_list);
|
||||||
mHardKeyboardSection = (LinearLayout) findViewById(R.id.hard_keyboard_section);
|
mHardKeyboardSection = (LinearLayout) findViewById(R.id.hard_keyboard_section);
|
||||||
mHardKeyboardSwitch = (Switch) findViewById(R.id.hard_keyboard_switch);
|
mHardKeyboardSwitch = (Switch) findViewById(R.id.hard_keyboard_switch);
|
||||||
mHardKeyboardSwitch.setOnCheckedChangeListener(this);
|
|
||||||
mConfigureImeShortcut = findViewById(R.id.ime_settings_shortcut);
|
mConfigureImeShortcut = findViewById(R.id.ime_settings_shortcut);
|
||||||
mConfigureImeShortcut.setOnClickListener(this);
|
mConfigureImeShortcut.setOnClickListener(this);
|
||||||
// TODO: If configurations for IME are not changed, do not update
|
// TODO: If configurations for IME are not changed, do not update
|
||||||
@ -155,34 +154,17 @@ public class InputMethodsPanel extends LinearLayout implements StatusBarPanel, V
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onVisibilityChanged(View changedView, int visibility) {
|
|
||||||
super.onVisibilityChanged(changedView, visibility);
|
|
||||||
if (changedView == this) {
|
|
||||||
if (visibility == View.VISIBLE) {
|
|
||||||
updateUiElements();
|
|
||||||
if (mInputMethodSwitchButton != null) {
|
|
||||||
mInputMethodSwitchButton.setIconImage(R.drawable.ic_sysbar_ime_pressed);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (mInputMethodSwitchButton != null) {
|
|
||||||
mInputMethodSwitchButton.setIconImage(R.drawable.ic_sysbar_ime);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
if (view == mConfigureImeShortcut) {
|
if (view == mConfigureImeShortcut) {
|
||||||
showConfigureInputMethods();
|
showConfigureInputMethods();
|
||||||
onFinishPanel(true);
|
closePanel(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
private void updateHardKeyboardEnabled() {
|
||||||
public void onCheckedChanged(CompoundButton button, boolean checked) {
|
if (mHardKeyboardAvailable) {
|
||||||
if (button == mHardKeyboardSwitch) {
|
final boolean checked = mHardKeyboardSwitch.isChecked();
|
||||||
if (mHardKeyboardEnabled != checked) {
|
if (mHardKeyboardEnabled != checked) {
|
||||||
mHardKeyboardEnabled = checked;
|
mHardKeyboardEnabled = checked;
|
||||||
if (mHardKeyboardEnabledChangeListener != null)
|
if (mHardKeyboardEnabledChangeListener != null)
|
||||||
@ -191,11 +173,23 @@ public class InputMethodsPanel extends LinearLayout implements StatusBarPanel, V
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onFinishPanel(boolean closeKeyboard) {
|
public void openPanel() {
|
||||||
|
setVisibility(View.VISIBLE);
|
||||||
|
updateUiElements();
|
||||||
|
if (mInputMethodSwitchButton != null) {
|
||||||
|
mInputMethodSwitchButton.setIconImage(R.drawable.ic_sysbar_ime_pressed);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void closePanel(boolean closeKeyboard) {
|
||||||
setVisibility(View.GONE);
|
setVisibility(View.GONE);
|
||||||
|
if (mInputMethodSwitchButton != null) {
|
||||||
|
mInputMethodSwitchButton.setIconImage(R.drawable.ic_sysbar_ime);
|
||||||
|
}
|
||||||
if (closeKeyboard) {
|
if (closeKeyboard) {
|
||||||
mImm.hideSoftInputFromWindow(getWindowToken(), 0);
|
mImm.hideSoftInputFromWindow(getWindowToken(), 0);
|
||||||
}
|
}
|
||||||
|
updateHardKeyboardEnabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void startActivity(Intent intent) {
|
private void startActivity(Intent intent) {
|
||||||
@ -241,7 +235,7 @@ public class InputMethodsPanel extends LinearLayout implements StatusBarPanel, V
|
|||||||
| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
|
| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
|
||||||
| Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
| Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
onFinishPanel(true);
|
closePanel(true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
@ -256,7 +250,7 @@ public class InputMethodsPanel extends LinearLayout implements StatusBarPanel, V
|
|||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
Pair<InputMethodInfo, InputMethodSubtype> imiAndSubtype =
|
Pair<InputMethodInfo, InputMethodSubtype> imiAndSubtype =
|
||||||
updateRadioButtonsByView(v);
|
updateRadioButtonsByView(v);
|
||||||
onFinishPanel(false);
|
closePanel(false);
|
||||||
setInputMethodAndSubtype(imiAndSubtype.first, imiAndSubtype.second);
|
setInputMethodAndSubtype(imiAndSubtype.first, imiAndSubtype.second);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -19,12 +19,9 @@ package com.android.systemui.statusbar.tablet;
|
|||||||
import java.io.FileDescriptor;
|
import java.io.FileDescriptor;
|
||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.IdentityHashMap;
|
|
||||||
|
|
||||||
import android.animation.LayoutTransition;
|
import android.animation.LayoutTransition;
|
||||||
import android.animation.ObjectAnimator;
|
import android.animation.ObjectAnimator;
|
||||||
import android.animation.AnimatorSet;
|
|
||||||
import android.app.ActivityManagerNative;
|
import android.app.ActivityManagerNative;
|
||||||
import android.app.PendingIntent;
|
import android.app.PendingIntent;
|
||||||
import android.app.Notification;
|
import android.app.Notification;
|
||||||
@ -36,7 +33,6 @@ import android.content.res.Resources;
|
|||||||
import android.inputmethodservice.InputMethodService;
|
import android.inputmethodservice.InputMethodService;
|
||||||
import android.graphics.PixelFormat;
|
import android.graphics.PixelFormat;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.graphics.drawable.Drawable;
|
|
||||||
import android.graphics.drawable.LayerDrawable;
|
import android.graphics.drawable.LayerDrawable;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
@ -45,8 +41,6 @@ import android.os.RemoteException;
|
|||||||
import android.os.ServiceManager;
|
import android.os.ServiceManager;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Slog;
|
import android.util.Slog;
|
||||||
import android.view.animation.Animation;
|
|
||||||
import android.view.animation.AnimationUtils;
|
|
||||||
import android.view.Gravity;
|
import android.view.Gravity;
|
||||||
import android.view.IWindowManager;
|
import android.view.IWindowManager;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
@ -58,12 +52,10 @@ import android.view.ViewConfiguration;
|
|||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.view.WindowManager;
|
import android.view.WindowManager;
|
||||||
import android.view.WindowManagerImpl;
|
import android.view.WindowManagerImpl;
|
||||||
import android.widget.FrameLayout;
|
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import android.widget.RemoteViews;
|
import android.widget.RemoteViews;
|
||||||
import android.widget.ScrollView;
|
import android.widget.ScrollView;
|
||||||
import android.widget.TextSwitcher;
|
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import com.android.internal.statusbar.StatusBarIcon;
|
import com.android.internal.statusbar.StatusBarIcon;
|
||||||
@ -271,7 +263,6 @@ public class TabletStatusBar extends StatusBar implements
|
|||||||
mInputMethodsPanel = (InputMethodsPanel) View.inflate(context,
|
mInputMethodsPanel = (InputMethodsPanel) View.inflate(context,
|
||||||
R.layout.status_bar_input_methods_panel, null);
|
R.layout.status_bar_input_methods_panel, null);
|
||||||
mInputMethodsPanel.setHardKeyboardEnabledChangeListener(this);
|
mInputMethodsPanel.setHardKeyboardEnabledChangeListener(this);
|
||||||
mInputMethodsPanel.setVisibility(View.GONE);
|
|
||||||
mInputMethodsPanel.setOnTouchListener(new TouchOutsideListener(
|
mInputMethodsPanel.setOnTouchListener(new TouchOutsideListener(
|
||||||
MSG_CLOSE_INPUT_METHODS_PANEL, mInputMethodsPanel));
|
MSG_CLOSE_INPUT_METHODS_PANEL, mInputMethodsPanel));
|
||||||
mInputMethodsPanel.setImeSwitchButton(mInputMethodSwitchButton);
|
mInputMethodsPanel.setImeSwitchButton(mInputMethodSwitchButton);
|
||||||
@ -565,11 +556,11 @@ public class TabletStatusBar extends StatusBar implements
|
|||||||
break;
|
break;
|
||||||
case MSG_OPEN_INPUT_METHODS_PANEL:
|
case MSG_OPEN_INPUT_METHODS_PANEL:
|
||||||
if (DEBUG) Slog.d(TAG, "opening input methods panel");
|
if (DEBUG) Slog.d(TAG, "opening input methods panel");
|
||||||
if (mInputMethodsPanel != null) mInputMethodsPanel.setVisibility(View.VISIBLE);
|
if (mInputMethodsPanel != null) mInputMethodsPanel.openPanel();
|
||||||
break;
|
break;
|
||||||
case MSG_CLOSE_INPUT_METHODS_PANEL:
|
case MSG_CLOSE_INPUT_METHODS_PANEL:
|
||||||
if (DEBUG) Slog.d(TAG, "closing input methods panel");
|
if (DEBUG) Slog.d(TAG, "closing input methods panel");
|
||||||
if (mInputMethodsPanel != null) mInputMethodsPanel.setVisibility(View.GONE);
|
if (mInputMethodsPanel != null) mInputMethodsPanel.closePanel(false);
|
||||||
break;
|
break;
|
||||||
case MSG_SHOW_CHROME:
|
case MSG_SHOW_CHROME:
|
||||||
if (DEBUG) Slog.d(TAG, "hiding shadows (lights on)");
|
if (DEBUG) Slog.d(TAG, "hiding shadows (lights on)");
|
||||||
|
Reference in New Issue
Block a user