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
parent
91bdc22566
commit
da59e36c1b
|
@ -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
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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)
|
||||
) {
|
||||
|
|
Loading…
Reference in New Issue