diff options
author | Amith Yamasani <yamasani@google.com> | 2009-06-12 14:15:20 -0700 |
---|---|---|
committer | Amith Yamasani <yamasani@google.com> | 2009-06-12 14:23:15 -0700 |
commit | 0422a3bf61c17851abd87a67a0de30e412459b5c (patch) | |
tree | 533d9a8e77c3b4a440cf2c937f017f6b4774d443 /src/com/android/settings | |
parent | 188ca778702938d87313592175a3c2ff86bd3218 (diff) | |
download | packages_apps_settings-0422a3bf61c17851abd87a67a0de30e412459b5c.zip packages_apps_settings-0422a3bf61c17851abd87a67a0de30e412459b5c.tar.gz packages_apps_settings-0422a3bf61c17851abd87a67a0de30e412459b5c.tar.bz2 |
Minor UI improvements and showing of unplugged duration.
Diffstat (limited to 'src/com/android/settings')
-rw-r--r-- | src/com/android/settings/fuelgauge/PowerUsageDetail.java | 72 | ||||
-rw-r--r-- | src/com/android/settings/fuelgauge/PowerUsageSummary.java | 19 | ||||
-rw-r--r-- | src/com/android/settings/fuelgauge/Utils.java | 84 |
3 files changed, 109 insertions, 66 deletions
diff --git a/src/com/android/settings/fuelgauge/PowerUsageDetail.java b/src/com/android/settings/fuelgauge/PowerUsageDetail.java index 54a0b88..e36a8bc 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageDetail.java +++ b/src/com/android/settings/fuelgauge/PowerUsageDetail.java @@ -51,8 +51,8 @@ public class PowerUsageDetail extends Activity implements Button.OnClickListener public static final int ACTION_DISPLAY_SETTINGS = 1; public static final int ACTION_WIFI_SETTINGS = 2; public static final int ACTION_BLUETOOTH_SETTINGS = 3; - public static final int ACTION_FORCE_STOP = 4; - public static final int ACTION_UNINSTALL = 5; + public static final int ACTION_WIRELESS_SETTINGS = 4; + public static final int ACTION_APP_DETAILS = 6; public static final int USAGE_SINCE_UNPLUGGED = 1; public static final int USAGE_SINCE_RESET = 2; @@ -66,10 +66,6 @@ public class PowerUsageDetail extends Activity implements Button.OnClickListener public static final String EXTRA_DETAIL_VALUES = "values"; public static final String EXTRA_DRAIN_TYPE = "drainType"; - private static final int SECONDS_PER_MINUTE = 60; - private static final int SECONDS_PER_HOUR = 60 * 60; - private static final int SECONDS_PER_DAY = 24 * 60 * 60; - private static final boolean DEBUG = true; private String mTitle; private double mPercentage; @@ -135,10 +131,10 @@ public class PowerUsageDetail extends Activity implements Button.OnClickListener switch (mTypes[i]) { case R.string.usage_type_data_recv: case R.string.usage_type_data_send: - value = formatBytes(mValues[i]); + value = Utils.formatBytes(this, mValues[i]); break; default: - value = formatTime(mValues[i]); + value = Utils.formatElapsedTime(this, mValues[i]); } ViewGroup item = (ViewGroup) inflater.inflate(R.layout.power_usage_detail_item_text, null); @@ -165,15 +161,12 @@ public class PowerUsageDetail extends Activity implements Button.OnClickListener startActivity(new Intent(Settings.ACTION_DISPLAY_SETTINGS)); break; case ACTION_WIFI_SETTINGS: - startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)); + startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS)); break; case ACTION_BLUETOOTH_SETTINGS: - startActivity(new Intent(Settings.ACTION_BLUETOOTH_SETTINGS)); - break; - case ACTION_FORCE_STOP: - killProcesses(); + startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS)); break; - case ACTION_UNINSTALL: + case ACTION_APP_DETAILS: Intent intent = new Intent(Intent.ACTION_VIEW); intent.setClass(this, InstalledAppDetails.class); intent.putExtra("com.android.settings.ApplicationPkgName", mPackages[0]); @@ -199,18 +192,17 @@ public class PowerUsageDetail extends Activity implements Button.OnClickListener if (uid == 0 || !isSystem) { switch (mDrainType) { case APP: - label1 = getString(R.string.battery_action_stop); + //label1 = getString(R.string.battery_action_stop); label2 = getString(R.string.battery_action_app_details); - mAction1 = ACTION_FORCE_STOP; - mAction2 = ACTION_UNINSTALL; + mAction2 = ACTION_APP_DETAILS; break; case SCREEN: - //label2 = getString(R.string.battery_action_display); - //mAction2 = ACTION_DISPLAY_SETTINGS; + label2 = getString(R.string.battery_action_display); + mAction2 = ACTION_DISPLAY_SETTINGS; break; case WIFI: label2 = getString(R.string.battery_action_wifi); - mAction2 = ACTION_WIFI_SETTINGS; + mAction2 = ACTION_WIRELESS_SETTINGS; break; case BLUETOOTH: //label2 = getString(R.string.battery_action_bluetooth); @@ -291,44 +283,4 @@ public class PowerUsageDetail extends Activity implements Button.OnClickListener } } } - - private String formatTime(double millis) { - StringBuilder sb = new StringBuilder(); - int seconds = (int) Math.floor(millis / 1000); - - int days = 0, hours = 0, minutes = 0; - if (seconds > SECONDS_PER_DAY) { - days = seconds / SECONDS_PER_DAY; - seconds -= days * SECONDS_PER_DAY; - } - if (seconds > SECONDS_PER_HOUR) { - hours = seconds / SECONDS_PER_HOUR; - seconds -= hours * SECONDS_PER_HOUR; - } - if (seconds > SECONDS_PER_MINUTE) { - minutes = seconds / SECONDS_PER_MINUTE; - seconds -= minutes * SECONDS_PER_MINUTE; - } - if (days > 0) { - sb.append(getString(R.string.battery_history_days, days, hours, minutes, seconds)); - } else if (hours > 0) { - sb.append(getString(R.string.battery_history_hours, hours, minutes, seconds)); - } else if (minutes > 0) { - sb.append(getString(R.string.battery_history_minutes, minutes, seconds)); - } else { - sb.append(getString(R.string.battery_history_seconds, seconds)); - } - return sb.toString(); - } - - private String formatBytes(double bytes) { - // TODO: I18N - if (bytes > 1000 * 1000) { - return String.format("%.2f MB", ((int) (bytes / 1000)) / 1000f); - } else if (bytes > 1024) { - return String.format("%.2f KB", ((int) (bytes / 10)) / 100f); - } else { - return String.format("%d bytes", (int) bytes); - } - } } diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java index 10ede87..b8919ee 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java +++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java @@ -100,7 +100,7 @@ public class PowerUsageSummary extends PreferenceActivity implements Runnable { addPreferencesFromResource(R.xml.power_usage_summary); mBatteryInfo = IBatteryStats.Stub.asInterface( ServiceManager.getService("batteryinfo")); - mAppListGroup = getPreferenceScreen(); + mAppListGroup = (PreferenceGroup) findPreference("app_list"); mPowerProfile = new PowerProfile(this); } @@ -108,7 +108,7 @@ public class PowerUsageSummary extends PreferenceActivity implements Runnable { protected void onResume() { super.onResume(); mAbort = false; - updateAppsList(); + refreshStats(); } @Override @@ -207,18 +207,18 @@ public class PowerUsageSummary extends PreferenceActivity implements Runnable { } else { mStatsType = BatteryStats.STATS_TOTAL; } - updateAppsList(); + refreshStats(); return true; case MENU_STATS_REFRESH: mStats = null; - updateAppsList(); + refreshStats(); return true; default: return false; } } - private void updateAppsList() { + private void refreshStats() { if (mStats == null) { load(); } @@ -263,12 +263,19 @@ public class PowerUsageSummary extends PreferenceActivity implements Runnable { } } + private void updateStatsPeriod(long duration) { + String durationString = Utils.formatElapsedTime(this, duration / 1000); + String label = getString(R.string.battery_stats_duration, durationString); + mAppListGroup.setTitle(label); + } + private void processAppUsage() { SensorManager sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE); final int which = mStatsType; final double powerCpuNormal = mPowerProfile.getAveragePower(PowerProfile.POWER_CPU_NORMAL); final double averageCostPerByte = getAverageDataCost(); - long uSecTime = mStats.computeBatteryRealtime(SystemClock.elapsedRealtime(), which) * 1000; + long uSecTime = mStats.computeBatteryRealtime(SystemClock.elapsedRealtime() * 1000, which); + updateStatsPeriod(uSecTime); SparseArray<? extends Uid> uidStats = mStats.getUidStats(); final int NU = uidStats.size(); for (int iu = 0; iu < NU; iu++) { diff --git a/src/com/android/settings/fuelgauge/Utils.java b/src/com/android/settings/fuelgauge/Utils.java new file mode 100644 index 0000000..2ffc9de --- /dev/null +++ b/src/com/android/settings/fuelgauge/Utils.java @@ -0,0 +1,84 @@ +/* + * Copyright (C) 2009 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.fuelgauge; + +import android.content.Context; + +import com.android.settings.R; + +/** + * Contains utility functions for formatting elapsed time and consumed bytes + */ +public class Utils { + private static final int SECONDS_PER_MINUTE = 60; + private static final int SECONDS_PER_HOUR = 60 * 60; + private static final int SECONDS_PER_DAY = 24 * 60 * 60; + + /** + * Returns elapsed time for the given millis, in the following format: + * 2d 5h 40m 29s + * @param context the application context + * @param millis the elapsed time in milli seconds + * @return the formatted elapsed time + */ + public static String formatElapsedTime(Context context, double millis) { + StringBuilder sb = new StringBuilder(); + int seconds = (int) Math.floor(millis / 1000); + + int days = 0, hours = 0, minutes = 0; + if (seconds > SECONDS_PER_DAY) { + days = seconds / SECONDS_PER_DAY; + seconds -= days * SECONDS_PER_DAY; + } + if (seconds > SECONDS_PER_HOUR) { + hours = seconds / SECONDS_PER_HOUR; + seconds -= hours * SECONDS_PER_HOUR; + } + if (seconds > SECONDS_PER_MINUTE) { + minutes = seconds / SECONDS_PER_MINUTE; + seconds -= minutes * SECONDS_PER_MINUTE; + } + if (days > 0) { + sb.append(context.getString(R.string.battery_history_days, + days, hours, minutes, seconds)); + } else if (hours > 0) { + sb.append(context.getString(R.string.battery_history_hours, hours, minutes, seconds)); + } else if (minutes > 0) { + sb.append(context.getString(R.string.battery_history_minutes, minutes, seconds)); + } else { + sb.append(context.getString(R.string.battery_history_seconds, seconds)); + } + return sb.toString(); + } + + /** + * Formats data size in KB, MB, from the given bytes. + * @param context the application context + * @param bytes data size in bytes + * @return the formatted size such as 4.52 MB or 245 KB or 332 bytes + */ + public static String formatBytes(Context context, double bytes) { + // TODO: I18N + if (bytes > 1000 * 1000) { + return String.format("%.2f MB", ((int) (bytes / 1000)) / 1000f); + } else if (bytes > 1024) { + return String.format("%.2f KB", ((int) (bytes / 10)) / 100f); + } else { + return String.format("%d bytes", (int) bytes); + } + } +} |