Redesign contact results

This commit is contained in:
MM20
2024-06-23 22:31:11 +02:00
parent 29f8440b24
commit 84582ebbaf
6 changed files with 596 additions and 329 deletions
@@ -1,35 +1,46 @@
package de.mm20.launcher2.search
import android.content.Intent
import android.net.Uri
interface Contact: SavableSearchable {
interface Contact : SavableSearchable {
val firstName: String
val lastName: String
val displayName: String
val summary: String
val contactInfos: Iterable<ContactInfo>
val phoneNumbers: List<PhoneNumber>
val emailAddresses: List<EmailAddress>
val postalAddresses: List<PostalAddress>
val contactApps: List<ContactApp>
override val preferDetailsOverLaunch: Boolean
get() = true
}
/**
* Type of the contact info
* Acts as a hint for the UI, so that it can display the correct icon and group them accordingly
*/
enum class ContactInfoType {
Phone,
Message,
Email,
Postal,
Telegram,
Whatsapp,
Signal,
Other
}
data class PhoneNumber(
val number: String,
val type: ContactInfoType,
)
interface ContactInfo {
val type: ContactInfoType
val label: String
val intent: Intent
}
data class EmailAddress(
val address: String,
val type: ContactInfoType,
)
data class PostalAddress(
val address: String,
val type: ContactInfoType,
)
data class ContactApp(
val label: String,
val uri: Uri,
val mimeType: String,
val packageName: String,
)
enum class ContactInfoType {
Home,
Mobile,
Work,
Other,
}
+15
View File
@@ -949,4 +949,19 @@
<string name="item_visibility_calendar_default">Calendar widget &amp; search results</string>
<string name="item_visibility_search_only">Search results</string>
<string name="item_visibility_hidden">Never</string>
<string name="contact_info_home">Home</string>
<string name="contact_info_mobile">Home</string>
<string name="contact_info_work">Home</string>
<plurals name="contact_phone_numbers">
<item quantity="one">%1$s phone number</item>
<item quantity="other">%1$s phone numbers</item>
</plurals>
<plurals name="contact_email_addresses">
<item quantity="one">%1$s email address</item>
<item quantity="other">%1$s email addresses</item>
</plurals>
<plurals name="contact_postal_addresses">
<item quantity="one">%1$s postal address</item>
<item quantity="other">%1$s postal addresses</item>
</plurals>
</resources>