summaryrefslogtreecommitdiffstats
path: root/services/java/com/android/server/BatteryService.java
diff options
context:
space:
mode:
Diffstat (limited to 'services/java/com/android/server/BatteryService.java')
-rw-r--r--services/java/com/android/server/BatteryService.java79
1 files changed, 46 insertions, 33 deletions
diff --git a/services/java/com/android/server/BatteryService.java b/services/java/com/android/server/BatteryService.java
index 0045f4a..40758d3 100644
--- a/services/java/com/android/server/BatteryService.java
+++ b/services/java/com/android/server/BatteryService.java
@@ -127,6 +127,8 @@ public final class BatteryService extends Binder {
private long mDischargeStartTime;
private int mDischargeStartLevel;
+ private boolean mUpdatesStopped;
+
private Led mLed;
private boolean mSentLowBatteryBroadcast = false;
@@ -231,7 +233,7 @@ public final class BatteryService extends Binder {
Intent intent = new Intent(Intent.ACTION_REQUEST_SHUTDOWN);
intent.putExtra(Intent.EXTRA_KEY_CONFIRM, false);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- mContext.startActivity(intent);
+ mContext.startActivityAsUser(intent, UserHandle.CURRENT);
}
}
@@ -244,16 +246,18 @@ public final class BatteryService extends Binder {
Intent intent = new Intent(Intent.ACTION_REQUEST_SHUTDOWN);
intent.putExtra(Intent.EXTRA_KEY_CONFIRM, false);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- mContext.startActivity(intent);
+ mContext.startActivityAsUser(intent, UserHandle.CURRENT);
}
}
private void updateLocked() {
- // Update the values of mAcOnline, et. all.
- native_update();
+ if (!mUpdatesStopped) {
+ // Update the values of mAcOnline, et. all.
+ native_update();
- // Process the new values.
- processValuesLocked();
+ // Process the new values.
+ processValuesLocked();
+ }
}
private void processValuesLocked() {
@@ -543,6 +547,9 @@ public final class BatteryService extends Binder {
synchronized (mLock) {
if (args == null || args.length == 0 || "-a".equals(args[0])) {
pw.println("Current Battery Service state:");
+ if (mUpdatesStopped) {
+ pw.println(" (UPDATES STOPPED -- use 'reset' to restart)");
+ }
pw.println(" AC powered: " + mAcOnline);
pw.println(" USB powered: " + mUsbOnline);
pw.println(" Wireless powered: " + mWirelessOnline);
@@ -554,35 +561,41 @@ public final class BatteryService extends Binder {
pw.println(" voltage:" + mBatteryVoltage);
pw.println(" temperature: " + mBatteryTemperature);
pw.println(" technology: " + mBatteryTechnology);
- } else if (false) {
- // DO NOT SUBMIT WITH THIS TURNED ON
- if (args.length == 3 && "set".equals(args[0])) {
- String key = args[1];
- String value = args[2];
- try {
- boolean update = true;
- if ("ac".equals(key)) {
- mAcOnline = Integer.parseInt(value) != 0;
- } else if ("usb".equals(key)) {
- mUsbOnline = Integer.parseInt(value) != 0;
- } else if ("wireless".equals(key)) {
- mWirelessOnline = Integer.parseInt(value) != 0;
- } else if ("status".equals(key)) {
- mBatteryStatus = Integer.parseInt(value);
- } else if ("level".equals(key)) {
- mBatteryLevel = Integer.parseInt(value);
- } else if ("invalid".equals(key)) {
- mInvalidCharger = Integer.parseInt(value);
- } else {
- update = false;
- }
- if (update) {
- processValuesLocked();
- }
- } catch (NumberFormatException ex) {
- pw.println("Bad value: " + value);
+ } else if (args.length == 3 && "set".equals(args[0])) {
+ String key = args[1];
+ String value = args[2];
+ try {
+ boolean update = true;
+ if ("ac".equals(key)) {
+ mAcOnline = Integer.parseInt(value) != 0;
+ } else if ("usb".equals(key)) {
+ mUsbOnline = Integer.parseInt(value) != 0;
+ } else if ("wireless".equals(key)) {
+ mWirelessOnline = Integer.parseInt(value) != 0;
+ } else if ("status".equals(key)) {
+ mBatteryStatus = Integer.parseInt(value);
+ } else if ("level".equals(key)) {
+ mBatteryLevel = Integer.parseInt(value);
+ } else if ("invalid".equals(key)) {
+ mInvalidCharger = Integer.parseInt(value);
+ } else {
+ pw.println("Unknown set option: " + key);
+ update = false;
}
+ if (update) {
+ mUpdatesStopped = true;
+ processValuesLocked();
+ }
+ } catch (NumberFormatException ex) {
+ pw.println("Bad value: " + value);
}
+ } else if (args.length == 1 && "reset".equals(args[0])) {
+ mUpdatesStopped = false;
+ updateLocked();
+ } else {
+ pw.println("Dump current battery state, or:");
+ pw.println(" set ac|usb|wireless|status|level|invalid <value>");
+ pw.println(" reset");
}
}
}