redraw the contacts list after changing the filters

This commit is contained in:
tibbi 2018-01-15 20:54:37 +01:00
parent 135240564f
commit bd13b59e36
2 changed files with 6 additions and 1 deletions

View File

@ -249,6 +249,7 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
fun showFilterDialog() { fun showFilterDialog() {
FilterContactSourcesDialog(this) { FilterContactSourcesDialog(this) {
contacts_fragment.forceListRedraw = true
contacts_fragment.initContacts() contacts_fragment.initContacts()
} }
} }

View File

@ -26,6 +26,8 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet)
private var contactsIgnoringSearch = ArrayList<Contact>() private var contactsIgnoringSearch = ArrayList<Contact>()
lateinit private var config: Config lateinit private var config: Config
var forceListRedraw = false
fun setupFragment(activity: MainActivity) { fun setupFragment(activity: MainActivity) {
config = activity.config config = activity.config
if (this.activity == null) { if (this.activity == null) {
@ -114,7 +116,8 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet)
fragment_list.beVisibleIf(contacts.isNotEmpty()) fragment_list.beVisibleIf(contacts.isNotEmpty())
val currAdapter = fragment_list.adapter val currAdapter = fragment_list.adapter
if (currAdapter == null) { if (currAdapter == null || forceListRedraw) {
forceListRedraw = false
ContactsAdapter(activity as SimpleActivity, contacts, activity, this is FavoritesFragment, fragment_list, fragment_fastscroller) { ContactsAdapter(activity as SimpleActivity, contacts, activity, this is FavoritesFragment, fragment_list, fragment_fastscroller) {
if (config.callContact) { if (config.callContact) {
val contact = it as Contact val contact = it as Contact
@ -132,6 +135,7 @@ abstract class MyViewPagerFragment(context: Context, attributeSet: AttributeSet)
fragment_list.adapter = this fragment_list.adapter = this
} }
fragment_fastscroller.setScrollTo(0)
fragment_fastscroller.setViews(fragment_list) { fragment_fastscroller.setViews(fragment_list) {
val item = (fragment_list.adapter as ContactsAdapter).contactItems.getOrNull(it) val item = (fragment_list.adapter as ContactsAdapter).contactItems.getOrNull(it)
fragment_fastscroller.updateBubbleText(item?.getBubbleText() ?: "") fragment_fastscroller.updateBubbleText(item?.getBubbleText() ?: "")