summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTyler Nijmeh <tylernij@gmail.com>2021-04-04 20:39:44 -0700
committerTyler Nijmeh <tylernij@gmail.com>2021-04-04 20:39:44 -0700
commit81fc854036b2dad54e304d027e80722ab4c2f554 (patch)
tree92e6ea80a48cc3964bc41c3a891ff0287a682a50
parent270c5a3c794238b3bb342b27895308b007c8650b (diff)
Do not automatically enable LPM
Devices get locked in this state otherwise Signed-off-by: Tyler Nijmeh <tylernij@gmail.com>
-rw-r--r--app/src/main/java/com/draco/buoy/fragments/MainPreferenceFragment.kt36
-rw-r--r--app/src/main/java/com/draco/buoy/utils/BatterySaverManager.kt16
-rw-r--r--app/src/main/res/values/strings.xml2
3 files changed, 19 insertions, 35 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 1a65293..123eb1d 100644
--- a/app/src/main/java/com/draco/buoy/fragments/MainPreferenceFragment.kt
+++ b/app/src/main/java/com/draco/buoy/fragments/MainPreferenceFragment.kt
@@ -2,7 +2,6 @@ package com.draco.buoy.fragments
import android.content.*
import android.net.Uri
-import android.os.BatteryManager
import android.os.Build
import android.os.Bundle
import androidx.preference.*
@@ -79,15 +78,9 @@ class MainPreferenceFragment : PreferenceFragmentCompat(), SharedPreferences.OnS
refreshSettings()
lockSettings()
- /* Listen for power plugged or unplugged */
- val connectionChangedIntent = IntentFilter()
- connectionChangedIntent.addAction(Intent.ACTION_POWER_CONNECTED)
- requireContext().registerReceiver(connectionChangedReceiver, connectionChangedIntent)
-
- /* Check now */
- val batteryManager = requireContext().getSystemService(Context.BATTERY_SERVICE) as BatteryManager
- if (batteryManager.isCharging)
- pluggedInAlert()
+ /* Alert the user that LPM is not enabled */
+ if (!batterySaverManager.getLowPower())
+ Snackbar.make(requireView(), getString(R.string.snackbar_low_power), Snackbar.LENGTH_SHORT).show()
/* On import text changed, apply the new configuration */
findPreference<EditTextPreference>(getString(R.string.pref_key_import))?.let {
@@ -99,11 +92,6 @@ class MainPreferenceFragment : PreferenceFragmentCompat(), SharedPreferences.OnS
}
}
- override fun onDestroy() {
- super.onDestroy()
- requireContext().unregisterReceiver(connectionChangedReceiver)
- }
-
override fun onPreferenceTreeClick(preference: Preference): Boolean {
when (preference.key) {
getString(R.string.pref_profile_key_default) -> {
@@ -253,22 +241,4 @@ class MainPreferenceFragment : PreferenceFragmentCompat(), SharedPreferences.OnS
override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) {
applySettings()
}
-
- /**
- * Warn the user that low power mode won't work until the device is on battery power
- */
- private fun pluggedInAlert() {
- Snackbar.make(requireView(), getString(R.string.snackbar_plugged_in), Snackbar.LENGTH_LONG).show()
- }
-
- /**
- * On power change, enable or disable all settings
- */
- private var connectionChangedReceiver = object : BroadcastReceiver() {
- override fun onReceive(context: Context, intent: Intent) {
- when (intent.action) {
- Intent.ACTION_POWER_CONNECTED -> pluggedInAlert()
- }
- }
- }
} \ 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
index a72aa70..8bf76a6 100644
--- a/app/src/main/java/com/draco/buoy/utils/BatterySaverManager.kt
+++ b/app/src/main/java/com/draco/buoy/utils/BatterySaverManager.kt
@@ -19,6 +19,17 @@ class BatterySaverManager(private val contentResolver: ContentResolver) {
}
/**
+ * Return true if low power mode is enabled
+ */
+ fun getLowPower(): Boolean {
+ return Settings.Global.getInt(
+ contentResolver,
+ BatterySaverSecureSettings.LOW_POWER,
+ 0
+ ) == 1
+ }
+
+ /**
* Enable or disable low power sticky mode
*/
fun setLowPowerSticky(state: Boolean) {
@@ -79,7 +90,7 @@ class BatterySaverManager(private val contentResolver: ContentResolver) {
is BatterySaverConstantsConfig -> setConstantsConfig(config)
}
- setLowPower(true)
+ //setLowPower(true)
setLowPowerSticky(true)
setLowPowerStickyAutoDisableEnabled(false)
}
@@ -89,5 +100,8 @@ class BatterySaverManager(private val contentResolver: ContentResolver) {
*/
fun resetToDefault() {
apply(null)
+
+ setLowPowerSticky(false)
+ setLowPowerStickyAutoDisableEnabled(true)
}
} \ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index f737890..e1fff57 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -12,7 +12,7 @@
<string name="snackbar_intent_failed">Could not handle this action</string>
<string name="snackbar_failed_to_apply">Failed to apply; device is likely incompatible</string>
- <string name="snackbar_plugged_in">Buoy will take effect when device is unplugged</string>
+ <string name="snackbar_low_power">Changes will take effect when device is in battery saver mode</string>
<string name="developer_url">https://www.github.com/tytydraco</string>
<string name="source_url">https://www.github.com/tytydraco/Buoy</string>