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)
|
object CollectionHeader : AdapterItem(CollectionHeaderViewHolder.LAYOUT_ID)
|
||||||
data class CollectionItem(
|
data class CollectionItem(
|
||||||
val collection: TabCollection,
|
val collection: TabCollection,
|
||||||
val expanded: Boolean
|
val expanded: Boolean,
|
||||||
|
val sessionHasOpenTabs: Boolean
|
||||||
) : AdapterItem(CollectionViewHolder.LAYOUT_ID) {
|
) : AdapterItem(CollectionViewHolder.LAYOUT_ID) {
|
||||||
override fun sameAs(other: AdapterItem) = other is CollectionItem && collection.id == other.collection.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)
|
holder.bind(icon, header, description)
|
||||||
}
|
}
|
||||||
is CollectionViewHolder -> {
|
is CollectionViewHolder -> {
|
||||||
val (collection, expanded) = item as AdapterItem.CollectionItem
|
val (collection, expanded, sessionHasOpenTabs) = item as AdapterItem.CollectionItem
|
||||||
holder.bindSession(collection, expanded)
|
holder.bindSession(collection, expanded, sessionHasOpenTabs)
|
||||||
}
|
}
|
||||||
is TabInCollectionViewHolder -> {
|
is TabInCollectionViewHolder -> {
|
||||||
val (collection, tab, isLastTab) = item as AdapterItem.TabInCollectionItem
|
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
|
// If the collection is expanded, we want to add all of its tabs beneath it in the adapter
|
||||||
collections.map {
|
collections.map {
|
||||||
AdapterItem.CollectionItem(it, expandedCollections.contains(it.id))
|
AdapterItem.CollectionItem(it, expandedCollections.contains(it.id), tabs.isNotEmpty())
|
||||||
}.forEach {
|
}.forEach {
|
||||||
items.add(it)
|
items.add(it)
|
||||||
if (it.expanded) {
|
if (it.expanded) {
|
||||||
|
|
|
@ -34,10 +34,11 @@ class CollectionViewHolder(
|
||||||
|
|
||||||
private lateinit var collection: TabCollection
|
private lateinit var collection: TabCollection
|
||||||
private var expanded = false
|
private var expanded = false
|
||||||
|
private var sessionHasOpenTabs = false
|
||||||
private var collectionMenu: CollectionItemMenu
|
private var collectionMenu: CollectionItemMenu
|
||||||
|
|
||||||
init {
|
init {
|
||||||
collectionMenu = CollectionItemMenu(view.context) {
|
collectionMenu = CollectionItemMenu(view.context, sessionHasOpenTabs) {
|
||||||
when (it) {
|
when (it) {
|
||||||
is CollectionItemMenu.Item.DeleteCollection -> actionEmitter.onNext(CollectionAction.Delete(collection))
|
is CollectionItemMenu.Item.DeleteCollection -> actionEmitter.onNext(CollectionAction.Delete(collection))
|
||||||
is CollectionItemMenu.Item.AddTab -> actionEmitter.onNext(CollectionAction.AddTab(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.collection = collection
|
||||||
this.expanded = expanded
|
this.expanded = expanded
|
||||||
|
this.sessionHasOpenTabs = sessionHasOpenTabs
|
||||||
|
collectionMenu.sessionHasOpenTabs = sessionHasOpenTabs
|
||||||
updateCollectionUI()
|
updateCollectionUI()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -114,6 +117,7 @@ class CollectionViewHolder(
|
||||||
|
|
||||||
class CollectionItemMenu(
|
class CollectionItemMenu(
|
||||||
private val context: Context,
|
private val context: Context,
|
||||||
|
var sessionHasOpenTabs: Boolean,
|
||||||
private val onItemTapped: (Item) -> Unit = {}
|
private val onItemTapped: (Item) -> Unit = {}
|
||||||
) {
|
) {
|
||||||
sealed class Item {
|
sealed class Item {
|
||||||
|
@ -137,7 +141,7 @@ class CollectionItemMenu(
|
||||||
context.getString(R.string.add_tab)
|
context.getString(R.string.add_tab)
|
||||||
) {
|
) {
|
||||||
onItemTapped.invoke(Item.AddTab)
|
onItemTapped.invoke(Item.AddTab)
|
||||||
},
|
}.apply { visible = { sessionHasOpenTabs } },
|
||||||
SimpleBrowserMenuItem(
|
SimpleBrowserMenuItem(
|
||||||
context.getString(R.string.collection_rename)
|
context.getString(R.string.collection_rename)
|
||||||
) {
|
) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user