fetch only favorited private contacts when requested so

This commit is contained in:
tibbi
2020-06-19 10:34:41 +02:00
parent 4e3194aac8
commit 3abc0a8e66
4 changed files with 8 additions and 5 deletions

View File

@ -57,7 +57,7 @@ android {
} }
dependencies { dependencies {
implementation 'com.simplemobiletools:commons:5.29.9' implementation 'com.simplemobiletools:commons:5.29.10'
implementation 'joda-time:joda-time:2.10.1' implementation 'joda-time:joda-time:2.10.1'
implementation 'com.googlecode.ez-vcard:ez-vcard:0.10.5' implementation 'com.googlecode.ez-vcard:ez-vcard:0.10.5'
implementation 'com.github.tibbi:IndicatorFastScroll:08f512858a' implementation 'com.github.tibbi:IndicatorFastScroll:08f512858a'

View File

@ -24,7 +24,7 @@ class MyContactsContentProvider : ContentProvider() {
MyContactsContentProvider.COL_PHONE_NUMBER) MyContactsContentProvider.COL_PHONE_NUMBER)
) )
LocalContactsHelper(context!!).getPrivateSimpleContactsSync().forEach { LocalContactsHelper(context!!).getPrivateSimpleContactsSync(selection == MyContactsContentProvider.FAVORITES_ONLY).forEach {
matrixCursor.newRow() matrixCursor.newRow()
.add(MyContactsContentProvider.COL_RAW_ID, it.rawId) .add(MyContactsContentProvider.COL_RAW_ID, it.rawId)
.add(MyContactsContentProvider.COL_CONTACT_ID, it.contactId) .add(MyContactsContentProvider.COL_CONTACT_ID, it.contactId)

View File

@ -17,8 +17,8 @@ import com.simplemobiletools.contacts.pro.models.LocalContact
import com.simplemobiletools.contacts.pro.models.Organization import com.simplemobiletools.contacts.pro.models.Organization
class LocalContactsHelper(val context: Context) { class LocalContactsHelper(val context: Context) {
fun getAllContacts(): ArrayList<Contact> { fun getAllContacts(favoritesOnly: Boolean = false): ArrayList<Contact> {
val contacts = context.contactsDB.getContacts() val contacts = if (favoritesOnly) context.contactsDB.getFavoriteContacts() else context.contactsDB.getContacts()
val storedGroups = ContactsHelper(context).getStoredGroupsSync() val storedGroups = ContactsHelper(context).getStoredGroupsSync()
return contacts.map { convertLocalContactToContact(it, storedGroups) }.toMutableList() as ArrayList<Contact> return contacts.map { convertLocalContactToContact(it, storedGroups) }.toMutableList() as ArrayList<Contact>
} }
@ -161,5 +161,5 @@ class LocalContactsHelper(val context: Context) {
} }
} }
fun getPrivateSimpleContactsSync() = getAllContacts().mapNotNull { convertContactToSimpleContact(it) } fun getPrivateSimpleContactsSync(favoritesOnly: Boolean) = getAllContacts(favoritesOnly).mapNotNull { convertContactToSimpleContact(it) }
} }

View File

@ -11,6 +11,9 @@ interface ContactsDao {
@Query("SELECT * FROM contacts") @Query("SELECT * FROM contacts")
fun getContacts(): List<LocalContact> fun getContacts(): List<LocalContact>
@Query("SELECT * FROM contacts WHERE starred = 1")
fun getFavoriteContacts(): List<LocalContact>
@Query("SELECT * FROM contacts WHERE id = :id") @Query("SELECT * FROM contacts WHERE id = :id")
fun getContactWithId(id: Int): LocalContact? fun getContactWithId(id: Int): LocalContact?