show privately stored contacts at the dialpad screen too

This commit is contained in:
tibbi
2020-05-21 22:52:50 +02:00
parent d21ec7d75c
commit 312c1ad5cd

View File

@ -2,6 +2,7 @@ package com.simplemobiletools.dialer.activities
import android.annotation.TargetApi import android.annotation.TargetApi
import android.content.Intent import android.content.Intent
import android.database.Cursor
import android.net.Uri import android.net.Uri
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
@ -14,10 +15,7 @@ import android.view.MenuItem
import android.view.View import android.view.View
import com.reddit.indicatorfastscroll.FastScrollItemIndicator import com.reddit.indicatorfastscroll.FastScrollItemIndicator
import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.helpers.KEY_PHONE import com.simplemobiletools.commons.helpers.*
import com.simplemobiletools.commons.helpers.REQUEST_CODE_SET_DEFAULT_DIALER
import com.simplemobiletools.commons.helpers.SimpleContactsHelper
import com.simplemobiletools.commons.helpers.isOreoPlus
import com.simplemobiletools.commons.models.SimpleContact import com.simplemobiletools.commons.models.SimpleContact
import com.simplemobiletools.dialer.R import com.simplemobiletools.dialer.R
import com.simplemobiletools.dialer.adapters.ContactsAdapter import com.simplemobiletools.dialer.adapters.ContactsAdapter
@ -33,8 +31,9 @@ import java.util.*
import kotlin.collections.ArrayList import kotlin.collections.ArrayList
class DialpadActivity : SimpleActivity() { class DialpadActivity : SimpleActivity() {
private var contacts = ArrayList<SimpleContact>() private var allContacts = ArrayList<SimpleContact>()
private var speedDialValues = ArrayList<SpeedDial>() private var speedDialValues = ArrayList<SpeedDial>()
private var privateCursor: Cursor? = null
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
@ -45,6 +44,7 @@ class DialpadActivity : SimpleActivity() {
} }
speedDialValues = config.getSpeedDialValues() speedDialValues = config.getSpeedDialValues()
privateCursor = getMyContactsContentProviderCursorLoader().loadInBackground()
dialpad_0_holder.setOnClickListener { dialpadPressed('0', it) } dialpad_0_holder.setOnClickListener { dialpadPressed('0', it) }
dialpad_1.setOnClickListener { dialpadPressed('1', it) } dialpad_1.setOnClickListener { dialpadPressed('1', it) }
@ -149,7 +149,14 @@ class DialpadActivity : SimpleActivity() {
} }
private fun gotContacts(newContacts: ArrayList<SimpleContact>) { private fun gotContacts(newContacts: ArrayList<SimpleContact>) {
contacts = newContacts allContacts = newContacts
val privateContacts = MyContactsContentProvider.getSimpleContacts(this, privateCursor)
if (privateContacts.isNotEmpty()) {
allContacts.addAll(privateContacts)
allContacts.sort()
}
runOnUiThread { runOnUiThread {
if (!checkDialIntent() && dialpad_input.value.isEmpty()) { if (!checkDialIntent() && dialpad_input.value.isEmpty()) {
dialpadValueChanged("") dialpadValueChanged("")
@ -176,7 +183,7 @@ class DialpadActivity : SimpleActivity() {
} }
(dialpad_list.adapter as? ContactsAdapter)?.finishActMode() (dialpad_list.adapter as? ContactsAdapter)?.finishActMode()
val filtered = contacts.filter { val filtered = allContacts.filter {
val convertedName = PhoneNumberUtils.convertKeypadLettersToDigits(it.name.normalizeString()) val convertedName = PhoneNumberUtils.convertKeypadLettersToDigits(it.name.normalizeString())
it.doesContainPhoneNumber(text) || (convertedName.contains(text, true)) it.doesContainPhoneNumber(text) || (convertedName.contains(text, true))
}.sortedWith(compareBy { }.sortedWith(compareBy {