@@ -22,11 +22,13 @@ import android.view.Menu
22
22
import android.view.MenuItem
23
23
import android.view.View
24
24
import android.view.ViewGroup
25
+ import androidx.core.view.isVisible
25
26
import androidx.fragment.app.Fragment
26
27
import androidx.lifecycle.lifecycleScope
27
28
import com.airbnb.mvrx.activityViewModel
28
29
import com.airbnb.mvrx.fragmentViewModel
29
30
import com.airbnb.mvrx.withState
31
+ import com.google.android.material.appbar.AppBarLayout
30
32
import com.google.android.material.badge.BadgeDrawable
31
33
import im.vector.app.R
32
34
import im.vector.app.SpaceStateHandler
@@ -35,6 +37,7 @@ import im.vector.app.core.platform.OnBackPressed
35
37
import im.vector.app.core.platform.VectorBaseActivity
36
38
import im.vector.app.core.platform.VectorBaseFragment
37
39
import im.vector.app.core.platform.VectorMenuProvider
40
+ import im.vector.app.core.resources.BuildMeta
38
41
import im.vector.app.core.resources.ColorProvider
39
42
import im.vector.app.core.ui.views.CurrentCallsView
40
43
import im.vector.app.core.ui.views.CurrentCallsViewPresenter
@@ -69,6 +72,7 @@ class NewHomeDetailFragment @Inject constructor(
69
72
private val vectorPreferences : VectorPreferences ,
70
73
private val spaceStateHandler : SpaceStateHandler ,
71
74
private val session : Session ,
75
+ private val buildMeta : BuildMeta ,
72
76
) : VectorBaseFragment<FragmentNewHomeDetailBinding>(),
73
77
KeysBackupBanner .Delegate ,
74
78
CurrentCallsView .Callback ,
@@ -123,6 +127,7 @@ class NewHomeDetailFragment @Inject constructor(
123
127
setupToolbar()
124
128
setupKeysBackupBanner()
125
129
setupActiveCallView()
130
+ setupDebugButton()
126
131
127
132
withState(viewModel) {
128
133
// Update the navigation view if needed (for when we restore the tabs)
@@ -190,6 +195,7 @@ class NewHomeDetailFragment @Inject constructor(
190
195
updateTabVisibilitySafely(R .id.bottom_action_notification, vectorPreferences.labAddNotificationTab())
191
196
callManager.checkForProtocolsSupportIfNeeded()
192
197
refreshSpaceState()
198
+ refreshDebugButtonState()
193
199
}
194
200
195
201
private fun refreshSpaceState () {
@@ -364,6 +370,21 @@ class NewHomeDetailFragment @Inject constructor(
364
370
}
365
371
}
366
372
373
+ private fun setupDebugButton () {
374
+ views.debugButton.debouncedClicks {
375
+ sharedActionViewModel.post(HomeActivitySharedAction .CloseDrawer )
376
+ navigator.openDebug(requireActivity())
377
+ }
378
+
379
+ views.appBarLayout.addOnOffsetChangedListener(AppBarLayout .OnOffsetChangedListener { _, verticalOffset ->
380
+ views.debugButton.isVisible = verticalOffset == 0
381
+ })
382
+ }
383
+
384
+ private fun refreshDebugButtonState () {
385
+ views.debugButton.isVisible = buildMeta.isDebug && vectorPreferences.developerMode()
386
+ }
387
+
367
388
/* ==========================================================================================
368
389
* KeysBackupBanner Listener
369
390
* ========================================================================================== */
0 commit comments