diff options
| author | Tyler Nijmeh <tylernij@gmail.com> | 2021-03-31 15:17:49 -0700 |
|---|---|---|
| committer | Tyler Nijmeh <tylernij@gmail.com> | 2021-03-31 15:17:49 -0700 |
| commit | e0c8b1ae6ab90aef623d8458572462ab3af0aeba (patch) | |
| tree | 7a457bce4268d86e85346699d29041c5063bcd34 /app/src | |
| parent | 8ed1d40bfdd954b17a9d7141f7198f58521e96fa (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.kt | 42 | ||||
| -rw-r--r-- | app/src/main/res/values/strings.xml | 1 |
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> |
