diff options
author | Jason Monk <jmonk@google.com> | 2014-05-07 14:20:04 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-05-07 14:20:04 +0000 |
commit | 10a38c06df42f0231a71a78ec341609648035b9d (patch) | |
tree | b40ea3fb41b5631b69543c8e88b82fc5479193a5 /packages | |
parent | d46d0f9dcd72dfaa93a57d07d896def6ce53bbae (diff) | |
parent | b605fecd9e4282823af754b3968b21205d64554a (diff) | |
download | frameworks_base-10a38c06df42f0231a71a78ec341609648035b9d.zip frameworks_base-10a38c06df42f0231a71a78ec341609648035b9d.tar.gz frameworks_base-10a38c06df42f0231a71a78ec341609648035b9d.tar.bz2 |
Merge "Only show IME in navigation bar when it should"
Diffstat (limited to 'packages')
4 files changed, 18 insertions, 10 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java index 2c7464a..d224975 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java @@ -302,7 +302,7 @@ public abstract class BaseStatusBar extends SystemUI implements ArrayList<StatusBarNotification> notifications = new ArrayList<StatusBarNotification>(); mCommandQueue = new CommandQueue(this, iconList); - int[] switches = new int[7]; + int[] switches = new int[8]; ArrayList<IBinder> binders = new ArrayList<IBinder>(); try { mBarService.registerStatusBar(mCommandQueue, iconList, notificationKeys, notifications, @@ -317,7 +317,7 @@ public abstract class BaseStatusBar extends SystemUI implements setSystemUiVisibility(switches[1], 0xffffffff); topAppWindowChanged(switches[2] != 0); // StatusBarManagerService has a back up of IME token and it's restored here. - setImeWindowStatus(binders.get(0), switches[3], switches[4]); + setImeWindowStatus(binders.get(0), switches[3], switches[4], switches[7] != 0); setHardKeyboardStatus(switches[5] != 0, switches[6] != 0); // Set up the initial icon state diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java index bbbe8fa..5362af5 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java @@ -65,6 +65,8 @@ public class CommandQueue extends IStatusBar.Stub { public static final int FLAG_EXCLUDE_INPUT_METHODS_PANEL = 1 << 3; public static final int FLAG_EXCLUDE_COMPAT_MODE_PANEL = 1 << 4; + private static final String SHOW_IME_SWITCHER_KEY = "showImeSwitcherKey"; + private StatusBarIconList mList; private Callbacks mCallbacks; private Handler mHandler = new H(); @@ -91,7 +93,8 @@ public class CommandQueue extends IStatusBar.Stub { public void animateExpandSettingsPanel(); public void setSystemUiVisibility(int vis, int mask); public void topAppWindowChanged(boolean visible); - public void setImeWindowStatus(IBinder token, int vis, int backDisposition); + public void setImeWindowStatus(IBinder token, int vis, int backDisposition, + boolean showImeSwitcher); public void setHardKeyboardStatus(boolean available, boolean enabled); public void toggleRecentApps(); public void preloadRecentApps(); @@ -190,11 +193,13 @@ public class CommandQueue extends IStatusBar.Stub { } } - public void setImeWindowStatus(IBinder token, int vis, int backDisposition) { + public void setImeWindowStatus(IBinder token, int vis, int backDisposition, + boolean showImeSwitcher) { synchronized (mList) { mHandler.removeMessages(MSG_SHOW_IME_BUTTON); - mHandler.obtainMessage(MSG_SHOW_IME_BUTTON, vis, backDisposition, token) - .sendToTarget(); + Message m = mHandler.obtainMessage(MSG_SHOW_IME_BUTTON, vis, backDisposition, token); + m.getData().putBoolean(SHOW_IME_SWITCHER_KEY, showImeSwitcher); + m.sendToTarget(); } } @@ -298,7 +303,8 @@ public class CommandQueue extends IStatusBar.Stub { mCallbacks.topAppWindowChanged(msg.arg1 != 0); break; case MSG_SHOW_IME_BUTTON: - mCallbacks.setImeWindowStatus((IBinder) msg.obj, msg.arg1, msg.arg2); + mCallbacks.setImeWindowStatus((IBinder) msg.obj, msg.arg1, msg.arg2, + msg.getData().getBoolean(SHOW_IME_SWITCHER_KEY, false)); break; case MSG_SET_HARD_KEYBOARD_STATUS: mCallbacks.setHardKeyboardStatus(msg.arg1 != 0, msg.arg2 != 0); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java index f945c79..3856ba1 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -2235,7 +2235,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, } @Override - public void setImeWindowStatus(IBinder token, int vis, int backDisposition) { + public void setImeWindowStatus(IBinder token, int vis, int backDisposition, + boolean showImeSwitcher) { boolean imeShown = (vis & InputMethodService.IME_VISIBLE) != 0; int flags = mNavigationIconHints; if ((backDisposition == InputMethodService.BACK_DISPOSITION_WILL_DISMISS) || imeShown) { @@ -2243,7 +2244,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, } else { flags &= ~NAVIGATION_HINT_BACK_ALT; } - if (imeShown) { + if (showImeSwitcher) { flags |= NAVIGATION_HINT_IME_SHOWN; } else { flags &= ~NAVIGATION_HINT_IME_SHOWN; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java index d615542..4b3d3b0 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java @@ -78,7 +78,8 @@ public class TvStatusBar extends BaseStatusBar { } @Override - public void setImeWindowStatus(IBinder token, int vis, int backDisposition) { + public void setImeWindowStatus(IBinder token, int vis, int backDisposition, + boolean showImeSwitcher) { } @Override |