@@ -14,14 +14,11 @@ import android.view.ViewGroup
14
14
import androidx.activity.result.ActivityResultLauncher
15
15
import androidx.activity.result.contract.ActivityResultContracts
16
16
import androidx.annotation.CallSuper
17
- import androidx.compose.ui.platform.ComposeView
18
17
import androidx.coordinatorlayout.widget.CoordinatorLayout
19
18
import androidx.fragment.app.Fragment
20
19
import androidx.preference.PreferenceManager
21
20
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
22
21
import mozilla.components.browser.state.selector.selectedTab
23
- import mozilla.components.browser.toolbar.BrowserToolbar
24
- import mozilla.components.compose.browser.toolbar.BrowserToolbar
25
22
import mozilla.components.concept.engine.EngineView
26
23
import mozilla.components.feature.app.links.AppLinksFeature
27
24
import mozilla.components.feature.downloads.DownloadsFeature
@@ -45,7 +42,6 @@ import mozilla.components.support.base.log.logger.Logger
45
42
import mozilla.components.support.ktx.android.view.enterImmersiveMode
46
43
import mozilla.components.support.ktx.android.view.exitImmersiveMode
47
44
import mozilla.components.ui.widgets.behavior.EngineViewClippingBehavior
48
- import mozilla.components.ui.widgets.behavior.EngineViewScrollingBehavior
49
45
import org.mozilla.reference.browser.BuildConfig
50
46
import org.mozilla.reference.browser.R
51
47
import org.mozilla.reference.browser.addons.WebExtensionPromptFeature
@@ -55,7 +51,6 @@ import org.mozilla.reference.browser.ext.requireComponents
55
51
import org.mozilla.reference.browser.pip.PictureInPictureIntegration
56
52
import org.mozilla.reference.browser.tabs.LastTabFeature
57
53
import mozilla.components.ui.widgets.behavior.ToolbarPosition as MozacEngineBehaviorToolbarPosition
58
- import mozilla.components.ui.widgets.behavior.ViewPosition as MozacToolbarBehaviorToolbarPosition
59
54
60
55
/* *
61
56
* Base fragment extended by [BrowserFragment] and [ExternalAppBrowserFragment].
@@ -64,7 +59,6 @@ import mozilla.components.ui.widgets.behavior.ViewPosition as MozacToolbarBehavi
64
59
*/
65
60
abstract class BaseBrowserFragment : Fragment (), UserInteractionHandler, ActivityResultHandler {
66
61
private val sessionFeature = ViewBoundFeatureWrapper <SessionFeature >()
67
- private val toolbarIntegration = ViewBoundFeatureWrapper <ToolbarIntegration >()
68
62
private val contextMenuIntegration = ViewBoundFeatureWrapper <ContextMenuIntegration >()
69
63
private val downloadsFeature = ViewBoundFeatureWrapper <DownloadsFeature >()
70
64
private val shareDownloadsFeature = ViewBoundFeatureWrapper <ShareDownloadFeature >()
@@ -84,18 +78,15 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Activit
84
78
85
79
private val engineView: EngineView
86
80
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
90
82
get() = requireView().findViewById(R .id.findInPageBar)
91
83
private val swipeRefresh: SwipeRefreshLayout
92
84
get() = requireView().findViewById(R .id.swipeRefresh)
93
85
94
86
private val backButtonHandler: List <ViewBoundFeatureWrapper <* >> = listOf (
95
87
fullScreenFeature,
96
88
findInPageIntegration,
97
- toolbarIntegration,
98
-
89
+ // toolbarIntegration,
99
90
sessionFeature,
100
91
lastTabFeature,
101
92
)
@@ -114,6 +105,8 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Activit
114
105
private lateinit var requestSitePermissionsLauncher: ActivityResultLauncher <Array <String >>
115
106
private lateinit var requestPromptsPermissionsLauncher: ActivityResultLauncher <Array <String >>
116
107
108
+ private val logger = Logger (" BaseBrowserFragment" )
109
+
117
110
override fun onCreate (savedInstanceState : Bundle ? ) {
118
111
super .onCreate(savedInstanceState)
119
112
requestDownloadPermissionsLauncher =
@@ -161,8 +154,6 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Activit
161
154
return inflater.inflate(R .layout.fragment_browser, container, false )
162
155
}
163
156
164
- abstract val shouldUseComposeUI: Boolean
165
-
166
157
@CallSuper
167
158
@Suppress(" LongMethod" )
168
159
override fun onViewCreated (view : View , savedInstanceState : Bundle ? ) {
@@ -180,28 +171,6 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Activit
180
171
view = view,
181
172
)
182
173
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
-
205
174
contextMenuIntegration.set(
206
175
feature = ContextMenuIntegration (
207
176
requireContext(),
@@ -357,7 +326,7 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Activit
357
326
context,
358
327
null ,
359
328
swipeRefresh,
360
- toolbar.height ,
329
+ resources.getDimensionPixelSize( R .dimen.browser_toolbar_height) ,
361
330
MozacEngineBehaviorToolbarPosition .BOTTOM ,
362
331
)
363
332
}
@@ -402,28 +371,21 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Activit
402
371
view = view,
403
372
)
404
373
}
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
- }
415
374
}
416
375
417
376
private fun fullScreenChanged (enabled : Boolean ) {
418
377
if (enabled) {
419
378
activity?.enterImmersiveMode()
420
- toolbar.visibility = View .GONE
421
379
engineView.setDynamicToolbarMaxHeight(0 )
422
380
} else {
423
381
activity?.exitImmersiveMode()
424
- toolbar.visibility = View .VISIBLE
425
382
engineView.setDynamicToolbarMaxHeight(resources.getDimensionPixelSize(R .dimen.browser_toolbar_height))
426
383
}
384
+ parentFragment?.parentFragmentManager
385
+ ?.setFragmentResult(
386
+ BROWSER_TO_MAIN_FRAGMENT_RESULT_KEY ,
387
+ Bundle ().apply { putBoolean(FULL_SCREEN_MODE_CHANGED , enabled) }
388
+ )
427
389
}
428
390
429
391
private fun viewportFitChanged (viewportFit : Int ) {
@@ -434,7 +396,10 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Activit
434
396
435
397
@CallSuper
436
398
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
+ }
438
403
}
439
404
440
405
final override fun onHomePressed (): Boolean {
@@ -452,16 +417,14 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Activit
452
417
}
453
418
454
419
companion object {
455
- private const val SESSION_ID = " session_id"
456
-
457
420
@JvmStatic
458
421
protected fun Bundle.putSessionId (sessionId : String? ) {
459
422
putString(SESSION_ID , sessionId)
460
423
}
461
424
}
462
425
463
426
override fun onActivityResult (requestCode : Int , data : Intent ? , resultCode : Int ): Boolean {
464
- Logger .info(
427
+ logger .info(
465
428
" Fragment onActivityResult received with " +
466
429
" requestCode: $requestCode , resultCode: $resultCode , data: $data " ,
467
430
)
0 commit comments