diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt index cb8f5c973..02e434f4b 100644 --- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt @@ -18,6 +18,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.lifecycleScope import androidx.navigation.NavDirections import androidx.navigation.fragment.findNavController +import kotlinx.android.synthetic.main.component_bookmark.view.* import kotlinx.android.synthetic.main.fragment_bookmark.view.* import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers.IO @@ -57,7 +58,6 @@ class BookmarkFragment : LibraryPageFragment(), UserInteractionHan private lateinit var bookmarkStore: BookmarkFragmentStore private lateinit var bookmarkView: BookmarkView - private lateinit var signInView: SignInView private var _bookmarkInteractor: BookmarkFragmentInteractor? = null protected val bookmarkInteractor: BookmarkFragmentInteractor get() = _bookmarkInteractor!! @@ -97,9 +97,8 @@ class BookmarkFragment : LibraryPageFragment(), UserInteractionHan metrics = metrics!! ) - bookmarkView = BookmarkView(view.bookmarkLayout, bookmarkInteractor) - signInView = SignInView(view.bookmarkLayout, findNavController()) - signInView.view.visibility = View.GONE + bookmarkView = BookmarkView(view.bookmarkLayout, bookmarkInteractor, findNavController()) + bookmarkView.view.bookmark_folders_sign_in.visibility = View.GONE viewLifecycleOwner.lifecycle.addObserver( BookmarkDeselectNavigationListener( @@ -150,9 +149,9 @@ class BookmarkFragment : LibraryPageFragment(), UserInteractionHan if (currentGuid == BookmarkRoot.Root.id && requireComponents.backgroundServices.accountManager.authenticatedAccount() == null ) { - signInView.view.visibility = View.VISIBLE + bookmarkView.view.bookmark_folders_sign_in.visibility = View.VISIBLE } else { - signInView.view.visibility = View.GONE + bookmarkView.view.bookmark_folders_sign_in.visibility = View.GONE } initialJob = loadInitialBookmarkFolder(currentGuid) diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkView.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkView.kt index a6f8cc664..bd8f6ca8d 100644 --- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkView.kt +++ b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkView.kt @@ -8,12 +8,14 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.core.view.isVisible +import androidx.navigation.NavController import kotlinx.android.synthetic.main.component_bookmark.view.* import mozilla.appservices.places.BookmarkRoot import mozilla.components.concept.storage.BookmarkNode import mozilla.components.support.base.feature.UserInteractionHandler import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.R +import org.mozilla.fenix.NavGraphDirections import org.mozilla.fenix.library.LibraryPageView import org.mozilla.fenix.library.SelectionInteractor @@ -95,7 +97,8 @@ interface BookmarkViewInteractor : SelectionInteractor { class BookmarkView( container: ViewGroup, - val interactor: BookmarkViewInteractor + val interactor: BookmarkViewInteractor, + private val navController: NavController ) : LibraryPageView(container), UserInteractionHandler { val view: View = LayoutInflater.from(container.context) @@ -112,6 +115,9 @@ class BookmarkView( bookmarkAdapter = BookmarkAdapter(view.bookmarks_empty_view, interactor) adapter = bookmarkAdapter } + view.bookmark_folders_sign_in.setOnClickListener { + navController.navigate(NavGraphDirections.actionGlobalTurnOnSync()) + } } fun update(state: BookmarkFragmentState) { diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/SignInView.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/SignInView.kt deleted file mode 100644 index 8b0d41ebc..000000000 --- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/SignInView.kt +++ /dev/null @@ -1,31 +0,0 @@ -/* 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.library.bookmarks - -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.navigation.NavController -import com.google.android.material.button.MaterialButton -import kotlinx.android.extensions.LayoutContainer -import org.mozilla.fenix.NavGraphDirections -import org.mozilla.fenix.R - -class SignInView( - private val container: ViewGroup, - private val navController: NavController -) : LayoutContainer { - - override val containerView: View? - get() = container - - val view: MaterialButton = LayoutInflater.from(container.context) - .inflate(R.layout.component_sign_in, container, true) - .findViewById(R.id.bookmark_folders_sign_in) - - init { - view.setOnClickListener { navController.navigate(NavGraphDirections.actionGlobalTurnOnSync()) } - } -} diff --git a/app/src/main/res/layout/component_bookmark.xml b/app/src/main/res/layout/component_bookmark.xml index 91620b709..c593e5e18 100644 --- a/app/src/main/res/layout/component_bookmark.xml +++ b/app/src/main/res/layout/component_bookmark.xml @@ -2,35 +2,45 @@ - + + android:id="@+id/bookmark_list" + android:layout_width="match_parent" + android:layout_height="wrap_content" + app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + tools:listitem="@layout/library_site_item" /> + android:id="@+id/bookmarks_empty_view" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:text="@string/bookmarks_empty_message" + android:textColor="?secondaryText" + android:textSize="16sp" + android:visibility="gone" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + - - diff --git a/app/src/main/res/layout/fragment_bookmark.xml b/app/src/main/res/layout/fragment_bookmark.xml index dfbc16961..1612c6938 100644 --- a/app/src/main/res/layout/fragment_bookmark.xml +++ b/app/src/main/res/layout/fragment_bookmark.xml @@ -11,6 +11,6 @@