diff options
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java | 9 | ||||
-rwxr-xr-x | policy/src/com/android/internal/policy/impl/PhoneWindowManager.java | 6 |
2 files changed, 12 insertions, 3 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java index 3519e8c..563b8ef 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java @@ -654,6 +654,12 @@ public class TabletStatusBar extends StatusBar { // called by StatusBar @Override public void setLightsOn(boolean on) { + // Policy note: if the frontmost activity needs the menu key, we assume it is a legacy app + // that can't handle lights-out mode. + if (mMenuButton.getVisibility() == View.VISIBLE + || mMenuShadow.getVisibility() == View.VISIBLE) { + on = true; + } mHandler.removeMessages(MSG_SHOW_SHADOWS); mHandler.removeMessages(MSG_HIDE_SHADOWS); mHandler.sendEmptyMessage(on ? MSG_HIDE_SHADOWS : MSG_SHOW_SHADOWS); @@ -664,6 +670,9 @@ public class TabletStatusBar extends StatusBar { Slog.d(TAG, (visible?"showing":"hiding") + " the MENU button"); } mMenuButton.setVisibility(visible ? View.VISIBLE : View.GONE); + + // See above re: lights-out policy for legacy apps. + if (visible) setLightsOn(true); } public void setIMEButtonVisible(IBinder token, boolean visible) { diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java index c528745..c3112d8 100755 --- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java @@ -1820,12 +1820,12 @@ public class PhoneWindowManager implements WindowManagerPolicy { final IStatusBarService sbs = mStatusBarService; if (mStatusBarService != null) { try { - if (changedFullscreen) { - sbs.setActiveWindowIsFullscreen(topIsFullscreenF); - } if (changedMenu) { sbs.setMenuKeyVisible(topNeedsMenuF); } + if (changedFullscreen) { + sbs.setActiveWindowIsFullscreen(topIsFullscreenF); + } } catch (RemoteException e) { // This should be impossible because we're in the same process. mStatusBarService = null; |