From 1ec503080ab6f5da2a6f84c2b92c332858ce5dd9 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 12 Apr 2022 20:45:46 +0200 Subject: [PATCH] Added selection of contact types/groups --- .../java/eu/faircode/email/FragmentCompose.java | 15 +++++++++++---- app/src/main/res/layout/dialog_contact_group.xml | 10 ++++++++++ app/src/main/res/values/strings.xml | 9 +++++++++ 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index 5f3629352a..bf906d9997 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -3822,6 +3822,7 @@ public class FragmentCompose extends FragmentBase { int target = args.getInt("target"); long group = args.getLong("group"); String gname = args.getString("name"); + int type = args.getInt("type"); String to = args.getString("to"); String cc = args.getString("cc"); String bcc = args.getString("bcc"); @@ -3847,11 +3848,13 @@ public class FragmentCompose extends FragmentBase { + ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE + "'", new String[]{String.valueOf(group)}, null)) { while (cursor != null && cursor.moveToNext()) { + // https://developer.android.com/reference/android/provider/ContactsContract.CommonDataKinds.Email try (Cursor contact = getContext().getContentResolver().query( ContactsContract.CommonDataKinds.Email.CONTENT_URI, new String[]{ ContactsContract.Contacts.DISPLAY_NAME, - ContactsContract.CommonDataKinds.Email.DATA + ContactsContract.CommonDataKinds.Email.DATA, + ContactsContract.CommonDataKinds.Email.TYPE, }, ContactsContract.Data.CONTACT_ID + " = ?", new String[]{cursor.getString(0)}, @@ -3859,10 +3862,12 @@ public class FragmentCompose extends FragmentBase { if (contact != null && contact.moveToNext()) { String name = contact.getString(0); String email = contact.getString(1); + int etype = contact.getInt(2); Address address = new InternetAddress(email, name, StandardCharsets.UTF_8.name()); - EntityLog.log(context, "Selected group=" + group + - " address=" + MessageHelper.formatAddresses(new Address[]{address})); - selected.add(address); + EntityLog.log(context, "Selected group=" + group + ":" + type + + " address=" + MessageHelper.formatAddresses(new Address[]{address}) + ":" + etype); + if (type == 0 || etype == type) + selected.add(address); } } } @@ -6786,6 +6791,7 @@ public class FragmentCompose extends FragmentBase { final ImageButton ibInfo = dview.findViewById(R.id.ibInfo); final Spinner spGroup = dview.findViewById(R.id.spGroup); final Spinner spTarget = dview.findViewById(R.id.spTarget); + final Spinner spType = dview.findViewById(R.id.spType); ibInfo.setOnClickListener(new View.OnClickListener() { @Override @@ -6890,6 +6896,7 @@ public class FragmentCompose extends FragmentBase { args.putInt("target", target); args.putLong("group", group); args.putString("name", name); + args.putInt("type", spType.getSelectedItemPosition()); sendResult(RESULT_OK); } else diff --git a/app/src/main/res/layout/dialog_contact_group.xml b/app/src/main/res/layout/dialog_contact_group.xml index 5ce2c3b8f6..8d293ccbe6 100644 --- a/app/src/main/res/layout/dialog_contact_group.xml +++ b/app/src/main/res/layout/dialog_contact_group.xml @@ -54,5 +54,15 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/spTarget" /> + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index bf1b0a813b..71ca559e83 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -2311,6 +2311,15 @@ Not blocked + + Any + Home + Work + Other + Mobile + + + 17BA15C1AF55D925F98B99CEA4375D4CDF4C174B 77CD40058858DC3A38523E01C227A39AA019F88B 200D0AA43A8ADBC7BB8237023C1553F4753CA7D2