diff options
| author | 2011-09-12 10:06:53 -0700 | |
|---|---|---|
| committer | 2011-09-12 10:06:53 -0700 | |
| commit | aeb116750110cf9cc1ef82d208f3a8ba3b8be009 (patch) | |
| tree | 4afd644b714d50b51efa735cd4cb2b964f280cca | |
| parent | fa0d2316f98ab787ff26383ff651dc31aac60ffd (diff) | |
| parent | 029d5877b0c19af09c6a1cb7d1c3d3507e88430c (diff) | |
Merge "Hide navigation buttons when they are DISABLEd."
4 files changed, 20 insertions, 17 deletions
diff --git a/packages/SystemUI/res/layout/navigation_bar.xml b/packages/SystemUI/res/layout/navigation_bar.xml index fbca299677ac..25bc2ea4f278 100644 --- a/packages/SystemUI/res/layout/navigation_bar.xml +++ b/packages/SystemUI/res/layout/navigation_bar.xml @@ -38,6 +38,7 @@ android:clipChildren="false" android:clipToPadding="false" android:id="@+id/nav_buttons" + android:animateLayoutChanges="true" > <!-- navigation controls --> @@ -165,6 +166,7 @@ android:clipChildren="false" android:clipToPadding="false" android:id="@+id/nav_buttons" + android:animateLayoutChanges="true" > <!-- navigation controls --> diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java index 98dca9221899..cd361add099d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java @@ -60,7 +60,6 @@ public class NavigationBarView extends LinearLayout { boolean mVertical; boolean mHidden, mLowProfile; - boolean mEnabled = true; public View getRecentsButton() { return mCurrentView.findViewById(R.id.recent_apps); @@ -93,11 +92,6 @@ public class NavigationBarView extends LinearLayout { mVertical = false; } - public void setEnabled(final boolean enable) { - mEnabled = enable; - mCurrentView.setVisibility(enable ? View.VISIBLE : View.INVISIBLE); - } - View.OnTouchListener mLightsOutListener = new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent ev) { @@ -116,6 +110,16 @@ public class NavigationBarView extends LinearLayout { } }; + public void setNavigationVisibility(int disabledFlags) { + boolean disableNavigation = ((disabledFlags & View.STATUS_BAR_DISABLE_NAVIGATION) != 0); + boolean disableBack = ((disabledFlags & View.STATUS_BAR_DISABLE_BACK) != 0); + + getBackButton() .setVisibility(disableBack ? View.INVISIBLE : View.VISIBLE); + getHomeButton() .setVisibility(disableNavigation ? View.INVISIBLE : View.VISIBLE); + getRecentsButton().setVisibility(disableNavigation ? View.INVISIBLE : View.VISIBLE); + getMenuButton() .setVisibility(disableNavigation ? View.INVISIBLE : View.VISIBLE); + } + public void setLowProfile(final boolean lightsOut) { setLowProfile(lightsOut, true); } 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 3d05341a7a13..69e0752f6b42 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -297,7 +297,7 @@ public class PhoneStatusBar extends StatusBar { mNavigationBarView = (NavigationBarView) View.inflate(context, R.layout.navigation_bar, null); - mNavigationBarView.setEnabled((mDisabled & StatusBarManager.DISABLE_NAVIGATION) == 0); + setNavigationVisibility(mDisabled); sb.setOnSystemUiVisibilityChangeListener( new View.OnSystemUiVisibilityChangeListener() { @@ -1129,15 +1129,7 @@ public class PhoneStatusBar extends StatusBar { Slog.i(TAG, "DISABLE_NAVIGATION: " + (disableNavigation ? "yes" : "no")); if (mNavigationBarView != null) { - if (disableNavigation && disableBack) { - mNavigationBarView.setEnabled(false); - } else { - mNavigationBarView.getBackButton().setEnabled(!disableBack); - mNavigationBarView.getHomeButton().setEnabled(!disableNavigation); - mNavigationBarView.getRecentsButton().setEnabled(!disableNavigation); - - mNavigationBarView.setEnabled(true); - } + mNavigationBarView.setNavigationVisibility(visibility); } if (disableNavigation) { diff --git a/tests/StatusBar/src/com/android/statusbartest/StatusBarTest.java b/tests/StatusBar/src/com/android/statusbartest/StatusBarTest.java index ad3073a11cb8..7c94c2d078de 100644 --- a/tests/StatusBar/src/com/android/statusbartest/StatusBarTest.java +++ b/tests/StatusBar/src/com/android/statusbartest/StatusBarTest.java @@ -114,7 +114,7 @@ public class StatusBarTest extends TestActivity // v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); // } // }, - new Test("DISABLE_NAVIGATION") { + new Test("systemUiVisibility: STATUS_BAR_DISABLE_NAVIGATION") { public void run() { mListView.setSystemUiVisibility(View.STATUS_BAR_DISABLE_NAVIGATION); } @@ -232,6 +232,11 @@ public class StatusBarTest extends TestActivity mStatusBarManager.disable(StatusBarManager.DISABLE_NAVIGATION); } }, + new Test("Disable Back") { + public void run() { + mStatusBarManager.disable(StatusBarManager.DISABLE_BACK); + } + }, new Test("Disable Clock") { public void run() { mStatusBarManager.disable(StatusBarManager.DISABLE_CLOCK); |