🚀 Variable fonts
* Replaced all fonts with variable versions * Allows more weight/italic options (and more) * Increased overall app size on release build by ~8mb (sadly, not much I can do here..)
This commit is contained in:
parent
d9f8448de8
commit
5cf333d3d2
107 changed files with 117 additions and 118 deletions
|
|
@ -34,7 +34,6 @@ import androidx.compose.ui.Modifier
|
|||
import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.Dp
|
||||
import androidx.compose.ui.unit.dp
|
||||
import ua.acclorite.book_story.R
|
||||
|
|
@ -177,7 +176,6 @@ private fun SegmentedButton(
|
|||
Text(
|
||||
text = button.title,
|
||||
style = button.textStyle,
|
||||
fontWeight = FontWeight.Medium,
|
||||
color = if (button.selected) colors.activeContentColor
|
||||
else colors.inactiveContentColor
|
||||
)
|
||||
|
|
|
|||
|
|
@ -1,14 +1,18 @@
|
|||
package ua.acclorite.book_story.presentation.core.constants
|
||||
|
||||
import androidx.annotation.FontRes
|
||||
import androidx.compose.ui.text.ExperimentalTextApi
|
||||
import androidx.compose.ui.text.font.Font
|
||||
import androidx.compose.ui.text.font.FontFamily
|
||||
import androidx.compose.ui.text.font.FontStyle
|
||||
import androidx.compose.ui.text.font.FontVariation
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import ua.acclorite.book_story.R
|
||||
import ua.acclorite.book_story.domain.reader.FontWithName
|
||||
import ua.acclorite.book_story.domain.ui.UIText
|
||||
|
||||
fun Constants.provideFonts(withRandom: Boolean): List<FontWithName> {
|
||||
@OptIn(ExperimentalTextApi::class)
|
||||
fun Constants.provideFonts(): List<FontWithName> {
|
||||
return mutableListOf(
|
||||
FontWithName(
|
||||
"default",
|
||||
|
|
@ -18,175 +22,163 @@ fun Constants.provideFonts(withRandom: Boolean): List<FontWithName> {
|
|||
FontWithName(
|
||||
"raleway",
|
||||
UIText.StringValue("Raleway"),
|
||||
FontFamily(
|
||||
Font(R.font.raleway_regular),
|
||||
Font(R.font.raleway_regular_italic, style = FontStyle.Italic),
|
||||
Font(R.font.raleway_medium, weight = FontWeight.Medium),
|
||||
Font(R.font.raleway_semibold, weight = FontWeight.SemiBold),
|
||||
Font(R.font.raleway_bold, weight = FontWeight.Bold),
|
||||
provideVariableFontFamily(
|
||||
normalResId = R.font.raleway_variable,
|
||||
italicResId = R.font.raleway_variable_italic
|
||||
)
|
||||
),
|
||||
FontWithName(
|
||||
"open_sans",
|
||||
UIText.StringValue("Open Sans"),
|
||||
FontFamily(
|
||||
Font(R.font.opensans_regular),
|
||||
Font(R.font.opensans_regular_italic, style = FontStyle.Italic),
|
||||
Font(R.font.opensans_medium, weight = FontWeight.Medium),
|
||||
Font(R.font.opensans_semibold, weight = FontWeight.SemiBold),
|
||||
Font(R.font.opensans_bold, weight = FontWeight.Bold),
|
||||
provideVariableFontFamily(
|
||||
normalResId = R.font.opensans_variable,
|
||||
italicResId = R.font.opensans_variable_italic
|
||||
)
|
||||
),
|
||||
FontWithName(
|
||||
"mulish",
|
||||
UIText.StringValue("Mulish"),
|
||||
FontFamily(
|
||||
Font(R.font.mulish_regular),
|
||||
Font(R.font.mulish_regular_italic, style = FontStyle.Italic),
|
||||
Font(R.font.mulish_medium, weight = FontWeight.Medium),
|
||||
Font(R.font.mulish_semibold, weight = FontWeight.SemiBold),
|
||||
Font(R.font.mulish_bold, weight = FontWeight.Bold),
|
||||
provideVariableFontFamily(
|
||||
normalResId = R.font.mulish_variable,
|
||||
italicResId = R.font.mulish_variable_italic
|
||||
)
|
||||
),
|
||||
FontWithName(
|
||||
"arimo",
|
||||
UIText.StringValue("Arimo"),
|
||||
FontFamily(
|
||||
Font(R.font.arimo_regular),
|
||||
Font(R.font.arimo_regular_italic, style = FontStyle.Italic),
|
||||
Font(R.font.arimo_medium, weight = FontWeight.Medium),
|
||||
Font(R.font.arimo_semibold, weight = FontWeight.SemiBold),
|
||||
Font(R.font.arimo_bold, weight = FontWeight.Bold),
|
||||
provideVariableFontFamily(
|
||||
normalResId = R.font.arimo_variable,
|
||||
italicResId = R.font.arimo_variable_italic
|
||||
)
|
||||
),
|
||||
FontWithName(
|
||||
"garamond",
|
||||
UIText.StringValue("Garamond"),
|
||||
FontFamily(
|
||||
Font(R.font.garamond_regular),
|
||||
Font(R.font.garamond_regular_italic, style = FontStyle.Italic),
|
||||
Font(R.font.garamond_medium, weight = FontWeight.Medium),
|
||||
Font(R.font.garamond_semibold, weight = FontWeight.SemiBold),
|
||||
Font(R.font.garamond_bold, weight = FontWeight.Bold),
|
||||
provideVariableFontFamily(
|
||||
normalResId = R.font.garamond_variable,
|
||||
italicResId = R.font.garamond_variable_italic
|
||||
)
|
||||
),
|
||||
FontWithName(
|
||||
"roboto_serif",
|
||||
UIText.StringValue("Roboto Serif"),
|
||||
FontFamily(
|
||||
Font(R.font.robotoserif_regular),
|
||||
Font(R.font.robotoserif_regular_italic, style = FontStyle.Italic),
|
||||
Font(R.font.robotoserif_medium, weight = FontWeight.Medium),
|
||||
Font(R.font.robotoserif_semibold, weight = FontWeight.SemiBold),
|
||||
Font(R.font.robotoserif_bold, weight = FontWeight.Bold),
|
||||
provideVariableFontFamily(
|
||||
normalResId = R.font.robotoserif_variable,
|
||||
italicResId = R.font.robotoserif_variable_italic
|
||||
)
|
||||
),
|
||||
FontWithName(
|
||||
"noto_serif",
|
||||
UIText.StringValue("Noto Serif"),
|
||||
FontFamily(
|
||||
Font(R.font.notoserif_regular),
|
||||
Font(R.font.notoserif_regular_italic, style = FontStyle.Italic),
|
||||
Font(R.font.notoserif_medium, weight = FontWeight.Medium),
|
||||
Font(R.font.notoserif_semibold, weight = FontWeight.SemiBold),
|
||||
Font(R.font.notoserif_bold, weight = FontWeight.Bold),
|
||||
provideVariableFontFamily(
|
||||
normalResId = R.font.notoserif_variable,
|
||||
italicResId = R.font.notoserif_variable_italic
|
||||
)
|
||||
),
|
||||
FontWithName(
|
||||
"noto_sans",
|
||||
UIText.StringValue("Noto Sans"),
|
||||
FontFamily(
|
||||
Font(R.font.notosans_regular),
|
||||
Font(R.font.notosans_regular_italic, style = FontStyle.Italic),
|
||||
Font(R.font.notosans_medium, weight = FontWeight.Medium),
|
||||
Font(R.font.notosans_semibold, weight = FontWeight.SemiBold),
|
||||
Font(R.font.notosans_bold, weight = FontWeight.Bold),
|
||||
provideVariableFontFamily(
|
||||
normalResId = R.font.notosans_variable,
|
||||
italicResId = R.font.notosans_variable_italic
|
||||
)
|
||||
),
|
||||
FontWithName(
|
||||
"roboto",
|
||||
UIText.StringValue("Roboto"),
|
||||
FontFamily(
|
||||
Font(R.font.roboto_regular),
|
||||
Font(R.font.roboto_regular_italic, style = FontStyle.Italic),
|
||||
Font(R.font.roboto_medium, weight = FontWeight.Medium),
|
||||
Font(R.font.roboto_bold, weight = FontWeight.Bold),
|
||||
provideVariableFontFamily(
|
||||
normalResId = R.font.roboto_variable_with_italic,
|
||||
italicResId = R.font.roboto_variable_with_italic
|
||||
)
|
||||
),
|
||||
FontWithName(
|
||||
"jost",
|
||||
UIText.StringValue("Jost"),
|
||||
FontFamily(
|
||||
Font(R.font.jost_regular),
|
||||
Font(R.font.jost_regular_italic, style = FontStyle.Italic),
|
||||
Font(R.font.jost_medium, weight = FontWeight.Medium),
|
||||
Font(R.font.jost_semibold, weight = FontWeight.SemiBold),
|
||||
Font(R.font.jost_bold, weight = FontWeight.Bold),
|
||||
provideVariableFontFamily(
|
||||
normalResId = R.font.jost_variable,
|
||||
italicResId = R.font.jost_variable_italic
|
||||
)
|
||||
),
|
||||
FontWithName(
|
||||
"merriweather",
|
||||
UIText.StringValue("Merriweather"),
|
||||
FontFamily(
|
||||
Font(R.font.merriweather_regular),
|
||||
Font(R.font.merriweather_regular_italic, style = FontStyle.Italic),
|
||||
Font(R.font.merriweather_medium, weight = FontWeight.Medium),
|
||||
Font(R.font.merriweather_bold, weight = FontWeight.Bold),
|
||||
provideVariableFontFamily(
|
||||
normalResId = R.font.merriweather_variable,
|
||||
italicResId = R.font.merriweather_variable_italic
|
||||
)
|
||||
),
|
||||
FontWithName(
|
||||
"montserrat",
|
||||
UIText.StringValue("Montserrat"),
|
||||
FontFamily(
|
||||
Font(R.font.montserrat_regular),
|
||||
Font(R.font.montserrat_regular_italic, style = FontStyle.Italic),
|
||||
Font(R.font.montserrat_medium, weight = FontWeight.Medium),
|
||||
Font(R.font.montserrat_semibold, weight = FontWeight.SemiBold),
|
||||
Font(R.font.montserrat_bold, weight = FontWeight.Bold),
|
||||
provideVariableFontFamily(
|
||||
normalResId = R.font.montserrat_variable,
|
||||
italicResId = R.font.montserrat_variable_italic
|
||||
)
|
||||
),
|
||||
FontWithName(
|
||||
"nunito",
|
||||
UIText.StringValue("Nunito"),
|
||||
FontFamily(
|
||||
Font(R.font.nunito_regular),
|
||||
Font(R.font.nunito_regular_italic, style = FontStyle.Italic),
|
||||
Font(R.font.nunito_medium, weight = FontWeight.Medium),
|
||||
Font(R.font.nunito_semibold, weight = FontWeight.SemiBold),
|
||||
Font(R.font.nunito_bold, weight = FontWeight.Bold),
|
||||
provideVariableFontFamily(
|
||||
normalResId = R.font.nunito_variable,
|
||||
italicResId = R.font.nunito_variable_italic
|
||||
)
|
||||
),
|
||||
FontWithName(
|
||||
"roboto_slab",
|
||||
UIText.StringValue("Roboto Slab"),
|
||||
FontFamily(
|
||||
Font(R.font.robotoslab_regular),
|
||||
Font(R.font.robotoslab_medium, weight = FontWeight.Medium),
|
||||
Font(R.font.robotoslab_semibold, weight = FontWeight.SemiBold),
|
||||
Font(R.font.robotoslab_bold, weight = FontWeight.Bold),
|
||||
provideVariableFontFamily(
|
||||
normalResId = R.font.robotoslab_variable_with_italic,
|
||||
italicResId = R.font.robotoslab_variable_with_italic
|
||||
)
|
||||
),
|
||||
FontWithName(
|
||||
"lora",
|
||||
UIText.StringValue("Lora"),
|
||||
FontFamily(
|
||||
Font(R.font.lora_regular),
|
||||
Font(R.font.lora_regular_italic, style = FontStyle.Italic),
|
||||
Font(R.font.lora_medium, weight = FontWeight.Medium),
|
||||
Font(R.font.lora_semibold, weight = FontWeight.SemiBold),
|
||||
Font(R.font.lora_bold, weight = FontWeight.Bold),
|
||||
provideVariableFontFamily(
|
||||
normalResId = R.font.lora_variable,
|
||||
italicResId = R.font.lora_variable_italic
|
||||
)
|
||||
)
|
||||
).apply {
|
||||
if (withRandom) {
|
||||
add(
|
||||
1,
|
||||
FontWithName(
|
||||
"random",
|
||||
UIText.StringResource(R.string.random_string),
|
||||
provideFonts(withRandom = false).random().font
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalTextApi::class)
|
||||
private fun provideVariableFontFamily(
|
||||
@FontRes normalResId: Int,
|
||||
@FontRes italicResId: Int
|
||||
): FontFamily {
|
||||
fun provideVariableFont(weight: FontWeight): Array<Font> {
|
||||
return arrayOf(
|
||||
Font(
|
||||
resId = normalResId,
|
||||
weight = weight,
|
||||
style = FontStyle.Normal,
|
||||
variationSettings = FontVariation.Settings(
|
||||
weight = weight,
|
||||
style = FontStyle.Normal
|
||||
)
|
||||
),
|
||||
Font(
|
||||
resId = italicResId,
|
||||
weight = weight,
|
||||
style = FontStyle.Italic,
|
||||
variationSettings = FontVariation.Settings(
|
||||
weight = weight,
|
||||
style = FontStyle.Italic
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
return FontFamily(
|
||||
*provideVariableFont(weight = FontWeight.W100),
|
||||
*provideVariableFont(weight = FontWeight.W200),
|
||||
*provideVariableFont(weight = FontWeight.W300),
|
||||
*provideVariableFont(weight = FontWeight.W400),
|
||||
*provideVariableFont(weight = FontWeight.W500),
|
||||
*provideVariableFont(weight = FontWeight.W600),
|
||||
*provideVariableFont(weight = FontWeight.W700),
|
||||
*provideVariableFont(weight = FontWeight.W800),
|
||||
*provideVariableFont(weight = FontWeight.W900)
|
||||
)
|
||||
}
|
||||
|
|
@ -4,7 +4,6 @@ import androidx.compose.material3.MaterialTheme
|
|||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.text.font.FontFamily
|
||||
import androidx.hilt.navigation.compose.hiltViewModel
|
||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import ua.acclorite.book_story.R
|
||||
|
|
@ -21,29 +20,32 @@ fun FontFamilyOption() {
|
|||
val state = mainModel.state.collectAsStateWithLifecycle()
|
||||
|
||||
val fontFamily = remember(state.value.fontFamily) {
|
||||
Constants.provideFonts(withRandom = true).find {
|
||||
Constants.provideFonts().run {
|
||||
find {
|
||||
it.id == state.value.fontFamily
|
||||
} ?: Constants.provideFonts(withRandom = false)[0]
|
||||
} ?: get(0)
|
||||
}
|
||||
}
|
||||
|
||||
ChipsWithTitle(
|
||||
title = stringResource(id = R.string.font_family_option),
|
||||
chips = Constants.provideFonts(withRandom = true)
|
||||
chips = Constants.provideFonts()
|
||||
.map {
|
||||
ButtonItem(
|
||||
id = it.id,
|
||||
title = it.fontName.asString(),
|
||||
textStyle = MaterialTheme.typography.labelLarge.copy(
|
||||
fontFamily = when (it.id) {
|
||||
"random" -> FontFamily.Default
|
||||
else -> it.font
|
||||
}
|
||||
fontFamily = it.font
|
||||
),
|
||||
selected = it.id == fontFamily.id
|
||||
)
|
||||
},
|
||||
onClick = {
|
||||
mainModel.onEvent(MainEvent.OnChangeFontFamily(it.id))
|
||||
mainModel.onEvent(
|
||||
MainEvent.OnChangeFontFamily(
|
||||
it.id
|
||||
)
|
||||
)
|
||||
}
|
||||
)
|
||||
}
|
||||
|
|
@ -21,9 +21,11 @@ fun FontStyleOption() {
|
|||
val state = mainModel.state.collectAsStateWithLifecycle()
|
||||
|
||||
val fontFamily = remember(state.value.fontFamily) {
|
||||
Constants.provideFonts(withRandom = false).find {
|
||||
Constants.provideFonts().run {
|
||||
find {
|
||||
it.id == state.value.fontFamily
|
||||
} ?: Constants.provideFonts(withRandom = false)[0]
|
||||
} ?: get(0)
|
||||
}
|
||||
}
|
||||
|
||||
SegmentedButtonWithTitle(
|
||||
|
|
|
|||
|
|
@ -101,9 +101,11 @@ class MainModel @Inject constructor(
|
|||
value = event.value,
|
||||
updateState = {
|
||||
it.copy(
|
||||
fontFamily = Constants.provideFonts(withRandom = true)
|
||||
.find { font -> font.id == event.value }?.id
|
||||
?: Constants.provideFonts(withRandom = false)[0].id
|
||||
fontFamily = Constants.provideFonts().run {
|
||||
find { font ->
|
||||
font.id == event.value
|
||||
}?.id ?: get(0).id
|
||||
}
|
||||
)
|
||||
}
|
||||
)
|
||||
|
|
|
|||
|
|
@ -63,6 +63,7 @@ data class MainState(
|
|||
|
||||
// Reader Settings
|
||||
val fontFamily: String = provideDefaultValue { Constants.provideFonts(withRandom = false)[0].id },
|
||||
val fontFamily: String = provideDefaultValue { Constants.provideFonts()[0].id },
|
||||
val isItalic: Boolean = provideDefaultValue { false },
|
||||
val fontSize: Int = provideDefaultValue { 16 },
|
||||
val lineHeight: Int = provideDefaultValue { 4 },
|
||||
|
|
|
|||
|
|
@ -110,9 +110,11 @@ data class ReaderScreen(val bookId: Int) : Screen, Parcelable {
|
|||
}
|
||||
|
||||
val fontFamily = remember(mainState.value.fontFamily) {
|
||||
Constants.provideFonts(withRandom = true).find {
|
||||
Constants.provideFonts().run {
|
||||
find {
|
||||
it.id == mainState.value.fontFamily
|
||||
} ?: Constants.provideFonts(withRandom = false)[0]
|
||||
} ?: get(0)
|
||||
}
|
||||
}
|
||||
val backgroundColor = animateColorAsState(
|
||||
targetValue = settingsState.value.selectedColorPreset.backgroundColor
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
app/src/main/res/font/arimo_variable.ttf
Normal file
BIN
app/src/main/res/font/arimo_variable.ttf
Normal file
Binary file not shown.
BIN
app/src/main/res/font/arimo_variable_italic.ttf
Normal file
BIN
app/src/main/res/font/arimo_variable_italic.ttf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
app/src/main/res/font/garamond_variable.ttf
Normal file
BIN
app/src/main/res/font/garamond_variable.ttf
Normal file
Binary file not shown.
BIN
app/src/main/res/font/garamond_variable_italic.ttf
Normal file
BIN
app/src/main/res/font/garamond_variable_italic.ttf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
app/src/main/res/font/jost_variable.ttf
Normal file
BIN
app/src/main/res/font/jost_variable.ttf
Normal file
Binary file not shown.
BIN
app/src/main/res/font/jost_variable_italic.ttf
Normal file
BIN
app/src/main/res/font/jost_variable_italic.ttf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
app/src/main/res/font/lora_variable.ttf
Normal file
BIN
app/src/main/res/font/lora_variable.ttf
Normal file
Binary file not shown.
BIN
app/src/main/res/font/lora_variable_italic.ttf
Normal file
BIN
app/src/main/res/font/lora_variable_italic.ttf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
app/src/main/res/font/merriweather_variable.ttf
Normal file
BIN
app/src/main/res/font/merriweather_variable.ttf
Normal file
Binary file not shown.
BIN
app/src/main/res/font/merriweather_variable_italic.ttf
Normal file
BIN
app/src/main/res/font/merriweather_variable_italic.ttf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
app/src/main/res/font/montserrat_variable.ttf
Normal file
BIN
app/src/main/res/font/montserrat_variable.ttf
Normal file
Binary file not shown.
BIN
app/src/main/res/font/montserrat_variable_italic.ttf
Normal file
BIN
app/src/main/res/font/montserrat_variable_italic.ttf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
app/src/main/res/font/mulish_variable.ttf
Normal file
BIN
app/src/main/res/font/mulish_variable.ttf
Normal file
Binary file not shown.
BIN
app/src/main/res/font/mulish_variable_italic.ttf
Normal file
BIN
app/src/main/res/font/mulish_variable_italic.ttf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
app/src/main/res/font/notosans_variable.ttf
Normal file
BIN
app/src/main/res/font/notosans_variable.ttf
Normal file
Binary file not shown.
BIN
app/src/main/res/font/notosans_variable_italic.ttf
Normal file
BIN
app/src/main/res/font/notosans_variable_italic.ttf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
app/src/main/res/font/notoserif_variable.ttf
Normal file
BIN
app/src/main/res/font/notoserif_variable.ttf
Normal file
Binary file not shown.
BIN
app/src/main/res/font/notoserif_variable_italic.ttf
Normal file
BIN
app/src/main/res/font/notoserif_variable_italic.ttf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
app/src/main/res/font/nunito_variable.ttf
Normal file
BIN
app/src/main/res/font/nunito_variable.ttf
Normal file
Binary file not shown.
BIN
app/src/main/res/font/nunito_variable_italic.ttf
Normal file
BIN
app/src/main/res/font/nunito_variable_italic.ttf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
app/src/main/res/font/opensans_variable.ttf
Normal file
BIN
app/src/main/res/font/opensans_variable.ttf
Normal file
Binary file not shown.
BIN
app/src/main/res/font/opensans_variable_italic.ttf
Normal file
BIN
app/src/main/res/font/opensans_variable_italic.ttf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
app/src/main/res/font/raleway_variable.ttf
Normal file
BIN
app/src/main/res/font/raleway_variable.ttf
Normal file
Binary file not shown.
BIN
app/src/main/res/font/raleway_variable_italic.ttf
Normal file
BIN
app/src/main/res/font/raleway_variable_italic.ttf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
app/src/main/res/font/roboto_variable_with_italic.ttf
Normal file
BIN
app/src/main/res/font/roboto_variable_with_italic.ttf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue