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 android.os.Bundle
import com.google.gson.Gson import com.google.gson.Gson
import com.simplemobiletools.commons.dialogs.RadioGroupDialog import com.simplemobiletools.commons.dialogs.RadioGroupDialog
import com.simplemobiletools.commons.extensions.getMyContactsCursor
import com.simplemobiletools.commons.extensions.updateTextColors import com.simplemobiletools.commons.extensions.updateTextColors
import com.simplemobiletools.commons.helpers.ContactsHelper import com.simplemobiletools.commons.helpers.ContactsHelper
import com.simplemobiletools.commons.helpers.MyContactsContentProvider
import com.simplemobiletools.commons.helpers.NavigationIcon import com.simplemobiletools.commons.helpers.NavigationIcon
import com.simplemobiletools.commons.models.PhoneNumber import com.simplemobiletools.commons.models.PhoneNumber
import com.simplemobiletools.commons.models.RadioItem 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.* import kotlinx.android.synthetic.main.activity_manage_speed_dial.*
class ManageSpeedDialActivity : SimpleActivity(), RemoveSpeedDialListener { class ManageSpeedDialActivity : SimpleActivity(), RemoveSpeedDialListener {
private var allContacts = ArrayList<Contact>() private var allContacts = mutableListOf<Contact>()
private var speedDialValues = ArrayList<SpeedDial>() private var speedDialValues = mutableListOf<SpeedDial>()
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
isMaterialActivity = true isMaterialActivity = true
@@ -31,8 +33,14 @@ class ManageSpeedDialActivity : SimpleActivity(), RemoveSpeedDialListener {
speedDialValues = config.getSpeedDialValues() speedDialValues = config.getSpeedDialValues()
updateAdapter() updateAdapter()
ContactsHelper(this).getContacts(showOnlyContactsWithNumbers = true) { contacts -> 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) updateTextColors(manage_speed_dial_scrollview)

View File

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

View File

@@ -9,10 +9,10 @@ import com.simplemobiletools.dialer.R
import com.simplemobiletools.dialer.activities.SimpleActivity import com.simplemobiletools.dialer.activities.SimpleActivity
import com.simplemobiletools.dialer.interfaces.RemoveSpeedDialListener import com.simplemobiletools.dialer.interfaces.RemoveSpeedDialListener
import com.simplemobiletools.dialer.models.SpeedDial 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( 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 recyclerView: MyRecyclerView, itemClick: (Any) -> Unit
) : MyRecyclerViewAdapter(activity, recyclerView, itemClick) { ) : MyRecyclerViewAdapter(activity, recyclerView, itemClick) {
init { init {

View File

@@ -7,10 +7,12 @@ import com.simplemobiletools.commons.models.contacts.Contact
import com.simplemobiletools.dialer.R import com.simplemobiletools.dialer.R
import com.simplemobiletools.dialer.activities.SimpleActivity import com.simplemobiletools.dialer.activities.SimpleActivity
import com.simplemobiletools.dialer.adapters.ContactsAdapter import com.simplemobiletools.dialer.adapters.ContactsAdapter
import kotlinx.android.synthetic.main.dialog_select_contact.view.* import kotlinx.android.synthetic.main.dialog_select_contact.view.letter_fastscroller
import java.util.* 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 dialog: AlertDialog? = null
private var view = activity.layoutInflater.inflate(R.layout.dialog_select_contact, 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 { try {
val name = contacts[position].getNameToDisplay() val name = contacts[position].getNameToDisplay()
val character = if (name.isNotEmpty()) name.substring(0, 1) else "" 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) { } catch (e: Exception) {
FastScrollItemIndicator.Text("") FastScrollItemIndicator.Text("")
} }

View File

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