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 47388c3..f0cc92c 100755
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -215,6 +215,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
DragDownHelper.DragDownCallback, ActivityStarter, OnUnlockMethodChangedListener,
OnHeadsUpChangedListener, VisualStabilityManager.Callback {
static final String TAG = "PhoneStatusBar";
+ static final String HIDE_NAVIGATION_BAR = "android.intent.action.HIDE_NAVIGATION_BAR";
+ static final String SHOW_NAVIGATION_BAR = "android.intent.action.SHOW_NAVIGATION_BAR";
public static final boolean DEBUG = BaseStatusBar.DEBUG;
public static final boolean SPEW = false;
public static final boolean DUMPTRUCK = true; // extra dumpsys info
@@ -1020,6 +1022,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
demoFilter.addAction(ACTION_FAKE_ARTWORK);
}
demoFilter.addAction(ACTION_DEMO);
+ demoFilter.addAction(HIDE_NAVIGATION_BAR);
+ demoFilter.addAction(SHOW_NAVIGATION_BAR);
context.registerReceiverAsUser(mDemoReceiver, UserHandle.ALL, demoFilter,
android.Manifest.permission.DUMP, null);
@@ -1518,6 +1522,19 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
mWindowManager.addView(mNavigationBarView, getNavigationBarLayoutParams());
}
+ public void hideNavigation() {
+ if (mNavigationBarView != null) {
+ mWindowManager.removeViewImmediate(mNavigationBarView);
+ mNavigationBarView = null;
+ }
+ }
+
+ public void displayNavigation() {
+ final Context context = mContext;
+ createNavigationBarView(context);
+ addNavigationBar();
+ }
+
protected void repositionNavigationBar() {
if (mNavigationBarView == null || !mNavigationBarView.isAttachedToWindow()) return;
@@ -3694,6 +3711,10 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
if (DEBUG_MEDIA_FAKE_ARTWORK) {
updateMediaMetaData(true, true);
}
+ } else if (HIDE_NAVIGATION_BAR.equals(action)) {
+ hideNavigation();
+ } else if (SHOW_NAVIGATION_BAR.equals(action)) {
+ displayNavigation();
}
}
};