For #12947 - Adjust tab selected state on bind
parent
6ea94fd9af
commit
6f5faa332d
|
@ -6,10 +6,12 @@ package org.mozilla.fenix.tabtray
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
|
import android.view.View
|
||||||
import androidx.core.view.isVisible
|
import androidx.core.view.isVisible
|
||||||
import kotlinx.android.synthetic.main.tab_tray_item.view.*
|
import kotlinx.android.synthetic.main.tab_tray_item.view.*
|
||||||
import mozilla.components.browser.tabstray.TabViewHolder
|
import mozilla.components.browser.tabstray.TabViewHolder
|
||||||
import mozilla.components.browser.tabstray.TabsAdapter
|
import mozilla.components.browser.tabstray.TabsAdapter
|
||||||
|
import mozilla.components.concept.tabstray.Tab
|
||||||
import mozilla.components.concept.tabstray.Tabs
|
import mozilla.components.concept.tabstray.Tabs
|
||||||
import mozilla.components.support.images.loader.ImageLoader
|
import mozilla.components.support.images.loader.ImageLoader
|
||||||
import org.mozilla.fenix.R
|
import org.mozilla.fenix.R
|
||||||
|
@ -57,11 +59,8 @@ class FenixTabsAdapter(
|
||||||
onBindViewHolder(holder, position)
|
onBindViewHolder(holder, position)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// Otherwise, item needs to be checked or unchecked
|
|
||||||
val shouldBeChecked =
|
holder.tab?.let { showCheckedIfSelected(it, holder.itemView) }
|
||||||
mode is TabTrayDialogFragmentState.Mode.MultiSelect && selectedItems.contains(holder.tab)
|
|
||||||
holder.itemView.checkmark.isVisible = shouldBeChecked
|
|
||||||
holder.itemView.selected_mask.isVisible = shouldBeChecked
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onBindViewHolder(holder: TabViewHolder, position: Int) {
|
override fun onBindViewHolder(holder: TabViewHolder, position: Int) {
|
||||||
|
@ -70,6 +69,8 @@ class FenixTabsAdapter(
|
||||||
(holder as TabTrayViewHolder).updateAccessibilityRowIndex(holder.itemView, newIndex)
|
(holder as TabTrayViewHolder).updateAccessibilityRowIndex(holder.itemView, newIndex)
|
||||||
|
|
||||||
holder.tab?.let { tab ->
|
holder.tab?.let { tab ->
|
||||||
|
showCheckedIfSelected(tab, holder.itemView)
|
||||||
|
|
||||||
val tabIsPrivate =
|
val tabIsPrivate =
|
||||||
context.components.core.sessionManager.findSessionById(tab.id)?.private == true
|
context.components.core.sessionManager.findSessionById(tab.id)?.private == true
|
||||||
if (!tabIsPrivate) {
|
if (!tabIsPrivate) {
|
||||||
|
@ -97,4 +98,11 @@ class FenixTabsAdapter(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun showCheckedIfSelected(tab: Tab, view: View) {
|
||||||
|
val shouldBeChecked =
|
||||||
|
mode is TabTrayDialogFragmentState.Mode.MultiSelect && selectedItems.contains(tab)
|
||||||
|
view.checkmark.isVisible = shouldBeChecked
|
||||||
|
view.selected_mask.isVisible = shouldBeChecked
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue