Skip to content

Commit 1d25edf

Browse files
authored
Remove customization from Compose sample (#6360)
* Remove customization from Compose sample * Gate composer link preview behind a custom setting in the sample
1 parent a09fd42 commit 1d25edf

8 files changed

Lines changed: 26 additions & 18 deletions

File tree

stream-chat-android-compose-sample/src/e2e/java/io/getstream/chat/android/compose/sample/ui/StartupActivity.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,15 @@ import android.os.Bundle
2222
import androidx.appcompat.app.AppCompatActivity
2323
import io.getstream.chat.android.compose.sample.ChatHelper
2424
import io.getstream.chat.android.compose.sample.data.PredefinedUserCredentials
25+
import io.getstream.chat.android.compose.sample.data.customSettings
2526

2627
class StartupActivity : AppCompatActivity() {
2728

2829
override fun onCreate(savedInstanceState: Bundle?) {
2930
super.onCreate(savedInstanceState)
3031
ChatHelper.initializeSdk(applicationContext, PredefinedUserCredentials.API_KEY, intent.getStringExtra("BASE_URL"))
32+
customSettings().isComposerLinkPreviewEnabled = true
33+
3134
val initTestActivity = intent.getSerializableExtra("InitTestActivity") as InitTestActivity
3235
startActivity(initTestActivity.createIntent(this@StartupActivity))
3336
finish()

stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/ChatApp.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,5 @@ class ChatApp : Application() {
7575

7676
lateinit var sharedLocationService: SharedLocationService
7777
private set
78-
79-
public const val isComposerLinkPreviewEnabled: Boolean = true
8078
}
8179
}

stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/data/CustomSettings.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ class CustomSettings(private val context: Context) {
3333

3434
var isAdaptiveLayoutEnabled: Boolean by booleanPref(AdaptiveLayout)
3535

36+
var isComposerLinkPreviewEnabled: Boolean by booleanPref(ComposerLinkPreview)
3637
var isComposerFloatingStyleEnabled: Boolean by booleanPref(ComposerFloatingStyle)
3738
var isSystemAttachmentPickerEnabled: Boolean by booleanPref(SystemAttachmentPicker)
3839

@@ -47,6 +48,7 @@ class CustomSettings(private val context: Context) {
4748
}
4849

4950
private const val AdaptiveLayout = "adaptive_layout"
51+
private const val ComposerLinkPreview = "composer_link_preview"
5052
private const val ComposerFloatingStyle = "composer_floating_style"
5153
private const val SystemAttachmentPicker = "system_attachment_picker"
5254

stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/ui/MessagesActivity.kt

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,10 @@ import androidx.activity.compose.setContent
2424
import androidx.activity.result.contract.ActivityResultContracts
2525
import androidx.compose.runtime.Composable
2626
import androidx.core.net.toUri
27-
import io.getstream.chat.android.compose.sample.ChatApp
2827
import io.getstream.chat.android.compose.sample.data.customSettings
2928
import io.getstream.chat.android.compose.sample.feature.channel.isGroupChannel
3029
import io.getstream.chat.android.compose.sample.ui.channel.DirectChannelInfoActivity
3130
import io.getstream.chat.android.compose.sample.ui.channel.GroupChannelInfoActivity
32-
import io.getstream.chat.android.compose.sample.ui.location.LocationComponentFactory
33-
import io.getstream.chat.android.compose.sample.vm.SharedLocationViewModelFactory
3431
import io.getstream.chat.android.compose.ui.messages.ChannelScreen
3532
import io.getstream.chat.android.compose.ui.theme.AttachmentPickerConfig
3633
import io.getstream.chat.android.compose.ui.theme.ChatUiConfig
@@ -51,7 +48,7 @@ class MessagesActivity : ComponentActivity() {
5148
ChannelViewModelFactory(
5249
context = this,
5350
channelId = cid,
54-
isComposerLinkPreviewEnabled = ChatApp.isComposerLinkPreviewEnabled,
51+
isComposerLinkPreviewEnabled = settings.isComposerLinkPreviewEnabled,
5552
messageId = intent.getStringExtra(KEY_MESSAGE_ID),
5653
parentMessageId = intent.getStringExtra(KEY_PARENT_MESSAGE_ID),
5754
isComposerDraftMessageEnabled = true,
@@ -73,12 +70,10 @@ class MessagesActivity : ComponentActivity() {
7370

7471
@Composable
7572
private fun SetupChatTheme() {
76-
val locationViewModelFactory = SharedLocationViewModelFactory(cid)
7773
SampleChatTheme(
78-
componentFactory = LocationComponentFactory(locationViewModelFactory = locationViewModelFactory),
7974
config = ChatUiConfig(
8075
composer = ComposerConfig(
81-
linkPreviewEnabled = ChatApp.isComposerLinkPreviewEnabled,
76+
linkPreviewEnabled = settings.isComposerLinkPreviewEnabled,
8277
floatingStyleEnabled = settings.isComposerFloatingStyleEnabled,
8378
),
8479
attachmentPicker = AttachmentPickerConfig(useSystemPicker = settings.isSystemAttachmentPickerEnabled),

stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/ui/SampleChatTheme.kt

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,26 +24,20 @@ import androidx.compose.ui.ExperimentalComposeUiApi
2424
import androidx.compose.ui.Modifier
2525
import androidx.compose.ui.semantics.semantics
2626
import androidx.compose.ui.semantics.testTagsAsResourceId
27-
import io.getstream.chat.android.compose.sample.ChatApp
28-
import io.getstream.chat.android.compose.ui.theme.ChatComponentFactory
2927
import io.getstream.chat.android.compose.ui.theme.ChatTheme
3028
import io.getstream.chat.android.compose.ui.theme.ChatUiConfig
3129

3230
/**
33-
* Sample app wrapper around [ChatTheme] that enables test tags as resource IDs for UIAutomator
34-
* E2E tests and sets [ChatApp.dateFormatter] as defaults.
31+
* Sample app wrapper around [ChatTheme] that enables test tags as resource IDs for UIAutomator E2E tests.
3532
*/
3633
@Composable
3734
internal fun SampleChatTheme(
3835
config: ChatUiConfig = ChatUiConfig(),
39-
componentFactory: ChatComponentFactory = object : ChatComponentFactory {},
4036
content: @Composable () -> Unit,
4137
) {
4238
Box(modifier = Modifier.semantics { testTagsAsResourceId = true }) {
4339
ChatTheme(
44-
dateFormatter = ChatApp.dateFormatter,
4540
config = config,
46-
componentFactory = componentFactory,
4741
content = content,
4842
)
4943
}

stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/ui/chats/ChatsActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,9 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
4848
import androidx.lifecycle.viewmodel.compose.viewModel
4949
import io.getstream.chat.android.client.ChatClient
5050
import io.getstream.chat.android.client.api.state.globalStateFlow
51-
import io.getstream.chat.android.compose.sample.ChatApp
5251
import io.getstream.chat.android.compose.sample.ChatHelper
5352
import io.getstream.chat.android.compose.sample.R
53+
import io.getstream.chat.android.compose.sample.data.customSettings
5454
import io.getstream.chat.android.compose.sample.feature.channel.ChannelConstants.CHANNEL_ARG_DRAFT
5555
import io.getstream.chat.android.compose.sample.feature.channel.add.AddChannelActivity
5656
import io.getstream.chat.android.compose.sample.feature.channel.isGroupChannel
@@ -607,9 +607,9 @@ class ChatsActivity : ComponentActivity() {
607607
) = ChannelViewModelFactory(
608608
context = applicationContext,
609609
channelId = channelId,
610+
isComposerLinkPreviewEnabled = customSettings().isComposerLinkPreviewEnabled,
610611
messageId = messageId,
611612
parentMessageId = parentMessageId,
612-
isComposerLinkPreviewEnabled = ChatApp.isComposerLinkPreviewEnabled,
613613
)
614614

615615
private fun openAddChannel() {

stream-chat-android-compose-sample/src/main/java/io/getstream/chat/android/compose/sample/ui/login/CustomLoginActivity.kt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,9 @@ class CustomLoginActivity : AppCompatActivity() {
126126
var userTokenText by remember { mutableStateOf("") }
127127
var userNameText by remember { mutableStateOf("") }
128128
var isAdaptiveLayoutEnabled by remember { mutableStateOf(settings.isAdaptiveLayoutEnabled) }
129+
var isComposerLinkPreviewEnabled by remember {
130+
mutableStateOf(settings.isComposerLinkPreviewEnabled)
131+
}
129132
var isComposerFloatingStyleEnabled by remember {
130133
mutableStateOf(settings.isComposerFloatingStyleEnabled)
131134
}
@@ -147,6 +150,17 @@ class CustomLoginActivity : AppCompatActivity() {
147150
settings.isAdaptiveLayoutEnabled = it
148151
},
149152
),
153+
FeatureFlag(
154+
label = stringResource(R.string.custom_login_flag_composer_link_preview_label),
155+
description = stringResource(
156+
R.string.custom_login_flag_composer_link_preview_description,
157+
),
158+
value = isComposerLinkPreviewEnabled,
159+
onValueChange = {
160+
isComposerLinkPreviewEnabled = it
161+
settings.isComposerLinkPreviewEnabled = it
162+
},
163+
),
150164
FeatureFlag(
151165
label = stringResource(R.string.custom_login_flag_composer_floating_style_label),
152166
description = stringResource(

stream-chat-android-compose-sample/src/main/res/values/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@
3737
<string name="custom_login_flag_adaptive_layout_description">Adjust layout based on screen sizes</string>
3838
<string name="custom_login_flag_composer_floating_style_label">Message composer floating style</string>
3939
<string name="custom_login_flag_composer_floating_style_description">Message list scrolls behind some composer elements</string>
40+
<string name="custom_login_flag_composer_link_preview_label">Composer link preview</string>
41+
<string name="custom_login_flag_composer_link_preview_description">Show link previews in the message composer</string>
4042
<string name="custom_login_flag_system_attachment_picker_label">System attachment picker</string>
4143
<string name="custom_login_flag_system_attachment_picker_description">Use the system\'s native file/media picker</string>
4244

0 commit comments

Comments
 (0)