RK3288 添加隐藏状态栏和虚拟按键的选项

话不多说。直接贴上补丁:
其中补丁的下载地址:https://download.csdn.net/download/Mrdeath/11968049
 



diff --git a/frameworks/base/core/java/android/provider/Settings.java b/frameworks/base/core/java/android/provider/Settings.java
index ed82d5e..e2febbd 100644
--- a/frameworks/base/core/java/android/provider/Settings.java
+++ b/frameworks/base/core/java/android/provider/Settings.java
@@ -1592,6 +1592,12 @@ public final class Settings {
          */
         public static final String SCREENSHOT_BUTTON_SHOW="screenshot_button_show";
 
+        /**
+         *hide system bar
+         * @hide
+         */
+        public static final String SYSTEMBAR_HIDE="systembar_hide";
+
         /**        
          * @deprecated Use {@link android.provider.Settings.Global#AIRPLANE_MODE_ON} instead
          */
diff --git a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
index 6e712c9..0c9a5d8 100755
--- a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
+++ b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
@@ -19,6 +19,7 @@
 
     
     false
+    false
     
     /mnt/sdcard
     true
diff --git a/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
index eb0fad7..a86090f 100755
--- a/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
+++ b/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
@@ -1996,7 +1996,8 @@ public class DatabaseHelper extends SQLiteOpenHelper {
                          R.integer.def_hdmi_lcd_timeout);
             loadBooleanSetting(stmt, Settings.System.SCREENSHOT_BUTTON_SHOW,
                     R.bool.def_screenshot_button_show);
-
+            loadBooleanSetting(stmt, Settings.System.SYSTEMBAR_HIDE,
+                    R.bool.def_systembar_hide);
                     String enableUms= SystemProperties.get("ro.factory.hasUMS","false");
                     if("true".equals(enableUms))//if has UMS function,flash is primary storage
                     {
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 59b0057..0c39547 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
@@ -370,6 +370,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode {
 
         addNavigationBar();
 
+       
+        changeBarHideStatus();
         // Lastly, call to the icon policy to install/update all the icons.
         mIconPolicy = new PhoneStatusBarPolicy(mContext);
 
@@ -775,6 +777,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode {
         filter.addAction(Intent.ACTION_SCREEN_OFF);
         filter.addAction(Intent.ACTION_SCREEN_ON);
         filter.addAction(ACTION_DEMO);
+        filter.addAction("com.tchip.changeBarHideStatus");
         context.registerReceiver(mBroadcastReceiver, filter);
 
         // listen for USER_SETUP_COMPLETE setting (per-user)
@@ -1001,6 +1004,16 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode {
     };
     
     private boolean mBarIsAdd = true;
+    private void changeBarHideStatus()
+    {
+         boolean hide_systembar = Settings.System.getInt(mContext.getContentResolver(),Settings.System.SYSTEMBAR_HIDE,0)==1;
+
+        if(hide_systembar)
+        removeBar(false);
+        else{
+         addBar();   
+        }
+    }
     private void addBarInside(){
         if (!mBarIsAdd){
             Log.d(TAG,"add Bar");
@@ -1014,7 +1027,10 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode {
         }
     }
     
-    private void removeBar(){
+    private void removeBar(){
+            removeBar(true);
+    }
+    private void removeBar(boolean needToast){
         if (mBarIsAdd){
             Log.d(TAG,"remove Bar");
             if (mNavigationBarView != null)
@@ -1022,6 +1038,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode {
             if (mStatusBarWindow != null)
                 mWindowManager.removeView(mStatusBarWindow);
             mBarIsAdd = false;
+            if(needToast)
             Toast.makeText(mContext, mContext.getResources().getString(R.string.hidebar_msg), 3000).show();
         }
     }
@@ -2722,6 +2739,9 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode {
                         }
                     }
                 }
+            }else if("com.tchip.changeBarHideStatus".equals(action))
+            {
+                changeBarHideStatus();
             }
         }
     };
diff --git a/packages/apps/Settings/res/values-zh-rCN/strings.xml b/packages/apps/Settings/res/values-zh-rCN/strings.xml
index df5ef7f..3cdb045 100755
--- a/packages/apps/Settings/res/values-zh-rCN/strings.xml
+++ b/packages/apps/Settings/res/values-zh-rCN/strings.xml
@@ -2244,5 +2244,7 @@
     
     "格式化 USB 存储设备"
     "清除 USB 存储设备中的全部数据,例如音乐和照片"
-        
+     
+
+    永久隐藏工具栏   
 
diff --git a/packages/apps/Settings/res/values-zh-rHK/strings.xml b/packages/apps/Settings/res/values-zh-rHK/strings.xml
index f862fcc..d2d1990 100644
--- a/packages/apps/Settings/res/values-zh-rHK/strings.xml
+++ b/packages/apps/Settings/res/values-zh-rHK/strings.xml
@@ -2046,4 +2046,7 @@
     "拍照"
     "從圖片庫選擇相片"
     
+
+
+    永久隱藏工具列  
 
diff --git a/packages/apps/Settings/res/values-zh-rTW/strings.xml b/packages/apps/Settings/res/values-zh-rTW/strings.xml
index cbf0066..7fdc97b 100644
--- a/packages/apps/Settings/res/values-zh-rTW/strings.xml
+++ b/packages/apps/Settings/res/values-zh-rTW/strings.xml
@@ -791,6 +791,7 @@
     "系統更新"
     
     "Android 版本"
+    "韌體版本"
     "型號"
     "設備 ID"
     "基頻版本"
@@ -2119,4 +2120,5 @@
    "通過按下並滾動鼠標滾輪來執行放大或縮小操作"
    "設置模擬觸點的初始間距"
    "設置模擬觸點的移動步長"
+      永久隱藏工具列  
 
diff --git a/packages/apps/Settings/res/values/strings.xml b/packages/apps/Settings/res/values/strings.xml
index dc40d05..11027de 100755
--- a/packages/apps/Settings/res/values/strings.xml
+++ b/packages/apps/Settings/res/values/strings.xml
@@ -5112,4 +5112,8 @@
     
     Erase USB storage
     Erases all data on the USB storage, such as music and photos
+
+
+    Always hide the status bar
+
 
diff --git a/packages/apps/Settings/res/xml/display_settings.xml b/packages/apps/Settings/res/xml/display_settings.xml
index 577b1a6..e3560b1 100755
--- a/packages/apps/Settings/res/xml/display_settings.xml
+++ b/packages/apps/Settings/res/xml/display_settings.xml
@@ -24,6 +24,9 @@
                 android:title="@string/brightness"
                 android:persistent="false"/>
 
+        
         

再补一点自己调查的小知识:

firefly的rk3288android5.1系统里面,发现隐藏了状态栏后,在屏幕的下边缘上划,就会又调出状态栏:

贴上源码:

					
         private void removeBar(boolean needToast){					
             Log.d("LOUHN_DEBUG","in removeBar");					
             if (mBarIsAdd){					
                         Log.d(TAG,"remove Bar");					
					
                     //$_rockchip_$_modify_$_huangjc begin,add show/hide TitleBar          interface  for statusbar					
                     if(mContext.getResources().getConfiguration().enableMultiWindow()){					
                         try {					
                             mWindowManagerService.changeTitleBar(false);					
                         } catch (RemoteException e) {					
                             Log.w(TAG, "Error changeTitleBar transition: " + e);					
                         }					
                         }					
                     //$_rockchip_$_modify_$_end					
                         if (mNavigationBarView != null){					
                                 mWindowManager.removeView(mNavigationBarView);					
                        }					
                        if (!mContext.getResources().                                      getConfiguration().                     enableMultiWindow()&&mStatusBarWindow != null)					
                           mStatusBarWindow.setVisibility(View.GONE);					
                      if(signalCluster_win!=null)					
                           signalCluster_win=null;					
                       if (mNavigationBarView != null)					
                           mNavigationBarView = null;					
					
                       if(mNotificationLite != null){					
                         mNotificationLite.closeCenter();					
                       }					
                         mBarIsAdd = false;		//注意这个变量			
                         if(!isMultiChange)					
                         Toast.makeText(mContext, mContext.getResources().                 getString(R.       string.hidebar_msg)					
 , 1000).show();					
					
                 }					
         }					

在 removeBar()这个方法里面变量mBarIsAdd = false;

上划操作会调用addBarinside()方法,由于mBarIsAdd被设为了false,所以这里就直接执行了addBar的方法,被隐藏的状态栏又出现了如果不想上划出现状态栏,只要把removeBar()方法里面,把mBarIsAdd=false删除就可以了

         private void addBarInside(){				
                 Log.d("LOUHN_DEBUG","in addBarInside()");				
                 if (!mBarIsAdd){		  //注意这个判断		
                         Log.d(TAG,"add Bar");				
                     Log.d("LOUHN_DEBUG","in addBarInside()222");				
 				
           try {				
             boolean showNav = mWindowManagerService.hasNavigationBar();				
             if (DEBUG) Log.v(TAG, "hasNavigationBar=" + showNav);				
             if (showNav) {				
                 //haungjc:win bar				
                 if(mContext.getResources().getConfiguration().enableMultiWindow()){				
                     //$_rockchip_$_modify_$_huangjc begin,add show/hide TitleBar interfac for statusbar				
                     try {				
                         mWindowManagerService.changeTitleBar(true);				
                     } catch (RemoteException e) {				
                         Log.w(TAG, "Error changeTitleBar transition: " + e);				
                     }				
                     //$_rockchip_$_modify_$_end				
                     mNavigationBarView =				
                     (NavigationBarView) View.inflate(mContext, R.layout.                  navigation_bar_win, null);				
               }else{				
                 mNavigationBarView =				
                     (NavigationBarView) View.inflate(mContext, R.layout.navigation_bar,   null);				
               }				
                 mNavigationBarView.setDisabledFlags(mDisabled);				

划后调用addBarInside()方法

你可能感兴趣的:(RK3288_Android)