diff --git a/src/org/thoughtcrime/securesms/ContactSelectionListFragment.java b/src/org/thoughtcrime/securesms/ContactSelectionListFragment.java index 5d2d56efb..cb1021f73 100644 --- a/src/org/thoughtcrime/securesms/ContactSelectionListFragment.java +++ b/src/org/thoughtcrime/securesms/ContactSelectionListFragment.java @@ -299,7 +299,8 @@ public class ContactSelectionListFragment extends Fragment String addr = contact.getNumber(); if (!isMulti() || !selectedContacts.contains(addr)) { - if(specialId== DcContact.DC_CONTACT_ID_NEW_CONTACT + if (isMulti() + && specialId== DcContact.DC_CONTACT_ID_NEW_CONTACT && dcContext.lookupContactIdByAddr(addr)==0) { if (dcContext.createContact(null, addr)==0) { Toast.makeText(getActivity(), R.string.bad_email_address, Toast.LENGTH_LONG).show(); diff --git a/src/org/thoughtcrime/securesms/NewConversationActivity.java b/src/org/thoughtcrime/securesms/NewConversationActivity.java index 78514b101..684d92375 100644 --- a/src/org/thoughtcrime/securesms/NewConversationActivity.java +++ b/src/org/thoughtcrime/securesms/NewConversationActivity.java @@ -64,20 +64,27 @@ public class NewConversationActivity extends ContactSelectionActivity { finish(); } else { - int contactId = dcContext.lookupContactIdByAddr(addr); - if(contactId==0) { + if(!dcContext.mayBeValidAddr(addr)) { + Toast.makeText(this, R.string.bad_email_address, Toast.LENGTH_LONG).show(); return; } - DcContact dcContact = dcContext.getContact(contactId); + + int contactId = dcContext.lookupContactIdByAddr(addr); int chatId = dcContext.getChatIdByContactId(contactId); if (chatId == 0) { + String nameNAddr = contactId==0? addr : dcContext.getContact(contactId).getNameNAddr(); new AlertDialog.Builder(this) - .setMessage(getString(R.string.new_conversation_activity__ask_start_chat_with, dcContact.getNameNAddr())) + .setMessage(getString(R.string.new_conversation_activity__ask_start_chat_with, nameNAddr)) .setCancelable(true) .setNegativeButton(android.R.string.cancel, null) .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { + int contactId = dcContext.createContact(null, addr); + if(contactId==0) { + Toast.makeText(NewConversationActivity.this, R.string.bad_email_address, Toast.LENGTH_LONG).show(); + return; + } openConversation(dcContext.createChatByContactId(contactId)); } }).show();