mirror of
https://github.com/owenlejeune/TVTime.git
synced 2025-11-12 06:42:45 -05:00
include initial support for more languages
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package com.owenlejeune.tvtime.api.tmdb
|
||||
|
||||
import androidx.compose.ui.text.intl.Locale
|
||||
import com.owenlejeune.tvtime.BuildConfig
|
||||
import com.owenlejeune.tvtime.api.Client
|
||||
import com.owenlejeune.tvtime.api.QueryParam
|
||||
@@ -14,6 +15,8 @@ class TmdbClient: KoinComponent {
|
||||
|
||||
companion object {
|
||||
const val BASE_URL = "https://api.themoviedb.org/3/"
|
||||
|
||||
private val SUPPORTED_LANGUAGES = listOf("en", "fr")
|
||||
}
|
||||
|
||||
private val client: Client by inject { parametersOf(BASE_URL) }
|
||||
@@ -34,7 +37,15 @@ class TmdbClient: KoinComponent {
|
||||
override fun intercept(chain: Interceptor.Chain): Response {
|
||||
val apiParam = QueryParam("api_key", BuildConfig.TMDB_ApiKey)
|
||||
|
||||
val request = chain.addQueryParams(apiParam)
|
||||
val locale = Locale.current
|
||||
val languageParam = if (SUPPORTED_LANGUAGES.contains(locale.language)) {
|
||||
val languageCode = "${locale.language}-${locale.region}"
|
||||
QueryParam("language", languageCode)
|
||||
} else {
|
||||
null
|
||||
}
|
||||
|
||||
val request = chain.addQueryParams(apiParam, languageParam)
|
||||
|
||||
return chain.proceed(request)
|
||||
}
|
||||
|
||||
@@ -4,13 +4,15 @@ import com.owenlejeune.tvtime.api.QueryParam
|
||||
import okhttp3.Interceptor
|
||||
import okhttp3.Request
|
||||
|
||||
fun Interceptor.Chain.addQueryParams(vararg queryParams: QueryParam): Request {
|
||||
fun Interceptor.Chain.addQueryParams(vararg queryParams: QueryParam?): Request {
|
||||
val original = request()
|
||||
val originalHttpUrl = original.url()
|
||||
|
||||
val urlBuilder = originalHttpUrl.newBuilder()
|
||||
queryParams.forEach { param ->
|
||||
urlBuilder.addQueryParameter(param.key, param.param)
|
||||
if (param != null) {
|
||||
urlBuilder.addQueryParameter(param.key, param.param)
|
||||
}
|
||||
}
|
||||
val url = urlBuilder.build()
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Brush
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.constraintlayout.compose.ConstraintLayout
|
||||
@@ -318,14 +319,21 @@ private fun CastCard(itemId: Int?, service: DetailService) {
|
||||
backgroundColor = MaterialTheme.colorScheme.primary,
|
||||
elevation = 8.dp
|
||||
) {
|
||||
LazyRow(modifier = Modifier
|
||||
.fillMaxSize()
|
||||
.padding(12.dp)
|
||||
) {
|
||||
items(castAndCrew.value?.cast?.size ?: 0) { i ->
|
||||
val castMember = castAndCrew.value!!.cast[i]
|
||||
Column(modifier = Modifier.fillMaxSize()) {
|
||||
Text(
|
||||
text = stringResource(R.string.cast_label),
|
||||
style = MaterialTheme.typography.titleLarge,
|
||||
modifier = Modifier.padding(start = 12.dp, top = 12.dp)
|
||||
)
|
||||
LazyRow(modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(12.dp)
|
||||
) {
|
||||
items(castAndCrew.value?.cast?.size ?: 0) { i ->
|
||||
val castMember = castAndCrew.value!!.cast[i]
|
||||
|
||||
CastCrewCard(person = castMember)
|
||||
CastCrewCard(person = castMember)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
9
app/src/main/res/values-fr/strings.xml
Normal file
9
app/src/main/res/values-fr/strings.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">TVTime</string>
|
||||
<string name="nav_movies_title">Films</string>
|
||||
<string name="nav_tv_title">Télé</string>
|
||||
<string name="nav_favourites_title">Favoris</string>
|
||||
<string name="nav_settings_title">Réglages</string>
|
||||
<string name="cast_label">Acteurs</string>
|
||||
</resources>
|
||||
@@ -4,4 +4,5 @@
|
||||
<string name="nav_tv_title">TV</string>
|
||||
<string name="nav_favourites_title">Favourites</string>
|
||||
<string name="nav_settings_title">Settings</string>
|
||||
<string name="cast_label">Cast</string>
|
||||
</resources>
|
||||
Reference in New Issue
Block a user