1
0
Fork 0
mirror of https://github.com/KokaKiwi/BarInsta synced 2026-04-03 09:31:34 +00:00

option to disable auto backup; close #1433

This commit is contained in:
Austin Huang 2021-06-18 16:08:32 -04:00
parent 15e5d39f6b
commit 7345ecefd0
No known key found for this signature in database
GPG key ID: 84C23AA04587A91F
7 changed files with 71 additions and 14 deletions

View file

@ -0,0 +1,24 @@
package awais.instagrabber.backup
import android.app.backup.BackupAgent
import android.app.backup.BackupDataInput
import android.app.backup.BackupDataOutput
import android.app.backup.FullBackupDataOutput
import android.os.ParcelFileDescriptor
import awais.instagrabber.fragments.settings.PreferenceKeys
import awais.instagrabber.utils.Utils.settingsHelper
class BarinstaBackupAgent : BackupAgent() {
override fun onFullBackup(data: FullBackupDataOutput?) {
if (data != null && settingsHelper.getBoolean(PreferenceKeys.PREF_AUTO_BACKUP_ENABLED)) {
super.onFullBackup(data)
}
}
// no key-value backups
override fun onBackup(oldState: ParcelFileDescriptor?,
data: BackupDataOutput?, newState: ParcelFileDescriptor?) {}
override fun onRestore(data: BackupDataInput, appVersionCode: Int,
newState: ParcelFileDescriptor) {}
}

View file

@ -1,6 +1,7 @@
package awais.instagrabber.fragments.settings;
import android.content.Context;
import android.os.Build;
import android.view.View;
import android.widget.Toast;
@ -9,7 +10,9 @@ import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceScreen;
import androidx.preference.SwitchPreferenceCompat;
import com.google.android.material.snackbar.BaseTransientBottomBar;
import com.google.android.material.snackbar.Snackbar;
@ -26,30 +29,51 @@ public class BackupPreferencesFragment extends BasePreferencesFragment {
if (context == null) {
return;
}
screen.addPreference(getAboutPreference(context));
screen.addPreference(getWarningPreference(context));
screen.addPreference(getCreatePreference(context));
screen.addPreference(getRestorePreference(context));
if (Build.VERSION.SDK_INT >= 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);

View file

@ -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"

View file

@ -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