feat: custom font scale factor for content classes (#541)

This commit is contained in:
Diego Beraldin 2024-02-20 13:07:48 +01:00 committed by GitHub
parent 4d36ee8a7b
commit 3f935ae66c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
66 changed files with 491 additions and 257 deletions

View File

@ -0,0 +1,15 @@
package com.github.diegoberaldin.raccoonforlemmy.core.appearance.repository
data class ContentFontScales(
val title: Float = 1f,
val body: Float = 1f,
val comment: Float = 1f,
val ancillary: Float = 1f,
)
sealed interface ContentFontClass {
data object Title : ContentFontClass
data object Body : ContentFontClass
data object Comment : ContentFontClass
data object AncillaryText : ContentFontClass
}

View File

@ -13,7 +13,7 @@ internal class DefaultThemeRepository : ThemeRepository {
override val uiTheme = MutableStateFlow<UiTheme?>(null)
override val uiFontFamily = MutableStateFlow(UiFontFamily.Poppins)
override val uiFontScale = MutableStateFlow(1f)
override val contentFontScale = MutableStateFlow(1f)
override val contentFontScale = MutableStateFlow(ContentFontScales())
override val contentFontFamily = MutableStateFlow(UiFontFamily.Poppins)
override val navItemTitles = MutableStateFlow(false)
override val dynamicColors = MutableStateFlow(false)
@ -38,7 +38,7 @@ internal class DefaultThemeRepository : ThemeRepository {
uiFontScale.value = value
}
override fun changeContentFontScale(value: Float) {
override fun changeContentFontScale(value: ContentFontScales) {
contentFontScale.value = value
}

View File

@ -14,7 +14,7 @@ interface ThemeRepository {
val uiTheme: StateFlow<UiTheme?>
val uiFontFamily: StateFlow<UiFontFamily>
val uiFontScale: StateFlow<Float>
val contentFontScale: StateFlow<Float>
val contentFontScale: StateFlow<ContentFontScales>
val contentFontFamily: StateFlow<UiFontFamily>
val navItemTitles: StateFlow<Boolean>
val dynamicColors: StateFlow<Boolean>
@ -33,7 +33,7 @@ interface ThemeRepository {
fun changeUiFontScale(value: Float)
fun changeContentFontScale(value: Float)
fun changeContentFontScale(value: ContentFontScales)
fun changeContentFontFamily(value: UiFontFamily)

View File

@ -14,17 +14,12 @@ import com.github.diegoberaldin.raccoonforlemmy.core.appearance.di.getThemeRepos
@Composable
fun AppTheme(
theme: UiTheme?,
contentFontScale: Float,
useDynamicColors: Boolean,
barTheme: UiBarTheme = UiBarTheme.Solid,
content: @Composable () -> Unit,
) {
val repository = remember {
val res = getThemeRepository()
res.changeUiTheme(theme)
res.changeContentFontScale(contentFontScale)
res
getThemeRepository()
}
val themeState by repository.uiTheme.collectAsState()
@ -47,7 +42,7 @@ fun AppTheme(
val barColorProvider = remember { getBarColorProvider() }
barColorProvider.setBarColorAccordingToTheme(
theme = theme ?: defaultTheme,
theme = themeState ?: defaultTheme,
barTheme = barTheme,
)

View File

@ -8,16 +8,26 @@ import androidx.compose.runtime.remember
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.unit.Density
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.di.getThemeRepository
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.repository.ContentFontClass
@Composable
fun CustomizedContent(content: @Composable () -> Unit) {
fun CustomizedContent(
contentClass: ContentFontClass,
content: @Composable () -> Unit,
) {
val themeRepository = remember { getThemeRepository() }
val fontScale by themeRepository.contentFontScale.collectAsState()
val scaleFactor = when (contentClass) {
ContentFontClass.Title -> fontScale.title
ContentFontClass.Body -> fontScale.body
ContentFontClass.Comment -> fontScale.comment
ContentFontClass.AncillaryText -> fontScale.ancillary
}
CompositionLocalProvider(
LocalDensity provides Density(
density = LocalDensity.current.density,
fontScale = fontScale,
fontScale = scaleFactor,
),
) {
content()

View File

@ -25,6 +25,7 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.toSize
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.VoteFormat
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.di.getThemeRepository
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.repository.ContentFontClass
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.IconSize
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.Spacing
import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.CustomizedContent
@ -125,7 +126,7 @@ fun CommentCard(
color = MaterialTheme.colorScheme.onBackground.copy(alpha = 0.75f),
)
} else {
CustomizedContent {
CustomizedContent(ContentFontClass.Body) {
CompositionLocalProvider(
LocalDensity provides Density(
density = LocalDensity.current.density,

View File

@ -32,10 +32,12 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.repository.ContentFontClass
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.CornerSize
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.IconSize
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.Spacing
import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.CustomImage
import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.CustomizedContent
import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.PlaceholderImage
import com.github.diegoberaldin.raccoonforlemmy.core.utils.compose.onClick
import com.github.diegoberaldin.raccoonforlemmy.core.utils.compose.rememberCallback
@ -148,40 +150,44 @@ fun CommunityAndCreatorInfo(
modifier = Modifier.padding(vertical = Spacing.xxxs),
) {
if (community != null) {
Text(
modifier = Modifier
.onClick(
onClick = rememberCallback {
onOpenCommunity?.invoke(community)
},
onDoubleClick = onDoubleClick ?: {},
onLongClick = onLongClick ?: {},
),
text = communityName,
style = MaterialTheme.typography.bodySmall,
color = if (creator == null) ancillaryColor else fullColor,
)
CustomizedContent(ContentFontClass.AncillaryText) {
Text(
modifier = Modifier
.onClick(
onClick = rememberCallback {
onOpenCommunity?.invoke(community)
},
onDoubleClick = onDoubleClick ?: {},
onLongClick = onLongClick ?: {},
),
text = communityName,
style = MaterialTheme.typography.bodySmall,
color = if (creator == null) ancillaryColor else fullColor,
)
}
}
if (creator != null) {
val translationAmount = 3.dp.toLocalPixel()
Text(
modifier = Modifier
.graphicsLayer {
if (communityName.isNotEmpty()) {
translationY = -translationAmount
CustomizedContent(ContentFontClass.AncillaryText) {
Text(
modifier = Modifier
.graphicsLayer {
if (communityName.isNotEmpty()) {
translationY = -translationAmount
}
}
}
.onClick(
onClick = rememberCallback {
onOpenCreator?.invoke(creator)
},
onDoubleClick = onDoubleClick ?: {},
onLongClick = onLongClick ?: {},
),
text = creatorName,
style = MaterialTheme.typography.bodySmall,
color = ancillaryColor,
)
.onClick(
onClick = rememberCallback {
onOpenCreator?.invoke(creator)
},
onDoubleClick = onDoubleClick ?: {},
onLongClick = onLongClick ?: {},
),
text = creatorName,
style = MaterialTheme.typography.bodySmall,
color = ancillaryColor,
)
}
}
}
if (isOp) {

View File

@ -34,7 +34,6 @@ import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.IconSize
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.Spacing
import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.CustomDropDown
import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.CustomImage
import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.CustomizedContent
import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.PlaceholderImage
import com.github.diegoberaldin.raccoonforlemmy.core.utils.compose.onClick
import com.github.diegoberaldin.raccoonforlemmy.core.utils.compose.rememberCallback
@ -85,106 +84,103 @@ fun CommunityItem(
title = community.readableName(preferNicknames),
)
}
CustomizedContent {
Column(
modifier = Modifier.weight(1f)
) {
val translationAmount = 3.dp.toLocalPixel()
Text(
text = buildString {
append(title)
},
style = MaterialTheme.typography.bodyLarge,
color = fullColor,
maxLines = 1,
overflow = TextOverflow.Ellipsis,
)
Text(
modifier = Modifier.graphicsLayer {
translationY = -translationAmount
},
text = buildString {
append("!")
append(communityName)
},
style = MaterialTheme.typography.bodySmall,
color = ancillaryColor,
)
}
if (showSubscribers) {
Row(
modifier = Modifier.padding(start = Spacing.xxs),
horizontalArrangement = Arrangement.spacedBy(Spacing.xs),
verticalAlignment = Alignment.CenterVertically,
) {
Text(
text = community.subscribers.toString(),
style = MaterialTheme.typography.bodyMedium,
color = MaterialTheme.colorScheme.onBackground,
)
Icon(
imageVector = Icons.Default.Group,
contentDescription = "",
tint = MaterialTheme.colorScheme.onBackground,
)
}
}
Column(
modifier = Modifier.weight(1f)
) {
val translationAmount = 3.dp.toLocalPixel()
Text(
text = buildString {
append(title)
},
style = MaterialTheme.typography.bodyLarge,
color = fullColor,
maxLines = 1,
overflow = TextOverflow.Ellipsis,
)
Text(
modifier = Modifier.graphicsLayer {
translationY = -translationAmount
},
text = buildString {
append("!")
append(communityName)
},
style = MaterialTheme.typography.bodySmall,
color = ancillaryColor,
)
}
if (showFavorite) {
if (community.favorite) {
if (showSubscribers) {
Row(
modifier = Modifier.padding(start = Spacing.xxs),
horizontalArrangement = Arrangement.spacedBy(Spacing.xs),
verticalAlignment = Alignment.CenterVertically,
) {
Text(
text = community.subscribers.toString(),
style = MaterialTheme.typography.bodyMedium,
color = MaterialTheme.colorScheme.onBackground,
)
Icon(
modifier = Modifier.size(IconSize.s),
imageVector = Icons.Default.Star,
imageVector = Icons.Default.Group,
contentDescription = "",
tint = MaterialTheme.colorScheme.onBackground,
)
}
}
}
if (options.isNotEmpty()) {
Box {
Icon(
modifier = Modifier.size(IconSize.m)
.padding(Spacing.xs)
.onGloballyPositioned {
optionsOffset = it.positionInParent()
}
.onClick(
if (showFavorite) {
if (community.favorite) {
Icon(
modifier = Modifier.size(IconSize.s),
imageVector = Icons.Default.Star,
contentDescription = "",
tint = MaterialTheme.colorScheme.onBackground,
)
}
}
if (options.isNotEmpty()) {
Box {
Icon(
modifier = Modifier.size(IconSize.m)
.padding(Spacing.xs)
.onGloballyPositioned {
optionsOffset = it.positionInParent()
}
.onClick(
onClick = rememberCallback {
optionsMenuOpen = true
},
),
imageVector = Icons.Default.MoreVert,
contentDescription = null,
tint = ancillaryColor,
)
CustomDropDown(
expanded = optionsMenuOpen,
onDismiss = {
optionsMenuOpen = false
},
offset = DpOffset(
x = optionsOffset.x.toLocalDp(),
y = optionsOffset.y.toLocalDp(),
),
) {
options.forEach { option ->
Text(
modifier = Modifier.padding(
horizontal = Spacing.m,
vertical = Spacing.s,
).onClick(
onClick = rememberCallback {
optionsMenuOpen = true
optionsMenuOpen = false
onOptionSelected?.invoke(option.id)
},
),
imageVector = Icons.Default.MoreVert,
contentDescription = null,
tint = ancillaryColor,
)
CustomDropDown(
expanded = optionsMenuOpen,
onDismiss = {
optionsMenuOpen = false
},
offset = DpOffset(
x = optionsOffset.x.toLocalDp(),
y = optionsOffset.y.toLocalDp(),
),
) {
options.forEach { option ->
Text(
modifier = Modifier.padding(
horizontal = Spacing.m,
vertical = Spacing.s,
).onClick(
onClick = rememberCallback {
optionsMenuOpen = false
onOptionSelected?.invoke(option.id)
},
),
text = option.text,
)
}
text = option.text,
)
}
}
}

View File

@ -16,6 +16,7 @@ import androidx.compose.ui.draw.shadow
import androidx.compose.ui.unit.dp
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.PostLayout
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.VoteFormat
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.repository.ContentFontClass
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.CornerSize
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.Spacing
import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.CustomizedContent
@ -87,7 +88,7 @@ fun InboxCard(
color = MaterialTheme.colorScheme.onBackground.copy(alpha = 0.75f),
)
} else {
CustomizedContent {
CustomizedContent(ContentFontClass.Body) {
PostCardBody(
modifier = Modifier.padding(
horizontal = Spacing.xs,

View File

@ -37,10 +37,12 @@ import androidx.compose.ui.unit.dp
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.VoteFormat
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.formatToReadableValue
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.di.getThemeRepository
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.repository.ContentFontClass
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.IconSize
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.Spacing
import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.CustomDropDown
import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.CustomImage
import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.CustomizedContent
import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.FeedbackButton
import com.github.diegoberaldin.raccoonforlemmy.core.utils.compose.onClick
import com.github.diegoberaldin.raccoonforlemmy.core.utils.compose.rememberCallback
@ -120,14 +122,16 @@ fun InboxReplySubtitle(
contentScale = ContentScale.FillBounds,
)
}
Text(
modifier = Modifier.padding(vertical = Spacing.xs),
text = creatorName,
style = MaterialTheme.typography.bodySmall,
color = ancillaryColor,
overflow = TextOverflow.Ellipsis,
maxLines = 1,
)
CustomizedContent(ContentFontClass.AncillaryText) {
Text(
modifier = Modifier.padding(vertical = Spacing.xs),
text = creatorName,
style = MaterialTheme.typography.bodySmall,
color = ancillaryColor,
overflow = TextOverflow.Ellipsis,
maxLines = 1,
)
}
}
}
if (communityName.isNotEmpty()) {
@ -156,14 +160,16 @@ fun InboxReplySubtitle(
contentScale = ContentScale.FillBounds,
)
}
Text(
modifier = Modifier.padding(vertical = Spacing.xs),
text = communityName,
style = MaterialTheme.typography.bodySmall,
overflow = TextOverflow.Ellipsis,
maxLines = 1,
color = ancillaryColor,
)
CustomizedContent(ContentFontClass.AncillaryText) {
Text(
modifier = Modifier.padding(vertical = Spacing.xs),
text = communityName,
style = MaterialTheme.typography.bodySmall,
overflow = TextOverflow.Ellipsis,
maxLines = 1,
color = ancillaryColor,
)
}
}
}
}

View File

@ -29,7 +29,6 @@ import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.IconSize
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.Spacing
import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.CustomDropDown
import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.CustomImage
import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.CustomizedContent
import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.PlaceholderImage
import com.github.diegoberaldin.raccoonforlemmy.core.persistence.data.MultiCommunityModel
import com.github.diegoberaldin.raccoonforlemmy.core.utils.compose.onClick
@ -72,21 +71,21 @@ fun MultiCommunityItem(
)
}
CustomizedContent {
Column(
modifier = Modifier.weight(1f)
) {
Text(
modifier = Modifier.padding(vertical = Spacing.s),
text = buildString {
append(title)
},
color = fullColor,
style = MaterialTheme.typography.bodyLarge,
)
}
Column(
modifier = Modifier.weight(1f)
) {
Text(
modifier = Modifier.padding(vertical = Spacing.s),
text = buildString {
append(title)
},
color = fullColor,
style = MaterialTheme.typography.bodyLarge,
)
}
if (options.isNotEmpty()) {
Box {
Icon(

View File

@ -31,6 +31,7 @@ import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.PostLayout
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.VoteFormat
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.repository.ContentFontClass
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.CornerSize
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.Spacing
import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.CustomizedContent
@ -226,7 +227,7 @@ private fun CompactPost(
verticalAlignment = Alignment.Top,
horizontalArrangement = Arrangement.spacedBy(Spacing.xs)
) {
CustomizedContent {
CustomizedContent(ContentFontClass.Title) {
PostCardTitle(
modifier = Modifier.weight(0.75f),
text = post.title,
@ -370,7 +371,7 @@ private fun ExtendedPost(
optionsMenuOpen.value = true
},
)
CustomizedContent {
CustomizedContent(ContentFontClass.Title) {
PostCardTitle(
modifier = Modifier.padding(
vertical = Spacing.xs,
@ -437,7 +438,7 @@ private fun ExtendedPost(
color = MaterialTheme.colorScheme.onBackground.copy(alpha = 0.75f),
)
} else {
CustomizedContent {
CustomizedContent(ContentFontClass.Body) {
PostCardBody(
modifier = Modifier.padding(
top = Spacing.xxs,

View File

@ -30,7 +30,6 @@ import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.IconSize
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.Spacing
import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.CustomDropDown
import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.CustomImage
import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.CustomizedContent
import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.PlaceholderImage
import com.github.diegoberaldin.raccoonforlemmy.core.utils.compose.onClick
import com.github.diegoberaldin.raccoonforlemmy.core.utils.compose.rememberCallback
@ -78,13 +77,11 @@ fun UserItem(
)
}
CustomizedContent {
Text(
text = user.readableHandle,
style = MaterialTheme.typography.bodySmall,
color = fullColor,
)
}
Text(
text = user.readableHandle,
style = MaterialTheme.typography.bodySmall,
color = fullColor,
)
if (options.isNotEmpty()) {
Box {

View File

@ -179,7 +179,7 @@
<string name="settings_content_font_larger">كبير جدا</string>
<string name="settings_content_font_largest">دوبل إكسترا لارج</string>
<string name="settings_content_font_normal">عادي</string>
<string name="settings_content_font_scale">حجم نص المحتوى</string>
<string name="settings_content_font_scale">حجم النص من المشاركات</string>
<string name="settings_content_font_small">صغير</string>
<string name="settings_content_font_smaller">صغيرة إضافية</string>
<string name="settings_content_font_smallest">مزدوج إضافي صغير</string>
@ -331,4 +331,7 @@
<string name="settings_comment_bar_thickness">سمك شريط التعليق</string>
<string name="settings_prefer_user_nicknames">استخدم أسماء العرض للمستخدمين والمجتمعات</string>
<string name="message_video_nsfw">تم وضع علامة على هذا الفيديو على أنه NSFW</string>
<string name="settings_title_font_scale">حجم نص العناوين</string>
<string name="settings_comment_font_scale">حجم نص التعليقات</string>
<string name="settings_ancillary_font_scale">حجم النصوص المساعدة</string>
</resources>

View File

@ -183,7 +183,7 @@
<string name="settings_content_font_larger">Много голям</string>
<string name="settings_content_font_largest">Двойна много голяма</string>
<string name="settings_content_font_normal">Нормална</string>
<string name="settings_content_font_scale">Размер на текста на съдържанието</string>
<string name="settings_content_font_scale">Размер на текста на публикациите</string>
<string name="settings_content_font_small">Малко</string>
<string name="settings_content_font_smaller">Много Малък</string>
<string name="settings_content_font_smallest">Двойно по - малко</string>
@ -341,4 +341,7 @@
<string name="settings_comment_bar_thickness">Дебелина на лентата за коментари</string>
<string name="settings_prefer_user_nicknames">Използвайте показвани имена за потребители и общности</string>
<string name="message_video_nsfw">Този видеоклип беше маркиран като NSFW</string>
<string name="settings_title_font_scale">Размер на текста на заглавията</string>
<string name="settings_comment_font_scale">Размер на текста на коментарите</string>
<string name="settings_ancillary_font_scale">Размер на спомагателните текстове</string>
</resources>

View File

@ -181,7 +181,7 @@
<string name="settings_content_font_larger">Extra velké</string>
<string name="settings_content_font_largest">Dvojité extra velké</string>
<string name="settings_content_font_normal">Normální</string>
<string name="settings_content_font_scale">Velikost textu obsahu</string>
<string name="settings_content_font_scale">Velikost textu příspěvků</string>
<string name="settings_content_font_small">Malé</string>
<string name="settings_content_font_smaller">Velmi malé</string>
<string name="settings_content_font_smallest">Dvojité extra malé</string>
@ -333,4 +333,7 @@
<string name="settings_comment_bar_thickness">Komentář tloušťka tyče</string>
<string name="settings_prefer_user_nicknames">Používejte zobrazovaná jména pro uživatele a komunity</string>
<string name="message_video_nsfw">Toto video bylo označeno jako NSFW</string>
<string name="settings_title_font_scale">Velikost textu titulků</string>
<string name="settings_comment_font_scale">Velikost textu komentářů</string>
<string name="settings_ancillary_font_scale">Velikost pomocných textů</string>
</resources>

View File

@ -181,7 +181,7 @@
<string name="settings_content_font_larger">Ekstra stort</string>
<string name="settings_content_font_largest">Dobbelt ekstra stor</string>
<string name="settings_content_font_normal">Normal</string>
<string name="settings_content_font_scale">Indhold tekst størrelse</string>
<string name="settings_content_font_scale">Tekststørrelse på indlæg</string>
<string name="settings_content_font_small">Lille</string>
<string name="settings_content_font_smaller">Ekstra lille</string>
<string name="settings_content_font_smallest">Dobbelt ekstra lille</string>
@ -333,4 +333,7 @@
<string name="settings_comment_bar_thickness">Kommentarbjælketykkelse</string>
<string name="settings_prefer_user_nicknames">Brug visningsnavne til brugere og fællesskaber</string>
<string name="message_video_nsfw">Denne video blev markeret som NSFW</string>
<string name="settings_title_font_scale">Tekststørrelse på titler</string>
<string name="settings_comment_font_scale">Tekststørrelse af kommentarer</string>
<string name="settings_ancillary_font_scale">Størrelse af hjælpetekster</string>
</resources>

View File

@ -183,7 +183,7 @@
<string name="settings_content_font_larger">Extra groß</string>
<string name="settings_content_font_largest">Doppelt extra groß</string>
<string name="settings_content_font_normal">Normal</string>
<string name="settings_content_font_scale">Inhalt-Schriftgröße</string>
<string name="settings_content_font_scale">Textgröße der Beiträge</string>
<string name="settings_content_font_small">Klein</string>
<string name="settings_content_font_smaller">Extra klein</string>
<string name="settings_content_font_smallest">Doppelt extra klein</string>
@ -341,4 +341,7 @@
<string name="settings_comment_bar_thickness">Dicke der Kommentarleiste</string>
<string name="settings_prefer_user_nicknames">Verwenden Sie Anzeigenamen für Benutzer und Communities</string>
<string name="message_video_nsfw">Dieses Video wurde als NSFW markiert</string>
<string name="settings_title_font_scale">Textgröße der Titel</string>
<string name="settings_comment_font_scale">Textgröße von Kommentaren</string>
<string name="settings_ancillary_font_scale">Größe der Zusatztexte</string>
</resources>

View File

@ -183,7 +183,7 @@
<string name="settings_content_font_larger">Εξαιρετικά μεγάλο</string>
<string name="settings_content_font_largest">Διπλά εξαιρετικά μεγάλο</string>
<string name="settings_content_font_normal">Κανονικό</string>
<string name="settings_content_font_scale">Μέγεθος κειμένου περιεχομένου</string>
<string name="settings_content_font_scale">Μέγεθος κειμένου αναρτήσεων</string>
<string name="settings_content_font_small">Μικρό</string>
<string name="settings_content_font_smaller">Πολύ μικρό</string>
<string name="settings_content_font_smallest">Διπλά πολύ μικρό</string>
@ -344,4 +344,7 @@
<string name="settings_comment_bar_thickness">Πάχος ράβδου σχολίων</string>
<string name="settings_prefer_user_nicknames">Χρησιμοποιήστε εμφανιζόμενα ονόματα για χρήστες και κοινότητες</string>
<string name="message_video_nsfw">Αυτό το βίντεο επισημάνθηκε ως NSFW</string>
<string name="settings_title_font_scale">Μέγεθος κειμένου των τίτλων</string>
<string name="settings_comment_font_scale">Μέγεθος κειμένου σχολίων</string>
<string name="settings_ancillary_font_scale">Μέγεθος βοηθητικών κειμένων</string>
</resources>

View File

@ -181,7 +181,7 @@
<string name="settings_content_font_larger">Pli granda</string>
<string name="settings_content_font_largest">Duoble pli granda</string>
<string name="settings_content_font_normal">Normala</string>
<string name="settings_content_font_scale">Enhava tekstograndeco</string>
<string name="settings_content_font_scale">Teksta grandeco de afiŝoj</string>
<string name="settings_content_font_small">Malgranda</string>
<string name="settings_content_font_smaller">Pli malgranda</string>
<string name="settings_content_font_smallest">Duoble pli malgranda</string>
@ -332,4 +332,7 @@
<string name="settings_comment_bar_thickness">Komento trinkejo dikeco</string>
<string name="settings_prefer_user_nicknames">Uzu vidnomojn por uzantoj kaj komunumoj</string>
<string name="message_video_nsfw">Ĉi tiu video estis markita kiel NSFW</string>
<string name="settings_title_font_scale">Tekstograndeco de titoloj</string>
<string name="settings_comment_font_scale">Tekstograndeco de komentoj</string>
<string name="settings_ancillary_font_scale">Grandeco de helpaj tekstoj</string>
</resources>

View File

@ -181,7 +181,7 @@
<string name="settings_content_font_larger">Muy grande</string>
<string name="settings_content_font_largest">Extra grande</string>
<string name="settings_content_font_normal">Normal</string>
<string name="settings_content_font_scale">Tamaño de texto del contenido</string>
<string name="settings_content_font_scale">Tamaño de texto publicaciones</string>
<string name="settings_content_font_small">Pequeño</string>
<string name="settings_content_font_smaller">Muy pequeño</string>
<string name="settings_content_font_smallest">Extra pequeño</string>
@ -334,4 +334,7 @@
<string name="settings_comment_bar_thickness">Grosor de la barra de comentarios</string>
<string name="settings_prefer_user_nicknames">Utilizar nombres para mostrar para usuarios y comunidades</string>
<string name="message_video_nsfw">Este vídeo fue marcado como NSFW</string>
<string name="settings_title_font_scale">Tamaño del texto de los títulos.</string>
<string name="settings_comment_font_scale">Tamaño del texto de los comentarios.</string>
<string name="settings_ancillary_font_scale">Tamaño de los textos auxiliares</string>
</resources>

View File

@ -181,7 +181,7 @@
<string name="settings_content_font_larger">Eriti suur</string>
<string name="settings_content_font_largest">Kahekordne ülisuur</string>
<string name="settings_content_font_normal">Normaalne</string>
<string name="settings_content_font_scale">Sisu teksti suurus</string>
<string name="settings_content_font_scale">Postituste teksti suurus</string>
<string name="settings_content_font_small">Väike</string>
<string name="settings_content_font_smaller">Eriti väike</string>
<string name="settings_content_font_smallest">Kahekordne üliväike</string>
@ -333,4 +333,7 @@
<string name="settings_comment_bar_thickness">Kommentaari riba paksus</string>
<string name="settings_prefer_user_nicknames">Kasutage kasutajate ja kogukondade jaoks kuvatavaid nimesid</string>
<string name="message_video_nsfw">See video märgiti kui NSFW</string>
<string name="settings_title_font_scale">Pealkirjade teksti suurus</string>
<string name="settings_comment_font_scale">Kommentaaride teksti suurus</string>
<string name="settings_ancillary_font_scale">Abitekstide suurus</string>
</resources>

View File

@ -181,7 +181,7 @@
<string name="settings_content_font_larger">Erittäin suuri</string>
<string name="settings_content_font_largest">Kaksinkertainen erittäin suuri</string>
<string name="settings_content_font_normal">Normaali</string>
<string name="settings_content_font_scale">Sisällön tekstin koko</string>
<string name="settings_content_font_scale">Viestien tekstikoko</string>
<string name="settings_content_font_small">Pieni</string>
<string name="settings_content_font_smaller">Erittäin pieni</string>
<string name="settings_content_font_smallest">Kaksinkertainen erittäin pieni</string>
@ -333,4 +333,7 @@
<string name="settings_comment_bar_thickness">Kommenttipalkin paksuus</string>
<string name="settings_prefer_user_nicknames">Käytä näyttönimiä käyttäjille ja yhteisöille</string>
<string name="message_video_nsfw">Tämä video on merkitty NSFW:ksi</string>
<string name="settings_title_font_scale">Otsikon tekstikoko</string>
<string name="settings_comment_font_scale">Kommenttien tekstikoko</string>
<string name="settings_ancillary_font_scale">Aputekstien koko</string>
</resources>

View File

@ -183,7 +183,7 @@
<string name="settings_content_font_larger">Extra large</string>
<string name="settings_content_font_largest">Double extra large</string>
<string name="settings_content_font_normal">Normal</string>
<string name="settings_content_font_scale">Tailler du texte des contenus</string>
<string name="settings_content_font_scale">Tailler du texte des publications</string>
<string name="settings_content_font_small">Petit</string>
<string name="settings_content_font_smaller">Extra petit</string>
<string name="settings_content_font_smallest">Double extra petit</string>
@ -338,4 +338,7 @@
<string name="settings_comment_bar_thickness">Épaisseur de la barre de commentaires</string>
<string name="settings_prefer_user_nicknames">Utiliser des noms d\'affichage pour les utilisateurs et les communautés</string>
<string name="message_video_nsfw">Cette vidéo a été marquée comme NSFW</string>
<string name="settings_title_font_scale">Taille du texte des titres</string>
<string name="settings_comment_font_scale">Taille du texte des commentaires</string>
<string name="settings_ancillary_font_scale">Taille des textes annexes</string>
</resources>

View File

@ -186,7 +186,7 @@
<string name="settings_content_font_larger">An - mhór</string>
<string name="settings_content_font_largest">An - mhór dúbailte</string>
<string name="settings_content_font_normal">Gnáth</string>
<string name="settings_content_font_scale">Méid an ábhair</string>
<string name="settings_content_font_scale">Méid téacs na bpostálacha</string>
<string name="settings_content_font_small">Beag</string>
<string name="settings_content_font_smaller">An - bheag</string>
<string name="settings_content_font_smallest">Dhá oiread beag breise</string>
@ -342,4 +342,7 @@
<string name="settings_comment_bar_thickness">Tiús barra tráchta</string>
<string name="settings_prefer_user_nicknames">Úsáid ainmneacha taispeána le haghaidh úsáideoirí agus pobail</string>
<string name="message_video_nsfw">Marcáladh an físeán seo mar NSFW</string>
<string name="settings_title_font_scale">Méid téacs na dteideal</string>
<string name="settings_comment_font_scale">Méid téacs na dtuairimí</string>
<string name="settings_ancillary_font_scale">Méid na dtéacsanna coimhdeacha</string>
</resources>

View File

@ -183,7 +183,7 @@
<string name="settings_content_font_larger">Jako velika</string>
<string name="settings_content_font_largest">Dvostruko ekstra velika</string>
<string name="settings_content_font_normal">Normalno</string>
<string name="settings_content_font_scale">Veličina teksta sadržaja</string>
<string name="settings_content_font_scale">Veličina teksta postova</string>
<string name="settings_content_font_small">Mali</string>
<string name="settings_content_font_smaller">jako malo</string>
<string name="settings_content_font_smallest">Dvostruko, vrlo malo</string>
@ -338,4 +338,7 @@
<string name="settings_comment_bar_thickness">Debljina trake komentara</string>
<string name="settings_prefer_user_nicknames">Koristite imena za prikaz za korisnike i zajednice</string>
<string name="message_video_nsfw">Ovaj video je označen kao NSFW</string>
<string name="settings_title_font_scale">Veličina teksta naslova</string>
<string name="settings_comment_font_scale">Veličina teksta komentara</string>
<string name="settings_ancillary_font_scale">Veličina pomoćnih tekstova</string>
</resources>

View File

@ -181,7 +181,7 @@
<string name="settings_content_font_larger">Nagyon nagy</string>
<string name="settings_content_font_largest">Dupla extra nagy</string>
<string name="settings_content_font_normal">Átlagos</string>
<string name="settings_content_font_scale">Tartalom szövegének mérete</string>
<string name="settings_content_font_scale">Hozzászólások szövegmérete</string>
<string name="settings_content_font_small">Kicsi</string>
<string name="settings_content_font_smaller">Extra kicsi</string>
<string name="settings_content_font_smallest">Dupla extra kicsi</string>
@ -337,4 +337,7 @@
<string name="settings_comment_bar_thickness">Megjegyzés sáv vastagsága</string>
<string name="settings_prefer_user_nicknames">Használjon megjelenített neveket a felhasználók és közösségek számára</string>
<string name="message_video_nsfw">Ez a videó NSFW-ként lett megjelölve</string>
<string name="settings_title_font_scale">Címek szövegmérete</string>
<string name="settings_comment_font_scale">Megjegyzések szövegmérete</string>
<string name="settings_ancillary_font_scale">A segédszövegek mérete</string>
</resources>

View File

@ -183,7 +183,7 @@
<string name="settings_content_font_larger">Più grande</string>
<string name="settings_content_font_largest">Grandissimo</string>
<string name="settings_content_font_normal">Normale</string>
<string name="settings_content_font_scale">Dimensione testo contenuti</string>
<string name="settings_content_font_scale">Dimensione testo post</string>
<string name="settings_content_font_small">Piccolo</string>
<string name="settings_content_font_smaller">Più piccolo</string>
<string name="settings_content_font_smallest">Piccolissimo</string>
@ -337,4 +337,7 @@
<string name="settings_comment_bar_thickness">Spessore barra dei commenti</string>
<string name="settings_prefer_user_nicknames">Utilizza nome visualizzato per utenti e comunità</string>
<string name="message_video_nsfw">Questo video è stato contrassegnato come NSFW</string>
<string name="settings_title_font_scale">Dimensione testo titoli</string>
<string name="settings_comment_font_scale">Dimensione testo commenti</string>
<string name="settings_ancillary_font_scale">Dimensione testi ancillari</string>
</resources>

View File

@ -181,7 +181,7 @@
<string name="settings_content_font_larger">Εχτra large</string>
<string name="settings_content_font_largest">Dvivietis ypač didelis</string>
<string name="settings_content_font_normal">Normalus</string>
<string name="settings_content_font_scale">Turinio teksto dydis</string>
<string name="settings_content_font_scale">Įrašų teksto dydis</string>
<string name="settings_content_font_small">Mažas</string>
<string name="settings_content_font_smaller">Itin mažas</string>
<string name="settings_content_font_smallest">Dvivietis itin mažas</string>
@ -335,4 +335,7 @@
<string name="settings_comment_bar_thickness">Komentarų juostos storis</string>
<string name="settings_prefer_user_nicknames">Naudokite rodomus vardus naudotojams ir bendruomenėms</string>
<string name="message_video_nsfw">Šis vaizdo įrašas buvo pažymėtas kaip NSFW</string>
<string name="settings_title_font_scale">Antraštės teksto dydis</string>
<string name="settings_comment_font_scale">Komentarų teksto dydis</string>
<string name="settings_ancillary_font_scale">Pagalbinių tekstų dydis</string>
</resources>

View File

@ -182,7 +182,7 @@
<string name="settings_content_font_larger">Ļoti liels</string>
<string name="settings_content_font_largest">Divvietīgs, īpaši liels</string>
<string name="settings_content_font_normal">Parasta</string>
<string name="settings_content_font_scale">Satura teksta lielums</string>
<string name="settings_content_font_scale">Ziņu teksta lielums</string>
<string name="settings_content_font_small">Neliela</string>
<string name="settings_content_font_smaller">Ekstra mazs</string>
<string name="settings_content_font_smallest">Divvietīgs, īpaši mazs</string>
@ -337,4 +337,7 @@
<string name="settings_comment_bar_thickness">Komentāru joslas biezums</string>
<string name="settings_prefer_user_nicknames">Izmantojiet parādāmos vārdus lietotājiem un kopienām</string>
<string name="message_video_nsfw">Šis videoklips tika atzīmēts kā NSFW</string>
<string name="settings_title_font_scale">Virsrakstu teksta lielums</string>
<string name="settings_comment_font_scale">Komentāru teksta lielums</string>
<string name="settings_ancillary_font_scale">Palīgtekstu lielums</string>
</resources>

View File

@ -181,7 +181,7 @@
<string name="settings_content_font_larger">Iktar kbir</string>
<string name="settings_content_font_largest">Kbir żejjed doppju</string>
<string name="settings_content_font_normal">Normali</string>
<string name="settings_content_font_scale">Daqs tat-test tal-kontenut</string>
<string name="settings_content_font_scale">Daqs tat-test tal-postijiet</string>
<string name="settings_content_font_small">Żgħir</string>
<string name="settings_content_font_smaller">Iktar żgħir</string>
<string name="settings_content_font_smallest">Żgħir żejjed doppju</string>
@ -338,4 +338,7 @@
<string name="settings_comment_bar_thickness">Ħxuna tal-bar tal-kumment</string>
<string name="settings_prefer_user_nicknames">Uża ismijiet tal-wiri għall-utenti u l-komunitajiet</string>
<string name="message_video_nsfw">Dan il-video kien immarkat bħala NSFW</string>
<string name="settings_title_font_scale">Daqs tat-test tat-titoli</string>
<string name="settings_comment_font_scale">Daqs tat-test tal-kummenti</string>
<string name="settings_ancillary_font_scale">Daqs tat-testi anċillari</string>
</resources>

View File

@ -183,7 +183,7 @@
<string name="settings_content_font_larger">Extra large</string>
<string name="settings_content_font_largest">Dubbel extra groot</string>
<string name="settings_content_font_normal">Normaal</string>
<string name="settings_content_font_scale">Inhoud tekst grootte</string>
<string name="settings_content_font_scale">Tekstgrootte van berichten</string>
<string name="settings_content_font_small">Klein</string>
<string name="settings_content_font_smaller">Extra klein</string>
<string name="settings_content_font_smallest">Dubbel extra klein</string>
@ -336,4 +336,7 @@
<string name="settings_comment_bar_thickness">Opmerking staafdikte</string>
<string name="settings_prefer_user_nicknames">Gebruik weergavenamen voor gebruikers en community\'s</string>
<string name="message_video_nsfw">Deze video is gemarkeerd als NSFW</string>
<string name="settings_title_font_scale">Tekstgrootte van titels</string>
<string name="settings_comment_font_scale">Tekstgrootte van opmerkingen</string>
<string name="settings_ancillary_font_scale">Grootte van ondersteunende teksten</string>
</resources>

View File

@ -183,7 +183,7 @@
<string name="settings_content_font_larger">Ekstra stor</string>
<string name="settings_content_font_largest">Dobbel ekstra stor</string>
<string name="settings_content_font_normal">Normale</string>
<string name="settings_content_font_scale">Content text size</string>
<string name="settings_content_font_scale">Tekststørrelse på innlegg</string>
<string name="settings_content_font_small">Små</string>
<string name="settings_content_font_smaller">Ekstra liten</string>
<string name="settings_content_font_smallest">Dobbel ekstra liten</string>
@ -335,4 +335,7 @@
<string name="settings_comment_bar_thickness">Kommentarstavtykkelse</string>
<string name="settings_prefer_user_nicknames">Bruk visningsnavn for brukere og fellesskap</string>
<string name="message_video_nsfw">Denne videoen ble merket som NSFW</string>
<string name="settings_title_font_scale">Tekststørrelse på titler</string>
<string name="settings_comment_font_scale">Tekststørrelse på kommentarer</string>
<string name="settings_ancillary_font_scale">Størrelse på hjelpetekster</string>
</resources>

View File

@ -182,7 +182,7 @@
<string name="settings_content_font_larger">Bardzo duży</string>
<string name="settings_content_font_largest">Podwójny bardzo duży</string>
<string name="settings_content_font_normal">Normalny</string>
<string name="settings_content_font_scale">Rozmiar tekstu treści</string>
<string name="settings_content_font_scale">Rozmiar tekstu postów</string>
<string name="settings_content_font_small">Mały</string>
<string name="settings_content_font_smaller">Bardzo mały</string>
<string name="settings_content_font_smallest">Podwójny bardzo mały</string>
@ -336,4 +336,7 @@
<string name="settings_comment_bar_thickness">Grubość paska komentarza</string>
<string name="settings_prefer_user_nicknames">Używaj nazw wyświetlanych dla użytkowników i społeczności</string>
<string name="message_video_nsfw">Ten film wideo został oznaczony jako NSFW</string>
<string name="settings_title_font_scale">Rozmiar tekstu tytułów</string>
<string name="settings_comment_font_scale">Rozmiar tekstu komentarzy</string>
<string name="settings_ancillary_font_scale">Rozmiar tekstów pomocniczych</string>
</resources>

View File

@ -181,7 +181,7 @@
<string name="settings_content_font_larger">Extragrande</string>
<string name="settings_content_font_largest">Super extragrande</string>
<string name="settings_content_font_normal">Normal</string>
<string name="settings_content_font_scale">Tamanho do texto de conteúdo</string>
<string name="settings_content_font_scale">Tamanho do texto dos posts</string>
<string name="settings_content_font_small">Pequeno</string>
<string name="settings_content_font_smaller">Extra pequeno</string>
<string name="settings_content_font_smallest">Super extrapequeno</string>
@ -333,4 +333,7 @@
<string name="settings_comment_bar_thickness">Espessura da barra de comentários</string>
<string name="settings_prefer_user_nicknames">Usar nomes de exibição para usuários e comunidades</string>
<string name="message_video_nsfw">Este vídeo foi marcado como NSFW</string>
<string name="settings_title_font_scale">Tamanho do texto dos títulos</string>
<string name="settings_comment_font_scale">Tamanho do texto dos comentários</string>
<string name="settings_ancillary_font_scale">Tamanho dos textos auxiliares</string>
</resources>

View File

@ -181,7 +181,7 @@
<string name="settings_content_font_larger">Extra grande</string>
<string name="settings_content_font_largest">Duplo extra large</string>
<string name="settings_content_font_normal">Normal</string>
<string name="settings_content_font_scale">Tamanho do texto dos conteúdos</string>
<string name="settings_content_font_scale">Tamanho do texto das publicações</string>
<string name="settings_content_font_small">Pequeno</string>
<string name="settings_content_font_smaller">Extra pequeno</string>
<string name="settings_content_font_smallest">Doblo extra pequeno</string>
@ -335,4 +335,7 @@
<string name="settings_comment_bar_thickness">Espessura da barra de comentários</string>
<string name="settings_prefer_user_nicknames">Usar nomes de exibição para usuários e comunidades</string>
<string name="message_video_nsfw">Este vídeo foi marcado como NSFW</string>
<string name="settings_title_font_scale">Tamanho do texto dos títulos</string>
<string name="settings_comment_font_scale">Tamanho do texto dos comentários</string>
<string name="settings_ancillary_font_scale">Tamanho dos textos auxiliares</string>
</resources>

View File

@ -182,7 +182,7 @@
<string name="settings_content_font_larger">Foarte mare</string>
<string name="settings_content_font_largest">Dublu extra mare</string>
<string name="settings_content_font_normal">Normal</string>
<string name="settings_content_font_scale">Dimensiunea textului conținuturilor</string>
<string name="settings_content_font_scale">Dimensiunea textului postărilor</string>
<string name="settings_content_font_small">Mic</string>
<string name="settings_content_font_smaller">Extra mic</string>
<string name="settings_content_font_smallest">Dublu extra mic</string>
@ -334,4 +334,7 @@
<string name="settings_comment_bar_thickness">Grosimea barei comentariilor</string>
<string name="settings_prefer_user_nicknames">Utilizează nume afișate pentru utilizatori și comunități</string>
<string name="message_video_nsfw">Acest videoclip a fost marcat ca NSFW</string>
<string name="settings_title_font_scale">Dimensiunea textului titlurilor</string>
<string name="settings_comment_font_scale">Dimensiunea textului comentariilor</string>
<string name="settings_ancillary_font_scale">Dimensiunea textelor auxiliare</string>
</resources>

View File

@ -181,7 +181,7 @@
<string name="settings_content_font_larger">Очень большой</string>
<string name="settings_content_font_largest">Double Extra Large</string>
<string name="settings_content_font_normal">Обычные</string>
<string name="settings_content_font_scale">Размер текста содержимого</string>
<string name="settings_content_font_scale">Размер текста постов</string>
<string name="settings_content_font_small">Маленький</string>
<string name="settings_content_font_smaller">Очень маленький</string>
<string name="settings_content_font_smallest">Double Extra Small</string>
@ -337,4 +337,7 @@
<string name="settings_comment_bar_thickness">Толщина панели комментариев</string>
<string name="settings_prefer_user_nicknames">Используйте отображаемые имена для пользователей и сообществ</string>
<string name="message_video_nsfw">Это видео было отмечено как NSFW.</string>
<string name="settings_title_font_scale">Размер текста заголовков</string>
<string name="settings_comment_font_scale">Размер текста комментариев</string>
<string name="settings_ancillary_font_scale">Размер вспомогательных текстов</string>
</resources>

View File

@ -182,7 +182,7 @@
<string name="settings_content_font_larger">Extra stor</string>
<string name="settings_content_font_largest">Dubbel extra stor</string>
<string name="settings_content_font_normal">Normal</string>
<string name="settings_content_font_scale">Innehållstextstorlek</string>
<string name="settings_content_font_scale">Textstorlek på inlägg</string>
<string name="settings_content_font_small">Liten</string>
<string name="settings_content_font_smaller">Extra liten</string>
<string name="settings_content_font_smallest">Dubbel extra liten</string>
@ -334,4 +334,7 @@
<string name="settings_comment_bar_thickness">Kommentarstapelns tjocklek</string>
<string name="settings_prefer_user_nicknames">Använd visningsnamn för användare och gemenskaper</string>
<string name="message_video_nsfw">Den här videon markerades som NSFW</string>
<string name="settings_title_font_scale">Textstorlek på titlar</string>
<string name="settings_comment_font_scale">Textstorlek på kommentarer</string>
<string name="settings_ancillary_font_scale">Storlek på tilläggstexter</string>
</resources>

View File

@ -183,7 +183,7 @@
</string>
<string name="settings_content_font_largest">Dvojité extra veľké</string>
<string name="settings_content_font_normal">V norme</string>
<string name="settings_content_font_scale">Veľkosť textu obsahu</string>
<string name="settings_content_font_scale">Veľkosť textu príspevkov</string>
<string name="settings_content_font_small">Malá</string>
<string name="settings_content_font_smaller">Extra</string>
<string name="settings_content_font_smallest">Dvojité extra malé</string>
@ -335,4 +335,7 @@
<string name="settings_comment_bar_thickness">Komentár hrúbka pruhu</string>
<string name="settings_prefer_user_nicknames">Používať zobrazované mená pre používateľov a komunity</string>
<string name="message_video_nsfw">Toto video bolo označené ako NSFW</string>
<string name="settings_title_font_scale">Veľkosť textu titulkov</string>
<string name="settings_comment_font_scale">Veľkosť textu komentárov</string>
<string name="settings_ancillary_font_scale">Veľkosť pomocných textov</string>
</resources>

View File

@ -180,7 +180,7 @@
<string name="settings_content_font_larger">Zelo velika</string>
<string name="settings_content_font_largest">Dvojno, zelo veliko</string>
<string name="settings_content_font_normal">Normalno</string>
<string name="settings_content_font_scale">Velikost besedila vsebine</string>
<string name="settings_content_font_scale">Velikost besedila objav</string>
<string name="settings_content_font_small">Majhna</string>
<string name="settings_content_font_smaller">Zelo majhen</string>
<string name="settings_content_font_smallest">Dvojno, zelo majhno</string>
@ -333,4 +333,7 @@
<string name="settings_comment_bar_thickness">Debelina vrstice za komentarje</string>
<string name="settings_prefer_user_nicknames">Uporabite prikazna imena za uporabnike in skupnosti</string>
<string name="message_video_nsfw">Ta video je bil označen kot NSFW</string>
<string name="settings_title_font_scale">Velikost besedila naslovov</string>
<string name="settings_comment_font_scale">Velikost besedila komentarjev</string>
<string name="settings_ancillary_font_scale">Velikost pomožnih besedil</string>
</resources>

View File

@ -182,7 +182,7 @@
<string name="settings_content_font_larger">ekstra e madhe</string>
<string name="settings_content_font_largest">Dyfish më i madh</string>
<string name="settings_content_font_normal">Normale</string>
<string name="settings_content_font_scale">Madhësia e tekstit të përmbajtjes</string>
<string name="settings_content_font_scale">Madhësia e tekstit të postimeve</string>
<string name="settings_content_font_small">Trupvogël</string>
<string name="settings_content_font_smaller">Shumë e vogël</string>
<string name="settings_content_font_smallest">Dyfish më i vogël</string>
@ -339,4 +339,7 @@
<string name="settings_comment_bar_thickness">Trashësia e shiritit të komenteve</string>
<string name="settings_prefer_user_nicknames">Përdorni emra të shfaqur për përdoruesit dhe komunitetet</string>
<string name="message_video_nsfw">Kjo video u shënua si NSFW</string>
<string name="settings_title_font_scale">Madhësia e tekstit të titujve</string>
<string name="settings_comment_font_scale">Madhësia e tekstit të komenteve</string>
<string name="settings_ancillary_font_scale">Madhësia e teksteve ndihmëse</string>
</resources>

View File

@ -181,7 +181,7 @@
<string name="settings_content_font_larger">suli mute</string>
<string name="settings_content_font_largest">suli mute mute</string>
<string name="settings_content_font_normal">pona</string>
<string name="settings_content_font_scale">suli sitelen</string>
<string name="settings_content_font_scale">suli sitelen lipu</string>
<string name="settings_content_font_small">lili</string>
<string name="settings_content_font_smaller">lili mute</string>
<string name="settings_content_font_smallest">lili mute mute</string>
@ -332,4 +332,7 @@
<string name="settings_comment_bar_thickness">suli pi linja pi toki lili</string>
<string name="settings_prefer_user_nicknames">o lukin e nimi lili tan jan tan kulupu</string>
<string name="message_video_nsfw">sitelen tawa ni li NSFW</string>
<string name="settings_title_font_scale">suli sitelen pi toki suli</string>
<string name="settings_comment_font_scale">suli sitelen pi toki lili</string>
<string name="settings_ancillary_font_scale">suli sitelen pi nimi lili</string>
</resources>

View File

@ -181,7 +181,7 @@
<string name="settings_content_font_larger">Ekstra Büyük</string>
<string name="settings_content_font_largest">Double extra large</string>
<string name="settings_content_font_normal">Normal</string>
<string name="settings_content_font_scale">İçerik Yazı Boyutu</string>
<string name="settings_content_font_scale">Gönderilerin metin boyutu</string>
<string name="settings_content_font_small">Küçük</string>
<string name="settings_content_font_smaller">Ekstra Küçük</string>
<string name="settings_content_font_smallest">Double extra small</string>
@ -336,4 +336,7 @@
<string name="settings_comment_bar_thickness">Yorum çubuğu kalınlığı</string>
<string name="settings_prefer_user_nicknames">Kullanıcılar ve topluluklar için görünen adları kullanın</string>
<string name="message_video_nsfw">Bu video NSFW olarak işaretlendi</string>
<string name="settings_title_font_scale">Başlıkların metin boyutu</string>
<string name="settings_comment_font_scale">Yorumların metin boyutu</string>
<string name="settings_ancillary_font_scale">Yardımcı metinlerin boyutu</string>
</resources>

View File

@ -181,7 +181,7 @@
<string name="settings_content_font_larger">Дуже великий</string>
<string name="settings_content_font_largest">Подвійний екстра-великий</string>
<string name="settings_content_font_normal">Нормальний</string>
<string name="settings_content_font_scale">Розмір тексту контенту</string>
<string name="settings_content_font_scale">Розмір тексту дописів</string>
<string name="settings_content_font_small">Маленький</string>
<string name="settings_content_font_smaller">Дуже малий</string>
<string name="settings_content_font_smallest">Подвійний екстра малий</string>
@ -336,4 +336,7 @@
<string name="settings_comment_bar_thickness">Товщина панелі коментарів</string>
<string name="settings_prefer_user_nicknames">Використовуйте відображувані імена для користувачів і спільнот</string>
<string name="message_video_nsfw">Це відео було позначено як NSFW</string>
<string name="settings_title_font_scale">Розмір тексту заголовків</string>
<string name="settings_comment_font_scale">Розмір тексту коментарів</string>
<string name="settings_ancillary_font_scale">Розмір допоміжних текстів</string>
</resources>

View File

@ -181,7 +181,7 @@
<string name="settings_content_font_larger">Extra large</string>
<string name="settings_content_font_largest">Double extra large</string>
<string name="settings_content_font_normal">Normal</string>
<string name="settings_content_font_scale">Content text size</string>
<string name="settings_content_font_scale">Post text size</string>
<string name="settings_content_font_small">Small</string>
<string name="settings_content_font_smaller">Extra small</string>
<string name="settings_content_font_smallest">Double extra small</string>
@ -331,4 +331,7 @@
<string name="settings_comment_bar_thickness">Comment bar thickness</string>
<string name="settings_prefer_user_nicknames">Use display names for users and communities</string>
<string name="message_video_nsfw">This video was marked as NSFW</string>
<string name="settings_title_font_scale">Title text size</string>
<string name="settings_comment_font_scale">Comment text size</string>
<string name="settings_ancillary_font_scale">Ancillary text size</string>
</resources>

View File

@ -7,6 +7,7 @@ import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.UiBarTheme
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.UiFontFamily
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.UiTheme
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.VoteFormat
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.repository.ContentFontClass
import com.github.diegoberaldin.raccoonforlemmy.core.persistence.data.ActionOnSwipe
import com.github.diegoberaldin.raccoonforlemmy.core.persistence.data.ActionOnSwipeDirection
import com.github.diegoberaldin.raccoonforlemmy.core.persistence.data.ActionOnSwipeTarget
@ -31,7 +32,8 @@ sealed interface NotificationCenterEvent {
data class ChangeInboxType(val unreadOnly: Boolean) : NotificationCenterEvent
data class ChangeTheme(val value: UiTheme?) : NotificationCenterEvent
data class ChangeContentFontSize(val value: Float) : NotificationCenterEvent
data class ChangeContentFontSize(val value: Float, val contentClass: ContentFontClass) :
NotificationCenterEvent
data class ChangeUiFontSize(val value: Float) : NotificationCenterEvent
data class ChangeFontFamily(val value: UiFontFamily) : NotificationCenterEvent
data class ChangeContentFontFamily(val value: UiFontFamily) : NotificationCenterEvent

View File

@ -1,6 +1,7 @@
package com.github.diegoberaldin.raccoonforlemmy.core.persistence.data
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.VoteFormat
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.repository.ContentFontScales
import kotlin.time.Duration
import kotlin.time.Duration.Companion.seconds
@ -9,7 +10,7 @@ data class SettingsModel(
val theme: Int? = null,
val uiFontFamily: Int = 0,
val uiFontScale: Float = 1f,
val contentFontScale: Float = 1f,
val contentFontScale: ContentFontScales = ContentFontScales(),
val contentFontFamily: Int = 0,
val locale: String? = null,
val defaultListingType: Int = 2,

View File

@ -2,6 +2,7 @@ package com.github.diegoberaldin.raccoonforlemmy.core.persistence.repository
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.toLong
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.toVoteFormat
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.repository.ContentFontScales
import com.github.diegoberaldin.raccoonforlemmy.core.persistence.DatabaseProvider
import com.github.diegoberaldin.raccoonforlemmy.core.persistence.GetBy
import com.github.diegoberaldin.raccoonforlemmy.core.persistence.data.ActionOnSwipe
@ -19,7 +20,10 @@ private object KeyStoreKeys {
const val UI_THEME = "uiTheme"
const val UI_FONT_FAMILY = "uiFontFamily"
const val UI_FONT_SCALE = "uiFontSize"
const val CONTENT_FONT_SCALE = "contentFontSize"
const val CONTENT_TITLE_FONT_SCALE = "titleFontSize"
const val CONTENT_BODY_FONT_SCALE = "contentFontSize"
const val CONTENT_COMMENT_FONT_SCALE = "commentFontSize"
const val CONTENT_ANCILLARY_FONT_SCALE = "ancillaryFontSize"
const val LOCALE = "locale"
const val DEFAULT_LISTING_TYPE = "defaultListingType"
const val DEFAULT_POST_SORT_TYPE = "defaultPostSortType"
@ -69,7 +73,10 @@ internal class DefaultSettingsRepository(
theme = settings.theme?.toLong(),
uiFontScale = settings.uiFontScale.toDouble(),
uiFontFamily = settings.uiFontFamily.toLong(),
contentFontScale = settings.contentFontScale.toDouble(),
titleFontScale = settings.contentFontScale.title.toDouble(),
contentFontScale = settings.contentFontScale.body.toDouble(),
commentFontScale = settings.contentFontScale.comment.toDouble(),
ancillaryFontScale = settings.contentFontScale.ancillary.toDouble(),
locale = settings.locale,
defaultListingType = settings.defaultListingType.toLong(),
defaultPostSortType = settings.defaultPostSortType.toLong(),
@ -126,13 +133,19 @@ internal class DefaultSettingsRepository(
withContext(Dispatchers.IO) {
if (accountId == null) {
// anonymous user, reading from keystore
val contentFontScale = ContentFontScales(
title = keyStore[KeyStoreKeys.CONTENT_TITLE_FONT_SCALE, 1f],
body = keyStore[KeyStoreKeys.CONTENT_BODY_FONT_SCALE, 1f],
comment = keyStore[KeyStoreKeys.CONTENT_COMMENT_FONT_SCALE, 1f],
ancillary = keyStore[KeyStoreKeys.CONTENT_ANCILLARY_FONT_SCALE, 1f],
)
SettingsModel(
theme = if (keyStore.containsKey(KeyStoreKeys.UI_THEME)) {
keyStore[KeyStoreKeys.UI_THEME, 0]
} else null,
uiFontScale = keyStore[KeyStoreKeys.UI_FONT_SCALE, 1f],
uiFontFamily = keyStore[KeyStoreKeys.UI_FONT_FAMILY, 0],
contentFontScale = keyStore[KeyStoreKeys.CONTENT_FONT_SCALE, 1f],
contentFontScale = contentFontScale,
locale = keyStore[KeyStoreKeys.LOCALE, ""].takeIf { it.isNotEmpty() },
defaultListingType = keyStore[KeyStoreKeys.DEFAULT_LISTING_TYPE, 2],
defaultPostSortType = keyStore[KeyStoreKeys.DEFAULT_POST_SORT_TYPE, 1],
@ -186,7 +199,19 @@ internal class DefaultSettingsRepository(
}
keyStore.save(KeyStoreKeys.UI_FONT_SCALE, settings.uiFontScale)
keyStore.save(KeyStoreKeys.UI_FONT_FAMILY, settings.uiFontFamily)
keyStore.save(KeyStoreKeys.CONTENT_FONT_SCALE, settings.contentFontScale)
keyStore.save(
KeyStoreKeys.CONTENT_TITLE_FONT_SCALE,
settings.contentFontScale.title
)
keyStore.save(KeyStoreKeys.CONTENT_BODY_FONT_SCALE, settings.contentFontScale.body)
keyStore.save(
KeyStoreKeys.CONTENT_COMMENT_FONT_SCALE,
settings.contentFontScale.comment
)
keyStore.save(
KeyStoreKeys.CONTENT_ANCILLARY_FONT_SCALE,
settings.contentFontScale.ancillary
)
if (!settings.locale.isNullOrEmpty()) {
keyStore.save(KeyStoreKeys.LOCALE, settings.locale)
} else {
@ -260,7 +285,10 @@ internal class DefaultSettingsRepository(
theme = settings.theme?.toLong(),
uiFontScale = settings.uiFontScale.toDouble(),
uiFontFamily = settings.uiFontFamily.toLong(),
contentFontScale = settings.contentFontScale.toDouble(),
titleFontScale = settings.contentFontScale.title.toDouble(),
contentFontScale = settings.contentFontScale.body.toDouble(),
commentFontScale = settings.contentFontScale.comment.toDouble(),
ancillaryFontScale = settings.contentFontScale.ancillary.toDouble(),
locale = settings.locale,
defaultListingType = settings.defaultListingType.toLong(),
defaultPostSortType = settings.defaultPostSortType.toLong(),
@ -324,7 +352,12 @@ private fun GetBy.toModel() = SettingsModel(
theme = theme?.toInt(),
uiFontScale = uiFontScale.toFloat(),
uiFontFamily = uiFontFamily.toInt(),
contentFontScale = contentFontScale.toFloat(),
contentFontScale = ContentFontScales(
title = titleFontScale.toFloat(),
body = contentFontScale.toFloat(),
comment = commentFontScale.toFloat(),
ancillary = ancillaryFontScale.toFloat(),
),
locale = locale,
defaultListingType = defaultListingType.toInt(),
defaultPostSortType = defaultPostSortType.toInt(),

View File

@ -3,7 +3,10 @@ CREATE TABLE SettingsEntity (
theme INTEGER DEFAULT NULL,
uiFontScale REAL NOT NULL DEFAULT 1,
uiFontFamily INTEGER NOT NULL DEFAULT 0,
titleFontScale REAL NOT NULL DEFAULT 1,
contentFontScale REAL NOT NULL DEFAULT 1,
commentFontScale REAL NOT NULL DEFAULT 1,
ancillaryFontScale REAL NOT NULL DEFAULT 1,
locale TEXT DEFAULT NULL,
defaultListingType INTEGER NOT NULL DEFAULT 0,
defaultPostSortType INTEGER NOT NULL DEFAULT 0,
@ -56,7 +59,10 @@ INSERT OR IGNORE INTO SettingsEntity (
theme,
uiFontScale,
uiFontFamily,
titleFontScale,
contentFontScale,
commentFontScale,
ancillaryFontScale,
locale,
defaultListingType,
defaultPostSortType,
@ -147,6 +153,9 @@ INSERT OR IGNORE INTO SettingsEntity (
?,
?,
?,
?,
?,
?,
?
);
@ -155,7 +164,10 @@ UPDATE SettingsEntity
SET theme = ?,
uiFontScale = ?,
uiFontFamily = ?,
titleFontScale = ?,
contentFontScale = ?,
commentFontScale = ?,
ancillaryFontScale = ?,
locale = ?,
defaultListingType = ?,
defaultPostSortType = ?,
@ -206,7 +218,10 @@ SELECT
theme,
uiFontScale,
uiFontFamily,
titleFontScale,
contentFontScale,
commentFontScale,
ancillaryFontScale,
locale,
defaultListingType,
defaultPostSortType,

View File

@ -0,0 +1,8 @@
ALTER TABLE SettingsEntity
ADD COLUMN titleFontScale REAL NOT NULL DEFAULT 1;
ALTER TABLE SettingsEntity
ADD COLUMN commentFontScale REAL NOT NULL DEFAULT 1;
ALTER TABLE SettingsEntity
ADD COLUMN ancillaryFontScale REAL NOT NULL DEFAULT 1;

View File

@ -3,9 +3,9 @@ package com.github.diegoberaldin.raccoonforlemmy.feature.settings.colors
import androidx.compose.ui.graphics.Color
import cafe.adriel.voyager.core.model.ScreenModel
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.CommentBarTheme
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.FontScale
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.UiFontFamily
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.UiTheme
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.repository.ContentFontScales
import com.github.diegoberaldin.raccoonforlemmy.core.architecture.MviModel
interface SettingsColorAndFontMviModel :
@ -28,9 +28,9 @@ interface SettingsColorAndFontMviModel :
val saveColor: Color? = null,
val commentBarTheme: CommentBarTheme = CommentBarTheme.Blue,
val commentBarThickness: Int = 1,
val uiFontScale: FontScale = FontScale.Normal,
val uiFontScale: Float = 1f,
val uiFontFamily: UiFontFamily = UiFontFamily.Poppins,
val contentFontScale: FontScale = FontScale.Normal,
val contentFontScale: ContentFontScales = ContentFontScales(),
val contentFontFamily: UiFontFamily = UiFontFamily.Poppins,
)

View File

@ -34,9 +34,11 @@ import cafe.adriel.voyager.koin.getScreenModel
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.FontScale
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.UiTheme
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.scaleFactor
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.toFontScale
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.toReadableName
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.di.getColorSchemeProvider
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.di.getThemeRepository
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.repository.ContentFontClass
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.Spacing
import com.github.diegoberaldin.raccoonforlemmy.core.architecture.bindToLifecycle
import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.SettingsRow
@ -245,7 +247,7 @@ class SettingsColorAndFontScreen : Screen {
// font scale
SettingsRow(
title = LocalXmlStrings.current.settingsUiFontScale,
value = uiState.uiFontScale.toReadableName(),
value = uiState.uiFontScale.toFontScale().toReadableName(),
onTap = rememberCallback {
val sheet = FontScaleBottomSheet(
values = listOf(
@ -253,16 +255,41 @@ class SettingsColorAndFontScreen : Screen {
FontScale.Normal,
FontScale.Small,
).map { it.scaleFactor },
content = false,
)
navigationCoordinator.showBottomSheet(sheet)
},
)
SettingsRow(
title = LocalXmlStrings.current.settingsContentFontScale,
value = uiState.contentFontScale.toReadableName(),
title = LocalXmlStrings.current.settingsTitleFontScale,
value = uiState.contentFontScale.title.toFontScale().toReadableName(),
onTap = rememberCallback {
val sheet = FontScaleBottomSheet(content = true)
val sheet = FontScaleBottomSheet(contentClass = ContentFontClass.Title)
navigationCoordinator.showBottomSheet(sheet)
},
)
SettingsRow(
title = LocalXmlStrings.current.settingsContentFontScale,
value = uiState.contentFontScale.body.toFontScale().toReadableName(),
onTap = rememberCallback {
val sheet = FontScaleBottomSheet(contentClass = ContentFontClass.Body)
navigationCoordinator.showBottomSheet(sheet)
},
)
SettingsRow(
title = LocalXmlStrings.current.settingsCommentFontScale,
value = uiState.contentFontScale.comment.toFontScale().toReadableName(),
onTap = rememberCallback {
val sheet =
FontScaleBottomSheet(contentClass = ContentFontClass.Comment)
navigationCoordinator.showBottomSheet(sheet)
},
)
SettingsRow(
title = LocalXmlStrings.current.settingsAncillaryFontScale,
value = uiState.contentFontScale.ancillary.toFontScale().toReadableName(),
onTap = rememberCallback {
val sheet =
FontScaleBottomSheet(contentClass = ContentFontClass.AncillaryText)
navigationCoordinator.showBottomSheet(sheet)
},
)

View File

@ -4,8 +4,8 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.toArgb
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.CommentBarTheme
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.UiFontFamily
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.toFontScale
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.toInt
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.repository.ContentFontClass
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.repository.ThemeRepository
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.ColorSchemeProvider
import com.github.diegoberaldin.raccoonforlemmy.core.architecture.DefaultMviModel
@ -43,13 +43,13 @@ class SettingsColorAndFontViewModel(
updateState { it.copy(uiFontFamily = value) }
}.launchIn(this)
themeRepository.contentFontScale.onEach { value ->
updateState { it.copy(contentFontScale = value.toFontScale()) }
updateState { it.copy(contentFontScale = value) }
}.launchIn(this)
themeRepository.contentFontFamily.onEach { value ->
updateState { it.copy(contentFontFamily = value) }
}.launchIn(this)
themeRepository.uiFontScale.onEach { value ->
updateState { it.copy(uiFontScale = value.toFontScale()) }
updateState { it.copy(uiFontScale = value) }
}.launchIn(this)
themeRepository.dynamicColors.onEach { value ->
updateState { it.copy(dynamicColors = value) }
@ -86,7 +86,7 @@ class SettingsColorAndFontViewModel(
}.launchIn(this)
notificationCenter.subscribe(NotificationCenterEvent.ChangeContentFontSize::class)
.onEach { evt ->
changeContentFontScale(evt.value)
changeContentFontScale(evt.value, evt.contentClass)
}.launchIn(this)
notificationCenter.subscribe(NotificationCenterEvent.ChangeContentFontFamily::class)
.onEach { evt ->
@ -152,11 +152,18 @@ class SettingsColorAndFontViewModel(
}
}
private fun changeContentFontScale(value: Float) {
themeRepository.changeContentFontScale(value)
private fun changeContentFontScale(value: Float, contentClass: ContentFontClass) {
val contentFontScale = themeRepository.contentFontScale.value.let {
when (contentClass) {
ContentFontClass.Title -> it.copy(title = value)
ContentFontClass.Body -> it.copy(body = value)
ContentFontClass.Comment -> it.copy(comment = value)
ContentFontClass.AncillaryText -> it.copy(ancillary = value)
}
}
scope?.launch(Dispatchers.IO) {
val settings = settingsRepository.currentSettings.value.copy(
contentFontScale = value
contentFontScale = contentFontScale
)
saveSettings(settings)
}

View File

@ -74,9 +74,7 @@ fun App(onLoadingFinished: () -> Unit = {}) {
UiTheme.Light
}.toInt()
val locale by derivedStateOf { settings.locale }
val currentTheme by themeRepository.uiTheme.collectAsState()
val useDynamicColors by themeRepository.dynamicColors.collectAsState()
val fontScale by themeRepository.contentFontScale.collectAsState()
val uiFontScale by themeRepository.uiFontScale.collectAsState()
val navigationCoordinator = remember { getNavigationCoordinator() }
val drawerState = rememberDrawerState(initialValue = DrawerValue.Closed)
@ -227,8 +225,6 @@ fun App(onLoadingFinished: () -> Unit = {}) {
else -> UiBarTheme.Solid
}
AppTheme(
theme = currentTheme,
contentFontScale = fontScale,
useDynamicColors = useDynamicColors,
barTheme = barTheme,
) {

View File

@ -9,6 +9,7 @@ import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.repository.ContentFontClass
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.Spacing
import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.CustomizedContent
import com.github.diegoberaldin.raccoonforlemmy.core.commonui.lemmyui.PostCardBody
@ -43,7 +44,7 @@ internal fun AccountSettingsFormattedInfo(
style = MaterialTheme.typography.labelMedium,
color = ancillaryColor,
)
CustomizedContent {
CustomizedContent(ContentFontClass.Body) {
PostCardBody(
text = value,
onClick = rememberCallback {

View File

@ -10,6 +10,7 @@ import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.TextStyle
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.repository.ContentFontClass
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.Spacing
import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.CustomizedContent
import com.github.diegoberaldin.raccoonforlemmy.core.utils.compose.onClick
@ -45,7 +46,7 @@ internal fun AccountSettingsTextualInfo(
style = MaterialTheme.typography.labelMedium,
color = ancillaryColor,
)
CustomizedContent {
CustomizedContent(ContentFontClass.Body) {
Text(
text = value,
style = valueStyle,

View File

@ -30,6 +30,7 @@ import androidx.compose.ui.layout.onGloballyPositioned
import androidx.compose.ui.layout.positionInParent
import androidx.compose.ui.unit.DpOffset
import androidx.compose.ui.unit.dp
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.repository.ContentFontClass
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.CornerSize
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.IconSize
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.Spacing
@ -114,7 +115,7 @@ internal fun MessageCard(
)
).fillMaxWidth().padding(Spacing.s)
) {
CustomizedContent {
CustomizedContent(ContentFontClass.Body) {
Column {
PostCardBody(
text = content,

View File

@ -18,6 +18,7 @@ import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.FontScale
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.scaleFactor
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.toFontScale
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.toReadableName
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.repository.ContentFontClass
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.Spacing
import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.BottomSheetHandle
import com.github.diegoberaldin.raccoonforlemmy.core.l10n.LocalXmlStrings
@ -40,7 +41,7 @@ private val defaultChoices: List<Float> = listOf(
class FontScaleBottomSheet(
private val values: List<Float> = defaultChoices,
private val content: Boolean,
private val contentClass: ContentFontClass? = null,
) : Screen {
@Composable
@ -61,13 +62,20 @@ class FontScaleBottomSheet(
horizontalAlignment = Alignment.CenterHorizontally
) {
BottomSheetHandle()
val title = when (contentClass) {
ContentFontClass.Title -> LocalXmlStrings.current.settingsTitleFontScale
ContentFontClass.Body -> LocalXmlStrings.current.settingsContentFontScale
ContentFontClass.Comment -> LocalXmlStrings.current.settingsCommentFontScale
ContentFontClass.AncillaryText -> LocalXmlStrings.current.settingsAncillaryFontScale
else -> LocalXmlStrings.current.settingsUiFontScale
}
Text(
modifier = Modifier.padding(
start = Spacing.s,
top = Spacing.s,
end = Spacing.s,
),
text = LocalXmlStrings.current.settingsContentFontScale,
text = title,
style = MaterialTheme.typography.titleLarge,
color = MaterialTheme.colorScheme.onBackground,
)
@ -87,8 +95,11 @@ class FontScaleBottomSheet(
.onClick(
onClick = rememberCallback {
notificationCenter.send(
if (content) {
NotificationCenterEvent.ChangeContentFontSize(value)
if (contentClass != null) {
NotificationCenterEvent.ChangeContentFontSize(
value = value,
contentClass = contentClass
)
} else {
NotificationCenterEvent.ChangeUiFontSize(value)
}

View File

@ -30,6 +30,7 @@ import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import cafe.adriel.voyager.core.screen.Screen
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.repository.ContentFontClass
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.Spacing
import com.github.diegoberaldin.raccoonforlemmy.core.architecture.bindToLifecycle
import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.BottomSheetHandle
@ -203,7 +204,7 @@ class CommunityInfoScreen(
}
}
item {
CustomizedContent {
CustomizedContent(ContentFontClass.Body) {
PostCardBody(
modifier = Modifier.fillMaxWidth().padding(top = Spacing.m),
text = uiState.community.description,

View File

@ -36,6 +36,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.ColorFilter
import androidx.compose.ui.input.nestedscroll.nestedScroll
import cafe.adriel.voyager.core.screen.Screen
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.repository.ContentFontClass
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.Spacing
import com.github.diegoberaldin.raccoonforlemmy.core.architecture.bindToLifecycle
import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.CustomizedContent
@ -174,7 +175,7 @@ class InstanceInfoScreen(
verticalArrangement = Arrangement.spacedBy(Spacing.xs),
) {
item {
CustomizedContent {
CustomizedContent(ContentFontClass.Title) {
Column(
modifier = Modifier.padding(horizontal = Spacing.s),
verticalArrangement = Arrangement.spacedBy(Spacing.s),

View File

@ -22,6 +22,7 @@ import androidx.compose.ui.layout.onGloballyPositioned
import androidx.compose.ui.layout.positionInParent
import androidx.compose.ui.unit.DpOffset
import androidx.compose.ui.unit.dp
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.repository.ContentFontClass
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.IconSize
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.Spacing
import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.CustomDropDown
@ -61,13 +62,11 @@ fun InstanceItem(
title = name,
)
CustomizedContent {
Text(
text = name,
style = MaterialTheme.typography.bodySmall,
color = fullColor,
)
}
Text(
text = name,
style = MaterialTheme.typography.bodySmall,
color = fullColor,
)
if (options.isNotEmpty()) {
Box {

View File

@ -29,6 +29,7 @@ import androidx.compose.ui.layout.onGloballyPositioned
import androidx.compose.ui.layout.positionInParent
import androidx.compose.ui.unit.DpOffset
import androidx.compose.ui.unit.dp
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.repository.ContentFontClass
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.IconSize
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.Spacing
import com.github.diegoberaldin.raccoonforlemmy.core.commonui.components.CustomDropDown
@ -124,7 +125,7 @@ internal fun ChatCard(
color = ancillaryColor,
)
}
CustomizedContent {
CustomizedContent(ContentFontClass.Body) {
// last message text
PostCardBody(
maxLines = 2,

View File

@ -39,6 +39,7 @@ import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.DpOffset
import androidx.compose.ui.unit.dp
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.PostLayout
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.repository.ContentFontClass
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.CornerSize
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.IconSize
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.Spacing
@ -95,7 +96,7 @@ internal fun InnerModlogItem(
preferNicknames = preferNicknames,
onOpenCreator = onOpenUser,
)
CustomizedContent {
CustomizedContent(ContentFontClass.Body) {
if (reason != null) {
PostCardBody(
modifier = Modifier.padding(

View File

@ -40,6 +40,7 @@ import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.DpOffset
import androidx.compose.ui.unit.dp
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.data.PostLayout
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.repository.ContentFontClass
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.CornerSize
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.IconSize
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.Spacing
@ -97,7 +98,7 @@ internal fun InnerReportCard(
onOpenCreator = onOpenCreator,
preferNicknames = preferNicknames,
)
CustomizedContent {
CustomizedContent(ContentFontClass.Body) {
PostCardBody(
modifier = Modifier.padding(
horizontal = Spacing.xs,

View File

@ -32,6 +32,7 @@ import androidx.compose.ui.text.style.TextAlign
import cafe.adriel.voyager.core.screen.Screen
import cafe.adriel.voyager.koin.getScreenModel
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.di.getThemeRepository
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.repository.ContentFontClass
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.Spacing
import com.github.diegoberaldin.raccoonforlemmy.core.appearance.theme.toTypography
import com.github.diegoberaldin.raccoonforlemmy.core.architecture.bindToLifecycle
@ -162,7 +163,7 @@ class UserInfoScreen(
style = MaterialTheme.typography.labelMedium,
color = MaterialTheme.colorScheme.onBackground.copy(alpha = 0.75f),
)
CustomizedContent {
CustomizedContent(ContentFontClass.Body) {
PostCardBody(
modifier = Modifier.fillMaxWidth(),
text = biography,
@ -226,7 +227,7 @@ class UserInfoScreen(
style = MaterialTheme.typography.labelMedium,
color = MaterialTheme.colorScheme.onBackground.copy(alpha = 0.75f),
)
CustomizedContent {
CustomizedContent(ContentFontClass.AncillaryText) {
SelectionContainer {
Text(
text = matrixUserId,