From 81505d3802a06d3bcee0e36c6ff5ba25fbab42e5 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Mon, 4 Jul 2022 17:28:18 +0200 Subject: [PATCH] Menu: extract management to a common interface / Migrate Fragments --- .../app/core/platform/VectorBaseFragment.kt | 17 +++-------------- .../preview/AttachmentsPreviewFragment.kt | 5 ++++- .../app/features/home/HomeDetailFragment.kt | 4 +++- .../home/room/detail/TimelineFragment.kt | 4 +++- .../threads/list/views/ThreadListFragment.kt | 4 +++- .../location/LocationPreviewFragment.kt | 4 +++- .../roomdirectory/PublicRoomsFragment.kt | 4 +++- .../RoomMemberProfileFragment.kt | 4 +++- .../features/roomprofile/RoomProfileFragment.kt | 4 +++- .../settings/RoomSettingsFragment.kt | 4 +++- .../settings/devtools/KeyRequestsFragment.kt | 4 +++- .../settings/push/PushGatewaysFragment.kt | 4 +++- .../spaces/explore/SpaceDirectoryFragment.kt | 4 +++- .../spaces/leave/SpaceLeaveAdvancedFragment.kt | 6 +++++- .../spaces/manage/SpaceAddRoomFragment.kt | 5 ++++- .../spaces/manage/SpaceSettingsFragment.kt | 4 +++- .../features/userdirectory/UserListFragment.kt | 4 +++- .../app/features/widgets/WidgetFragment.kt | 4 +++- 18 files changed, 58 insertions(+), 31 deletions(-) diff --git a/vector/src/main/java/im/vector/app/core/platform/VectorBaseFragment.kt b/vector/src/main/java/im/vector/app/core/platform/VectorBaseFragment.kt index a1fd774757..340c906a6d 100644 --- a/vector/src/main/java/im/vector/app/core/platform/VectorBaseFragment.kt +++ b/vector/src/main/java/im/vector/app/core/platform/VectorBaseFragment.kt @@ -164,12 +164,13 @@ abstract class VectorBaseFragment : Fragment(), MavericksView } private fun setupMenu() { - val menuRes = getMenuRes().takeIf { it != -1 } ?: return + if (this !is VectorMenuProvider) return + if (getMenuRes() == -1) return val menuHost: MenuHost = requireActivity() menuHost.addMenuProvider( object : MenuProvider { override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) { - menuInflater.inflate(menuRes, menu) + menuInflater.inflate(getMenuRes(), menu) handlePostCreateMenu(menu) } @@ -296,18 +297,6 @@ abstract class VectorBaseFragment : Fragment(), MavericksView * MENU MANAGEMENT * ========================================================================================== */ - open fun getMenuRes() = -1 - - // No op by default - open fun handlePostCreateMenu(menu: Menu) = Unit - - // No op by default - open fun handlePrepareMenu(menu: Menu) = Unit - - open fun handleMenuItemSelected(item: MenuItem): Boolean { - throw NotImplementedError("You must override this method to handle click on menu item") - } - // This should be provided by the framework protected fun invalidateOptionsMenu() = requireActivity().invalidateOptionsMenu() diff --git a/vector/src/main/java/im/vector/app/features/attachments/preview/AttachmentsPreviewFragment.kt b/vector/src/main/java/im/vector/app/features/attachments/preview/AttachmentsPreviewFragment.kt index 5a4905942b..c3a4ae7df2 100644 --- a/vector/src/main/java/im/vector/app/features/attachments/preview/AttachmentsPreviewFragment.kt +++ b/vector/src/main/java/im/vector/app/features/attachments/preview/AttachmentsPreviewFragment.kt @@ -44,6 +44,7 @@ import im.vector.app.core.extensions.cleanup import im.vector.app.core.extensions.insertBeforeLast import im.vector.app.core.extensions.registerStartForActivityResult import im.vector.app.core.platform.VectorBaseFragment +import im.vector.app.core.platform.VectorMenuProvider import im.vector.app.core.resources.ColorProvider import im.vector.app.core.time.Clock import im.vector.app.core.utils.OnSnapPositionChangeListener @@ -67,7 +68,9 @@ class AttachmentsPreviewFragment @Inject constructor( private val attachmentBigPreviewController: AttachmentBigPreviewController, private val colorProvider: ColorProvider, private val clock: Clock, -) : VectorBaseFragment(), AttachmentMiniaturePreviewController.Callback { +) : VectorBaseFragment(), + AttachmentMiniaturePreviewController.Callback, + VectorMenuProvider { private val fragmentArgs: AttachmentsPreviewArgs by args() private val viewModel: AttachmentsPreviewViewModel by fragmentViewModel() diff --git a/vector/src/main/java/im/vector/app/features/home/HomeDetailFragment.kt b/vector/src/main/java/im/vector/app/features/home/HomeDetailFragment.kt index 787c39b3e3..a3bc5144d1 100644 --- a/vector/src/main/java/im/vector/app/features/home/HomeDetailFragment.kt +++ b/vector/src/main/java/im/vector/app/features/home/HomeDetailFragment.kt @@ -36,6 +36,7 @@ import im.vector.app.core.extensions.toMvRxBundle import im.vector.app.core.platform.OnBackPressed import im.vector.app.core.platform.VectorBaseActivity import im.vector.app.core.platform.VectorBaseFragment +import im.vector.app.core.platform.VectorMenuProvider import im.vector.app.core.resources.ColorProvider import im.vector.app.core.ui.views.CurrentCallsView import im.vector.app.core.ui.views.CurrentCallsViewPresenter @@ -71,7 +72,8 @@ class HomeDetailFragment @Inject constructor( ) : VectorBaseFragment(), KeysBackupBanner.Delegate, CurrentCallsView.Callback, - OnBackPressed { + OnBackPressed, + VectorMenuProvider { private val viewModel: HomeDetailViewModel by fragmentViewModel() private val unknownDeviceDetectorSharedViewModel: UnknownDeviceDetectorSharedViewModel by activityViewModel() diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/TimelineFragment.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/TimelineFragment.kt index 8e2e5468a8..b821cadcc0 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/TimelineFragment.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/TimelineFragment.kt @@ -88,6 +88,7 @@ import im.vector.app.core.hardware.vibrate import im.vector.app.core.intent.getFilenameFromUri import im.vector.app.core.intent.getMimeTypeFromUri import im.vector.app.core.platform.VectorBaseFragment +import im.vector.app.core.platform.VectorMenuProvider import im.vector.app.core.platform.lifecycleAwareLazy import im.vector.app.core.platform.showOptimizedSnackbar import im.vector.app.core.resources.ColorProvider @@ -279,7 +280,8 @@ class TimelineFragment @Inject constructor( AttachmentTypeSelectorView.Callback, AttachmentsHelper.Callback, GalleryOrCameraDialogHelper.Listener, - CurrentCallsView.Callback { + CurrentCallsView.Callback, + VectorMenuProvider { companion object { diff --git a/vector/src/main/java/im/vector/app/features/home/room/threads/list/views/ThreadListFragment.kt b/vector/src/main/java/im/vector/app/features/home/room/threads/list/views/ThreadListFragment.kt index 7a4f8bb62d..aaa9846c39 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/threads/list/views/ThreadListFragment.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/threads/list/views/ThreadListFragment.kt @@ -30,6 +30,7 @@ import im.vector.app.R import im.vector.app.core.extensions.cleanup import im.vector.app.core.extensions.configureWith import im.vector.app.core.platform.VectorBaseFragment +import im.vector.app.core.platform.VectorMenuProvider import im.vector.app.databinding.FragmentThreadListBinding import im.vector.app.features.analytics.plan.MobileScreen import im.vector.app.features.home.AvatarRenderer @@ -53,7 +54,8 @@ class ThreadListFragment @Inject constructor( private val threadListController: ThreadListController, val threadListViewModelFactory: ThreadListViewModel.Factory ) : VectorBaseFragment(), - ThreadListController.Listener { + ThreadListController.Listener, + VectorMenuProvider { private val threadListViewModel: ThreadListViewModel by fragmentViewModel() diff --git a/vector/src/main/java/im/vector/app/features/location/LocationPreviewFragment.kt b/vector/src/main/java/im/vector/app/features/location/LocationPreviewFragment.kt index 63f820f186..131119a7aa 100644 --- a/vector/src/main/java/im/vector/app/features/location/LocationPreviewFragment.kt +++ b/vector/src/main/java/im/vector/app/features/location/LocationPreviewFragment.kt @@ -26,6 +26,7 @@ import com.airbnb.mvrx.args import com.mapbox.mapboxsdk.maps.MapView import im.vector.app.R import im.vector.app.core.platform.VectorBaseFragment +import im.vector.app.core.platform.VectorMenuProvider import im.vector.app.core.utils.openLocation import im.vector.app.databinding.FragmentLocationPreviewBinding import im.vector.app.features.home.room.detail.timeline.helper.LocationPinProvider @@ -38,7 +39,8 @@ import javax.inject.Inject class LocationPreviewFragment @Inject constructor( private val urlMapProvider: UrlMapProvider, private val locationPinProvider: LocationPinProvider -) : VectorBaseFragment() { +) : VectorBaseFragment(), + VectorMenuProvider { private val args: LocationSharingArgs by args() diff --git a/vector/src/main/java/im/vector/app/features/roomdirectory/PublicRoomsFragment.kt b/vector/src/main/java/im/vector/app/features/roomdirectory/PublicRoomsFragment.kt index c9a96f703c..e16e1ec313 100644 --- a/vector/src/main/java/im/vector/app/features/roomdirectory/PublicRoomsFragment.kt +++ b/vector/src/main/java/im/vector/app/features/roomdirectory/PublicRoomsFragment.kt @@ -30,6 +30,7 @@ import im.vector.app.core.extensions.cleanup import im.vector.app.core.extensions.configureWith import im.vector.app.core.extensions.trackItemsVisibilityChange import im.vector.app.core.platform.VectorBaseFragment +import im.vector.app.core.platform.VectorMenuProvider import im.vector.app.core.platform.showOptimizedSnackbar import im.vector.app.core.utils.toast import im.vector.app.databinding.FragmentPublicRoomsBinding @@ -55,7 +56,8 @@ class PublicRoomsFragment @Inject constructor( private val permalinkHandler: PermalinkHandler, private val session: Session ) : VectorBaseFragment(), - PublicRoomsController.Callback { + PublicRoomsController.Callback, + VectorMenuProvider { private val viewModel: RoomDirectoryViewModel by activityViewModel() private lateinit var sharedActionViewModel: RoomDirectorySharedActionViewModel diff --git a/vector/src/main/java/im/vector/app/features/roommemberprofile/RoomMemberProfileFragment.kt b/vector/src/main/java/im/vector/app/features/roommemberprofile/RoomMemberProfileFragment.kt index 8b7e450653..88a27f246c 100644 --- a/vector/src/main/java/im/vector/app/features/roommemberprofile/RoomMemberProfileFragment.kt +++ b/vector/src/main/java/im/vector/app/features/roommemberprofile/RoomMemberProfileFragment.kt @@ -42,6 +42,7 @@ import im.vector.app.core.extensions.copyOnLongClick import im.vector.app.core.extensions.setTextOrHide import im.vector.app.core.platform.StateView import im.vector.app.core.platform.VectorBaseFragment +import im.vector.app.core.platform.VectorMenuProvider import im.vector.app.core.utils.startSharePlainTextIntent import im.vector.app.databinding.DialogBaseEditTextBinding import im.vector.app.databinding.DialogShareQrCodeBinding @@ -74,7 +75,8 @@ class RoomMemberProfileFragment @Inject constructor( private val roomDetailPendingActionStore: RoomDetailPendingActionStore, private val matrixItemColorProvider: MatrixItemColorProvider ) : VectorBaseFragment(), - RoomMemberProfileController.Callback { + RoomMemberProfileController.Callback, + VectorMenuProvider { private lateinit var headerViews: ViewStubRoomMemberProfileHeaderBinding diff --git a/vector/src/main/java/im/vector/app/features/roomprofile/RoomProfileFragment.kt b/vector/src/main/java/im/vector/app/features/roomprofile/RoomProfileFragment.kt index 07afe5485a..2f8128b7af 100644 --- a/vector/src/main/java/im/vector/app/features/roomprofile/RoomProfileFragment.kt +++ b/vector/src/main/java/im/vector/app/features/roomprofile/RoomProfileFragment.kt @@ -39,6 +39,7 @@ import im.vector.app.core.extensions.configureWith import im.vector.app.core.extensions.copyOnLongClick import im.vector.app.core.extensions.setTextOrHide import im.vector.app.core.platform.VectorBaseFragment +import im.vector.app.core.platform.VectorMenuProvider import im.vector.app.core.utils.copyToClipboard import im.vector.app.core.utils.startSharePlainTextIntent import im.vector.app.databinding.FragmentMatrixProfileBinding @@ -70,7 +71,8 @@ class RoomProfileFragment @Inject constructor( private val roomDetailPendingActionStore: RoomDetailPendingActionStore, ) : VectorBaseFragment(), - RoomProfileController.Callback { + RoomProfileController.Callback, + VectorMenuProvider { private lateinit var headerViews: ViewStubRoomProfileHeaderBinding diff --git a/vector/src/main/java/im/vector/app/features/roomprofile/settings/RoomSettingsFragment.kt b/vector/src/main/java/im/vector/app/features/roomprofile/settings/RoomSettingsFragment.kt index bcdc1a2202..45c8461fa7 100644 --- a/vector/src/main/java/im/vector/app/features/roomprofile/settings/RoomSettingsFragment.kt +++ b/vector/src/main/java/im/vector/app/features/roomprofile/settings/RoomSettingsFragment.kt @@ -36,6 +36,7 @@ import im.vector.app.core.extensions.configureWith import im.vector.app.core.intent.getFilenameFromUri import im.vector.app.core.platform.OnBackPressed import im.vector.app.core.platform.VectorBaseFragment +import im.vector.app.core.platform.VectorMenuProvider import im.vector.app.core.resources.ColorProvider import im.vector.app.core.time.Clock import im.vector.app.core.utils.toast @@ -64,7 +65,8 @@ class RoomSettingsFragment @Inject constructor( VectorBaseFragment(), RoomSettingsController.Callback, OnBackPressed, - GalleryOrCameraDialogHelper.Listener { + GalleryOrCameraDialogHelper.Listener, + VectorMenuProvider { private val viewModel: RoomSettingsViewModel by fragmentViewModel() private lateinit var roomProfileSharedActionViewModel: RoomProfileSharedActionViewModel diff --git a/vector/src/main/java/im/vector/app/features/settings/devtools/KeyRequestsFragment.kt b/vector/src/main/java/im/vector/app/features/settings/devtools/KeyRequestsFragment.kt index 52778004e4..5684e941f1 100644 --- a/vector/src/main/java/im/vector/app/features/settings/devtools/KeyRequestsFragment.kt +++ b/vector/src/main/java/im/vector/app/features/settings/devtools/KeyRequestsFragment.kt @@ -34,6 +34,7 @@ import im.vector.app.R import im.vector.app.core.extensions.registerStartForActivityResult import im.vector.app.core.extensions.safeOpenOutputStream import im.vector.app.core.platform.VectorBaseFragment +import im.vector.app.core.platform.VectorMenuProvider import im.vector.app.core.time.Clock import im.vector.app.core.utils.selectTxtFileToWrite import im.vector.app.databinding.FragmentDevtoolKeyrequestsBinding @@ -42,7 +43,8 @@ import javax.inject.Inject class KeyRequestsFragment @Inject constructor( private val clock: Clock, -) : VectorBaseFragment() { +) : VectorBaseFragment(), + VectorMenuProvider { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentDevtoolKeyrequestsBinding { return FragmentDevtoolKeyrequestsBinding.inflate(inflater, container, false) diff --git a/vector/src/main/java/im/vector/app/features/settings/push/PushGatewaysFragment.kt b/vector/src/main/java/im/vector/app/features/settings/push/PushGatewaysFragment.kt index 524a2a9fcc..da06f067c6 100644 --- a/vector/src/main/java/im/vector/app/features/settings/push/PushGatewaysFragment.kt +++ b/vector/src/main/java/im/vector/app/features/settings/push/PushGatewaysFragment.kt @@ -29,6 +29,7 @@ import im.vector.app.R import im.vector.app.core.extensions.cleanup import im.vector.app.core.extensions.configureWith import im.vector.app.core.platform.VectorBaseFragment +import im.vector.app.core.platform.VectorMenuProvider import im.vector.app.databinding.FragmentGenericRecyclerBinding import org.matrix.android.sdk.api.session.pushers.Pusher import javax.inject.Inject @@ -36,7 +37,8 @@ import javax.inject.Inject // Referenced in vector_settings_notifications.xml class PushGatewaysFragment @Inject constructor( private val epoxyController: PushGateWayController -) : VectorBaseFragment() { +) : VectorBaseFragment(), + VectorMenuProvider { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentGenericRecyclerBinding { return FragmentGenericRecyclerBinding.inflate(inflater, container, false) diff --git a/vector/src/main/java/im/vector/app/features/spaces/explore/SpaceDirectoryFragment.kt b/vector/src/main/java/im/vector/app/features/spaces/explore/SpaceDirectoryFragment.kt index 671bfa48bb..3818f4278a 100644 --- a/vector/src/main/java/im/vector/app/features/spaces/explore/SpaceDirectoryFragment.kt +++ b/vector/src/main/java/im/vector/app/features/spaces/explore/SpaceDirectoryFragment.kt @@ -38,6 +38,7 @@ import im.vector.app.core.extensions.configureWith import im.vector.app.core.extensions.registerStartForActivityResult import im.vector.app.core.platform.OnBackPressed import im.vector.app.core.platform.VectorBaseFragment +import im.vector.app.core.platform.VectorMenuProvider import im.vector.app.core.resources.ColorProvider import im.vector.app.core.utils.colorizeMatchingText import im.vector.app.core.utils.isValidUrl @@ -67,7 +68,8 @@ class SpaceDirectoryFragment @Inject constructor( ) : VectorBaseFragment(), SpaceDirectoryController.InteractionListener, TimelineEventController.UrlClickCallback, - OnBackPressed { + OnBackPressed, + VectorMenuProvider { override fun getMenuRes() = R.menu.menu_space_directory diff --git a/vector/src/main/java/im/vector/app/features/spaces/leave/SpaceLeaveAdvancedFragment.kt b/vector/src/main/java/im/vector/app/features/spaces/leave/SpaceLeaveAdvancedFragment.kt index a01cfeb321..de1273b8d5 100644 --- a/vector/src/main/java/im/vector/app/features/spaces/leave/SpaceLeaveAdvancedFragment.kt +++ b/vector/src/main/java/im/vector/app/features/spaces/leave/SpaceLeaveAdvancedFragment.kt @@ -32,6 +32,7 @@ import im.vector.app.R import im.vector.app.core.extensions.cleanup import im.vector.app.core.extensions.configureWith import im.vector.app.core.platform.VectorBaseFragment +import im.vector.app.core.platform.VectorMenuProvider import im.vector.app.core.utils.ToggleableAppBarLayoutBehavior import im.vector.app.databinding.FragmentSpaceLeaveAdvancedBinding import org.matrix.android.sdk.api.session.room.model.RoomSummary @@ -40,7 +41,8 @@ import javax.inject.Inject class SpaceLeaveAdvancedFragment @Inject constructor( val controller: SelectChildrenController ) : VectorBaseFragment(), - SelectChildrenController.Listener { + SelectChildrenController.Listener, + VectorMenuProvider { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?) = FragmentSpaceLeaveAdvancedBinding.inflate(layoutInflater, container, false) @@ -49,6 +51,8 @@ class SpaceLeaveAdvancedFragment @Inject constructor( override fun getMenuRes() = R.menu.menu_space_leave + override fun handleMenuItemSelected(item: MenuItem) = false + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) diff --git a/vector/src/main/java/im/vector/app/features/spaces/manage/SpaceAddRoomFragment.kt b/vector/src/main/java/im/vector/app/features/spaces/manage/SpaceAddRoomFragment.kt index 3e1d500ddc..848c17deb6 100644 --- a/vector/src/main/java/im/vector/app/features/spaces/manage/SpaceAddRoomFragment.kt +++ b/vector/src/main/java/im/vector/app/features/spaces/manage/SpaceAddRoomFragment.kt @@ -36,6 +36,7 @@ import im.vector.app.R import im.vector.app.core.extensions.cleanup import im.vector.app.core.platform.OnBackPressed import im.vector.app.core.platform.VectorBaseFragment +import im.vector.app.core.platform.VectorMenuProvider import im.vector.app.databinding.FragmentSpaceAddRoomsBinding import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.debounce @@ -51,7 +52,9 @@ class SpaceAddRoomFragment @Inject constructor( private val roomEpoxyController: AddRoomListController, private val dmEpoxyController: AddRoomListController, ) : VectorBaseFragment(), - OnBackPressed, AddRoomListController.Listener { + OnBackPressed, + AddRoomListController.Listener, + VectorMenuProvider { override fun getBinding(inflater: LayoutInflater, container: ViewGroup?) = FragmentSpaceAddRoomsBinding.inflate(layoutInflater, container, false) diff --git a/vector/src/main/java/im/vector/app/features/spaces/manage/SpaceSettingsFragment.kt b/vector/src/main/java/im/vector/app/features/spaces/manage/SpaceSettingsFragment.kt index 51bd884908..eb1de4fe60 100644 --- a/vector/src/main/java/im/vector/app/features/spaces/manage/SpaceSettingsFragment.kt +++ b/vector/src/main/java/im/vector/app/features/spaces/manage/SpaceSettingsFragment.kt @@ -37,6 +37,7 @@ import im.vector.app.core.extensions.configureWith import im.vector.app.core.intent.getFilenameFromUri import im.vector.app.core.platform.OnBackPressed import im.vector.app.core.platform.VectorBaseFragment +import im.vector.app.core.platform.VectorMenuProvider import im.vector.app.core.resources.ColorProvider import im.vector.app.core.time.Clock import im.vector.app.core.utils.toast @@ -66,7 +67,8 @@ class SpaceSettingsFragment @Inject constructor( ) : VectorBaseFragment(), SpaceSettingsController.Callback, GalleryOrCameraDialogHelper.Listener, - OnBackPressed { + OnBackPressed, + VectorMenuProvider { private val viewModel: RoomSettingsViewModel by fragmentViewModel() private val sharedViewModel: SpaceManageSharedViewModel by activityViewModel() diff --git a/vector/src/main/java/im/vector/app/features/userdirectory/UserListFragment.kt b/vector/src/main/java/im/vector/app/features/userdirectory/UserListFragment.kt index 9790750368..b31833e37c 100644 --- a/vector/src/main/java/im/vector/app/features/userdirectory/UserListFragment.kt +++ b/vector/src/main/java/im/vector/app/features/userdirectory/UserListFragment.kt @@ -36,6 +36,7 @@ import im.vector.app.core.extensions.configureWith import im.vector.app.core.extensions.hideKeyboard import im.vector.app.core.extensions.setupAsSearch import im.vector.app.core.platform.VectorBaseFragment +import im.vector.app.core.platform.VectorMenuProvider import im.vector.app.core.utils.DimensionConverter import im.vector.app.core.utils.showIdentityServerConsentDialog import im.vector.app.core.utils.startSharePlainTextIntent @@ -54,7 +55,8 @@ class UserListFragment @Inject constructor( private val userListController: UserListController, private val dimensionConverter: DimensionConverter, ) : VectorBaseFragment(), - UserListController.Callback { + UserListController.Callback, + VectorMenuProvider { private val args: UserListFragmentArgs by args() private val viewModel: UserListViewModel by activityViewModel() diff --git a/vector/src/main/java/im/vector/app/features/widgets/WidgetFragment.kt b/vector/src/main/java/im/vector/app/features/widgets/WidgetFragment.kt index cd77902a8c..5501031e92 100644 --- a/vector/src/main/java/im/vector/app/features/widgets/WidgetFragment.kt +++ b/vector/src/main/java/im/vector/app/features/widgets/WidgetFragment.kt @@ -42,6 +42,7 @@ import im.vector.app.R import im.vector.app.core.extensions.registerStartForActivityResult import im.vector.app.core.platform.OnBackPressed import im.vector.app.core.platform.VectorBaseFragment +import im.vector.app.core.platform.VectorMenuProvider import im.vector.app.core.utils.openUrlInExternalBrowser import im.vector.app.databinding.FragmentRoomWidgetBinding import im.vector.app.features.webview.WebEventListener @@ -68,7 +69,8 @@ class WidgetFragment @Inject constructor( ) : VectorBaseFragment(), WebEventListener, - OnBackPressed { + OnBackPressed, + VectorMenuProvider { private val fragmentArgs: WidgetArgs by args() private val viewModel: WidgetViewModel by activityViewModel()