mirror of https://github.com/M66B/FairEmail.git
Smarter address book add/edit
This commit is contained in:
parent
f6ab918a7b
commit
0d1e33af50
|
@ -1356,7 +1356,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
|||
ibSearchContact.setVisibility(show_addresses && (hasFrom || hasTo) ? View.VISIBLE : View.GONE);
|
||||
ibNotifyContact.setVisibility(show_addresses && hasChannel && hasFrom ? View.VISIBLE : View.GONE);
|
||||
ibPinContact.setVisibility(show_addresses && pin && hasFrom ? View.VISIBLE : View.GONE);
|
||||
ibAddContact.setVisibility(show_addresses && contacts && hasFrom ? View.VISIBLE : View.GONE);
|
||||
ibAddContact.setVisibility(show_addresses && hasFrom ? View.VISIBLE : View.GONE);
|
||||
|
||||
tvSubmitterTitle.setVisibility(show_addresses && !TextUtils.isEmpty(submitter) ? View.VISIBLE : View.GONE);
|
||||
tvSubmitter.setVisibility(show_addresses && !TextUtils.isEmpty(submitter) ? View.VISIBLE : View.GONE);
|
||||
|
@ -3036,26 +3036,22 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
|||
}
|
||||
|
||||
private void onAddContact(TupleMessageEx message) {
|
||||
for (Address address : message.from) {
|
||||
InternetAddress ia = (InternetAddress) address;
|
||||
InternetAddress ia = (InternetAddress) message.from[0];
|
||||
String name = ia.getPersonal();
|
||||
String email = ia.getAddress();
|
||||
|
||||
// https://developer.android.com/training/contacts-provider/modify-data
|
||||
Intent edit = new Intent();
|
||||
if (!TextUtils.isEmpty(name))
|
||||
edit.putExtra(ContactsContract.Intents.Insert.NAME, name);
|
||||
if (!TextUtils.isEmpty(email))
|
||||
edit.putExtra(ContactsContract.Intents.Insert.EMAIL, email);
|
||||
|
||||
Uri lookupUri = null;
|
||||
if (contacts) {
|
||||
String like = "%" + (name == null ? email : name) + "%";
|
||||
ContentResolver resolver = context.getContentResolver();
|
||||
try (Cursor cursor = resolver.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,
|
||||
new String[]{
|
||||
ContactsContract.CommonDataKinds.Photo.CONTACT_ID,
|
||||
ContactsContract.Contacts.LOOKUP_KEY
|
||||
},
|
||||
ContactsContract.CommonDataKinds.Email.ADDRESS + " = ?",
|
||||
new String[]{email}, null)) {
|
||||
ContactsContract.CommonDataKinds.Email.ADDRESS + " = ?" +
|
||||
" OR " + ContactsContract.Contacts.DISPLAY_NAME + " LIKE ?",
|
||||
new String[]{email, like}, null)) {
|
||||
if (cursor != null && cursor.moveToNext()) {
|
||||
int colContactId = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Photo.CONTACT_ID);
|
||||
int colLookupKey = cursor.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY);
|
||||
|
@ -3063,14 +3059,22 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
|||
long contactId = cursor.getLong(colContactId);
|
||||
String lookupKey = cursor.getString(colLookupKey);
|
||||
|
||||
Uri lookupUri = ContactsContract.Contacts.getLookupUri(contactId, lookupKey);
|
||||
lookupUri = ContactsContract.Contacts.getLookupUri(contactId, lookupKey);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
edit.setAction(Intent.ACTION_EDIT);
|
||||
edit.setDataAndTypeAndNormalize(lookupUri, ContactsContract.Contacts.CONTENT_ITEM_TYPE);
|
||||
} else {
|
||||
// https://developer.android.com/training/contacts-provider/modify-data
|
||||
Intent edit = new Intent();
|
||||
edit.putExtra(ContactsContract.Intents.Insert.EMAIL, email);
|
||||
if (!TextUtils.isEmpty(name))
|
||||
edit.putExtra(ContactsContract.Intents.Insert.NAME, name);
|
||||
if (lookupUri == null) {
|
||||
edit.setAction(Intent.ACTION_INSERT);
|
||||
edit.setType(ContactsContract.Contacts.CONTENT_TYPE);
|
||||
}
|
||||
} else {
|
||||
edit.setAction(Intent.ACTION_EDIT);
|
||||
edit.setDataAndTypeAndNormalize(lookupUri, ContactsContract.Contacts.CONTENT_ITEM_TYPE);
|
||||
}
|
||||
|
||||
PackageManager pm = context.getPackageManager();
|
||||
|
@ -3080,7 +3084,6 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
|||
else
|
||||
context.startActivity(edit);
|
||||
}
|
||||
}
|
||||
|
||||
private void onToggleMessage(TupleMessageEx message) {
|
||||
if (EntityFolder.DRAFTS.equals(message.folderType))
|
||||
|
|
Loading…
Reference in New Issue