fetch data after dialog is shown

This commit is contained in:
Pavel Poley 2022-05-05 13:57:15 +03:00
parent e5423218eb
commit 3ceb83b355
1 changed files with 18 additions and 18 deletions

View File

@ -22,18 +22,25 @@ class FilterContactSourcesDialog(val activity: SimpleActivity, private val callb
private var isContactsReady = false
init {
dialog = AlertDialog.Builder(activity)
.setPositiveButton(R.string.ok) { dialogInterface, i -> confirmContactSources() }
.setNegativeButton(R.string.cancel, null)
.create().apply {
activity.setupDialogStuff(view, this) {
ContactsHelper(activity).getContactSources { contactSources ->
contactSources.mapTo(this.contactSources) { it.copy() }
contactSources.mapTo(this@FilterContactSourcesDialog.contactSources) { it.copy() }
isContactSourcesReady = true
processDataIfReady()
}
ContactsHelper(activity).getContacts(getAll = true) { contacts ->
contacts.mapTo(this.contacts) { it.copy() }
contacts.mapTo(this@FilterContactSourcesDialog.contacts) { it.copy() }
isContactsReady = true
processDataIfReady()
}
}
}
}
private fun processDataIfReady() {
if (!isContactSourcesReady || !isContactsReady) {
@ -49,16 +56,9 @@ class FilterContactSourcesDialog(val activity: SimpleActivity, private val callb
contactSources.clear()
contactSources.addAll(contactSourcesWithCount)
val selectedSources = activity.getVisibleContactSources()
activity.runOnUiThread {
val selectedSources = activity.getVisibleContactSources()
view.filter_contact_sources_list.adapter = FilterContactSourcesAdapter(activity, contactSourcesWithCount, selectedSources)
dialog = AlertDialog.Builder(activity)
.setPositiveButton(R.string.ok) { dialogInterface, i -> confirmContactSources() }
.setNegativeButton(R.string.cancel, null)
.create().apply {
activity.setupDialogStuff(view, this)
}
}
}