diff options
author | Tyler Nijmeh <tylernij@gmail.com> | 2021-03-31 02:12:53 -0700 |
---|---|---|
committer | Tyler Nijmeh <tylernij@gmail.com> | 2021-03-31 02:12:53 -0700 |
commit | e4020a7517fb25d8e048282429a71c216ce84668 (patch) | |
tree | 1377faa1b9809f379f343692b8420d169a08300b /app/src/main/java | |
parent | 9a63ecfe6217fa94f495c2f2877917eda6aa57b8 (diff) |
Read settings in from device
Signed-off-by: Tyler Nijmeh <tylernij@gmail.com>
Diffstat (limited to 'app/src/main/java')
3 files changed, 47 insertions, 9 deletions
diff --git a/app/src/main/java/com/draco/buoy/fragments/MainPreferenceFragment.kt b/app/src/main/java/com/draco/buoy/fragments/MainPreferenceFragment.kt index e0be6d3..f757d39 100644 --- a/app/src/main/java/com/draco/buoy/fragments/MainPreferenceFragment.kt +++ b/app/src/main/java/com/draco/buoy/fragments/MainPreferenceFragment.kt @@ -4,8 +4,7 @@ import android.content.Context import android.content.Intent import android.net.Uri import android.os.Bundle -import androidx.preference.Preference -import androidx.preference.PreferenceFragmentCompat +import androidx.preference.* import com.draco.buoy.R import com.draco.buoy.models.BatterySaverConstantsConfig import com.draco.buoy.repositories.BatterySaverConstantsConfigProfiles @@ -27,11 +26,11 @@ class MainPreferenceFragment : PreferenceFragmentCompat() { override fun onPreferenceTreeClick(preference: Preference): Boolean { when (preference.key) { - getString(R.string.profile_key_reset) -> resetProfile() - getString(R.string.profile_key_light) -> applyProfile(BatterySaverConstantsConfigProfiles.LIGHT) - getString(R.string.profile_key_moderate) -> applyProfile(BatterySaverConstantsConfigProfiles.MODERATE) - getString(R.string.profile_key_high) -> applyProfile(BatterySaverConstantsConfigProfiles.HIGH) - getString(R.string.profile_key_extreme) -> applyProfile(BatterySaverConstantsConfigProfiles.EXTREME) + getString(R.string.pref_profile_key_reset) -> resetProfile() + getString(R.string.pref_profile_key_light) -> applyProfile(BatterySaverConstantsConfigProfiles.LIGHT) + getString(R.string.pref_profile_key_moderate) -> applyProfile(BatterySaverConstantsConfigProfiles.MODERATE) + getString(R.string.pref_profile_key_high) -> applyProfile(BatterySaverConstantsConfigProfiles.HIGH) + getString(R.string.pref_profile_key_extreme) -> applyProfile(BatterySaverConstantsConfigProfiles.EXTREME) getString(R.string.pref_developer_key) -> openURL(getString(R.string.developer_url)) getString(R.string.pref_source_key) -> openURL(getString(R.string.source_url)) @@ -45,11 +44,39 @@ class MainPreferenceFragment : PreferenceFragmentCompat() { return true } + private fun updateSettings() { + val currentProfileString = batterySaverManager.getConstantsString() + val currentProfile = BatterySaverConstantsConfig().also { + if (currentProfileString != null) + it.import(currentProfileString) + } + + findPreference<SwitchPreference>(getString(R.string.pref_config_key_advertise_is_enabled))?.isChecked = currentProfile.advertiseIsEnabled + findPreference<SwitchPreference>(getString(R.string.pref_config_key_datasaver_enabled))?.isChecked = !currentProfile.dataSaverDisabled + findPreference<SwitchPreference>(getString(R.string.pref_config_key_enable_night_mode))?.isChecked = currentProfile.enableNightMode + findPreference<SwitchPreference>(getString(R.string.pref_config_key_launch_boost_enabled))?.isChecked = !currentProfile.launchBoostDisabled + findPreference<SwitchPreference>(getString(R.string.pref_config_key_vibration_enabled))?.isChecked = !currentProfile.vibrationDisabled + findPreference<SwitchPreference>(getString(R.string.pref_config_key_animation_enabled))?.isChecked = !currentProfile.animationDisabled + findPreference<SwitchPreference>(getString(R.string.pref_config_key_soundtrigger_enabled))?.isChecked = !currentProfile.soundTriggerDisabled + findPreference<SwitchPreference>(getString(R.string.pref_config_key_fullbackup_deferred))?.isChecked = currentProfile.fullBackupDeferred + findPreference<SwitchPreference>(getString(R.string.pref_config_key_keyvaluebackup_deferred))?.isChecked = currentProfile.keyValueBackupDeferred + findPreference<SwitchPreference>(getString(R.string.pref_config_key_firewall_enabled))?.isChecked = !currentProfile.fireWallDisabled + findPreference<ListPreference>(getString(R.string.pref_config_key_gps_mode))?.value = currentProfile.gpsMode.toString() + findPreference<SwitchPreference>(getString(R.string.pref_config_key_adjust_brightness_enabled))?.isChecked = !currentProfile.adjustBrightnessDisabled + findPreference<SeekBarPreference>(getString(R.string.pref_config_key_adjust_brightness_factor))?.value = (currentProfile.adjustBrightnessFactor * 100).toInt() + findPreference<SwitchPreference>(getString(R.string.pref_config_key_force_all_apps_standby))?.isChecked = currentProfile.forceAllAppsStandby + findPreference<SwitchPreference>(getString(R.string.pref_config_key_force_background_check))?.isChecked = currentProfile.forceBackgroundCheck + findPreference<SwitchPreference>(getString(R.string.pref_config_key_optional_sensors_disabled))?.isChecked = currentProfile.optionalSensorsDisabled + findPreference<SwitchPreference>(getString(R.string.pref_config_key_aod_enabled))?.isChecked = currentProfile.aodDisabled + findPreference<SwitchPreference>(getString(R.string.pref_config_key_quick_doze_enabled))?.isChecked = currentProfile.quickDozeEnabled + } + private fun applyProfile(profile: BatterySaverConstantsConfig) { batterySaverManager.setConstantsConfig(profile) batterySaverManager.setLowPower(true) batterySaverManager.setLowPowerSticky(true) batterySaverManager.setLowPowerStickyAutoDisableEnabled(false) + updateSettings() } private fun resetProfile() { @@ -57,6 +84,7 @@ class MainPreferenceFragment : PreferenceFragmentCompat() { batterySaverManager.setLowPower(false) batterySaverManager.setLowPowerSticky(false) batterySaverManager.setLowPowerStickyAutoDisableEnabled(true) + updateSettings() } private fun openURL(url: String) { diff --git a/app/src/main/java/com/draco/buoy/models/BatterySaverConstantsConfig.kt b/app/src/main/java/com/draco/buoy/models/BatterySaverConstantsConfig.kt index 6733227..c26ab01 100644 --- a/app/src/main/java/com/draco/buoy/models/BatterySaverConstantsConfig.kt +++ b/app/src/main/java/com/draco/buoy/models/BatterySaverConstantsConfig.kt @@ -32,7 +32,7 @@ data class BatterySaverConstantsConfig( "${BatterySaverConstants.ANIMATION_DISABLED}=$animationDisabled," + "${BatterySaverConstants.SOUNDTRIGGER_DISABLED}=$soundTriggerDisabled," + "${BatterySaverConstants.FULLBACKUP_DEFERRED}=$fullBackupDeferred," + - "${BatterySaverConstants.KEYVALUEBACKUP_DEFERRED}=$keyValueBackupDeferred" + + "${BatterySaverConstants.KEYVALUEBACKUP_DEFERRED}=$keyValueBackupDeferred," + "${BatterySaverConstants.FIREWALL_DISABLED}=$fireWallDisabled," + "${BatterySaverConstants.GPS_MODE}=$gpsMode," + "${BatterySaverConstants.ADJUST_BRIGHTNESS_DISABLED}=$adjustBrightnessDisabled," + @@ -44,7 +44,7 @@ data class BatterySaverConstantsConfig( "${BatterySaverConstants.QUICK_DOZE_ENABLED}=$quickDozeEnabled" } - fun fromString(string: String) { + fun import(string: String) { val keyValueMap = string.split(",").associate { val (key, value) = it.split("=") key to value diff --git a/app/src/main/java/com/draco/buoy/utils/BatterySaverManager.kt b/app/src/main/java/com/draco/buoy/utils/BatterySaverManager.kt index dbc2d37..f63b681 100644 --- a/app/src/main/java/com/draco/buoy/utils/BatterySaverManager.kt +++ b/app/src/main/java/com/draco/buoy/utils/BatterySaverManager.kt @@ -65,6 +65,16 @@ class BatterySaverManager(private val contentResolver: ContentResolver) { } /** + * Get the raw battery saver constants secure setting + */ + fun getConstantsString(): String? { + return Settings.Global.getString( + contentResolver, + BatterySaverSecureSettings.BATTERY_SAVER_CONSTANTS + ) + } + + /** * Set the battery saver constants secure setting via a config */ fun setConstantsConfig(config: BatterySaverConstantsConfig) { |