Add thermal shutdown.  If battery temp >= 68C.

Change-Id: I625fa47939d8ecc532457b5c6e13f91d83bfbcc5
diff --git a/services/java/com/android/server/BatteryService.java b/services/java/com/android/server/BatteryService.java
index 57944fb..5cf61bd 100644
--- a/services/java/com/android/server/BatteryService.java
+++ b/services/java/com/android/server/BatteryService.java
@@ -177,6 +177,7 @@
     void systemReady() {
         // check our power situation now that it is safe to display the shutdown dialog.
         shutdownIfNoPower();
+        shutdownIfOverTemp();
     }
 
     private final void shutdownIfNoPower() {
@@ -190,6 +191,17 @@
         }
     }
 
+    private final void shutdownIfOverTemp() {
+        // shut down gracefully if temperature is too high (> 68.0C)
+        // wait until the system has booted before attempting to display the shutdown dialog.
+        if (mBatteryTemperature > 680 && ActivityManagerNative.isSystemReady()) {
+            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);
+        }
+    }
+
     private native void native_update();
 
     private synchronized final void update() {
@@ -199,6 +211,7 @@
         long dischargeDuration = 0;
 
         shutdownIfNoPower();
+        shutdownIfOverTemp();
 
         mBatteryLevelCritical = mBatteryLevel <= CRITICAL_BATTERY_LEVEL;
         if (mAcOnline) {