From 81fc854036b2dad54e304d027e80722ab4c2f554 Mon Sep 17 00:00:00 2001 From: Tyler Nijmeh Date: Sun, 4 Apr 2021 20:39:44 -0700 Subject: Do not automatically enable LPM Devices get locked in this state otherwise Signed-off-by: Tyler Nijmeh --- .../draco/buoy/fragments/MainPreferenceFragment.kt | 36 ++-------------------- .../com/draco/buoy/utils/BatterySaverManager.kt | 16 +++++++++- app/src/main/res/values/strings.xml | 2 +- 3 files changed, 19 insertions(+), 35 deletions(-) (limited to 'app/src') 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(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 @@ -18,6 +18,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 */ @@ -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 @@ Could not handle this action Failed to apply; device is likely incompatible - Buoy will take effect when device is unplugged + Changes will take effect when device is in battery saver mode https://www.github.com/tytydraco https://www.github.com/tytydraco/Buoy -- cgit v1.2.3