Settings: Battery saver settings sub-page.
New battery saver settings page, accessed via the power usage settings overflow menu. The settings page has a master switch to toggle battery saver mode, feature disclosure text, and a preference to configure the automatic trigger level. Remove developer checkbox now that this option has a real home. NO_SQ: multi project change Bug:13329308 Change-Id: Iac54238f3406439711b44a3c17f220ac5e370a37
This commit is contained in:
@@ -1461,6 +1461,22 @@
|
||||
android:resource="@id/battery_settings" />
|
||||
</activity-alias>
|
||||
|
||||
<activity android:name="Settings$BatterySaverSettingsActivity"
|
||||
android:label="@string/battery_saver"
|
||||
android:taskAffinity=""
|
||||
android:excludeFromRecents="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<action android:name="android.settings.BATTERY_SAVER_SETTINGS" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="com.android.settings.SHORTCUT" />
|
||||
</intent-filter>
|
||||
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
|
||||
android:value="com.android.settings.fuelgauge.BatterySaverSettings" />
|
||||
<meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID"
|
||||
android:resource="@id/battery_settings" />
|
||||
</activity>
|
||||
|
||||
<activity android:name="Settings$AccountSyncSettingsActivity"
|
||||
android:label="@string/account_sync_settings_title"
|
||||
android:taskAffinity=""
|
||||
|
@@ -1218,4 +1218,13 @@
|
||||
<item>1</item>
|
||||
<item>2</item>
|
||||
</string-array>
|
||||
|
||||
<!-- Battery saver mode: allowable trigger threshold levels. -->
|
||||
<integer-array name="battery_saver_trigger_values" translatable="false" >
|
||||
<item>0</item>
|
||||
<item>5</item>
|
||||
<item>10</item>
|
||||
<item>15</item>
|
||||
<item>20</item>
|
||||
</integer-array>
|
||||
</resources>
|
||||
|
@@ -3732,6 +3732,21 @@
|
||||
<!-- Label for mediaserver process -->
|
||||
<string name="process_mediaserver_label">Mediaserver</string>
|
||||
|
||||
<!-- [CHAR_LIMIT=40] Battery saver: Label for feature, title + menu item -->
|
||||
<string name="battery_saver">Battery saver</string>
|
||||
|
||||
<!-- [CHAR_LIMIT=40] Battery saver: Title for automatic entry option -->
|
||||
<string name="battery_saver_turn_on_automatically_title">Turn on automatically</string>
|
||||
|
||||
<!-- [CHAR_LIMIT=40] Battery saver: Value for automatic entry option: Never -->
|
||||
<string name="battery_saver_turn_on_automatically_never">Never</string>
|
||||
|
||||
<!-- [CHAR_LIMIT=40] Battery saver: Value for automatic entry option: pct% battery -->
|
||||
<string name="battery_saver_turn_on_automatically_pct">at %1$d%% battery</string>
|
||||
|
||||
<!-- [CHAR_LIMIT=NONE] Battery saver: Feature description -->
|
||||
<string name="battery_saver_description">To help improve battery life, Battery saver will reduce your device’s performance.\n\nBattery saver will turn off when your device is plugged in.</string>
|
||||
|
||||
<!-- Process Stats strings -->
|
||||
<skip />
|
||||
|
||||
|
34
res/xml/battery_saver_settings.xml
Normal file
34
res/xml/battery_saver_settings.xml
Normal file
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2014 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.
|
||||
-->
|
||||
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:title="@string/battery_saver"
|
||||
android:key="battery_saver">
|
||||
|
||||
<!-- Turn on automatically -->
|
||||
<com.android.settings.notification.DropDownPreference
|
||||
android:key="turn_on_automatically"
|
||||
android:title="@string/battery_saver_turn_on_automatically_title"
|
||||
android:persistent="false" />
|
||||
|
||||
<!-- Feature description text -->
|
||||
<Preference
|
||||
android:key="description"
|
||||
android:summary="@string/battery_saver_description"
|
||||
android:persistent="false"
|
||||
android:selectable="false" />
|
||||
|
||||
</PreferenceScreen>
|
@@ -122,7 +122,6 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
|
||||
private static final String USE_NUPLAYER_KEY = "use_nuplayer";
|
||||
private static final String USE_NUPLAYER_PROPERTY = "persist.sys.media.use-nuplayer";
|
||||
private static final String SHOW_CPU_USAGE_KEY = "show_cpu_usage";
|
||||
private static final String LOW_POWER_MODE_KEY = "low_power_mode";
|
||||
private static final String FORCE_HARDWARE_UI_KEY = "force_hw_ui";
|
||||
private static final String FORCE_MSAA_KEY = "force_msaa";
|
||||
private static final String TRACK_FRAME_TIME_KEY = "track_frame_time";
|
||||
@@ -196,7 +195,6 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
|
||||
private CheckBoxPreference mShowScreenUpdates;
|
||||
private CheckBoxPreference mDisableOverlays;
|
||||
private CheckBoxPreference mShowCpuUsage;
|
||||
private CheckBoxPreference mLowPowerMode;
|
||||
private CheckBoxPreference mForceHardwareUi;
|
||||
private CheckBoxPreference mForceMsaa;
|
||||
private CheckBoxPreference mShowHwScreenUpdates;
|
||||
@@ -308,7 +306,6 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
|
||||
mShowScreenUpdates = findAndInitCheckboxPref(SHOW_SCREEN_UPDATES_KEY);
|
||||
mDisableOverlays = findAndInitCheckboxPref(DISABLE_OVERLAYS_KEY);
|
||||
mShowCpuUsage = findAndInitCheckboxPref(SHOW_CPU_USAGE_KEY);
|
||||
mLowPowerMode = findAndInitCheckboxPref(LOW_POWER_MODE_KEY);
|
||||
mForceHardwareUi = findAndInitCheckboxPref(FORCE_HARDWARE_UI_KEY);
|
||||
mForceMsaa = findAndInitCheckboxPref(FORCE_MSAA_KEY);
|
||||
mTrackFrameTime = addListPreference(TRACK_FRAME_TIME_KEY);
|
||||
@@ -504,7 +501,6 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
|
||||
updateShowTouchesOptions();
|
||||
updateFlingerOptions();
|
||||
updateCpuUsageOptions();
|
||||
updateLowPowerModeOptions();
|
||||
updateHardwareUiOptions();
|
||||
updateMsaaOptions();
|
||||
updateTrackFrameTimeOptions();
|
||||
@@ -1040,22 +1036,11 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
|
||||
mWifiManager.enableVerboseLogging(mWifiVerboseLogging.isChecked() ? 1 : 0);
|
||||
}
|
||||
|
||||
private void updateLowPowerModeOptions() {
|
||||
updateCheckBox(mLowPowerMode, Settings.Global.getInt(getActivity().getContentResolver(),
|
||||
Settings.Global.LOW_POWER_MODE, 0) != 0);
|
||||
}
|
||||
|
||||
private void updateCpuUsageOptions() {
|
||||
updateCheckBox(mShowCpuUsage, Settings.Global.getInt(getActivity().getContentResolver(),
|
||||
Settings.Global.SHOW_PROCESSES, 0) != 0);
|
||||
}
|
||||
|
||||
private void writeLowPowerModeOptions() {
|
||||
boolean value = mLowPowerMode.isChecked();
|
||||
Settings.Global.putInt(getActivity().getContentResolver(),
|
||||
Settings.Global.LOW_POWER_MODE, value ? 1 : 0);
|
||||
}
|
||||
|
||||
private void writeCpuUsageOptions() {
|
||||
boolean value = mShowCpuUsage.isChecked();
|
||||
Settings.Global.putInt(getActivity().getContentResolver(),
|
||||
@@ -1332,8 +1317,6 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
|
||||
writeShowUpdatesOption();
|
||||
} else if (preference == mDisableOverlays) {
|
||||
writeDisableOverlaysOption();
|
||||
} else if (preference == mLowPowerMode) {
|
||||
writeLowPowerModeOptions();
|
||||
} else if (preference == mShowCpuUsage) {
|
||||
writeCpuUsageOptions();
|
||||
} else if (preference == mImmediatelyDestroyActivities) {
|
||||
|
@@ -66,6 +66,7 @@ public class Settings extends SettingsActivity {
|
||||
public static class RunningServicesActivity extends SettingsActivity { /* empty */ }
|
||||
public static class ManageAccountsSettingsActivity extends SettingsActivity { /* empty */ }
|
||||
public static class PowerUsageSummaryActivity extends SettingsActivity { /* empty */ }
|
||||
public static class BatterySaverSettingsActivity extends SettingsActivity { /* empty */ }
|
||||
public static class AccountSyncSettingsActivity extends SettingsActivity { /* empty */ }
|
||||
public static class AccountSyncSettingsInAddAccountActivity extends SettingsActivity { /* empty */ }
|
||||
public static class CryptKeeperSettingsActivity extends SettingsActivity { /* empty */ }
|
||||
|
@@ -63,8 +63,8 @@ import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
|
||||
import android.widget.SearchView;
|
||||
|
||||
import com.android.internal.util.ArrayUtils;
|
||||
import com.android.internal.util.XmlUtils;
|
||||
import com.android.settings.accessibility.AccessibilitySettings;
|
||||
@@ -83,6 +83,7 @@ import com.android.settings.dashboard.NoHomeDialogFragment;
|
||||
import com.android.settings.dashboard.SearchResultsSummary;
|
||||
import com.android.settings.deviceinfo.Memory;
|
||||
import com.android.settings.deviceinfo.UsbSettings;
|
||||
import com.android.settings.fuelgauge.BatterySaverSettings;
|
||||
import com.android.settings.fuelgauge.PowerUsageSummary;
|
||||
import com.android.settings.search.DynamicIndexableContentMonitor;
|
||||
import com.android.settings.search.Index;
|
||||
@@ -108,6 +109,7 @@ import com.android.settings.widget.SwitchBar;
|
||||
import com.android.settings.wifi.AdvancedWifiSettings;
|
||||
import com.android.settings.wifi.WifiSettings;
|
||||
import com.android.settings.wifi.p2p.WifiP2pSettings;
|
||||
|
||||
import org.xmlpull.v1.XmlPullParser;
|
||||
import org.xmlpull.v1.XmlPullParserException;
|
||||
|
||||
@@ -276,7 +278,8 @@ public class SettingsActivity extends Activity
|
||||
NotificationSettings.class.getName(),
|
||||
ChooseLockPassword.ChooseLockPasswordFragment.class.getName(),
|
||||
ChooseLockPattern.ChooseLockPatternFragment.class.getName(),
|
||||
InstalledAppDetails.class.getName()
|
||||
InstalledAppDetails.class.getName(),
|
||||
BatterySaverSettings.class.getName(),
|
||||
};
|
||||
|
||||
private SharedPreferences mDevelopmentPreferences;
|
||||
|
171
src/com/android/settings/fuelgauge/BatterySaverSettings.java
Normal file
171
src/com/android/settings/fuelgauge/BatterySaverSettings.java
Normal file
@@ -0,0 +1,171 @@
|
||||
/*
|
||||
* Copyright (C) 2014 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.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.database.ContentObserver;
|
||||
import android.net.Uri;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Message;
|
||||
import android.provider.Settings.Global;
|
||||
import android.util.Log;
|
||||
import android.widget.Switch;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SettingsActivity;
|
||||
import com.android.settings.SettingsPreferenceFragment;
|
||||
import com.android.settings.notification.SettingPref;
|
||||
import com.android.settings.widget.SwitchBar;
|
||||
|
||||
public class BatterySaverSettings extends SettingsPreferenceFragment
|
||||
implements SwitchBar.OnSwitchChangeListener {
|
||||
private static final String TAG = "BatterySaverSettings";
|
||||
private static final String KEY_TURN_ON_AUTOMATICALLY = "turn_on_automatically";
|
||||
private static final long WAIT_FOR_SWITCH_ANIM = 500;
|
||||
|
||||
private final H mHandler = new H();
|
||||
private final SettingsObserver mSettingsObserver = new SettingsObserver(mHandler);
|
||||
|
||||
private Context mContext;
|
||||
private SwitchBar mSwitchBar;
|
||||
private boolean mSwitchBarListenerAdded;
|
||||
private SettingPref mTriggerPref;
|
||||
|
||||
@Override
|
||||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
|
||||
addPreferencesFromResource(R.xml.battery_saver_settings);
|
||||
|
||||
mContext = getActivity();
|
||||
mSwitchBar = ((SettingsActivity) mContext).getSwitchBar();
|
||||
updateSwitchBar();
|
||||
mTriggerPref = new SettingPref(SettingPref.TYPE_GLOBAL, KEY_TURN_ON_AUTOMATICALLY,
|
||||
Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0,
|
||||
getResources().getIntArray(R.array.battery_saver_trigger_values)) {
|
||||
@Override
|
||||
protected String getCaption(Resources res, int value) {
|
||||
if (value > 0 && value < 100) {
|
||||
return res.getString(R.string.battery_saver_turn_on_automatically_pct, value);
|
||||
}
|
||||
return res.getString(R.string.battery_saver_turn_on_automatically_never);
|
||||
}
|
||||
};
|
||||
mTriggerPref.init(this);
|
||||
}
|
||||
|
||||
private void updateSwitchBar() {
|
||||
final boolean mode = Global.getInt(getContentResolver(), Global.LOW_POWER_MODE, 0) != 0;
|
||||
if (mSwitchBarListenerAdded) {
|
||||
mSwitchBar.removeOnSwitchChangeListener(this);
|
||||
}
|
||||
mSwitchBar.getSwitch().setChecked(mode);
|
||||
if (mSwitchBarListenerAdded) {
|
||||
mSwitchBar.addOnSwitchChangeListener(this);
|
||||
}
|
||||
}
|
||||
|
||||
private void updateTriggerLevel() {
|
||||
mTriggerPref.update(mContext);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
updateSwitchBar();
|
||||
mSettingsObserver.setListening(true);
|
||||
mSwitchBar.show();
|
||||
mSwitchBar.addOnSwitchChangeListener(this);
|
||||
mSwitchBarListenerAdded = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
mSettingsObserver.setListening(false);
|
||||
if (mSwitchBarListenerAdded) {
|
||||
mSwitchBar.removeOnSwitchChangeListener(this);
|
||||
}
|
||||
mSwitchBar.hide();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSwitchChanged(Switch switchView, boolean isChecked) {
|
||||
mHandler.postSetMode(isChecked);
|
||||
}
|
||||
|
||||
private void handleSetMode(final boolean mode) {
|
||||
AsyncTask.execute(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
Log.d(TAG, "LOW_POWER_MODE from settings: " + mode);
|
||||
Global.putInt(getContentResolver(), Global.LOW_POWER_MODE, mode ? 1 : 0);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private final class H extends Handler {
|
||||
private static final int SET_MODE = 1;
|
||||
|
||||
public void postSetMode(boolean mode) {
|
||||
removeMessages(SET_MODE);
|
||||
final Message m = obtainMessage(SET_MODE, mode ? 1 : 0, 0);
|
||||
sendMessageDelayed(m, mode ? WAIT_FOR_SWITCH_ANIM : 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleMessage(Message msg) {
|
||||
if (msg.what == SET_MODE) {
|
||||
handleSetMode(msg.arg1 != 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private final class SettingsObserver extends ContentObserver {
|
||||
private final Uri LOW_POWER_MODE_URI = Global.getUriFor(Global.LOW_POWER_MODE);
|
||||
private final Uri LOW_POWER_MODE_TRIGGER_LEVEL_URI
|
||||
= Global.getUriFor(Global.LOW_POWER_MODE_TRIGGER_LEVEL);
|
||||
|
||||
public SettingsObserver(Handler handler) {
|
||||
super(handler);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChange(boolean selfChange, Uri uri) {
|
||||
if (LOW_POWER_MODE_URI.equals(uri)) {
|
||||
updateSwitchBar();
|
||||
}
|
||||
if (LOW_POWER_MODE_TRIGGER_LEVEL_URI.equals(uri)) {
|
||||
updateTriggerLevel();
|
||||
}
|
||||
}
|
||||
|
||||
public void setListening(boolean listening) {
|
||||
final ContentResolver cr = getContentResolver();
|
||||
if (listening) {
|
||||
cr.registerContentObserver(LOW_POWER_MODE_URI, false, this);
|
||||
cr.registerContentObserver(LOW_POWER_MODE_TRIGGER_LEVEL_URI, false, this);
|
||||
} else {
|
||||
cr.unregisterContentObserver(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -60,7 +60,8 @@ public class PowerUsageSummary extends PreferenceFragment {
|
||||
|
||||
private static final int MENU_STATS_TYPE = Menu.FIRST;
|
||||
private static final int MENU_STATS_REFRESH = Menu.FIRST + 1;
|
||||
private static final int MENU_HELP = Menu.FIRST + 2;
|
||||
private static final int MENU_BATTERY_SAVER = Menu.FIRST + 2;
|
||||
private static final int MENU_HELP = Menu.FIRST + 3;
|
||||
|
||||
private UserManager mUm;
|
||||
|
||||
@@ -180,6 +181,9 @@ public class PowerUsageSummary extends PreferenceFragment {
|
||||
refresh.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM |
|
||||
MenuItem.SHOW_AS_ACTION_WITH_TEXT);
|
||||
|
||||
MenuItem batterySaver = menu.add(0, MENU_BATTERY_SAVER, 0, R.string.battery_saver);
|
||||
batterySaver.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
|
||||
|
||||
String helpUrl;
|
||||
if (!TextUtils.isEmpty(helpUrl = getResources().getString(R.string.help_url_battery))) {
|
||||
final MenuItem help = menu.add(0, MENU_HELP, 0, R.string.help_label);
|
||||
@@ -203,6 +207,11 @@ public class PowerUsageSummary extends PreferenceFragment {
|
||||
refreshStats();
|
||||
mHandler.removeMessages(MSG_REFRESH_STATS);
|
||||
return true;
|
||||
case MENU_BATTERY_SAVER:
|
||||
final SettingsActivity sa = (SettingsActivity) getActivity();
|
||||
sa.startPreferencePanel(BatterySaverSettings.class.getName(), null,
|
||||
R.string.battery_saver, null, null, 0);
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
@@ -97,8 +97,12 @@ public class DropDownPreference extends Preference {
|
||||
}
|
||||
}
|
||||
|
||||
public void addItem(int resId, Object value) {
|
||||
mAdapter.add(mContext.getResources().getString(resId));
|
||||
public void addItem(int captionResid, Object value) {
|
||||
addItem(mContext.getResources().getString(captionResid), value);
|
||||
}
|
||||
|
||||
public void addItem(String caption, Object value) {
|
||||
mAdapter.add(caption);
|
||||
mValues.add(value);
|
||||
}
|
||||
|
||||
|
@@ -21,6 +21,7 @@ import static com.android.settings.notification.SettingPref.TYPE_SYSTEM;
|
||||
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.database.ContentObserver;
|
||||
import android.media.AudioManager;
|
||||
import android.net.Uri;
|
||||
@@ -114,10 +115,15 @@ public class OtherSoundSettings extends SettingsPreferenceFragment implements In
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getResId(Context context, int value) {
|
||||
if (value == DOCK_AUDIO_MEDIA_DISABLED) return R.string.dock_audio_media_disabled;
|
||||
if (value == DOCK_AUDIO_MEDIA_ENABLED) return R.string.dock_audio_media_enabled;
|
||||
throw new IllegalArgumentException();
|
||||
protected String getCaption(Resources res, int value) {
|
||||
switch(value) {
|
||||
case DOCK_AUDIO_MEDIA_DISABLED:
|
||||
return res.getString(R.string.dock_audio_media_disabled);
|
||||
case DOCK_AUDIO_MEDIA_ENABLED:
|
||||
return res.getString(R.string.dock_audio_media_enabled);
|
||||
default:
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -131,11 +137,17 @@ public class OtherSoundSettings extends SettingsPreferenceFragment implements In
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getResId(Context context, int value) {
|
||||
if (value == EMERGENCY_TONE_SILENT) return R.string.emergency_tone_silent;
|
||||
if (value == EMERGENCY_TONE_ALERT) return R.string.emergency_tone_alert;
|
||||
if (value == EMERGENCY_TONE_VIBRATE) return R.string.emergency_tone_vibrate;
|
||||
throw new IllegalArgumentException();
|
||||
protected String getCaption(Resources res, int value) {
|
||||
switch(value) {
|
||||
case EMERGENCY_TONE_SILENT:
|
||||
return res.getString(R.string.emergency_tone_silent);
|
||||
case EMERGENCY_TONE_ALERT:
|
||||
return res.getString(R.string.emergency_tone_alert);
|
||||
case EMERGENCY_TONE_VIBRATE:
|
||||
return res.getString(R.string.emergency_tone_vibrate);
|
||||
default:
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
@@ -18,6 +18,7 @@ package com.android.settings.notification;
|
||||
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.net.Uri;
|
||||
import android.preference.Preference;
|
||||
import android.preference.TwoStatePreference;
|
||||
@@ -55,7 +56,7 @@ public class SettingPref {
|
||||
return true;
|
||||
}
|
||||
|
||||
protected int getResId(Context context, int value) {
|
||||
protected String getCaption(Resources res, int value) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@@ -71,7 +72,7 @@ public class SettingPref {
|
||||
} else if (p instanceof DropDownPreference) {
|
||||
mDropDown = (DropDownPreference) p;
|
||||
for (int value : mValues) {
|
||||
mDropDown.addItem(getResId(context, value), value);
|
||||
mDropDown.addItem(getCaption(context.getResources(), value), value);
|
||||
}
|
||||
}
|
||||
update(context);
|
||||
|
@@ -30,6 +30,7 @@ import com.android.settings.WirelessSettings;
|
||||
import com.android.settings.accessibility.AccessibilitySettings;
|
||||
import com.android.settings.bluetooth.BluetoothSettings;
|
||||
import com.android.settings.deviceinfo.Memory;
|
||||
import com.android.settings.fuelgauge.BatterySaverSettings;
|
||||
import com.android.settings.fuelgauge.PowerUsageSummary;
|
||||
import com.android.settings.inputmethod.InputMethodAndLanguageSettings;
|
||||
import com.android.settings.location.LocationSettings;
|
||||
@@ -103,6 +104,7 @@ public final class Ranking {
|
||||
sRankMap.put(Memory.class.getName(), RANK_MEMORY);
|
||||
|
||||
sRankMap.put(PowerUsageSummary.class.getName(), RANK_POWER_USAGE);
|
||||
sRankMap.put(BatterySaverSettings.class.getName(), RANK_POWER_USAGE);
|
||||
|
||||
sRankMap.put(UserSettings.class.getName(), RANK_USERS);
|
||||
|
||||
|
@@ -33,6 +33,7 @@ import com.android.settings.WirelessSettings;
|
||||
import com.android.settings.accessibility.AccessibilitySettings;
|
||||
import com.android.settings.bluetooth.BluetoothSettings;
|
||||
import com.android.settings.deviceinfo.Memory;
|
||||
import com.android.settings.fuelgauge.BatterySaverSettings;
|
||||
import com.android.settings.fuelgauge.PowerUsageSummary;
|
||||
import com.android.settings.inputmethod.InputMethodAndLanguageSettings;
|
||||
import com.android.settings.location.LocationSettings;
|
||||
@@ -154,6 +155,13 @@ public final class SearchIndexableResources {
|
||||
PowerUsageSummary.class.getName(),
|
||||
R.drawable.ic_settings_battery));
|
||||
|
||||
sResMap.put(BatterySaverSettings.class.getName(),
|
||||
new SearchIndexableResource(
|
||||
Ranking.getRankForClassName(BatterySaverSettings.class.getName()),
|
||||
R.xml.battery_saver_settings,
|
||||
BatterySaverSettings.class.getName(),
|
||||
R.drawable.ic_settings_battery));
|
||||
|
||||
sResMap.put(UserSettings.class.getName(),
|
||||
new SearchIndexableResource(
|
||||
Ranking.getRankForClassName(UserSettings.class.getName()),
|
||||
|
Reference in New Issue
Block a user