• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package com.android.settings.fuelgauge.batterysaver;
2 
3 import android.content.Context;
4 import android.icu.text.NumberFormat;
5 import android.provider.Settings;
6 import android.provider.Settings.Global;
7 import android.text.TextUtils;
8 
9 import androidx.preference.Preference;
10 import androidx.preference.SwitchPreference;
11 import com.android.settings.R;
12 import com.android.settings.core.PreferenceControllerMixin;
13 import com.android.settings.core.TogglePreferenceController;
14 
15 public class BatterySaverStickyPreferenceController extends TogglePreferenceController implements
16         PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
17 
18     private Context mContext;
19 
BatterySaverStickyPreferenceController(Context context, String preferenceKey)20     public BatterySaverStickyPreferenceController(Context context, String preferenceKey) {
21         super(context, preferenceKey);
22         mContext = context;
23     }
24 
25     @Override
isChecked()26     public boolean isChecked() {
27         return Settings.Global.getInt(mContext.getContentResolver(),
28             Global.LOW_POWER_MODE_STICKY_AUTO_DISABLE_ENABLED, 1) == 1;
29     }
30 
31     @Override
setChecked(boolean isChecked)32     public boolean setChecked(boolean isChecked) {
33         Settings.Global.putInt(mContext.getContentResolver(),
34             Global.LOW_POWER_MODE_STICKY_AUTO_DISABLE_ENABLED,
35             isChecked ? 1 : 0);
36         return true;
37     }
38 
39     @Override
refreshSummary(Preference preference)40     protected void refreshSummary(Preference preference) {
41         super.refreshSummary(preference);
42         final int stickyShutoffLevel = Settings.Global.getInt(
43             mContext.getContentResolver(), Global.LOW_POWER_MODE_STICKY_AUTO_DISABLE_LEVEL, 90);
44         preference.setSummary(TextUtils.expandTemplate(
45                 mContext.getString(R.string.battery_saver_sticky_description_new),
46                 NumberFormat.getIntegerInstance().format(stickyShutoffLevel)));
47     }
48 
49     @Override
updateState(Preference preference)50     public void updateState(Preference preference) {
51         int setting = Settings.Global.getInt(mContext.getContentResolver(),
52             Global.LOW_POWER_MODE_STICKY_AUTO_DISABLE_ENABLED, 1);
53 
54         ((SwitchPreference) preference).setChecked(setting == 1);
55         refreshSummary(preference);
56     }
57 
58     @Override
getAvailabilityStatus()59     public int getAvailabilityStatus() {
60         return AVAILABLE;
61     }
62 }
63