|
|
@ -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
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|