From bed942b19fea5aa334009005ad8d4c32ab3323cf Mon Sep 17 00:00:00 2001 From: Tyler Nijmeh Date: Wed, 31 Mar 2021 11:59:08 -0700 Subject: Add import and export Signed-off-by: Tyler Nijmeh --- .../draco/buoy/fragments/MainPreferenceFragment.kt | 20 ++++++++++++++++++++ .../main/res/drawable/ic_baseline_download_24.xml | 10 ++++++++++ app/src/main/res/drawable/ic_baseline_upload_24.xml | 10 ++++++++++ app/src/main/res/values/strings.xml | 11 +++++++++++ app/src/main/res/xml/main.xml | 12 ++++++++++++ 5 files changed, 63 insertions(+) create mode 100644 app/src/main/res/drawable/ic_baseline_download_24.xml create mode 100644 app/src/main/res/drawable/ic_baseline_upload_24.xml (limited to 'app') 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(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 @@ + + + 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 @@ + + + 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 @@ https://www.github.com/tytydraco/Buoy mailto:tylernij@gmail.com + Battery Saver Constants + Profiles + Share About Configuration @@ -40,6 +43,14 @@ Extreme Apply the maximum changes available to save power at the expense of a fluid user experience + export + Export + Share the battery saver constants elsewhere + + import + Import + Configure using a new profile + advertise_is_enabled Advertise Power Saver Alert apps that the device is in low power mode; some apps will use this information to reduce their power draw 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" /> + + + +