diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4e6d6d3f..e6d9dccf 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -17,7 +17,9 @@ = 23) { + final PreferenceCategory autoCategory = new PreferenceCategory(context); + screen.addPreference(autoCategory); + autoCategory.setTitle(R.string.auto_backup); + autoCategory.addPreference(getAboutPreference(context, true)); + autoCategory.addPreference(getWarningPreference(context, true)); + autoCategory.addPreference(getAutoBackupPreference(context)); + } + final PreferenceCategory manualCategory = new PreferenceCategory(context); + screen.addPreference(manualCategory); + manualCategory.setTitle(R.string.manual_backup); + manualCategory.addPreference(getAboutPreference(context, false)); + manualCategory.addPreference(getWarningPreference(context, false)); + manualCategory.addPreference(getCreatePreference(context)); + manualCategory.addPreference(getRestorePreference(context)); } - private Preference getAboutPreference(@NonNull final Context context) { + private Preference getAboutPreference(@NonNull final Context context, + @NonNull final boolean auto) { final Preference preference = new Preference(context); - preference.setSummary(R.string.backup_summary); + preference.setSummary(auto ? R.string.auto_backup_summary : R.string.backup_summary); preference.setEnabled(false); preference.setIcon(R.drawable.ic_outline_info_24); preference.setIconSpaceReserved(true); return preference; } - private Preference getWarningPreference(@NonNull final Context context) { + private Preference getWarningPreference(@NonNull final Context context, + @NonNull final boolean auto) { final Preference preference = new Preference(context); - preference.setSummary(R.string.backup_warning); + preference.setSummary(auto ? R.string.auto_backup_warning : R.string.backup_warning); preference.setEnabled(false); preference.setIcon(R.drawable.ic_warning); preference.setIconSpaceReserved(true); return preference; } + private Preference getAutoBackupPreference(@NonNull final Context context) { + final SwitchPreferenceCompat preference = new SwitchPreferenceCompat(context); + preference.setKey(PreferenceKeys.PREF_AUTO_BACKUP_ENABLED); + preference.setTitle(R.string.auto_backup_setting); + preference.setIconSpaceReserved(false); + return preference; + } + private Preference getCreatePreference(@NonNull final Context context) { final Preference preference = new Preference(context); preference.setTitle(R.string.create_backup); diff --git a/app/src/main/java/awais/instagrabber/fragments/settings/PreferenceKeys.kt b/app/src/main/java/awais/instagrabber/fragments/settings/PreferenceKeys.kt index bf1b7edf..6b824217 100644 --- a/app/src/main/java/awais/instagrabber/fragments/settings/PreferenceKeys.kt +++ b/app/src/main/java/awais/instagrabber/fragments/settings/PreferenceKeys.kt @@ -10,6 +10,7 @@ object PreferenceKeys { const val PREF_TAB_ORDER = "tab_order" const val PREF_SHOWN_COUNT_TOOLTIP = "shown_count_tooltip" const val PREF_SEARCH_FOCUS_KEYBOARD = "search_focus_keyboard" + const val PREF_AUTO_BACKUP_ENABLED = "auto_backup_enabled" // string prefs const val FOLDER_PATH = "custom_path" diff --git a/app/src/main/java/awais/instagrabber/utils/SettingsHelper.kt b/app/src/main/java/awais/instagrabber/utils/SettingsHelper.kt index 4cc1cb4b..ef71a5fb 100755 --- a/app/src/main/java/awais/instagrabber/utils/SettingsHelper.kt +++ b/app/src/main/java/awais/instagrabber/utils/SettingsHelper.kt @@ -38,19 +38,19 @@ class SettingsHelper(context: Context) { } private fun getStringDefault(@StringSettings key: String): String { - if (DATE_TIME_FORMAT == key) return "hh:mm:ss a 'on' dd-MM-yyyy" - return if (DATE_TIME_SELECTION == key) "0;3;0" else "" + if (PreferenceKeys.DATE_TIME_FORMAT == key) return "hh:mm:ss a 'on' dd-MM-yyyy" + return if (PreferenceKeys.DATE_TIME_SELECTION == key) "0;3;0" else "" } private fun getIntegerDefault(@IntegerSettings key: String): Int { - if (APP_THEME == key) return getThemeCode(true) - return if (PREV_INSTALL_VERSION == key || APP_UA_CODE == key || BROWSER_UA_CODE == key) -1 else 0 + if (PreferenceKeys.APP_THEME == key) return getThemeCode(true) + return if (Constants.PREV_INSTALL_VERSION == key || Constants.APP_UA_CODE == key || Constants.BROWSER_UA_CODE == key) -1 else 0 } fun getThemeCode(fromHelper: Boolean): Int { var themeCode = AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM if (!fromHelper && sharedPreferences != null) { - themeCode = sharedPreferences.getString(APP_THEME, themeCode.toString())!!.toInt() + themeCode = sharedPreferences.getString(PreferenceKeys.APP_THEME, themeCode.toString())!!.toInt() when (themeCode) { 1 -> themeCode = AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY 3 -> themeCode = AppCompatDelegate.MODE_NIGHT_NO @@ -136,7 +136,7 @@ class SettingsHelper(context: Context) { PreferenceKeys.PLAY_IN_BACKGROUND, PreferenceKeys.PREF_SHOWN_COUNT_TOOLTIP, PreferenceKeys.PREF_SEARCH_FOCUS_KEYBOARD, - PreferenceKeys.PREF_AUTO_BACKUP_DISABLED + PreferenceKeys.PREF_AUTO_BACKUP_ENABLED ) annotation class BooleanSettings diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ee749e62..9d93f195 100755 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -303,6 +303,11 @@ Unknown Removed from Favourites! Backup & Restore + Auto Backup + Starting from Android 6, Android\'s Auto Backup feature will upload all app settings, account login data, and favorites onto your Google Drive, which can be restored by reinstalling the app after uninstallation. + This preference has no effect if Google Play Services is not present, or if Auto Backup is disabled from your device settings. Disabling here does not erase existing backups. + Enable Auto Backup + Manual Backup Backup Barinsta app settings, account login data, and/or favorites to a plain text or encrypted backup file for later restoration. If you\'re backing up account login data, treat the file as confidential and keep it somewhere safe! Create new backup file diff --git a/app/src/main/res/xml/backup_descriptor.xml b/app/src/main/res/xml/backup_descriptor.xml index a608293f..07294823 100755 --- a/app/src/main/res/xml/backup_descriptor.xml +++ b/app/src/main/res/xml/backup_descriptor.xml @@ -1,3 +1,4 @@ +