Commit 5d51c4f0 authored by ekager's avatar ekager Committed by Emily Kager
Browse files

Don't use ProcessLifecycleOwner for view-tied consume

parent f801f320
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -222,7 +222,7 @@ class HomeFragment : Fragment() {
                showDeleteCollectionPrompt = ::showDeleteCollectionPrompt,
                openSettingsScreen = ::openSettingsScreen,
                openSearchScreen = ::navigateToSearch,
                openWhatsNewLink = { openCustomTab(SupportUtils.getWhatsNewUrl(view.context)) },
                openWhatsNewLink = { openCustomTab(SupportUtils.getWhatsNewUrl(activity)) },
                openPrivacyNotice = { openCustomTab(SupportUtils.getPrivacyNoticeUrl()) }
            )
        )
@@ -230,7 +230,9 @@ class HomeFragment : Fragment() {
        setOffset(view)
        sessionControlView = SessionControlView(
            homeFragmentStore,
            view.sessionControlRecyclerView, sessionControlInteractor,
            view.sessionControlRecyclerView,
            sessionControlInteractor,
            viewLifecycleOwner,
            homeViewModel
        )
        activity.themeManager.applyStatusBarTheme(activity)
+0 −1
Original line number Diff line number Diff line
@@ -9,7 +9,6 @@ import androidx.lifecycle.ViewModel

class HomeScreenViewModel : ViewModel() {
    var layoutManagerState: Parcelable? = null
    var motionLayoutProgress = 0F

    /**
     * Used to remember if we need to scroll to top of the homeFragment's recycleView (top sites) see #8561
+3 −2
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ package org.mozilla.fenix.home.sessioncontrol

import android.os.Build
import android.view.View
import androidx.lifecycle.ProcessLifecycleOwner
import androidx.lifecycle.LifecycleOwner
import androidx.recyclerview.widget.ItemTouchHelper
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
@@ -164,6 +164,7 @@ class SessionControlView(
    private val homeFragmentStore: HomeFragmentStore,
    override val containerView: View?,
    interactor: SessionControlInteractor,
    private val viewLifecycleOwner: LifecycleOwner,
    private var homeScreenViewModel: HomeScreenViewModel
) : LayoutContainer {

@@ -183,7 +184,7 @@ class SessionControlView(
                )
            itemTouchHelper.attachToRecyclerView(this)

            view.consumeFrom(homeFragmentStore, ProcessLifecycleOwner.get()) {
            view.consumeFrom(homeFragmentStore, viewLifecycleOwner) {
                update(it)
            }
        }
+3 −6
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@ import org.mozilla.fenix.BrowserDirection
import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.R
import org.mozilla.fenix.browser.browsingmode.BrowsingMode
import org.mozilla.fenix.components.FenixSnackbar
import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.ext.nav

@@ -43,7 +42,7 @@ interface BookmarkController {
class DefaultBookmarkController(
    private val context: Context,
    private val navController: NavController,
    private val snackbar: FenixSnackbar,
    private val showSnackbar: (String) -> Unit,
    private val deleteBookmarkNodes: (Set<BookmarkNode>, Event) -> Unit,
    private val invokePendingDeletion: () -> Unit
) : BookmarkController {
@@ -68,15 +67,13 @@ class DefaultBookmarkController(
    }

    override fun handleBookmarkSelected(node: BookmarkNode) {
        snackbar.setText(resources.getString(R.string.bookmark_cannot_edit_root))
        snackbar.show()
        showSnackbar(resources.getString(R.string.bookmark_cannot_edit_root))
    }

    override fun handleCopyUrl(item: BookmarkNode) {
        val urlClipData = ClipData.newPlainText(item.url, item.url)
        context.getSystemService<ClipboardManager>()?.primaryClip = urlClipData
        snackbar.setText(resources.getString(R.string.url_copied))
        snackbar.show()
        showSnackbar(resources.getString(R.string.url_copied))
    }

    override fun handleBookmarkSharing(item: BookmarkNode) {
+11 −5
Original line number Diff line number Diff line
@@ -83,11 +83,7 @@ class BookmarkFragment : LibraryPageFragment<BookmarkNode>(), UserInteractionHan
            bookmarksController = DefaultBookmarkController(
                context = context!!,
                navController = findNavController(),
                snackbar = FenixSnackbar.make(
                    view = view,
                    duration = FenixSnackbar.LENGTH_LONG,
                    isDisplayedWithBrowserToolbar = false
                ),
                showSnackbar = ::showSnackBarWithText,
                deleteBookmarkNodes = ::deleteMulti,
                invokePendingDeletion = ::invokePendingDeletion
            ),
@@ -107,6 +103,16 @@ class BookmarkFragment : LibraryPageFragment<BookmarkNode>(), UserInteractionHan
        return view
    }

    private fun showSnackBarWithText(text: String) {
        view?.let {
            FenixSnackbar.make(
                view = it,
                duration = FenixSnackbar.LENGTH_LONG,
                isDisplayedWithBrowserToolbar = false
            ).setText(text).show()
        }
    }

    @ExperimentalCoroutinesApi
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
Loading