diff --git a/res/values/strings.xml b/res/values/strings.xml index cd5ac0ba65f..0291fa2c349 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1542,6 +1542,8 @@ Screen turns off automatically after %1$s Wallpaper + + Select wallpaper from Android Dreams @@ -2739,6 +2741,8 @@ found in the list of installed applications. What has been using the battery Battery usage data not available + + Battery level %1$s - %2$s Battery use since unplugged diff --git a/res/xml/power_usage_summary.xml b/res/xml/power_usage_summary.xml index b49b1409f59..5fcae5c83ba 100644 --- a/res/xml/power_usage_summary.xml +++ b/res/xml/power_usage_summary.xml @@ -17,4 +17,9 @@ + diff --git a/res/xml/wallpaper_settings.xml b/res/xml/wallpaper_settings.xml index 63346f7ac29..bb9e8099844 100644 --- a/res/xml/wallpaper_settings.xml +++ b/res/xml/wallpaper_settings.xml @@ -15,6 +15,6 @@ --> + android:title="@string/wallpaper_settings_fragment_title"> diff --git a/src/com/android/settings/BatteryInfo.java b/src/com/android/settings/BatteryInfo.java index 3e037cfb544..d8046cf5da1 100644 --- a/src/com/android/settings/BatteryInfo.java +++ b/src/com/android/settings/BatteryInfo.java @@ -90,26 +90,7 @@ public class BatteryInfo extends Activity { + getString(R.string.battery_info_temperature_units)); mTechnology.setText("" + intent.getStringExtra("technology")); - int status = intent.getIntExtra("status", BatteryManager.BATTERY_STATUS_UNKNOWN); - String statusString; - if (status == BatteryManager.BATTERY_STATUS_CHARGING) { - statusString = getString(R.string.battery_info_status_charging); - if (plugType > 0) { - statusString = statusString + " " + getString( - (plugType == BatteryManager.BATTERY_PLUGGED_AC) - ? R.string.battery_info_status_charging_ac - : R.string.battery_info_status_charging_usb); - } - } else if (status == BatteryManager.BATTERY_STATUS_DISCHARGING) { - statusString = getString(R.string.battery_info_status_discharging); - } else if (status == BatteryManager.BATTERY_STATUS_NOT_CHARGING) { - statusString = getString(R.string.battery_info_status_not_charging); - } else if (status == BatteryManager.BATTERY_STATUS_FULL) { - statusString = getString(R.string.battery_info_status_full); - } else { - statusString = getString(R.string.battery_info_status_unknown); - } - mStatus.setText(statusString); + mStatus.setText(Utils.getBatteryStatus(getResources(), intent)); switch (plugType) { case 0: diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java index c630ee27e60..ae7e24e370f 100644 --- a/src/com/android/settings/Settings.java +++ b/src/com/android/settings/Settings.java @@ -28,7 +28,9 @@ import android.content.pm.ActivityInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.os.Bundle; +import android.preference.Preference; import android.preference.PreferenceActivity; +import android.preference.PreferenceFragment; import android.text.TextUtils; import android.util.Log; import android.view.LayoutInflater; @@ -534,6 +536,17 @@ public class Settings extends PreferenceActivity implements ButtonBarHandler { } } + @Override + public boolean onPreferenceStartFragment(PreferenceFragment caller, Preference pref) { + // Override the fragment title for Wallpaper settings + CharSequence title = pref.getTitle(); + if (pref.getFragment().equals(WallpaperTypeSettings.class.getName())) { + title = getString(R.string.wallpaper_settings_fragment_title); + } + startPreferencePanel(pref.getFragment(), pref.getExtras(), 0, title, null, 0); + return true; + } + @Override public void setListAdapter(ListAdapter adapter) { if (mHeaders == null) { diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java index 422ae90733f..b725d56d127 100644 --- a/src/com/android/settings/Utils.java +++ b/src/com/android/settings/Utils.java @@ -27,6 +27,7 @@ import android.content.res.Resources.NotFoundException; import android.graphics.drawable.Drawable; import android.net.ConnectivityManager; import android.net.LinkProperties; +import android.os.BatteryManager; import android.os.Bundle; import android.os.SystemProperties; import android.preference.Preference; @@ -330,4 +331,38 @@ public class Utils { return new Locale(brokenDownLocale[0], brokenDownLocale[1], brokenDownLocale[2]); } } + + public static String getBatteryPercentage(Intent batteryChangedIntent) { + int level = batteryChangedIntent.getIntExtra("level", 0); + int scale = batteryChangedIntent.getIntExtra("scale", 100); + return String.valueOf(level * 100 / scale) + "%"; + } + + public static String getBatteryStatus(Resources res, Intent batteryChangedIntent) { + final Intent intent = batteryChangedIntent; + + int plugType = intent.getIntExtra("plugged", 0); + int status = intent.getIntExtra("status", BatteryManager.BATTERY_STATUS_UNKNOWN); + String statusString; + if (status == BatteryManager.BATTERY_STATUS_CHARGING) { + statusString = res.getString(R.string.battery_info_status_charging); + if (plugType > 0) { + statusString = statusString + + " " + + res.getString((plugType == BatteryManager.BATTERY_PLUGGED_AC) + ? R.string.battery_info_status_charging_ac + : R.string.battery_info_status_charging_usb); + } + } else if (status == BatteryManager.BATTERY_STATUS_DISCHARGING) { + statusString = res.getString(R.string.battery_info_status_discharging); + } else if (status == BatteryManager.BATTERY_STATUS_NOT_CHARGING) { + statusString = res.getString(R.string.battery_info_status_not_charging); + } else if (status == BatteryManager.BATTERY_STATUS_FULL) { + statusString = res.getString(R.string.battery_info_status_full); + } else { + statusString = res.getString(R.string.battery_info_status_unknown); + } + + return statusString; + } } diff --git a/src/com/android/settings/WallpaperTypeSettings.java b/src/com/android/settings/WallpaperTypeSettings.java index fa0b4e49064..fa5f0ac735f 100644 --- a/src/com/android/settings/WallpaperTypeSettings.java +++ b/src/com/android/settings/WallpaperTypeSettings.java @@ -16,13 +16,14 @@ package com.android.settings; +import android.app.Activity; import android.content.ComponentName; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; -import android.graphics.drawable.Drawable; import android.os.Bundle; import android.preference.Preference; +import android.preference.PreferenceScreen; import java.util.List; @@ -32,7 +33,6 @@ public class WallpaperTypeSettings extends SettingsPreferenceFragment { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.wallpaper_settings); - populateWallpaperTypes(); } @@ -43,6 +43,8 @@ public class WallpaperTypeSettings extends SettingsPreferenceFragment { List rList = pm.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); + final PreferenceScreen parent = getPreferenceScreen(); + parent.setOrderingAsAdded(false); // Add Preference items for each of the matching activities for (ResolveInfo info : rList) { Preference pref = new Preference(getActivity()); @@ -53,7 +55,7 @@ public class WallpaperTypeSettings extends SettingsPreferenceFragment { CharSequence label = info.loadLabel(pm); if (label == null) label = info.activityInfo.packageName; pref.setTitle(label); - getPreferenceScreen().addPreference(pref); + parent.addPreference(pref); } } } diff --git a/src/com/android/settings/deviceinfo/Status.java b/src/com/android/settings/deviceinfo/Status.java index 456bc9886cb..987fab8ddf5 100644 --- a/src/com/android/settings/deviceinfo/Status.java +++ b/src/com/android/settings/deviceinfo/Status.java @@ -157,33 +157,8 @@ public class Status extends PreferenceActivity { public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (Intent.ACTION_BATTERY_CHANGED.equals(action)) { - - int level = intent.getIntExtra("level", 0); - int scale = intent.getIntExtra("scale", 100); - - mBatteryLevel.setSummary(String.valueOf(level * 100 / scale) + "%"); - - int plugType = intent.getIntExtra("plugged", 0); - int status = intent.getIntExtra("status", BatteryManager.BATTERY_STATUS_UNKNOWN); - String statusString; - if (status == BatteryManager.BATTERY_STATUS_CHARGING) { - statusString = getString(R.string.battery_info_status_charging); - if (plugType > 0) { - statusString = statusString + " " + getString( - (plugType == BatteryManager.BATTERY_PLUGGED_AC) - ? R.string.battery_info_status_charging_ac - : R.string.battery_info_status_charging_usb); - } - } else if (status == BatteryManager.BATTERY_STATUS_DISCHARGING) { - statusString = getString(R.string.battery_info_status_discharging); - } else if (status == BatteryManager.BATTERY_STATUS_NOT_CHARGING) { - statusString = getString(R.string.battery_info_status_not_charging); - } else if (status == BatteryManager.BATTERY_STATUS_FULL) { - statusString = getString(R.string.battery_info_status_full); - } else { - statusString = getString(R.string.battery_info_status_unknown); - } - mBatteryStatus.setSummary(statusString); + mBatteryLevel.setSummary(Utils.getBatteryPercentage(intent)); + mBatteryStatus.setSummary(Utils.getBatteryStatus(getResources(), intent)); } } }; diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java index d46853d9081..f28ba9392ed 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java +++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java @@ -16,10 +16,14 @@ package com.android.settings.fuelgauge; +import android.content.BroadcastReceiver; import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; import android.hardware.SensorManager; import android.os.BatteryStats; import android.os.BatteryStats.Uid; +import android.os.BatteryManager; import android.os.Bundle; import android.os.Handler; import android.os.Message; @@ -64,6 +68,9 @@ public class PowerUsageSummary extends PreferenceFragment implements Runnable { private static final String TAG = "PowerUsageSummary"; + private static final String KEY_APP_LIST = "app_list"; + private static final String KEY_BATTERY_STATUS = "battery_status"; + private static final int MENU_STATS_TYPE = Menu.FIRST; private static final int MENU_STATS_REFRESH = Menu.FIRST + 1; @@ -76,6 +83,7 @@ public class PowerUsageSummary extends PreferenceFragment implements Runnable { private final List mBluetoothSippers = new ArrayList(); private PreferenceGroup mAppListGroup; + private Preference mBatteryStatusPref; private int mStatsType = BatteryStats.STATS_SINCE_CHARGED; @@ -96,7 +104,23 @@ public class PowerUsageSummary extends PreferenceFragment implements Runnable { private ArrayList mRequestQueue = new ArrayList(); private Thread mRequestThread; private boolean mAbort; - + + private BroadcastReceiver mBatteryInfoReceiver = new BroadcastReceiver() { + + @Override + public void onReceive(Context context, Intent intent) { + String action = intent.getAction(); + if (Intent.ACTION_BATTERY_CHANGED.equals(action)) { + String batteryLevel = com.android.settings.Utils.getBatteryPercentage(intent); + String batteryStatus = com.android.settings.Utils.getBatteryStatus(getResources(), + intent); + String batterySummary = context.getResources().getString( + R.string.power_usage_level_and_status, batteryLevel, batteryStatus); + mBatteryStatusPref.setTitle(batterySummary); + } + } + }; + @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); @@ -108,7 +132,8 @@ public class PowerUsageSummary extends PreferenceFragment implements Runnable { addPreferencesFromResource(R.xml.power_usage_summary); mBatteryInfo = IBatteryStats.Stub.asInterface( ServiceManager.getService("batteryinfo")); - mAppListGroup = (PreferenceGroup) findPreference("app_list"); + mAppListGroup = (PreferenceGroup) findPreference(KEY_APP_LIST); + mBatteryStatusPref = mAppListGroup.findPreference(KEY_BATTERY_STATUS); mPowerProfile = new PowerProfile(getActivity()); setHasOptionsMenu(true); } @@ -117,6 +142,8 @@ public class PowerUsageSummary extends PreferenceFragment implements Runnable { public void onResume() { super.onResume(); mAbort = false; + getActivity().registerReceiver(mBatteryInfoReceiver, + new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); refreshStats(); } @@ -126,6 +153,7 @@ public class PowerUsageSummary extends PreferenceFragment implements Runnable { mAbort = true; } mHandler.removeMessages(MSG_UPDATE_NAME_ICON); + getActivity().unregisterReceiver(mBatteryInfoReceiver); super.onPause(); } @@ -335,6 +363,8 @@ public class PowerUsageSummary extends PreferenceFragment implements Runnable { mBluetoothSippers.clear(); mAppListGroup.setOrderingAsAdded(false); + mBatteryStatusPref.setOrder(-2); + mAppListGroup.addPreference(mBatteryStatusPref); BatteryHistoryPreference hist = new BatteryHistoryPreference(getActivity(), mStats); hist.setOrder(-1); mAppListGroup.addPreference(hist);