Use a different wallpaper fragment title from the preference item.
Change wallpaper list ordering to alphabetic.
Display battery level and charging status in Battery settings.
Change-Id: I8ead0fb0f018c79ed258bd1c1ca3f8ecaf32da83
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 72db3d0..282030f 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1522,6 +1522,8 @@
<string name="screen_timeout_summary">Screen turns off automatically after <xliff:g id="timeout_description">%1$s</xliff:g></string>
<!-- Wallpaper settings title [CHAR LIMIT=30] -->
<string name="wallpaper_settings_title">Wallpaper</string>
+ <!-- Wallpaper settings fragment title [CHAR LIMIT=30] -->
+ <string name="wallpaper_settings_fragment_title">Select wallpaper from</string>
<!-- Display settings screen, trigger for screen saver options -->
<string name="dream_settings_title">Android Dreams</string>
<!-- Display settings screen, summary for screen saver options -->
@@ -2724,6 +2726,8 @@
<string name="power_usage_summary">What has been using the battery</string>
<!-- Message to show when battery usage data is not available [CHAR LIMIT=30] -->
<string name="power_usage_not_available">Battery usage data not available</string>
+ <!-- Display the battery level and status [CHAR_LIMIT=30] -->
+ <string name="power_usage_level_and_status">Battery level <xliff:g id="level">%1$s</xliff:g> - <xliff:g id="status">%2$s</xliff:g></string>
<!-- Battery usage since unplugged -->
<string name="battery_since_unplugged">Battery use since unplugged</string>
<!-- Battery usage since user reset the stats -->
diff --git a/res/xml/power_usage_summary.xml b/res/xml/power_usage_summary.xml
index b49b140..5fcae5c 100644
--- a/res/xml/power_usage_summary.xml
+++ b/res/xml/power_usage_summary.xml
@@ -17,4 +17,9 @@
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/battery_since_unplugged"
android:key="app_list">
+ <Preference
+ style="?android:attr/preferenceInformationStyle"
+ android:key="battery_status"
+ android:persistent="false"
+ />
</PreferenceScreen>
diff --git a/res/xml/wallpaper_settings.xml b/res/xml/wallpaper_settings.xml
index 63346f7..bb9e809 100644
--- a/res/xml/wallpaper_settings.xml
+++ b/res/xml/wallpaper_settings.xml
@@ -15,6 +15,6 @@
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
- android:title="@string/wallpaper_settings_title">
+ android:title="@string/wallpaper_settings_fragment_title">
</PreferenceScreen>
diff --git a/src/com/android/settings/BatteryInfo.java b/src/com/android/settings/BatteryInfo.java
index 3e037cf..d8046cf 100644
--- a/src/com/android/settings/BatteryInfo.java
+++ b/src/com/android/settings/BatteryInfo.java
@@ -90,26 +90,7 @@
+ 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 eb0b40c..456bdf6 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -23,7 +23,9 @@
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;
@@ -535,6 +537,17 @@
}
@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) {
mHeaders = new ArrayList<Header>();
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index 422ae90..b725d56 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -27,6 +27,7 @@
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 @@
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 fa0b4e4..fa5f0ac 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 @@
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.wallpaper_settings);
-
populateWallpaperTypes();
}
@@ -43,6 +43,8 @@
List<ResolveInfo> 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 @@
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 456bc98..987fab8 100644
--- a/src/com/android/settings/deviceinfo/Status.java
+++ b/src/com/android/settings/deviceinfo/Status.java
@@ -157,33 +157,8 @@
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 d46853d..f28ba93 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 @@
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 @@
private final List<BatterySipper> mBluetoothSippers = new ArrayList<BatterySipper>();
private PreferenceGroup mAppListGroup;
+ private Preference mBatteryStatusPref;
private int mStatsType = BatteryStats.STATS_SINCE_CHARGED;
@@ -96,7 +104,23 @@
private ArrayList<BatterySipper> mRequestQueue = new ArrayList<BatterySipper>();
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 @@
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 void onResume() {
super.onResume();
mAbort = false;
+ getActivity().registerReceiver(mBatteryInfoReceiver,
+ new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
refreshStats();
}
@@ -126,6 +153,7 @@
mAbort = true;
}
mHandler.removeMessages(MSG_UPDATE_NAME_ICON);
+ getActivity().unregisterReceiver(mBatteryInfoReceiver);
super.onPause();
}
@@ -335,6 +363,8 @@
mBluetoothSippers.clear();
mAppListGroup.setOrderingAsAdded(false);
+ mBatteryStatusPref.setOrder(-2);
+ mAppListGroup.addPreference(mBatteryStatusPref);
BatteryHistoryPreference hist = new BatteryHistoryPreference(getActivity(), mStats);
hist.setOrder(-1);
mAppListGroup.addPreference(hist);