Add an icon to the backup status in preferences

This commit is contained in:
Alexander Bakker 2022-10-10 10:39:57 +02:00
parent 427be4d56b
commit c6888b11df

View file

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