• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package com.android.settings.fuelgauge.batterysaver;
2 
3 import android.content.Context;
4 import android.provider.Settings;
5 import android.provider.Settings.Global;
6 
7 import androidx.preference.Preference;
8 import androidx.preference.SwitchPreference;
9 
10 import com.android.settings.R;
11 import com.android.settings.Utils;
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     private static final int DEFAULT_STICKY_SHUTOFF_LEVEL = 90;
18 
19     private Context mContext;
20 
BatterySaverStickyPreferenceController(Context context, String preferenceKey)21     public BatterySaverStickyPreferenceController(Context context, String preferenceKey) {
22         super(context, preferenceKey);
23         mContext = context;
24     }
25 
26     @Override
isChecked()27     public boolean isChecked() {
28         return Settings.Global.getInt(mContext.getContentResolver(),
29             Global.LOW_POWER_MODE_STICKY_AUTO_DISABLE_ENABLED, 1) == 1;
30     }
31 
32     @Override
setChecked(boolean isChecked)33     public boolean setChecked(boolean isChecked) {
34         Settings.Global.putInt(mContext.getContentResolver(),
35             Global.LOW_POWER_MODE_STICKY_AUTO_DISABLE_ENABLED,
36             isChecked ? 1 : 0);
37         return true;
38     }
39 
40     @Override
refreshSummary(Preference preference)41     protected void refreshSummary(Preference preference) {
42         super.refreshSummary(preference);
43         final int stickyShutoffLevel = Settings.Global.getInt(mContext.getContentResolver(),
44                 Global.LOW_POWER_MODE_STICKY_AUTO_DISABLE_LEVEL, DEFAULT_STICKY_SHUTOFF_LEVEL);
45         final String formatPercentage = Utils.formatPercentage(stickyShutoffLevel);
46         preference.setTitle(mContext.getString(R.string.battery_saver_sticky_title_percentage,
47                 formatPercentage));
48         preference.setSummary(mContext.getString(R.string.battery_saver_sticky_description_new,
49                 formatPercentage));
50     }
51 
52     @Override
updateState(Preference preference)53     public void updateState(Preference preference) {
54         int setting = Settings.Global.getInt(mContext.getContentResolver(),
55             Global.LOW_POWER_MODE_STICKY_AUTO_DISABLE_ENABLED, 1);
56 
57         ((SwitchPreference) preference).setChecked(setting == 1);
58         refreshSummary(preference);
59     }
60 
61     @Override
getAvailabilityStatus()62     public int getAvailabilityStatus() {
63         return AVAILABLE;
64     }
65 
66     @Override
getSliceHighlightMenuRes()67     public int getSliceHighlightMenuRes() {
68         return R.string.menu_key_battery;
69     }
70 }
71