feat(settings): Add flavor-specific label to upgrade badge

Makes the inline upgrade badge a tiny star + short label (Pro on gplay, FOSS on foss) instead of icon-only. Text is flavor-switched via upgrade_badge_label in each flavor's strings.xml, primary color, labelSmall typography, no pill background to keep it lightweight when multiple rows stack it. Accessibility uses the existing common_upgrade_required_label.
This commit is contained in:
darken
2026-04-11 17:03:40 +02:00
committed by Matthias Urhahn
parent ed6c939284
commit 30163a3f69
3 changed files with 24 additions and 6 deletions
+1
View File
@@ -7,4 +7,5 @@
<string name="upgrade_foss_sponsor_action">Sponsor development</string>
<string name="upgrade_foss_sponsor_subtitle">No ads. No tracking. No Google Play lock-in.</string>
<string name="upgrade_foss_sponsor_returned_early">Back already? Your support keeps CAPod alive.</string>
<string name="upgrade_badge_label">FOSS</string>
</resources>
+1
View File
@@ -7,4 +7,5 @@
<string name="upgrades_gplay_billing_result_error_label">Google Play Billing Error</string>
<string name="upgrades_gplay_billing_result_error_description">There was an error when asking Google Play for your purchase details. Clear Google Play cache and reboot your phone.\n\nError %s</string>
<string name="upgrade_restore_action">Restore purchase</string>
<string name="upgrade_badge_label">Pro</string>
</resources>
@@ -1,11 +1,16 @@
package eu.darken.capod.common.settings
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.twotone.Stars
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
@@ -15,12 +20,23 @@ import eu.darken.capod.common.compose.PreviewWrapper
@Composable
fun UpgradeBadge(modifier: Modifier = Modifier) {
Icon(
imageVector = Icons.TwoTone.Stars,
contentDescription = stringResource(R.string.common_upgrade_required_label),
tint = MaterialTheme.colorScheme.primary,
modifier = modifier.size(16.dp),
)
Row(
modifier = modifier,
verticalAlignment = Alignment.CenterVertically,
) {
Icon(
imageVector = Icons.TwoTone.Stars,
contentDescription = stringResource(R.string.common_upgrade_required_label),
tint = MaterialTheme.colorScheme.primary,
modifier = Modifier.size(16.dp),
)
Spacer(modifier = Modifier.width(2.dp))
Text(
text = stringResource(R.string.upgrade_badge_label),
color = MaterialTheme.colorScheme.primary,
style = MaterialTheme.typography.labelSmall,
)
}
}
@Preview2