Remove settings argument and corresponding long args suppression: instead get settings from parent AbstractBrowserTrayList's context

drag-tabs
Steven Knipe 3 years ago
parent 0a5a60fae7
commit f3bfca7218

@ -31,7 +31,6 @@ import org.mozilla.fenix.ext.components
import org.mozilla.fenix.ext.increaseTapArea
import org.mozilla.fenix.ext.removeAndDisable
import org.mozilla.fenix.ext.removeTouchDelegate
import org.mozilla.fenix.utils.Settings
import org.mozilla.fenix.ext.showAndEnable
import org.mozilla.fenix.ext.toShortUrl
import org.mozilla.fenix.selection.SelectionHolder
@ -57,7 +56,6 @@ abstract class AbstractBrowserTabViewHolder(
private val selectionHolder: SelectionHolder<TabSessionState>?,
@VisibleForTesting
internal val featureName: String,
private val settings: Settings?,
private val store: BrowserStore = itemView.context.components.core.store,
private val metrics: MetricController = itemView.context.components.analytics.metrics,
) : TabViewHolder(itemView) {
@ -224,15 +222,15 @@ abstract class AbstractBrowserTabViewHolder(
metrics.track(Event.CollectionTabLongPressed)
interactor.select(item)
true
} else if (holder.selectedItems.contains(item) && settings?.searchTermTabGroupsAreEnabled == false) {
// Only allow a drag to start if the tab is a non-grouped tab (parent is normal list)
// Non-grouped tabs can be selected, but they can't be drop targets
// so it's useless to try to move them (and they're auto-sorted anyway)
val shadow = View.DragShadowBuilder(itemView)
@Suppress("DEPRECATION")
itemView.startDrag(null, shadow, item, 0)
// startDragAndDrop is the non-deprecated version, but requires API 24
true
} else if (holder.selectedItems.contains(item)) {
val parent = itemView.parent as? AbstractBrowserTrayList
if (parent?.context?.settings()?.searchTermTabGroupsAreEnabled == false) {
val shadow = View.DragShadowBuilder(itemView)
@Suppress("DEPRECATION")
itemView.startDrag(null, shadow, item, 0)
// startDragAndDrop is the non-deprecated version, but requires API 24
true
} else false
} else {
false
}

@ -16,7 +16,6 @@ import mozilla.components.concept.base.images.ImageLoader
import org.mozilla.fenix.R
import org.mozilla.fenix.databinding.TabTrayGridItemBinding
import org.mozilla.fenix.ext.increaseTapArea
import org.mozilla.fenix.utils.Settings
import kotlin.math.max
import org.mozilla.fenix.selection.SelectionHolder
import org.mozilla.fenix.tabstray.TabsTrayStore
@ -33,7 +32,6 @@ sealed class BrowserTabViewHolder(itemView: View) : RecyclerView.ViewHolder(item
* @param itemView [View] that displays a "tab".
* @param featureName [String] representing the name of the feature displaying tabs. Used in telemetry reporting.
*/
@Suppress("LongParameterList")
class GridViewHolder(
imageLoader: ImageLoader,
override val browserTrayInteractor: BrowserTrayInteractor,
@ -41,8 +39,7 @@ sealed class BrowserTabViewHolder(itemView: View) : RecyclerView.ViewHolder(item
selectionHolder: SelectionHolder<TabSessionState>? = null,
itemView: View,
featureName: String,
settings: Settings? = null
) : AbstractBrowserTabViewHolder(itemView, imageLoader, store, selectionHolder, featureName, settings) {
) : AbstractBrowserTabViewHolder(itemView, imageLoader, store, selectionHolder, featureName) {
private val closeButton: AppCompatImageButton = itemView.findViewById(R.id.mozac_browser_tabstray_close)
@ -89,16 +86,14 @@ sealed class BrowserTabViewHolder(itemView: View) : RecyclerView.ViewHolder(item
* @param itemView [View] that displays a "tab".
* @param featureName [String] representing the name of the feature displaying tabs. Used in telemetry reporting.
*/
@Suppress("LongParameterList")
class ListViewHolder(
imageLoader: ImageLoader,
override val browserTrayInteractor: BrowserTrayInteractor,
store: TabsTrayStore,
selectionHolder: SelectionHolder<TabSessionState>? = null,
itemView: View,
featureName: String,
settings: Settings? = null
) : AbstractBrowserTabViewHolder(itemView, imageLoader, store, selectionHolder, featureName, settings) {
featureName: String
) : AbstractBrowserTabViewHolder(itemView, imageLoader, store, selectionHolder, featureName) {
override val thumbnailSize: Int
get() = max(
itemView.resources.getDimensionPixelSize(R.dimen.tab_tray_list_item_thumbnail_height),

@ -68,11 +68,9 @@ class BrowserTabsAdapter(
return when (viewType) {
ViewType.GRID.layoutRes ->
BrowserTabViewHolder.GridViewHolder(imageLoader, interactor, store,
selectionHolder, view, featureName, context.settings())
BrowserTabViewHolder.GridViewHolder(imageLoader, interactor, store, selectionHolder, view, featureName)
else ->
BrowserTabViewHolder.ListViewHolder(imageLoader, interactor, store,
selectionHolder, view, featureName, context.settings())
BrowserTabViewHolder.ListViewHolder(imageLoader, interactor, store, selectionHolder, view, featureName)
}
}

Loading…
Cancel
Save