summaryrefslogtreecommitdiffstats
path: root/src/com/android
diff options
context:
space:
mode:
authorHung-ying Tyan <tyanh@google.com>2009-06-14 21:12:57 -0700
committerThe Android Open Source Project <initial-contribution@android.com>2009-06-14 21:12:57 -0700
commit4d863f471bd2a3616e00c019a95513b1c4d0c671 (patch)
tree036b4bd16428ea600e74efd3090557f595cac214 /src/com/android
parent339083fd468c7b6ab754b2ade962cb347c0b66c2 (diff)
parenta55ae92a132325e9307f291c455b1148d0bff3cf (diff)
downloadpackages_apps_settings-4d863f471bd2a3616e00c019a95513b1c4d0c671.zip
packages_apps_settings-4d863f471bd2a3616e00c019a95513b1c4d0c671.tar.gz
packages_apps_settings-4d863f471bd2a3616e00c019a95513b1c4d0c671.tar.bz2
am a55ae92a: Remove isCustomized() check as the API is not used for now.
Merge commit 'a55ae92a132325e9307f291c455b1148d0bff3cf' * commit 'a55ae92a132325e9307f291c455b1148d0bff3cf': Remove isCustomized() check as the API is not used for now. Remove LAUNCHER category from VPN settings activity's intent filter. Improve power control widget GUI. Minor UI improvements and showing of unplugged duration. Make the Settings side of the date format settings more locale-aware.
Diffstat (limited to 'src/com/android')
-rw-r--r--src/com/android/settings/DateTimeSettings.java20
-rw-r--r--src/com/android/settings/SecuritySettings.java6
-rw-r--r--src/com/android/settings/fuelgauge/PowerUsageDetail.java72
-rw-r--r--src/com/android/settings/fuelgauge/PowerUsageSummary.java19
-rw-r--r--src/com/android/settings/fuelgauge/Utils.java84
-rw-r--r--src/com/android/settings/vpn/L2tpIpsecEditor.java2
-rw-r--r--src/com/android/settings/vpn/SingleServerEditor.java6
7 files changed, 129 insertions, 80 deletions
diff --git a/src/com/android/settings/DateTimeSettings.java b/src/com/android/settings/DateTimeSettings.java
index d6e85c4..5b38651 100644
--- a/src/com/android/settings/DateTimeSettings.java
+++ b/src/com/android/settings/DateTimeSettings.java
@@ -87,19 +87,25 @@ public class DateTimeSettings
mDatePref = findPreference("date");
mDateFormat = (ListPreference) findPreference(KEY_DATE_FORMAT);
- int currentFormatIndex = -1;
String [] dateFormats = getResources().getStringArray(R.array.date_format_values);
String [] formattedDates = new String[dateFormats.length];
String currentFormat = getDateFormat();
// Initialize if DATE_FORMAT is not set in the system settings
// This can happen after a factory reset (or data wipe)
if (currentFormat == null) {
- currentFormat = getResources().getString(R.string.default_date_format);
- setDateFormat(currentFormat);
+ currentFormat = "";
}
for (int i = 0; i < formattedDates.length; i++) {
- formattedDates[i] = DateFormat.format(dateFormats[i], mDummyDate).toString();
- if (currentFormat.equals(dateFormats[i])) currentFormatIndex = i;
+ String formatted =
+ DateFormat.getDateFormatForSetting(this, dateFormats[i]).
+ format(mDummyDate.getTime());
+
+ if (dateFormats[i].length() == 0) {
+ formattedDates[i] = getResources().
+ getString(R.string.normal_date_format, formatted);
+ } else {
+ formattedDates[i] = formatted;
+ }
}
mDateFormat.setEntries(formattedDates);
@@ -314,6 +320,10 @@ public class DateTimeSettings
}
private void setDateFormat(String format) {
+ if (format.length() == 0) {
+ format = null;
+ }
+
Settings.System.putString(getContentResolver(), Settings.System.DATE_FORMAT, format);
}
diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java
index cb37465..ccf360a 100644
--- a/src/com/android/settings/SecuritySettings.java
+++ b/src/com/android/settings/SecuritySettings.java
@@ -163,12 +163,12 @@ public class SecuritySettings extends PreferenceActivity {
PreferenceScreen vpnPreferences = getPreferenceManager()
.createPreferenceScreen(this);
- vpnPreferences.setTitle(R.string.vpn_settings_category);
+ vpnPreferences.setTitle(R.string.vpn_settings_title);
+ vpnPreferences.setSummary(R.string.vpn_settings_summary);
vpnPreferences.setIntent(new VpnManager(this).createSettingsActivityIntent());
PreferenceCategory vpnCat = new PreferenceCategory(this);
- vpnCat.setTitle(R.string.vpn_settings_title);
- vpnCat.setSummary(R.string.vpn_settings_summary);
+ vpnCat.setTitle(R.string.vpn_settings_category);
root.addPreference(vpnCat);
vpnCat.addPreference(vpnPreferences);
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);
+ }
+ }
+}
diff --git a/src/com/android/settings/vpn/L2tpIpsecEditor.java b/src/com/android/settings/vpn/L2tpIpsecEditor.java
index 2bb4c8d..5156989 100644
--- a/src/com/android/settings/vpn/L2tpIpsecEditor.java
+++ b/src/com/android/settings/vpn/L2tpIpsecEditor.java
@@ -58,8 +58,6 @@ class L2tpIpsecEditor extends SingleServerEditor {
String result = super.validate(c);
if (result != null) {
return result;
- } else if (mProfile.isCustomized()) {
- return null;
} else if (Util.isNullOrEmpty(mUserkey.getValue())) {
return c.getString(R.string.vpn_error_userkey_not_selected);
} else if (Util.isNullOrEmpty(mUserCertificate.getValue())) {
diff --git a/src/com/android/settings/vpn/SingleServerEditor.java b/src/com/android/settings/vpn/SingleServerEditor.java
index 63964b4..a7848e0 100644
--- a/src/com/android/settings/vpn/SingleServerEditor.java
+++ b/src/com/android/settings/vpn/SingleServerEditor.java
@@ -50,11 +50,9 @@ class SingleServerEditor implements VpnProfileEditor {
//@Override
public String validate(Context c) {
- return (mProfile.isCustomized()
- ? null
- : (Util.isNullOrEmpty(mServerName.getText())
+ return (Util.isNullOrEmpty(mServerName.getText())
? c.getString(R.string.vpn_error_server_name_empty)
- : null));
+ : null);
}
/**