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/main/java | |
| parent | 8ed1d40bfdd954b17a9d7141f7198f58521e96fa (diff) | |
Warn on plugged in
Signed-off-by: Tyler Nijmeh <tylernij@gmail.com>
Diffstat (limited to 'app/src/main/java')
| -rw-r--r-- | app/src/main/java/com/draco/buoy/fragments/MainPreferenceFragment.kt | 42 |
1 files changed, 36 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 |
