From c6888b11dfcd3da2bcb37d9edb4086009b3867fd Mon Sep 17 00:00:00 2001 From: Alexander Bakker Date: Mon, 10 Oct 2022 10:39:57 +0200 Subject: [PATCH] Add an icon to the backup status in preferences --- .../BackupsPreferencesFragment.java | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/BackupsPreferencesFragment.java b/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/BackupsPreferencesFragment.java index fc052bba..7a772fef 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/BackupsPreferencesFragment.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/BackupsPreferencesFragment.java @@ -146,19 +146,30 @@ public class BackupsPreferencesFragment extends PreferencesFragment { _backupsTriggerPreference.setVisible(backupEnabled); _backupsVersionsPreference.setVisible(backupEnabled); if (backupEnabled) { - Preferences.BackupResult backupRes = _prefs.getBuiltInBackupResult(); - _builtinBackupStatusPreference.setSummary(getBackupStatusMessage(backupRes)); - _builtinBackupStatusPreference.setSelectable(backupRes != null && !backupRes.isSuccessful()); + updateBackupStatus(_builtinBackupStatusPreference, _prefs.getBuiltInBackupResult()); } if (androidBackupEnabled) { - Preferences.BackupResult backupRes = _prefs.getAndroidBackupResult(); - _androidBackupStatusPreference.setSummary(getBackupStatusMessage(backupRes)); - _androidBackupStatusPreference.setSelectable(backupRes != null && !backupRes.isSuccessful()); + updateBackupStatus(_androidBackupStatusPreference, _prefs.getAndroidBackupResult()); } _builtinBackupStatusPreference.setVisible(backupEnabled); _androidBackupStatusPreference.setVisible(androidBackupEnabled); } + private void updateBackupStatus(Preference pref, Preferences.BackupResult res) { + boolean backupFailed = res != null && !res.isSuccessful(); + pref.setSummary(getBackupStatusMessage(res)); + pref.setSelectable(backupFailed); + + // TODO: Find out why setting the tint of the icon doesn't work + if (backupFailed) { + pref.setIcon(R.drawable.ic_info_outline_black_24dp); + } else if (res != null) { + pref.setIcon(R.drawable.ic_check_black_24dp); + } else { + pref.setIcon(null); + } + } + private CharSequence getBackupStatusMessage(@Nullable Preferences.BackupResult res) { String message; int color = R.color.warning_color;