Skip to content

Commit 2011464

Browse files
committed
add Filter and Sort menu items to the Select contact screen
1 parent 2c31cf5 commit 2011464

File tree

2 files changed

+46
-1
lines changed

2 files changed

+46
-1
lines changed

app/src/main/kotlin/com/simplemobiletools/contacts/activities/SelectContactActivity.kt

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import android.content.Intent
44
import android.net.Uri
55
import android.os.Bundle
66
import android.provider.ContactsContract
7+
import android.view.Menu
8+
import android.view.MenuItem
79
import com.simplemobiletools.commons.extensions.appLaunched
810
import com.simplemobiletools.commons.extensions.baseConfig
911
import com.simplemobiletools.commons.extensions.isActivityDestroyed
@@ -12,6 +14,8 @@ import com.simplemobiletools.commons.helpers.PERMISSION_READ_CONTACTS
1214
import com.simplemobiletools.commons.helpers.PERMISSION_WRITE_CONTACTS
1315
import com.simplemobiletools.contacts.R
1416
import com.simplemobiletools.contacts.adapters.SelectContactsAdapter
17+
import com.simplemobiletools.contacts.dialogs.ChangeSortingDialog
18+
import com.simplemobiletools.contacts.dialogs.FilterContactSourcesDialog
1519
import com.simplemobiletools.contacts.extensions.config
1620
import com.simplemobiletools.contacts.helpers.ContactsHelper
1721
import com.simplemobiletools.contacts.helpers.SMT_PRIVATE
@@ -30,6 +34,7 @@ class SelectContactActivity : SimpleActivity() {
3034
if (it) {
3135
handlePermission(PERMISSION_WRITE_CONTACTS) {
3236
if (it) {
37+
isGetEmailIntent = intent.data == ContactsContract.CommonDataKinds.Email.CONTENT_URI
3338
initContacts()
3439
} else {
3540
toast(R.string.no_contacts_permission)
@@ -43,8 +48,33 @@ class SelectContactActivity : SimpleActivity() {
4348
}
4449
}
4550

51+
override fun onCreateOptionsMenu(menu: Menu): Boolean {
52+
menuInflater.inflate(R.menu.menu_select_activity, menu)
53+
return true
54+
}
55+
56+
override fun onOptionsItemSelected(item: MenuItem): Boolean {
57+
when (item.itemId) {
58+
R.id.sort -> showSortingDialog()
59+
R.id.filter -> showFilterDialog()
60+
else -> return super.onOptionsItemSelected(item)
61+
}
62+
return true
63+
}
64+
65+
private fun showSortingDialog() {
66+
ChangeSortingDialog(this) {
67+
initContacts()
68+
}
69+
}
70+
71+
private fun showFilterDialog() {
72+
FilterContactSourcesDialog(this) {
73+
initContacts()
74+
}
75+
}
76+
4677
private fun initContacts() {
47-
isGetEmailIntent = intent.data == ContactsContract.CommonDataKinds.Email.CONTENT_URI
4878
ContactsHelper(this).getContacts(true) {
4979
if (isActivityDestroyed()) {
5080
return@getContacts
@@ -70,6 +100,7 @@ class SelectContactActivity : SimpleActivity() {
70100
select_contact_list.adapter = SelectContactsAdapter(this, contacts, ArrayList(), false) {
71101
confirmSelection(it)
72102
}
103+
73104
select_contact_fastscroller.allowBubbleDisplay = baseConfig.showInfoBubble
74105
select_contact_fastscroller.setViews(select_contact_list) {
75106
select_contact_fastscroller.updateBubbleText(contacts[it].getBubbleText())
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<menu xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:app="http://schemas.android.com/apk/res-auto">
4+
<item
5+
android:id="@+id/sort"
6+
android:icon="@drawable/ic_sort"
7+
android:title="@string/sort_by"
8+
app:showAsAction="ifRoom"/>
9+
<item
10+
android:id="@+id/filter"
11+
android:icon="@drawable/ic_filter"
12+
android:title="@string/filter"
13+
app:showAsAction="ifRoom"/>
14+
</menu>

0 commit comments

Comments
 (0)