ui: show close button on badges banner only after it was opened (#7560)

This commit is contained in:
spaced4ndy
2026-09-22 13:40:56 +00:00
committed by GitHub
parent 150897d637
commit fae017d5b3
8 changed files with 34 additions and 4 deletions
@@ -193,6 +193,7 @@ class AppPreferences {
val oneHandUICardShown = mkBoolPreference(SHARED_PREFS_ONE_HAND_UI_CARD_SHOWN, false)
val addressCreationCardShown = mkBoolPreference(SHARED_PREFS_ADDRESS_CREATION_CARD_SHOWN, false)
val supporterBannerShown = mkBoolPreference(SHARED_PREFS_SUPPORTER_BANNER_SHOWN, false)
val supporterBannerTapped = mkBoolPreference(SHARED_PREFS_SUPPORTER_BANNER_TAPPED, false)
val getStakeBannerTapped = mkBoolPreference(SHARED_PREFS_GET_STAKE_BANNER_TAPPED, false)
val getStakeBannerDismissed = mkBoolPreference(SHARED_PREFS_GET_STAKE_BANNER_DISMISSED, false)
val showMuteProfileAlert = mkBoolPreference(SHARED_PREFS_SHOW_MUTE_PROFILE_ALERT, true)
@@ -277,6 +278,7 @@ class AppPreferences {
hintPref(oneHandUICardShown, false),
hintPref(addressCreationCardShown, false),
hintPref(supporterBannerShown, false),
hintPref(supporterBannerTapped, false),
hintPref(getStakeBannerTapped, false),
hintPref(getStakeBannerDismissed, false),
hintPref(liveMessageAlertShown, false),
@@ -471,6 +473,7 @@ class AppPreferences {
private const val SHARED_PREFS_ONE_HAND_UI_CARD_SHOWN = "OneHandUICardShown"
private const val SHARED_PREFS_ADDRESS_CREATION_CARD_SHOWN = "AddressCreationCardShown"
private const val SHARED_PREFS_SUPPORTER_BANNER_SHOWN = "SupporterBannerShown"
private const val SHARED_PREFS_SUPPORTER_BANNER_TAPPED = "SupporterBannerTapped"
private const val SHARED_PREFS_GET_STAKE_BANNER_TAPPED = "GetStakeBannerTapped"
private const val SHARED_PREFS_GET_STAKE_BANNER_DISMISSED = "GetStakeBannerDismissed"
private const val SHARED_PREFS_SHOW_MUTE_PROFILE_ALERT = "ShowMuteProfileAlert"
@@ -27,6 +27,7 @@ fun SupportSimpleXBanner(
title: String = generalGetString(MR.strings.badges_banner_title),
subtitle: String = generalGetString(MR.strings.badges_banner_subtitle),
warning: Boolean = false,
showDismiss: Boolean = true,
onTap: () -> Unit,
onDismiss: () -> Unit
) {
@@ -75,7 +76,9 @@ fun SupportSimpleXBanner(
}
}
BannerDismissButton(Modifier.align(Alignment.TopEnd), onDismiss)
if (showDismiss) {
BannerDismissButton(Modifier.align(Alignment.TopEnd), onDismiss)
}
}
HeroThumbnail(
@@ -950,6 +950,7 @@ private fun BoxScope.ChatList(searchText: MutableState<TextFieldValue>, listStat
val oneHandUICardShown = remember { appPrefs.oneHandUICardShown.state }
val addressCreationCardShown = remember { appPrefs.addressCreationCardShown.state }
val supporterBannerShown = remember { appPrefs.supporterBannerShown.state }
val supporterBannerTapped = remember { appPrefs.supporterBannerTapped.state }
val getStakeBannerTapped = remember { appPrefs.getStakeBannerTapped.state }
val getStakeBannerDismissed = remember { appPrefs.getStakeBannerDismissed.state }
// read here rather than in the LazyColumn: it launches an effect, so it needs a composable scope
@@ -1074,7 +1075,11 @@ private fun BoxScope.ChatList(searchText: MutableState<TextFieldValue>, listStat
SideEffect { chatModel.chatListBanner = ChatListBanner.BadgePitch }
Box(Modifier.zIndex(1f).padding(16.dp)) {
SupportSimpleXBanner(
onTap = { ModalManager.start.showCustomModal { close -> BadgesView(close) } },
showDismiss = supporterBannerTapped.value,
onTap = {
appPrefs.supporterBannerTapped.set(true)
ModalManager.start.showCustomModal { close -> BadgesView(close) }
},
onDismiss = ::showSupportSimpleXDismissAlert
)
}