Skip to content

Commit

Permalink
fix: Create Group protocol not editable anymore [WPB-7109] (#2790)
Browse files Browse the repository at this point in the history
  • Loading branch information
borichellow committed Mar 14, 2024
1 parent efe1ca6 commit b962aeb
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 28 deletions.
Expand Up @@ -23,6 +23,7 @@ import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.text.KeyboardActions
Expand All @@ -31,7 +32,6 @@ import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.ChevronRight
import androidx.compose.material3.MaterialTheme
import com.wire.android.ui.common.scaffold.WireScaffold
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
Expand All @@ -46,19 +46,18 @@ import androidx.compose.ui.tooling.preview.Preview
import com.wire.android.R
import com.wire.android.ui.common.Icon
import com.wire.android.ui.common.ShakeAnimation
import com.wire.android.ui.common.WireDropDown
import com.wire.android.ui.common.button.WireButtonState
import com.wire.android.ui.common.button.WirePrimaryButton
import com.wire.android.ui.common.groupname.GroupNameMode.CREATION
import com.wire.android.ui.common.rememberBottomBarElevationState
import com.wire.android.ui.common.rememberTopBarElevationState
import com.wire.android.ui.common.scaffold.WireScaffold
import com.wire.android.ui.common.textfield.WireTextField
import com.wire.android.ui.common.textfield.WireTextFieldState
import com.wire.android.ui.common.topappbar.WireCenterAlignedTopAppBar
import com.wire.android.ui.theme.wireColorScheme
import com.wire.android.ui.theme.wireDimensions
import com.wire.android.ui.theme.wireTypography
import com.wire.kalium.logic.data.conversation.ConversationOptions

@OptIn(ExperimentalComposeUiApi::class)
@Composable
Expand Down Expand Up @@ -120,18 +119,23 @@ fun GroupNameScreen(
)
}
}
if (mode == CREATION && mlsEnabled) {
WireDropDown(
items =
ConversationOptions.Protocol.values().map { it.name },
defaultItemIndex = defaultProtocol.ordinal,
selectedItemIndex = groupProtocol.ordinal,
label = stringResource(R.string.protocol),
if (mode == CREATION) {
Spacer(modifier = Modifier.height(MaterialTheme.wireDimensions.spacing16x))
Text(
text = stringResource(R.string.protocol),
style = MaterialTheme.wireTypography.label01,
modifier = Modifier
.padding(MaterialTheme.wireDimensions.spacing16x)
) { selectedIndex ->
groupProtocol = ConversationOptions.Protocol.values()[selectedIndex]
}
.fillMaxWidth()
.padding(horizontal = MaterialTheme.wireDimensions.spacing16x)
.padding(bottom = MaterialTheme.wireDimensions.spacing4x)
)
Text(
text = groupProtocol.name,
style = MaterialTheme.wireTypography.body02,
modifier = Modifier
.fillMaxWidth()
.padding(horizontal = MaterialTheme.wireDimensions.spacing16x)
)
}

Spacer(modifier = Modifier.weight(1f))
Expand Down
Expand Up @@ -28,11 +28,9 @@ data class GroupMetadataState(
val originalGroupName: String = "",
val selectedUsers: ImmutableSet<Contact> = persistentSetOf(),
val groupName: TextFieldValue = TextFieldValue(""),
var groupProtocol: ConversationOptions.Protocol = ConversationOptions.Protocol.PROTEUS,
val groupProtocol: ConversationOptions.Protocol = ConversationOptions.Protocol.PROTEUS,
val animatedGroupNameError: Boolean = false,
val continueEnabled: Boolean = false,
val mlsEnabled: Boolean = true,
val defaultProtocol: ConversationOptions.Protocol = ConversationOptions.Protocol.PROTEUS,
val isLoading: Boolean = false,
val error: NewGroupError = NewGroupError.None,
val mode: GroupNameMode = GroupNameMode.CREATION,
Expand Down
Expand Up @@ -37,7 +37,6 @@ import com.wire.kalium.logic.data.id.ConversationId
import com.wire.kalium.logic.data.user.UserId
import com.wire.kalium.logic.feature.conversation.CreateGroupConversationUseCase
import com.wire.kalium.logic.feature.user.GetDefaultProtocolUseCase
import com.wire.kalium.logic.feature.user.IsMLSEnabledUseCase
import com.wire.kalium.logic.feature.user.IsSelfATeamMemberUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.collections.immutable.toImmutableSet
Expand All @@ -49,21 +48,15 @@ import javax.inject.Inject
class NewConversationViewModel @Inject constructor(
private val createGroupConversation: CreateGroupConversationUseCase,
private val isSelfATeamMember: IsSelfATeamMemberUseCase,
isMLSEnabled: IsMLSEnabledUseCase,
getDefaultProtocol: GetDefaultProtocolUseCase
) : ViewModel() {

var newGroupState: GroupMetadataState by mutableStateOf(
GroupMetadataState(
mlsEnabled = isMLSEnabled()
).let {
GroupMetadataState().let {
val defaultProtocol = ConversationOptions
.Protocol
.fromSupportedProtocolToConversationOptionsProtocol(getDefaultProtocol())
it.copy(
defaultProtocol = defaultProtocol,
groupProtocol = defaultProtocol
)
it.copy(groupProtocol = defaultProtocol)
}
)

Expand Down
Expand Up @@ -173,7 +173,6 @@ internal class NewConversationViewModelArrangement {

fun arrange() = this to NewConversationViewModel(
createGroupConversation = createGroupConversation,
isMLSEnabled = isMLSEnabledUseCase,
isSelfATeamMember = isSelfTeamMember,
getDefaultProtocol = getDefaultProtocol
).also {
Expand Down
Expand Up @@ -157,7 +157,7 @@ class NewConversationViewModelTest {
.arrange()

// when
val result = viewModel.newGroupState.defaultProtocol
val result = viewModel.newGroupState.groupProtocol

// then
assertEquals(
Expand Down

0 comments on commit b962aeb

Please sign in to comment.