diff --git a/app/src/main/java/org/gnucash/android/ui/settings/BackupPreferenceFragment.java b/app/src/main/java/org/gnucash/android/ui/settings/BackupPreferenceFragment.java
index e92f83445..84022a059 100644
--- a/app/src/main/java/org/gnucash/android/ui/settings/BackupPreferenceFragment.java
+++ b/app/src/main/java/org/gnucash/android/ui/settings/BackupPreferenceFragment.java
@@ -55,10 +55,7 @@
import java.io.File;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
-import java.util.Arrays;
-import java.util.Collections;
import java.util.Date;
-import java.util.List;
/**
@@ -150,10 +147,10 @@ public void onResume() {
pref = findPreference(getString(R.string.key_backup_location));
pref.setOnPreferenceClickListener(this);
- String defaultBackupLocation = BackupManager.getBookBackupFileUri(BooksDbAdapter.getInstance().getActiveBookUID());
- if (defaultBackupLocation != null){
- pref.setSummary(Uri.parse(defaultBackupLocation).getAuthority());
- }
+ String backupFileUri = BackupManager.getBookBackupFileUri(BooksDbAdapter.getInstance()
+ .getActiveBookUID());
+ // Display backupFileUri
+ pref.setSummary(getBackupLocationSummary(backupFileUri));
pref = findPreference(getString(R.string.key_dropbox_sync));
pref.setOnPreferenceClickListener(this);
@@ -438,13 +435,18 @@ public void onClick(DialogInterface dialog, int which) {
}
@Override
- public void onActivityResult(int requestCode, int resultCode, Intent data) {
- switch (requestCode){
+ public void onActivityResult(int requestCode,
+ int resultCode,
+ Intent data) {
+
+ switch (requestCode) {
case REQUEST_LINK_TO_DBX:
Preference preference = findPreference(getString(R.string.key_dropbox_sync));
if (preference == null) //if we are in a preference header fragment, this may return null
+ {
break;
+ }
toggleDropboxPreference(preference);
break;
@@ -453,31 +455,65 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {
mGoogleApiClient.connect();
Preference pref = findPreference(getString(R.string.key_dropbox_sync));
if (pref == null) //if we are in a preference header fragment, this may return null
+ {
break;
+ }
toggleDropboxPreference(pref);
}
break;
case REQUEST_BACKUP_FILE:
- if (resultCode == Activity.RESULT_OK){
- Uri backupFileUri = null;
- if (data != null){
- backupFileUri = data.getData();
- }
+ Uri backupFileUri = null;
+
+ if (resultCode == Activity.RESULT_OK && data != null) {
+ // User has chosen a file
- final int takeFlags = data.getFlags()
- & (Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
- getActivity().getContentResolver().takePersistableUriPermission(backupFileUri, takeFlags);
+ backupFileUri = data.getData();
+
+ final int takeFlags = data.getFlags() & (Intent.FLAG_GRANT_READ_URI_PERMISSION
+ | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
+ getActivity().getContentResolver()
+ .takePersistableUriPermission(backupFileUri,
+ takeFlags);
PreferenceActivity.getActiveBookSharedPreferences()
- .edit()
- .putString(BackupManager.KEY_BACKUP_FILE, backupFileUri.toString())
- .apply();
+ .edit()
+ .putString(BackupManager.KEY_BACKUP_FILE,
+ backupFileUri.toString())
+ .apply();
+
+ } else {
+ // User has clicked on back button
- Preference pref = findPreference(getString(R.string.key_backup_location));
- pref.setSummary(backupFileUri.getAuthority());
+ //
+ // Reset ability to chose in default automatic backup files
+ //
+
+ PreferenceActivity.getActiveBookSharedPreferences()
+ .edit()
+ .putString(BackupManager.KEY_BACKUP_FILE,
+ null)
+ .apply();
}
+
+ //
+ // Update Pref Summary (i.e. pref sub-title)
+ //
+
+ Preference pref = findPreference(getString(R.string.key_backup_location));
+ pref.setSummary(getBackupLocationSummary(backupFileUri != null
+ ? backupFileUri.toString()
+ : null));
+
break;
}
}
+
+ public String getBackupLocationSummary(final String backupFileUri) {
+
+ return (backupFileUri != null)
+ ? Uri.parse(backupFileUri)
+ .getAuthority()
+ : getString(R.string.summary_select_backup_file);
+ }
}
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index 9ab498501..812df71ad 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -239,7 +239,7 @@
Créer et spécifier un compte de transfert OU désactiver les doubles entrées dans les paramètres pour enregistrer la transaction
Appuyez sur pour créer le calendrier
Restaurer Sauvegarde…
- Sauvegarde & export
+ Sauvegarde & Export
Activer DropBox
Activer ownCloud
Sauvegarde
@@ -253,7 +253,7 @@
Échec de la sauvegarde
Exporte tous les comptes et les transactions
Installez un gestionnaire de fichiers pour sélectionner les fichiers
- Sélectionnez une sauvegarde à restaurer
+ Sélectionnez une sauvegarde à restaurer dans un nouveau Livre de Comptes
Favoris
Ouvrir…
Rapports
@@ -435,7 +435,7 @@
Renommer
Renommer
Choisir un fichier de sauvegarde
- Choisir un fichier pour les sauvegardes automatiques
+ Choisir un fichier spécifique pour les sauvegardes
Confirmer la restauration depuis la sauvegarde
Un nouveau livre sera ouvert avec le contenu de cette sauvegarde. Voulez-vous continuer?
Restaurer
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 4ef7ae17e..0e88e430a 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -249,7 +249,7 @@
Create and specify a transfer account OR disable double-entry in settings to save the transaction
Tap to create schedule
Restore Backup…
- Backup & export
+ Backup & Export
Enable DropBox
Enable ownCloud
Backup
@@ -263,7 +263,7 @@
Backup failed
Exports all accounts and transactions
Install a file manager to select files
- Select backup to restore
+ Select Backup to restore in another new Book
Favorites
Open…
Reports
@@ -451,7 +451,7 @@
Rename
Rename
Select backup file
- Select a file for automatic backups
+ Select a specific file for backups
Confirm restore from backup
A new book will be opened with the contents of this backup. Do you wish to proceed?
Restore