mirror of
https://github.com/moparisthebest/open-keychain
synced 2024-11-27 03:02:15 -05:00
-Fixed a situation where additional emails could be duplicated when creating a new key -If CreateKeyEmailFragment view is recreated, the array of additional emails won't be repopulated again if its not null, avoiding new reallocations. -if CreateKeyEmailFragment view is recreated, the email adapter wont be recreated if its not null, avoiding new reallocations.
This commit is contained in:
parent
d6368db564
commit
605c9ace58
@ -39,6 +39,7 @@ import org.sufficientlysecure.keychain.R;
|
|||||||
import org.sufficientlysecure.keychain.ui.CreateKeyActivity.FragAction;
|
import org.sufficientlysecure.keychain.ui.CreateKeyActivity.FragAction;
|
||||||
import org.sufficientlysecure.keychain.ui.dialog.AddEmailDialogFragment;
|
import org.sufficientlysecure.keychain.ui.dialog.AddEmailDialogFragment;
|
||||||
import org.sufficientlysecure.keychain.ui.dialog.SetPassphraseDialogFragment;
|
import org.sufficientlysecure.keychain.ui.dialog.SetPassphraseDialogFragment;
|
||||||
|
import org.sufficientlysecure.keychain.ui.util.Notify;
|
||||||
import org.sufficientlysecure.keychain.ui.widget.EmailEditText;
|
import org.sufficientlysecure.keychain.ui.widget.EmailEditText;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -122,16 +123,22 @@ public class CreateKeyEmailFragment extends Fragment {
|
|||||||
mEmailsRecyclerView.setItemAnimator(new DefaultItemAnimator());
|
mEmailsRecyclerView.setItemAnimator(new DefaultItemAnimator());
|
||||||
|
|
||||||
// initial values
|
// initial values
|
||||||
mAdditionalEmailModels = new ArrayList<>();
|
if (mAdditionalEmailModels == null) {
|
||||||
if (mCreateKeyActivity.mAdditionalEmails != null) {
|
mAdditionalEmailModels = new ArrayList<>();
|
||||||
setAdditionalEmails(mCreateKeyActivity.mAdditionalEmails);
|
if (mCreateKeyActivity.mAdditionalEmails != null) {
|
||||||
}
|
setAdditionalEmails(mCreateKeyActivity.mAdditionalEmails);
|
||||||
mEmailAdapter = new EmailAdapter(mAdditionalEmailModels, new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View v) {
|
|
||||||
addEmail();
|
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
|
|
||||||
|
if (mEmailAdapter == null) {
|
||||||
|
mEmailAdapter = new EmailAdapter(mAdditionalEmailModels, new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
addEmail();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
mEmailsRecyclerView.setAdapter(mEmailAdapter);
|
mEmailsRecyclerView.setAdapter(mEmailAdapter);
|
||||||
|
|
||||||
return view;
|
return view;
|
||||||
@ -144,10 +151,27 @@ public class CreateKeyEmailFragment extends Fragment {
|
|||||||
if (message.what == SetPassphraseDialogFragment.MESSAGE_OKAY) {
|
if (message.what == SetPassphraseDialogFragment.MESSAGE_OKAY) {
|
||||||
Bundle data = message.getData();
|
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
|
// add new user id
|
||||||
mEmailAdapter.add(
|
mEmailAdapter.add(email);
|
||||||
data.getString(AddEmailDialogFragment.MESSAGE_DATA_EMAIL)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -629,6 +629,7 @@
|
|||||||
<string name="create_key_edit">"Change key configuration"</string>
|
<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">"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_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 -->
|
<!-- View key -->
|
||||||
<string name="view_key_revoked">"Revoked: Key must not be used anymore!"</string>
|
<string name="view_key_revoked">"Revoked: Key must not be used anymore!"</string>
|
||||||
|
Loading…
Reference in New Issue
Block a user