diff --git a/app/src/main/java/com/keepassdroid/AssignPasswordDialog.java b/app/src/main/java/com/keepassdroid/AssignMasterKeyDialog.java
similarity index 54%
rename from app/src/main/java/com/keepassdroid/AssignPasswordDialog.java
rename to app/src/main/java/com/keepassdroid/AssignMasterKeyDialog.java
index a8bce41fd..ff2dcaf3f 100644
--- a/app/src/main/java/com/keepassdroid/AssignPasswordDialog.java
+++ b/app/src/main/java/com/keepassdroid/AssignMasterKeyDialog.java
@@ -28,11 +28,12 @@ import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.AlertDialog;
+import android.text.Editable;
+import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.CompoundButton;
-import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
@@ -41,22 +42,27 @@ import com.keepassdroid.utils.UriUtil;
import com.keepassdroid.view.KeyFileHelper;
import com.kunzisoft.keepass.R;
-public class AssignPasswordDialog extends DialogFragment {
+public class AssignMasterKeyDialog extends DialogFragment {
private String masterPassword;
private Uri mKeyfile;
private View rootView;
private CompoundButton passwordCheckBox;
+ private TextView passView;
+ private TextView passConfView;
private CompoundButton keyfileCheckBox;
+ private TextView keyfileView;
private AssignPasswordDialogListener mListener;
private KeyFileHelper keyFileHelper;
public interface AssignPasswordDialogListener {
- void onAssignKeyDialogPositiveClick(String masterPassword, Uri keyFile);
- void onAssignKeyDialogNegativeClick(String masterPassword, Uri keyFile);
+ void onAssignKeyDialogPositiveClick(boolean masterPasswordChecked, String masterPassword,
+ boolean keyFileChecked, Uri keyFile);
+ void onAssignKeyDialogNegativeClick(boolean masterPasswordChecked, String masterPassword,
+ boolean keyFileChecked, Uri keyFile);
}
@Override
@@ -91,14 +97,41 @@ public class AssignPasswordDialog extends DialogFragment {
});
passwordCheckBox = (CompoundButton) rootView.findViewById(R.id.password_checkbox);
+ passView = (TextView) rootView.findViewById(R.id.pass_password);
+ passView.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {}
+
+ @Override
+ public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {}
+
+ @Override
+ public void afterTextChanged(Editable editable) {
+ passwordCheckBox.setChecked(true);
+ }
+ });
+ passConfView = (TextView) rootView.findViewById(R.id.pass_conf_password);
+
keyfileCheckBox = (CompoundButton) rootView.findViewById(R.id.keyfile_checkox);
+ keyfileView = (TextView) rootView.findViewById(R.id.pass_keyfile);
+ keyfileView.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {}
+
+ @Override
+ public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {}
+
+ @Override
+ public void afterTextChanged(Editable editable) {
+ keyfileCheckBox.setChecked(true);
+ }
+ });
keyFileHelper = new KeyFileHelper(this);
rootView.findViewById(R.id.browse_button)
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- keyfileCheckBox.setChecked(true);
keyFileHelper.getOpenFileOnClickViewListener().onClick(view);
}
});
@@ -116,44 +149,18 @@ public class AssignPasswordDialog extends DialogFragment {
masterPassword = "";
mKeyfile = null;
- boolean error = false;
+ boolean error = verifyPassword() || verifyFile();
- // Assign password
- if (passwordCheckBox.isChecked()) {
- TextView passView = (TextView) rootView.findViewById(R.id.pass_password);
- masterPassword = passView.getText().toString();
- TextView passConfView = (TextView) rootView.findViewById(R.id.pass_conf_password);
- String confpass = passConfView.getText().toString();
-
- // Verify that passwords match
- if (!masterPassword.equals(confpass)) {
- // Passwords do not match
- Toast.makeText(getContext(), R.string.error_pass_match, Toast.LENGTH_LONG).show();
- error = true;
- }
- }
-
- // Assign keyfile
- if (keyfileCheckBox.isChecked()) {
- TextView keyfileView = (TextView) rootView.findViewById(R.id.pass_keyfile);
- Uri keyfile = UriUtil.parseDefaultFile(keyfileView.getText().toString());
- mKeyfile = keyfile;
-
- // Verify that a keyfile is set
- if (EmptyUtils.isNullOrEmpty(keyfile)) {
- Toast.makeText(getContext(), R.string.error_nokeyfile, Toast.LENGTH_LONG).show();
- error = true;
- }
+ if (!passwordCheckBox.isChecked() && !keyfileCheckBox.isChecked()) {
+ error = true;
+ showNoKeyConfirmationDialog();
}
if (!error) {
- if (!keyfileCheckBox.isChecked() &&
- (masterPassword == null || masterPassword.isEmpty())) {
- showEmptyPasswordConfirmationDialog();
- } else {
- mListener.onAssignKeyDialogPositiveClick(masterPassword, mKeyfile);
- dismiss();
- }
+ mListener.onAssignKeyDialogPositiveClick(
+ passwordCheckBox.isChecked(), masterPassword,
+ keyfileCheckBox.isChecked(), mKeyfile);
+ dismiss();
}
}
});
@@ -161,7 +168,9 @@ public class AssignPasswordDialog extends DialogFragment {
negativeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
- mListener.onAssignKeyDialogNegativeClick(masterPassword, mKeyfile);
+ mListener.onAssignKeyDialogNegativeClick(
+ passwordCheckBox.isChecked(), masterPassword,
+ keyfileCheckBox.isChecked(), mKeyfile);
dismiss();
}
});
@@ -172,19 +181,74 @@ public class AssignPasswordDialog extends DialogFragment {
return dialog;
}
+ private boolean verifyPassword() {
+ boolean error = false;
+ if (passwordCheckBox.isChecked()) {
+ masterPassword = passView.getText().toString();
+ String confpass = passConfView.getText().toString();
+
+ // Verify that passwords match
+ if (!masterPassword.equals(confpass)) {
+ error = true;
+ // Passwords do not match
+ Toast.makeText(getContext(), R.string.error_pass_match, Toast.LENGTH_LONG).show();
+ }
+
+ if (masterPassword == null || masterPassword.isEmpty()) {
+ error = true;
+ showEmptyPasswordConfirmationDialog();
+ }
+ }
+ return error;
+ }
+
+ private boolean verifyFile() {
+ boolean error = false;
+ if (keyfileCheckBox.isChecked()) {
+ Uri keyfile = UriUtil.parseDefaultFile(keyfileView.getText().toString());
+ mKeyfile = keyfile;
+
+ // Verify that a keyfile is set
+ if (EmptyUtils.isNullOrEmpty(keyfile)) {
+ error = true;
+ Toast.makeText(getContext(), R.string.error_nokeyfile, Toast.LENGTH_LONG).show();
+ }
+ }
+ return error;
+ }
+
private void showEmptyPasswordConfirmationDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage(R.string.warning_empty_password)
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
- mListener.onAssignKeyDialogPositiveClick(masterPassword, mKeyfile);
- AssignPasswordDialog.this.dismiss();
+ if (!verifyFile()) {
+ mListener.onAssignKeyDialogPositiveClick(
+ passwordCheckBox.isChecked(), masterPassword,
+ keyfileCheckBox.isChecked(), mKeyfile);
+ AssignMasterKeyDialog.this.dismiss();
+ }
}
})
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {}
+ });
+ builder.create().show();
+ }
+
+ private void showNoKeyConfirmationDialog() {
+ AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+ builder.setMessage(R.string.warning_no_encryption_key)
+ .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
- mListener.onAssignKeyDialogNegativeClick(masterPassword, mKeyfile);
+ mListener.onAssignKeyDialogPositiveClick(
+ passwordCheckBox.isChecked(), masterPassword,
+ keyfileCheckBox.isChecked(), mKeyfile);
+ AssignMasterKeyDialog.this.dismiss();
}
+ })
+ .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {}
});
builder.create().show();
}
@@ -196,12 +260,13 @@ public class AssignPasswordDialog extends DialogFragment {
keyFileHelper.onActivityResultCallback(requestCode, resultCode, data,
new KeyFileHelper.KeyFileCallback() {
@Override
- public void onResultCallback(Uri uri) {
+ public void onKeyFileResultCallback(Uri uri) {
if(uri != null) {
- EditText keyFileView = (EditText) rootView.findViewById(R.id.pass_keyfile);
Uri pathString = UriUtil.parseDefaultFile(uri.toString());
- if (pathString != null)
- keyFileView.setText(pathString.toString());
+ if (pathString != null) {
+ keyfileCheckBox.setChecked(true);
+ keyfileView.setText(pathString.toString());
+ }
}
}
});
diff --git a/app/src/main/java/com/keepassdroid/CreateFileDialog.java b/app/src/main/java/com/keepassdroid/CreateFileDialog.java
index d7b1c4b84..0f941d11a 100644
--- a/app/src/main/java/com/keepassdroid/CreateFileDialog.java
+++ b/app/src/main/java/com/keepassdroid/CreateFileDialog.java
@@ -34,6 +34,7 @@ import android.view.LayoutInflater;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
+import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
@@ -56,8 +57,8 @@ public class CreateFileDialog extends DialogFragment implements AdapterView.OnIt
private Uri uriPath;
public interface DefinePathDialogListener {
- void onDefinePathDialogPositiveClick(Uri pathFile);
- void onDefinePathDialogNegativeClick(Uri pathFile);
+ boolean onDefinePathDialogPositiveClick(Uri pathFile);
+ boolean onDefinePathDialogNegativeClick(Uri pathFile);
}
@Override
@@ -83,14 +84,10 @@ public class CreateFileDialog extends DialogFragment implements AdapterView.OnIt
// Add action buttons
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
- public void onClick(DialogInterface dialog, int id) {
- mListener.onDefinePathDialogPositiveClick(buildPath());
- }
+ public void onClick(DialogInterface dialog, int id) {}
})
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- mListener.onDefinePathDialogNegativeClick(buildPath());
- }
+ public void onClick(DialogInterface dialog, int id) {}
});
// Folder selection
@@ -127,7 +124,31 @@ public class CreateFileDialog extends DialogFragment implements AdapterView.OnIt
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(dataAdapter);
- return builder.create();
+ AlertDialog dialog = builder.create();
+
+ dialog.setOnShowListener(new DialogInterface.OnShowListener() {
+ @Override
+ public void onShow(final DialogInterface dialog) {
+ Button positiveButton = ((AlertDialog) dialog).getButton(DialogInterface.BUTTON_POSITIVE);
+ positiveButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(final View v) {
+ if(mListener.onDefinePathDialogPositiveClick(buildPath()))
+ CreateFileDialog.this.dismiss();
+ }
+ });
+ Button negativeButton = ((AlertDialog) dialog).getButton(DialogInterface.BUTTON_NEGATIVE);
+ negativeButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(final View v) {
+ if(mListener.onDefinePathDialogNegativeClick(buildPath()))
+ CreateFileDialog.this.dismiss();
+ }
+ });
+ }
+ });
+
+ return dialog;
}
@Override
diff --git a/app/src/main/java/com/keepassdroid/GroupBaseActivity.java b/app/src/main/java/com/keepassdroid/GroupBaseActivity.java
index 3e3232c89..b0b633b6c 100644
--- a/app/src/main/java/com/keepassdroid/GroupBaseActivity.java
+++ b/app/src/main/java/com/keepassdroid/GroupBaseActivity.java
@@ -55,7 +55,7 @@ import com.kunzisoft.keepass.KeePass;
import com.kunzisoft.keepass.R;
public abstract class GroupBaseActivity extends LockCloseListActivity
- implements AssignPasswordDialog.AssignPasswordDialogListener {
+ implements AssignMasterKeyDialog.AssignPasswordDialogListener {
protected ListView mList;
protected ListAdapter mAdapter;
@@ -269,7 +269,9 @@ public abstract class GroupBaseActivity extends LockCloseListActivity
}
@Override
- public void onAssignKeyDialogPositiveClick(String masterPassword, Uri keyFile) {
+ public void onAssignKeyDialogPositiveClick(
+ boolean masterPasswordChecked, String masterPassword,
+ boolean keyFileChecked, Uri keyFile) {
AssignPasswordHelper assignPasswordHelper =
new AssignPasswordHelper(this,
@@ -278,12 +280,14 @@ public abstract class GroupBaseActivity extends LockCloseListActivity
}
@Override
- public void onAssignKeyDialogNegativeClick(String masterPassword, Uri keyFile) {
+ public void onAssignKeyDialogNegativeClick(
+ boolean masterPasswordChecked, String masterPassword,
+ boolean keyFileChecked, Uri keyFile) {
}
private void setPassword() {
- AssignPasswordDialog dialog = new AssignPasswordDialog();
+ AssignMasterKeyDialog dialog = new AssignMasterKeyDialog();
dialog.show(getSupportFragmentManager(), "passwordDialog");
}
diff --git a/app/src/main/java/com/keepassdroid/PasswordActivity.java b/app/src/main/java/com/keepassdroid/PasswordActivity.java
index 4324a99ab..f6370299c 100644
--- a/app/src/main/java/com/keepassdroid/PasswordActivity.java
+++ b/app/src/main/java/com/keepassdroid/PasswordActivity.java
@@ -88,13 +88,15 @@ public class PasswordActivity extends LockingActivity implements FingerPrintHelp
private int mode;
private static final String PREF_KEY_VALUE_PREFIX = "valueFor_"; // key is a combination of db file name and this prefix
private static final String PREF_KEY_IV_PREFIX = "ivFor_"; // key is a combination of db file name and this prefix
+
+ private TextView filenameView;
private View fingerprintView;
private TextView confirmationView;
private EditText passwordView;
private EditText keyFileView;
- private Button confirmButton;
- private CheckBox checkboxPassword;
- private CheckBox checkboxKeyfile;
+ private Button confirmButtonView;
+ private CheckBox checkboxPasswordView;
+ private CheckBox checkboxKeyfileView;
private KeyFileHelper keyFileHelper;
@@ -141,10 +143,9 @@ public class PasswordActivity extends LockingActivity implements FingerPrintHelp
keyFileHelper.onActivityResultCallback(requestCode, resultCode, data,
new KeyFileHelper.KeyFileCallback() {
@Override
- public void onResultCallback(Uri uri) {
+ public void onKeyFileResultCallback(Uri uri) {
if(uri != null) {
- EditText fn = (EditText) findViewById(R.id.pass_keyfile);
- fn.setText(uri.toString());
+ keyFileView.setText(uri.toString());
}
}
});
@@ -184,14 +185,39 @@ public class PasswordActivity extends LockingActivity implements FingerPrintHelp
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
- confirmButton = (Button) findViewById(R.id.pass_ok);
+ filenameView = (TextView) findViewById(R.id.filename);
+ confirmButtonView = (Button) findViewById(R.id.pass_ok);
fingerprintView = findViewById(R.id.fingerprint);
confirmationView = (TextView) findViewById(R.id.fingerprint_label);
passwordView = (EditText) findViewById(R.id.password);
keyFileView = (EditText) findViewById(R.id.pass_keyfile);
+ checkboxPasswordView = (CheckBox) findViewById(R.id.password_checkbox);
+ checkboxKeyfileView = (CheckBox) findViewById(R.id.keyfile_checkox);
- checkboxPassword = (CheckBox) findViewById(R.id.password_checkbox);
- checkboxKeyfile = (CheckBox) findViewById(R.id.keyfile_checkox);
+ passwordView.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {}
+
+ @Override
+ public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {}
+
+ @Override
+ public void afterTextChanged(Editable editable) {
+ checkboxPasswordView.setChecked(true);
+ }
+ });
+ keyFileView.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {}
+
+ @Override
+ public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {}
+
+ @Override
+ public void afterTextChanged(Editable editable) {
+ checkboxKeyfileView.setChecked(true);
+ }
+ });
new InitTask().execute(i);
}
@@ -219,6 +245,8 @@ public class PasswordActivity extends LockingActivity implements FingerPrintHelp
private void setEmptyViews() {
passwordView.setText("");
keyFileView.setText("");
+ checkboxPasswordView.setChecked(false);
+ checkboxKeyfileView.setChecked(false);
}
private void retrieveSettings() {
@@ -239,10 +267,12 @@ public class PasswordActivity extends LockingActivity implements FingerPrintHelp
private void populateView() {
String db = (mDbUri == null) ? "" : mDbUri.toString();
- setEditText(R.id.filename, db);
+ if (!db.isEmpty())
+ filenameView.setText(db);
String key = (mKeyUri == null) ? "" : mKeyUri.toString();
- setEditText(R.id.pass_keyfile, key);
+ if (!key.isEmpty())
+ keyFileView.setText(key);
}
// fingerprint related code here
@@ -407,7 +437,7 @@ public class PasswordActivity extends LockingActivity implements FingerPrintHelp
.putString(getPreferenceKeyIvSpec(), ivSpec)
.apply();
// and remove visual input to reset UI
- confirmButton.performClick();
+ confirmButtonView.performClick();
confirmationView.setText(R.string.encrypted_value_stored);
}
@@ -415,7 +445,7 @@ public class PasswordActivity extends LockingActivity implements FingerPrintHelp
public void handleDecryptedResult(final String value) {
// on decrypt enter it for the purchase/login action
passwordView.setText(value);
- confirmButton.performClick();
+ confirmButtonView.performClick();
}
@RequiresApi(api = Build.VERSION_CODES.M)
@@ -462,8 +492,8 @@ public class PasswordActivity extends LockingActivity implements FingerPrintHelp
private class OkClickHandler implements View.OnClickListener {
public void onClick(View view) {
- String pass = getEditText(R.id.password);
- String key = getEditText(R.id.pass_keyfile);
+ String pass = passwordView.getText().toString();
+ String key = keyFileView.getText().toString();
loadDatabase(pass, key);
}
}
@@ -485,10 +515,10 @@ public class PasswordActivity extends LockingActivity implements FingerPrintHelp
// Clear the shutdown flag
App.clearShutdown();
- if (!checkboxPassword.isChecked()) {
+ if (!checkboxPasswordView.isChecked()) {
pass = "";
}
- if (!checkboxKeyfile.isChecked()) {
+ if (!checkboxKeyfileView.isChecked()) {
keyfile = null;
}
@@ -502,15 +532,6 @@ public class PasswordActivity extends LockingActivity implements FingerPrintHelp
return Util.getEditText(this, resId);
}
- private void setEditText(
- int resId,
- String str) {
- TextView te = (TextView) findViewById(resId);
- if (te != null) {
- te.setText(str);
- }
- }
-
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
diff --git a/app/src/main/java/com/keepassdroid/fileselect/FileSelectActivity.java b/app/src/main/java/com/keepassdroid/fileselect/FileSelectActivity.java
index 24c129d60..224947c9f 100644
--- a/app/src/main/java/com/keepassdroid/fileselect/FileSelectActivity.java
+++ b/app/src/main/java/com/keepassdroid/fileselect/FileSelectActivity.java
@@ -50,7 +50,7 @@ import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
-import com.keepassdroid.AssignPasswordDialog;
+import com.keepassdroid.AssignMasterKeyDialog;
import com.keepassdroid.CreateFileDialog;
import com.keepassdroid.GroupActivity;
import com.keepassdroid.PasswordActivity;
@@ -80,7 +80,7 @@ import java.net.URLDecoder;
public class FileSelectActivity extends StylishActivity implements
CreateFileDialog.DefinePathDialogListener ,
- AssignPasswordDialog.AssignPasswordDialogListener {
+ AssignMasterKeyDialog.AssignPasswordDialogListener {
private static final String TAG = "FileSelectActivity";
@@ -318,21 +318,26 @@ public class FileSelectActivity extends StylishActivity implements
}
@Override
- public void onDefinePathDialogPositiveClick(Uri pathFile) {
+ public boolean onDefinePathDialogPositiveClick(Uri pathFile) {
databaseUri = pathFile;
if(createDatabaseFile(pathFile)) {
- AssignPasswordDialog assignPasswordDialog = new AssignPasswordDialog();
- assignPasswordDialog.show(getSupportFragmentManager(), "passwordDialog");
- }
+ AssignMasterKeyDialog assignMasterKeyDialog = new AssignMasterKeyDialog();
+ assignMasterKeyDialog.show(getSupportFragmentManager(), "passwordDialog");
+ return true;
+ } else
+ return false;
}
@Override
- public void onDefinePathDialogNegativeClick(Uri pathFile) {
-
+ public boolean onDefinePathDialogNegativeClick(Uri pathFile) {
+ return true;
}
@Override
- public void onAssignKeyDialogPositiveClick(String masterPassword, Uri keyFile) {
+ public void onAssignKeyDialogPositiveClick(
+ boolean masterPasswordChecked, String masterPassword,
+ boolean keyFileChecked, Uri keyFile) {
+
String databaseFilename = databaseUri.getPath();
// Prep an object to collect a password once the database has
@@ -356,7 +361,9 @@ public class FileSelectActivity extends StylishActivity implements
}
@Override
- public void onAssignKeyDialogNegativeClick(String masterPassword, Uri keyFile) {
+ public void onAssignKeyDialogNegativeClick(
+ boolean masterPasswordChecked, String masterPassword,
+ boolean keyFileChecked, Uri keyFile) {
}
diff --git a/app/src/main/java/com/keepassdroid/utils/Util.java b/app/src/main/java/com/keepassdroid/utils/Util.java
index 707a639ca..ffb0d7adb 100644
--- a/app/src/main/java/com/keepassdroid/utils/Util.java
+++ b/app/src/main/java/com/keepassdroid/utils/Util.java
@@ -19,12 +19,6 @@
*/
package com.keepassdroid.utils;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-import com.keepassdroid.database.exception.SamsungClipboardException;
-
import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Context;
@@ -33,6 +27,12 @@ import android.net.Uri;
import android.text.ClipboardManager;
import android.widget.TextView;
+import com.keepassdroid.database.exception.SamsungClipboardException;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+
public class Util {
public static String getClipboard(Context context) {
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
@@ -75,14 +75,6 @@ public class Util {
}
}
- public static void setEditText(Activity act, int resId, String str) {
- TextView te = (TextView) act.findViewById(resId);
-
- if (te != null) {
- te.setText(str);
- }
- }
-
public static void copyStream(InputStream in, OutputStream out) throws IOException {
byte[] buf = new byte[1024];
int read;
diff --git a/app/src/main/java/com/keepassdroid/view/AssignPasswordHelper.java b/app/src/main/java/com/keepassdroid/view/AssignPasswordHelper.java
index bd0fce64b..878957f8d 100644
--- a/app/src/main/java/com/keepassdroid/view/AssignPasswordHelper.java
+++ b/app/src/main/java/com/keepassdroid/view/AssignPasswordHelper.java
@@ -20,7 +20,9 @@ public class AssignPasswordHelper {
private String masterPassword;
private Uri keyfile;
- public AssignPasswordHelper(Context context, String masterPassword, Uri keyfile) {
+ public AssignPasswordHelper(Context context,
+ String masterPassword,
+ Uri keyfile) {
this.context = context;
this.masterPassword = masterPassword;
this.keyfile = keyfile;
diff --git a/app/src/main/java/com/keepassdroid/view/KeyFileHelper.java b/app/src/main/java/com/keepassdroid/view/KeyFileHelper.java
index d431e6f42..5e7d570f6 100644
--- a/app/src/main/java/com/keepassdroid/view/KeyFileHelper.java
+++ b/app/src/main/java/com/keepassdroid/view/KeyFileHelper.java
@@ -150,7 +150,7 @@ public class KeyFileHelper {
keyUri = UriUtil.parseDefaultFile(filename);
}
if (keyFileCallback != null)
- keyFileCallback.onResultCallback(keyUri);
+ keyFileCallback.onKeyFileResultCallback(keyUri);
}
break;
case GET_CONTENT:
@@ -163,7 +163,7 @@ public class KeyFileHelper {
uri = UriUtil.translate(activity, uri);
}
if (keyFileCallback != null)
- keyFileCallback.onResultCallback(uri);
+ keyFileCallback.onKeyFileResultCallback(uri);
}
}
}
@@ -172,7 +172,7 @@ public class KeyFileHelper {
}
public interface KeyFileCallback {
- void onResultCallback(Uri uri);
+ void onKeyFileResultCallback(Uri uri);
}
}
diff --git a/app/src/main/res/layout/password.xml b/app/src/main/res/layout/password.xml
index 098801e60..97198cf3f 100644
--- a/app/src/main/res/layout/password.xml
+++ b/app/src/main/res/layout/password.xml
@@ -118,7 +118,6 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
- android:checked="true"
android:paddingBottom="20dp"
android:gravity="center_vertical" />
diff --git a/app/src/main/res/layout/set_password.xml b/app/src/main/res/layout/set_password.xml
index ba007e5d7..44f0cccd9 100644
--- a/app/src/main/res/layout/set_password.xml
+++ b/app/src/main/res/layout/set_password.xml
@@ -25,6 +25,7 @@
android:layout_height="match_parent">
@@ -80,8 +80,7 @@
android:layout_gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginTop="@dimen/default_margin"
- android:layout_marginBottom="@dimen/default_margin"
+ android:layout_margin="4dp"
app:cardCornerRadius="4dp">
Votre carte SD est actuellement en lecture seule. Vous ne pourrez pas enregistrer les changements dans la base de données.
Votre carte SD n\'est actuellement pas montée sur votre appareil. Vous ne pourrez pas charger ou créer votre base de données.
Voulez-vous vraiment utiliser une chaine de caractères vide comme mot de passe ?
+ Etes-vous sûr de ne vouloir utiliser aucune clé de chiffrement.
Version\u00A0:
Reconnaissance d\'empreinte digitale non configuré pour cet appareil
Attente d\'une reconnaissance d\'empreinte digitale
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index b7ea6f4dc..43b06668d 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -192,6 +192,7 @@
Your sd card is currently read-only. You may not be able to save changes to your database.
Your sd card is not currently mounted on your device. You will not be able to load or create your database.
Do you really want to use an empty string as password ?
+ Are you sure you do not want to use any encryption key ?
Version:
Fingerprint supported but not configured for device
Listening for fingerprints
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 784a3c2ae..844787118 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -238,7 +238,7 @@
-
-