From 53d77fe2057d0594efb76fceeb30a08dd028470d Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 10 Aug 2018 16:06:39 +0000 Subject: [PATCH] Search contacts on typing --- app/src/main/AndroidManifest.xml | 2 +- .../eu/faircode/email/FragmentCompose.java | 60 ++++++++++++++++++- .../java/eu/faircode/email/FragmentSetup.java | 1 + app/src/main/res/layout/fragment_compose.xml | 6 +- app/src/main/res/layout/fragment_setup.xml | 5 +- app/src/main/res/values/strings.xml | 1 + 6 files changed, 64 insertions(+), 11 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 23c8b6f25f..3361f304f5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -5,7 +5,7 @@ - + ''" + + " AND (" + ContactsContract.Contacts.DISPLAY_NAME + " LIKE '%" + typed + "%'" + + " OR " + ContactsContract.CommonDataKinds.Email.DATA + " LIKE '%" + typed + "%')", + null, + "CASE WHEN " + ContactsContract.Contacts.DISPLAY_NAME + " NOT LIKE '%@%' THEN 0 ELSE 1 END" + + ", " + ContactsContract.Contacts.DISPLAY_NAME + + ", " + ContactsContract.CommonDataKinds.Email.DATA + " COLLATE NOCASE"); + } + }); + + adapter.setCursorToStringConverter(new SimpleCursorAdapter.CursorToStringConverter() { + public CharSequence convertToString(Cursor cursor) { + int colName = cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME); + int colEmail = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA); + return cursor.getString(colName) + "<" + cursor.getString(colEmail) + ">"; + } + }); + } + return view; } diff --git a/app/src/main/java/eu/faircode/email/FragmentSetup.java b/app/src/main/java/eu/faircode/email/FragmentSetup.java index 94640c2e33..7ef95a02c8 100644 --- a/app/src/main/java/eu/faircode/email/FragmentSetup.java +++ b/app/src/main/java/eu/faircode/email/FragmentSetup.java @@ -114,6 +114,7 @@ public class FragmentSetup extends FragmentEx { btnPermissions.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { + btnPermissions.setEnabled(false); requestPermissions(permissions, 1); } }); diff --git a/app/src/main/res/layout/fragment_compose.xml b/app/src/main/res/layout/fragment_compose.xml index dff685da7c..71894b666f 100644 --- a/app/src/main/res/layout/fragment_compose.xml +++ b/app/src/main/res/layout/fragment_compose.xml @@ -24,7 +24,7 @@ app:layout_constraintStart_toEndOf="@id/spFrom" app:layout_constraintTop_toTopOf="@id/spFrom" /> - - - @@ -119,7 +118,6 @@ android:layout_height="wrap_content" android:text="@string/title_setup_permissions_remark" android:textAppearance="@style/TextAppearance.AppCompat.Small" - android:visibility="gone" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/btnPermissions" /> @@ -128,9 +126,8 @@ android:id="@+id/tvPermissionsDone" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="@string/title_setup_done" + android:text="@string/title_setup_granted" android:textAppearance="@style/TextAppearance.AppCompat.Medium" - android:visibility="gone" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/tvPermissions" /> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c1cf44dfb8..307c8a774a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -51,6 +51,7 @@ To read contacts (optional) View messages Done + Granted Dark theme Debug