OSDN Git Service

Automated import from //branches/cupcake/...@142391,142391
authorDianne Hackborn <>
Wed, 25 Mar 2009 02:36:34 +0000 (19:36 -0700)
committerThe Android Open Source Project <initial-contribution@android.com>
Wed, 25 Mar 2009 02:36:34 +0000 (19:36 -0700)
src/com/android/settings/battery_history/BatteryHistory.java
src/com/android/settings/battery_history/GraphableButton.java

index dcf6cbf..ad6479a 100644 (file)
@@ -18,6 +18,7 @@ package com.android.settings.battery_history;
 
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.Formatter;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
@@ -73,7 +74,7 @@ public class BatteryHistory extends Activity implements OnClickListener, OnItemS
     
     private BatteryStats mStats;
     private int mWhich = BatteryStats.STATS_UNPLUGGED;
-    private int mType = CPU_USAGE;
+    private int mType = MISC_USAGE;
     
     private GraphableButton[] mButtons;
     IBatteryStats mBatteryInfo;
@@ -401,6 +402,7 @@ public class BatteryHistory extends Activity implements OnClickListener, OnItemS
     
     class MiscUsage extends Graphable {
         int mInfoLabelRes;
+        String mInfoLabel;
         double[] mUsage;
         double mTotalRealtime;
         
@@ -415,6 +417,17 @@ public class BatteryHistory extends Activity implements OnClickListener, OnItemS
             mTotalRealtime = totalRealtime;
         }
         
+        public MiscUsage(String name, String infoLabel, long value,
+                long totalRealtime) {
+            mName = name;
+            
+            mInfoLabel = infoLabel;
+            
+            mUsage = new double[2];
+            mUsage[0] = value;
+            mTotalRealtime = totalRealtime;
+        }
+        
         public String getLabel() {
             return mName;
         }
@@ -432,7 +445,7 @@ public class BatteryHistory extends Activity implements OnClickListener, OnItemS
         }
         
         public void getInfo(StringBuilder info) {
-            info.append(getString(mInfoLabelRes));
+            info.append(mInfoLabel != null ? mInfoLabel : getString(mInfoLabelRes));
             info.append(' ');
             formatTime(mUsage[0], info);
             info.append(" (");
@@ -656,6 +669,19 @@ public class BatteryHistory extends Activity implements OnClickListener, OnItemS
         Collections.sort(mWakelockUsage);
     }
     
+    private final StringBuilder mFormatBuilder = new StringBuilder(8);
+    private final Formatter mFormatter = new Formatter(mFormatBuilder);
+    
+    private final String formatRatio(long num, long den) {
+        if (den == 0L) {
+            return "---%";
+        }
+        float perc = ((float)num) / ((float)den) * 100;
+        mFormatBuilder.setLength(0);
+        mFormatter.format("%.1f%%", perc);
+        return mFormatBuilder.toString();
+    }
+    
     private void processMiscUsage() {
         mMiscUsage.clear();
         
@@ -666,7 +692,8 @@ public class BatteryHistory extends Activity implements OnClickListener, OnItemS
         long time = mStats.computeBatteryUptime(SystemClock.uptimeMillis() * 1000, mWhich) / 1000;
         if (time > 0) {
             mMiscUsage.add(new MiscUsage(getString(
-                    R.string.battery_history_awake_label),
+                    R.string.battery_history_awake_label)
+                    + " (" + formatRatio(time, whichRealtime) + ")",
                     R.string.battery_history_awake,
                     time, whichRealtime)); 
         }
@@ -674,7 +701,8 @@ public class BatteryHistory extends Activity implements OnClickListener, OnItemS
         time = mStats.getScreenOnTime(batteryRealtime, mWhich) / 1000;
         if (time > 0) {
             mMiscUsage.add(new MiscUsage(getString(
-                    R.string.battery_history_screen_on_label),
+                    R.string.battery_history_screen_on_label)
+                    + " (" + formatRatio(time, whichRealtime) + ")",
                     R.string.battery_history_screen_on,
                     time, whichRealtime)); 
         }
@@ -682,11 +710,36 @@ public class BatteryHistory extends Activity implements OnClickListener, OnItemS
         time = mStats.getPhoneOnTime(batteryRealtime, mWhich) / 1000;
         if (time > 0) {
             mMiscUsage.add(new MiscUsage(getString(
-                    R.string.battery_history_phone_on_label),
+                    R.string.battery_history_phone_on_label)
+                    + " (" + formatRatio(time, whichRealtime) + ")",
                     R.string.battery_history_phone_on,
                     time, whichRealtime)); 
         }
         
+        time = mStats.getWifiOnTime(batteryRealtime, mWhich) / 1000;
+        if (time > 0) {
+            mMiscUsage.add(new MiscUsage("Wifi On ("
+                    + formatRatio(time, whichRealtime) + ")",
+                    "Time spent with Wifi on:",
+                    time, whichRealtime)); 
+        }
+        
+        time = mStats.getWifiRunningTime(batteryRealtime, mWhich) / 1000;
+        if (time > 0) {
+            mMiscUsage.add(new MiscUsage("Wifi Running ("
+                    + formatRatio(time, whichRealtime) + ")",
+                    "Time spent with Wifi running:",
+                    time, whichRealtime)); 
+        }
+        
+        time = mStats.getBluetoothOnTime(batteryRealtime, mWhich) / 1000;
+        if (time > 0) {
+            mMiscUsage.add(new MiscUsage("Bluetooth On ("
+                    + formatRatio(time, whichRealtime) + ")",
+                    "Time spent with Bluetooth on:",
+                    time, whichRealtime)); 
+        }
+        
         Collections.sort(mMiscUsage);
     }
     
@@ -815,12 +868,22 @@ public class BatteryHistory extends Activity implements OnClickListener, OnItemS
         
         setContentView(R.layout.battery_history);
         
+        mStats = (BatteryStats)getLastNonConfigurationInstance();
+        if (icicle != null) {
+            if (mStats == null) {
+                mStats = (BatteryStats)icicle.getParcelable("stats");
+            }
+            mType = icicle.getInt("type");
+            mWhich = icicle.getInt("which");
+        }
+        
         mGraphLayout = (LinearLayout) findViewById(R.id.graphLayout);
         mTextLayout = (LinearLayout) findViewById(R.id.textLayout);
         mDetailsText = (TextView) findViewById(R.id.detailsText);
         mMessageText = (TextView) findViewById(R.id.messageText);
         
         mTypeSpinner = (Spinner) findViewById(R.id.typeSpinner);
+        mTypeSpinner.setSelection(mType);
         mTypeSpinner.setOnItemSelectedListener(this);
         
         mWhichSpinner = (Spinner) findViewById(R.id.whichSpinner);
@@ -845,14 +908,6 @@ public class BatteryHistory extends Activity implements OnClickListener, OnItemS
         mBatteryInfo = IBatteryStats.Stub.asInterface(
                 ServiceManager.getService("batteryinfo"));
         
-        mStats = (BatteryStats)getLastNonConfigurationInstance();
-        if (icicle != null) {
-            if (mStats == null) {
-                mStats = (BatteryStats)icicle.getParcelable("stats");
-            }
-            mType = icicle.getInt("type");
-            mWhich = icicle.getInt("which");
-        }
         if (mStats == null) {
             load();
         }
index 39028d0..fb90a0d 100644 (file)
@@ -15,11 +15,11 @@ public class GraphableButton extends Button {
     static {
         sPaint[0] = new Paint();
         sPaint[0].setStyle(Paint.Style.FILL);
-        sPaint[0].setColor(Color.BLUE);
+        sPaint[0].setColor(0xFF0080FF);
         
         sPaint[1] = new Paint();
         sPaint[1].setStyle(Paint.Style.FILL);
-        sPaint[1].setColor(Color.RED);
+        sPaint[1].setColor(0xFFFF6060);
     }
     
     double[] mValues;