diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/de/pixart/messenger/services/ImportBackupService.java | 10 | ||||
-rw-r--r-- | src/main/java/de/pixart/messenger/ui/ImportBackupActivity.java | 42 | ||||
-rw-r--r-- | src/main/res/values/strings.xml | 1 |
3 files changed, 28 insertions, 25 deletions
diff --git a/src/main/java/de/pixart/messenger/services/ImportBackupService.java b/src/main/java/de/pixart/messenger/services/ImportBackupService.java index 8bb912b8b..fe1fd414b 100644 --- a/src/main/java/de/pixart/messenger/services/ImportBackupService.java +++ b/src/main/java/de/pixart/messenger/services/ImportBackupService.java @@ -93,7 +93,7 @@ public class ImportBackupService extends Service { uri = data; } - if (password == null || uri == null) { + if (password == null || password.isEmpty() || uri == null) { return START_NOT_STICKY; } if (running.compareAndSet(false, true)) { @@ -158,14 +158,6 @@ public class ImportBackupService extends Service { private boolean importBackup(Uri uri, String password) { Log.d(Config.LOGTAG, "importing backup from " + uri); - if (password == null || password.isEmpty()) { - synchronized (mOnBackupProcessedListeners) { - for (OnBackupProcessed l : mOnBackupProcessedListeners) { - l.onBackupDecryptionFailed(); - } - } - return false; - } try { SQLiteDatabase db = mDatabaseBackend.getWritableDatabase(); final InputStream inputStream; diff --git a/src/main/java/de/pixart/messenger/ui/ImportBackupActivity.java b/src/main/java/de/pixart/messenger/ui/ImportBackupActivity.java index ffcbbb0bb..3b7744088 100644 --- a/src/main/java/de/pixart/messenger/ui/ImportBackupActivity.java +++ b/src/main/java/de/pixart/messenger/ui/ImportBackupActivity.java @@ -2,6 +2,7 @@ package de.pixart.messenger.ui; import android.content.ComponentName; import android.content.Context; +import android.content.DialogInterface; import android.content.Intent; import android.content.ServiceConnection; import android.databinding.DataBindingUtil; @@ -153,23 +154,32 @@ public class ImportBackupActivity extends XmppActivity implements ServiceConnect finish(); } }); - builder.setPositiveButton(R.string.restore, (dialog, which) -> { - final String password = enterPasswordBinding.accountPassword.getEditableText().toString(); - final Uri uri = backupFile.getUri(); - Intent intent = new Intent(this, ImportBackupService.class); - intent.setAction(Intent.ACTION_SEND); - intent.putExtra("password", password); - if ("file".equals(uri.getScheme())) { - intent.putExtra("file", uri.getPath()); - } else { - intent.setData(uri); - intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); - } - setLoadingState(true); - ContextCompat.startForegroundService(this, intent); - }); + builder.setPositiveButton(R.string.restore, null); builder.setCancelable(false); - builder.create().show(); + final AlertDialog dialog = builder.create(); + dialog.setOnShowListener((d) -> { + dialog.getButton(DialogInterface.BUTTON_POSITIVE).setOnClickListener(v -> { + final String password = enterPasswordBinding.accountPassword.getEditableText().toString(); + if (password.isEmpty()) { + enterPasswordBinding.accountPasswordLayout.setError(getString(R.string.please_enter_password)); + return; + } + final Uri uri = backupFile.getUri(); + Intent intent = new Intent(this, ImportBackupService.class); + intent.setAction(Intent.ACTION_SEND); + intent.putExtra("password", password); + if ("file".equals(uri.getScheme())) { + intent.putExtra("file", uri.getPath()); + } else { + intent.setData(uri); + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + } + setLoadingState(true); + ContextCompat.startForegroundService(this, intent); + d.dismiss(); + }); + }); + dialog.show(); } private void setLoadingState(final boolean loadingState) { diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index d29ff110b..1a8cb52a8 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -930,4 +930,5 @@ <string name="open_backup">Open backup</string> <string name="not_a_backup_file">The file you selected is not a Conversations backup file</string> <string name="account_already_setup">This account has already been setup</string> + <string name="please_enter_password">Please enter the password for this account</string> </resources> |