ContactItem improvements (#1324)

* ContactRepository: try to deduplicate phoneNumbers in a smart way

* AndroidManifest: use CALL_PHONE permission to allow for making phone calls

* Implement CallOnTap with contact results

- contact activities that require permissions we do not have are not
  listed
- add CallOnTap setting for phone number results on search behind
  contacts settings

* utilize PhoneNumberUtils

* navroute settings/search/contacts

* queryIntentActivities -> resolveActivity

* localization

* Code formatting

* Wrap contact search settings in preference category

---------

Co-authored-by: MM20 <15646950+MM2-0@users.noreply.github.com>
This commit is contained in:
Christoph
2025-03-29 17:18:30 +01:00
committed by GitHub
co-authored by MM20
parent 21894d8df2
commit bceae1aa58
14 changed files with 191 additions and 10 deletions
@@ -54,6 +54,7 @@ data class LauncherSettingsData internal constructor(
val fileSearchProviders: Set<String> = setOf("local"),
val contactSearchEnabled: Boolean = true,
val contactSearchCallOnTap: Boolean = false,
@Deprecated("Use calendarSearchProviders `local` instead")
val calendarSearchEnabled: Boolean = true,
@@ -12,4 +12,11 @@ class ContactSearchSettings internal constructor(private val dataStore: Launcher
fun setEnabled(enabled: Boolean) {
dataStore.update { it.copy(contactSearchEnabled = enabled) }
}
val callOnTap: Flow<Boolean>
get() = dataStore.data.map { it.contactSearchCallOnTap }.distinctUntilChanged()
fun setCallOnTap(callOnTap: Boolean) {
dataStore.update { it.copy(contactSearchCallOnTap = callOnTap) }
}
}