diff options
Diffstat (limited to 'app/src')
-rw-r--r-- | app/src/main/java/com/draco/buoy/repositories/BatterySaverSecureSettings.kt | 9 | ||||
-rw-r--r-- | app/src/main/java/com/draco/buoy/utils/BatterySaverManager.kt | 59 |
2 files changed, 68 insertions, 0 deletions
diff --git a/app/src/main/java/com/draco/buoy/repositories/BatterySaverSecureSettings.kt b/app/src/main/java/com/draco/buoy/repositories/BatterySaverSecureSettings.kt new file mode 100644 index 0000000..c769cf5 --- /dev/null +++ b/app/src/main/java/com/draco/buoy/repositories/BatterySaverSecureSettings.kt @@ -0,0 +1,9 @@ +package com.draco.buoy.repositories + +/** + * Expose secure settings hidden in the Android APIs + */ +object BatterySaverSecureSettings { + const val BATTERY_SAVER_CONSTANTS = "battery_saver_constants" + const val LOW_POWER = "low_power" +}
\ No newline at end of file diff --git a/app/src/main/java/com/draco/buoy/utils/BatterySaverManager.kt b/app/src/main/java/com/draco/buoy/utils/BatterySaverManager.kt new file mode 100644 index 0000000..d8f5c5b --- /dev/null +++ b/app/src/main/java/com/draco/buoy/utils/BatterySaverManager.kt @@ -0,0 +1,59 @@ +package com.draco.buoy.utils + +import android.content.ContentResolver +import android.provider.Settings +import com.draco.buoy.models.BatterySaverConstantsConfig +import com.draco.buoy.repositories.BatterySaverSecureSettings + +class BatterySaverManager(private val contentResolver: ContentResolver) { + /** + * Reset constants to default values + */ + fun resetConstants() { + Settings.Global.putString( + contentResolver, + BatterySaverSecureSettings.BATTERY_SAVER_CONSTANTS, + null + ) + } + + /** + * Enable or disable low power mode + */ + fun setBatterySaverState(state: Boolean) { + val intBool = if (state) 1 else 0 + Settings.Global.putInt( + contentResolver, + BatterySaverSecureSettings.LOW_POWER, + intBool + ) + } + + /** + * Get current low power state + */ + fun getBatteryPowerSaverState(): Boolean { + return Settings.Global.getInt( + contentResolver, + BatterySaverSecureSettings.LOW_POWER + ) == 1 + } + + /** + * Set the raw battery saver constants secure setting + */ + fun setConstantsString(constants: String) { + Settings.Global.putString( + contentResolver, + BatterySaverSecureSettings.BATTERY_SAVER_CONSTANTS, + constants + ) + } + + /** + * Set the battery saver constants secure setting via a config + */ + fun setConstantsConfig(config: BatterySaverConstantsConfig) { + setConstantsString(config.toString()) + } +}
\ No newline at end of file |