Android7.0长按电源键增加重启功能按钮

--- a/frameworks/base/core/res/res/values/config.xml
+++ b/frameworks/base/core/res/res/values/config.xml
@@ -2155,6 +2155,7 @@
          -->
     
         power
+       restart
         bugreport
         users
     

diff --git a/frameworks/base/core/res/res/values/strings.xml b/frameworks/base/core/res/res/values/strings.xml
index 6555160..54508c1 100755
--- a/frameworks/base/core/res/res/values/strings.xml
+++ b/frameworks/base/core/res/res/values/strings.xml
@@ -562,6 +562,10 @@
     
     Power off
 
+    
+    
+    @string/sim_restart_button 
+
     
     Bug report

--- a/frameworks/base/core/res/res/values/symbols.xml
+++ b/frameworks/base/core/res/res/values/symbols.xml
@@ -1585,6 +1585,7 @@
   
   
   
+  
   
   
   
@@ -1596,6 +1597,7 @@
   
   
   
+  
   
   
   

--- a/frameworks/base/services/core/java/com/android/server/policy/GlobalActions.java
+++ b/frameworks/base/services/core/java/com/android/server/policy/GlobalActions.java
@@ -103,6 +103,7 @@ class GlobalActions implements DialogInterface.OnDismissListener, DialogInterfac
     private static final String GLOBAL_ACTION_KEY_LOCKDOWN = "lockdown";
     private static final String GLOBAL_ACTION_KEY_VOICEASSIST = "voiceassist";
     private static final String GLOBAL_ACTION_KEY_ASSIST = "assist";
+    private static final String GLOBAL_ACTION_KEY_RESTART = "restart";
 
     private final Context mContext;
     private final WindowManagerFuncs mWindowManagerFuncs;
@@ -298,6 +299,8 @@ class GlobalActions implements DialogInterface.OnDismissListener, DialogInterfac
                 mItems.add(getVoiceAssistAction());
             } else if (GLOBAL_ACTION_KEY_ASSIST.equals(actionKey)) {
                 mItems.add(getAssistAction());
+           } else if (GLOBAL_ACTION_KEY_RESTART.equals(actionKey)) {
+               mItems.add(new RestartAction());
             } else {
                 Log.e(TAG, "Invalid global action key " + actionKey);
             }
@@ -369,6 +372,45 @@ class GlobalActions implements DialogInterface.OnDismissListener, DialogInterfac
         }
     }

+ private final class RestartAction extends SinglePressAction implements LongPressAction {
+        private RestartAction() {
+            super(R.drawable.ic_restart, R.string.global_action_restart);
+        }
+
+        @Override
+        public boolean onLongPress() {
+            UserManager um = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
+            if (!um.hasUserRestriction(UserManager.DISALLOW_SAFE_BOOT)) {
+                mWindowManagerFuncs.rebootSafeMode(true);
+                return true;
+            }
+            return false;
+        }
+
+        @Override
+        public boolean showDuringKeyguard() {
+            return true;
+        }
+
+        @Override
+        public boolean showBeforeProvisioning() {
+            return true;
+        }
+
+        @Override
+        public void onPress() {
+    //        mWindowManagerFuncs.reboot(false /* confirm */);
+             try {
+                    Intent intent = new Intent(Intent.ACTION_REBOOT);
+                    intent.putExtra("nowait" , 1);
+                    intent.putExtra("interval" , 1);
+                    intent.putExtra("window" , 0);
+                    mContext.sendBroadcast(intent);
+              } catch (Exception e) {
+               }
+        }
+     }
+

 

 

 

 

 

你可能感兴趣的:(mtk_android)