mirror of
https://github.com/SimpleMobileTools/Simple-Dialer.git
synced 2025-06-05 21:49:23 +02:00
migrate dialogs to viewbinding
This commit is contained in:
@ -4,22 +4,24 @@ import com.simplemobiletools.commons.activities.BaseSimpleActivity
|
||||
import com.simplemobiletools.commons.extensions.beGoneIf
|
||||
import com.simplemobiletools.commons.extensions.getAlertDialogBuilder
|
||||
import com.simplemobiletools.commons.extensions.setupDialogStuff
|
||||
import com.simplemobiletools.commons.extensions.viewBinding
|
||||
import com.simplemobiletools.commons.helpers.*
|
||||
import com.simplemobiletools.dialer.R
|
||||
import com.simplemobiletools.dialer.databinding.DialogChangeSortingBinding
|
||||
import com.simplemobiletools.dialer.extensions.config
|
||||
import kotlinx.android.synthetic.main.dialog_change_sorting.view.*
|
||||
|
||||
class ChangeSortingDialog(val activity: BaseSimpleActivity, private val showCustomSorting: Boolean = false, private val callback: () -> Unit) {
|
||||
private val binding by activity.viewBinding(DialogChangeSortingBinding::inflate)
|
||||
|
||||
private var currSorting = 0
|
||||
private var config = activity.config
|
||||
private var view = activity.layoutInflater.inflate(R.layout.dialog_change_sorting, null)
|
||||
|
||||
init {
|
||||
activity.getAlertDialogBuilder()
|
||||
.setPositiveButton(R.string.ok) { dialog, which -> dialogConfirmed() }
|
||||
.setNegativeButton(R.string.cancel, null)
|
||||
.apply {
|
||||
activity.setupDialogStuff(view, this, R.string.sort_by)
|
||||
activity.setupDialogStuff(binding.root, this, R.string.sort_by)
|
||||
}
|
||||
|
||||
currSorting = if (showCustomSorting && config.isCustomOrderSelected) {
|
||||
@ -33,43 +35,41 @@ class ChangeSortingDialog(val activity: BaseSimpleActivity, private val showCust
|
||||
}
|
||||
|
||||
private fun setupSortRadio() {
|
||||
val sortingRadio = view.sorting_dialog_radio_sorting
|
||||
binding.apply {
|
||||
sortingDialogRadioSorting.setOnCheckedChangeListener { group, checkedId ->
|
||||
val isCustomSorting = checkedId == sortingDialogRadioCustom.id
|
||||
sortingDialogRadioOrder.beGoneIf(isCustomSorting)
|
||||
divider.beGoneIf(isCustomSorting)
|
||||
}
|
||||
|
||||
sortingRadio.setOnCheckedChangeListener { group, checkedId ->
|
||||
val isCustomSorting = checkedId == sortingRadio.sorting_dialog_radio_custom.id
|
||||
view.sorting_dialog_radio_order.beGoneIf(isCustomSorting)
|
||||
view.divider.beGoneIf(isCustomSorting)
|
||||
}
|
||||
val sortBtn = when {
|
||||
currSorting and SORT_BY_FIRST_NAME != 0 -> sortingDialogRadioFirstName
|
||||
currSorting and SORT_BY_MIDDLE_NAME != 0 -> sortingDialogRadioMiddleName
|
||||
currSorting and SORT_BY_SURNAME != 0 -> sortingDialogRadioSurname
|
||||
currSorting and SORT_BY_FULL_NAME != 0 -> sortingDialogRadioFullName
|
||||
currSorting and SORT_BY_CUSTOM != 0 -> sortingDialogRadioCustom
|
||||
else -> sortingDialogRadioDateCreated
|
||||
}
|
||||
sortBtn.isChecked = true
|
||||
|
||||
val sortBtn = when {
|
||||
currSorting and SORT_BY_FIRST_NAME != 0 -> sortingRadio.sorting_dialog_radio_first_name
|
||||
currSorting and SORT_BY_MIDDLE_NAME != 0 -> sortingRadio.sorting_dialog_radio_middle_name
|
||||
currSorting and SORT_BY_SURNAME != 0 -> sortingRadio.sorting_dialog_radio_surname
|
||||
currSorting and SORT_BY_FULL_NAME != 0 -> sortingRadio.sorting_dialog_radio_full_name
|
||||
currSorting and SORT_BY_CUSTOM != 0 -> sortingRadio.sorting_dialog_radio_custom
|
||||
else -> sortingRadio.sorting_dialog_radio_date_created
|
||||
if (showCustomSorting) {
|
||||
sortingDialogRadioCustom.isChecked = config.isCustomOrderSelected
|
||||
}
|
||||
sortingDialogRadioCustom.beGoneIf(!showCustomSorting)
|
||||
}
|
||||
sortBtn.isChecked = true
|
||||
|
||||
if (showCustomSorting) {
|
||||
sortingRadio.sorting_dialog_radio_custom.isChecked = config.isCustomOrderSelected
|
||||
}
|
||||
view.sorting_dialog_radio_custom.beGoneIf(!showCustomSorting)
|
||||
}
|
||||
|
||||
private fun setupOrderRadio() {
|
||||
val orderRadio = view.sorting_dialog_radio_order
|
||||
var orderBtn = orderRadio.sorting_dialog_radio_ascending
|
||||
|
||||
var orderBtn = binding.sortingDialogRadioAscending
|
||||
if (currSorting and SORT_DESCENDING != 0) {
|
||||
orderBtn = orderRadio.sorting_dialog_radio_descending
|
||||
orderBtn = binding.sortingDialogRadioDescending
|
||||
}
|
||||
|
||||
orderBtn.isChecked = true
|
||||
}
|
||||
|
||||
private fun dialogConfirmed() {
|
||||
val sortingRadio = view.sorting_dialog_radio_sorting
|
||||
var sorting = when (sortingRadio.checkedRadioButtonId) {
|
||||
var sorting = when (binding.sortingDialogRadioSorting.checkedRadioButtonId) {
|
||||
R.id.sorting_dialog_radio_first_name -> SORT_BY_FIRST_NAME
|
||||
R.id.sorting_dialog_radio_middle_name -> SORT_BY_MIDDLE_NAME
|
||||
R.id.sorting_dialog_radio_surname -> SORT_BY_SURNAME
|
||||
@ -78,7 +78,7 @@ class ChangeSortingDialog(val activity: BaseSimpleActivity, private val showCust
|
||||
else -> SORT_BY_DATE_CREATED
|
||||
}
|
||||
|
||||
if (sorting != SORT_BY_CUSTOM && view.sorting_dialog_radio_order.checkedRadioButtonId == R.id.sorting_dialog_radio_descending) {
|
||||
if (sorting != SORT_BY_CUSTOM && binding.sortingDialogRadioOrder.checkedRadioButtonId == R.id.sorting_dialog_radio_descending) {
|
||||
sorting = sorting or SORT_DESCENDING
|
||||
}
|
||||
|
||||
|
@ -6,17 +6,17 @@ import androidx.fragment.app.FragmentManager
|
||||
import com.simplemobiletools.commons.adapters.SimpleListItemAdapter
|
||||
import com.simplemobiletools.commons.fragments.BaseBottomSheetDialogFragment
|
||||
import com.simplemobiletools.commons.models.SimpleListItem
|
||||
import com.simplemobiletools.dialer.R
|
||||
import kotlinx.android.synthetic.main.layout_simple_recycler_view.*
|
||||
import com.simplemobiletools.dialer.databinding.LayoutSimpleRecyclerViewBinding
|
||||
|
||||
// same as BottomSheetChooserDialog but with dynamic updates
|
||||
class DynamicBottomSheetChooserDialog : BaseBottomSheetDialogFragment() {
|
||||
private lateinit var binding: LayoutSimpleRecyclerViewBinding
|
||||
|
||||
var onItemClick: ((SimpleListItem) -> Unit)? = null
|
||||
|
||||
override fun setupContentView(parent: ViewGroup) {
|
||||
val child = layoutInflater.inflate(R.layout.layout_simple_recycler_view, parent, false)
|
||||
parent.addView(child)
|
||||
binding = LayoutSimpleRecyclerViewBinding.inflate(layoutInflater, parent, false)
|
||||
parent.addView(binding.root)
|
||||
setupRecyclerView()
|
||||
}
|
||||
|
||||
@ -27,13 +27,13 @@ class DynamicBottomSheetChooserDialog : BaseBottomSheetDialogFragment() {
|
||||
}
|
||||
|
||||
private fun getRecyclerViewAdapter(): SimpleListItemAdapter {
|
||||
var adapter = recycler_view.adapter as? SimpleListItemAdapter
|
||||
var adapter = binding.recyclerView.adapter as? SimpleListItemAdapter
|
||||
if (adapter == null) {
|
||||
adapter = SimpleListItemAdapter(requireActivity()) {
|
||||
onItemClick?.invoke(it)
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
recycler_view.adapter = adapter
|
||||
binding.recyclerView.adapter = adapter
|
||||
}
|
||||
return adapter
|
||||
}
|
||||
|
@ -1,24 +1,23 @@
|
||||
package com.simplemobiletools.dialer.dialogs
|
||||
|
||||
import android.view.ViewGroup
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import com.simplemobiletools.commons.extensions.*
|
||||
import com.simplemobiletools.dialer.R
|
||||
import com.simplemobiletools.dialer.activities.SimpleActivity
|
||||
import kotlinx.android.synthetic.main.dialog_export_call_history.view.export_call_history_filename
|
||||
import com.simplemobiletools.dialer.databinding.DialogExportCallHistoryBinding
|
||||
|
||||
class ExportCallHistoryDialog(val activity: SimpleActivity, callback: (filename: String) -> Unit) {
|
||||
|
||||
init {
|
||||
val view = (activity.layoutInflater.inflate(R.layout.dialog_export_call_history, null) as ViewGroup).apply {
|
||||
export_call_history_filename.setText("call_history_${activity.getCurrentFormattedDateTime()}")
|
||||
val binding = DialogExportCallHistoryBinding.inflate(activity.layoutInflater).apply {
|
||||
exportCallHistoryFilename.setText("call_history_${activity.getCurrentFormattedDateTime()}")
|
||||
}
|
||||
|
||||
activity.getAlertDialogBuilder().setPositiveButton(R.string.ok, null).setNegativeButton(R.string.cancel, null).apply {
|
||||
activity.setupDialogStuff(view, this, R.string.export_call_history) { alertDialog ->
|
||||
activity.setupDialogStuff(binding.root, this, R.string.export_call_history) { alertDialog ->
|
||||
alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener {
|
||||
|
||||
val filename = view.export_call_history_filename.value
|
||||
val filename = binding.exportCallHistoryFilename.value
|
||||
when {
|
||||
filename.isEmpty() -> activity.toast(R.string.empty_name)
|
||||
filename.isAValidFilename() -> {
|
||||
|
@ -1,31 +1,30 @@
|
||||
package com.simplemobiletools.dialer.dialogs
|
||||
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import com.simplemobiletools.commons.extensions.getAlertDialogBuilder
|
||||
import com.simplemobiletools.commons.extensions.getMyContactsCursor
|
||||
import com.simplemobiletools.commons.extensions.setupDialogStuff
|
||||
import com.simplemobiletools.commons.helpers.SMT_PRIVATE
|
||||
import com.simplemobiletools.commons.extensions.getVisibleContactSources
|
||||
import com.simplemobiletools.commons.extensions.*
|
||||
import com.simplemobiletools.commons.helpers.ContactsHelper
|
||||
import com.simplemobiletools.commons.helpers.MyContactsContentProvider
|
||||
import com.simplemobiletools.commons.models.contacts.*
|
||||
import com.simplemobiletools.commons.helpers.SMT_PRIVATE
|
||||
import com.simplemobiletools.commons.models.contacts.Contact
|
||||
import com.simplemobiletools.commons.models.contacts.ContactSource
|
||||
import com.simplemobiletools.dialer.R
|
||||
import com.simplemobiletools.dialer.activities.SimpleActivity
|
||||
import com.simplemobiletools.dialer.adapters.FilterContactSourcesAdapter
|
||||
import com.simplemobiletools.dialer.databinding.DialogFilterContactSourcesBinding
|
||||
import com.simplemobiletools.dialer.extensions.config
|
||||
import kotlinx.android.synthetic.main.dialog_filter_contact_sources.view.*
|
||||
|
||||
class FilterContactSourcesDialog(val activity: SimpleActivity, private val callback: () -> Unit) {
|
||||
private val binding by activity.viewBinding(DialogFilterContactSourcesBinding::inflate)
|
||||
|
||||
private var dialog: AlertDialog? = null
|
||||
private val view = activity.layoutInflater.inflate(R.layout.dialog_filter_contact_sources, null)
|
||||
private var contactSources = ArrayList<ContactSource>()
|
||||
private var contacts = ArrayList<Contact>()
|
||||
private var isContactSourcesReady = false
|
||||
private var isContactsReady = false
|
||||
|
||||
init {
|
||||
val contactHelper = ContactsHelper(activity)
|
||||
contactHelper.getContactSources { contactSources ->
|
||||
val contactHelper = ContactsHelper(activity)
|
||||
contactHelper.getContactSources { contactSources ->
|
||||
contactSources.mapTo(this@FilterContactSourcesDialog.contactSources) { it.copy() }
|
||||
isContactSourcesReady = true
|
||||
processDataIfReady()
|
||||
@ -61,14 +60,14 @@ class FilterContactSourcesDialog(val activity: SimpleActivity, private val callb
|
||||
|
||||
activity.runOnUiThread {
|
||||
val selectedSources = activity.getVisibleContactSources()
|
||||
view.filter_contact_sources_list.adapter = FilterContactSourcesAdapter(activity, contactSourcesWithCount, selectedSources)
|
||||
binding.filterContactSourcesList.adapter = FilterContactSourcesAdapter(activity, contactSourcesWithCount, selectedSources)
|
||||
|
||||
if (dialog == null) {
|
||||
activity.getAlertDialogBuilder()
|
||||
.setPositiveButton(R.string.ok) { dialogInterface, i -> confirmContactSources() }
|
||||
.setNegativeButton(R.string.cancel, null)
|
||||
.apply {
|
||||
activity.setupDialogStuff(view, this) { alertDialog ->
|
||||
activity.setupDialogStuff(binding.root, this) { alertDialog ->
|
||||
dialog = alertDialog
|
||||
}
|
||||
}
|
||||
@ -77,7 +76,7 @@ class FilterContactSourcesDialog(val activity: SimpleActivity, private val callb
|
||||
}
|
||||
|
||||
private fun confirmContactSources() {
|
||||
val selectedContactSources = (view.filter_contact_sources_list.adapter as FilterContactSourcesAdapter).getSelectedContactSources()
|
||||
val selectedContactSources = (binding.filterContactSourcesList.adapter as FilterContactSourcesAdapter).getSelectedContactSources()
|
||||
val ignoredContactSources = contactSources.filter { !selectedContactSources.contains(it) }.map {
|
||||
if (it.type == SMT_PRIVATE) SMT_PRIVATE else it.getFullIdentifier()
|
||||
}.toHashSet()
|
||||
|
@ -3,16 +3,18 @@ package com.simplemobiletools.dialer.dialogs
|
||||
import com.simplemobiletools.commons.activities.BaseSimpleActivity
|
||||
import com.simplemobiletools.commons.extensions.getAlertDialogBuilder
|
||||
import com.simplemobiletools.commons.extensions.setupDialogStuff
|
||||
import com.simplemobiletools.commons.extensions.viewBinding
|
||||
import com.simplemobiletools.commons.helpers.TAB_CALL_HISTORY
|
||||
import com.simplemobiletools.commons.helpers.TAB_CONTACTS
|
||||
import com.simplemobiletools.commons.helpers.TAB_FAVORITES
|
||||
import com.simplemobiletools.commons.views.MyAppCompatCheckbox
|
||||
import com.simplemobiletools.dialer.R
|
||||
import com.simplemobiletools.dialer.databinding.DialogManageVisibleTabsBinding
|
||||
import com.simplemobiletools.dialer.extensions.config
|
||||
import com.simplemobiletools.dialer.helpers.ALL_TABS_MASK
|
||||
|
||||
class ManageVisibleTabsDialog(val activity: BaseSimpleActivity) {
|
||||
private var view = activity.layoutInflater.inflate(R.layout.dialog_manage_visible_tabs, null)
|
||||
private val binding by activity.viewBinding(DialogManageVisibleTabsBinding::inflate)
|
||||
private val tabs = LinkedHashMap<Int, Int>()
|
||||
|
||||
init {
|
||||
@ -24,21 +26,21 @@ class ManageVisibleTabsDialog(val activity: BaseSimpleActivity) {
|
||||
|
||||
val showTabs = activity.config.showTabs
|
||||
for ((key, value) in tabs) {
|
||||
view.findViewById<MyAppCompatCheckbox>(value).isChecked = showTabs and key != 0
|
||||
binding.root.findViewById<MyAppCompatCheckbox>(value).isChecked = showTabs and key != 0
|
||||
}
|
||||
|
||||
activity.getAlertDialogBuilder()
|
||||
.setPositiveButton(R.string.ok) { dialog, which -> dialogConfirmed() }
|
||||
.setNegativeButton(R.string.cancel, null)
|
||||
.apply {
|
||||
activity.setupDialogStuff(view, this)
|
||||
activity.setupDialogStuff(binding.root, this)
|
||||
}
|
||||
}
|
||||
|
||||
private fun dialogConfirmed() {
|
||||
var result = 0
|
||||
for ((key, value) in tabs) {
|
||||
if (view.findViewById<MyAppCompatCheckbox>(value).isChecked) {
|
||||
if (binding.root.findViewById<MyAppCompatCheckbox>(value).isChecked) {
|
||||
result += key
|
||||
}
|
||||
}
|
||||
|
@ -2,9 +2,7 @@ package com.simplemobiletools.dialer.dialogs
|
||||
|
||||
import android.graphics.Color
|
||||
import android.view.KeyEvent
|
||||
import android.view.View
|
||||
import android.view.inputmethod.EditorInfo
|
||||
import android.widget.EditText
|
||||
import android.widget.ImageView
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import com.reddit.indicatorfastscroll.FastScrollItemIndicator
|
||||
@ -14,27 +12,25 @@ import com.simplemobiletools.commons.views.MySearchMenu
|
||||
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 com.simplemobiletools.dialer.databinding.DialogSelectContactBinding
|
||||
import java.util.Locale
|
||||
|
||||
class SelectContactDialog(val activity: SimpleActivity, val contacts: List<Contact>, val callback: (selectedContact: Contact) -> Unit) {
|
||||
private val binding by activity.viewBinding(DialogSelectContactBinding::inflate)
|
||||
|
||||
private var dialog: AlertDialog? = null
|
||||
private var view = activity.layoutInflater.inflate(R.layout.dialog_select_contact, null)
|
||||
private val searchView = view.contact_search_view
|
||||
private val searchEditText = view.findViewById<EditText>(R.id.top_toolbar_search)
|
||||
private val searchViewAppBarLayout = view.findViewById<View>(R.id.top_app_bar_layout)
|
||||
|
||||
init {
|
||||
view.apply {
|
||||
letter_fastscroller.textColor = context.getProperTextColor().getColorStateList()
|
||||
letter_fastscroller_thumb.setupWithFastScroller(letter_fastscroller)
|
||||
letter_fastscroller_thumb.textColor = context.getProperPrimaryColor().getContrastColor()
|
||||
letter_fastscroller_thumb.thumbColor = context.getProperPrimaryColor().getColorStateList()
|
||||
binding.apply {
|
||||
letterFastscroller.textColor = activity.getProperTextColor().getColorStateList()
|
||||
letterFastscrollerThumb.setupWithFastScroller(letterFastscroller)
|
||||
letterFastscrollerThumb.textColor = activity.getProperPrimaryColor().getContrastColor()
|
||||
letterFastscrollerThumb.thumbColor = activity.getProperPrimaryColor().getColorStateList()
|
||||
|
||||
setupLetterFastScroller(contacts)
|
||||
configureSearchView()
|
||||
|
||||
select_contact_list.adapter = ContactsAdapter(activity, contacts.toMutableList(), select_contact_list, allowLongClick = false) {
|
||||
selectContactList.adapter = ContactsAdapter(activity, contacts.toMutableList(), selectContactList, allowLongClick = false) {
|
||||
callback(it as Contact)
|
||||
dialog?.dismiss()
|
||||
}
|
||||
@ -49,14 +45,14 @@ class SelectContactDialog(val activity: SimpleActivity, val contacts: List<Conta
|
||||
true
|
||||
}
|
||||
.apply {
|
||||
activity.setupDialogStuff(view, this, R.string.choose_contact) { alertDialog ->
|
||||
activity.setupDialogStuff(binding.root, this, R.string.choose_contact) { alertDialog ->
|
||||
dialog = alertDialog
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun setupLetterFastScroller(contacts: List<Contact>) {
|
||||
view.letter_fastscroller.setupWithRecyclerView(view.select_contact_list, { position ->
|
||||
binding.letterFastscroller.setupWithRecyclerView(binding.selectContactList, { position ->
|
||||
try {
|
||||
val name = contacts[position].getNameToDisplay()
|
||||
val character = if (name.isNotEmpty()) name.substring(0, 1) else ""
|
||||
@ -67,9 +63,9 @@ class SelectContactDialog(val activity: SimpleActivity, val contacts: List<Conta
|
||||
})
|
||||
}
|
||||
|
||||
private fun configureSearchView() = with(searchView) {
|
||||
private fun configureSearchView() = with(binding.contactSearchView) {
|
||||
updateHintText(context.getString(R.string.search_contacts))
|
||||
searchEditText.imeOptions = EditorInfo.IME_ACTION_DONE
|
||||
binding.topToolbarSearch.imeOptions = EditorInfo.IME_ACTION_DONE
|
||||
|
||||
toggleHideOnScroll(true)
|
||||
setupMenu()
|
||||
@ -81,7 +77,7 @@ class SelectContactDialog(val activity: SimpleActivity, val contacts: List<Conta
|
||||
getToolbar().beInvisible()
|
||||
updateColors()
|
||||
setBackgroundColor(Color.TRANSPARENT)
|
||||
searchViewAppBarLayout.setBackgroundColor(Color.TRANSPARENT)
|
||||
binding.topAppBarLayout.setBackgroundColor(Color.TRANSPARENT)
|
||||
}
|
||||
|
||||
private fun MySearchMenu.setSearchViewListeners() {
|
||||
@ -89,8 +85,8 @@ class SelectContactDialog(val activity: SimpleActivity, val contacts: List<Conta
|
||||
updateSearchViewLeftIcon(R.drawable.ic_cross_vector)
|
||||
}
|
||||
onSearchClosedListener = {
|
||||
searchEditText.clearFocus()
|
||||
activity.hideKeyboard(searchEditText)
|
||||
binding.topToolbarSearch.clearFocus()
|
||||
activity.hideKeyboard(binding.topToolbarSearch)
|
||||
updateSearchViewLeftIcon(R.drawable.ic_search_vector)
|
||||
}
|
||||
|
||||
@ -99,14 +95,14 @@ class SelectContactDialog(val activity: SimpleActivity, val contacts: List<Conta
|
||||
}
|
||||
}
|
||||
|
||||
private fun updateSearchViewLeftIcon(iconResId: Int) = with(view.findViewById<ImageView>(R.id.top_toolbar_search_icon)) {
|
||||
private fun updateSearchViewLeftIcon(iconResId: Int) = with(binding.root.findViewById<ImageView>(R.id.top_toolbar_search_icon)) {
|
||||
post {
|
||||
setImageResource(iconResId)
|
||||
}
|
||||
}
|
||||
|
||||
private fun filterContactListBySearchQuery(query: String) {
|
||||
val adapter = view.select_contact_list.adapter as? ContactsAdapter
|
||||
val adapter = binding.selectContactList.adapter as? ContactsAdapter
|
||||
var contactsToShow = contacts
|
||||
if (query.isNotEmpty()) {
|
||||
contactsToShow = contacts.filter { it.name.contains(query, true) }
|
||||
@ -117,7 +113,7 @@ class SelectContactDialog(val activity: SimpleActivity, val contacts: List<Conta
|
||||
adapter?.updateItems(contactsToShow)
|
||||
setupLetterFastScroller(contactsToShow)
|
||||
|
||||
view.select_contact_list.apply {
|
||||
binding.selectContactList.apply {
|
||||
post {
|
||||
scrollToPosition(0)
|
||||
}
|
||||
@ -125,20 +121,20 @@ class SelectContactDialog(val activity: SimpleActivity, val contacts: List<Conta
|
||||
}
|
||||
}
|
||||
|
||||
private fun checkPlaceholderVisibility(contacts: List<Contact>) = with(view) {
|
||||
contacts_empty_placeholder.beVisibleIf(contacts.isEmpty())
|
||||
private fun checkPlaceholderVisibility(contacts: List<Contact>) = with(binding) {
|
||||
contactsEmptyPlaceholder.beVisibleIf(contacts.isEmpty())
|
||||
|
||||
if (contact_search_view.isSearchOpen) {
|
||||
contacts_empty_placeholder.text = context.getString(R.string.no_items_found)
|
||||
if (contactSearchView.isSearchOpen) {
|
||||
contactsEmptyPlaceholder.text = activity.getString(R.string.no_items_found)
|
||||
}
|
||||
|
||||
letter_fastscroller.beVisibleIf(contacts_empty_placeholder.isGone())
|
||||
letter_fastscroller_thumb.beVisibleIf(contacts_empty_placeholder.isGone())
|
||||
letterFastscroller.beVisibleIf(contactsEmptyPlaceholder.isGone())
|
||||
letterFastscrollerThumb.beVisibleIf(contactsEmptyPlaceholder.isGone())
|
||||
}
|
||||
|
||||
private fun backPressed() {
|
||||
if (searchView.isSearchOpen) {
|
||||
searchView.closeSearch()
|
||||
if (binding.contactSearchView.isSearchOpen) {
|
||||
binding.contactSearchView.closeSearch()
|
||||
} else {
|
||||
dialog?.dismiss()
|
||||
}
|
||||
|
@ -9,10 +9,11 @@ import androidx.appcompat.app.AlertDialog
|
||||
import com.simplemobiletools.commons.activities.BaseSimpleActivity
|
||||
import com.simplemobiletools.commons.extensions.getAlertDialogBuilder
|
||||
import com.simplemobiletools.commons.extensions.setupDialogStuff
|
||||
import com.simplemobiletools.commons.extensions.viewBinding
|
||||
import com.simplemobiletools.dialer.R
|
||||
import com.simplemobiletools.dialer.databinding.DialogSelectSimBinding
|
||||
import com.simplemobiletools.dialer.extensions.config
|
||||
import com.simplemobiletools.dialer.extensions.getAvailableSIMCardLabels
|
||||
import kotlinx.android.synthetic.main.dialog_select_sim.view.*
|
||||
|
||||
@SuppressLint("MissingPermission")
|
||||
class SelectSIMDialog(
|
||||
@ -22,14 +23,11 @@ class SelectSIMDialog(
|
||||
val callback: (handle: PhoneAccountHandle?) -> Unit
|
||||
) {
|
||||
private var dialog: AlertDialog? = null
|
||||
private val view = activity.layoutInflater.inflate(R.layout.dialog_select_sim, null)
|
||||
private val binding by activity.viewBinding(DialogSelectSimBinding::inflate)
|
||||
|
||||
init {
|
||||
val radioGroup = view.select_sim_radio_group
|
||||
view.apply {
|
||||
select_sim_remember_holder.setOnClickListener {
|
||||
select_sim_remember.toggle()
|
||||
}
|
||||
binding.selectSimRememberHolder.setOnClickListener {
|
||||
binding.selectSimRemember.toggle()
|
||||
}
|
||||
|
||||
activity.getAvailableSIMCardLabels().forEachIndexed { index, SIMAccount ->
|
||||
@ -38,12 +36,12 @@ class SelectSIMDialog(
|
||||
id = index
|
||||
setOnClickListener { selectedSIM(SIMAccount.handle) }
|
||||
}
|
||||
radioGroup!!.addView(radioButton, RadioGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT))
|
||||
binding.selectSimRadioGroup.addView(radioButton, RadioGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT))
|
||||
}
|
||||
|
||||
activity.getAlertDialogBuilder()
|
||||
.apply {
|
||||
activity.setupDialogStuff(view, this) { alertDialog ->
|
||||
activity.setupDialogStuff(binding.root, this) { alertDialog ->
|
||||
dialog = alertDialog
|
||||
}
|
||||
}
|
||||
@ -54,7 +52,7 @@ class SelectSIMDialog(
|
||||
}
|
||||
|
||||
private fun selectedSIM(handle: PhoneAccountHandle) {
|
||||
if (view.select_sim_remember.isChecked) {
|
||||
if (binding.selectSimRemember.isChecked) {
|
||||
activity.config.saveCustomSIM(phoneNumber, handle)
|
||||
}
|
||||
|
||||
|
@ -4,33 +4,31 @@ import androidx.appcompat.app.AlertDialog
|
||||
import com.simplemobiletools.commons.activities.BaseSimpleActivity
|
||||
import com.simplemobiletools.commons.extensions.getAlertDialogBuilder
|
||||
import com.simplemobiletools.commons.extensions.setupDialogStuff
|
||||
import com.simplemobiletools.dialer.R
|
||||
import com.simplemobiletools.commons.extensions.viewBinding
|
||||
import com.simplemobiletools.dialer.activities.SimpleActivity
|
||||
import com.simplemobiletools.dialer.adapters.RecentCallsAdapter
|
||||
import com.simplemobiletools.dialer.databinding.DialogShowGroupedCallsBinding
|
||||
import com.simplemobiletools.dialer.helpers.RecentsHelper
|
||||
import com.simplemobiletools.dialer.models.RecentCall
|
||||
import kotlinx.android.synthetic.main.dialog_show_grouped_calls.view.*
|
||||
|
||||
class ShowGroupedCallsDialog(val activity: BaseSimpleActivity, callIds: ArrayList<Int>) {
|
||||
private var dialog: AlertDialog? = null
|
||||
private var view = activity.layoutInflater.inflate(R.layout.dialog_show_grouped_calls, null)
|
||||
private val binding by activity.viewBinding(DialogShowGroupedCallsBinding::inflate)
|
||||
|
||||
init {
|
||||
view.apply {
|
||||
RecentsHelper(activity).getRecentCalls(false) { allRecents ->
|
||||
val recents = allRecents.filter { callIds.contains(it.id) }.toMutableList() as ArrayList<RecentCall>
|
||||
activity.runOnUiThread {
|
||||
RecentCallsAdapter(activity as SimpleActivity, recents, select_grouped_calls_list, null, false) {
|
||||
}.apply {
|
||||
select_grouped_calls_list.adapter = this
|
||||
}
|
||||
RecentsHelper(activity).getRecentCalls(false) { allRecents ->
|
||||
val recents = allRecents.filter { callIds.contains(it.id) }.toMutableList() as ArrayList<RecentCall>
|
||||
activity.runOnUiThread {
|
||||
RecentCallsAdapter(activity as SimpleActivity, recents, binding.selectGroupedCallsList, null, false) {
|
||||
}.apply {
|
||||
binding.selectGroupedCallsList.adapter = this
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
activity.getAlertDialogBuilder()
|
||||
.apply {
|
||||
activity.setupDialogStuff(view, this) { alertDialog ->
|
||||
activity.setupDialogStuff(binding.root, this) { alertDialog ->
|
||||
dialog = alertDialog
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user