summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorTyler Nijmeh <tylernij@gmail.com>2021-03-31 11:59:08 -0700
committerTyler Nijmeh <tylernij@gmail.com>2021-03-31 11:59:08 -0700
commitbed942b19fea5aa334009005ad8d4c32ab3323cf (patch)
tree607323f0595471b5e5c8500e64dec555ee6a38e7 /app
parent53b3442e17a74220cc3b458872e28b7e614074b6 (diff)
Add import and export
Signed-off-by: Tyler Nijmeh <tylernij@gmail.com>
Diffstat (limited to 'app')
-rw-r--r--app/src/main/java/com/draco/buoy/fragments/MainPreferenceFragment.kt20
-rw-r--r--app/src/main/res/drawable/ic_baseline_download_24.xml10
-rw-r--r--app/src/main/res/drawable/ic_baseline_upload_24.xml10
-rw-r--r--app/src/main/res/values/strings.xml11
-rw-r--r--app/src/main/res/xml/main.xml12
5 files changed, 63 insertions, 0 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 8292988..fc699ef 100644
--- a/app/src/main/java/com/draco/buoy/fragments/MainPreferenceFragment.kt
+++ b/app/src/main/java/com/draco/buoy/fragments/MainPreferenceFragment.kt
@@ -38,6 +38,14 @@ class MainPreferenceFragment : PreferenceFragmentCompat(), SharedPreferences.OnS
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
loadSettings()
+
+ findPreference<EditTextPreference>(getString(R.string.pref_key_import))?.let {
+ it.setOnPreferenceChangeListener { _, newValue ->
+ batterySaverManager.setConstantsString(newValue as String)
+ loadSettings()
+ return@setOnPreferenceChangeListener true
+ }
+ }
}
override fun onPreferenceTreeClick(preference: Preference): Boolean {
@@ -48,6 +56,9 @@ class MainPreferenceFragment : PreferenceFragmentCompat(), SharedPreferences.OnS
getString(R.string.pref_profile_key_high) -> applyProfile(BatterySaverConstantsConfigProfiles.HIGH)
getString(R.string.pref_profile_key_extreme) -> applyProfile(BatterySaverConstantsConfigProfiles.EXTREME)
+ getString(R.string.pref_key_export) -> exportSettings()
+ getString(R.string.pref_key_import) -> (preference as EditTextPreference).text = batterySaverManager.getConstantsString()
+
getString(R.string.pref_developer_key) -> openURL(getString(R.string.developer_url))
getString(R.string.pref_source_key) -> openURL(getString(R.string.source_url))
getString(R.string.pref_contact_key) -> openURL(getString(R.string.contact_url))
@@ -60,6 +71,15 @@ class MainPreferenceFragment : PreferenceFragmentCompat(), SharedPreferences.OnS
return true
}
+ private fun exportSettings() {
+ val intent = Intent()
+ .setAction(Intent.ACTION_SEND)
+ .putExtra(Intent.EXTRA_TEXT, batterySaverManager.getConstantsString())
+ .setType("text/plain")
+ val chooser = Intent.createChooser(intent, getString(R.string.export_share_title))
+ startActivity(chooser)
+ }
+
private fun loadSettings() {
val currentProfileString = batterySaverManager.getConstantsString()
val currentProfile = BatterySaverConstantsConfig().also {
diff --git a/app/src/main/res/drawable/ic_baseline_download_24.xml b/app/src/main/res/drawable/ic_baseline_download_24.xml
new file mode 100644
index 0000000..1f61509
--- /dev/null
+++ b/app/src/main/res/drawable/ic_baseline_download_24.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24"
+ android:tint="?attr/colorControlNormal">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M5,20h14v-2H5V20zM19,9h-4V3H9v6H5l7,7L19,9z"/>
+</vector>
diff --git a/app/src/main/res/drawable/ic_baseline_upload_24.xml b/app/src/main/res/drawable/ic_baseline_upload_24.xml
new file mode 100644
index 0000000..c1e163b
--- /dev/null
+++ b/app/src/main/res/drawable/ic_baseline_upload_24.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24"
+ android:tint="?attr/colorControlNormal">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M5,20h14v-2H5V20zM5,10h4v6h6v-6h4l-7,-7L5,10z"/>
+</vector>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 34a927c..cd3d9ed 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -16,7 +16,10 @@
<string name="source_url">https://www.github.com/tytydraco/Buoy</string>
<string name="contact_url">mailto:tylernij@gmail.com</string>
+ <string name="export_share_title">Battery Saver Constants</string>
+
<string name="category_profiles">Profiles</string>
+ <string name="category_share">Share</string>
<string name="category_about">About</string>
<string name="category_config">Configuration</string>
@@ -40,6 +43,14 @@
<string name="pref_profile_title_extreme">Extreme</string>
<string name="pref_profile_summary_extreme">Apply the maximum changes available to save power at the expense of a fluid user experience</string>
+ <string name="pref_key_export">export</string>
+ <string name="pref_title_export">Export</string>
+ <string name="pref_summary_export">Share the battery saver constants elsewhere</string>
+
+ <string name="pref_key_import">import</string>
+ <string name="pref_title_import">Import</string>
+ <string name="pref_summary_import">Configure using a new profile</string>
+
<string name="pref_config_key_advertise_is_enabled">advertise_is_enabled</string>
<string name="pref_config_title_advertise_is_enabled">Advertise Power Saver</string>
<string name="pref_config_summary_advertise_is_enabled">Alert apps that the device is in low power mode; some apps will use this information to reduce their power draw</string>
diff --git a/app/src/main/res/xml/main.xml b/app/src/main/res/xml/main.xml
index 3089d54..3e77be0 100644
--- a/app/src/main/res/xml/main.xml
+++ b/app/src/main/res/xml/main.xml
@@ -28,6 +28,18 @@
android:key="@string/pref_profile_key_extreme"
android:icon="@drawable/ic_baseline_api_24" />
</PreferenceCategory>
+ <PreferenceCategory android:title="@string/category_share">
+ <Preference
+ android:title="@string/pref_title_export"
+ android:summary="@string/pref_summary_export"
+ android:key="@string/pref_key_export"
+ android:icon="@drawable/ic_baseline_upload_24" />
+ <EditTextPreference
+ android:title="@string/pref_title_import"
+ android:summary="@string/pref_summary_import"
+ android:key="@string/pref_key_import"
+ android:icon="@drawable/ic_baseline_download_24" />
+ </PreferenceCategory>
<PreferenceCategory android:title="@string/category_config">
<SwitchPreference
android:title="@string/pref_config_title_advertise_is_enabled"