Cherish: Update Smart Pixels menu

Menu updates preferences when changed externally via tile
Now allows user to enable/disable auto-enable.

Change-Id: Iaf78a60e5f083fde3c6fe562623169c01ba2ea22
Signed-off-by: shagbag913 <sh4gbag913@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
This commit is contained in:
Adin Kwok
2018-04-12 18:33:43 -07:00
committed by Hưng Phan
parent ee150661b7
commit 2efab55c9c

View File

@@ -19,7 +19,10 @@ package com.cherish.settings.fragments;
import android.content.Context;
import android.content.ContentResolver;
import android.content.res.Resources;
import android.database.ContentObserver;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.UserHandle;
import android.os.PowerManager;
import android.provider.SearchIndexableResource;
@@ -45,11 +48,17 @@ import java.util.List;
public class SmartPixels extends SettingsPreferenceFragment implements
Preference.OnPreferenceChangeListener {
private static final String TAG = "SmartPixels";
private static final String ENABLE = "smart_pixels_enable";
private static final String ON_POWER_SAVE = "smart_pixels_on_power_save";
private Handler mHandler = new Handler();
private SmartPixelsObserver mSmartPixelsObserver;
private SystemSettingSwitchPreference mSmartPixelsEnable;
private SystemSettingSwitchPreference mSmartPixelsOnPowerSave;
private boolean mIsSmartPixelsEnabled;
private boolean mIsSmartPixelsOnPowerSave;
ContentResolver resolver;
@Override
@@ -60,9 +69,10 @@ public class SmartPixels extends SettingsPreferenceFragment implements
resolver = getActivity().getContentResolver();
mSmartPixelsEnable = (SystemSettingSwitchPreference) findPreference(ENABLE);
mSmartPixelsOnPowerSave = (SystemSettingSwitchPreference) findPreference(ON_POWER_SAVE);
updateDependency();
mSmartPixelsObserver = new SmartPixelsObserver(mHandler);
}
@Override
@@ -73,28 +83,58 @@ public class SmartPixels extends SettingsPreferenceFragment implements
@Override
public void onResume() {
super.onResume();
if (mSmartPixelsObserver != null) {
mSmartPixelsObserver.register();
}
}
@Override
public void onPause() {
super.onPause();
if (mSmartPixelsObserver != null) {
mSmartPixelsObserver.unregister();
}
}
public boolean onPreferenceChange(Preference preference, Object objValue) {
final String key = preference.getKey();
updateDependency();
return true;
}
private void updateDependency() {
boolean mUseOnPowerSave = (Settings.System.getIntForUser(
private void updatePreferences() {
mIsSmartPixelsEnabled = (Settings.System.getIntForUser(
resolver, Settings.System.SMART_PIXELS_ENABLE,
0, UserHandle.USER_CURRENT) == 1);
mIsSmartPixelsOnPowerSave = (Settings.System.getIntForUser(
resolver, Settings.System.SMART_PIXELS_ON_POWER_SAVE,
0, UserHandle.USER_CURRENT) == 1);
PowerManager pm = (PowerManager)getActivity().getSystemService(Context.POWER_SERVICE);
if (pm.isPowerSaveMode() && mUseOnPowerSave) {
mSmartPixelsOnPowerSave.setEnabled(false);
} else {
mSmartPixelsOnPowerSave.setEnabled(true);
mSmartPixelsEnable.setChecked(mIsSmartPixelsEnabled);
mSmartPixelsOnPowerSave.setChecked(mIsSmartPixelsOnPowerSave);
}
private class SmartPixelsObserver extends ContentObserver {
public SmartPixelsObserver(Handler handler) {
super(handler);
}
public void register() {
resolver.registerContentObserver(Settings.System.getUriFor(
Settings.System.SMART_PIXELS_ENABLE),
false, this, UserHandle.USER_CURRENT);
resolver.registerContentObserver(Settings.System.getUriFor(
Settings.System.SMART_PIXELS_ON_POWER_SAVE),
false, this, UserHandle.USER_CURRENT);
}
public void unregister() {
resolver.unregisterContentObserver(this);
}
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
updatePreferences();
}
}