From 14629f2041ee8811aa8418a5585abbb52d95e382 Mon Sep 17 00:00:00 2001 From: Valere Date: Fri, 14 May 2021 17:13:57 +0200 Subject: [PATCH 1/2] Fix space invite issues --- CHANGES.md | 3 +- .../im/vector/app/core/di/ScreenComponent.kt | 4 +- .../vector/app/features/home/HomeActivity.kt | 2 +- .../home/room/detail/RoomDetailFragment.kt | 6 +- .../features/spaces/ShareSpaceBottomSheet.kt | 110 --------------- .../spaces/SpaceSettingsMenuBottomSheet.kt | 3 +- .../spaces/people/SpacePeopleActivity.kt | 2 +- .../features/spaces/share/ShareSpaceAction.kt | 24 ++++ .../spaces/share/ShareSpaceBottomSheet.kt | 127 ++++++++++++++++++ .../spaces/share/ShareSpaceViewEvents.kt | 24 ++++ .../spaces/share/ShareSpaceViewModel.kt | 98 ++++++++++++++ .../spaces/share/ShareSpaceViewState.kt | 35 +++++ vector/src/main/res/values/strings.xml | 1 + 13 files changed, 320 insertions(+), 119 deletions(-) delete mode 100644 vector/src/main/java/im/vector/app/features/spaces/ShareSpaceBottomSheet.kt create mode 100644 vector/src/main/java/im/vector/app/features/spaces/share/ShareSpaceAction.kt create mode 100644 vector/src/main/java/im/vector/app/features/spaces/share/ShareSpaceBottomSheet.kt create mode 100644 vector/src/main/java/im/vector/app/features/spaces/share/ShareSpaceViewEvents.kt create mode 100644 vector/src/main/java/im/vector/app/features/spaces/share/ShareSpaceViewModel.kt create mode 100644 vector/src/main/java/im/vector/app/features/spaces/share/ShareSpaceViewState.kt diff --git a/CHANGES.md b/CHANGES.md index 39987201cd..b9a972cd6a 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -8,7 +8,8 @@ Improvements πŸ™Œ: - Bugfix πŸ›: - - + - Space Invite by link not always displayed for public space (#3345) + - Wrong copy in share space bottom sheet (#3346) Translations πŸ—£: - diff --git a/vector/src/main/java/im/vector/app/core/di/ScreenComponent.kt b/vector/src/main/java/im/vector/app/core/di/ScreenComponent.kt index c16c602530..dbfbcbdd1e 100644 --- a/vector/src/main/java/im/vector/app/core/di/ScreenComponent.kt +++ b/vector/src/main/java/im/vector/app/core/di/ScreenComponent.kt @@ -78,12 +78,12 @@ import im.vector.app.features.settings.devices.DeviceVerificationInfoBottomSheet import im.vector.app.features.share.IncomingShareActivity import im.vector.app.features.signout.soft.SoftLogoutActivity import im.vector.app.features.spaces.InviteRoomSpaceChooserBottomSheet -import im.vector.app.features.spaces.ShareSpaceBottomSheet import im.vector.app.features.spaces.SpaceCreationActivity import im.vector.app.features.spaces.SpaceExploreActivity -import im.vector.app.features.spaces.invite.SpaceInviteBottomSheet import im.vector.app.features.spaces.SpaceSettingsMenuBottomSheet +import im.vector.app.features.spaces.invite.SpaceInviteBottomSheet import im.vector.app.features.spaces.manage.SpaceManageActivity +import im.vector.app.features.spaces.share.ShareSpaceBottomSheet import im.vector.app.features.terms.ReviewTermsActivity import im.vector.app.features.ui.UiStateRepository import im.vector.app.features.usercode.UserCodeActivity diff --git a/vector/src/main/java/im/vector/app/features/home/HomeActivity.kt b/vector/src/main/java/im/vector/app/features/home/HomeActivity.kt index 766955f354..7714a69196 100644 --- a/vector/src/main/java/im/vector/app/features/home/HomeActivity.kt +++ b/vector/src/main/java/im/vector/app/features/home/HomeActivity.kt @@ -59,11 +59,11 @@ import im.vector.app.features.rageshake.ReportType import im.vector.app.features.rageshake.VectorUncaughtExceptionHandler import im.vector.app.features.settings.VectorPreferences import im.vector.app.features.settings.VectorSettingsActivity -import im.vector.app.features.spaces.ShareSpaceBottomSheet import im.vector.app.features.spaces.SpaceCreationActivity import im.vector.app.features.spaces.SpacePreviewActivity import im.vector.app.features.spaces.SpaceSettingsMenuBottomSheet import im.vector.app.features.spaces.invite.SpaceInviteBottomSheet +import im.vector.app.features.spaces.share.ShareSpaceBottomSheet import im.vector.app.features.themes.ThemeUtils import im.vector.app.features.workers.signout.ServerBackupStatusViewModel import im.vector.app.features.workers.signout.ServerBackupStatusViewState diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailFragment.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailFragment.kt index cabd69ecf9..18a2f32073 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailFragment.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailFragment.kt @@ -93,9 +93,9 @@ import im.vector.app.core.platform.showOptimizedSnackbar import im.vector.app.core.resources.ColorProvider import im.vector.app.core.ui.views.ActiveConferenceView import im.vector.app.core.ui.views.CurrentCallsView +import im.vector.app.core.ui.views.FailedMessagesWarningView import im.vector.app.core.ui.views.JumpToReadMarkerView import im.vector.app.core.ui.views.KnownCallsViewHolder -import im.vector.app.core.ui.views.FailedMessagesWarningView import im.vector.app.core.ui.views.NotificationAreaView import im.vector.app.core.utils.Debouncer import im.vector.app.core.utils.DimensionConverter @@ -164,7 +164,7 @@ import im.vector.app.features.session.coroutineScope import im.vector.app.features.settings.VectorPreferences import im.vector.app.features.settings.VectorSettingsActivity import im.vector.app.features.share.SharedData -import im.vector.app.features.spaces.ShareSpaceBottomSheet +import im.vector.app.features.spaces.share.ShareSpaceBottomSheet import im.vector.app.features.themes.ThemeUtils import im.vector.app.features.widgets.WidgetActivity import im.vector.app.features.widgets.WidgetArgs @@ -677,7 +677,7 @@ class RoomDetailFragment @Inject constructor( private fun handleSpaceShare() { roomDetailArgs.openShareSpaceForId?.let { spaceId -> - ShareSpaceBottomSheet.show(childFragmentManager, spaceId) + ShareSpaceBottomSheet.show(childFragmentManager, spaceId, true) view?.post { handleChatEffect(ChatEffect.CONFETTI) } diff --git a/vector/src/main/java/im/vector/app/features/spaces/ShareSpaceBottomSheet.kt b/vector/src/main/java/im/vector/app/features/spaces/ShareSpaceBottomSheet.kt deleted file mode 100644 index 2f69ba89b9..0000000000 --- a/vector/src/main/java/im/vector/app/features/spaces/ShareSpaceBottomSheet.kt +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright (c) 2021 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package im.vector.app.features.spaces - -import android.os.Bundle -import android.os.Parcelable -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.core.view.isVisible -import androidx.fragment.app.FragmentManager -import im.vector.app.R -import im.vector.app.core.di.ActiveSessionHolder -import im.vector.app.core.di.ScreenComponent -import im.vector.app.core.platform.VectorBaseBottomSheetDialogFragment -import im.vector.app.core.utils.startSharePlainTextIntent -import im.vector.app.databinding.BottomSheetSpaceInviteBinding -import im.vector.app.features.invite.InviteUsersToRoomActivity -import kotlinx.parcelize.Parcelize -import javax.inject.Inject - -class ShareSpaceBottomSheet : VectorBaseBottomSheetDialogFragment() { - - @Parcelize - data class Args( - val spaceId: String - ) : Parcelable - - override val showExpanded = true - - @Inject - lateinit var activeSessionHolder: ActiveSessionHolder - - override fun injectWith(injector: ScreenComponent) { - injector.inject(this) - } - - override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): BottomSheetSpaceInviteBinding { - return BottomSheetSpaceInviteBinding.inflate(inflater, container, false) - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - - // Not going for full view model for now, as it may change - - val args: Args = arguments?.getParcelable(EXTRA_ARGS) - ?: return Unit.also { dismiss() } - val summary = activeSessionHolder.getSafeActiveSession()?.spaceService()?.getSpace(args.spaceId)?.spaceSummary() - - val spaceName = summary?.name - views.descriptionText.text = getString(R.string.invite_people_to_your_space_desc, spaceName) - - // XXX enable back when supported - views.inviteByMailButton.isVisible = false - views.inviteByMailButton.debouncedClicks { - } - - views.inviteByMxidButton.debouncedClicks { - val intent = InviteUsersToRoomActivity.getIntent(requireContext(), args.spaceId) - startActivity(intent) - } - - views.inviteByLinkButton.debouncedClicks { - activeSessionHolder.getSafeActiveSession()?.permalinkService()?.createRoomPermalink(args.spaceId)?.let { permalink -> - startSharePlainTextIntent( - fragment = this, - activityResultLauncher = null, - chooserTitle = getString(R.string.share_by_text), - text = getString(R.string.share_space_link_message, spaceName, permalink), - extraTitle = getString(R.string.share_space_link_message, spaceName, permalink) - ) - } - } - -// views.skipButton.debouncedClicks { -// dismiss() -// } - } - - companion object { - - const val EXTRA_ARGS = "EXTRA_ARGS" - - fun show(fragmentManager: FragmentManager, spaceId: String): ShareSpaceBottomSheet { - return ShareSpaceBottomSheet().apply { - isCancelable = true - arguments = Bundle().apply { - this.putParcelable(EXTRA_ARGS, ShareSpaceBottomSheet.Args(spaceId = spaceId)) - } - }.also { - it.show(fragmentManager, ShareSpaceBottomSheet::class.java.name) - } - } - } -} diff --git a/vector/src/main/java/im/vector/app/features/spaces/SpaceSettingsMenuBottomSheet.kt b/vector/src/main/java/im/vector/app/features/spaces/SpaceSettingsMenuBottomSheet.kt index 1586b16ff6..c4df939e97 100644 --- a/vector/src/main/java/im/vector/app/features/spaces/SpaceSettingsMenuBottomSheet.kt +++ b/vector/src/main/java/im/vector/app/features/spaces/SpaceSettingsMenuBottomSheet.kt @@ -43,6 +43,7 @@ import io.reactivex.android.schedulers.AndroidSchedulers import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch import kotlinx.parcelize.Parcelize +import org.matrix.android.sdk.api.extensions.orFalse import org.matrix.android.sdk.api.session.events.model.EventType import org.matrix.android.sdk.api.session.room.powerlevels.PowerLevelsHelper import org.matrix.android.sdk.api.util.toMatrixItem @@ -105,7 +106,7 @@ class SpaceSettingsMenuBottomSheet : VectorBaseBottomSheetDialogFragment() { diff --git a/vector/src/main/java/im/vector/app/features/spaces/share/ShareSpaceAction.kt b/vector/src/main/java/im/vector/app/features/spaces/share/ShareSpaceAction.kt new file mode 100644 index 0000000000..d97e17fabb --- /dev/null +++ b/vector/src/main/java/im/vector/app/features/spaces/share/ShareSpaceAction.kt @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2021 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package im.vector.app.features.spaces.share + +import im.vector.app.core.platform.VectorViewModelAction + +sealed class ShareSpaceAction : VectorViewModelAction { + object InviteByMxId : ShareSpaceAction() + object InviteByLink : ShareSpaceAction() +} diff --git a/vector/src/main/java/im/vector/app/features/spaces/share/ShareSpaceBottomSheet.kt b/vector/src/main/java/im/vector/app/features/spaces/share/ShareSpaceBottomSheet.kt new file mode 100644 index 0000000000..08c75698eb --- /dev/null +++ b/vector/src/main/java/im/vector/app/features/spaces/share/ShareSpaceBottomSheet.kt @@ -0,0 +1,127 @@ +/* + * Copyright (c) 2021 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package im.vector.app.features.spaces.share + +import android.os.Bundle +import android.os.Parcelable +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.core.view.isVisible +import androidx.fragment.app.FragmentManager +import com.airbnb.mvrx.fragmentViewModel +import com.airbnb.mvrx.withState +import im.vector.app.R +import im.vector.app.core.di.ScreenComponent +import im.vector.app.core.extensions.setTextOrHide +import im.vector.app.core.platform.VectorBaseBottomSheetDialogFragment +import im.vector.app.core.utils.startSharePlainTextIntent +import im.vector.app.databinding.BottomSheetSpaceInviteBinding +import im.vector.app.features.invite.InviteUsersToRoomActivity +import kotlinx.parcelize.Parcelize +import javax.inject.Inject + +class ShareSpaceBottomSheet : VectorBaseBottomSheetDialogFragment(), ShareSpaceViewModel.Factory { + + @Parcelize + data class Args( + val spaceId: String, + val postCreation: Boolean = false + ) : Parcelable + + override val showExpanded = true + + private val viewModel: ShareSpaceViewModel by fragmentViewModel(ShareSpaceViewModel::class) + + @Inject lateinit var viewModelFactory: ShareSpaceViewModel.Factory + + override fun create(initialState: ShareSpaceViewState): ShareSpaceViewModel = viewModelFactory.create(initialState) + + override fun injectWith(injector: ScreenComponent) { + injector.inject(this) + } + + override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): BottomSheetSpaceInviteBinding { + return BottomSheetSpaceInviteBinding.inflate(inflater, container, false) + } + + override fun invalidate() = withState(viewModel) { state -> + super.invalidate() + val summary = state.spaceSummary.invoke() + + val spaceName = summary?.name + + if (state.postCreation) { + views.headerText.text = getString(R.string.invite_people_to_your_space) + views.descriptionText.setTextOrHide(getString(R.string.invite_people_to_your_space_desc, spaceName)) + } else { + views.headerText.text = getString(R.string.invite_to_space, spaceName) + views.descriptionText.setTextOrHide(null) + } + + views.inviteByMailButton.isVisible = false // not yet implemented + views.inviteByLinkButton.isVisible = state.canShareLink + views.inviteByMxidButton.isVisible = state.canInviteByMxId + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + // XXX enable back when supported + views.inviteByMailButton.isVisible = false + views.inviteByMailButton.debouncedClicks { + } + + views.inviteByMxidButton.debouncedClicks { + viewModel.handle(ShareSpaceAction.InviteByMxId) + } + + views.inviteByLinkButton.debouncedClicks { + viewModel.handle(ShareSpaceAction.InviteByLink) + } + + viewModel.observeViewEvents { event -> + when (event) { + is ShareSpaceViewEvents.NavigateToInviteUser -> { + val intent = InviteUsersToRoomActivity.getIntent(requireContext(), event.spaceId) + startActivity(intent) + } + is ShareSpaceViewEvents.ShowInviteByLing -> { + startSharePlainTextIntent( + fragment = this, + activityResultLauncher = null, + chooserTitle = getString(R.string.share_by_text), + text = getString(R.string.share_space_link_message, event.spaceName, event.permalink), + extraTitle = getString(R.string.share_space_link_message, event.spaceName, event.permalink) + ) + } + } + } + } + + companion object { + + fun show(fragmentManager: FragmentManager, spaceId: String, postCreation: Boolean = false): ShareSpaceBottomSheet { + return ShareSpaceBottomSheet().apply { + isCancelable = true + setArguments(Args(spaceId = spaceId, postCreation = postCreation)) + }.also { + it.show(fragmentManager, ShareSpaceBottomSheet::class.java.name) + } + } + } +} diff --git a/vector/src/main/java/im/vector/app/features/spaces/share/ShareSpaceViewEvents.kt b/vector/src/main/java/im/vector/app/features/spaces/share/ShareSpaceViewEvents.kt new file mode 100644 index 0000000000..a7fc4ae27c --- /dev/null +++ b/vector/src/main/java/im/vector/app/features/spaces/share/ShareSpaceViewEvents.kt @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2021 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package im.vector.app.features.spaces.share + +import im.vector.app.core.platform.VectorViewEvents + +sealed class ShareSpaceViewEvents : VectorViewEvents { + data class NavigateToInviteUser(val spaceId: String) : ShareSpaceViewEvents() + data class ShowInviteByLing(val permalink: String, val spaceName: String) : ShareSpaceViewEvents() +} diff --git a/vector/src/main/java/im/vector/app/features/spaces/share/ShareSpaceViewModel.kt b/vector/src/main/java/im/vector/app/features/spaces/share/ShareSpaceViewModel.kt new file mode 100644 index 0000000000..b7920caf40 --- /dev/null +++ b/vector/src/main/java/im/vector/app/features/spaces/share/ShareSpaceViewModel.kt @@ -0,0 +1,98 @@ +/* + * Copyright (c) 2021 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package im.vector.app.features.spaces.share + +import com.airbnb.mvrx.ActivityViewModelContext +import com.airbnb.mvrx.FragmentViewModelContext +import com.airbnb.mvrx.MvRxViewModelFactory +import com.airbnb.mvrx.Success +import com.airbnb.mvrx.Uninitialized +import com.airbnb.mvrx.ViewModelContext +import dagger.assisted.Assisted +import dagger.assisted.AssistedFactory +import dagger.assisted.AssistedInject +import im.vector.app.core.platform.VectorViewModel +import im.vector.app.features.powerlevel.PowerLevelsObservableFactory +import org.matrix.android.sdk.api.extensions.orFalse +import org.matrix.android.sdk.api.session.Session +import org.matrix.android.sdk.api.session.room.powerlevels.PowerLevelsHelper + +class ShareSpaceViewModel @AssistedInject constructor( + @Assisted private val initialState: ShareSpaceViewState, + private val session: Session) : VectorViewModel(initialState) { + + @AssistedFactory + interface Factory { + fun create(initialState: ShareSpaceViewState): ShareSpaceViewModel + } + + companion object : MvRxViewModelFactory { + override fun create(viewModelContext: ViewModelContext, state: ShareSpaceViewState): ShareSpaceViewModel? { + val factory = when (viewModelContext) { + is FragmentViewModelContext -> viewModelContext.fragment as? Factory + is ActivityViewModelContext -> viewModelContext.activity as? Factory + } + return factory?.create(state) ?: error("You should let your activity/fragment implements Factory interface") + } + } + + init { + val roomSummary = session.getRoomSummary(initialState.spaceId) + setState { + copy( + spaceSummary = roomSummary?.let { Success(it) } ?: Uninitialized, + canShareLink = roomSummary?.isPublic.orFalse() + ) + } + observePowerLevel() + } + + private fun observePowerLevel() { + val room = session.getRoom(initialState.spaceId) ?: return + PowerLevelsObservableFactory(room) + .createObservable() + .subscribe { powerLevelContent -> + val powerLevelsHelper = PowerLevelsHelper(powerLevelContent) + setState { + copy( + canInviteByMxId = powerLevelsHelper.isUserAbleToInvite(session.myUserId) + ) + } + } + .disposeOnClear() + } + + override fun handle(action: ShareSpaceAction) { + when (action) { + ShareSpaceAction.InviteByLink -> { + val roomSummary = session.getRoomSummary(initialState.spaceId) + val alias = roomSummary?.canonicalAlias + val permalink = if (alias != null) { + session.permalinkService().createPermalink(alias) + } else { + session.permalinkService().createRoomPermalink(initialState.spaceId) + } + if (permalink != null) { + _viewEvents.post(ShareSpaceViewEvents.ShowInviteByLing(permalink, roomSummary?.name ?: "")) + } + } + ShareSpaceAction.InviteByMxId -> { + _viewEvents.post(ShareSpaceViewEvents.NavigateToInviteUser(initialState.spaceId)) + } + } + } +} diff --git a/vector/src/main/java/im/vector/app/features/spaces/share/ShareSpaceViewState.kt b/vector/src/main/java/im/vector/app/features/spaces/share/ShareSpaceViewState.kt new file mode 100644 index 0000000000..97606e9506 --- /dev/null +++ b/vector/src/main/java/im/vector/app/features/spaces/share/ShareSpaceViewState.kt @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2021 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package im.vector.app.features.spaces.share + +import com.airbnb.mvrx.Async +import com.airbnb.mvrx.MvRxState +import com.airbnb.mvrx.Uninitialized +import org.matrix.android.sdk.api.session.room.model.RoomSummary + +data class ShareSpaceViewState( + val spaceId: String, + val spaceSummary: Async = Uninitialized, + val canInviteByMxId: Boolean = false, + val canShareLink: Boolean = false, + val postCreation: Boolean = false +) : MvRxState { + constructor(args: ShareSpaceBottomSheet.Args) : this( + spaceId = args.spaceId, + postCreation = args.postCreation + ) +} diff --git a/vector/src/main/res/values/strings.xml b/vector/src/main/res/values/strings.xml index aa85a52ec3..94273a62c7 100644 --- a/vector/src/main/res/values/strings.xml +++ b/vector/src/main/res/values/strings.xml @@ -3323,6 +3323,7 @@ Description Invite people to your space Invite people + Invite to %s It’s just you at the moment. %s will be even better with others. Invite by email Invite by username From 39b89ff103a3ad6ce7c7808a69a0c43b2974b926 Mon Sep 17 00:00:00 2001 From: Valere Date: Fri, 14 May 2021 18:54:11 +0200 Subject: [PATCH 2/2] Code review --- .../vector/app/features/spaces/share/ShareSpaceBottomSheet.kt | 3 +-- .../vector/app/features/spaces/share/ShareSpaceViewEvents.kt | 2 +- .../im/vector/app/features/spaces/share/ShareSpaceViewModel.kt | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/vector/src/main/java/im/vector/app/features/spaces/share/ShareSpaceBottomSheet.kt b/vector/src/main/java/im/vector/app/features/spaces/share/ShareSpaceBottomSheet.kt index 08c75698eb..4289af7b3b 100644 --- a/vector/src/main/java/im/vector/app/features/spaces/share/ShareSpaceBottomSheet.kt +++ b/vector/src/main/java/im/vector/app/features/spaces/share/ShareSpaceBottomSheet.kt @@ -100,7 +100,7 @@ class ShareSpaceBottomSheet : VectorBaseBottomSheetDialogFragment { + is ShareSpaceViewEvents.ShowInviteByLink -> { startSharePlainTextIntent( fragment = this, activityResultLauncher = null, @@ -117,7 +117,6 @@ class ShareSpaceBottomSheet : VectorBaseBottomSheetDialogFragment {