aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain
diff options
context:
space:
mode:
authorDominik Schürmann <dominik@dominikschuermann.de>2015-03-29 21:00:06 +0200
committerDominik Schürmann <dominik@dominikschuermann.de>2015-03-29 21:00:06 +0200
commit7ffb55faaa42b748c7742a11ba223f0ebed65622 (patch)
tree6552e89c381a7d72f7e0a5c84e97b06894dfe151 /OpenKeychain
parent95f1527afe81c59a116cadc2ed37c065da1819ac (diff)
parent6b48ddd71747bc5179861c25b6b327dae3321fca (diff)
downloadopen-keychain-7ffb55faaa42b748c7742a11ba223f0ebed65622.tar.gz
open-keychain-7ffb55faaa42b748c7742a11ba223f0ebed65622.tar.bz2
open-keychain-7ffb55faaa42b748c7742a11ba223f0ebed65622.zip
Merge branch 'development' into v/crypto-input-parcel
Diffstat (limited to 'OpenKeychain')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/ImportKeyResult.java7
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyEmailFragment.java48
-rw-r--r--OpenKeychain/src/main/res/values/strings.xml1
3 files changed, 42 insertions, 14 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/ImportKeyResult.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/ImportKeyResult.java
index af9f67114..1438ad698 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/ImportKeyResult.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/ImportKeyResult.java
@@ -162,7 +162,7 @@ public class ImportKeyResult extends OperationResult {
if (isOkWithErrors()) {
// definitely switch to warning-style message in this case!
duration = 0;
- style = Style.ERROR;
+ style = Style.WARN;
str += " " + activity.getResources().getQuantityString(
R.plurals.import_keys_with_errors, mBadKeys, mBadKeys);
}
@@ -175,7 +175,10 @@ public class ImportKeyResult extends OperationResult {
? R.string.import_error_nothing_cancelled
: R.string.import_error_nothing);
} else {
- str = activity.getResources().getQuantityString(R.plurals.import_error, mBadKeys);
+ str = activity.getResources().getQuantityString(
+ R.plurals.import_error,
+ mBadKeys,
+ mBadKeys);
}
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyEmailFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyEmailFragment.java
index 2e8a1f370..7e2e1c31c 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyEmailFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyEmailFragment.java
@@ -39,6 +39,7 @@ import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.ui.CreateKeyActivity.FragAction;
import org.sufficientlysecure.keychain.ui.dialog.AddEmailDialogFragment;
import org.sufficientlysecure.keychain.ui.dialog.SetPassphraseDialogFragment;
+import org.sufficientlysecure.keychain.ui.util.Notify;
import org.sufficientlysecure.keychain.ui.widget.EmailEditText;
import java.util.ArrayList;
@@ -122,16 +123,22 @@ public class CreateKeyEmailFragment extends Fragment {
mEmailsRecyclerView.setItemAnimator(new DefaultItemAnimator());
// initial values
- mAdditionalEmailModels = new ArrayList<>();
- if (mCreateKeyActivity.mAdditionalEmails != null) {
- setAdditionalEmails(mCreateKeyActivity.mAdditionalEmails);
- }
- mEmailAdapter = new EmailAdapter(mAdditionalEmailModels, new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- addEmail();
+ if (mAdditionalEmailModels == null) {
+ mAdditionalEmailModels = new ArrayList<>();
+ if (mCreateKeyActivity.mAdditionalEmails != null) {
+ setAdditionalEmails(mCreateKeyActivity.mAdditionalEmails);
}
- });
+ }
+
+ if (mEmailAdapter == null) {
+ mEmailAdapter = new EmailAdapter(mAdditionalEmailModels, new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ addEmail();
+ }
+ });
+ }
+
mEmailsRecyclerView.setAdapter(mEmailAdapter);
return view;
@@ -144,10 +151,27 @@ public class CreateKeyEmailFragment extends Fragment {
if (message.what == SetPassphraseDialogFragment.MESSAGE_OKAY) {
Bundle data = message.getData();
+ String email = data.getString(AddEmailDialogFragment.MESSAGE_DATA_EMAIL);
+
+ if (email.length() > 0 && mEmailEdit.getText().length() > 0 &&
+ email.equals(mEmailEdit.getText().toString())) {
+ Notify.create(getActivity(),
+ getString(R.string.create_key_email_already_exists_text),
+ Notify.LENGTH_LONG, Notify.Style.ERROR).show();
+ return;
+ }
+ //check for duplicated emails inside the adapter
+ for (EmailAdapter.ViewModel model : mAdditionalEmailModels) {
+ if (email.equals(model.email)) {
+ Notify.create(getActivity(),
+ getString(R.string.create_key_email_already_exists_text),
+ Notify.LENGTH_LONG, Notify.Style.ERROR).show();
+ return;
+ }
+ }
+
// add new user id
- mEmailAdapter.add(
- data.getString(AddEmailDialogFragment.MESSAGE_DATA_EMAIL)
- );
+ mEmailAdapter.add(email);
}
}
};
diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml
index f6fbd132c..274504315 100644
--- a/OpenKeychain/src/main/res/values/strings.xml
+++ b/OpenKeychain/src/main/res/values/strings.xml
@@ -630,6 +630,7 @@
<string name="create_key_edit">"Change key configuration"</string>
<string name="create_key_add_email">"Add email address"</string>
<string name="create_key_add_email_text">"Additional email addresses are also associated to this key and can be used for secure communication."</string>
+ <string name="create_key_email_already_exists_text">"Email has already been added"</string>
<!-- View key -->
<string name="view_key_revoked">"Revoked: Key must not be used anymore!"</string>