diff options
author | Tyler Nijmeh <tylernij@gmail.com> | 2021-03-30 22:31:42 -0700 |
---|---|---|
committer | Tyler Nijmeh <tylernij@gmail.com> | 2021-03-30 22:31:42 -0700 |
commit | 73a57d94670ffbffb708d84998e609395ed10938 (patch) | |
tree | 6489ceb06b07b2200a8a805d44abfe4238ff6764 /app | |
parent | d2050820b2ecf2258072117510cc06859bab7870 (diff) |
Add battery manager utility
Signed-off-by: Tyler Nijmeh <tylernij@gmail.com>
Diffstat (limited to 'app')
-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 |