diff options
author | Tyler Nijmeh <tylernij@gmail.com> | 2021-03-31 11:59:08 -0700 |
---|---|---|
committer | Tyler Nijmeh <tylernij@gmail.com> | 2021-03-31 11:59:08 -0700 |
commit | bed942b19fea5aa334009005ad8d4c32ab3323cf (patch) | |
tree | 607323f0595471b5e5c8500e64dec555ee6a38e7 /app | |
parent | 53b3442e17a74220cc3b458872e28b7e614074b6 (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.kt | 20 | ||||
-rw-r--r-- | app/src/main/res/drawable/ic_baseline_download_24.xml | 10 | ||||
-rw-r--r-- | app/src/main/res/drawable/ic_baseline_upload_24.xml | 10 | ||||
-rw-r--r-- | app/src/main/res/values/strings.xml | 11 | ||||
-rw-r--r-- | app/src/main/res/xml/main.xml | 12 |
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" |