|
|
@ -8,16 +8,12 @@ import android.graphics.Outline
|
|
|
|
import android.view.View
|
|
|
|
import android.view.View
|
|
|
|
import android.view.ViewOutlineProvider
|
|
|
|
import android.view.ViewOutlineProvider
|
|
|
|
import androidx.appcompat.content.res.AppCompatResources
|
|
|
|
import androidx.appcompat.content.res.AppCompatResources
|
|
|
|
import androidx.recyclerview.widget.RecyclerView
|
|
|
|
import kotlinx.android.synthetic.main.list_element.*
|
|
|
|
import kotlinx.android.extensions.LayoutContainer
|
|
|
|
|
|
|
|
import kotlinx.android.synthetic.main.list_element.list_element_title
|
|
|
|
|
|
|
|
import kotlinx.android.synthetic.main.list_element.list_item_action_button
|
|
|
|
|
|
|
|
import kotlinx.android.synthetic.main.list_element.list_item_favicon
|
|
|
|
|
|
|
|
import kotlinx.android.synthetic.main.list_element.list_item_url
|
|
|
|
|
|
|
|
import mozilla.components.feature.tab.collections.TabCollection
|
|
|
|
import mozilla.components.feature.tab.collections.TabCollection
|
|
|
|
import mozilla.components.support.ktx.android.content.getColorFromAttr
|
|
|
|
import mozilla.components.support.ktx.android.content.getColorFromAttr
|
|
|
|
import mozilla.components.support.ktx.android.util.dpToFloat
|
|
|
|
import mozilla.components.support.ktx.android.util.dpToFloat
|
|
|
|
import org.mozilla.fenix.R
|
|
|
|
import org.mozilla.fenix.R
|
|
|
|
|
|
|
|
import org.mozilla.fenix.ext.ViewHolder
|
|
|
|
import org.mozilla.fenix.ext.components
|
|
|
|
import org.mozilla.fenix.ext.components
|
|
|
|
import org.mozilla.fenix.ext.increaseTapArea
|
|
|
|
import org.mozilla.fenix.ext.increaseTapArea
|
|
|
|
import org.mozilla.fenix.ext.loadIntoView
|
|
|
|
import org.mozilla.fenix.ext.loadIntoView
|
|
|
@ -26,11 +22,10 @@ import org.mozilla.fenix.home.sessioncontrol.CollectionInteractor
|
|
|
|
import mozilla.components.feature.tab.collections.Tab as ComponentTab
|
|
|
|
import mozilla.components.feature.tab.collections.Tab as ComponentTab
|
|
|
|
|
|
|
|
|
|
|
|
class TabInCollectionViewHolder(
|
|
|
|
class TabInCollectionViewHolder(
|
|
|
|
val view: View,
|
|
|
|
view: View,
|
|
|
|
val interactor: CollectionInteractor,
|
|
|
|
val interactor: CollectionInteractor,
|
|
|
|
private val differentLastItem: Boolean = false,
|
|
|
|
private val differentLastItem: Boolean = false
|
|
|
|
override val containerView: View? = view
|
|
|
|
) : ViewHolder(view) {
|
|
|
|
) : RecyclerView.ViewHolder(view), LayoutContainer {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lateinit var collection: TabCollection
|
|
|
|
lateinit var collection: TabCollection
|
|
|
|
private set
|
|
|
|
private set
|
|
|
@ -52,7 +47,7 @@ class TabInCollectionViewHolder(
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
view.setOnClickListener {
|
|
|
|
itemView.setOnClickListener {
|
|
|
|
interactor.onCollectionOpenTabClicked(tab)
|
|
|
|
interactor.onCollectionOpenTabClicked(tab)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -70,16 +65,17 @@ class TabInCollectionViewHolder(
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private fun updateTabUI() {
|
|
|
|
private fun updateTabUI() {
|
|
|
|
list_item_url.text = tab.url.toShortUrl(view.context.components.publicSuffixList)
|
|
|
|
val context = itemView.context
|
|
|
|
|
|
|
|
list_item_url.text = tab.url.toShortUrl(context.components.publicSuffixList)
|
|
|
|
|
|
|
|
|
|
|
|
list_element_title.text = tab.title
|
|
|
|
list_element_title.text = tab.title
|
|
|
|
list_item_favicon.context.components.core.icons.loadIntoView(list_item_favicon, tab.url)
|
|
|
|
list_item_favicon.context.components.core.icons.loadIntoView(list_item_favicon, tab.url)
|
|
|
|
|
|
|
|
|
|
|
|
// If last item and we want to change UI for it
|
|
|
|
// If last item and we want to change UI for it
|
|
|
|
if (isLastItem && differentLastItem) {
|
|
|
|
if (isLastItem && differentLastItem) {
|
|
|
|
view.background = AppCompatResources.getDrawable(view.context, R.drawable.rounded_bottom_corners)
|
|
|
|
itemView.background = AppCompatResources.getDrawable(context, R.drawable.rounded_bottom_corners)
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
view.setBackgroundColor(view.context.getColorFromAttr(R.attr.above))
|
|
|
|
itemView.setBackgroundColor(context.getColorFromAttr(R.attr.above))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|