Skip to content

Commit 7ece2ec

Browse files
committed
chore: remove Chat Bubbles feature flag and related code [WPB-22018] (#4448)
(cherry picked from commit 670d1c5)
1 parent 5cda3c2 commit 7ece2ec

File tree

18 files changed

+33
-97
lines changed

18 files changed

+33
-97
lines changed

app/src/main/kotlin/com/wire/android/datastore/GlobalDataStore.kt

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ class GlobalDataStore @Inject constructor(@ApplicationContext private val contex
5555
private val APP_LOCK_PASSCODE = stringPreferencesKey("app_lock_passcode")
5656
private val APP_LOCK_SOURCE = intPreferencesKey("app_lock_source")
5757
private val ENTER_TO_SENT = booleanPreferencesKey("enter_to_sent")
58-
private val IS_BUBBLE_UI = booleanPreferencesKey("is_bubble_ui")
5958
private val ANONYMOUS_REGISTRATION_TRACK_ID = stringPreferencesKey("anonymous_registration_track_id")
6059
private val IS_ANONYMOUS_REGISTRATION_ENABLED = booleanPreferencesKey("is_anonymous_registration_enabled")
6160

@@ -213,10 +212,4 @@ class GlobalDataStore @Inject constructor(@ApplicationContext private val contex
213212
suspend fun setEnterToSend(enabled: Boolean) {
214213
context.dataStore.edit { it[ENTER_TO_SENT] = enabled }
215214
}
216-
217-
fun observeIsBubbleUI() = getBooleanPreference(IS_BUBBLE_UI, false)
218-
219-
suspend fun setBubbleUiEnabled(enabled: Boolean) {
220-
context.dataStore.edit { it[IS_BUBBLE_UI] = enabled }
221-
}
222215
}

app/src/main/kotlin/com/wire/android/di/accountScoped/UserModule.kt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import com.wire.kalium.logic.feature.asset.DeleteAssetUseCase
2525
import com.wire.kalium.logic.feature.asset.GetAssetSizeLimitUseCase
2626
import com.wire.kalium.logic.feature.asset.GetAvatarAssetUseCase
2727
import com.wire.kalium.logic.feature.client.FinalizeMLSClientAfterE2EIEnrollment
28-
import com.wire.kalium.logic.feature.client.IsChatBubblesEnabledUseCase
2928
import com.wire.kalium.logic.feature.client.IsProfileQRCodeEnabledUseCase
3029
import com.wire.kalium.logic.feature.client.IsWireCellsEnabledForConversationUseCase
3130
import com.wire.kalium.logic.feature.client.IsWireCellsEnabledUseCase
@@ -260,10 +259,6 @@ class UserModule {
260259
@Provides
261260
fun provideCellsConfigUseCase(userScope: UserScope): IsWireCellsEnabledUseCase = userScope.isWireCellsEnabled
262261

263-
@ViewModelScoped
264-
@Provides
265-
fun provideChatBubblesConfigUseCase(userScope: UserScope): IsChatBubblesEnabledUseCase = userScope.isChatBubblesEnabled
266-
267262
@ViewModelScoped
268263
@Provides
269264
fun provideIsWireCellsEnabledForConversationUseCase(userScope: UserScope): IsWireCellsEnabledForConversationUseCase =

app/src/main/kotlin/com/wire/android/ui/debug/featureflags/DebugFeatureFlagsViewModel.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,6 @@ class DebugFeatureFlagsViewModel @Inject constructor(
6969
addFeature("Allowed Global Operations", allowedGlobalOperationsModel?.status, allowedGlobalOperationsModel)
7070
addFeature("Wire Cells", cellsModel?.status)
7171
addFeature("User Profile QR code", enableUserProfileQRCodeConfigModel?.status)
72-
addFeature("Message bubbles", chatBubblesModel?.status)
7372
add(
7473
Feature(
7574
name = "Channels",

app/src/main/kotlin/com/wire/android/ui/home/conversations/ConversationScreen.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ import com.ramcosta.composedestinations.result.NavResult.Value
8787
import com.ramcosta.composedestinations.result.OpenResultRecipient
8888
import com.ramcosta.composedestinations.result.ResultBackNavigator
8989
import com.ramcosta.composedestinations.result.ResultRecipient
90+
import com.wire.android.BuildConfig.IS_BUBBLE_UI_ENABLED
9091
import com.wire.android.R
9192
import com.wire.android.appLogger
9293
import com.wire.android.feature.analytics.AnonymousAnalyticsManagerImpl
@@ -925,7 +926,7 @@ private fun ConversationScreen(
925926
Box(modifier = Modifier) {
926927
// only here we will use normal Scaffold because of specific behaviour of message composer
927928
Scaffold(
928-
contentColor = if (conversationInfoViewState.isBubbleUiEnabled) {
929+
contentColor = if (IS_BUBBLE_UI_ENABLED) {
929930
colorsScheme().primary
930931
} else {
931932
colorsScheme().background
@@ -1019,7 +1020,7 @@ private fun ConversationScreen(
10191020
onAttachmentClick = onAttachmentClick,
10201021
onAttachmentMenuClick = onAttachmentMenuClick,
10211022
showHistoryLoadingIndicator = conversationInfoViewState.showHistoryLoadingIndicator,
1022-
isBubbleUiEnabled = conversationInfoViewState.isBubbleUiEnabled,
1023+
isBubbleUiEnabled = IS_BUBBLE_UI_ENABLED,
10231024
isWireCellsEnabled = isWireCellsEnabled,
10241025
)
10251026
}

app/src/main/kotlin/com/wire/android/ui/home/conversations/info/ConversationInfoViewModel.kt

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ import androidx.lifecycle.ViewModel
2626
import androidx.lifecycle.viewModelScope
2727
import com.wire.android.R
2828
import com.wire.android.appLogger
29-
import com.wire.android.datastore.GlobalDataStore
3029
import com.wire.android.di.CurrentAccount
3130
import com.wire.android.model.ImageAsset
3231
import com.wire.android.ui.home.conversations.ConversationNavArgs
@@ -39,12 +38,10 @@ import com.wire.kalium.logic.data.id.QualifiedID
3938
import com.wire.kalium.logic.data.id.QualifiedIdMapper
4039
import com.wire.kalium.logic.data.user.ConnectionState
4140
import com.wire.kalium.logic.data.user.UserId
42-
import com.wire.kalium.logic.feature.client.IsChatBubblesEnabledUseCase
4341
import com.wire.kalium.logic.feature.client.IsWireCellsEnabledUseCase
4442
import com.wire.kalium.logic.feature.conversation.ObserveConversationDetailsUseCase
4543
import com.wire.kalium.logic.feature.e2ei.usecase.FetchConversationMLSVerificationStatusUseCase
4644
import dagger.hilt.android.lifecycle.HiltViewModel
47-
import kotlinx.coroutines.flow.firstOrNull
4845
import kotlinx.coroutines.launch
4946
import javax.inject.Inject
5047

@@ -54,10 +51,8 @@ class ConversationInfoViewModel @Inject constructor(
5451
private val qualifiedIdMapper: QualifiedIdMapper,
5552
val savedStateHandle: SavedStateHandle,
5653
private val observeConversationDetails: ObserveConversationDetailsUseCase,
57-
private val globalDataStore: GlobalDataStore,
5854
private val fetchConversationMLSVerificationStatus: FetchConversationMLSVerificationStatusUseCase,
5955
private val isWireCellFeatureEnabled: IsWireCellsEnabledUseCase,
60-
private val isChatBubblesEnabledUseCase: IsChatBubblesEnabledUseCase,
6156
@CurrentAccount private val selfUserId: UserId,
6257
) : ViewModel() {
6358

@@ -127,13 +122,9 @@ class ConversationInfoViewModel @Inject constructor(
127122
legalHoldStatus = conversationDetails.conversation.legalHoldStatus,
128123
accentId = getAccentId(conversationDetails),
129124
isWireCellEnabled = isWireCellFeatureEnabled() && (conversationDetails as? ConversationDetails.Group)?.wireCell != null,
130-
isBubbleUiEnabled = isBubbleUiEnabled()
131125
)
132126
}
133127

134-
private suspend fun isBubbleUiEnabled() = (globalDataStore.observeIsBubbleUI().firstOrNull() ?: false)
135-
|| isChatBubblesEnabledUseCase()
136-
137128
private fun getAccentId(conversationDetails: ConversationDetails): Int {
138129
return if (conversationDetails is ConversationDetails.OneOne) {
139130
conversationDetails.otherUser.accentId

app/src/main/kotlin/com/wire/android/ui/home/conversations/info/ConversationInfoViewState.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ data class ConversationInfoViewState(
4040
val accentId: Int = -1,
4141
val isWireCellEnabled: Boolean = false,
4242
val notFound: Boolean = false,
43-
val isBubbleUiEnabled: Boolean = false
4443
) {
4544
val showHistoryLoadingIndicator: Boolean get() = conversationType == Conversation.Type.Group.Channel
4645
}

app/src/main/kotlin/com/wire/android/ui/home/settings/account/color/ChangeUserColorScreen.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import androidx.compose.ui.res.stringResource
3838
import androidx.hilt.navigation.compose.hiltViewModel
3939
import com.ramcosta.composedestinations.result.ResultBackNavigator
4040
import com.ramcosta.composedestinations.spec.DestinationStyle
41+
import com.wire.android.BuildConfig.IS_BUBBLE_UI_ENABLED
4142
import com.wire.android.R
4243
import com.wire.android.navigation.Navigator
4344
import com.wire.android.navigation.annotation.app.WireDestination
@@ -182,7 +183,7 @@ fun ChangeUserColorContent(
182183
}
183184

184185
VerticalSpace.x24()
185-
if (state.isMessageBubbleEnabled) {
186+
if (IS_BUBBLE_UI_ENABLED) {
186187
SectionHeader(stringResource(R.string.settings_myaccount_user_color_example))
187188
VerticalSpace.x4()
188189

@@ -268,5 +269,5 @@ fun PreviewChangeUserColor() = WireTheme {
268269
@PreviewMultipleThemes
269270
@Composable
270271
fun PreviewChangeUserColorWithExample() = WireTheme {
271-
ChangeUserColorContent(AccentActionState(Accent.Green, isMessageBubbleEnabled = true), {}, {}, {})
272+
ChangeUserColorContent(AccentActionState(Accent.Green), {}, {}, {})
272273
}

app/src/main/kotlin/com/wire/android/ui/home/settings/account/color/ChangeUserColorViewModel.kt

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,24 +22,19 @@ import androidx.compose.runtime.getValue
2222
import androidx.compose.runtime.mutableStateOf
2323
import androidx.compose.runtime.setValue
2424
import androidx.lifecycle.viewModelScope
25-
import com.wire.android.datastore.GlobalDataStore
2625
import com.wire.android.ui.common.ActionsViewModel
2726
import com.wire.android.ui.theme.Accent
28-
import com.wire.kalium.logic.feature.client.IsChatBubblesEnabledUseCase
2927
import com.wire.kalium.logic.feature.user.GetSelfUserUseCase
3028
import com.wire.kalium.logic.feature.user.UpdateAccentColorResult
3129
import com.wire.kalium.logic.feature.user.UpdateAccentColorUseCase
3230
import dagger.hilt.android.lifecycle.HiltViewModel
33-
import kotlinx.coroutines.flow.firstOrNull
3431
import kotlinx.coroutines.launch
3532
import javax.inject.Inject
3633

3734
@HiltViewModel
3835
class ChangeUserColorViewModel @Inject constructor(
3936
private val getSelf: GetSelfUserUseCase,
4037
private val updateAccentColor: UpdateAccentColorUseCase,
41-
private val isChatBubblesEnabled: IsChatBubblesEnabledUseCase,
42-
private val globalDataStore: GlobalDataStore
4338
) : ActionsViewModel<ChangeUserColorAction>() {
4439

4540
var accentState: AccentActionState by mutableStateOf(AccentActionState(null))
@@ -49,18 +44,14 @@ class ChangeUserColorViewModel @Inject constructor(
4944
viewModelScope.launch {
5045
getSelf()?.accentId.let { accentId ->
5146
accentState = AccentActionState(
52-
accent = Accent.fromAccentId(accentId),
53-
isMessageBubbleEnabled = isBubbleUiEnabled()
47+
accent = Accent.fromAccentId(accentId)
5448
)
5549
}
5650
}
5751
}
5852

59-
private suspend fun isBubbleUiEnabled() = (globalDataStore.observeIsBubbleUI().firstOrNull() ?: false)
60-
|| isChatBubblesEnabled()
61-
6253
fun changeAccentColor(accent: Accent) {
63-
accentState = accentState.copy(accent)
54+
accentState = accentState.copy(accent = accent)
6455
}
6556

6657
fun saveAccentColor() {
@@ -85,7 +76,6 @@ class ChangeUserColorViewModel @Inject constructor(
8576
data class AccentActionState(
8677
val accent: Accent?,
8778
val isPerformingAction: Boolean = false,
88-
val isMessageBubbleEnabled: Boolean = false
8979
)
9080

9181
enum class ChangeUserColorAction {

app/src/main/kotlin/com/wire/android/ui/home/settings/appearance/CustomizationScreen.kt

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ import androidx.compose.ui.text.buildAnnotatedString
4141
import androidx.compose.ui.text.withStyle
4242
import androidx.compose.ui.unit.dp
4343
import androidx.hilt.navigation.compose.hiltViewModel
44-
import com.wire.android.BuildConfig
4544
import com.wire.android.R
4645
import com.wire.android.navigation.Navigator
4746
import com.wire.android.navigation.annotation.app.WireDestination
@@ -73,7 +72,6 @@ fun CustomizationScreen(
7372
onThemeOptionChanged = viewModel::selectThemeOption,
7473
onBackPressed = navigator::navigateBack,
7574
onEnterToSendClicked = viewModel::selectPressEnterToSendOption,
76-
onMessageBubbleClicked = viewModel::selectBubbleUI
7775
)
7876
}
7977

@@ -83,7 +81,6 @@ fun CustomizationScreenContent(
8381
onThemeOptionChanged: (ThemeOption) -> Unit,
8482
onBackPressed: () -> Unit,
8583
onEnterToSendClicked: (Boolean) -> Unit,
86-
onMessageBubbleClicked: (Boolean) -> Unit,
8784
modifier: Modifier = Modifier,
8885
lazyListState: LazyListState = rememberLazyListState()
8986
) {
@@ -116,9 +113,7 @@ fun CustomizationScreenContent(
116113
item {
117114
CustomizationOptionsContent(
118115
enterToSendState = state.pressEnterToSentState,
119-
isBubbleUiEnabled = state.isBubbleUiEnabled,
120116
enterToSendClicked = onEnterToSendClicked,
121-
onMessageBubbleClicked = onMessageBubbleClicked
122117
)
123118
}
124119
}
@@ -128,9 +123,7 @@ fun CustomizationScreenContent(
128123
@Composable
129124
fun CustomizationOptionsContent(
130125
enterToSendState: Boolean,
131-
isBubbleUiEnabled: Boolean,
132126
enterToSendClicked: (Boolean) -> Unit,
133-
onMessageBubbleClicked: (Boolean) -> Unit,
134127
modifier: Modifier = Modifier,
135128
) {
136129
Column(
@@ -144,13 +137,6 @@ fun CustomizationOptionsContent(
144137
arrowType = ArrowType.NONE,
145138
subtitle = stringResource(id = R.string.press_enter_to_send_text)
146139
)
147-
if (BuildConfig.PRIVATE_BUILD) {
148-
GroupConversationOptionsItem(
149-
title = "Message bubbles",
150-
switchState = SwitchState.Enabled(value = isBubbleUiEnabled, onCheckedChange = onMessageBubbleClicked),
151-
arrowType = ArrowType.NONE,
152-
)
153-
}
154140
}
155141
}
156142

@@ -217,6 +203,5 @@ fun PreviewSettingsScreen() {
217203
{},
218204
{},
219205
{},
220-
{}
221206
)
222207
}

app/src/main/kotlin/com/wire/android/ui/home/settings/appearance/CustomizationState.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,4 @@ import com.wire.android.ui.theme.ThemeOption
2222
data class CustomizationState(
2323
val selectedThemeOption: ThemeOption = ThemeOption.SYSTEM,
2424
val pressEnterToSentState: Boolean = false,
25-
val isBubbleUiEnabled: Boolean = false
2625
)

0 commit comments

Comments
 (0)