Commit d989616f authored by David Walsh's avatar David Walsh Committed by Emily Kager
Browse files

Add top sites heading to home screen

parent 76f15a1f
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import org.mozilla.fenix.home.sessioncontrol.viewholders.PrivateBrowsingDescript
import org.mozilla.fenix.home.sessioncontrol.viewholders.SaveTabGroupViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.TabHeaderViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.TabViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.TopSiteHeaderViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.TopSiteViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.onboarding.OnboardingAutomaticSignInViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.onboarding.OnboardingFinishViewHolder
@@ -70,6 +71,7 @@ sealed class AdapterItem(@LayoutRes val viewType: Int) {
        }
    }

    object TopSiteHeader : AdapterItem(TopSiteHeaderViewHolder.LAYOUT_ID)
    data class TopSiteList(val topSites: List<TopSite>) : AdapterItem(TopSiteViewHolder.LAYOUT_ID)

    object SaveTabGroup : AdapterItem(SaveTabGroupViewHolder.LAYOUT_ID)
@@ -163,6 +165,7 @@ class SessionControlAdapter(
        val view = LayoutInflater.from(parent.context).inflate(viewType, parent, false)
        return when (viewType) {
            TabHeaderViewHolder.LAYOUT_ID -> TabHeaderViewHolder(view, interactor)
            TopSiteHeaderViewHolder.LAYOUT_ID -> TopSiteHeaderViewHolder(view)
            TabViewHolder.LAYOUT_ID -> TabViewHolder(view, interactor)
            TopSiteViewHolder.LAYOUT_ID -> TopSiteViewHolder(view, interactor)
            SaveTabGroupViewHolder.LAYOUT_ID -> SaveTabGroupViewHolder(view, interactor)
+1 −0
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ private fun normalModeAdapterItems(
    val items = mutableListOf<AdapterItem>()

    if (topSites.isNotEmpty()) {
        items.add(AdapterItem.TopSiteHeader)
        items.add(AdapterItem.TopSiteList(topSites))
    }

+15 −0
Original line number Diff line number Diff line
/* 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.sessioncontrol.viewholders

import android.view.View
import androidx.recyclerview.widget.RecyclerView
import org.mozilla.fenix.R

class TopSiteHeaderViewHolder(private val view: View) : RecyclerView.ViewHolder(view) {
    companion object {
        const val LAYOUT_ID = R.layout.top_sites_header
    }
}
+0 −1
Original line number Diff line number Diff line
@@ -8,4 +8,3 @@
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    tools:listitem="@layout/top_site_item" />
+18 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/top_site_header"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/home_screen_top_sites_heading"
        android:textAppearance="@style/HeaderTextStyle"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>
Loading