Added private numbers provider to ManageSpeedDialActivity and ArrayLists changed to Kotlin lists

This commit is contained in:
merkost
2023-07-10 23:40:53 +10:00
parent 67a8c27120
commit b5a863aaef
5 changed files with 26 additions and 16 deletions

View File

@@ -3,8 +3,10 @@ package com.simplemobiletools.dialer.activities
import android.os.Bundle
import com.google.gson.Gson
import com.simplemobiletools.commons.dialogs.RadioGroupDialog
import com.simplemobiletools.commons.extensions.getMyContactsCursor
import com.simplemobiletools.commons.extensions.updateTextColors
import com.simplemobiletools.commons.helpers.ContactsHelper
import com.simplemobiletools.commons.helpers.MyContactsContentProvider
import com.simplemobiletools.commons.helpers.NavigationIcon
import com.simplemobiletools.commons.models.PhoneNumber
import com.simplemobiletools.commons.models.RadioItem
@@ -18,8 +20,8 @@ import com.simplemobiletools.dialer.models.SpeedDial
import kotlinx.android.synthetic.main.activity_manage_speed_dial.*
class ManageSpeedDialActivity : SimpleActivity(), RemoveSpeedDialListener {
private var allContacts = ArrayList<Contact>()
private var speedDialValues = ArrayList<SpeedDial>()
private var allContacts = mutableListOf<Contact>()
private var speedDialValues = mutableListOf<SpeedDial>()
override fun onCreate(savedInstanceState: Bundle?) {
isMaterialActivity = true
@@ -31,8 +33,14 @@ class ManageSpeedDialActivity : SimpleActivity(), RemoveSpeedDialListener {
speedDialValues = config.getSpeedDialValues()
updateAdapter()
ContactsHelper(this).getContacts(showOnlyContactsWithNumbers = true) { contacts ->
allContacts = contacts
allContacts.addAll(contacts)
val privateCursor = getMyContactsCursor(false, true)
val privateContacts = MyContactsContentProvider.getContacts(this, privateCursor)
allContacts.addAll(privateContacts)
allContacts.sort()
}
updateTextColors(manage_speed_dial_scrollview)

View File

@@ -41,7 +41,7 @@ import java.util.*
class ContactsAdapter(
activity: SimpleActivity,
var contacts: ArrayList<Contact>,
var contacts: MutableList<Contact>,
recyclerView: MyRecyclerView,
val refreshItemsListener: RefreshItemsListener? = null,
highlightText: String = "",

View File

@@ -9,10 +9,10 @@ import com.simplemobiletools.dialer.R
import com.simplemobiletools.dialer.activities.SimpleActivity
import com.simplemobiletools.dialer.interfaces.RemoveSpeedDialListener
import com.simplemobiletools.dialer.models.SpeedDial
import kotlinx.android.synthetic.main.item_speed_dial.view.*
import kotlinx.android.synthetic.main.item_speed_dial.view.speed_dial_label
class SpeedDialAdapter(
activity: SimpleActivity, var speedDialValues: ArrayList<SpeedDial>, private val removeListener: RemoveSpeedDialListener,
activity: SimpleActivity, var speedDialValues: List<SpeedDial>, private val removeListener: RemoveSpeedDialListener,
recyclerView: MyRecyclerView, itemClick: (Any) -> Unit
) : MyRecyclerViewAdapter(activity, recyclerView, itemClick) {
init {

View File

@@ -7,10 +7,12 @@ import com.simplemobiletools.commons.models.contacts.Contact
import com.simplemobiletools.dialer.R
import com.simplemobiletools.dialer.activities.SimpleActivity
import com.simplemobiletools.dialer.adapters.ContactsAdapter
import kotlinx.android.synthetic.main.dialog_select_contact.view.*
import java.util.*
import kotlinx.android.synthetic.main.dialog_select_contact.view.letter_fastscroller
import kotlinx.android.synthetic.main.dialog_select_contact.view.letter_fastscroller_thumb
import kotlinx.android.synthetic.main.dialog_select_contact.view.select_contact_list
import java.util.Locale
class SelectContactDialog(val activity: SimpleActivity, contacts: ArrayList<Contact>, val callback: (selectedContact: Contact) -> Unit) {
class SelectContactDialog(val activity: SimpleActivity, contacts: MutableList<Contact>, val callback: (selectedContact: Contact) -> Unit) {
private var dialog: AlertDialog? = null
private var view = activity.layoutInflater.inflate(R.layout.dialog_select_contact, null)
@@ -25,7 +27,7 @@ class SelectContactDialog(val activity: SimpleActivity, contacts: ArrayList<Cont
try {
val name = contacts[position].getNameToDisplay()
val character = if (name.isNotEmpty()) name.substring(0, 1) else ""
FastScrollItemIndicator.Text(character.toUpperCase(Locale.getDefault()))
FastScrollItemIndicator.Text(character.uppercase(Locale.getDefault()))
} catch (e: Exception) {
FastScrollItemIndicator.Text("")
}

View File

@@ -76,7 +76,7 @@ class FavoritesFragment(context: Context, attributeSet: AttributeSet) : MyViewPa
}
private fun gotContacts(contacts: ArrayList<Contact>) {
setupLetterFastscroller(contacts)
setupLetterFastScroller(contacts)
if (contacts.isEmpty()) {
fragment_placeholder.beVisible()
fragment_list.beGone()
@@ -113,7 +113,7 @@ class FavoritesFragment(context: Context, attributeSet: AttributeSet) : MyViewPa
if (adapter is ContactsAdapter) {
val items = adapter.contacts
saveCustomOrderToPrefs(items)
setupLetterFastscroller(items)
setupLetterFastScroller(items)
}
}
}
@@ -141,7 +141,7 @@ class FavoritesFragment(context: Context, attributeSet: AttributeSet) : MyViewPa
return ArrayList(sorted)
}
private fun saveCustomOrderToPrefs(items: ArrayList<Contact>) {
private fun saveCustomOrderToPrefs(items: List<Contact>) {
activity?.apply {
val orderIds = items.map { it.contactId }
val orderGsonString = Gson().toJson(orderIds)
@@ -149,7 +149,7 @@ class FavoritesFragment(context: Context, attributeSet: AttributeSet) : MyViewPa
}
}
private fun setupLetterFastscroller(contacts: ArrayList<Contact>) {
private fun setupLetterFastScroller(contacts: List<Contact>) {
letter_fastscroller.setupWithRecyclerView(fragment_list, { position ->
try {
val name = contacts[position].getNameToDisplay()
@@ -164,7 +164,7 @@ class FavoritesFragment(context: Context, attributeSet: AttributeSet) : MyViewPa
override fun onSearchClosed() {
fragment_placeholder.beVisibleIf(allContacts.isEmpty())
(fragment_list.adapter as? ContactsAdapter)?.updateItems(allContacts)
setupLetterFastscroller(allContacts)
setupLetterFastScroller(allContacts)
}
override fun onSearchQueryChanged(text: String) {
@@ -176,6 +176,6 @@ class FavoritesFragment(context: Context, attributeSet: AttributeSet) : MyViewPa
fragment_placeholder.beVisibleIf(contacts.isEmpty())
(fragment_list.adapter as? ContactsAdapter)?.updateItems(contacts, text)
setupLetterFastscroller(contacts)
setupLetterFastScroller(contacts)
}
}