do password empty check in dialog not in restore backup service
This commit is contained in:
parent
cb1feab350
commit
d9f39df9c8
|
@ -93,7 +93,7 @@ public class ImportBackupService extends Service {
|
||||||
uri = data;
|
uri = data;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (password == null || uri == null) {
|
if (password == null || password.isEmpty() || uri == null) {
|
||||||
return START_NOT_STICKY;
|
return START_NOT_STICKY;
|
||||||
}
|
}
|
||||||
if (running.compareAndSet(false, true)) {
|
if (running.compareAndSet(false, true)) {
|
||||||
|
@ -158,14 +158,6 @@ public class ImportBackupService extends Service {
|
||||||
|
|
||||||
private boolean importBackup(Uri uri, String password) {
|
private boolean importBackup(Uri uri, String password) {
|
||||||
Log.d(Config.LOGTAG, "importing backup from " + uri);
|
Log.d(Config.LOGTAG, "importing backup from " + uri);
|
||||||
if (password == null || password.isEmpty()) {
|
|
||||||
synchronized (mOnBackupProcessedListeners) {
|
|
||||||
for (OnBackupProcessed l : mOnBackupProcessedListeners) {
|
|
||||||
l.onBackupDecryptionFailed();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
try {
|
try {
|
||||||
SQLiteDatabase db = mDatabaseBackend.getWritableDatabase();
|
SQLiteDatabase db = mDatabaseBackend.getWritableDatabase();
|
||||||
final InputStream inputStream;
|
final InputStream inputStream;
|
||||||
|
|
|
@ -2,6 +2,7 @@ package eu.siacs.conversations.ui;
|
||||||
|
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.DialogInterface;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.ServiceConnection;
|
import android.content.ServiceConnection;
|
||||||
import android.databinding.DataBindingUtil;
|
import android.databinding.DataBindingUtil;
|
||||||
|
@ -140,23 +141,32 @@ public class ImportBackupActivity extends ActionBarActivity implements ServiceCo
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
builder.setPositiveButton(R.string.restore, (dialog, which) -> {
|
builder.setPositiveButton(R.string.restore, null);
|
||||||
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.setCancelable(false);
|
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) {
|
private void setLoadingState(final boolean loadingState) {
|
||||||
|
|
|
@ -874,4 +874,5 @@
|
||||||
<string name="open_backup">Open backup</string>
|
<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="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="account_already_setup">This account has already been setup</string>
|
||||||
|
<string name="please_enter_password">Please enter the password for this account</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
Loading…
Reference in a new issue