Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java +8 −0 Original line number Diff line number Diff line Loading @@ -70,6 +70,14 @@ public class NavigationBarView extends LinearLayout { return mCurrentView.findViewById(R.id.menu); } public View getBackButton() { return mCurrentView.findViewById(R.id.back); } public View getHomeButton() { return mCurrentView.findViewById(R.id.home); } public NavigationBarView(Context context, AttributeSet attrs) { super(context, attrs); Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +27 −12 Original line number Diff line number Diff line Loading @@ -1091,18 +1091,9 @@ public class PhoneStatusBar extends StatusBar { } } if ((diff & StatusBarManager.DISABLE_NAVIGATION) != 0) { if ((state & StatusBarManager.DISABLE_NAVIGATION) != 0) { Slog.d(TAG, "DISABLE_NAVIGATION: yes"); // close recents if it's visible mHandler.removeMessages(MSG_CLOSE_RECENTS_PANEL); mHandler.sendEmptyMessage(MSG_CLOSE_RECENTS_PANEL); } if (mNavigationBarView != null) { mNavigationBarView.setEnabled((state & StatusBarManager.DISABLE_NAVIGATION) == 0); } if ((diff & (StatusBarManager.DISABLE_NAVIGATION | StatusBarManager.DISABLE_BACK)) != 0) { setNavigationVisibility(state & (StatusBarManager.DISABLE_NAVIGATION | StatusBarManager.DISABLE_BACK)); } if ((diff & StatusBarManager.DISABLE_NOTIFICATION_ICONS) != 0) { Loading @@ -1127,6 +1118,30 @@ public class PhoneStatusBar extends StatusBar { } } private void setNavigationVisibility(int visibility) { boolean disableNavigation = ((visibility & StatusBarManager.DISABLE_NAVIGATION) != 0); boolean disableBack = ((visibility & StatusBarManager.DISABLE_BACK) != 0); Slog.i(TAG, "DISABLE_BACK: " + (disableBack ? "yes" : "no")); Slog.i(TAG, "DISABLE_NAVIGATION: " + (disableNavigation ? "yes" : "no")); if (disableNavigation && disableBack) { mNavigationBarView.setEnabled(false); } else { mNavigationBarView.getBackButton().setEnabled(!disableBack); mNavigationBarView.getHomeButton().setEnabled(!disableNavigation); mNavigationBarView.getRecentsButton().setEnabled(!disableNavigation); if (disableNavigation) { // close recents if it's visible mHandler.removeMessages(MSG_CLOSE_RECENTS_PANEL); mHandler.sendEmptyMessage(MSG_CLOSE_RECENTS_PANEL); } mNavigationBarView.setEnabled(true); } } /** * All changes to the status bar and notifications funnel through here and are batched. */ Loading packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java +25 −20 Original line number Diff line number Diff line Loading @@ -949,29 +949,34 @@ public class TabletStatusBar extends StatusBar implements mTicker.halt(); } } if ((diff & StatusBarManager.DISABLE_NAVIGATION) != 0) { if ((state & StatusBarManager.DISABLE_NAVIGATION) != 0) { Slog.i(TAG, "DISABLE_NAVIGATION: yes"); mNavigationArea.setVisibility(View.INVISIBLE); mInputMethodSwitchButton.setScreenLocked(true); } else { Slog.i(TAG, "DISABLE_NAVIGATION: no"); mNavigationArea.setVisibility(View.VISIBLE); mInputMethodSwitchButton.setScreenLocked(false); if ((diff & (StatusBarManager.DISABLE_NAVIGATION | StatusBarManager.DISABLE_BACK)) != 0) { setNavigationVisibility(state & (StatusBarManager.DISABLE_NAVIGATION | StatusBarManager.DISABLE_BACK)); } } if ((diff & StatusBarManager.DISABLE_BACK) != 0) { if ((state & StatusBarManager.DISABLE_BACK) != 0) { Slog.i(TAG, "DISABLE_BACK: yes"); mBackButton.setEnabled(false); mInputMethodSwitchButton.setScreenLocked(true); private void setNavigationVisibility(int visibility) { boolean disableNavigation = ((visibility & StatusBarManager.DISABLE_NAVIGATION) != 0); boolean disableBack = ((visibility & StatusBarManager.DISABLE_BACK) != 0); Slog.i(TAG, "DISABLE_BACK: " + (disableBack ? "yes" : "no")); Slog.i(TAG, "DISABLE_NAVIGATION: " + (disableNavigation ? "yes" : "no")); if (disableNavigation && disableBack) { mNavigationArea.setVisibility(View.INVISIBLE); } else { Slog.i(TAG, "DISABLE_BACK: no"); mBackButton.setEnabled(true); mInputMethodSwitchButton.setScreenLocked(false); } int backVisiblity = (disableBack ? View.INVISIBLE : View.VISIBLE); int navVisibility = (disableNavigation ? View.INVISIBLE : View.VISIBLE); mBackButton.setVisibility(backVisiblity); mHomeButton.setVisibility(navVisibility); mRecentButton.setVisibility(navVisibility); // don't change menu button visibility here mNavigationArea.setVisibility(View.VISIBLE); } mInputMethodSwitchButton.setScreenLocked(disableNavigation); } private boolean hasTicker(Notification n) { Loading policy/src/com/android/internal/policy/impl/KeyguardViewMediator.java +12 −8 Original line number Diff line number Diff line Loading @@ -1185,16 +1185,20 @@ public class KeyguardViewMediator implements KeyguardViewCallback, } int flags = StatusBarManager.DISABLE_NONE; if (mShowing && !mHidden) { // showing lockscreen exclusively; disable various extra // statusbar components. if (mShowing) { // disable navigation status bar components if lock screen is up flags |= StatusBarManager.DISABLE_NAVIGATION; if (!mHidden) { // showing lockscreen exclusively (no activities in front of it) // disable clock and back button too flags |= StatusBarManager.DISABLE_BACK; flags |= StatusBarManager.DISABLE_CLOCK; } if (mShowing && (isSecure() || !ENABLE_INSECURE_STATUS_BAR_EXPAND)) { if (isSecure() || !ENABLE_INSECURE_STATUS_BAR_EXPAND) { // showing secure lockscreen; disable expanding. flags |= StatusBarManager.DISABLE_EXPAND; } } if (DEBUG) { Log.d(TAG, Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java +8 −0 Original line number Diff line number Diff line Loading @@ -70,6 +70,14 @@ public class NavigationBarView extends LinearLayout { return mCurrentView.findViewById(R.id.menu); } public View getBackButton() { return mCurrentView.findViewById(R.id.back); } public View getHomeButton() { return mCurrentView.findViewById(R.id.home); } public NavigationBarView(Context context, AttributeSet attrs) { super(context, attrs); Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +27 −12 Original line number Diff line number Diff line Loading @@ -1091,18 +1091,9 @@ public class PhoneStatusBar extends StatusBar { } } if ((diff & StatusBarManager.DISABLE_NAVIGATION) != 0) { if ((state & StatusBarManager.DISABLE_NAVIGATION) != 0) { Slog.d(TAG, "DISABLE_NAVIGATION: yes"); // close recents if it's visible mHandler.removeMessages(MSG_CLOSE_RECENTS_PANEL); mHandler.sendEmptyMessage(MSG_CLOSE_RECENTS_PANEL); } if (mNavigationBarView != null) { mNavigationBarView.setEnabled((state & StatusBarManager.DISABLE_NAVIGATION) == 0); } if ((diff & (StatusBarManager.DISABLE_NAVIGATION | StatusBarManager.DISABLE_BACK)) != 0) { setNavigationVisibility(state & (StatusBarManager.DISABLE_NAVIGATION | StatusBarManager.DISABLE_BACK)); } if ((diff & StatusBarManager.DISABLE_NOTIFICATION_ICONS) != 0) { Loading @@ -1127,6 +1118,30 @@ public class PhoneStatusBar extends StatusBar { } } private void setNavigationVisibility(int visibility) { boolean disableNavigation = ((visibility & StatusBarManager.DISABLE_NAVIGATION) != 0); boolean disableBack = ((visibility & StatusBarManager.DISABLE_BACK) != 0); Slog.i(TAG, "DISABLE_BACK: " + (disableBack ? "yes" : "no")); Slog.i(TAG, "DISABLE_NAVIGATION: " + (disableNavigation ? "yes" : "no")); if (disableNavigation && disableBack) { mNavigationBarView.setEnabled(false); } else { mNavigationBarView.getBackButton().setEnabled(!disableBack); mNavigationBarView.getHomeButton().setEnabled(!disableNavigation); mNavigationBarView.getRecentsButton().setEnabled(!disableNavigation); if (disableNavigation) { // close recents if it's visible mHandler.removeMessages(MSG_CLOSE_RECENTS_PANEL); mHandler.sendEmptyMessage(MSG_CLOSE_RECENTS_PANEL); } mNavigationBarView.setEnabled(true); } } /** * All changes to the status bar and notifications funnel through here and are batched. */ Loading
packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java +25 −20 Original line number Diff line number Diff line Loading @@ -949,29 +949,34 @@ public class TabletStatusBar extends StatusBar implements mTicker.halt(); } } if ((diff & StatusBarManager.DISABLE_NAVIGATION) != 0) { if ((state & StatusBarManager.DISABLE_NAVIGATION) != 0) { Slog.i(TAG, "DISABLE_NAVIGATION: yes"); mNavigationArea.setVisibility(View.INVISIBLE); mInputMethodSwitchButton.setScreenLocked(true); } else { Slog.i(TAG, "DISABLE_NAVIGATION: no"); mNavigationArea.setVisibility(View.VISIBLE); mInputMethodSwitchButton.setScreenLocked(false); if ((diff & (StatusBarManager.DISABLE_NAVIGATION | StatusBarManager.DISABLE_BACK)) != 0) { setNavigationVisibility(state & (StatusBarManager.DISABLE_NAVIGATION | StatusBarManager.DISABLE_BACK)); } } if ((diff & StatusBarManager.DISABLE_BACK) != 0) { if ((state & StatusBarManager.DISABLE_BACK) != 0) { Slog.i(TAG, "DISABLE_BACK: yes"); mBackButton.setEnabled(false); mInputMethodSwitchButton.setScreenLocked(true); private void setNavigationVisibility(int visibility) { boolean disableNavigation = ((visibility & StatusBarManager.DISABLE_NAVIGATION) != 0); boolean disableBack = ((visibility & StatusBarManager.DISABLE_BACK) != 0); Slog.i(TAG, "DISABLE_BACK: " + (disableBack ? "yes" : "no")); Slog.i(TAG, "DISABLE_NAVIGATION: " + (disableNavigation ? "yes" : "no")); if (disableNavigation && disableBack) { mNavigationArea.setVisibility(View.INVISIBLE); } else { Slog.i(TAG, "DISABLE_BACK: no"); mBackButton.setEnabled(true); mInputMethodSwitchButton.setScreenLocked(false); } int backVisiblity = (disableBack ? View.INVISIBLE : View.VISIBLE); int navVisibility = (disableNavigation ? View.INVISIBLE : View.VISIBLE); mBackButton.setVisibility(backVisiblity); mHomeButton.setVisibility(navVisibility); mRecentButton.setVisibility(navVisibility); // don't change menu button visibility here mNavigationArea.setVisibility(View.VISIBLE); } mInputMethodSwitchButton.setScreenLocked(disableNavigation); } private boolean hasTicker(Notification n) { Loading
policy/src/com/android/internal/policy/impl/KeyguardViewMediator.java +12 −8 Original line number Diff line number Diff line Loading @@ -1185,16 +1185,20 @@ public class KeyguardViewMediator implements KeyguardViewCallback, } int flags = StatusBarManager.DISABLE_NONE; if (mShowing && !mHidden) { // showing lockscreen exclusively; disable various extra // statusbar components. if (mShowing) { // disable navigation status bar components if lock screen is up flags |= StatusBarManager.DISABLE_NAVIGATION; if (!mHidden) { // showing lockscreen exclusively (no activities in front of it) // disable clock and back button too flags |= StatusBarManager.DISABLE_BACK; flags |= StatusBarManager.DISABLE_CLOCK; } if (mShowing && (isSecure() || !ENABLE_INSECURE_STATUS_BAR_EXPAND)) { if (isSecure() || !ENABLE_INSECURE_STATUS_BAR_EXPAND) { // showing secure lockscreen; disable expanding. flags |= StatusBarManager.DISABLE_EXPAND; } } if (DEBUG) { Log.d(TAG, Loading