hide_show_navigationBar_7.1 隐藏显示导航栏

188 阅读1分钟

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();
}
}
};