summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorTyler Nijmeh <tylernij@gmail.com>2021-03-31 12:48:27 -0700
committerTyler Nijmeh <tylernij@gmail.com>2021-03-31 12:48:27 -0700
commit4a0af97520794c78f20c1cce9da42fb32d1880b9 (patch)
treef73f30c98068f9a699a62c9663c7ed2c1acd4a95 /app
parent1c04bfd5343191744dccb53a833e966d90cbeacc (diff)
Better document code
Signed-off-by: Tyler Nijmeh <tylernij@gmail.com>
Diffstat (limited to 'app')
-rw-r--r--app/src/main/java/com/draco/buoy/fragments/MainPreferenceFragment.kt23
-rw-r--r--app/src/main/java/com/draco/buoy/repositories/constants/ExternalProfileReceiverIntentConstants.kt7
-rw-r--r--app/src/main/java/com/draco/buoy/utils/PermissionUtils.kt3
-rw-r--r--app/src/main/java/com/draco/buoy/views/MainActivity.kt1
-rw-r--r--app/src/main/java/com/draco/buoy/views/PermissionActivity.kt2
5 files changed, 34 insertions, 2 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 0a0f923..f030c16 100644
--- a/app/src/main/java/com/draco/buoy/fragments/MainPreferenceFragment.kt
+++ b/app/src/main/java/com/draco/buoy/fragments/MainPreferenceFragment.kt
@@ -39,6 +39,9 @@ class MainPreferenceFragment : PreferenceFragmentCompat(), SharedPreferences.OnS
super.onActivityCreated(savedInstanceState)
refreshSettings()
+ /**
+ * 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)
@@ -86,6 +89,9 @@ class MainPreferenceFragment : PreferenceFragmentCompat(), SharedPreferences.OnS
return true
}
+ /**
+ * Show the user a dialog where they can export the constants
+ */
private fun exportSettings() {
val intent = Intent()
.setAction(Intent.ACTION_SEND)
@@ -95,7 +101,11 @@ class MainPreferenceFragment : PreferenceFragmentCompat(), SharedPreferences.OnS
startActivity(chooser)
}
+ /**
+ * Update the UI to show the new constants
+ */
private fun refreshSettings() {
+ /* Take existing constants and apply to the default config as overrides */
val currentProfileString = batterySaverManager.getConstantsString()
val currentProfile = BatterySaverConstantsConfig().also {
if (currentProfileString != null)
@@ -122,7 +132,10 @@ class MainPreferenceFragment : PreferenceFragmentCompat(), SharedPreferences.OnS
findPreference<SwitchPreference>(getString(R.string.pref_config_key_quick_doze_enabled))?.isChecked = currentProfile.quickDozeEnabled
}
- private fun saveSettings() {
+ /**
+ * Take the UI settings and apply them as constants
+ */
+ private fun applySettings() {
val config = BatterySaverConstantsConfig(
findPreference<SwitchPreference>(getString(R.string.pref_config_key_advertise_is_enabled))!!.isChecked,
!findPreference<SwitchPreference>(getString(R.string.pref_config_key_datasaver_enabled))!!.isChecked,
@@ -147,6 +160,9 @@ class MainPreferenceFragment : PreferenceFragmentCompat(), SharedPreferences.OnS
refreshSettings()
}
+ /**
+ * Open a URL for the user
+ */
private fun openURL(url: String) {
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
try {
@@ -157,7 +173,10 @@ class MainPreferenceFragment : PreferenceFragmentCompat(), SharedPreferences.OnS
}
}
+ /**
+ * When settings are changed, apply the new config
+ */
override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) {
- saveSettings()
+ applySettings()
}
} \ No newline at end of file
diff --git a/app/src/main/java/com/draco/buoy/repositories/constants/ExternalProfileReceiverIntentConstants.kt b/app/src/main/java/com/draco/buoy/repositories/constants/ExternalProfileReceiverIntentConstants.kt
index 6de06cc..60e2f1b 100644
--- a/app/src/main/java/com/draco/buoy/repositories/constants/ExternalProfileReceiverIntentConstants.kt
+++ b/app/src/main/java/com/draco/buoy/repositories/constants/ExternalProfileReceiverIntentConstants.kt
@@ -1,6 +1,13 @@
package com.draco.buoy.repositories.constants
object ExternalProfileReceiverIntentConstants {
+ /**
+ * Intent key, can specify one of the available profiles
+ */
const val KEY_PROFILE_NAME = "profile_name"
+
+ /**
+ * Intent key, can specify a string delimited by ',' with key=value pairs
+ */
const val KEY_CONSTANTS = "constants"
} \ No newline at end of file
diff --git a/app/src/main/java/com/draco/buoy/utils/PermissionUtils.kt b/app/src/main/java/com/draco/buoy/utils/PermissionUtils.kt
index 13dc385..d7d270a 100644
--- a/app/src/main/java/com/draco/buoy/utils/PermissionUtils.kt
+++ b/app/src/main/java/com/draco/buoy/utils/PermissionUtils.kt
@@ -5,6 +5,9 @@ import android.content.pm.PackageManager
class PermissionUtils {
companion object {
+ /**
+ * Return true if the permission is granted, false otherwise
+ */
fun isPermissionsGranted(context: Context, permission: String): Boolean =
context.checkSelfPermission(permission) == PackageManager.PERMISSION_GRANTED
}
diff --git a/app/src/main/java/com/draco/buoy/views/MainActivity.kt b/app/src/main/java/com/draco/buoy/views/MainActivity.kt
index 4d86dad..30f90a5 100644
--- a/app/src/main/java/com/draco/buoy/views/MainActivity.kt
+++ b/app/src/main/java/com/draco/buoy/views/MainActivity.kt
@@ -17,6 +17,7 @@ class MainActivity : AppCompatActivity() {
preferences = findViewById(R.id.preferences)
+ /* If we are missing a permission, lock the user in the permission activity */
if (!PermissionUtils.isPermissionsGranted(this, android.Manifest.permission.WRITE_SECURE_SETTINGS))
goToPermissionActivity()
diff --git a/app/src/main/java/com/draco/buoy/views/PermissionActivity.kt b/app/src/main/java/com/draco/buoy/views/PermissionActivity.kt
index d3b8b62..27435e7 100644
--- a/app/src/main/java/com/draco/buoy/views/PermissionActivity.kt
+++ b/app/src/main/java/com/draco/buoy/views/PermissionActivity.kt
@@ -22,6 +22,7 @@ class PermissionActivity : AppCompatActivity() {
command = findViewById(R.id.command)
+ /* Copy ADB command to clipboard */
command.setOnClickListener {
val clipboardManager = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
val clip = ClipData.newPlainText("ADB Command", command.text.toString())
@@ -30,6 +31,7 @@ class PermissionActivity : AppCompatActivity() {
Snackbar.make(command, R.string.copied, Snackbar.LENGTH_SHORT).show()
}
+ /* Once permission is granted, return */
viewModel.permissionGranted.observe(this) {
if (it == true)
finish()