@@ -14,14 +14,11 @@ import android.view.ViewGroup
1414import androidx.activity.result.ActivityResultLauncher
1515import androidx.activity.result.contract.ActivityResultContracts
1616import androidx.annotation.CallSuper
17- import androidx.compose.ui.platform.ComposeView
1817import androidx.coordinatorlayout.widget.CoordinatorLayout
1918import androidx.fragment.app.Fragment
2019import androidx.preference.PreferenceManager
2120import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
2221import mozilla.components.browser.state.selector.selectedTab
23- import mozilla.components.browser.toolbar.BrowserToolbar
24- import mozilla.components.compose.browser.toolbar.BrowserToolbar
2522import mozilla.components.concept.engine.EngineView
2623import mozilla.components.feature.app.links.AppLinksFeature
2724import mozilla.components.feature.downloads.DownloadsFeature
@@ -45,7 +42,6 @@ import mozilla.components.support.base.log.logger.Logger
4542import mozilla.components.support.ktx.android.view.enterImmersiveMode
4643import mozilla.components.support.ktx.android.view.exitImmersiveMode
4744import mozilla.components.ui.widgets.behavior.EngineViewClippingBehavior
48- import mozilla.components.ui.widgets.behavior.EngineViewScrollingBehavior
4945import org.mozilla.reference.browser.BuildConfig
5046import org.mozilla.reference.browser.R
5147import org.mozilla.reference.browser.addons.WebExtensionPromptFeature
@@ -55,7 +51,6 @@ import org.mozilla.reference.browser.ext.requireComponents
5551import org.mozilla.reference.browser.pip.PictureInPictureIntegration
5652import org.mozilla.reference.browser.tabs.LastTabFeature
5753import mozilla.components.ui.widgets.behavior.ToolbarPosition as MozacEngineBehaviorToolbarPosition
58- import mozilla.components.ui.widgets.behavior.ViewPosition as MozacToolbarBehaviorToolbarPosition
5954
6055/* *
6156 * Base fragment extended by [BrowserFragment] and [ExternalAppBrowserFragment].
@@ -64,7 +59,6 @@ import mozilla.components.ui.widgets.behavior.ViewPosition as MozacToolbarBehavi
6459 */
6560abstract class BaseBrowserFragment : Fragment (), UserInteractionHandler, ActivityResultHandler {
6661 private val sessionFeature = ViewBoundFeatureWrapper <SessionFeature >()
67- private val toolbarIntegration = ViewBoundFeatureWrapper <ToolbarIntegration >()
6862 private val contextMenuIntegration = ViewBoundFeatureWrapper <ContextMenuIntegration >()
6963 private val downloadsFeature = ViewBoundFeatureWrapper <DownloadsFeature >()
7064 private val shareDownloadsFeature = ViewBoundFeatureWrapper <ShareDownloadFeature >()
@@ -84,18 +78,15 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Activit
8478
8579 private val engineView: EngineView
8680 get() = requireView().findViewById<View >(R .id.engineView) as EngineView
87- private val toolbar: BrowserToolbar
88- get() = requireView().findViewById(R .id.toolbar)
89- private val findInPageBar: FindInPageBar
81+ protected val findInPageBar: FindInPageBar
9082 get() = requireView().findViewById(R .id.findInPageBar)
9183 private val swipeRefresh: SwipeRefreshLayout
9284 get() = requireView().findViewById(R .id.swipeRefresh)
9385
9486 private val backButtonHandler: List <ViewBoundFeatureWrapper <* >> = listOf (
9587 fullScreenFeature,
9688 findInPageIntegration,
97- toolbarIntegration,
98-
89+ // toolbarIntegration,
9990 sessionFeature,
10091 lastTabFeature,
10192 )
@@ -114,6 +105,8 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Activit
114105 private lateinit var requestSitePermissionsLauncher: ActivityResultLauncher <Array <String >>
115106 private lateinit var requestPromptsPermissionsLauncher: ActivityResultLauncher <Array <String >>
116107
108+ private val logger = Logger (" BaseBrowserFragment" )
109+
117110 override fun onCreate (savedInstanceState : Bundle ? ) {
118111 super .onCreate(savedInstanceState)
119112 requestDownloadPermissionsLauncher =
@@ -161,8 +154,6 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Activit
161154 return inflater.inflate(R .layout.fragment_browser, container, false )
162155 }
163156
164- abstract val shouldUseComposeUI: Boolean
165-
166157 @CallSuper
167158 @Suppress(" LongMethod" )
168159 override fun onViewCreated (view : View , savedInstanceState : Bundle ? ) {
@@ -180,28 +171,6 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Activit
180171 view = view,
181172 )
182173
183- (toolbar.layoutParams as ? CoordinatorLayout .LayoutParams )?.apply {
184- behavior = EngineViewScrollingBehavior (
185- view.context,
186- null ,
187- MozacToolbarBehaviorToolbarPosition .BOTTOM ,
188- )
189- }
190- toolbarIntegration.set(
191- feature = ToolbarIntegration (
192- requireContext(),
193- toolbar,
194- requireComponents.core.historyStorage,
195- requireComponents.core.store,
196- requireComponents.useCases.sessionUseCases,
197- requireComponents.useCases.tabsUseCases,
198- requireComponents.useCases.webAppUseCases,
199- sessionId,
200- ),
201- owner = this ,
202- view = view,
203- )
204-
205174 contextMenuIntegration.set(
206175 feature = ContextMenuIntegration (
207176 requireContext(),
@@ -357,7 +326,7 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Activit
357326 context,
358327 null ,
359328 swipeRefresh,
360- toolbar.height ,
329+ resources.getDimensionPixelSize( R .dimen.browser_toolbar_height) ,
361330 MozacEngineBehaviorToolbarPosition .BOTTOM ,
362331 )
363332 }
@@ -402,28 +371,21 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Activit
402371 view = view,
403372 )
404373 }
405-
406- val composeView = view.findViewById<ComposeView >(R .id.compose_view)
407- if (shouldUseComposeUI) {
408- composeView.visibility = View .VISIBLE
409- composeView.setContent { BrowserToolbar () }
410-
411- val params = swipeRefresh.layoutParams as CoordinatorLayout .LayoutParams
412- params.topMargin = resources.getDimensionPixelSize(R .dimen.browser_toolbar_height)
413- swipeRefresh.layoutParams = params
414- }
415374 }
416375
417376 private fun fullScreenChanged (enabled : Boolean ) {
418377 if (enabled) {
419378 activity?.enterImmersiveMode()
420- toolbar.visibility = View .GONE
421379 engineView.setDynamicToolbarMaxHeight(0 )
422380 } else {
423381 activity?.exitImmersiveMode()
424- toolbar.visibility = View .VISIBLE
425382 engineView.setDynamicToolbarMaxHeight(resources.getDimensionPixelSize(R .dimen.browser_toolbar_height))
426383 }
384+ parentFragment?.parentFragmentManager
385+ ?.setFragmentResult(
386+ BROWSER_TO_MAIN_FRAGMENT_RESULT_KEY ,
387+ Bundle ().apply { putBoolean(FULL_SCREEN_MODE_CHANGED , enabled) }
388+ )
427389 }
428390
429391 private fun viewportFitChanged (viewportFit : Int ) {
@@ -434,7 +396,10 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Activit
434396
435397 @CallSuper
436398 override fun onBackPressed (): Boolean {
437- return backButtonHandler.any { it.onBackPressed() }
399+ logger.info(" onBackPressed" )
400+ return backButtonHandler.any { it.onBackPressed() }.also {
401+ logger.info(" Was it handled by back button handlers? $it " )
402+ }
438403 }
439404
440405 final override fun onHomePressed (): Boolean {
@@ -452,16 +417,14 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Activit
452417 }
453418
454419 companion object {
455- private const val SESSION_ID = " session_id"
456-
457420 @JvmStatic
458421 protected fun Bundle.putSessionId (sessionId : String? ) {
459422 putString(SESSION_ID , sessionId)
460423 }
461424 }
462425
463426 override fun onActivityResult (requestCode : Int , data : Intent ? , resultCode : Int ): Boolean {
464- Logger .info(
427+ logger .info(
465428 " Fragment onActivityResult received with " +
466429 " requestCode: $requestCode , resultCode: $resultCode , data: $data " ,
467430 )
0 commit comments