@@ -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 =
@@ -153,16 +146,6 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Activit
153
146
}
154
147
}
155
148
156
- final override fun onCreateView (
157
- inflater : LayoutInflater ,
158
- container : ViewGroup ? ,
159
- savedInstanceState : Bundle ? ,
160
- ): View {
161
- return inflater.inflate(R .layout.fragment_browser, container, false )
162
- }
163
-
164
- abstract val shouldUseComposeUI: Boolean
165
-
166
149
@CallSuper
167
150
@Suppress(" LongMethod" )
168
151
override fun onViewCreated (view : View , savedInstanceState : Bundle ? ) {
@@ -180,28 +163,6 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Activit
180
163
view = view,
181
164
)
182
165
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
166
contextMenuIntegration.set(
206
167
feature = ContextMenuIntegration (
207
168
requireContext(),
@@ -357,7 +318,7 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Activit
357
318
context,
358
319
null ,
359
320
swipeRefresh,
360
- toolbar.height ,
321
+ resources.getDimensionPixelSize( R .dimen.browser_toolbar_height) ,
361
322
MozacEngineBehaviorToolbarPosition .BOTTOM ,
362
323
)
363
324
}
@@ -402,28 +363,21 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Activit
402
363
view = view,
403
364
)
404
365
}
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
366
}
416
367
417
368
private fun fullScreenChanged (enabled : Boolean ) {
418
369
if (enabled) {
419
370
activity?.enterImmersiveMode()
420
- toolbar.visibility = View .GONE
421
371
engineView.setDynamicToolbarMaxHeight(0 )
422
372
} else {
423
373
activity?.exitImmersiveMode()
424
- toolbar.visibility = View .VISIBLE
425
374
engineView.setDynamicToolbarMaxHeight(resources.getDimensionPixelSize(R .dimen.browser_toolbar_height))
426
375
}
376
+ parentFragment?.parentFragmentManager
377
+ ?.setFragmentResult(
378
+ BROWSER_TO_MAIN_FRAGMENT_RESULT_KEY ,
379
+ Bundle ().apply { putBoolean(FULL_SCREEN_MODE_CHANGED , enabled) }
380
+ )
427
381
}
428
382
429
383
private fun viewportFitChanged (viewportFit : Int ) {
@@ -434,7 +388,10 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Activit
434
388
435
389
@CallSuper
436
390
override fun onBackPressed (): Boolean {
437
- return backButtonHandler.any { it.onBackPressed() }
391
+ logger.info(" onBackPressed" )
392
+ return backButtonHandler.any { it.onBackPressed() }.also {
393
+ logger.info(" Was it handled by back button handlers? $it " )
394
+ }
438
395
}
439
396
440
397
final override fun onHomePressed (): Boolean {
@@ -452,16 +409,14 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Activit
452
409
}
453
410
454
411
companion object {
455
- private const val SESSION_ID = " session_id"
456
-
457
412
@JvmStatic
458
413
protected fun Bundle.putSessionId (sessionId : String? ) {
459
414
putString(SESSION_ID , sessionId)
460
415
}
461
416
}
462
417
463
418
override fun onActivityResult (requestCode : Int , data : Intent ? , resultCode : Int ): Boolean {
464
- Logger .info(
419
+ logger .info(
465
420
" Fragment onActivityResult received with " +
466
421
" requestCode: $requestCode , resultCode: $resultCode , data: $data " ,
467
422
)
0 commit comments