From a2d01cd6bd4a6f56971e91980700d2ff529d19fb Mon Sep 17 00:00:00 2001 From: hayk888997 Date: Sat, 4 Apr 2026 18:37:01 +0400 Subject: [PATCH] Added logic to be buildable without extra assets folder. Still have some issues --- apps/multiplatform/common/build.gradle.kts | 10 +++- .../invitation_redesign/ConnectBannerCard.kt | 60 ++++++++++--------- .../ConnectViewLinkOrQrModal.kt | 22 +++---- .../InvitationArtConfig.kt | 10 ++++ .../invitation_redesign/InvitationCardView.kt | 18 +++--- .../InviteCardComponent.kt | 2 +- .../invitation_redesign/NowYouCanView.kt | 6 +- .../invitation_redesign/OneTimeLinkView.kt | 38 ++++++------ .../ic_invitation_card_invite_someone.svg | 1 + .../ic_invitation_card_one_time_link.svg | 1 + .../ic_invitation_card_public_address.svg | 1 + .../MR/images/ic_invitation_connect_link.svg | 1 + .../ic_invitation_connected_link_qr.svg | 1 + .../MR/images/ic_invitation_create_group.svg | 1 + .../MR/images/ic_invitation_one_time_link.svg | 1 + 15 files changed, 104 insertions(+), 69 deletions(-) create mode 100644 apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/invitation_redesign/InvitationArtConfig.kt create mode 100644 apps/multiplatform/common/src/commonMain/resourcesFallbackArt/MR/images/ic_invitation_card_invite_someone.svg create mode 100644 apps/multiplatform/common/src/commonMain/resourcesFallbackArt/MR/images/ic_invitation_card_one_time_link.svg create mode 100644 apps/multiplatform/common/src/commonMain/resourcesFallbackArt/MR/images/ic_invitation_card_public_address.svg create mode 100644 apps/multiplatform/common/src/commonMain/resourcesFallbackArt/MR/images/ic_invitation_connect_link.svg create mode 100644 apps/multiplatform/common/src/commonMain/resourcesFallbackArt/MR/images/ic_invitation_connected_link_qr.svg create mode 100644 apps/multiplatform/common/src/commonMain/resourcesFallbackArt/MR/images/ic_invitation_create_group.svg create mode 100644 apps/multiplatform/common/src/commonMain/resourcesFallbackArt/MR/images/ic_invitation_one_time_link.svg diff --git a/apps/multiplatform/common/build.gradle.kts b/apps/multiplatform/common/build.gradle.kts index 9f75919899..3da9d1b42a 100644 --- a/apps/multiplatform/common/build.gradle.kts +++ b/apps/multiplatform/common/build.gradle.kts @@ -11,6 +11,9 @@ plugins { group = "chat.simplex" version = extra["android.version_name"] as String +val simplexArtLightResources = rootProject.rootDir.resolve("../../../simplex-chat-art/multiplatform/light") +val simplexArtRepoPresent = simplexArtLightResources.isDirectory + kotlin { androidTarget() jvm("desktop") @@ -31,7 +34,11 @@ kotlin { } val commonMain by getting { - resources.srcDir(rootProject.rootDir.resolve("../../../simplex-chat-art/multiplatform/light")) + if (simplexArtRepoPresent) { + resources.srcDir(simplexArtLightResources) + } else { + resources.srcDir("src/commonMain/resourcesFallbackArt") + } dependencies { api(compose.runtime) api(compose.foundation) @@ -161,6 +168,7 @@ buildConfig { buildConfigField("int", "DESKTOP_VERSION_CODE", "${extra["desktop.version_code"]}") buildConfigField("String", "DATABASE_BACKEND", "\"${extra["database.backend"]}\"") buildConfigField("Boolean", "ANDROID_BUNDLE", "${extra["android.bundle"]}") + buildConfigField("Boolean", "FULL_INVITATION_IMAGES", "$simplexArtRepoPresent") } } diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/invitation_redesign/ConnectBannerCard.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/invitation_redesign/ConnectBannerCard.kt index c8307d22ce..727e6eab25 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/invitation_redesign/ConnectBannerCard.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/invitation_redesign/ConnectBannerCard.kt @@ -37,38 +37,40 @@ fun ConnectBannerCard(onInviteClick: () -> Unit, onScanPasteClick: () -> Unit) { modifier = Modifier.fillMaxWidth() ) { Column { - Row( - Modifier.fillMaxWidth(), - horizontalArrangement = Arrangement.SpaceEvenly - ) { - Box( - modifier = Modifier - .weight(1f) - .aspectRatio(1.6f) - .clickable { onInviteClick() }, + if (fullInvitationArtAvailable) { + Row( + Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceEvenly ) { - Image( - painterResource(MR.images.ic_invitation_card_invite_someone), - contentDescription = stringResource(MR.strings.create_link_or_qr), - modifier = Modifier.fillMaxSize(), - contentScale = ContentScale.Crop - ) - } - Box( - modifier = Modifier - .weight(1f) - .aspectRatio(1.6f) - .clickable { onScanPasteClick() }, - ) { - Image( - painterResource(MR.images.ic_invitation_card_one_time_link), - contentDescription = stringResource(MR.strings.paste_link_scan), - modifier = Modifier.fillMaxSize(), - contentScale = ContentScale.Crop - ) + Box( + modifier = Modifier + .weight(1f) + .aspectRatio(1.6f) + .clickable { onInviteClick() }, + ) { + Image( + painterResource(MR.images.ic_invitation_card_invite_someone), + contentDescription = stringResource(MR.strings.create_link_or_qr), + modifier = Modifier.fillMaxSize(), + contentScale = ContentScale.Crop + ) + } + Box( + modifier = Modifier + .weight(1f) + .aspectRatio(1.6f) + .clickable { onScanPasteClick() }, + ) { + Image( + painterResource(MR.images.ic_invitation_card_one_time_link), + contentDescription = stringResource(MR.strings.paste_link_scan), + modifier = Modifier.fillMaxSize(), + contentScale = ContentScale.Crop + ) + } } + Divider(color = MaterialTheme.colors.onSurface.copy(alpha = 0.06f)) } - Divider(color = MaterialTheme.colors.onSurface.copy(alpha = 0.06f)) Row( Modifier.fillMaxWidth().padding(vertical = DEFAULT_PADDING_HALF), horizontalArrangement = Arrangement.SpaceEvenly diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/invitation_redesign/ConnectViewLinkOrQrModal.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/invitation_redesign/ConnectViewLinkOrQrModal.kt index 094f92554b..72aba1a38e 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/invitation_redesign/ConnectViewLinkOrQrModal.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/invitation_redesign/ConnectViewLinkOrQrModal.kt @@ -50,16 +50,18 @@ fun ModalData.ConnectViewLinkOrQrModal(rhId: Long?, close: () -> Unit) { .verticalScroll(rememberScrollState()), horizontalAlignment = Alignment.CenterHorizontally ) { - Spacer(Modifier.height(24.dp)) - - Image( - painterResource(MR.images.ic_invitation_connect_link), - contentDescription = null, - contentScale = ContentScale.Fit, - modifier = Modifier.size(160.dp) - ) - - Spacer(Modifier.height(24.dp)) + if (fullInvitationArtAvailable) { + Spacer(Modifier.height(24.dp)) + Image( + painterResource(MR.images.ic_invitation_connect_link), + contentDescription = null, + contentScale = ContentScale.Fit, + modifier = Modifier.size(160.dp) + ) + Spacer(Modifier.height(24.dp)) + } else { + Spacer(Modifier.height(16.dp)) + } SectionView( title = stringResource(MR.strings.paste_the_link_you_received).uppercase(), diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/invitation_redesign/InvitationArtConfig.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/invitation_redesign/InvitationArtConfig.kt new file mode 100644 index 0000000000..7aa5e79798 --- /dev/null +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/invitation_redesign/InvitationArtConfig.kt @@ -0,0 +1,10 @@ +package chat.simplex.common.views.invitation_redesign + +import chat.simplex.common.BuildConfigCommon + +/** + * True when `simplex-chat-art/multiplatform/light` was present at build time (see `common/build.gradle.kts`). + * When false, resources come from placeholder SVGs — decorative invitation hero images must not be shown. + */ +internal val fullInvitationArtAvailable: Boolean + get() = BuildConfigCommon.FULL_INVITATION_IMAGES diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/invitation_redesign/InvitationCardView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/invitation_redesign/InvitationCardView.kt index 51b699dc2b..01dff2f738 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/invitation_redesign/InvitationCardView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/invitation_redesign/InvitationCardView.kt @@ -41,12 +41,16 @@ fun InvitationCardView( Modifier.fillMaxWidth().padding(bottom = DEFAULT_PADDING_HALF), horizontalAlignment = Alignment.CenterHorizontally ) { - Image( - painterResource(mainImageResource), - contentDescription = null, - modifier = Modifier.fillMaxWidth() - ) - Spacer(Modifier.height(DEFAULT_PADDING_HALF)) + if (fullInvitationArtAvailable) { + Image( + painterResource(mainImageResource), + contentDescription = null, + modifier = Modifier.fillMaxWidth() + ) + Spacer(Modifier.height(DEFAULT_PADDING_HALF)) + } else { + Spacer(Modifier.height(DEFAULT_PADDING_HALF)) + } Row(verticalAlignment = Alignment.CenterVertically) { Icon( painterResource(iconResource), @@ -69,4 +73,4 @@ fun InvitationCardView( } } } -} \ No newline at end of file +} diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/invitation_redesign/InviteCardComponent.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/invitation_redesign/InviteCardComponent.kt index 149910965e..1a38cb0704 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/invitation_redesign/InviteCardComponent.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/invitation_redesign/InviteCardComponent.kt @@ -61,7 +61,7 @@ fun InviteCardComponent( Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally ) { - if (SHOW_PICTURES) { + if (fullInvitationArtAvailable) { Image( image, contentDescription = null, diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/invitation_redesign/NowYouCanView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/invitation_redesign/NowYouCanView.kt index 99da8e31ff..1a1b363194 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/invitation_redesign/NowYouCanView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/invitation_redesign/NowYouCanView.kt @@ -40,10 +40,10 @@ fun EmptyChatListView(onConnectClick: () -> Unit, onOneTimeLinkClick: () -> Unit style = MaterialTheme.typography.h1.copy(fontWeight = FontWeight.Bold), ) Spacer(Modifier.height(DEFAULT_PADDING)) - if (SHOW_PICTURES) { - InviteSomeoneWithPicturesContent(onOneTimeLinkClick = onOneTimeLinkClick) + if (fullInvitationArtAvailable) { + InviteSomeoneWithPicturesContent(onOneTimeLinkClick = onOneTimeLinkClick) } else { - InviteSomeoneContent() + InviteSomeoneContent() } SectionBottomSpacer() } diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/invitation_redesign/OneTimeLinkView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/invitation_redesign/OneTimeLinkView.kt index 6cf2cfb492..1e257310d1 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/invitation_redesign/OneTimeLinkView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/invitation_redesign/OneTimeLinkView.kt @@ -166,15 +166,16 @@ fun OneTimeLinkBottomSheetContent(connLinkInvitation: CreatedConnLink) { ) { Spacer(Modifier.height(DEFAULT_PADDING)) - Image( - painterResource(MR.images.ic_invitation_one_time_link), - contentDescription = null, - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = DEFAULT_PADDING * 3) - ) - - Spacer(Modifier.height(DEFAULT_PADDING)) + if (fullInvitationArtAvailable) { + Image( + painterResource(MR.images.ic_invitation_one_time_link), + contentDescription = null, + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = DEFAULT_PADDING * 3) + ) + Spacer(Modifier.height(DEFAULT_PADDING)) + } Text( stringResource(MR.strings.send_1_time_link_description), @@ -235,15 +236,16 @@ fun OneTimeLinkContent(connLinkInvitation: CreatedConnLink) { ) { Spacer(Modifier.height(DEFAULT_PADDING)) - Image( - painterResource(MR.images.ic_invitation_one_time_link), - contentDescription = null, - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = DEFAULT_PADDING * 3) - ) - - Spacer(Modifier.height(DEFAULT_PADDING)) + if (fullInvitationArtAvailable) { + Image( + painterResource(MR.images.ic_invitation_one_time_link), + contentDescription = null, + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = DEFAULT_PADDING * 3) + ) + Spacer(Modifier.height(DEFAULT_PADDING)) + } Text( stringResource(MR.strings.send_1_time_link_description), diff --git a/apps/multiplatform/common/src/commonMain/resourcesFallbackArt/MR/images/ic_invitation_card_invite_someone.svg b/apps/multiplatform/common/src/commonMain/resourcesFallbackArt/MR/images/ic_invitation_card_invite_someone.svg new file mode 100644 index 0000000000..88b5f5fe90 --- /dev/null +++ b/apps/multiplatform/common/src/commonMain/resourcesFallbackArt/MR/images/ic_invitation_card_invite_someone.svg @@ -0,0 +1 @@ + diff --git a/apps/multiplatform/common/src/commonMain/resourcesFallbackArt/MR/images/ic_invitation_card_one_time_link.svg b/apps/multiplatform/common/src/commonMain/resourcesFallbackArt/MR/images/ic_invitation_card_one_time_link.svg new file mode 100644 index 0000000000..88b5f5fe90 --- /dev/null +++ b/apps/multiplatform/common/src/commonMain/resourcesFallbackArt/MR/images/ic_invitation_card_one_time_link.svg @@ -0,0 +1 @@ + diff --git a/apps/multiplatform/common/src/commonMain/resourcesFallbackArt/MR/images/ic_invitation_card_public_address.svg b/apps/multiplatform/common/src/commonMain/resourcesFallbackArt/MR/images/ic_invitation_card_public_address.svg new file mode 100644 index 0000000000..88b5f5fe90 --- /dev/null +++ b/apps/multiplatform/common/src/commonMain/resourcesFallbackArt/MR/images/ic_invitation_card_public_address.svg @@ -0,0 +1 @@ + diff --git a/apps/multiplatform/common/src/commonMain/resourcesFallbackArt/MR/images/ic_invitation_connect_link.svg b/apps/multiplatform/common/src/commonMain/resourcesFallbackArt/MR/images/ic_invitation_connect_link.svg new file mode 100644 index 0000000000..88b5f5fe90 --- /dev/null +++ b/apps/multiplatform/common/src/commonMain/resourcesFallbackArt/MR/images/ic_invitation_connect_link.svg @@ -0,0 +1 @@ + diff --git a/apps/multiplatform/common/src/commonMain/resourcesFallbackArt/MR/images/ic_invitation_connected_link_qr.svg b/apps/multiplatform/common/src/commonMain/resourcesFallbackArt/MR/images/ic_invitation_connected_link_qr.svg new file mode 100644 index 0000000000..88b5f5fe90 --- /dev/null +++ b/apps/multiplatform/common/src/commonMain/resourcesFallbackArt/MR/images/ic_invitation_connected_link_qr.svg @@ -0,0 +1 @@ + diff --git a/apps/multiplatform/common/src/commonMain/resourcesFallbackArt/MR/images/ic_invitation_create_group.svg b/apps/multiplatform/common/src/commonMain/resourcesFallbackArt/MR/images/ic_invitation_create_group.svg new file mode 100644 index 0000000000..88b5f5fe90 --- /dev/null +++ b/apps/multiplatform/common/src/commonMain/resourcesFallbackArt/MR/images/ic_invitation_create_group.svg @@ -0,0 +1 @@ + diff --git a/apps/multiplatform/common/src/commonMain/resourcesFallbackArt/MR/images/ic_invitation_one_time_link.svg b/apps/multiplatform/common/src/commonMain/resourcesFallbackArt/MR/images/ic_invitation_one_time_link.svg new file mode 100644 index 0000000000..88b5f5fe90 --- /dev/null +++ b/apps/multiplatform/common/src/commonMain/resourcesFallbackArt/MR/images/ic_invitation_one_time_link.svg @@ -0,0 +1 @@ +