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.
This commit is contained in:
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
Block a user