diff --git a/app/build.gradle b/app/build.gradle index e4db7538..eba022c8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -57,7 +57,7 @@ android { } dependencies { - implementation 'com.simplemobiletools:commons:5.29.9' + implementation 'com.simplemobiletools:commons:5.29.10' implementation 'joda-time:joda-time:2.10.1' implementation 'com.googlecode.ez-vcard:ez-vcard:0.10.5' implementation 'com.github.tibbi:IndicatorFastScroll:08f512858a' diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/contentproviders/MyContactsContentProvider.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/contentproviders/MyContactsContentProvider.kt index 00842527..87af748a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/contentproviders/MyContactsContentProvider.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/contentproviders/MyContactsContentProvider.kt @@ -24,7 +24,7 @@ class MyContactsContentProvider : ContentProvider() { MyContactsContentProvider.COL_PHONE_NUMBER) ) - LocalContactsHelper(context!!).getPrivateSimpleContactsSync().forEach { + LocalContactsHelper(context!!).getPrivateSimpleContactsSync(selection == MyContactsContentProvider.FAVORITES_ONLY).forEach { matrixCursor.newRow() .add(MyContactsContentProvider.COL_RAW_ID, it.rawId) .add(MyContactsContentProvider.COL_CONTACT_ID, it.contactId) diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/LocalContactsHelper.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/LocalContactsHelper.kt index 9b867d49..1e088e4e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/LocalContactsHelper.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/helpers/LocalContactsHelper.kt @@ -17,8 +17,8 @@ import com.simplemobiletools.contacts.pro.models.LocalContact import com.simplemobiletools.contacts.pro.models.Organization class LocalContactsHelper(val context: Context) { - fun getAllContacts(): ArrayList { - val contacts = context.contactsDB.getContacts() + fun getAllContacts(favoritesOnly: Boolean = false): ArrayList { + val contacts = if (favoritesOnly) context.contactsDB.getFavoriteContacts() else context.contactsDB.getContacts() val storedGroups = ContactsHelper(context).getStoredGroupsSync() return contacts.map { convertLocalContactToContact(it, storedGroups) }.toMutableList() as ArrayList } @@ -161,5 +161,5 @@ class LocalContactsHelper(val context: Context) { } } - fun getPrivateSimpleContactsSync() = getAllContacts().mapNotNull { convertContactToSimpleContact(it) } + fun getPrivateSimpleContactsSync(favoritesOnly: Boolean) = getAllContacts(favoritesOnly).mapNotNull { convertContactToSimpleContact(it) } } diff --git a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/interfaces/ContactsDao.kt b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/interfaces/ContactsDao.kt index 42621e76..e419e78b 100644 --- a/app/src/main/kotlin/com/simplemobiletools/contacts/pro/interfaces/ContactsDao.kt +++ b/app/src/main/kotlin/com/simplemobiletools/contacts/pro/interfaces/ContactsDao.kt @@ -11,6 +11,9 @@ interface ContactsDao { @Query("SELECT * FROM contacts") fun getContacts(): List + @Query("SELECT * FROM contacts WHERE starred = 1") + fun getFavoriteContacts(): List + @Query("SELECT * FROM contacts WHERE id = :id") fun getContactWithId(id: Int): LocalContact?