From fe484e84f496ce0dd556cc7e366e9d64f0858c2c Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 7 Sep 2022 10:01:31 +0200 Subject: [PATCH] Fix clicking on invite does not work. Fix #7053 We need the FragmentManager to display a bottom sheet. --- .../features/home/room/detail/TimelineFragment.kt | 2 +- .../app/features/navigation/DefaultNavigator.kt | 15 +++++++-------- .../vector/app/features/navigation/Navigator.kt | 3 ++- .../roomprofile/members/RoomMemberListFragment.kt | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) 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 350748097c..99a1aa064f 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 @@ -497,7 +497,7 @@ class TimelineFragment : RoomDetailViewEvents.HideWaitingView -> vectorBaseActivity.hideWaitingView() is RoomDetailViewEvents.RequestNativeWidgetPermission -> requestNativeWidgetPermission(it) is RoomDetailViewEvents.OpenRoom -> handleOpenRoom(it) - RoomDetailViewEvents.OpenInvitePeople -> navigator.openInviteUsersToRoom(requireContext(), timelineArgs.roomId) + RoomDetailViewEvents.OpenInvitePeople -> navigator.openInviteUsersToRoom(requireActivity(), timelineArgs.roomId) RoomDetailViewEvents.OpenSetRoomAvatarDialog -> galleryOrCameraDialogHelper.show() RoomDetailViewEvents.OpenRoomSettings -> handleOpenRoomSettings(RoomProfileActivity.EXTRA_DIRECT_ACCESS_ROOM_SETTINGS) RoomDetailViewEvents.OpenRoomProfile -> handleOpenRoomSettings() diff --git a/vector/src/main/java/im/vector/app/features/navigation/DefaultNavigator.kt b/vector/src/main/java/im/vector/app/features/navigation/DefaultNavigator.kt index 3b56867a20..6620f6dc09 100644 --- a/vector/src/main/java/im/vector/app/features/navigation/DefaultNavigator.kt +++ b/vector/src/main/java/im/vector/app/features/navigation/DefaultNavigator.kt @@ -30,6 +30,7 @@ import androidx.core.app.ActivityOptionsCompat import androidx.core.app.TaskStackBuilder import androidx.core.util.Pair import androidx.core.view.ViewCompat +import androidx.fragment.app.FragmentActivity import com.google.android.material.dialog.MaterialAlertDialogBuilder import im.vector.app.R import im.vector.app.SpaceStateHandler @@ -347,18 +348,16 @@ class DefaultNavigator @Inject constructor( }.start(context) } - override fun openInviteUsersToRoom(context: Context, roomId: String) { + override fun openInviteUsersToRoom(fragmentActivity: FragmentActivity, roomId: String) { when (val currentSpace = spaceStateHandler.getCurrentSpace()) { - null -> InviteUsersToRoomActivity.getIntent(context, roomId).start(context) - else -> showInviteToDialog(context, currentSpace, roomId) + null -> InviteUsersToRoomActivity.getIntent(fragmentActivity, roomId).start(fragmentActivity) + else -> showInviteToDialog(fragmentActivity, currentSpace, roomId) } } - private fun showInviteToDialog(context: Context, currentSpace: RoomSummary, roomId: String) { - (context as? AppCompatActivity)?.supportFragmentManager?.let { fragmentManager -> - InviteRoomSpaceChooserBottomSheet.showInstance(fragmentManager, currentSpace.roomId, roomId) { itemId -> - InviteUsersToRoomActivity.getIntent(context, itemId).start(context) - } + private fun showInviteToDialog(fragmentActivity: FragmentActivity, currentSpace: RoomSummary, roomId: String) { + InviteRoomSpaceChooserBottomSheet.showInstance(fragmentActivity.supportFragmentManager, currentSpace.roomId, roomId) { itemId -> + InviteUsersToRoomActivity.getIntent(fragmentActivity, itemId).start(fragmentActivity) } } diff --git a/vector/src/main/java/im/vector/app/features/navigation/Navigator.kt b/vector/src/main/java/im/vector/app/features/navigation/Navigator.kt index 5d86456ba5..ed973f293a 100644 --- a/vector/src/main/java/im/vector/app/features/navigation/Navigator.kt +++ b/vector/src/main/java/im/vector/app/features/navigation/Navigator.kt @@ -23,6 +23,7 @@ import android.net.Uri import android.view.View import androidx.activity.result.ActivityResultLauncher import androidx.core.util.Pair +import androidx.fragment.app.FragmentActivity import im.vector.app.features.analytics.plan.ViewRoom import im.vector.app.features.crypto.recover.SetupMode import im.vector.app.features.displayname.getBestName @@ -98,7 +99,7 @@ interface Navigator { fun openCreateDirectRoom(context: Context) - fun openInviteUsersToRoom(context: Context, roomId: String) + fun openInviteUsersToRoom(fragmentActivity: FragmentActivity, roomId: String) fun openRoomDirectory(context: Context, initialFilter: String = "") diff --git a/vector/src/main/java/im/vector/app/features/roomprofile/members/RoomMemberListFragment.kt b/vector/src/main/java/im/vector/app/features/roomprofile/members/RoomMemberListFragment.kt index 259fde1635..8ed8db8c6b 100644 --- a/vector/src/main/java/im/vector/app/features/roomprofile/members/RoomMemberListFragment.kt +++ b/vector/src/main/java/im/vector/app/features/roomprofile/members/RoomMemberListFragment.kt @@ -76,7 +76,7 @@ class RoomMemberListFragment : private fun setupInviteUsersButton() { views.inviteUsersButton.debouncedClicks { - navigator.openInviteUsersToRoom(requireContext(), roomProfileArgs.roomId) + navigator.openInviteUsersToRoom(requireActivity(), roomProfileArgs.roomId) } // Hide FAB when list is scrolling views.roomSettingGeneric.roomSettingsRecyclerView.addOnScrollListener(