summaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
authorTyler Nijmeh <tylernij@gmail.com>2021-03-31 15:17:49 -0700
committerTyler Nijmeh <tylernij@gmail.com>2021-03-31 15:17:49 -0700
commite0c8b1ae6ab90aef623d8458572462ab3af0aeba (patch)
tree7a457bce4268d86e85346699d29041c5063bcd34 /app/src
parent8ed1d40bfdd954b17a9d7141f7198f58521e96fa (diff)
Warn on plugged in
Signed-off-by: Tyler Nijmeh <tylernij@gmail.com>
Diffstat (limited to 'app/src')
-rw-r--r--app/src/main/java/com/draco/buoy/fragments/MainPreferenceFragment.kt42
-rw-r--r--app/src/main/res/values/strings.xml1
2 files changed, 37 insertions, 6 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 7cf5f34..a1f84b1 100644
--- a/app/src/main/java/com/draco/buoy/fragments/MainPreferenceFragment.kt
+++ b/app/src/main/java/com/draco/buoy/fragments/MainPreferenceFragment.kt
@@ -1,9 +1,8 @@
package com.draco.buoy.fragments
-import android.content.Context
-import android.content.Intent
-import android.content.SharedPreferences
+import android.content.*
import android.net.Uri
+import android.os.BatteryManager
import android.os.Build
import android.os.Bundle
import androidx.preference.*
@@ -80,9 +79,17 @@ class MainPreferenceFragment : PreferenceFragmentCompat(), SharedPreferences.OnS
refreshSettings()
lockSettings()
- /**
- * On import text changed, apply the new configuration
- */
+ /* 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()
+
+ /* On import text changed, apply the new configuration */
findPreference<EditTextPreference>(getString(R.string.pref_key_import))?.let {
it.setOnPreferenceChangeListener { _, newValue ->
batterySaverManager.setConstantsString(newValue as String)
@@ -92,6 +99,11 @@ 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_reset) -> {
@@ -237,4 +249,22 @@ 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/res/values/strings.xml b/app/src/main/res/values/strings.xml
index ec44fc3..5976dcd 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -11,6 +11,7 @@
<string name="copied">Copied to clipboard</string>
<string name="snackbar_intent_failed">Could not handle this action</string>
+ <string name="snackbar_plugged_in">Buoy will take effect when device is unplugged</string>
<string name="developer_url">https://www.github.com/tytydraco</string>
<string name="source_url">https://www.github.com/tytydraco/Buoy</string>