1
0
Fork 0

Fixes #4410: Modified visibility of 'Add Tab' button.

I changed the visibility of 'Add Tab' button according to the number of
opened tabs. If there is at least one tab open, the button is displayed.
master
ValentinTimisica 2019-08-01 14:29:08 +03:00 committed by Emily Kager
parent 91bdc22566
commit da59e36c1b
3 changed files with 12 additions and 7 deletions

View File

@ -50,7 +50,8 @@ sealed class AdapterItem(@LayoutRes val viewType: Int) {
object CollectionHeader : AdapterItem(CollectionHeaderViewHolder.LAYOUT_ID)
data class CollectionItem(
val collection: TabCollection,
val expanded: Boolean
val expanded: Boolean,
val sessionHasOpenTabs: Boolean
) : AdapterItem(CollectionViewHolder.LAYOUT_ID) {
override fun sameAs(other: AdapterItem) = other is CollectionItem && collection.id == other.collection.id
}
@ -140,8 +141,8 @@ class SessionControlAdapter(
holder.bind(icon, header, description)
}
is CollectionViewHolder -> {
val (collection, expanded) = item as AdapterItem.CollectionItem
holder.bindSession(collection, expanded)
val (collection, expanded, sessionHasOpenTabs) = item as AdapterItem.CollectionItem
holder.bindSession(collection, expanded, sessionHasOpenTabs)
}
is TabInCollectionViewHolder -> {
val (collection, tab, isLastTab) = item as AdapterItem.TabInCollectionItem

View File

@ -47,7 +47,7 @@ private fun normalModeAdapterItems(
// If the collection is expanded, we want to add all of its tabs beneath it in the adapter
collections.map {
AdapterItem.CollectionItem(it, expandedCollections.contains(it.id))
AdapterItem.CollectionItem(it, expandedCollections.contains(it.id), tabs.isNotEmpty())
}.forEach {
items.add(it)
if (it.expanded) {

View File

@ -34,10 +34,11 @@ class CollectionViewHolder(
private lateinit var collection: TabCollection
private var expanded = false
private var sessionHasOpenTabs = false
private var collectionMenu: CollectionItemMenu
init {
collectionMenu = CollectionItemMenu(view.context) {
collectionMenu = CollectionItemMenu(view.context, sessionHasOpenTabs) {
when (it) {
is CollectionItemMenu.Item.DeleteCollection -> actionEmitter.onNext(CollectionAction.Delete(collection))
is CollectionItemMenu.Item.AddTab -> actionEmitter.onNext(CollectionAction.AddTab(collection))
@ -68,9 +69,11 @@ class CollectionViewHolder(
}
}
fun bindSession(collection: TabCollection, expanded: Boolean) {
fun bindSession(collection: TabCollection, expanded: Boolean, sessionHasOpenTabs: Boolean) {
this.collection = collection
this.expanded = expanded
this.sessionHasOpenTabs = sessionHasOpenTabs
collectionMenu.sessionHasOpenTabs = sessionHasOpenTabs
updateCollectionUI()
}
@ -114,6 +117,7 @@ class CollectionViewHolder(
class CollectionItemMenu(
private val context: Context,
var sessionHasOpenTabs: Boolean,
private val onItemTapped: (Item) -> Unit = {}
) {
sealed class Item {
@ -137,7 +141,7 @@ class CollectionItemMenu(
context.getString(R.string.add_tab)
) {
onItemTapped.invoke(Item.AddTab)
},
}.apply { visible = { sessionHasOpenTabs } },
SimpleBrowserMenuItem(
context.getString(R.string.collection_rename)
) {