效果
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. -->
- left;volume_sub,back,home,recent,volume_add,screenshot;right
+ left;soft_shutdown,volume_sub,back,home,recent,volume_add,screenshot;space
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. -->
- left;volume_sub,back,home,recent,volume_add,screenshot;right[.1W]
+ left;soft_shutdown,volume_sub,back,home,recent,volume_add,screenshot;space
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. -->
- left;volume_sub,back,home,recent,volume_add,screenshot;right[.1W]
+ left;soft_shutdown,volume_sub,back,home,recent,volume_add,screenshot;space
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. -->
- left;volume_sub,back,home,recent,volume_add,screenshot;right[.1W]
+ left;soft_shutdown,volume_sub,back,home,recent,volume_add,screenshot;space
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 @@
true
- left;volume_sub,back,home,recent,volume_add,screenshot;right[.1W]
+ left;soft_shutdown,volume_sub,back,home,recent,volume_add,screenshot;space
290
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. -->
- left;volume_sub,back,home,recent,volume_add,screenshot;right[.1W]
+ left;soft_shutdown,volume_sub,back,home,recent,volume_add,screenshot;space
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. -->
- left;volume_sub,back,home,recent,volume_add,screenshot;right[.1W]
+ left;soft_shutdown,volume_sub,back,home,recent,volume_add,screenshot;space
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 @@
- left;volume_sub,back,home,recent,volume_add,screenshot;right[.1W]
-
+ left;soft_shutdown,volume_sub,back,home,recent,volume_add,screenshot;space
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 @@
- left;volume_sub,back,home,recent,volume_add,screenshot;right
+ left;soft_shutdown,volume_sub,back,home,recent,volume_add,screenshot;space
back[1.7WC];home;contextual[1WC]
false
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