From 736646852102f33e59cf45b2404cebff2c02f026 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Zag=C3=B3rski?= Date: Tue, 17 Dec 2024 13:29:21 +0100 Subject: [PATCH] Code review --- .../ui/userprofile/self/SelfUserProfileScreen.kt | 11 ++++------- .../ui/userprofile/self/SelfUserProfileState.kt | 2 +- .../ui/userprofile/self/SelfUserProfileViewModel.kt | 6 ++++-- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/app/src/main/kotlin/com/wire/android/ui/userprofile/self/SelfUserProfileScreen.kt b/app/src/main/kotlin/com/wire/android/ui/userprofile/self/SelfUserProfileScreen.kt index b18fa1f845..60d081bf26 100644 --- a/app/src/main/kotlin/com/wire/android/ui/userprofile/self/SelfUserProfileScreen.kt +++ b/app/src/main/kotlin/com/wire/android/ui/userprofile/self/SelfUserProfileScreen.kt @@ -352,8 +352,8 @@ private fun SelfUserProfileContent( modifier = Modifier.padding(dimensions().spacing16x), verticalArrangement = Arrangement.spacedBy(dimensions().spacing8x) ) { - if (isTeamAdminOrOwner) { - ManageTeamButton(uriHandler::openUri) + if (teamUrl != null) { + ManageTeamButton { uriHandler.openUri(teamUrl) } } NewTeamButton(onAddAccountClick, isUserInCall, context) } @@ -451,15 +451,12 @@ private fun CurrentSelfUserStatus( @Composable private fun ManageTeamButton( - onManageTeamClick: (String) -> Unit + onManageTeamClick: () -> Unit ) { - val teamManagementLink = stringResource(R.string.url_team_management_login) WireSecondaryButton( text = stringResource(R.string.user_profile_account_management), onClickDescription = stringResource(R.string.content_description_self_profile_manage_team_btn), - onClick = { - onManageTeamClick(teamManagementLink) - } + onClick = onManageTeamClick ) } diff --git a/app/src/main/kotlin/com/wire/android/ui/userprofile/self/SelfUserProfileState.kt b/app/src/main/kotlin/com/wire/android/ui/userprofile/self/SelfUserProfileState.kt index 37e276bfff..5c2a742f02 100644 --- a/app/src/main/kotlin/com/wire/android/ui/userprofile/self/SelfUserProfileState.kt +++ b/app/src/main/kotlin/com/wire/android/ui/userprofile/self/SelfUserProfileState.kt @@ -34,7 +34,7 @@ data class SelfUserProfileState( val fullName: String = "", val userName: String = "", val teamName: String? = "", // maybe teamId is better here - val isTeamAdminOrOwner: Boolean = false, + val teamUrl: String? = null, val otherAccounts: List = emptyList(), val statusDialogData: StatusDialogData? = null, // null means no dialog to display val isAvatarLoading: Boolean = false, diff --git a/app/src/main/kotlin/com/wire/android/ui/userprofile/self/SelfUserProfileViewModel.kt b/app/src/main/kotlin/com/wire/android/ui/userprofile/self/SelfUserProfileViewModel.kt index 237cbff948..2820cc43ae 100644 --- a/app/src/main/kotlin/com/wire/android/ui/userprofile/self/SelfUserProfileViewModel.kt +++ b/app/src/main/kotlin/com/wire/android/ui/userprofile/self/SelfUserProfileViewModel.kt @@ -55,6 +55,7 @@ import com.wire.kalium.logic.feature.call.usecase.ObserveEstablishedCallsUseCase import com.wire.kalium.logic.feature.legalhold.LegalHoldStateForSelfUser import com.wire.kalium.logic.feature.legalhold.ObserveLegalHoldStateForSelfUserUseCase import com.wire.kalium.logic.feature.personaltoteamaccount.CanMigrateFromPersonalToTeamUseCase +import com.wire.kalium.logic.feature.server.GetTeamUrlUseCase import com.wire.kalium.logic.feature.team.GetUpdatedSelfTeamUseCase import com.wire.kalium.logic.feature.user.GetSelfUserUseCase import com.wire.kalium.logic.feature.user.IsReadOnlyAccountUseCase @@ -99,7 +100,8 @@ class SelfUserProfileViewModel @Inject constructor( private val notificationManager: WireNotificationManager, private val globalDataStore: GlobalDataStore, private val qualifiedIdMapper: QualifiedIdMapper, - private val anonymousAnalyticsManager: AnonymousAnalyticsManager + private val anonymousAnalyticsManager: AnonymousAnalyticsManager, + private val getTeamUrl: GetTeamUrlUseCase ) : ViewModel() { var userProfileState by mutableStateOf(SelfUserProfileState(userId = selfUserId, isAvatarLoading = true)) @@ -177,7 +179,7 @@ class SelfUserProfileViewModel @Inject constructor( fullName = name.orEmpty(), userName = handle.orEmpty(), teamName = selfTeam?.name, - isTeamAdminOrOwner = userType == UserType.OWNER || userType == UserType.ADMIN, + teamUrl = getTeamUrl().takeIf { userType == UserType.OWNER || userType == UserType.ADMIN }, otherAccounts = otherAccounts, avatarAsset = userProfileState.avatarAsset, isAvatarLoading = false,