From f7bf4743a7ee70419cc4e544d57e42a5d8d3c5fc Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 6 May 2020 23:49:32 +0200 Subject: [PATCH] taking some Contact handling related things from Commons --- app/build.gradle | 2 +- .../dialer/activities/MainActivity.kt | 5 + .../dialer/fragments/MyViewPagerFragment.kt | 4 +- .../dialer/models/Contact.kt | 95 ------------------- 4 files changed, 8 insertions(+), 98 deletions(-) delete mode 100644 app/src/main/kotlin/com/simplemobiletools/dialer/models/Contact.kt diff --git a/app/build.gradle b/app/build.gradle index d7b9c08b..ac75d07c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -36,6 +36,6 @@ android { } dependencies { - implementation 'com.simplemobiletools:commons:5.27.9' + implementation 'com.simplemobiletools:commons:5.27.10' implementation 'com.github.tibbi:IndicatorFastScroll:08f512858a' } diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/MainActivity.kt index 1b34fe79..b7ce53be 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/MainActivity.kt @@ -9,6 +9,7 @@ import android.view.Menu import android.view.MenuItem import androidx.viewpager.widget.ViewPager import com.simplemobiletools.commons.extensions.* +import com.simplemobiletools.commons.helpers.ContactsHelper import com.simplemobiletools.commons.helpers.PERMISSION_GET_ACCOUNTS import com.simplemobiletools.commons.helpers.PERMISSION_READ_CONTACTS import com.simplemobiletools.commons.models.FAQItem @@ -140,6 +141,10 @@ class MainActivity : SimpleActivity() { viewpager.adapter = ViewPagerAdapter(this) viewpager.currentItem = config.lastUsedViewPagerPage } + + ContactsHelper(this).getAvailableContacts { contacts -> + + } } private fun getAllFragments() = arrayListOf(contacts_fragment) diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/MyViewPagerFragment.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/MyViewPagerFragment.kt index 3d2587a9..d47cf5c6 100644 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/MyViewPagerFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/dialer/fragments/MyViewPagerFragment.kt @@ -5,15 +5,15 @@ import android.util.AttributeSet import androidx.coordinatorlayout.widget.CoordinatorLayout import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter import com.simplemobiletools.commons.extensions.underlineText +import com.simplemobiletools.commons.models.SimpleContact import com.simplemobiletools.dialer.activities.SimpleActivity import com.simplemobiletools.dialer.extensions.config import com.simplemobiletools.dialer.helpers.Config -import com.simplemobiletools.dialer.models.Contact import kotlinx.android.synthetic.main.fragment_letters_layout.view.* abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet) : CoordinatorLayout(context, attributeSet) { protected var activity: SimpleActivity? = null - protected var allContacts = ArrayList() + protected var allContacts = ArrayList() private var lastHashCode = 0 private lateinit var config: Config diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/models/Contact.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/models/Contact.kt deleted file mode 100644 index d84df10a..00000000 --- a/app/src/main/kotlin/com/simplemobiletools/dialer/models/Contact.kt +++ /dev/null @@ -1,95 +0,0 @@ -package com.simplemobiletools.dialer.models - -import com.simplemobiletools.commons.extensions.normalizeString -import com.simplemobiletools.commons.helpers.SORT_BY_FIRST_NAME -import com.simplemobiletools.commons.helpers.SORT_BY_MIDDLE_NAME -import com.simplemobiletools.commons.helpers.SORT_DESCENDING - -data class Contact(var id: Int, var prefix: String, var firstName: String, var middleName: String, var surname: String, var suffix: String, - var photoUri: String, var phoneNumbers: ArrayList, var source: String, var starred: Int, var contactId: Int, var thumbnailUri: String, - var organization: Organization) : Comparable { - companion object { - var sorting = 0 - var startWithSurname = false - } - - override fun compareTo(other: Contact): Int { - var firstString: String - var secondString: String - - when { - sorting and SORT_BY_FIRST_NAME != 0 -> { - firstString = firstName.normalizeString() - secondString = other.firstName.normalizeString() - } - sorting and SORT_BY_MIDDLE_NAME != 0 -> { - firstString = middleName.normalizeString() - secondString = other.middleName.normalizeString() - } - else -> { - firstString = surname.normalizeString() - secondString = other.surname.normalizeString() - } - } - - if (firstString.isEmpty() && firstName.isEmpty() && middleName.isEmpty() && surname.isEmpty()) { - val fullCompany = getFullCompany() - if (fullCompany.isNotEmpty()) { - firstString = fullCompany.normalizeString() - } - } - - if (secondString.isEmpty() && other.firstName.isEmpty() && other.middleName.isEmpty() && other.surname.isEmpty()) { - val otherFullCompany = other.getFullCompany() - if (otherFullCompany.isNotEmpty()) { - secondString = otherFullCompany.normalizeString() - } - } - - var result = if (firstString.firstOrNull()?.isLetter() == true && secondString.firstOrNull()?.isLetter() == false) { - -1 - } else if (firstString.firstOrNull()?.isLetter() == false && secondString.firstOrNull()?.isLetter() == true) { - 1 - } else { - if (firstString.isEmpty() && secondString.isNotEmpty()) { - 1 - } else if (firstString.isNotEmpty() && secondString.isEmpty()) { - -1 - } else { - if (firstString.toLowerCase() == secondString.toLowerCase()) { - getNameToDisplay().compareTo(other.getNameToDisplay(), true) - } else { - firstString.compareTo(secondString, true) - } - } - } - - if (sorting and SORT_DESCENDING != 0) { - result *= -1 - } - - return result - } - - fun getNameToDisplay(): String { - var firstPart = if (startWithSurname) surname else firstName - if (middleName.isNotEmpty()) { - firstPart += " $middleName" - } - - val lastPart = if (startWithSurname) firstName else surname - val suffixComma = if (suffix.isEmpty()) "" else ", $suffix" - val fullName = "$prefix $firstPart $lastPart$suffixComma".trim() - return if (fullName.isEmpty() && organization.isNotEmpty()) { - getFullCompany() - } else { - fullName - } - } - - fun getFullCompany(): String { - var fullOrganization = if (organization.company.isEmpty()) "" else "${organization.company}, " - fullOrganization += organization.jobPosition - return fullOrganization.trim().trimEnd(',') - } -}