android 9 3288 導航欄添加關機按鈕

效果

 

diff --git a/frameworks/base/packages/SystemUI/res/values-sw372dp/config.xml b/frameworks/base/packages/SystemUI/res/values-sw372dp/config.xml
index f66ba9c..d7b3391 100755
--- a/frameworks/base/packages/SystemUI/res/values-sw372dp/config.xml
+++ b/frameworks/base/packages/SystemUI/res/values-sw372dp/config.xml
@@ -21,5 +21,5 @@
      for different hardware and product builds. -->
 <resources>
     <!-- Nav bar button default ordering/layout -->
-    <string name="config_navBarLayout" translatable="false">left;volume_sub,back,home,recent,volume_add,screenshot;right</string>
+    <string name="config_navBarLayout" translatable="false">left;soft_shutdown,volume_sub,back,home,recent,volume_add,screenshot;space</string>
 </resources>
diff --git a/frameworks/base/packages/SystemUI/res/values-sw400dp/config.xml b/frameworks/base/packages/SystemUI/res/values-sw400dp/config.xml
index fb418ff..d7b3391 100644
--- a/frameworks/base/packages/SystemUI/res/values-sw400dp/config.xml
+++ b/frameworks/base/packages/SystemUI/res/values-sw400dp/config.xml
@@ -21,5 +21,5 @@
      for different hardware and product builds. -->
 <resources>
     <!-- Nav bar button default ordering/layout -->
-    <string name="config_navBarLayout" translatable="false">left;volume_sub,back,home,recent,volume_add,screenshot;right[.1W]</string>
+    <string name="config_navBarLayout" translatable="false">left;soft_shutdown,volume_sub,back,home,recent,volume_add,screenshot;space</string>
 </resources>
diff --git a/frameworks/base/packages/SystemUI/res/values-sw450dp/config.xml b/frameworks/base/packages/SystemUI/res/values-sw450dp/config.xml
index fb418ff..d7b3391 100644
--- a/frameworks/base/packages/SystemUI/res/values-sw450dp/config.xml
+++ b/frameworks/base/packages/SystemUI/res/values-sw450dp/config.xml
@@ -21,5 +21,5 @@
      for different hardware and product builds. -->
 <resources>
     <!-- Nav bar button default ordering/layout -->
-    <string name="config_navBarLayout" translatable="false">left;volume_sub,back,home,recent,volume_add,screenshot;right[.1W]</string>
+    <string name="config_navBarLayout" translatable="false">left;soft_shutdown,volume_sub,back,home,recent,volume_add,screenshot;space</string>
 </resources>
diff --git a/frameworks/base/packages/SystemUI/res/values-sw500dp/config.xml b/frameworks/base/packages/SystemUI/res/values-sw500dp/config.xml
index fb418ff..d7b3391 100644
--- a/frameworks/base/packages/SystemUI/res/values-sw500dp/config.xml
+++ b/frameworks/base/packages/SystemUI/res/values-sw500dp/config.xml
@@ -21,5 +21,5 @@
      for different hardware and product builds. -->
 <resources>
     <!-- Nav bar button default ordering/layout -->
-    <string name="config_navBarLayout" translatable="false">left;volume_sub,back,home,recent,volume_add,screenshot;right[.1W]</string>
+    <string name="config_navBarLayout" translatable="false">left;soft_shutdown,volume_sub,back,home,recent,volume_add,screenshot;space</string>
 </resources>
diff --git a/frameworks/base/packages/SystemUI/res/values-sw600dp/config.xml b/frameworks/base/packages/SystemUI/res/values-sw600dp/config.xml
index 9216e70..6497788 100644
--- a/frameworks/base/packages/SystemUI/res/values-sw600dp/config.xml
+++ b/frameworks/base/packages/SystemUI/res/values-sw600dp/config.xml
@@ -30,7 +30,7 @@
     <bool name="config_keyguardUserSwitcher">true</bool>
 
     <!-- Nav bar button default ordering/layout -->
-    <string name="config_navBarLayout" translatable="false">left;volume_sub,back,home,recent,volume_add,screenshot;right[.1W]</string>
+    <string name="config_navBarLayout" translatable="false">left;soft_shutdown,volume_sub,back,home,recent,volume_add,screenshot;space</string>
 
     <!-- Animation duration when using long press on recents to dock -->
     <integer name="long_press_dock_anim_duration">290</integer>
diff --git a/frameworks/base/packages/SystemUI/res/values-sw650dp/config.xml b/frameworks/base/packages/SystemUI/res/values-sw650dp/config.xml
index fb418ff..d7b3391 100644
--- a/frameworks/base/packages/SystemUI/res/values-sw650dp/config.xml
+++ b/frameworks/base/packages/SystemUI/res/values-sw650dp/config.xml
@@ -21,5 +21,5 @@
      for different hardware and product builds. -->
 <resources>
     <!-- Nav bar button default ordering/layout -->
-    <string name="config_navBarLayout" translatable="false">left;volume_sub,back,home,recent,volume_add,screenshot;right[.1W]</string>
+    <string name="config_navBarLayout" translatable="false">left;soft_shutdown,volume_sub,back,home,recent,volume_add,screenshot;space</string>
 </resources>
diff --git a/frameworks/base/packages/SystemUI/res/values-sw800dp/config.xml b/frameworks/base/packages/SystemUI/res/values-sw800dp/config.xml
index fb418ff..d7b3391 100644
--- a/frameworks/base/packages/SystemUI/res/values-sw800dp/config.xml
+++ b/frameworks/base/packages/SystemUI/res/values-sw800dp/config.xml
@@ -21,5 +21,5 @@
      for different hardware and product builds. -->
 <resources>
     <!-- Nav bar button default ordering/layout -->
-    <string name="config_navBarLayout" translatable="false">left;volume_sub,back,home,recent,volume_add,screenshot;right[.1W]</string>
+    <string name="config_navBarLayout" translatable="false">left;soft_shutdown,volume_sub,back,home,recent,volume_add,screenshot;space</string>
 </resources>
diff --git a/frameworks/base/packages/SystemUI/res/values-sw900dp/config.xml b/frameworks/base/packages/SystemUI/res/values-sw900dp/config.xml
index 833016b..4f19494 100644
--- a/frameworks/base/packages/SystemUI/res/values-sw900dp/config.xml
+++ b/frameworks/base/packages/SystemUI/res/values-sw900dp/config.xml
@@ -19,6 +19,5 @@
 <resources>
     <!-- Nav bar button default ordering/layout -->
-    <string name="config_navBarLayout" translatable="false">left;volume_sub,back,home,recent,volume_add,screenshot;right[.1W]</string>
-
+    <string name="config_navBarLayout" translatable="false">left;soft_shutdown,volume_sub,back,home,recent,volume_add,screenshot;space</string>
 </resources>
diff --git a/frameworks/base/packages/SystemUI/res/values/config.xml b/frameworks/base/packages/SystemUI/res/values/config.xml
index 4d53ea8..d80d80e 100755
--- a/frameworks/base/packages/SystemUI/res/values/config.xml
+++ b/frameworks/base/packages/SystemUI/res/values/config.xml
@@ -363,7 +363,7 @@
     </string-array>
 
     <!-- Nav bar button default ordering/layout -->
-    <string name="config_navBarLayout" translatable="false">left;volume_sub,back,home,recent,volume_add,screenshot;right</string>
+    <string name="config_navBarLayout" translatable="false">left;soft_shutdown,volume_sub,back,home,recent,volume_add,screenshot;space</string>
     <string name="config_navBarLayoutQuickstep" translatable="false">back[1.7WC];home;contextual[1WC]</string>
 
     <bool name="quick_settings_show_full_alarm">false</bool>
diff --git a/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java b/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java
index 6fd36b4..a76f828 100755
--- a/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java
+++ b/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarFragment.java
@@ -794,6 +794,9 @@ public class NavigationBarFragment extends Fragment implements Callbacks {
             screenshotButton.setVisibility(View.GONE);
         }
 
+        ButtonDispatcher powerButton = mNavigationBarView.getPowerButton();
+        powerButton.setOnClickListener(this:: powerClick);
+        powerButton.setOnTouchListener(this:: powerTouch);
         ButtonDispatcher volumeAddButton=mNavigationBarView.getVolumeAddButton();
         ButtonDispatcher volumeSubButton=mNavigationBarView.getVolumeSubButton();
         boolean isShowVolumeButton="true".equals(SystemProperties.get("ro.rk.systembar.voiceicon","true"));
@@ -994,11 +997,22 @@ public class NavigationBarFragment extends Fragment implements Callbacks {
         return false;
     }
 
+    private boolean powerTouch(View v, MotionEvent event) {
+        if (event.getAction() == MotionEvent.ACTION_UP) {
+            Intent intent=new Intent("com.google.systemui.poweroff");
+            getContext().sendBroadcast(intent);
+        }
+        return false;
+    }
     private void screenshotClick(View v) {
         Intent intent=new Intent("android.intent.action.SCREENSHOT");
         getContext().sendBroadcast(intent);
     }
 
+    private void powerClick(View v) {
+        Intent intent=new Intent("com.google.systemui.poweroff");
+        getContext().sendBroadcast(intent);            
+    }
     private void onAccessibilityClick(View v) {
         mAccessibilityManager.notifyAccessibilityButtonClicked();
     }
diff --git a/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarInflaterView.java b/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarInflaterView.java
index f8c7fe3..7ae4987 100644
--- a/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarInflaterView.java
+++ b/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarInflaterView.java
@@ -72,6 +72,7 @@ public class NavigationBarInflaterView extends FrameLayout
     public static final String SCREENSHOT = "screenshot";
     public static final String VOLUME_ADD = "volume_add";
     public static final String VOLUME_SUB = "volume_sub";
+    public static final String SOFT_SHUTDOWN = "soft_shutdown";
 
     public static final String GRAVITY_SEPARATOR = ";";
     public static final String BUTTON_SEPARATOR = ",";
@@ -414,6 +415,8 @@ public class NavigationBarInflaterView extends FrameLayout
             v = inflater.inflate(R.layout.volume_add, parent, false);
         } else if (VOLUME_SUB.equals(button)) {
             v = inflater.inflate(R.layout.volume_sub, parent, false);
+        }  else if (SOFT_SHUTDOWN.equals(button)) {
+            v = inflater.inflate(R.layout.soft_shutdown, parent, false);
         } else if (button.startsWith(KEY)) {
             String uri = extractImage(button);
             int code = extractKeycode(button);
diff --git a/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java b/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
index cc0b12b..85934e2 100644
--- a/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
+++ b/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
@@ -132,6 +132,7 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav
     private KeyButtonDrawable mAccessibilityIcon;
     private KeyButtonDrawable mVolumeAddIcon;
     private KeyButtonDrawable mVolumeSubIcon;
+       private KeyButtonDrawable mPowerIcon;
     private KeyButtonDrawable mScreenshotIcon;
     private TintedKeyButtonDrawable mRotateSuggestionIcon;
 
@@ -310,6 +311,7 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav
         mButtonDispatchers.put(R.id.screenshot, new ButtonDispatcher(R.id.screenshot));
         mButtonDispatchers.put(R.id.volume_add, new ButtonDispatcher(R.id.volume_add));
         mButtonDispatchers.put(R.id.volume_sub, new ButtonDispatcher(R.id.volume_sub));
+               mButtonDispatchers.put(R.id.soft_shutdown, new ButtonDispatcher(R.id.soft_shutdown));
         mButtonDispatchers.put(R.id.rotate_suggestion,
                 new ButtonDispatcher(R.id.rotate_suggestion));
         mButtonDispatchers.put(R.id.menu_container,
@@ -425,6 +427,9 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav
         return mButtonDispatchers.get(R.id.volume_sub);
     }
 
+    public ButtonDispatcher getPowerButton() {
+        return mButtonDispatchers.get(R.id.soft_shutdown);
+    }
     public ButtonDispatcher getRecentsButton() {
         return mButtonDispatchers.get(R.id.recent_apps);
     }
@@ -520,6 +525,7 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav
 
             mVolumeAddIcon = getDrawable(lightContext, darkContext, R.drawable.ic_sysbar_volume_add_button);
             mVolumeSubIcon = getDrawable(lightContext, darkContext, R.drawable.ic_sysbar_volume_sub_button);
+                       mPowerIcon = getDrawable(lightContext, darkContext, R.drawable.ic_sysbar_soft_shutdown_button);
             mScreenshotIcon = getDrawable(lightContext, darkContext, R.drawable.ic_sysbar_capture_button);
 
             updateRotateSuggestionButtonStyle(mRotateBtnStyle, false);
@@ -657,6 +663,7 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav
         getBackButton().setImageDrawable(backIcon);
         getVolumeAddButton().setImageDrawable(mVolumeAddIcon);
         getVolumeSubButton().setImageDrawable(mVolumeSubIcon);
+               getPowerButton().setImageDrawable(mPowerIcon);
         getScreenshotButton().setImageDrawable(mScreenshotIcon);
 
         updateRecentsIcon();

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章