Skip to content

Commit aeb1167

Browse files
dsandlerAndroid (Google) Code Review
authored andcommitted
Merge "Hide navigation buttons when they are DISABLEd."
2 parents fa0d231 + 029d587 commit aeb1167

File tree

4 files changed

+20
-17
lines changed

4 files changed

+20
-17
lines changed

packages/SystemUI/res/layout/navigation_bar.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
android:clipChildren="false"
3939
android:clipToPadding="false"
4040
android:id="@+id/nav_buttons"
41+
android:animateLayoutChanges="true"
4142
>
4243

4344
<!-- navigation controls -->
@@ -165,6 +166,7 @@
165166
android:clipChildren="false"
166167
android:clipToPadding="false"
167168
android:id="@+id/nav_buttons"
169+
android:animateLayoutChanges="true"
168170
>
169171

170172
<!-- navigation controls -->

packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ public class NavigationBarView extends LinearLayout {
6060
boolean mVertical;
6161

6262
boolean mHidden, mLowProfile;
63-
boolean mEnabled = true;
6463

6564
public View getRecentsButton() {
6665
return mCurrentView.findViewById(R.id.recent_apps);
@@ -93,11 +92,6 @@ public NavigationBarView(Context context, AttributeSet attrs) {
9392
mVertical = false;
9493
}
9594

96-
public void setEnabled(final boolean enable) {
97-
mEnabled = enable;
98-
mCurrentView.setVisibility(enable ? View.VISIBLE : View.INVISIBLE);
99-
}
100-
10195
View.OnTouchListener mLightsOutListener = new View.OnTouchListener() {
10296
@Override
10397
public boolean onTouch(View v, MotionEvent ev) {
@@ -116,6 +110,16 @@ public boolean onTouch(View v, MotionEvent ev) {
116110
}
117111
};
118112

113+
public void setNavigationVisibility(int disabledFlags) {
114+
boolean disableNavigation = ((disabledFlags & View.STATUS_BAR_DISABLE_NAVIGATION) != 0);
115+
boolean disableBack = ((disabledFlags & View.STATUS_BAR_DISABLE_BACK) != 0);
116+
117+
getBackButton() .setVisibility(disableBack ? View.INVISIBLE : View.VISIBLE);
118+
getHomeButton() .setVisibility(disableNavigation ? View.INVISIBLE : View.VISIBLE);
119+
getRecentsButton().setVisibility(disableNavigation ? View.INVISIBLE : View.VISIBLE);
120+
getMenuButton() .setVisibility(disableNavigation ? View.INVISIBLE : View.VISIBLE);
121+
}
122+
119123
public void setLowProfile(final boolean lightsOut) {
120124
setLowProfile(lightsOut, true);
121125
}

packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,7 @@ protected View makeStatusBarView() {
297297
mNavigationBarView =
298298
(NavigationBarView) View.inflate(context, R.layout.navigation_bar, null);
299299

300-
mNavigationBarView.setEnabled((mDisabled & StatusBarManager.DISABLE_NAVIGATION) == 0);
300+
setNavigationVisibility(mDisabled);
301301

302302
sb.setOnSystemUiVisibilityChangeListener(
303303
new View.OnSystemUiVisibilityChangeListener() {
@@ -1129,15 +1129,7 @@ private void setNavigationVisibility(int visibility) {
11291129
Slog.i(TAG, "DISABLE_NAVIGATION: " + (disableNavigation ? "yes" : "no"));
11301130

11311131
if (mNavigationBarView != null) {
1132-
if (disableNavigation && disableBack) {
1133-
mNavigationBarView.setEnabled(false);
1134-
} else {
1135-
mNavigationBarView.getBackButton().setEnabled(!disableBack);
1136-
mNavigationBarView.getHomeButton().setEnabled(!disableNavigation);
1137-
mNavigationBarView.getRecentsButton().setEnabled(!disableNavigation);
1138-
1139-
mNavigationBarView.setEnabled(true);
1140-
}
1132+
mNavigationBarView.setNavigationVisibility(visibility);
11411133
}
11421134

11431135
if (disableNavigation) {

tests/StatusBar/src/com/android/statusbartest/StatusBarTest.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ public void run() {
114114
// v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
115115
// }
116116
// },
117-
new Test("DISABLE_NAVIGATION") {
117+
new Test("systemUiVisibility: STATUS_BAR_DISABLE_NAVIGATION") {
118118
public void run() {
119119
mListView.setSystemUiVisibility(View.STATUS_BAR_DISABLE_NAVIGATION);
120120
}
@@ -232,6 +232,11 @@ public void run() {
232232
mStatusBarManager.disable(StatusBarManager.DISABLE_NAVIGATION);
233233
}
234234
},
235+
new Test("Disable Back") {
236+
public void run() {
237+
mStatusBarManager.disable(StatusBarManager.DISABLE_BACK);
238+
}
239+
},
235240
new Test("Disable Clock") {
236241
public void run() {
237242
mStatusBarManager.disable(StatusBarManager.DISABLE_CLOCK);

0 commit comments

Comments
 (0)