Android7.1 设置中添加导航栏显示隐藏功能
设置中添加导航栏显示隐藏功能
1、显示菜单中有“导航栏”及“自动隐藏导航栏”两个选项,且“导航栏”选项默认勾选,“自动隐藏导航栏"默认开启。
2、上划可划出导航栏
commit 406da4c29e1a26ffc73058ce7b68872879f4cd59
Author: liupingzhang <liupiingzhang@neostra.com>
Date: Thu Oct 8 15:05:15 2020 +0800
1824d-jd-w25d: 1.Settings: add navigation bar show & auto hide
2.frameworks: add navigation bar show & auto hide
diff --git a/device/rockchip/rk3288/system.prop b/device/rockchip/rk3288/system.prop
index d11b0ce..f72af35 100755
--- a/device/rockchip/rk3288/system.prop
+++ b/device/rockchip/rk3288/system.prop
@@ -74,3 +74,9 @@ sys.bluetooth.address=xx:xx:xx:xx:xx:xx
#sys.neostra_oem_id=N1MXXM00S01T0PXW0E0MXV111XXXXX
persist.neo.hide.wifiap=true
persist.neo.allowUsbPermission=true
+#add navigation bar show & auto hide hg@20200929
+persist.neo.statusbar=false
+persist.neo.statusbar2=true
+persist.sys.navbar_enable=1
+persist.sys.navbar_autohide=1
+persist.sys.navbar_show=0
\ No newline at end of file
diff --git a/frameworks/base/packages/SystemUI/res/values/colors.xml b/frameworks/base/packages/SystemUI/res/values/colors.xml
old mode 100644
new mode 100755
index 52565ba..8f78952
--- a/frameworks/base/packages/SystemUI/res/values/colors.xml
+++ b/frameworks/base/packages/SystemUI/res/values/colors.xml
@@ -20,7 +20,8 @@
<drawable name="notification_number_text_color">#ffffffff</drawable>
<drawable name="ticker_background_color">#ff1d1d1d</drawable>
<drawable name="system_bar_background">@color/system_bar_background_opaque</drawable>
- <color name="system_bar_background_opaque">#ff000000</color>
+ <!-- system_bar_background_opaque default #ff000000, lpz modify to #00000000 for hide&show Navigation-->
+ <color name="system_bar_background_opaque">#00000000</color>
<color name="system_bar_background_transparent">#00000000</color>
<color name="notification_panel_solid_background">#ff000000</color>
<drawable name="status_bar_notification_row_background_color">#ff090909</drawable>
diff --git a/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
index 92c27f3..f483aa1 100755
--- a/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -199,8 +199,7 @@ import com.android.systemui.statusbar.policy.UserInfoController;
import com.android.systemui.statusbar.policy.UserSwitcherController;
import com.android.systemui.statusbar.policy.ZenModeController;
import com.android.systemui.statusbar.stack.NotificationStackScrollLayout;
-import com.android.systemui.statusbar.stack.NotificationStackScrollLayout
- .OnChildLocationsChangedListener;
+import com.android.systemui.statusbar.stack.NotificationStackScrollLayout.OnChildLocationsChangedListener;
import com.android.systemui.statusbar.stack.StackStateAnimator;
import com.android.systemui.volume.VolumeComponent;
@@ -238,6 +237,11 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
private static final int MSG_CLOSE_PANELS = 1001;
private static final int MSG_OPEN_SETTINGS_PANEL = 1002;
private static final int MSG_LAUNCH_TRANSITION_TIMEOUT = 1003;
+ //start add navigation bar show & auto hide by lpz
+ private static final int MSG_HIDE_NAVIGATION_BAR = 1004;
+ private static final int MSG_SHOW_NAVIGATION_BAR = 1005;
+ private static final int MSG_HIDE_NAVIGATION_BAR_DEALY = 1006;
+ //end add navigation bar show & auto hide by lpz
// 1020-1040 reserved for BaseStatusBar
// Time after we abort the launch transition.
@@ -368,6 +372,13 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
// settings
private QSPanel mQSPanel;
+ //start add navigation bar show & auto hide by lpz
+ public static final String HIDE_NAVIGATION_BAR = "com.neostra.hideNavigation";
+ public static final String HIDE_NAVIGATION_BAR_DELAY = "com.neostra.hideNavigationDelay";
+ public static final String SHOW_NAVIGATION_BAR = "com.neostra.showNavigation";
+ public static final String HIDE_STATUS_BAR = "com.neostra.hideStatusbar";
+ public static final String SHOW_STATUS_BAR = "com.neostra.showStatusbar";
+ //end add navigation bar show & auto hide by lpz
// top bar
BaseStatusBarHeader mHeader;
@@ -708,6 +719,15 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
addNavigationBar();
+ // start for boot show navigation bar status by lpz
+ if(SystemProperties.get("persist.sys.navbar_enable").equals("0") ||
+ SystemProperties.get("persist.sys.navbar_autohide").equals("1")){
+ removeNavigationBar();
+ }else{
+ displayNavigationBar();
+ }
+ // end for boot show navigation bar status by lpz
+
// Lastly, call to the icon policy to install/update all the icons.
mIconPolicy = new PhoneStatusBarPolicy(mContext, mIconController, mCastController,
mHotspotController, mUserInfoController, mBluetoothController,
@@ -1026,6 +1046,15 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
filter.addAction(Intent.ACTION_SCREEN_ON);
filter.addAction(DevicePolicyManager.ACTION_SHOW_DEVICE_MONITORING_DIALOG);
context.registerReceiverAsUser(mBroadcastReceiver, UserHandle.ALL, filter, null, null);
+ //start add navigation bar show & auto hide by lpz
+ IntentFilter filterSet=new IntentFilter();
+ filterSet.addAction(HIDE_NAVIGATION_BAR);
+ filterSet.addAction(HIDE_NAVIGATION_BAR_DELAY);
+ filterSet.addAction(SHOW_NAVIGATION_BAR);
+ filterSet.addAction(HIDE_STATUS_BAR);
+ filterSet.addAction(SHOW_STATUS_BAR);
+ context.registerReceiver(mNavigationOrStatusBarReceiver, filterSet);
+ //end add navigation bar show & auto hide by lpz
IntentFilter demoFilter = new IntentFilter();
if (DEBUG_MEDIA_FAKE_ARTWORK) {
@@ -1375,6 +1404,31 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
}
};
+ //start add navigation bar show & auto hide by lpz
+ private void removeNavigationBar() {
+ if(SystemProperties.get("persist.sys.navbar_enable").equals("0") ||
+ SystemProperties.get("persist.sys.navbar_autohide").equals("1")){
+ if (mNavigationBarView == null){
+ return;
+ }
+ mWindowManager.removeViewImmediate(mNavigationBarView);
+ mNavigationBarView = null;
+ //set_nav_show(false);
+ }
+ }
+
+ private void displayNavigationBar() {
+ if(SystemProperties.get("persist.sys.navbar_enable").equals("1")){
+ if (mNavigationBarView != null) {
+ return;
+ }
+ createNavigationBarView(mContext);
+ addNavigationBar();
+ //set_nav_show(true);
+ }
+ }
+ //end add navigation bar show & auto hide by lpz
+
@Override
protected void toggleSplitScreenMode(int metricsDockAction, int metricsUndockAction) {
if (mRecents == null) {
@@ -1551,6 +1605,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
| WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
| WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
| WindowManager.LayoutParams.FLAG_SPLIT_TOUCH
+ | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION
| WindowManager.LayoutParams.FLAG_SLIPPERY,
PixelFormat.TRANSLUCENT);
// this will allow the navbar to run in an overlay on devices that support this
@@ -2767,6 +2822,12 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
}
public void onScreenTurnedOff() {
+ //start add navigation bar show & auto hide by lpz
+ if (mStatusBarWindow.getVisibility() == View.GONE) {
+ mStatusBarWindow.setVisibility(View.VISIBLE);
+ mStatusBarView.setVisibility(View.VISIBLE);
+ }
+ //end add navigation bar show & auto hide by lpz
mFalsingManager.onScreenOff();
}
@@ -2795,6 +2856,23 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
case MSG_LAUNCH_TRANSITION_TIMEOUT:
onLaunchTransitionTimeout();
break;
+ //start add navigation bar show & auto hide by lpz
+ case MSG_HIDE_NAVIGATION_BAR:
+ removeNavigationBar();
+ set_nav_show(false);
+ break;
+ case MSG_HIDE_NAVIGATION_BAR_DEALY:
+ removeNavigationBar();
+ mHandler.removeMessages(MSG_HIDE_NAVIGATION_BAR);
+ mHandler.sendEmptyMessageDelayed(MSG_HIDE_NAVIGATION_BAR, 500);
+ break;
+ case MSG_SHOW_NAVIGATION_BAR:
+ if(!nav_is_show()){
+ displayNavigationBar();
+ set_nav_show(true);
+ }
+ break;
+ //end add navigation bar show & auto hide by lpz
}
}
}
@@ -3539,6 +3617,15 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
mRemoteInputController = new RemoteInputController(mStatusBarWindowManager,
mHeadsUpManager);
mStatusBarWindowManager.add(mStatusBarWindow, getStatusBarHeight());
+ //start add navigation bar show & auto hide by lpz
+ String statusString = SystemProperties.get("persist.sys.statusbar","1");
+ if (statusString.equals("1")){
+ mStatusBarWindow.setVisibility(View.VISIBLE);
+ mStatusBarView.setVisibility(View.VISIBLE);
+ }else if (statusString.equals("0")){
+ mStatusBarView.setVisibility(View.GONE);
+ }
+ //end add navigation bar show & auto hide by lpz
}
// called by makeStatusbar and also by PhoneStatusBarView
@@ -3649,6 +3736,45 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
}, cancelAction, afterKeyguardGone);
}
+ //start add navigation bar show & auto hide by lpz
+ private BroadcastReceiver mNavigationOrStatusBarReceiver=new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String action=intent.getAction();
+ if(action.equals(HIDE_NAVIGATION_BAR)){
+ removeNavigationBar();
+ mHandler.removeMessages(MSG_HIDE_NAVIGATION_BAR);
+ mHandler.sendEmptyMessageDelayed(MSG_HIDE_NAVIGATION_BAR, 500);
+ }else if(action.equals(HIDE_NAVIGATION_BAR_DELAY)){
+ mHandler.removeMessages(MSG_HIDE_NAVIGATION_BAR_DEALY);
+ mHandler.sendEmptyMessageDelayed(MSG_HIDE_NAVIGATION_BAR_DEALY, 5000);
+ }else if(action.equals(SHOW_NAVIGATION_BAR)){
+ if(nav_is_show()){
+ mHandler.removeMessages(MSG_SHOW_NAVIGATION_BAR);
+ mHandler.sendEmptyMessageDelayed(MSG_SHOW_NAVIGATION_BAR, 600);
+ }else{
+ displayNavigationBar();
+ set_nav_show(true);
+ }
+ }else if(action.equals(HIDE_STATUS_BAR)) {
+ mStatusBarWindow.setVisibility(View.GONE);
+ mStatusBarView.setVisibility(View.GONE);
+ }else if (action.equals(SHOW_STATUS_BAR)){
+ mStatusBarWindow.setVisibility(View.VISIBLE);
+ mStatusBarView.setVisibility(View.VISIBLE);
+ }
+ }
+ };
+
+ private void set_nav_show(boolean show){
+ SystemProperties.set("persist.sys.navbar_show",(show == true)?"1":"0");
+ }
+
+ private boolean nav_is_show(){
+ return SystemProperties.get("persist.sys.navbar_show","1").equals("1");
+ }
+ //end add navigation bar show & auto hide by lpz
+
private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
@@ -4056,6 +4182,9 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
}
mContext.unregisterReceiver(mBroadcastReceiver);
mContext.unregisterReceiver(mDemoReceiver);
+ //start add navigation bar show & auto hide by lpz
+ mContext.unregisterReceiver(mNavigationOrStatusBarReceiver);
+ //end add navigation bar show & auto hide by lpz
mAssistManager.destroy();
final SignalClusterView signalCluster =
diff --git a/packages/apps/Settings/res/values-zh-rCN/strings.xml b/packages/apps/Settings/res/values-zh-rCN/strings.xml
old mode 100644
new mode 100755
index 4c068f8..2f8f588
--- a/packages/apps/Settings/res/values-zh-rCN/strings.xml
+++ b/packages/apps/Settings/res/values-zh-rCN/strings.xml
@@ -3324,4 +3324,10 @@
<string name="date_mode_set_title">选择日期格式</string>
<string name="date_mode_set_summary">默认日期格式 </string>
<!-- end add by yuanantao -->
+ <!-- start add by xuhuanming -->
+ <string name="toggle_phone_bar_status">导航栏</string>
+ <string name="toggle_phone_bar_status_summary">开启导航栏</string>
+ <string name="toggle_phone_bar_auto_status">自动隐藏导航栏</string>
+ <string name="toggle_phone_bar_auto_status_summary">自动隐藏导航栏</string>
+ <!-- end add by xuhuanming -->
</resources>
diff --git a/packages/apps/Settings/res/values/strings.xml b/packages/apps/Settings/res/values/strings.xml
index 4c55f08..e67a366 100755
--- a/packages/apps/Settings/res/values/strings.xml
+++ b/packages/apps/Settings/res/values/strings.xml
@@ -7992,7 +7992,11 @@
<!-- start add by yuanantao -->
<string name="date_mode_set_title">Choose date format </string>
<string name="date_mode_set_summary">Default date format </string>
-
<!-- end add by yuanantao -->
-
+ <!-- start add by xuhuanming -->
+ <string name="toggle_phone_bar_status">Navigation Bar</string>
+ <string name="toggle_phone_bar_status_summary">Show navigation bar</string>
+ <string name="toggle_phone_bar_auto_status">Auto hide navigation bar</string>
+ <string name="toggle_phone_bar_auto_status_summary">Auto hide navigation bar</string>
+ <!-- end add by xuhuanming -->
</resources>
diff --git a/packages/apps/Settings/res/xml/display_settings.xml b/packages/apps/Settings/res/xml/display_settings.xml
index 6f4f95f..f080343 100755
--- a/packages/apps/Settings/res/xml/display_settings.xml
+++ b/packages/apps/Settings/res/xml/display_settings.xml
@@ -65,6 +65,19 @@
android:entries="@array/customize_screen_timeout_entries"
android:entryValues="@array/customize_screen_timeout_values" />
+ <!-- show&hide navigation add by xuxhuangming-->
+ <SwitchPreference
+ android:key="toggle_phone_bar_status"
+ android:summary="@string/toggle_phone_bar_status_summary"
+ android:title="@string/toggle_phone_bar_status" />
+
+ <!-- auto hide navigation add by xuxhuangming-->
+ <SwitchPreference
+ android:key="toggle_phone_bar_auto_status"
+ android:dependency="toggle_phone_bar_status"
+ android:summary="@string/toggle_phone_bar_auto_status_summary"
+ android:title="@string/toggle_phone_bar_auto_status" />
+
<SwitchPreference
android:key="camera_gesture"
android:title="@string/camera_gesture_title"
diff --git a/packages/apps/Settings/src/com/android/settings/DeviceAdminAdd.java b/packages/apps/Settings/src/com/android/settings/DeviceAdminAdd.java
old mode 100644
new mode 100755
index 2f6afd7..bc97d74
--- a/packages/apps/Settings/src/com/android/settings/DeviceAdminAdd.java
+++ b/packages/apps/Settings/src/com/android/settings/DeviceAdminAdd.java
@@ -625,6 +625,13 @@ public class DeviceAdminAdd extends Activity {
private boolean isAdminUninstallable() {
// System apps can't be uninstalled.
+ //strar for com.jd.mrd.jdsmartdoublescreen cann't Uninstall add by lpz 20200818
+ String packageName = mDeviceAdmin.getActivityInfo().applicationInfo.packageName;
+ Log.e(LOG_TAG, "---lpz---isAdminUninstallable packageName " + packageName);
+ if(packageName.contains("com.jd.mrd.jdsmartdoublescreen")) {
+ return false;
+ }
+ //end for com.jd.mrd.jdsmartdoublescreen cann't Uninstall add by lpz 20200818
return !mDeviceAdmin.getActivityInfo().applicationInfo.isSystemApp();
}
-}
+}
\ No newline at end of file
diff --git a/packages/apps/Settings/src/com/android/settings/DisplaySettings.java b/packages/apps/Settings/src/com/android/settings/DisplaySettings.java
index a530b85..9832241 100755
--- a/packages/apps/Settings/src/com/android/settings/DisplaySettings.java
+++ b/packages/apps/Settings/src/com/android/settings/DisplaySettings.java
@@ -31,6 +31,8 @@ import android.hardware.Sensor;
import android.hardware.SensorManager;
import android.os.Build;
import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
import android.os.SystemProperties;
import android.os.UserHandle;
import android.os.UserManager;
@@ -88,7 +90,17 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
private static final String KEY_WALLPAPER = "wallpaper";
private static final String KEY_VR_DISPLAY_PREF = "vr_display_pref";
private static final String KEY_HDMI_SETTINGS = "hdmi_settings";
-
+ //start add navigation bar show & auto hide hg@20200929
+ private static final String KEY_PHONE_BAR_STATUS= "toggle_phone_bar_status";
+ private static final String KEY_PHONE_BAR_AUTO_STATUS = "toggle_phone_bar_auto_status";
+ private static final int SHOW_NAV_BAR = 1;
+ private static final int HIDE_NAV_BAR = 2;
+ private static final int HIDE_NAV_BAR_DELAY = 3;
+ private boolean show_nav = true;
+ private boolean auto_hide = true;
+ private SwitchPreference mPhonebarStatusPreference;
+ private SwitchPreference mPhonebarAutoStatusPreference;
+ //end add navigation bar show & auto hide hg@20200929
private Preference mFontSizePref;
private TimeoutListPreference mScreenTimeoutPreference;
@@ -126,6 +138,14 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
mHDMIPreference.setSummary(R.string.accessibility_global_gesture_preference_summary_off);
}
//getPreferenceScreen().removePreference(mHDMIPreference);//add by luoyalong for 20180305
+ //start add navigation bar show & auto hide hg@20200929
+ mPhonebarStatusPreference = (SwitchPreference) findPreference(KEY_PHONE_BAR_STATUS);
+ mPhonebarStatusPreference.setOnPreferenceChangeListener(this);
+ mPhonebarStatusPreference.setChecked((SystemProperties.get("persist.sys.navbar_enable").equals("1"))?true:false);
+ mPhonebarAutoStatusPreference = (SwitchPreference) findPreference(KEY_PHONE_BAR_AUTO_STATUS);
+ mPhonebarAutoStatusPreference.setOnPreferenceChangeListener(this);
+ mPhonebarAutoStatusPreference.setChecked((SystemProperties.get("persist.sys.navbar_autohide").equals("1"))?true:false);
+ //end add navigation bar show & auto hide hg@20200929
getPreferenceScreen().removePreference(findPreference("wifi_display"));
if(!"tablet".equals(mProduct) || !"true".equals(supportHDMI)){
//getPreferenceScreen().removePreference(mHDMIPreference);
@@ -369,6 +389,17 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
super.onPause();
}
+ //start add navigation bar show & auto hide by lpz
+ @Override
+ public void onDestroy() {
+ super.onDestroy();
+ if(mHandler != null){
+ mHandler.removeCallbacksAndMessages(null);
+ mHandler = null;
+ }
+ }
+ //end add navigation bar show & auto hide by lpz
+
private void updateState() {
updateFontSizeSummary();
updateScreenSaverSummary();
@@ -469,8 +500,89 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
Log.e(TAG, "could not persist night mode setting", e);
}
}
+ //start add navigation bar show & auto hide hg@20200929
+ if (preference == mPhonebarStatusPreference){
+ show_nav = (Boolean) objValue;
+ Log.e("hg", "mPhonebarStatusPreference > show_nav = " + show_nav);
+ if(show_nav){
+ set_nav_enable(true);
+ mPhonebarAutoStatusPreference.setEnabled(true);
+ if(auto_hide){
+ set_nav_autohide(true);
+ mHandler.sendEmptyMessage(SHOW_NAV_BAR);
+ mHandler.removeMessages(HIDE_NAV_BAR_DELAY);
+ mHandler.sendEmptyMessage(HIDE_NAV_BAR_DELAY);
+ }else{
+ set_nav_autohide(false);
+ mHandler.removeCallbacksAndMessages(null);
+ mHandler.sendEmptyMessage(SHOW_NAV_BAR);
+ }
+ }else{
+ set_nav_enable(false);
+ mPhonebarAutoStatusPreference.setEnabled(false);
+ mHandler.removeCallbacksAndMessages(null);
+ mHandler.sendEmptyMessage(HIDE_NAV_BAR);
+ }
+ }
+
+ if(preference == mPhonebarAutoStatusPreference){
+ auto_hide = (Boolean) objValue;
+ if(auto_hide){
+ set_nav_autohide(true);
+ mHandler.removeMessages(HIDE_NAV_BAR_DELAY);
+ mHandler.sendEmptyMessageDelayed(HIDE_NAV_BAR_DELAY, 0);
+ }else{
+ set_nav_autohide(false);
+ mHandler.removeMessages(HIDE_NAV_BAR_DELAY);
+ mHandler.sendEmptyMessage(SHOW_NAV_BAR);
+ }
+ }
+ //end add navigation bar show & auto hide hg@20200929
return true;
}
+ //start add navigation bar show & auto hide hg@20200929
+ private void set_nav_enable(boolean enable){
+ SystemProperties.set("persist.sys.navbar_enable",(enable == true)?"1":"0");
+ }
+ private void set_nav_autohide(boolean autohide){
+ SystemProperties.set("persist.sys.navbar_autohide",(autohide == true)?"1":"0");
+ }
+ /*private void set_nav_show(boolean show){
+ SystemProperties.set("persist.sys.navgationbar_show",(show == true)?"1":"0");
+ }*/
+ Handler mHandler = new Handler(){
+ public void handleMessage(Message msg) {
+ switch(msg.what){
+ case SHOW_NAV_BAR:
+ show_nav_bar();
+ break;
+ case HIDE_NAV_BAR:
+ hide_nav_bar();
+ break;
+ case HIDE_NAV_BAR_DELAY:
+ hide_nav_bar_delay();
+ break;
+ default:
+ break;
+ }
+ }
+ };
+
+ private void show_nav_bar(){
+ Intent intent = new Intent("com.neostra.showNavigation");
+ getActivity().sendBroadcast(intent);
+ }
+
+ private void hide_nav_bar(){
+ Intent intent = new Intent("com.neostra.hideNavigation");
+ getActivity().sendBroadcast(intent);
+ }
+
+ private void hide_nav_bar_delay(){
+ Intent intent = new Intent("com.neostra.hideNavigationDelay");
+ getActivity().sendBroadcast(intent);
+ }
+ //end add navigation bar show & auto hide hg@20200929
@Override
public boolean onPreferenceTreeClick(Preference preference) {
commit a52c5043a91e15dbae6fd89352b7fd6fd23b156c
Author: liupingzhang <liupingzhang@neostra.com>
Date: Tue Oct 13 15:10:54 2020 +0800
1824d-jd-w25d:on Swipe From Bottom, show navigation bar when navigation auto hide
diff --git a/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java b/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
index 43c610d..58395b9 100755
--- a/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -234,6 +234,8 @@ public class PhoneWindowManager implements WindowManagerPolicy {
static final int PENDING_KEY_NULL = -1;
+ private static final int AUTO_HIDE_NAV_BAR = 1;// add navigation bar show & auto hide by lpz
+
// Controls navigation bar opacity depending on which workspace stacks are currently
// visible.
// Nav bar is always opaque when either the freeform stack or docked stack is visible.
@@ -1931,6 +1933,14 @@ public class PhoneWindowManager implements WindowManagerPolicy {
}
@Override
public void onSwipeFromBottom() {
+ //start add navigation bar show & auto hide by lpz
+ if(SystemProperties.get("persist.sys.navbar_enable").equals("1")){
+ Intent showNav = new Intent("com.neostra.showNavigation");
+ mContext.sendBroadcast(showNav);
+ handler.removeMessages(AUTO_HIDE_NAV_BAR);
+ handler.sendEmptyMessageDelayed(AUTO_HIDE_NAV_BAR, 5000);
+ }
+ //end add navigation bar show & auto hide by lpz
//add by yuanantao 20180707 begin
if (mHideStatusBar){
return;
@@ -5914,7 +5924,22 @@ public class PhoneWindowManager implements WindowManagerPolicy {
}
}
};
-
+ //start add navigation bar show & auto hide by lpz
+ Handler handler = new Handler(){
+ public void handleMessage(Message msg) {
+ switch(msg.what){
+ case AUTO_HIDE_NAV_BAR:
+ if(SystemProperties.get("persist.sys.navbar_autohide").equals("1")){//hg mark
+ Intent intent = new Intent("com.neostra.hideNavigation");
+ mContext.sendBroadcast(intent);
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ };
+ //end add navigation bar show & auto hide by lpz
// Assume this is called from the Handler thread.
private void takeScreenshot(final int screenshotType) {
synchronized (mScreenshotLock) {