diff --git a/apps/ios/Shared/Views/Badges/BadgesPayView.swift b/apps/ios/Shared/Views/Badges/BadgesPayView.swift index 4593820400..037a0627ea 100644 --- a/apps/ios/Shared/Views/Badges/BadgesPayView.swift +++ b/apps/ios/Shared/Views/Badges/BadgesPayView.swift @@ -126,11 +126,12 @@ struct BadgesPayView: View { .buttonStyle(OnboardingButtonStyle(isDisabled: false)) } - // TODO [badges] source the actual renewal/end date from the purchase state machine when wired. private var billingFooter: LocalizedStringKey { + // TODO [badges] source the actual date from the purchase state machine when wired. + let date = "July 22, 2026" switch selectedPeriod { - case .subscribe: "Renews on July 22, 2026. Cancel anytime." - case .oneMonth: "Ends on August 22, 2026." + case .subscribe: return "Renews on \(date). Cancel anytime." + case .oneMonth: return "Ends on \(date)." } } } diff --git a/apps/ios/Shared/Views/Badges/BadgesSupportSimplexView.swift b/apps/ios/Shared/Views/Badges/BadgesSupportSimplexView.swift index 97af366c47..6b0d7d4334 100644 --- a/apps/ios/Shared/Views/Badges/BadgesSupportSimplexView.swift +++ b/apps/ios/Shared/Views/Badges/BadgesSupportSimplexView.swift @@ -64,7 +64,6 @@ struct BadgesSupportSimplexView: View { .frame(height: g.size.height) } .frame(maxHeight: .infinity) - .modifier(ThemedBackground()) .navigationBarTitleDisplayMode(.inline) } diff --git a/apps/ios/Shared/Views/Badges/BadgesYourLevelView.swift b/apps/ios/Shared/Views/Badges/BadgesYourLevelView.swift index 0197d60e7b..a33b92616c 100644 --- a/apps/ios/Shared/Views/Badges/BadgesYourLevelView.swift +++ b/apps/ios/Shared/Views/Badges/BadgesYourLevelView.swift @@ -66,13 +66,6 @@ enum BadgeLevel: String, CaseIterable, Identifiable { } } - var badgeAsset: String { - switch self { - case .supporter: "badge-supporter" - case .legend: "badge-legend" - } - } - var badgeType: BadgeType { switch self { case .supporter: .supporter @@ -138,7 +131,7 @@ struct BadgesYourLevelView: View { selectedLevel = level } label: { VStack(spacing: 10) { - Image(level.badgeAsset) + Image(badgeImageName(level.badgeType)) .resizable() .scaledToFit() .frame(width: 60, height: 60) diff --git a/apps/ios/Shared/Views/ChatList/ChatListView.swift b/apps/ios/Shared/Views/ChatList/ChatListView.swift index 256b2a9787..749cb55b39 100644 --- a/apps/ios/Shared/Views/ChatList/ChatListView.swift +++ b/apps/ios/Shared/Views/ChatList/ChatListView.swift @@ -216,6 +216,7 @@ struct ChatListView: View { .appSheet(isPresented: $showBadgesSheet) { NavigationView { BadgesSupportSimplexView(showsAsSheet: true) + .modifier(ThemedBackground()) } } .onChange(of: activeUserPickerSheet) { diff --git a/apps/ios/Shared/Views/Helpers/NameBadge.swift b/apps/ios/Shared/Views/Helpers/NameBadge.swift index 67f6d6d6b2..11a4dafd2f 100644 --- a/apps/ios/Shared/Views/Helpers/NameBadge.swift +++ b/apps/ios/Shared/Views/Helpers/NameBadge.swift @@ -95,7 +95,7 @@ struct NameBadge: View { } } -private func badgeImageName(_ t: BadgeType) -> String { +func badgeImageName(_ t: BadgeType) -> String { switch t { case .legend: "badge-legend" case .investor: "badge-investor" diff --git a/apps/ios/Shared/Views/UserSettings/SettingsView.swift b/apps/ios/Shared/Views/UserSettings/SettingsView.swift index cc75fd1fad..012142d9ba 100644 --- a/apps/ios/Shared/Views/UserSettings/SettingsView.swift +++ b/apps/ios/Shared/Views/UserSettings/SettingsView.swift @@ -393,7 +393,7 @@ struct SettingsView: View { NavigationLink { VersionView() .navigationBarTitle("App version") - .modifier(ThemedBackground()) + .modifier(ThemedBackground(grouped: true)) } label: { Text(verbatim: "v\(appVersion ?? "?")") } diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesPayView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesPayView.kt index 7392c193f9..cb5e5600ec 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesPayView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesPayView.kt @@ -96,7 +96,7 @@ fun BadgesPayView(level: BadgeLevel) { modifier = Modifier.padding(top = 7.5.dp, bottom = 7.5.dp).clip(CircleShape) ) { Text( - stringResource(billingFooter(selectedPeriod)), + stringResource(billingFooter(selectedPeriod)).format("July 22, 2026"), Modifier.padding(vertical = 5.dp), style = MaterialTheme.typography.body2, color = MaterialTheme.colors.secondary, diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesYourLevelView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesYourLevelView.kt index b0ab135f90..f1fba5920f 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesYourLevelView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/badges/BadgesYourLevelView.kt @@ -71,12 +71,6 @@ enum class BadgeLevel { Legend -> MR.strings.badges_level_legend_tagline } - val badgeAsset: dev.icerock.moko.resources.ImageResource - get() = when (this) { - Supporter -> MR.images.badge_supporter - Legend -> MR.images.badge_legend - } - val badgeType: BadgeType get() = when (this) { Supporter -> BadgeType.Supporter @@ -157,7 +151,7 @@ private fun LevelCard(level: BadgeLevel, selectedLevel: BadgeLevel, modifier: Mo verticalArrangement = Arrangement.spacedBy(10.dp) ) { Image( - painterResource(level.badgeAsset), + painterResource(badgeImage(level.badgeType)), contentDescription = null, contentScale = ContentScale.Fit, modifier = Modifier.size(60.dp) diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/helpers/ChatInfoImage.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/helpers/ChatInfoImage.kt index d2ee1db09c..567e575bbd 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/helpers/ChatInfoImage.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/helpers/ChatInfoImage.kt @@ -245,7 +245,7 @@ fun showBadgeInfoAlert(name: String, badge: LocalBadge, uriHandler: UriHandler) } } -private fun badgeImage(t: BadgeType): ImageResource = when (t) { +fun badgeImage(t: BadgeType): ImageResource = when (t) { is BadgeType.Legend -> MR.images.badge_legend is BadgeType.Investor -> MR.images.badge_investor else -> MR.images.badge_supporter // Supporter + Unknown diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml index cd2bae21a4..78be943092 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml @@ -3214,8 +3214,8 @@ Optional profile badge\nand 5GB files 1 month Subscribe - Renews on July 22, 2026. Cancel anytime. - Ends on August 22, 2026. + Renews on %1$s. Cancel anytime. + Ends on %1$s. Your level Support SimpleX SimpleX doesn\'t sell ads or data. It\'s funded by its users and by investors who share the mission. You can support the project and show a badge on your profile.