Merge pull request #1187 from Hiperzone/development

-Fixed a situation where additional emails could be duplicated when crea...
This commit is contained in:
Dominik Schürmann 2015-03-28 18:10:32 +01:00
commit 73bccd6c58
2 changed files with 37 additions and 12 deletions

View File

@ -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);
}
}
};

View File

@ -629,6 +629,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>