diff --git a/app/src/main/java/org/mozilla/fenix/home/BottomSpacerViewHolder.kt b/app/src/main/java/org/mozilla/fenix/home/BottomSpacerViewHolder.kt new file mode 100644 index 0000000000..fd1f198d69 --- /dev/null +++ b/app/src/main/java/org/mozilla/fenix/home/BottomSpacerViewHolder.kt @@ -0,0 +1,28 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.fenix.home + +import android.view.View +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.height +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.ComposeView +import androidx.compose.ui.unit.dp +import androidx.recyclerview.widget.RecyclerView +import org.mozilla.fenix.theme.FirefoxTheme + +class BottomSpacerViewHolder(val composeView: ComposeView) : RecyclerView.ViewHolder(composeView) { + init { + composeView.setContent { + FirefoxTheme { + Spacer(modifier = Modifier.height(88.dp)) + } + } + } + + companion object { + val LAYOUT_ID = View.generateViewId() + } +} diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt index 69b7df2f43..6eb654e67d 100644 --- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt +++ b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt @@ -44,6 +44,7 @@ import org.mozilla.fenix.home.sessioncontrol.viewholders.onboarding.OnboardingTh import org.mozilla.fenix.home.sessioncontrol.viewholders.onboarding.OnboardingToolbarPositionPickerViewHolder import org.mozilla.fenix.home.sessioncontrol.viewholders.onboarding.OnboardingTrackingProtectionViewHolder import org.mozilla.fenix.home.tips.ButtonTipViewHolder +import org.mozilla.fenix.home.BottomSpacerViewHolder import org.mozilla.fenix.home.topsites.TopSitePagerViewHolder import mozilla.components.feature.tab.collections.Tab as ComponentTab @@ -168,6 +169,8 @@ sealed class AdapterItem(@LayoutRes val viewType: Int) { object PocketStoriesItem : AdapterItem(PocketStoriesViewHolder.LAYOUT_ID) + object BottomSpacer : AdapterItem(BottomSpacerViewHolder.LAYOUT_ID) + /** * True if this item represents the same value as other. Used by [AdapterItemDiffCallback]. */ @@ -232,6 +235,9 @@ class SessionControlAdapter( interactor = interactor, metrics = components.analytics.metrics ) + BottomSpacerViewHolder.LAYOUT_ID -> return BottomSpacerViewHolder( + composeView = ComposeView(parent.context) + ) } val view = LayoutInflater.from(parent.context).inflate(viewType, parent, false) diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlView.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlView.kt index a471092852..0f5f86c9ab 100644 --- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlView.kt +++ b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlView.kt @@ -93,6 +93,8 @@ internal fun normalModeAdapterItems( items.add(AdapterItem.CustomizeHomeButton) } + items.add(AdapterItem.BottomSpacer) + return items } diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index 0df599f714..ea60d2cd32 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -68,7 +68,6 @@ android:layout_height="match_parent" android:clipChildren="false" android:clipToPadding="false" - android:layout_marginBottom="88dp" android:paddingVertical="16dp" android:scrollbars="none" android:transitionGroup="false" diff --git a/app/src/test/java/org/mozilla/fenix/home/sessioncontrol/SessionControlViewTest.kt b/app/src/test/java/org/mozilla/fenix/home/sessioncontrol/SessionControlViewTest.kt index 4d9a8fb0f4..bccb74584d 100644 --- a/app/src/test/java/org/mozilla/fenix/home/sessioncontrol/SessionControlViewTest.kt +++ b/app/src/test/java/org/mozilla/fenix/home/sessioncontrol/SessionControlViewTest.kt @@ -265,7 +265,7 @@ class SessionControlViewTest { historyMetadata, pocketArticles ) - assertEquals(results.size, 1) + assertEquals(results.size, 2) assertTrue(results[0] is AdapterItem.TopPlaceholderItem) }