diff --git a/app/src/main/kotlin/de/hbch/traewelling/shared/SettingsViewModel.kt b/app/src/main/kotlin/de/hbch/traewelling/shared/SettingsViewModel.kt index 81f2815e..362c5768 100644 --- a/app/src/main/kotlin/de/hbch/traewelling/shared/SettingsViewModel.kt +++ b/app/src/main/kotlin/de/hbch/traewelling/shared/SettingsViewModel.kt @@ -28,6 +28,9 @@ class SettingsViewModel : ViewModel() { private val _userSettings = MutableLiveData(null) val userSettings: LiveData get() = _userSettings + private val _useSystemFont = MutableLiveData(false) + val useSystemFont: LiveData get() = _useSystemFont + fun loadSettings(context: Context) { val secureStorage = SecureStorage(context) @@ -40,6 +43,9 @@ class SettingsViewModel : ViewModel() { _displayDivergentStop.postValue( secureStorage.getObject(SharedValues.SS_DISPLAY_DIVERGENT_STOP, Boolean::class.java) ?: true ) + _useSystemFont.postValue( + secureStorage.getObject(SharedValues.SS_USE_SYSTEM_FONT, Boolean::class.java) ?: false + ) val coroutineScope = CoroutineScope(Dispatchers.IO) coroutineScope.launch { @@ -65,6 +71,12 @@ class SettingsViewModel : ViewModel() { _displayDivergentStop.postValue(state) } + fun updateUseSystemFont(context: Context, state: Boolean) { + val secureStorage = SecureStorage(context) + secureStorage.storeObject(SharedValues.SS_USE_SYSTEM_FONT, state) + _useSystemFont.postValue(state) + } + suspend fun getUserSettings() { val settings = try { val response = TraewellingApi.userService.getUserSettings() diff --git a/app/src/main/kotlin/de/hbch/traewelling/shared/SharedValues.kt b/app/src/main/kotlin/de/hbch/traewelling/shared/SharedValues.kt index d2bfdbd4..e0a85034 100644 --- a/app/src/main/kotlin/de/hbch/traewelling/shared/SharedValues.kt +++ b/app/src/main/kotlin/de/hbch/traewelling/shared/SharedValues.kt @@ -22,6 +22,7 @@ object SharedValues { const val SS_EMOJI_SHOWCASE = "DISPLAY_EMOJI_SHOWCASE" const val SS_EDIT_PROFILE_SHOWCASE = "EDIT_PROFILE_SHOWCASE" const val SS_CO_TRAVELLER_SHOWCASE = "CO_TRAVELLER_SHOWCASE" + const val SS_USE_SYSTEM_FONT = "USE_SYSTEM_FONT" var TRAVELYNX_TOKEN = "" diff --git a/app/src/main/kotlin/de/hbch/traewelling/theme/TraewelldroidTheme.kt b/app/src/main/kotlin/de/hbch/traewelling/theme/TraewelldroidTheme.kt index 2a0cb9bc..5c53ff5e 100644 --- a/app/src/main/kotlin/de/hbch/traewelling/theme/TraewelldroidTheme.kt +++ b/app/src/main/kotlin/de/hbch/traewelling/theme/TraewelldroidTheme.kt @@ -3,6 +3,7 @@ package de.hbch.traewelling.theme import android.os.Build import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Typography import androidx.compose.material3.darkColorScheme import androidx.compose.material3.dynamicDarkColorScheme import androidx.compose.material3.dynamicLightColorScheme @@ -10,11 +11,14 @@ import androidx.compose.material3.lightColorScheme import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.DisposableEffect +import androidx.compose.runtime.remember import androidx.compose.runtime.staticCompositionLocalOf import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalView import com.google.accompanist.systemuicontroller.rememberSystemUiController +import com.jcloquell.androidsecurestorage.SecureStorage +import de.hbch.traewelling.shared.SharedValues private val DarkColorScheme = darkColorScheme( primary = TraewelldroidDark, @@ -48,6 +52,9 @@ fun MainTheme( val context = LocalContext.current val systemUiController = rememberSystemUiController() val darkTheme = isSystemInDarkTheme() + val secureStorage = remember { SecureStorage(context) } + val chosenFont: Typography = + if (secureStorage.getObject(SharedValues.SS_USE_SYSTEM_FONT, Boolean::class.java) == true) DefaultTypography else AppTypography if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { // Set polyline color to default primary light color @@ -74,13 +81,18 @@ fun MainTheme( MaterialTheme( colorScheme = colorScheme, - typography = AppTypography + typography = chosenFont ) { CompositionLocalProvider( LocalColorScheme provides colorScheme, content = content ) + CompositionLocalProvider( + LocalFont provides chosenFont, + content = content + ) } } internal val LocalColorScheme = staticCompositionLocalOf { LightColorScheme } +internal val LocalFont = staticCompositionLocalOf { AppTypography } diff --git a/app/src/main/kotlin/de/hbch/traewelling/theme/Type.kt b/app/src/main/kotlin/de/hbch/traewelling/theme/Type.kt index a004e5cf..3f3e1e0c 100644 --- a/app/src/main/kotlin/de/hbch/traewelling/theme/Type.kt +++ b/app/src/main/kotlin/de/hbch/traewelling/theme/Type.kt @@ -10,23 +10,23 @@ val TwindexxFont = Font(R.font.ae_matrix16_twindexx_standard) val Raleway = FontFamily(RalewayFont) val Twindexx = FontFamily(TwindexxFont) -private val defaultTypography = Typography() +val DefaultTypography = Typography() val AppTypography = Typography( - displayLarge = defaultTypography.displayLarge.copy(fontFamily = Raleway), - displayMedium = defaultTypography.displayMedium.copy(fontFamily = Raleway), - displaySmall = defaultTypography.displaySmall.copy(fontFamily = Raleway), - headlineLarge = defaultTypography.headlineLarge.copy(fontFamily = Raleway), - headlineMedium = defaultTypography.headlineMedium.copy(fontFamily = Raleway), - headlineSmall = defaultTypography.headlineSmall.copy(fontFamily = Raleway), - titleLarge = defaultTypography.titleLarge.copy(fontFamily = Raleway), - titleMedium = defaultTypography.titleMedium.copy(fontFamily = Raleway), - titleSmall = defaultTypography.titleSmall.copy(fontFamily = Raleway), - bodyLarge = defaultTypography.bodyLarge.copy(fontFamily = Raleway), - bodyMedium = defaultTypography.bodyMedium.copy(fontFamily = Raleway), - bodySmall = defaultTypography.bodySmall.copy(fontFamily = Raleway), - labelLarge = defaultTypography.labelLarge.copy(fontFamily = Raleway), - labelMedium = defaultTypography.labelMedium.copy(fontFamily = Raleway), - labelSmall = defaultTypography.labelSmall.copy(fontFamily = Raleway) + displayLarge = DefaultTypography.displayLarge.copy(fontFamily = Raleway), + displayMedium = DefaultTypography.displayMedium.copy(fontFamily = Raleway), + displaySmall = DefaultTypography.displaySmall.copy(fontFamily = Raleway), + headlineLarge = DefaultTypography.headlineLarge.copy(fontFamily = Raleway), + headlineMedium = DefaultTypography.headlineMedium.copy(fontFamily = Raleway), + headlineSmall = DefaultTypography.headlineSmall.copy(fontFamily = Raleway), + titleLarge = DefaultTypography.titleLarge.copy(fontFamily = Raleway), + titleMedium = DefaultTypography.titleMedium.copy(fontFamily = Raleway), + titleSmall = DefaultTypography.titleSmall.copy(fontFamily = Raleway), + bodyLarge = DefaultTypography.bodyLarge.copy(fontFamily = Raleway), + bodyMedium = DefaultTypography.bodyMedium.copy(fontFamily = Raleway), + bodySmall = DefaultTypography.bodySmall.copy(fontFamily = Raleway), + labelLarge = DefaultTypography.labelLarge.copy(fontFamily = Raleway), + labelMedium = DefaultTypography.labelMedium.copy(fontFamily = Raleway), + labelSmall = DefaultTypography.labelSmall.copy(fontFamily = Raleway) ) -val LineIconStyle = defaultTypography.bodyMedium +val LineIconStyle = DefaultTypography.bodyMedium diff --git a/app/src/main/kotlin/de/hbch/traewelling/ui/checkIn/CheckIn.kt b/app/src/main/kotlin/de/hbch/traewelling/ui/checkIn/CheckIn.kt index 0c013b5c..8c092de2 100644 --- a/app/src/main/kotlin/de/hbch/traewelling/ui/checkIn/CheckIn.kt +++ b/app/src/main/kotlin/de/hbch/traewelling/ui/checkIn/CheckIn.kt @@ -63,8 +63,8 @@ import de.hbch.traewelling.shared.EventViewModel import de.hbch.traewelling.shared.LoggedInUserViewModel import de.hbch.traewelling.shared.MastodonEmojis import de.hbch.traewelling.shared.SharedValues -import de.hbch.traewelling.theme.AppTypography import de.hbch.traewelling.theme.LocalColorScheme +import de.hbch.traewelling.theme.LocalFont import de.hbch.traewelling.theme.MainTheme import de.hbch.traewelling.ui.composables.ButtonWithIconAndText import de.hbch.traewelling.ui.composables.DataLoading @@ -298,7 +298,7 @@ fun CheckIn( Column { Text( text = stringResource(id = R.string.mastodon_emoji), - style = AppTypography.titleLarge, + style = LocalFont.current.titleLarge, color = LocalColorScheme.current.onPrimary ) Text( @@ -332,7 +332,7 @@ fun CheckIn( Text( modifier = Modifier.padding(4.dp), text = "${statusText.text.count()}/280", - style = AppTypography.labelSmall + style = LocalFont.current.labelSmall ) AnimatedVisibility(displayUserResults) { Row( @@ -482,7 +482,7 @@ fun CheckIn( Column { Text( text = stringResource(id = R.string.select_co_travellers), - style = AppTypography.titleLarge, + style = LocalFont.current.titleLarge, color = LocalColorScheme.current.onPrimary ) Text( @@ -492,7 +492,7 @@ fun CheckIn( Text( text = stringResource(id = R.string.only_check_in_persons), color = LocalColorScheme.current.onPrimary, - style = AppTypography.labelMedium + style = LocalFont.current.labelMedium ) } } @@ -682,7 +682,7 @@ private fun SelectStatusVisibilityDialog( Text( modifier = Modifier.padding(bottom = 8.dp), text = stringResource(id = R.string.title_select_visibility), - style = AppTypography.titleLarge, + style = LocalFont.current.titleLarge, color = LocalColorScheme.current.primary ) StatusVisibility.entries.forEach { visibility -> @@ -702,7 +702,7 @@ private fun SelectStatusVisibilityDialog( ) Text( text = stringResource(id = visibility.title), - style = AppTypography.titleLarge + style = LocalFont.current.titleLarge ) } } @@ -723,7 +723,7 @@ private fun SelectStatusBusinessDialog( .fillMaxWidth() .padding(bottom = 8.dp), text = stringResource(id = R.string.title_select_business), - style = AppTypography.titleLarge, + style = LocalFont.current.titleLarge, color = LocalColorScheme.current.primary ) StatusBusiness.entries.forEach { business -> @@ -743,7 +743,7 @@ private fun SelectStatusBusinessDialog( ) Text( text = stringResource(id = business.title), - style = AppTypography.titleLarge + style = LocalFont.current.titleLarge ) } } @@ -768,7 +768,7 @@ private fun SelectEventDialog( .fillMaxWidth() .padding(bottom = 8.dp), text = stringResource(id = R.string.title_select_event), - style = AppTypography.titleLarge, + style = LocalFont.current.titleLarge, color = LocalColorScheme.current.primary ) Text( @@ -776,7 +776,7 @@ private fun SelectEventDialog( .fillMaxWidth() .padding(bottom = 8.dp), text = stringResource(id = R.string.hint_event_missing), - style = AppTypography.labelLarge + style = LocalFont.current.labelLarge ) events.forEach { event -> Row( @@ -807,7 +807,7 @@ private fun SelectEventDialog( ) { Text( text = event?.name ?: stringResource(id = R.string.reset_selection), - style = AppTypography.titleLarge, + style = LocalFont.current.titleLarge, maxLines = 1, overflow = TextOverflow.Ellipsis ) @@ -821,7 +821,7 @@ private fun SelectEventDialog( getLocalDateString(event.end) ) }, - style = AppTypography.titleSmall + style = LocalFont.current.titleSmall ) } Icon( @@ -913,11 +913,11 @@ fun SelectCoTravellers( ) { Text( text = stringResource(id = R.string.select_co_travellers), - style = AppTypography.titleLarge + style = LocalFont.current.titleLarge ) Text( text = stringResource(id = R.string.only_check_in_persons), - style = AppTypography.labelMedium + style = LocalFont.current.labelMedium ) if (isLoading) { DataLoading() diff --git a/app/src/main/kotlin/de/hbch/traewelling/ui/checkInResult/CheckInResult.kt b/app/src/main/kotlin/de/hbch/traewelling/ui/checkInResult/CheckInResult.kt index 1dbe3de9..9cde9f3b 100644 --- a/app/src/main/kotlin/de/hbch/traewelling/ui/checkInResult/CheckInResult.kt +++ b/app/src/main/kotlin/de/hbch/traewelling/ui/checkInResult/CheckInResult.kt @@ -37,7 +37,7 @@ import de.hbch.traewelling.providers.checkin.CheckInResult import de.hbch.traewelling.shared.CheckInViewModel import de.hbch.traewelling.shared.LoggedInUserViewModel import de.hbch.traewelling.shared.SharedValues -import de.hbch.traewelling.theme.AppTypography +import de.hbch.traewelling.theme.LocalFont import de.hbch.traewelling.theme.StarYellow import de.hbch.traewelling.ui.composables.ButtonWithIconAndText import de.hbch.traewelling.ui.composables.Dialog @@ -47,7 +47,6 @@ import de.hbch.traewelling.ui.composables.SharePicDialog import de.hbch.traewelling.ui.include.status.StatusDetailsRow import de.hbch.traewelling.ui.tag.StatusTags import de.hbch.traewelling.util.ReviewRequest -import de.hbch.traewelling.util.shareStatus @Composable fun CheckInResultView( @@ -88,7 +87,7 @@ fun CheckInResultView( Text( text = "Träwelling", modifier = Modifier.padding(start = 12.dp), - style = AppTypography.titleLarge + style = LocalFont.current.titleLarge ) } Text( @@ -131,7 +130,7 @@ fun CheckInResultView( Text( text = "travelynx", modifier = Modifier.padding(start = 12.dp), - style = AppTypography.titleLarge + style = LocalFont.current.titleLarge ) } if (travelynxResponse.result == CheckInResult.ERROR) { diff --git a/app/src/main/kotlin/de/hbch/traewelling/ui/composables/Chart.kt b/app/src/main/kotlin/de/hbch/traewelling/ui/composables/Chart.kt index c2727f59..7ebafcfc 100644 --- a/app/src/main/kotlin/de/hbch/traewelling/ui/composables/Chart.kt +++ b/app/src/main/kotlin/de/hbch/traewelling/ui/composables/Chart.kt @@ -19,8 +19,8 @@ import androidx.compose.ui.text.drawText import androidx.compose.ui.text.rememberTextMeasurer import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import de.hbch.traewelling.theme.AppTypography import de.hbch.traewelling.theme.LocalColorScheme +import de.hbch.traewelling.theme.LocalFont @OptIn(ExperimentalTextApi::class) @Composable @@ -32,6 +32,7 @@ fun ColumnChart( val data = input.first val formatter = input.second val maxValue = data.maxByOrNull { it.second }?.second ?: 0 + val typography = LocalFont.current Row( modifier = modifier, @@ -63,7 +64,7 @@ fun ColumnChart( val measuredText = textMeasurer.measure( AnnotatedString(labelText), - style = AppTypography.labelLarge, + style = typography.labelLarge, maxLines = 1, overflow = TextOverflow.Ellipsis ) diff --git a/app/src/main/kotlin/de/hbch/traewelling/ui/composables/LineIcon.kt b/app/src/main/kotlin/de/hbch/traewelling/ui/composables/LineIcon.kt index 880c892f..f1deafde 100644 --- a/app/src/main/kotlin/de/hbch/traewelling/ui/composables/LineIcon.kt +++ b/app/src/main/kotlin/de/hbch/traewelling/ui/composables/LineIcon.kt @@ -26,8 +26,8 @@ import androidx.lifecycle.viewmodel.compose.viewModel import de.hbch.traewelling.api.models.lineIcons.LineIconShape import de.hbch.traewelling.shared.LineIcons import de.hbch.traewelling.shared.SettingsViewModel -import de.hbch.traewelling.theme.AppTypography import de.hbch.traewelling.theme.LineIconStyle +import de.hbch.traewelling.theme.LocalFont import de.hbch.traewelling.util.getSwitzerlandLineName @Composable @@ -37,7 +37,7 @@ fun LineIcon( modifier: Modifier = Modifier, operatorCode: String? = null, lineId: String? = null, - defaultTextStyle: TextStyle = AppTypography.bodyMedium, + defaultTextStyle: TextStyle = LocalFont.current.bodyMedium, displayJourneyNumber: Boolean = true ) { val context = LocalContext.current @@ -124,7 +124,7 @@ fun LineIcon( && journeyNumber != null && journeyNumber != 0) { Text( text = "($journeyNumber)", - style = AppTypography.bodySmall + style = LocalFont.current.bodySmall ) } } @@ -136,7 +136,7 @@ fun LineIconView( modifier: Modifier = Modifier, operatorCode: String? = null, lineId: String? = null, - defaultTextStyle: TextStyle = AppTypography.bodyMedium + defaultTextStyle: TextStyle = LocalFont.current.bodyMedium ) { val opCode = operatorCode?.replace("nahreisezug", "") ?: "" diff --git a/app/src/main/kotlin/de/hbch/traewelling/ui/composables/ManualDateTimeSelection.kt b/app/src/main/kotlin/de/hbch/traewelling/ui/composables/ManualDateTimeSelection.kt index 7e2dfb82..5edd87b9 100644 --- a/app/src/main/kotlin/de/hbch/traewelling/ui/composables/ManualDateTimeSelection.kt +++ b/app/src/main/kotlin/de/hbch/traewelling/ui/composables/ManualDateTimeSelection.kt @@ -31,7 +31,7 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import de.hbch.traewelling.R -import de.hbch.traewelling.theme.AppTypography +import de.hbch.traewelling.theme.LocalFont import de.hbch.traewelling.theme.MainTheme import de.hbch.traewelling.util.getLocalDateTimeString import java.time.Instant @@ -166,7 +166,7 @@ fun DateTimeSelection( if (plannedDate != null) { Text( text = stringResource(id = R.string.planned, getLocalDateTimeString(plannedDate)), - style = AppTypography.bodySmall + style = LocalFont.current.bodySmall ) } } diff --git a/app/src/main/kotlin/de/hbch/traewelling/ui/composables/PushNotifications.kt b/app/src/main/kotlin/de/hbch/traewelling/ui/composables/PushNotifications.kt index e17c7a2c..9d0f1ab0 100644 --- a/app/src/main/kotlin/de/hbch/traewelling/ui/composables/PushNotifications.kt +++ b/app/src/main/kotlin/de/hbch/traewelling/ui/composables/PushNotifications.kt @@ -42,7 +42,7 @@ import com.google.accompanist.permissions.PermissionStatus import com.google.accompanist.permissions.rememberPermissionState import de.hbch.traewelling.R import de.hbch.traewelling.shared.LoggedInUserViewModel -import de.hbch.traewelling.theme.AppTypography +import de.hbch.traewelling.theme.LocalFont import de.hbch.traewelling.theme.MainTheme import org.unifiedpush.android.connector.UnifiedPush.getDistributor import org.unifiedpush.android.connector.UnifiedPush.getDistributors @@ -162,13 +162,13 @@ fun NotificationsAvailableHint( text = stringResource(id = R.string.push_hint_title), modifier = Modifier.fillMaxWidth(), textAlign = TextAlign.Center, - style = AppTypography.headlineSmall + style = LocalFont.current.headlineSmall ) Text( text = stringResource(id = R.string.push_hint_text), modifier = Modifier.fillMaxWidth(), textAlign = TextAlign.Center, - style = AppTypography.labelMedium + style = LocalFont.current.labelMedium ) ButtonWithIconAndText( stringId = R.string.logout, @@ -249,7 +249,7 @@ private fun UnifiedPushDistributorSelection( ) { Text( text = stringResource(id = R.string.select_up_distributor), - style = AppTypography.titleLarge + style = LocalFont.current.titleLarge ) Column( modifier = Modifier.selectableGroup() @@ -276,7 +276,7 @@ private fun UnifiedPushDistributorSelection( ) Text( text = distributorName.toString(), - style = AppTypography.labelLarge, + style = LocalFont.current.labelLarge, fontWeight = FontWeight.ExtraBold ) } diff --git a/app/src/main/kotlin/de/hbch/traewelling/ui/composables/SharePic.kt b/app/src/main/kotlin/de/hbch/traewelling/ui/composables/SharePic.kt index bfdd7ae2..29402f1b 100644 --- a/app/src/main/kotlin/de/hbch/traewelling/ui/composables/SharePic.kt +++ b/app/src/main/kotlin/de/hbch/traewelling/ui/composables/SharePic.kt @@ -38,8 +38,8 @@ import androidx.constraintlayout.compose.ConstraintLayout import androidx.constraintlayout.compose.Dimension import de.hbch.traewelling.R import de.hbch.traewelling.api.models.status.Status -import de.hbch.traewelling.theme.AppTypography import de.hbch.traewelling.theme.LocalColorScheme +import de.hbch.traewelling.theme.LocalFont import de.hbch.traewelling.ui.include.status.StationRow import de.hbch.traewelling.ui.include.status.getFormattedDistance import de.hbch.traewelling.ui.tag.StatusTag @@ -65,7 +65,7 @@ fun SharePicDialog( ) { Text( text = stringResource(id = R.string.title_share), - style = AppTypography.titleLarge + style = LocalFont.current.titleLarge ) SwitchWithIconAndText( checked = shareImage, @@ -246,12 +246,12 @@ fun SharePic( Text( modifier = alignmentModifier.padding(start = 12.dp), text = getFormattedDistance(status.journey.distance), - style = AppTypography.bodySmall + style = LocalFont.current.bodySmall ) Text( modifier = alignmentModifier.padding(start = 8.dp), text = getDurationString(duration = status.journey.duration), - style = AppTypography.bodySmall + style = LocalFont.current.bodySmall ) } if (message.first.isNotEmpty()) { @@ -313,7 +313,7 @@ fun SharePic( Text( text = stringResource(id = R.string.app_name), color = primaryColor, - style = AppTypography.bodySmall + style = LocalFont.current.bodySmall ) } } diff --git a/app/src/main/kotlin/de/hbch/traewelling/ui/composables/Switch.kt b/app/src/main/kotlin/de/hbch/traewelling/ui/composables/Switch.kt index 9dc4b6c9..8b57b755 100644 --- a/app/src/main/kotlin/de/hbch/traewelling/ui/composables/Switch.kt +++ b/app/src/main/kotlin/de/hbch/traewelling/ui/composables/Switch.kt @@ -20,7 +20,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import de.hbch.traewelling.R -import de.hbch.traewelling.theme.AppTypography +import de.hbch.traewelling.theme.LocalFont import de.hbch.traewelling.theme.MainTheme @Composable @@ -48,7 +48,7 @@ fun SwitchWithIconAndText( ) Text( text = stringResource(id = stringId), - style = AppTypography.labelLarge + style = LocalFont.current.labelLarge ) } Switch( diff --git a/app/src/main/kotlin/de/hbch/traewelling/ui/include/cardSearchStation/CardSearch.kt b/app/src/main/kotlin/de/hbch/traewelling/ui/include/cardSearchStation/CardSearch.kt index 21360a10..4135124c 100644 --- a/app/src/main/kotlin/de/hbch/traewelling/ui/include/cardSearchStation/CardSearch.kt +++ b/app/src/main/kotlin/de/hbch/traewelling/ui/include/cardSearchStation/CardSearch.kt @@ -13,8 +13,8 @@ import androidx.compose.ui.unit.dp import androidx.lifecycle.LiveData import de.hbch.traewelling.api.models.station.Station import de.hbch.traewelling.api.models.user.User -import de.hbch.traewelling.theme.AppTypography import de.hbch.traewelling.theme.LocalColorScheme +import de.hbch.traewelling.theme.LocalFont import de.hbch.traewelling.theme.Twindexx import de.hbch.traewelling.ui.search.Search import de.hbch.traewelling.util.getGreeting @@ -40,7 +40,7 @@ fun CardSearch( ) { Text( text = getGreeting(), - style = AppTypography.headlineLarge, + style = LocalFont.current.headlineLarge, modifier = Modifier.padding(8.dp), fontFamily = Twindexx, color = LocalColorScheme.current.primary diff --git a/app/src/main/kotlin/de/hbch/traewelling/ui/include/status/CheckInCard.kt b/app/src/main/kotlin/de/hbch/traewelling/ui/include/status/CheckInCard.kt index 05ef3518..d50453f1 100644 --- a/app/src/main/kotlin/de/hbch/traewelling/ui/include/status/CheckInCard.kt +++ b/app/src/main/kotlin/de/hbch/traewelling/ui/include/status/CheckInCard.kt @@ -64,9 +64,9 @@ import de.hbch.traewelling.api.models.trip.HafasTrainTripStation import de.hbch.traewelling.api.models.trip.ProductType import de.hbch.traewelling.shared.LoggedInUserViewModel import de.hbch.traewelling.shared.SettingsViewModel -import de.hbch.traewelling.theme.AppTypography import de.hbch.traewelling.theme.HeartRed import de.hbch.traewelling.theme.LocalColorScheme +import de.hbch.traewelling.theme.LocalFont import de.hbch.traewelling.theme.StarYellow import de.hbch.traewelling.ui.composables.CustomClickableText import de.hbch.traewelling.ui.composables.Dialog @@ -311,7 +311,7 @@ fun StationRow( modifier = Modifier .clickable { stationSelected(station.id, null) }, text = station.name, - style = AppTypography.titleLarge, + style = LocalFont.current.titleLarge, overflow = TextOverflow.Ellipsis, maxLines = 2, color = primaryColor @@ -332,7 +332,7 @@ fun StationRow( date = displayedDate ), color = primaryColor, - style = AppTypography.titleLarge + style = LocalFont.current.titleLarge ) if (hasDelay) { Text( @@ -340,7 +340,7 @@ fun StationRow( date = timePlanned ), textDecoration = TextDecoration.LineThrough, - style = AppTypography.labelLarge + style = LocalFont.current.labelLarge ) } } @@ -435,12 +435,12 @@ fun StatusDetailsRow( Text( modifier = alignmentModifier.padding(start = 12.dp), text = getFormattedDistance(kilometers), - style = AppTypography.bodySmall + style = LocalFont.current.bodySmall ) Text( modifier = alignmentModifier.padding(start = 8.dp), text = getDurationString(duration = duration), - style = AppTypography.bodySmall + style = LocalFont.current.bodySmall ) Icon( modifier = alignmentModifier.padding(start = 8.dp), @@ -590,7 +590,7 @@ private fun CheckInCardFooter( dateString ), textAlign = TextAlign.End, - style = AppTypography.labelLarge + style = LocalFont.current.labelLarge ) Icon( modifier = alignmentModifier.padding(horizontal = 8.dp), @@ -718,7 +718,7 @@ private fun CheckInCardFooter( ) Text( text = status.event!!.name, - style = AppTypography.labelMedium + style = LocalFont.current.labelMedium ) } } diff --git a/app/src/main/kotlin/de/hbch/traewelling/ui/notifications/Notifications.kt b/app/src/main/kotlin/de/hbch/traewelling/ui/notifications/Notifications.kt index af572d54..e68145c9 100644 --- a/app/src/main/kotlin/de/hbch/traewelling/ui/notifications/Notifications.kt +++ b/app/src/main/kotlin/de/hbch/traewelling/ui/notifications/Notifications.kt @@ -39,7 +39,7 @@ import androidx.navigation.NavHostController import de.hbch.traewelling.R import de.hbch.traewelling.api.models.notifications.Notification import de.hbch.traewelling.shared.LoggedInUserViewModel -import de.hbch.traewelling.theme.AppTypography +import de.hbch.traewelling.theme.LocalFont import de.hbch.traewelling.ui.composables.NotificationsAvailableHint import de.hbch.traewelling.util.OnBottomReached import de.hbch.traewelling.util.getLocalDateTimeString @@ -263,7 +263,7 @@ private fun NotificationBody( Text( modifier = Modifier.fillMaxWidth(), text = body, - style = AppTypography.labelMedium + style = LocalFont.current.labelMedium ) } // Footer @@ -271,7 +271,7 @@ private fun NotificationBody( modifier = Modifier.fillMaxWidth(), textAlign = TextAlign.End, text = getLocalDateTimeString(date = notification.safeCreatedAt), - style = AppTypography.labelMedium + style = LocalFont.current.labelMedium ) } } diff --git a/app/src/main/kotlin/de/hbch/traewelling/ui/report/Report.kt b/app/src/main/kotlin/de/hbch/traewelling/ui/report/Report.kt index 37de3802..fdf79284 100644 --- a/app/src/main/kotlin/de/hbch/traewelling/ui/report/Report.kt +++ b/app/src/main/kotlin/de/hbch/traewelling/ui/report/Report.kt @@ -34,7 +34,7 @@ import de.hbch.traewelling.R import de.hbch.traewelling.api.models.report.Report import de.hbch.traewelling.api.models.report.ReportReason import de.hbch.traewelling.api.models.report.ReportSubjectType -import de.hbch.traewelling.theme.AppTypography +import de.hbch.traewelling.theme.LocalFont import de.hbch.traewelling.ui.composables.ButtonWithIconAndText import de.hbch.traewelling.ui.composables.OutlinedButtonWithIconAndText import kotlinx.coroutines.launch @@ -71,7 +71,7 @@ fun Report( ) Text( text = stringResource(id = R.string.create_report), - style = AppTypography.titleLarge + style = LocalFont.current.titleLarge ) } diff --git a/app/src/main/kotlin/de/hbch/traewelling/ui/search/Search.kt b/app/src/main/kotlin/de/hbch/traewelling/ui/search/Search.kt index 3208bc61..67ab84ca 100644 --- a/app/src/main/kotlin/de/hbch/traewelling/ui/search/Search.kt +++ b/app/src/main/kotlin/de/hbch/traewelling/ui/search/Search.kt @@ -48,7 +48,7 @@ import com.google.accompanist.permissions.rememberMultiplePermissionsState import de.hbch.traewelling.R import de.hbch.traewelling.api.models.station.Station import de.hbch.traewelling.api.models.user.User -import de.hbch.traewelling.theme.AppTypography +import de.hbch.traewelling.theme.LocalFont import de.hbch.traewelling.ui.composables.ProfilePicture import de.hbch.traewelling.util.getStationNameWithRL100 import de.hbch.traewelling.util.useDebounce @@ -195,7 +195,7 @@ fun Search( if (queryStations && queryUsers) { Text( text = stringResource(id = R.string.stops), - style = AppTypography.titleLarge, + style = LocalFont.current.titleLarge, modifier = Modifier.padding(4.dp) ) } @@ -244,7 +244,7 @@ fun Search( HorizontalDivider() Text( stringResource(id = R.string.users), - style = AppTypography.titleLarge, + style = LocalFont.current.titleLarge, modifier = Modifier.padding(4.dp) ) userResults.forEach { diff --git a/app/src/main/kotlin/de/hbch/traewelling/ui/searchConnection/SearchConnection.kt b/app/src/main/kotlin/de/hbch/traewelling/ui/searchConnection/SearchConnection.kt index af5a24c6..47280d10 100644 --- a/app/src/main/kotlin/de/hbch/traewelling/ui/searchConnection/SearchConnection.kt +++ b/app/src/main/kotlin/de/hbch/traewelling/ui/searchConnection/SearchConnection.kt @@ -56,7 +56,7 @@ import de.hbch.traewelling.api.models.trip.ProductType import de.hbch.traewelling.shared.CheckInViewModel import de.hbch.traewelling.shared.LoggedInUserViewModel import de.hbch.traewelling.shared.SettingsViewModel -import de.hbch.traewelling.theme.AppTypography +import de.hbch.traewelling.theme.LocalFont import de.hbch.traewelling.theme.MainTheme import de.hbch.traewelling.ui.composables.ButtonWithIconAndText import de.hbch.traewelling.ui.composables.DataLoading @@ -127,7 +127,7 @@ fun SearchConnection( .padding(8.dp) .fillMaxWidth(), text = stringResource(id = R.string.departures_at, stationName), - style = AppTypography.headlineSmall + style = LocalFont.current.headlineSmall ) HorizontalDivider( modifier = Modifier.fillMaxWidth() @@ -451,7 +451,7 @@ fun ConnectionListItem( date = departurePlanned ), textDecoration = TextDecoration.LineThrough, - style = AppTypography.labelMedium + style = LocalFont.current.labelMedium ) } } @@ -483,7 +483,7 @@ fun ConnectionListItem( if (departureStation != null) { Text( text = stringResource(id = R.string.from_station, departureStation), - style = AppTypography.labelSmall, + style = LocalFont.current.labelSmall, maxLines = 2, overflow = TextOverflow.Ellipsis ) @@ -520,7 +520,7 @@ fun Platform( real ?: planned ?: "" ), color = Color.White, - style = AppTypography.labelSmall + style = LocalFont.current.labelSmall ) } } diff --git a/app/src/main/kotlin/de/hbch/traewelling/ui/selectDestination/SelectDestination.kt b/app/src/main/kotlin/de/hbch/traewelling/ui/selectDestination/SelectDestination.kt index d79ae311..06e7b83a 100644 --- a/app/src/main/kotlin/de/hbch/traewelling/ui/selectDestination/SelectDestination.kt +++ b/app/src/main/kotlin/de/hbch/traewelling/ui/selectDestination/SelectDestination.kt @@ -38,8 +38,8 @@ import de.hbch.traewelling.api.models.trip.HafasTrainTrip import de.hbch.traewelling.api.models.trip.HafasTrainTripStation import de.hbch.traewelling.api.models.trip.ProductType import de.hbch.traewelling.shared.CheckInViewModel -import de.hbch.traewelling.theme.AppTypography import de.hbch.traewelling.theme.LocalColorScheme +import de.hbch.traewelling.theme.LocalFont import de.hbch.traewelling.ui.composables.DataLoading import de.hbch.traewelling.ui.composables.LineIcon import de.hbch.traewelling.util.getDelayColor @@ -148,7 +148,7 @@ fun FromToTextRow( lineId = lineId, operatorCode = operatorCode, modifier = Modifier.padding(start = 4.dp), - defaultTextStyle = AppTypography.titleLarge, + defaultTextStyle = LocalFont.current.titleLarge, journeyNumber = null ) Icon( @@ -159,7 +159,7 @@ fun FromToTextRow( Text( modifier = Modifier.padding(start = 8.dp), text = destination, - style = AppTypography.titleLarge, + style = LocalFont.current.titleLarge, overflow = TextOverflow.Ellipsis, maxLines = 2 ) @@ -248,7 +248,7 @@ private fun TravelStopListItem( text = stationNameText, maxLines = 2, overflow = TextOverflow.Ellipsis, - style = AppTypography.titleMedium + style = LocalFont.current.titleMedium ) // Time/Cancelled @@ -264,7 +264,7 @@ private fun TravelStopListItem( Text( text = stringResource(id = R.string.cancelled), color = Color.Red, - style = AppTypography.titleMedium + style = LocalFont.current.titleMedium ) } else { Text( @@ -275,7 +275,7 @@ private fun TravelStopListItem( real = station.arrivalReal, planned = station.arrivalPlanned ), - style = AppTypography.titleMedium + style = LocalFont.current.titleMedium ) } if (station.isCancelled || (station.arrivalReal ?: station.arrivalPlanned) > station.arrivalPlanned) { @@ -284,7 +284,7 @@ private fun TravelStopListItem( date = station.arrivalPlanned ), textDecoration = TextDecoration.LineThrough, - style = AppTypography.labelMedium + style = LocalFont.current.labelMedium ) } } diff --git a/app/src/main/kotlin/de/hbch/traewelling/ui/settings/Settings.kt b/app/src/main/kotlin/de/hbch/traewelling/ui/settings/Settings.kt index 1396db36..25f0588b 100644 --- a/app/src/main/kotlin/de/hbch/traewelling/ui/settings/Settings.kt +++ b/app/src/main/kotlin/de/hbch/traewelling/ui/settings/Settings.kt @@ -55,8 +55,8 @@ import de.hbch.traewelling.shared.LineIcons import de.hbch.traewelling.shared.LoggedInUserViewModel import de.hbch.traewelling.shared.SettingsViewModel import de.hbch.traewelling.shared.SharedValues -import de.hbch.traewelling.theme.AppTypography import de.hbch.traewelling.theme.LocalColorScheme +import de.hbch.traewelling.theme.LocalFont import de.hbch.traewelling.theme.MainTheme import de.hbch.traewelling.ui.composables.ButtonWithIconAndText import de.hbch.traewelling.ui.composables.OpenRailwayMapLayer @@ -115,6 +115,7 @@ private fun DisplayProviderSettings( val displayTagsInCheckInCard by settingsViewModel.displayTagsInCard.observeAsState(true) val displayJourneyNumber by settingsViewModel.displayJourneyNumber.observeAsState(true) val displayDivergentStop by settingsViewModel.displayDivergentStop.observeAsState(true) + val useSystemFont by settingsViewModel.useSystemFont.observeAsState(false) SettingsCard( title = R.string.settings_display, @@ -168,6 +169,20 @@ private fun DisplayProviderSettings( stringId = R.string.settings_display_divergent_stop, modifier = Modifier.fillMaxWidth() ) + SwitchWithIconAndText( + checked = useSystemFont, + onCheckedChange = { + settingsViewModel.updateUseSystemFont(context, it) + coroutineScope.launch { + snackbarHostState.showSnackbar( + context.getString(R.string.changes_saved) + ) + } + }, + drawableId = R.drawable.ic_font, + stringId = R.string.use_system_font, + modifier = Modifier.fillMaxWidth() + ) } } } @@ -228,7 +243,7 @@ private fun TraewellingProviderSettings( ) Text( text = "Träwelling", - style = AppTypography.titleLarge, + style = LocalFont.current.titleLarge, fontWeight = FontWeight.Bold ) } @@ -316,7 +331,7 @@ private fun TravelynxProviderSettings( ) Text( text = "travelynx", - style = AppTypography.titleLarge, + style = LocalFont.current.titleLarge, fontWeight = FontWeight.Bold ) } @@ -364,7 +379,7 @@ private fun TravelynxProviderSettings( ) Text( text = stringResource(id = R.string.travelynx_limited_functionality), - style = AppTypography.labelSmall, + style = LocalFont.current.labelSmall, textAlign = TextAlign.Justify, modifier = Modifier.fillMaxWidth() ) @@ -491,12 +506,12 @@ private fun MapViewSettings( Column { Text( text = stringResource(id = layer.title), - style = AppTypography.labelLarge, + style = LocalFont.current.labelLarge, fontWeight = FontWeight.ExtraBold ) Text( text = stringResource(id = layer.description), - style = AppTypography.labelSmall + style = LocalFont.current.labelSmall ) } } @@ -621,12 +636,12 @@ private fun SettingsCard( ) { Text( text = stringResource(id = title), - style = AppTypography.headlineSmall + style = LocalFont.current.headlineSmall ) Text( modifier = Modifier.padding(top = 4.dp), text = stringResource(id = description), - style = AppTypography.labelSmall + style = LocalFont.current.labelSmall ) } if (expandable) { diff --git a/app/src/main/kotlin/de/hbch/traewelling/ui/statistics/DailyStatistics.kt b/app/src/main/kotlin/de/hbch/traewelling/ui/statistics/DailyStatistics.kt index 85f421bf..7dcb87c7 100644 --- a/app/src/main/kotlin/de/hbch/traewelling/ui/statistics/DailyStatistics.kt +++ b/app/src/main/kotlin/de/hbch/traewelling/ui/statistics/DailyStatistics.kt @@ -44,7 +44,7 @@ import de.hbch.traewelling.api.models.polyline.FeatureCollection import de.hbch.traewelling.api.models.statistics.DailyStatistics import de.hbch.traewelling.api.models.status.Status import de.hbch.traewelling.shared.LoggedInUserViewModel -import de.hbch.traewelling.theme.AppTypography +import de.hbch.traewelling.theme.LocalFont import de.hbch.traewelling.theme.MainTheme import de.hbch.traewelling.theme.PolylineColor import de.hbch.traewelling.ui.composables.ButtonWithIconAndText @@ -318,7 +318,7 @@ private fun Fact( } Text( text = text, - style = AppTypography.titleLarge + style = LocalFont.current.titleLarge ) if (iconEnd) { Icon( diff --git a/app/src/main/kotlin/de/hbch/traewelling/ui/statusDetail/StatusDetail.kt b/app/src/main/kotlin/de/hbch/traewelling/ui/statusDetail/StatusDetail.kt index 21a609ef..defd5b4f 100644 --- a/app/src/main/kotlin/de/hbch/traewelling/ui/statusDetail/StatusDetail.kt +++ b/app/src/main/kotlin/de/hbch/traewelling/ui/statusDetail/StatusDetail.kt @@ -50,7 +50,7 @@ import de.hbch.traewelling.api.models.status.StatusVisibility import de.hbch.traewelling.api.models.user.User import de.hbch.traewelling.shared.LoggedInUserViewModel import de.hbch.traewelling.shared.SettingsViewModel -import de.hbch.traewelling.theme.AppTypography +import de.hbch.traewelling.theme.LocalFont import de.hbch.traewelling.theme.MainTheme import de.hbch.traewelling.theme.PolylineColor import de.hbch.traewelling.ui.composables.ButtonWithIconAndText @@ -206,7 +206,7 @@ fun StatusDetail( text = operator ?: "", modifier = Modifier.fillMaxWidth(), textAlign = TextAlign.End, - style = AppTypography.labelMedium + style = LocalFont.current.labelMedium ) } Row( @@ -226,7 +226,7 @@ fun StatusDetail( id = R.string.checked_in_with, status?.client?.name ?: "Träwelling" ), - style = AppTypography.labelMedium, + style = LocalFont.current.labelMedium, maxLines = 2 ) } @@ -338,7 +338,7 @@ private fun StatusLikes( ) { Text( text = stringResource(id = R.string.likes, likes), - style = AppTypography.bodyLarge + style = LocalFont.current.bodyLarge ) IconButton(onClick = expandAction) { AnimatedContent(cardExpanded, label = "CardExpansionIcon") { diff --git a/app/src/main/kotlin/de/hbch/traewelling/ui/tag/Tag.kt b/app/src/main/kotlin/de/hbch/traewelling/ui/tag/Tag.kt index 94a05f4f..40f0d955 100644 --- a/app/src/main/kotlin/de/hbch/traewelling/ui/tag/Tag.kt +++ b/app/src/main/kotlin/de/hbch/traewelling/ui/tag/Tag.kt @@ -42,7 +42,7 @@ import de.hbch.traewelling.R import de.hbch.traewelling.api.models.status.StatusVisibility import de.hbch.traewelling.api.models.status.Tag import de.hbch.traewelling.api.models.status.TagType -import de.hbch.traewelling.theme.AppTypography +import de.hbch.traewelling.theme.LocalFont import de.hbch.traewelling.theme.MainTheme import de.hbch.traewelling.ui.composables.ButtonWithIconAndText import de.hbch.traewelling.ui.composables.Dialog @@ -226,7 +226,7 @@ fun TagForm( val title = if (isCreationMode) R.string.add_tag else R.string.edit_tag Text( text = stringResource(id = title), - style = AppTypography.titleLarge + style = LocalFont.current.titleLarge ) if (isCreationMode && availableTagsToAdd.isEmpty()) { Text( diff --git a/app/src/main/kotlin/de/hbch/traewelling/ui/user/TrustedUsers.kt b/app/src/main/kotlin/de/hbch/traewelling/ui/user/TrustedUsers.kt index 036aaa4d..5adf9f79 100644 --- a/app/src/main/kotlin/de/hbch/traewelling/ui/user/TrustedUsers.kt +++ b/app/src/main/kotlin/de/hbch/traewelling/ui/user/TrustedUsers.kt @@ -35,7 +35,7 @@ import androidx.lifecycle.viewmodel.compose.viewModel import de.hbch.traewelling.R import de.hbch.traewelling.api.models.user.TrustedUser import de.hbch.traewelling.api.models.user.User -import de.hbch.traewelling.theme.AppTypography +import de.hbch.traewelling.theme.LocalFont import de.hbch.traewelling.ui.composables.ButtonWithIconAndText import de.hbch.traewelling.ui.composables.DataLoading import de.hbch.traewelling.ui.composables.DateTimeSelection @@ -108,7 +108,7 @@ fun TrustedUsers( Text( text = stringResource(id = R.string.these_can_check_you_in), modifier = Modifier.fillMaxWidth(), - style = AppTypography.labelMedium + style = LocalFont.current.labelMedium ) trustedUsers.forEach { user -> var isRemoving by remember { mutableStateOf(false) } @@ -197,7 +197,7 @@ fun AddTrustedUser( ) { Text( text = stringResource(id = R.string.add_trusted_user), - style = AppTypography.titleLarge + style = LocalFont.current.titleLarge ) OutlinedTextField( value = userSearch, diff --git a/app/src/main/kotlin/de/hbch/traewelling/ui/user/User.kt b/app/src/main/kotlin/de/hbch/traewelling/ui/user/User.kt index 6b879e05..95eb716f 100644 --- a/app/src/main/kotlin/de/hbch/traewelling/ui/user/User.kt +++ b/app/src/main/kotlin/de/hbch/traewelling/ui/user/User.kt @@ -34,8 +34,8 @@ import de.hbch.traewelling.R import de.hbch.traewelling.api.models.user.User import de.hbch.traewelling.shared.LoggedInUserViewModel import de.hbch.traewelling.shared.SharedValues -import de.hbch.traewelling.theme.AppTypography import de.hbch.traewelling.theme.LocalColorScheme +import de.hbch.traewelling.theme.LocalFont import de.hbch.traewelling.theme.MainTheme import de.hbch.traewelling.ui.composables.ButtonWithIconAndText import de.hbch.traewelling.ui.composables.ProfilePicture @@ -116,7 +116,7 @@ private fun UserCardContent( Column { Text( text = stringResource(id = R.string.edit_profile), - style = AppTypography.titleLarge, + style = LocalFont.current.titleLarge, color = LocalColorScheme.current.onPrimary ) Text( @@ -155,7 +155,7 @@ private fun UserCardContent( verticalAlignment = Alignment.CenterVertically ) { Text( - style = AppTypography.titleLarge, + style = LocalFont.current.titleLarge, text = user.name ) if (user.privateProfile) { @@ -179,7 +179,7 @@ private fun UserCardContent( } } Text( - style = AppTypography.titleMedium, + style = LocalFont.current.titleMedium, text = "@${user.username}" ) } diff --git a/app/src/main/kotlin/de/hbch/traewelling/util/Extensions.kt b/app/src/main/kotlin/de/hbch/traewelling/util/Extensions.kt index b2af15f5..79f600e0 100644 --- a/app/src/main/kotlin/de/hbch/traewelling/util/Extensions.kt +++ b/app/src/main/kotlin/de/hbch/traewelling/util/Extensions.kt @@ -46,7 +46,7 @@ import de.hbch.traewelling.logging.Logger import de.hbch.traewelling.shared.FeatureFlags import de.hbch.traewelling.shared.LoggedInUserViewModel import de.hbch.traewelling.shared.SharedValues -import de.hbch.traewelling.theme.AppTypography +import de.hbch.traewelling.theme.LocalFont import de.hbch.traewelling.ui.include.status.CheckInCard import de.hbch.traewelling.ui.include.status.CheckInCardViewModel import kotlinx.coroutines.CoroutineScope @@ -123,7 +123,7 @@ fun LazyListScope.checkInList( .weight(1f), maxLines = 2, overflow = TextOverflow.Ellipsis, - style = AppTypography.titleLarge + style = LocalFont.current.titleLarge ) if (showDailyStatisticsLink) { Icon( diff --git a/app/src/main/res/drawable/ic_font.xml b/app/src/main/res/drawable/ic_font.xml new file mode 100644 index 00000000..d80c6712 --- /dev/null +++ b/app/src/main/res/drawable/ic_font.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/values-de-rDE/strings.xml b/app/src/main/res/values-de-rDE/strings.xml index 453cc8c5..20216907 100644 --- a/app/src/main/res/values-de-rDE/strings.xml +++ b/app/src/main/res/values-de-rDE/strings.xml @@ -285,4 +285,5 @@ Du wurdest von %1$s eingecheckt Als Bild teilen Tags auf Bild zeigen + Systemschriftart verwenden \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 11cd109b..310fbe2b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -312,4 +312,5 @@ You have been checked-in by %1$s Share as image Show tags on image + Use system font \ No newline at end of file