diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 9051ac76b..937e053ae 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -166,6 +166,8 @@ baselineProfile { } dependencies { + implementation(projects.core.i18n) + // https://developer.android.com/jetpack/androidx/releases/activity implementation(libs.androidx.activity.compose) implementation(libs.androidx.appcompat) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/client/EhEngine.kt b/app/src/main/kotlin/com/hippo/ehviewer/client/EhEngine.kt index b300e55fc..5846f4a30 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/client/EhEngine.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/client/EhEngine.kt @@ -21,8 +21,8 @@ import arrow.core.partially2 import arrow.core.right import arrow.fx.coroutines.parMap import arrow.fx.coroutines.parZip +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.EhDB -import com.hippo.ehviewer.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.data.BaseGalleryInfo import com.hippo.ehviewer.client.data.FavListUrlBuilder diff --git a/app/src/main/kotlin/com/hippo/ehviewer/client/exception/CloudflareBypassException.kt b/app/src/main/kotlin/com/hippo/ehviewer/client/exception/CloudflareBypassException.kt index bccdb9595..af80a8a58 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/client/exception/CloudflareBypassException.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/client/exception/CloudflareBypassException.kt @@ -1,5 +1,5 @@ package com.hippo.ehviewer.client.exception -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R class CloudflareBypassException : EhException(R.string.cloudflare_bypass_failed) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/client/exception/InsufficientFundsException.kt b/app/src/main/kotlin/com/hippo/ehviewer/client/exception/InsufficientFundsException.kt index fdc8b1fdb..1cb93389e 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/client/exception/InsufficientFundsException.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/client/exception/InsufficientFundsException.kt @@ -1,5 +1,5 @@ package com.hippo.ehviewer.client.exception -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R class InsufficientFundsException : EhException(R.string.insufficient_funds) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/client/exception/NoHathClientException.kt b/app/src/main/kotlin/com/hippo/ehviewer/client/exception/NoHathClientException.kt index 8611038f1..d703cb05e 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/client/exception/NoHathClientException.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/client/exception/NoHathClientException.kt @@ -15,6 +15,6 @@ */ package com.hippo.ehviewer.client.exception -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R class NoHathClientException() : EhException(R.string.download_archive_failure_no_hath) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/client/exception/NoHitsFoundException.kt b/app/src/main/kotlin/com/hippo/ehviewer/client/exception/NoHitsFoundException.kt index 425190c79..80aa4b6dc 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/client/exception/NoHitsFoundException.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/client/exception/NoHitsFoundException.kt @@ -1,5 +1,5 @@ package com.hippo.ehviewer.client.exception -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R class NoHitsFoundException : EhException(R.string.gallery_list_empty_hit) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/client/exception/NotLoggedInException.kt b/app/src/main/kotlin/com/hippo/ehviewer/client/exception/NotLoggedInException.kt index 36b9237d3..565878e00 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/client/exception/NotLoggedInException.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/client/exception/NotLoggedInException.kt @@ -1,5 +1,5 @@ package com.hippo.ehviewer.client.exception -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R class NotLoggedInException : EhException(R.string.sign_in_first) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/client/exception/QuotaExceededException.kt b/app/src/main/kotlin/com/hippo/ehviewer/client/exception/QuotaExceededException.kt index eecd09bc2..d2b3ecff9 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/client/exception/QuotaExceededException.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/client/exception/QuotaExceededException.kt @@ -1,5 +1,5 @@ package com.hippo.ehviewer.client.exception -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R class QuotaExceededException : EhException(R.string.error_509) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/download/DownloadService.kt b/app/src/main/kotlin/com/hippo/ehviewer/download/DownloadService.kt index 3f4d0939a..bad0e171c 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/download/DownloadService.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/download/DownloadService.kt @@ -31,7 +31,7 @@ import androidx.core.app.NotificationManagerCompat import androidx.core.content.ContextCompat import androidx.savedstate.serialization.decodeFromSavedState import androidx.savedstate.serialization.encodeToSavedState -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.client.EhUtils import com.hippo.ehviewer.client.data.BaseGalleryInfo import com.hippo.ehviewer.dao.DownloadInfo @@ -137,7 +137,7 @@ class DownloadService : .setAutoCancel(false) .setCategory(NotificationCompat.CATEGORY_PROGRESS) .addAction( - R.drawable.v_pause_x24, + com.hippo.ehviewer.R.drawable.v_pause_x24, getString(R.string.stat_download_action_stop_all), piStopAll, ) @@ -174,7 +174,7 @@ class DownloadService : private fun init509Notification(): NotificationHandler { val builder = NotificationCompat.Builder(applicationContext, channelId) - .setSmallIcon(R.drawable.ic_baseline_warning_24) + .setSmallIcon(com.hippo.ehviewer.R.drawable.ic_baseline_warning_24) .setContentTitle(getString(R.string.stat_509_alert_title)) .setContentText(getString(R.string.stat_509_alert_text)) .setStyle( diff --git a/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderQueen.kt b/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderQueen.kt index 8662429bf..fd170f039 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderQueen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderQueen.kt @@ -20,7 +20,7 @@ import androidx.annotation.IntDef import arrow.core.Either import arrow.core.getOrElse import arrow.core.partially1 -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhEngine import com.hippo.ehviewer.client.EhUrl diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/CommonOperations.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/CommonOperations.kt index dd74b8c01..0c4f6d806 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/CommonOperations.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/CommonOperations.kt @@ -35,8 +35,8 @@ import androidx.compose.material3.Text import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.EhDB -import com.hippo.ehviewer.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhEngine import com.hippo.ehviewer.client.EhUtils diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/GalleryInfoBottomSheet.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/GalleryInfoBottomSheet.kt index 606503434..168449b4e 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/GalleryInfoBottomSheet.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/GalleryInfoBottomSheet.kt @@ -24,7 +24,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhUrl import com.hippo.ehviewer.client.EhUtils @@ -76,7 +76,7 @@ fun GalleryInfoBottomSheet(detail: GalleryDetail) { LazyColumn(contentPadding = WindowInsets.systemBars.only(WindowInsetsSides.Bottom).asPaddingValues()) { itemsIndexed(data) { index, (key, content) -> Row( - modifier = Modifier.padding(horizontal = dimensionResource(id = R.dimen.keyline_margin)).clickable { + modifier = Modifier.padding(horizontal = dimensionResource(id = com.hippo.ehviewer.R.dimen.keyline_margin)).clickable { if (index == INDEX_PARENT) { if (content != null) { navWithUrl(content) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/MainActivity.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/MainActivity.kt index 586052257..fcac35fd0 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/MainActivity.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/MainActivity.kt @@ -104,7 +104,7 @@ import androidx.core.net.toUri import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen import androidx.lifecycle.compose.LifecycleResumeEffect import androidx.navigation.compose.rememberNavController -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.data.ListUrlBuilder import com.hippo.ehviewer.client.parser.GalleryDetailUrlParser @@ -394,7 +394,7 @@ class MainActivity : EhActivity() { .windowInsetsPadding(WindowInsets.systemBars.only(WindowInsetsSides.Bottom)), ) { Image( - painter = painterResource(id = R.drawable.sadpanda_low_poly), + painter = painterResource(id = com.hippo.ehviewer.R.drawable.sadpanda_low_poly), contentDescription = null, modifier = Modifier.fillMaxWidth().padding(bottom = 8.dp), contentScale = ContentScale.FillWidth, diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/SecurityActivity.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/SecurityActivity.kt index 37721b1c8..a412e9321 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/SecurityActivity.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/SecurityActivity.kt @@ -29,7 +29,7 @@ import androidx.biometric.BiometricManager.Authenticators.DEVICE_CREDENTIAL import androidx.biometric.registerForAuthenticationResult import androidx.lifecycle.DefaultLifecycleObserver import androidx.lifecycle.LifecycleOwner -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.Settings context(ctx: Context) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/UrlOpener.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/UrlOpener.kt index 91af948a9..19f392cd5 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/UrlOpener.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/UrlOpener.kt @@ -20,7 +20,7 @@ import android.content.Context import android.widget.Toast import androidx.browser.customtabs.CustomTabsIntent import androidx.core.net.toUri -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.client.data.GalleryDetail import com.hippo.ehviewer.client.parser.GalleryPageUrlParser import com.ramcosta.composedestinations.navigation.DestinationsNavigator diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/login/SignInScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/login/SignInScreen.kt index ccf3a9711..ad299ae34 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/login/SignInScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/login/SignInScreen.kt @@ -58,7 +58,7 @@ import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.text.style.TextDecoration import androidx.compose.ui.text.withStyle import androidx.compose.ui.unit.dp -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhEngine import com.hippo.ehviewer.client.EhUrl @@ -142,7 +142,7 @@ fun AnimatedVisibilityScope.SignInScreen(navigator: DestinationsNavigator) = Scr fun UsernameAndPasswordTextField() { OutlinedTextField( state = username, - modifier = Modifier.width(dimensionResource(id = R.dimen.single_max_width)) + modifier = Modifier.width(dimensionResource(id = com.hippo.ehviewer.R.dimen.single_max_width)) .semantics { contentType = ContentType.Username } .thenIf(!showUsernameError) { padding(bottom = 16.dp) }, label = { Text(stringResource(R.string.username)) }, @@ -154,7 +154,7 @@ fun AnimatedVisibilityScope.SignInScreen(navigator: DestinationsNavigator) = Scr ) OutlinedSecureTextField( state = password, - modifier = Modifier.width(dimensionResource(id = R.dimen.single_max_width)) + modifier = Modifier.width(dimensionResource(id = com.hippo.ehviewer.R.dimen.single_max_width)) .semantics { contentType = ContentType.Password } .thenIf(!showPasswordError) { padding(bottom = 16.dp) }, label = { Text(stringResource(R.string.password)) }, @@ -180,27 +180,27 @@ fun AnimatedVisibilityScope.SignInScreen(navigator: DestinationsNavigator) = Scr when { !windowSizeClass.isExpanded -> { Column( - modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState()).systemBarsPadding().padding(dimensionResource(id = R.dimen.keyline_margin)), + modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState()).systemBarsPadding().padding(dimensionResource(id = com.hippo.ehviewer.R.dimen.keyline_margin)), horizontalAlignment = Alignment.CenterHorizontally, ) { Image( - painter = painterResource(id = R.drawable.ic_launcher_foreground), + painter = painterResource(id = com.hippo.ehviewer.R.drawable.ic_launcher_foreground), contentDescription = null, - modifier = Modifier.padding(dimensionResource(id = R.dimen.keyline_margin)), + modifier = Modifier.padding(dimensionResource(id = com.hippo.ehviewer.R.dimen.keyline_margin)), ) UsernameAndPasswordTextField() Text( text = stringResource(id = R.string.app_waring), - modifier = Modifier.widthIn(max = dimensionResource(id = R.dimen.single_max_width)).padding(top = 24.dp), + modifier = Modifier.widthIn(max = dimensionResource(id = com.hippo.ehviewer.R.dimen.single_max_width)).padding(top = 24.dp), style = MaterialTheme.typography.titleMedium, ) Text( text = stringResource(id = R.string.app_waring_2), - modifier = Modifier.widthIn(max = dimensionResource(id = R.dimen.single_max_width)).padding(top = 12.dp), + modifier = Modifier.widthIn(max = dimensionResource(id = com.hippo.ehviewer.R.dimen.single_max_width)).padding(top = 12.dp), style = MaterialTheme.typography.titleLarge, ) - Spacer(modifier = Modifier.height(dimensionResource(id = R.dimen.keyline_margin))) - Row(modifier = Modifier.padding(top = dimensionResource(R.dimen.keyline_margin))) { + Spacer(modifier = Modifier.height(dimensionResource(id = com.hippo.ehviewer.R.dimen.keyline_margin))) + Row(modifier = Modifier.padding(top = dimensionResource(com.hippo.ehviewer.R.dimen.keyline_margin))) { FilledTonalButton( onClick = { openBrowser(EhUrl.URL_REGISTER) }, shapes = ButtonDefaults.shapes(), @@ -255,18 +255,18 @@ fun AnimatedVisibilityScope.SignInScreen(navigator: DestinationsNavigator) = Scr } else -> { Row( - modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState()).systemBarsPadding().padding(dimensionResource(id = R.dimen.keyline_margin)), + modifier = Modifier.fillMaxSize().verticalScroll(rememberScrollState()).systemBarsPadding().padding(dimensionResource(id = com.hippo.ehviewer.R.dimen.keyline_margin)), verticalAlignment = Alignment.CenterVertically, ) { Column( - modifier = Modifier.width(dimensionResource(id = R.dimen.signinscreen_landscape_caption_frame_width)).padding(dimensionResource(id = R.dimen.keyline_margin)), + modifier = Modifier.width(dimensionResource(id = com.hippo.ehviewer.R.dimen.signinscreen_landscape_caption_frame_width)).padding(dimensionResource(id = com.hippo.ehviewer.R.dimen.keyline_margin)), horizontalAlignment = Alignment.CenterHorizontally, ) { Image( - painter = painterResource(id = R.drawable.ic_launcher_foreground), + painter = painterResource(id = com.hippo.ehviewer.R.drawable.ic_launcher_foreground), contentDescription = null, alignment = Alignment.Center, - modifier = Modifier.padding(dimensionResource(id = R.dimen.keyline_margin)), + modifier = Modifier.padding(dimensionResource(id = com.hippo.ehviewer.R.dimen.keyline_margin)), ) Text( text = stringResource(id = R.string.app_waring), diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/ArchiveList.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/ArchiveList.kt index 4493f3637..edd698e1f 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/ArchiveList.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/ArchiveList.kt @@ -22,7 +22,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.client.parser.Archive import com.hippo.ehviewer.client.parser.Funds diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/AvatarIcon.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/AvatarIcon.kt index 17d000af4..caf7b6c3f 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/AvatarIcon.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/AvatarIcon.kt @@ -43,7 +43,7 @@ import arrow.core.none import arrow.core.some import coil3.compose.AsyncImage import coil3.network.HttpException -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhEngine import com.hippo.ehviewer.client.EhUtils @@ -107,7 +107,7 @@ fun AvatarIcon() { horizontalAlignment = Alignment.CenterHorizontally, ) { CircularWavyProgressIndicator() - Spacer(modifier = Modifier.size(dimensionResource(id = R.dimen.keyline_margin))) + Spacer(modifier = Modifier.size(dimensionResource(id = com.hippo.ehviewer.R.dimen.keyline_margin))) Text(text = placeholder) } } diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/DownloadCard.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/DownloadCard.kt index 84362c8fa..88e94c2f2 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/DownloadCard.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/DownloadCard.kt @@ -39,7 +39,7 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhUtils import com.hippo.ehviewer.dao.DownloadInfo diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/GalleryComment.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/GalleryComment.kt index 0ace2af51..fd99cc0ac 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/GalleryComment.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/GalleryComment.kt @@ -23,7 +23,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.compose.ui.viewinterop.AndroidView import androidx.core.text.parseAsHtml -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.client.data.GalleryComment import com.hippo.ehviewer.ui.legacy.CoilImageGetter import com.hippo.ehviewer.ui.legacy.LinkifyTextView @@ -50,7 +50,7 @@ fun GalleryCommentCard( }, modifier = modifier, ) { - val margin = dimensionResource(id = R.dimen.keyline_margin) + val margin = dimensionResource(id = com.hippo.ehviewer.R.dimen.keyline_margin) Row( modifier = Modifier.padding(horizontal = margin, vertical = 8.dp).fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween, diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/GalleryDetail.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/GalleryDetail.kt index 0d38edcf0..20ad2ca75 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/GalleryDetail.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/GalleryDetail.kt @@ -32,7 +32,7 @@ import androidx.compose.ui.res.pluralStringResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.client.EhUtils import com.hippo.ehviewer.client.data.GalleryDetail import com.hippo.ehviewer.client.data.GalleryInfo @@ -91,21 +91,21 @@ fun GalleryDetailHeaderCard( EhThumbCard( key = remember(info.gid) { info }, modifier = Modifier.size( - dimensionResource(id = R.dimen.gallery_detail_thumb_width), - dimensionResource(id = R.dimen.gallery_detail_thumb_height), + dimensionResource(id = com.hippo.ehviewer.R.dimen.gallery_detail_thumb_width), + dimensionResource(id = com.hippo.ehviewer.R.dimen.gallery_detail_thumb_height), ), ) } Spacer(modifier = Modifier.weight(0.5F)) Column( - modifier = Modifier.height(dimensionResource(id = R.dimen.gallery_detail_thumb_height)), + modifier = Modifier.height(dimensionResource(id = com.hippo.ehviewer.R.dimen.gallery_detail_thumb_height)), horizontalAlignment = Alignment.End, ) { (info as? GalleryDetail)?.let { GalleryDetailHeaderInfoCard( detail = it, onClick = onInfoCardClick, - modifier = Modifier.padding(top = 8.dp, end = dimensionResource(id = R.dimen.keyline_margin)), + modifier = Modifier.padding(top = 8.dp, end = dimensionResource(id = com.hippo.ehviewer.R.dimen.keyline_margin)), ) } Spacer(modifier = Modifier.weight(1F)) @@ -113,7 +113,7 @@ fun GalleryDetailHeaderCard( AssistChip( onClick = onCategoryChipClick, label = { Text(text = categoryText, overflow = TextOverflow.Visible, softWrap = false, maxLines = 1) }, - modifier = Modifier.padding(horizontal = dimensionResource(id = R.dimen.keyline_margin)), + modifier = Modifier.padding(horizontal = dimensionResource(id = com.hippo.ehviewer.R.dimen.keyline_margin)), leadingIcon = { Icon( imageVector = Icons.AutoMirrored.Default.Label, @@ -125,7 +125,7 @@ fun GalleryDetailHeaderCard( AssistChip( onClick = onUploaderChipClick, label = { Text(text = uploaderText, overflow = TextOverflow.Visible, softWrap = false, maxLines = 1) }, - modifier = Modifier.padding(horizontal = dimensionResource(id = R.dimen.keyline_margin)), + modifier = Modifier.padding(horizontal = dimensionResource(id = com.hippo.ehviewer.R.dimen.keyline_margin)), leadingIcon = { Icon( imageVector = Icons.Default.NoAccounts, diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/GalleryList.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/GalleryList.kt index ddac830db..5518992a1 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/GalleryList.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/GalleryList.kt @@ -51,7 +51,7 @@ import androidx.paging.LoadState import androidx.paging.compose.LazyPagingItems import androidx.paging.compose.itemContentType import androidx.paging.compose.itemKey -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.data.BaseGalleryInfo import com.hippo.ehviewer.client.exception.NoHitsFoundException @@ -95,8 +95,8 @@ fun GalleryList( onRefresh: () -> Unit, onLoading: () -> Unit, ) { - val marginH = dimensionResource(id = R.dimen.gallery_list_margin_h) - val marginV = dimensionResource(id = R.dimen.gallery_list_margin_v) + val marginH = dimensionResource(id = com.hippo.ehviewer.R.dimen.gallery_list_margin_h) + val marginV = dimensionResource(id = com.hippo.ehviewer.R.dimen.gallery_list_margin_v) var isRefreshing by remember { mutableStateOf(false) } val refreshState = rememberPullToRefreshState() @@ -132,8 +132,8 @@ fun GalleryList( modifier = contentModifier.fillMaxSize(), state = detailListState, contentPadding = contentPadding + PaddingValues(marginH, marginV), - verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.gallery_list_interval)), - horizontalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.gallery_list_interval)), + verticalArrangement = Arrangement.spacedBy(dimensionResource(com.hippo.ehviewer.R.dimen.gallery_list_interval)), + horizontalArrangement = Arrangement.spacedBy(dimensionResource(com.hippo.ehviewer.R.dimen.gallery_list_interval)), ) { items( count = data.itemCount, @@ -155,7 +155,7 @@ fun GalleryList( } } } else { - val gridInterval = dimensionResource(R.dimen.gallery_grid_interval) + val gridInterval = dimensionResource(com.hippo.ehviewer.R.dimen.gallery_grid_interval) val thumbColumns by Settings.thumbColumns.collectAsState() FastScrollLazyVerticalStaggeredGrid( columns = StaggeredGridCells.Fixed(thumbColumns), diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/ImageSearch.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/ImageSearch.kt index d13f30c58..80d8a0f4f 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/ImageSearch.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/ImageSearch.kt @@ -17,7 +17,7 @@ import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import coil3.compose.AsyncImage -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R @Composable fun ImageSearch( @@ -29,7 +29,7 @@ fun ImageSearch( ) { AnimatedVisibility(visible = image != null, modifier = Modifier.align(Alignment.CenterHorizontally)) { Card { - val maxSize = dimensionResource(id = R.dimen.image_search_max_size) + val maxSize = dimensionResource(id = com.hippo.ehviewer.R.dimen.image_search_max_size) AsyncImage( model = image, contentDescription = null, diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/LoadStateIndicator.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/LoadStateIndicator.kt index 1c4f7a270..e43757dca 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/LoadStateIndicator.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/LoadStateIndicator.kt @@ -10,7 +10,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.paging.LoadState -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.util.displayString @Composable diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/SearchFilter.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/SearchFilter.kt index 127ffa7c2..35cdc0cf3 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/SearchFilter.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/SearchFilter.kt @@ -33,7 +33,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.unit.dp import arrow.core.raise.ensure -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhTagDatabase import com.hippo.ehviewer.client.EhUtils @@ -117,7 +117,7 @@ fun SearchFilter( selectedItemIndex = language + 1, onSelectedItemIndexChange = { onLanguageChange(it - 1) }, ) - val minRatingItems = stringArrayResource(id = R.array.search_min_rating) + val minRatingItems = stringArrayResource(id = com.hippo.ehviewer.R.array.search_min_rating) val minRatingStr = stringResource(id = R.string.search_sr) DropdownFilterChip( label = minRatingStr, diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/TorrentList.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/TorrentList.kt index 0d9a2b489..47402e1d7 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/TorrentList.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/TorrentList.kt @@ -22,7 +22,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.client.parser.Torrent import com.hippo.ehviewer.client.parser.format diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/ColorFilterSetting.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/ColorFilterSetting.kt index b80fe8333..7e5f02cde 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/ColorFilterSetting.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/ColorFilterSetting.kt @@ -21,7 +21,7 @@ import androidx.core.graphics.alpha import androidx.core.graphics.blue import androidx.core.graphics.green import androidx.core.graphics.red -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.asMutableState import com.hippo.ehviewer.ui.main.RollingNumber @@ -87,7 +87,7 @@ fun ColorFilterSetting() = Column(modifier = Modifier.verticalScroll(rememberScr } SpinnerChoice( title = stringResource(id = R.string.pref_color_filter_mode), - entries = stringArrayResource(id = R.array.color_filter_modes), + entries = stringArrayResource(id = com.hippo.ehviewer.R.array.color_filter_modes), values = arrayOf("0", "1", "2", "3", "4", "5"), field = Settings.colorFilterMode.asMutableState(), ) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/PageActions.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/PageActions.kt index 976141462..83b371e57 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/PageActions.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/PageActions.kt @@ -13,8 +13,8 @@ import android.webkit.MimeTypeMap import androidx.activity.result.contract.ActivityResultContracts import androidx.compose.material3.SnackbarHostState import androidx.core.content.FileProvider +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.BuildConfig.APPLICATION_ID -import com.hippo.ehviewer.R import com.hippo.ehviewer.client.EhUrl import com.hippo.ehviewer.client.data.GalleryInfo import com.hippo.ehviewer.gallery.Page diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/PagerItem.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/PagerItem.kt index 1809f5fe4..51ef02974 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/PagerItem.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/PagerItem.kt @@ -37,8 +37,8 @@ import coil3.DrawableImage import coil3.compose.AsyncImagePainter import coil3.compose.SubcomposeAsyncImage import coil3.compose.SubcomposeAsyncImageContent +import com.ehviewer.core.i18n.R import com.google.accompanist.drawablepainter.DrawablePainter -import com.hippo.ehviewer.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.collectAsState import com.hippo.ehviewer.gallery.Page diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/ReaderGeneralSetting.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/ReaderGeneralSetting.kt index 29204ac14..270736193 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/ReaderGeneralSetting.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/ReaderGeneralSetting.kt @@ -11,7 +11,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalView import androidx.compose.ui.res.stringArrayResource import androidx.compose.ui.res.stringResource -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.asMutableState import com.hippo.ehviewer.util.isAtLeastP @@ -20,8 +20,8 @@ import com.hippo.ehviewer.util.isAtLeastP fun ReaderGeneralSetting() = Column(modifier = Modifier.verticalScroll(rememberScrollState()).navigationBarsPadding()) { SpinnerChoice( title = stringResource(id = R.string.pref_reader_theme), - entries = stringArrayResource(id = R.array.reader_themes), - values = stringArrayResource(id = R.array.reader_themes_values), + entries = stringArrayResource(id = com.hippo.ehviewer.R.array.reader_themes), + values = stringArrayResource(id = com.hippo.ehviewer.R.array.reader_themes_values), field = Settings.readerTheme.asMutableState(), ) SwitchChoice( diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/ReaderModeSetting.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/ReaderModeSetting.kt index 719464ffa..ee34dd9d6 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/ReaderModeSetting.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/ReaderModeSetting.kt @@ -17,7 +17,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringArrayResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.asMutableState import com.hippo.ehviewer.collectAsState @@ -27,13 +27,13 @@ import eu.kanade.tachiyomi.ui.reader.setting.ReadingModeType fun ReaderModeSetting() = Column(modifier = Modifier.verticalScroll(rememberScrollState()).navigationBarsPadding()) { SpinnerChoice( title = stringResource(id = R.string.pref_category_reading_mode), - entries = stringArrayResource(id = R.array.viewers_selector), + entries = stringArrayResource(id = com.hippo.ehviewer.R.array.viewers_selector), values = arrayOf("0", "1", "2", "3", "4", "5"), field = Settings.readingMode.asMutableState(), ) SpinnerChoice( title = stringResource(id = R.string.rotation_type), - entries = stringArrayResource(id = R.array.rotation_type), + entries = stringArrayResource(id = com.hippo.ehviewer.R.array.rotation_type), values = arrayOf("0", "8", "16", "24", "32", "40", "48"), field = Settings.orientationMode.asMutableState(), ) @@ -60,7 +60,7 @@ private fun PagerSetting() = Column { val pagerNav = Settings.readerPagerNav.asMutableState() SpinnerChoice( title = stringResource(id = R.string.pref_viewer_nav), - entries = stringArrayResource(id = R.array.pager_nav), + entries = stringArrayResource(id = com.hippo.ehviewer.R.array.pager_nav), values = arrayOf("0", "1", "2", "3", "4", "5"), field = pagerNav, ) @@ -68,7 +68,7 @@ private fun PagerSetting() = Column { Column { SpinnerChoice( title = stringResource(id = R.string.pref_read_with_tapping_inverted), - entries = stringArrayResource(id = R.array.invert_tapping_mode), + entries = stringArrayResource(id = com.hippo.ehviewer.R.array.invert_tapping_mode), values = arrayOf("0", "1", "2", "3"), field = Settings.readerPagerNavInverted.asMutableState(), ) @@ -81,7 +81,7 @@ private fun PagerSetting() = Column { val scaleType = Settings.imageScaleType.asMutableState() SpinnerChoice( title = stringResource(id = R.string.pref_image_scale_type), - entries = stringArrayResource(id = R.array.image_scale_type), + entries = stringArrayResource(id = com.hippo.ehviewer.R.array.image_scale_type), values = arrayOf("1", "2", "3", "4", "5", "6"), field = scaleType, ) @@ -93,7 +93,7 @@ private fun PagerSetting() = Column { } SpinnerChoice( title = stringResource(id = R.string.pref_zoom_start), - entries = stringArrayResource(id = R.array.zoom_start), + entries = stringArrayResource(id = com.hippo.ehviewer.R.array.zoom_start), values = arrayOf("1", "2", "3", "4"), field = Settings.zoomStart.asMutableState(), ) @@ -113,22 +113,22 @@ private fun WebtoonSetting() = Column { val webtoonNav = Settings.readerWebtoonNav.asMutableState() SpinnerChoice( title = stringResource(id = R.string.pref_viewer_nav), - entries = stringArrayResource(id = R.array.webtoon_nav), + entries = stringArrayResource(id = com.hippo.ehviewer.R.array.webtoon_nav), values = arrayOf("0", "1", "2", "3", "4", "5"), field = webtoonNav, ) AnimatedVisibility(visible = webtoonNav.value != 5) { SpinnerChoice( title = stringResource(id = R.string.pref_read_with_tapping_inverted), - entries = stringArrayResource(id = R.array.invert_tapping_mode), + entries = stringArrayResource(id = com.hippo.ehviewer.R.array.invert_tapping_mode), values = arrayOf("0", "1", "2", "3"), field = Settings.readerWebtoonNavInverted.asMutableState(), ) } SpinnerChoice( title = stringResource(id = R.string.pref_webtoon_side_padding), - entries = stringArrayResource(id = R.array.webtoon_side_padding), - values = stringArrayResource(id = R.array.webtoon_side_padding_values), + entries = stringArrayResource(id = com.hippo.ehviewer.R.array.webtoon_side_padding), + values = stringArrayResource(id = com.hippo.ehviewer.R.array.webtoon_side_padding_values), field = Settings.webtoonSidePadding.asMutableState(), ) SwitchChoice( diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/ReaderScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/ReaderScreen.kt index 8f6948aa1..4d990c6ba 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/ReaderScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/ReaderScreen.kt @@ -59,9 +59,9 @@ import arrow.core.Either import arrow.core.Either.Companion.catch import arrow.core.raise.ensure import arrow.core.right +import com.ehviewer.core.i18n.R import com.google.accompanist.systemuicontroller.rememberSystemUiController import com.hippo.ehviewer.EhDB -import com.hippo.ehviewer.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.data.BaseGalleryInfo import com.hippo.ehviewer.collectAsState @@ -407,7 +407,7 @@ suspend inline fun usePageLoader(args: ReaderScreenArgs, crossinline block: @Composable private fun collectBackgroundColorAsState(): State { - val grey = colorResource(R.color.reader_background_dark) + val grey = colorResource(com.hippo.ehviewer.R.color.reader_background_dark) val dark = isSystemInDarkTheme() return Settings.readerTheme.collectAsState { theme -> when (theme) { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/SettingsPager.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/SettingsPager.kt index c7cd236ea..af49e214d 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/SettingsPager.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/SettingsPager.kt @@ -15,7 +15,7 @@ import androidx.compose.runtime.snapshotFlow import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import kotlinx.coroutines.launch private val tabs = intArrayOf( diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/DownloadsScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/DownloadsScreen.kt index 7bbb3a27e..119717741 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/DownloadsScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/DownloadsScreen.kt @@ -80,8 +80,8 @@ import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import arrow.core.partially1 +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.EhDB -import com.hippo.ehviewer.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.asMutableState import com.hippo.ehviewer.client.EhTagDatabase @@ -523,7 +523,7 @@ fun AnimatedVisibilityScope.DownloadsScreen(navigator: DestinationsNavigator) = }, ) { contentPadding -> val height by collectListThumbSizeAsState() - val realPadding = contentPadding + PaddingValues(dimensionResource(id = R.dimen.gallery_list_margin_h), dimensionResource(id = R.dimen.gallery_list_margin_v)) + val realPadding = contentPadding + PaddingValues(dimensionResource(id = com.hippo.ehviewer.R.dimen.gallery_list_margin_h), dimensionResource(id = com.hippo.ehviewer.R.dimen.gallery_list_margin_v)) val searchBarConnection = remember { val slop = ViewConfiguration.get(contextOf()).scaledTouchSlop val topPaddingPx = with(density) { contentPadding.calculateTopPadding().roundToPx() } @@ -548,7 +548,7 @@ fun AnimatedVisibilityScope.DownloadsScreen(navigator: DestinationsNavigator) = Crossfade(targetState = gridView, label = "Downloads") { showGridView -> if (showGridView) { - val gridInterval = dimensionResource(R.dimen.gallery_grid_interval) + val gridInterval = dimensionResource(com.hippo.ehviewer.R.dimen.gallery_grid_interval) val thumbColumns by Settings.thumbColumns.collectAsState() FastScrollLazyVerticalStaggeredGrid( columns = StaggeredGridCells.Fixed(thumbColumns), @@ -571,7 +571,7 @@ fun AnimatedVisibilityScope.DownloadsScreen(navigator: DestinationsNavigator) = FastScrollLazyColumn( modifier = Modifier.nestedScroll(searchBarConnection).fillMaxSize(), contentPadding = realPadding, - verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.gallery_list_interval)), + verticalArrangement = Arrangement.spacedBy(dimensionResource(com.hippo.ehviewer.R.dimen.gallery_list_interval)), ) { items(list, key = { it.gid }) { info -> val checked = info.gid in checkedInfoMap @@ -660,7 +660,7 @@ fun AnimatedVisibilityScope.DownloadsScreen(navigator: DestinationsNavigator) = } onClick(Icons.AutoMirrored.Default.Sort) { val oldMode = SortMode.from(sortMode) - val sortModes = contextOf().resources.getStringArray(R.array.download_sort_modes).toList() + val sortModes = contextOf().resources.getStringArray(com.hippo.ehviewer.R.array.download_sort_modes).toList() val (selected, checked) = awaitSelectItemWithCheckBox( sortModes, R.string.sort_by, @@ -674,7 +674,7 @@ fun AnimatedVisibilityScope.DownloadsScreen(navigator: DestinationsNavigator) = invalidateKey = !invalidateKey } onClick(Icons.Default.FilterList) { - val downloadStates = contextOf().resources.getStringArray(R.array.download_state).toList() + val downloadStates = contextOf().resources.getStringArray(com.hippo.ehviewer.R.array.download_state).toList() val state = awaitSingleChoice( downloadStates, filterState.state + 1, diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/FavoritesScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/FavoritesScreen.kt index 2ad12046d..0f6173c01 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/FavoritesScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/FavoritesScreen.kt @@ -53,8 +53,8 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel import androidx.paging.compose.collectAsLazyPagingItems +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.EhDB -import com.hippo.ehviewer.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhEngine import com.hippo.ehviewer.client.data.BaseGalleryInfo diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryCommentsScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryCommentsScreen.kt index 383bdfad9..160327cb3 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryCommentsScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryCommentsScreen.kt @@ -84,7 +84,7 @@ import androidx.core.text.buildSpannedString import androidx.core.text.getSpans import androidx.core.text.inSpans import androidx.core.text.parseAsHtml -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhEngine import com.hippo.ehviewer.client.EhFilter.remember @@ -298,7 +298,7 @@ fun AnimatedVisibilityScope.GalleryCommentsScreen(gid: Long, navigator: Destinat } }, ) { paddingValues -> - val keylineMargin = dimensionResource(id = R.dimen.keyline_margin) + val keylineMargin = dimensionResource(id = com.hippo.ehviewer.R.dimen.keyline_margin) var editTextMeasured by remember { mutableStateOf(MinimumContentPaddingEditText) } var isRefreshing by remember { mutableStateOf(false) } val refreshState = rememberPullToRefreshState() diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryDetailContent.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryDetailContent.kt index 96909857b..55700b843 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryDetailContent.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryDetailContent.kt @@ -68,8 +68,8 @@ import androidx.paging.compose.itemKey import arrow.core.partially1 import arrow.fx.coroutines.parMap import arrow.fx.coroutines.parZip +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.EhDB -import com.hippo.ehviewer.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhEngine import com.hippo.ehviewer.client.EhFilter.remember @@ -174,7 +174,7 @@ fun GalleryDetailContent( voteTag: VoteTag, modifier: Modifier, ) { - val keylineMargin = dimensionResource(R.dimen.keyline_margin) + val keylineMargin = dimensionResource(com.hippo.ehviewer.R.dimen.keyline_margin) val galleryDetail = galleryInfo.asGalleryDetail() val windowSizeClass = LocalWindowSizeClass.current val thumbColumns by Settings.thumbColumns.collectAsState() @@ -262,8 +262,8 @@ fun GalleryDetailContent( columns = GridCells.Fixed(thumbColumns), contentPadding = contentPadding, modifier = modifier.padding(horizontal = keylineMargin), - horizontalArrangement = Arrangement.spacedBy(dimensionResource(id = R.dimen.strip_item_padding)), - verticalArrangement = Arrangement.spacedBy(dimensionResource(id = R.dimen.strip_item_padding_v)), + horizontalArrangement = Arrangement.spacedBy(dimensionResource(id = com.hippo.ehviewer.R.dimen.strip_item_padding)), + verticalArrangement = Arrangement.spacedBy(dimensionResource(id = com.hippo.ehviewer.R.dimen.strip_item_padding_v)), ) { item( key = "header", @@ -325,8 +325,8 @@ fun GalleryDetailContent( columns = GridCells.Fixed(thumbColumns), contentPadding = contentPadding, modifier = modifier.padding(horizontal = keylineMargin), - horizontalArrangement = Arrangement.spacedBy(dimensionResource(id = R.dimen.strip_item_padding)), - verticalArrangement = Arrangement.spacedBy(dimensionResource(id = R.dimen.strip_item_padding_v)), + horizontalArrangement = Arrangement.spacedBy(dimensionResource(id = com.hippo.ehviewer.R.dimen.strip_item_padding)), + verticalArrangement = Arrangement.spacedBy(dimensionResource(id = com.hippo.ehviewer.R.dimen.strip_item_padding_v)), ) { item( key = "header", @@ -340,7 +340,7 @@ fun GalleryDetailContent( onUploaderChipClick = ::onUploaderChipClick.partially1(galleryInfo), onBlockUploaderIconClick = ::showFilterUploaderDialog.partially1(galleryInfo), onCategoryChipClick = ::onCategoryChipClick, - modifier = Modifier.width(dimensionResource(id = R.dimen.gallery_detail_card_landscape_width)).padding(vertical = keylineMargin), + modifier = Modifier.width(dimensionResource(id = com.hippo.ehviewer.R.dimen.gallery_detail_card_landscape_width)).padding(vertical = keylineMargin), ) Column( modifier = Modifier.fillMaxSize(), @@ -443,7 +443,7 @@ fun BelowHeader(galleryDetail: GalleryDetail, voteTag: VoteTag) { Box( modifier = Modifier .fillMaxWidth() - .padding(bottom = dimensionResource(id = R.dimen.strip_item_padding_v)) + .padding(bottom = dimensionResource(id = com.hippo.ehviewer.R.dimen.strip_item_padding_v)) .clip(RoundedCornerShape(16.dp)) .clickable(onClick = ::navigateToCommentScreen), contentAlignment = Alignment.Center, @@ -463,7 +463,7 @@ fun BelowHeader(galleryDetail: GalleryDetail, voteTag: VoteTag) { navigate(info.gid asDstWith info.token) } } - val keylineMargin = dimensionResource(R.dimen.keyline_margin) + val keylineMargin = dimensionResource(com.hippo.ehviewer.R.dimen.keyline_margin) Spacer(modifier = Modifier.size(keylineMargin)) if (galleryDetail.newerVersions.isNotEmpty()) { Box(contentAlignment = Alignment.Center) { @@ -765,7 +765,7 @@ fun BelowHeader(galleryDetail: GalleryDetail, voteTag: VoteTag) { Spacer(modifier = Modifier.size(keylineMargin)) if (Settings.showComments.value) { GalleryDetailComment(galleryDetail.comments.comments) - Spacer(modifier = Modifier.size(dimensionResource(id = R.dimen.strip_item_padding_v))) + Spacer(modifier = Modifier.size(dimensionResource(id = com.hippo.ehviewer.R.dimen.strip_item_padding_v))) } } diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryDetailScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryDetailScreen.kt index 280975e2e..4739576d3 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryDetailScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryDetailScreen.kt @@ -34,9 +34,9 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.util.fastJoinToString import androidx.lifecycle.viewModelScope +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.EhApplication.Companion.imageCache import com.hippo.ehviewer.EhDB -import com.hippo.ehviewer.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhEngine import com.hippo.ehviewer.client.EhUrl diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryListScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryListScreen.kt index 9a953359d..e36848f0b 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryListScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryListScreen.kt @@ -69,8 +69,8 @@ import androidx.paging.LoadState import androidx.paging.compose.collectAsLazyPagingItems import arrow.core.raise.ensure import arrow.core.raise.ensureNotNull +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.EhDB -import com.hippo.ehviewer.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.asMutableState import com.hippo.ehviewer.client.EhTagDatabase @@ -194,8 +194,8 @@ fun AnimatedVisibilityScope.GalleryListScreen( FavouriteStatusRouter.Observe(data) val listMode by Settings.listMode.collectAsState() - val entries = stringArrayResource(id = R.array.toplist_entries) - val values = stringArrayResource(id = R.array.toplist_values) + val entries = stringArrayResource(id = com.hippo.ehviewer.R.array.toplist_entries) + val values = stringArrayResource(id = com.hippo.ehviewer.R.array.toplist_values) val toplists = remember { entries zip values } val quickSearchName = getSuitableTitleForUrlBuilder(urlBuilder, false) var saveProgress by Settings.qSSaveProgress.asMutableState() diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/HistoryScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/HistoryScreen.kt index 57665b46a..048926160 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/HistoryScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/HistoryScreen.kt @@ -42,8 +42,8 @@ import androidx.paging.compose.collectAsLazyPagingItems import androidx.paging.compose.itemContentType import androidx.paging.compose.itemKey import androidx.paging.map +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.EhDB -import com.hippo.ehviewer.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.collectAsState import com.hippo.ehviewer.icons.EhIcons @@ -133,13 +133,13 @@ fun AnimatedVisibilityScope.HistoryScreen(navigator: DestinationsNavigator) = Sc } } } - val marginH = dimensionResource(id = R.dimen.gallery_list_margin_h) + val marginH = dimensionResource(id = com.hippo.ehviewer.R.dimen.gallery_list_margin_h) val cardHeight by collectListThumbSizeAsState() val showPages by Settings.showGalleryPages.collectAsState() FastScrollLazyColumn( modifier = Modifier.nestedScroll(searchBarConnection).fillMaxSize(), contentPadding = paddingValues, - verticalArrangement = Arrangement.spacedBy(dimensionResource(R.dimen.gallery_list_interval)), + verticalArrangement = Arrangement.spacedBy(dimensionResource(com.hippo.ehviewer.R.dimen.gallery_list_interval)), ) { items( count = historyData.itemCount, diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/ImageSearchScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/ImageSearchScreen.kt index 917f4ebe8..43ccbbe60 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/ImageSearchScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/ImageSearchScreen.kt @@ -27,7 +27,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.client.data.ListUrlBuilder import com.hippo.ehviewer.client.data.ListUrlBuilder.Companion.MODE_IMAGE_SEARCH import com.hippo.ehviewer.ui.Screen @@ -50,8 +50,8 @@ import moe.tarsin.snackbar @Composable fun AnimatedVisibilityScope.ImageSearchScreen(navigator: DestinationsNavigator) = Screen(navigator) { val selectImageFirst = stringResource(R.string.select_image_first) - val marginH = dimensionResource(id = R.dimen.gallery_list_margin_h) - val marginV = dimensionResource(id = R.dimen.gallery_list_margin_v) + val marginH = dimensionResource(id = com.hippo.ehviewer.R.dimen.gallery_list_margin_h) + val marginV = dimensionResource(id = com.hippo.ehviewer.R.dimen.gallery_list_margin_v) var imageUri by rememberSaveable { mutableStateOf(null) } Scaffold( @@ -87,19 +87,19 @@ fun AnimatedVisibilityScope.ImageSearchScreen(navigator: DestinationsNavigator) modifier = Modifier.padding( paddingValues = contentPadding + PaddingValues(marginH, marginV), ).padding( - vertical = dimensionResource(id = R.dimen.search_layout_margin_v), + vertical = dimensionResource(id = com.hippo.ehviewer.R.dimen.search_layout_margin_v), ), ) { Column( modifier = Modifier.padding( - horizontal = dimensionResource(id = R.dimen.search_category_padding_h), - vertical = dimensionResource(id = R.dimen.search_category_padding_v), + horizontal = dimensionResource(id = com.hippo.ehviewer.R.dimen.search_category_padding_h), + vertical = dimensionResource(id = com.hippo.ehviewer.R.dimen.search_category_padding_v), ).fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally, ) { Text( text = stringResource(id = R.string.search_image), - modifier = Modifier.height(dimensionResource(id = R.dimen.search_category_title_height)), + modifier = Modifier.height(dimensionResource(id = com.hippo.ehviewer.R.dimen.search_category_title_height)), fontWeight = FontWeight.Bold, style = MaterialTheme.typography.titleMedium, ) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/ProgressScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/ProgressScreen.kt index 34f276317..d0ddadd86 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/ProgressScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/ProgressScreen.kt @@ -21,7 +21,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.client.EhEngine import com.hippo.ehviewer.icons.EhIcons import com.hippo.ehviewer.icons.big.SadAndroid diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/SearchBarScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/SearchBarScreen.kt index b790f38d5..9cf31027f 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/SearchBarScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/SearchBarScreen.kt @@ -65,8 +65,8 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.IntOffset import androidx.compose.ui.unit.coerceAtMost import androidx.compose.ui.unit.dp +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.EhApplication.Companion.searchDatabase -import com.hippo.ehviewer.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhTagDatabase import com.hippo.ehviewer.client.data.TagNamespace diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AboutScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AboutScreen.kt index 5ba3e8294..429b59138 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AboutScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AboutScreen.kt @@ -21,9 +21,9 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.fromHtml import androidx.compose.ui.unit.dp +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.BuildConfig import com.hippo.ehviewer.EhDB -import com.hippo.ehviewer.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.asMutableState import com.hippo.ehviewer.download.downloadLocation @@ -108,8 +108,8 @@ fun AnimatedVisibilityScope.AboutScreen(navigator: DestinationsNavigator) = Scre ) SimpleMenuPreferenceInt( title = stringResource(id = R.string.auto_updates), - entry = R.array.update_frequency, - entryValueRes = R.array.update_frequency_values, + entry = com.hippo.ehviewer.R.array.update_frequency, + entryValueRes = com.hippo.ehviewer.R.array.update_frequency_values, state = Settings.updateIntervalDays.asMutableState(), ) WorkPreference(title = stringResource(id = R.string.settings_about_check_for_updates)) { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AdvancedScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AdvancedScreen.kt index 8f329d219..53560090f 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AdvancedScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AdvancedScreen.kt @@ -30,9 +30,9 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.res.stringResource import androidx.core.net.toUri +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.BuildConfig import com.hippo.ehviewer.EhDB -import com.hippo.ehviewer.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.asMutableState import com.hippo.ehviewer.client.EhEngine @@ -169,8 +169,8 @@ fun AnimatedVisibilityScope.AdvancedScreen(navigator: DestinationsNavigator) = S } SimpleMenuPreferenceInt( title = stringResource(id = R.string.settings_advanced_read_cache_size), - entry = R.array.read_cache_size_entries, - entryValueRes = R.array.read_cache_size_entry_values, + entry = com.hippo.ehviewer.R.array.read_cache_size_entries, + entryValueRes = com.hippo.ehviewer.R.array.read_cache_size_entry_values, state = Settings.readCacheSize.asMutableState(), ) var currentLanguage by remember { mutableStateOf(getAppLanguage()) } diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/DownloadScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/DownloadScreen.kt index 29d7228f7..48ef592b7 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/DownloadScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/DownloadScreen.kt @@ -29,8 +29,8 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import arrow.fx.coroutines.parMap import arrow.fx.coroutines.parMapNotNull +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.EhDB -import com.hippo.ehviewer.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.asMutableState import com.hippo.ehviewer.client.EhEngine.fillGalleryListByApi @@ -178,16 +178,16 @@ fun AnimatedVisibilityScope.DownloadScreen(navigator: DestinationsNavigator) = S SimpleMenuPreferenceInt( title = stringResource(id = R.string.settings_download_concurrency), summary = stringResource(id = R.string.settings_download_concurrency_summary, multiThreadDownload.value), - entry = R.array.multi_thread_download_entries, - entryValueRes = R.array.multi_thread_download_entry_values, + entry = com.hippo.ehviewer.R.array.multi_thread_download_entries, + entryValueRes = com.hippo.ehviewer.R.array.multi_thread_download_entry_values, state = multiThreadDownload, ) val downloadDelay = Settings.downloadDelay.asMutableState() SimpleMenuPreferenceInt( title = stringResource(id = R.string.settings_download_download_delay), summary = stringResource(id = R.string.settings_download_download_delay_summary, downloadDelay.value), - entry = R.array.download_delay_entries, - entryValueRes = R.array.download_delay_entry_values, + entry = com.hippo.ehviewer.R.array.download_delay_entries, + entryValueRes = com.hippo.ehviewer.R.array.download_delay_entry_values, state = downloadDelay, ) IntSliderPreference( @@ -209,8 +209,8 @@ fun AnimatedVisibilityScope.DownloadScreen(navigator: DestinationsNavigator) = S SimpleMenuPreferenceInt( title = stringResource(id = R.string.settings_download_preload_image), summary = stringResource(id = R.string.settings_download_preload_image_summary, preloadImage.value), - entry = R.array.preload_image_entries, - entryValueRes = R.array.preload_image_entry_values, + entry = com.hippo.ehviewer.R.array.preload_image_entries, + entryValueRes = com.hippo.ehviewer.R.array.preload_image_entry_values, state = preloadImage, ) SwitchPreference( diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/EhScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/EhScreen.kt index 42f2548e1..c7323d06d 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/EhScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/EhScreen.kt @@ -28,7 +28,7 @@ import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.fromHtml -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.asMutableState import com.hippo.ehviewer.client.EhCookieStore @@ -94,7 +94,7 @@ fun AnimatedVisibilityScope.EhScreen(navigator: DestinationsNavigator) = Screen( val warning = stringResource(id = R.string.settings_eh_identity_cookies_signed) val state = rememberTextFieldState(cookies.joinToString("\n") { (k, v) -> "$k: $v" }) Text(text = AnnotatedString.fromHtml(warning)) - Spacer(modifier = Modifier.size(dimensionResource(id = R.dimen.keyline_margin))) + Spacer(modifier = Modifier.size(dimensionResource(id = com.hippo.ehviewer.R.dimen.keyline_margin))) OutlinedTextField( state = state, readOnly = true, @@ -119,8 +119,8 @@ fun AnimatedVisibilityScope.EhScreen(navigator: DestinationsNavigator) = Screen( val gallerySite = Settings.gallerySite.asMutableState() SimpleMenuPreferenceInt( title = stringResource(id = R.string.settings_eh_gallery_site), - entry = R.array.gallery_site_entries, - entryValueRes = R.array.gallery_site_entry_values, + entry = com.hippo.ehviewer.R.array.gallery_site_entries, + entryValueRes = com.hippo.ehviewer.R.array.gallery_site_entry_values, state = gallerySite, ) Preference( @@ -161,8 +161,8 @@ fun AnimatedVisibilityScope.EhScreen(navigator: DestinationsNavigator) = Screen( } SimpleMenuPreferenceInt( title = stringResource(id = R.string.dark_theme), - entry = R.array.night_mode_entries, - entryValueRes = R.array.night_mode_values, + entry = com.hippo.ehviewer.R.array.night_mode_entries, + entryValueRes = com.hippo.ehviewer.R.array.night_mode_values, state = Settings.theme.asMutableState(), ) SwitchPreference( @@ -175,15 +175,15 @@ fun AnimatedVisibilityScope.EhScreen(navigator: DestinationsNavigator) = Screen( ) SimpleMenuPreferenceInt( title = stringResource(id = R.string.settings_eh_launch_page), - entry = R.array.launch_page_entries, - entryValueRes = R.array.launch_page_entry_values, + entry = com.hippo.ehviewer.R.array.launch_page_entries, + entryValueRes = com.hippo.ehviewer.R.array.launch_page_entry_values, state = Settings.launchPage.asMutableState(), ) val listMode = Settings.listMode.asMutableState() SimpleMenuPreferenceInt( title = stringResource(id = R.string.settings_eh_list_mode), - entry = R.array.list_mode_entries, - entryValueRes = R.array.list_mode_entry_values, + entry = com.hippo.ehviewer.R.array.list_mode_entries, + entryValueRes = com.hippo.ehviewer.R.array.list_mode_entry_values, state = listMode, ) AnimatedVisibility(visible = listMode.value == 0) { @@ -197,8 +197,8 @@ fun AnimatedVisibilityScope.EhScreen(navigator: DestinationsNavigator) = Screen( ) SimpleMenuPreferenceInt( title = stringResource(id = R.string.settings_eh_detail_size), - entry = R.array.detail_size_entries, - entryValueRes = R.array.detail_size_entry_values, + entry = com.hippo.ehviewer.R.array.detail_size_entries, + entryValueRes = com.hippo.ehviewer.R.array.detail_size_entry_values, state = Settings.detailSize.asMutableState(), ) } diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/FilterScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/FilterScreen.kt index 39b7104a0..70a124a92 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/FilterScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/FilterScreen.kt @@ -53,7 +53,7 @@ import androidx.compose.ui.res.stringArrayResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.unit.dp -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhFilter import com.hippo.ehviewer.client.EhFilter.forget @@ -88,7 +88,7 @@ fun AnimatedVisibilityScope.FilterScreen(navigator: DestinationsNavigator) = Scr fun addFilter() { launch { dialog { cont -> - val types = stringArrayResource(id = R.array.filter_entries) + val types = stringArrayResource(id = com.hippo.ehviewer.R.array.filter_entries) val type = rememberTextFieldState(types[0]) val state = rememberTextFieldState() var error by remember { mutableStateOf(null) } diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/LicenseScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/LicenseScreen.kt index 364b90cb9..2bfe00522 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/LicenseScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/LicenseScreen.kt @@ -13,7 +13,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.ui.Screen import com.hippo.ehviewer.ui.main.NavigationIcon import com.hippo.ehviewer.ui.openBrowser @@ -37,7 +37,7 @@ fun AnimatedVisibilityScope.LicenseScreen(navigator: DestinationsNavigator) = Sc ) }, ) { paddingValues -> - val libraries by rememberLibraries(R.raw.aboutlibraries) + val libraries by rememberLibraries(com.hippo.ehviewer.R.raw.aboutlibraries) LibrariesContainer( libraries = libraries, modifier = Modifier.nestedScroll(scrollBehavior.nestedScrollConnection), diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/MyTagsScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/MyTagsScreen.kt index 074a13a3d..29dfe8520 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/MyTagsScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/MyTagsScreen.kt @@ -9,9 +9,9 @@ import androidx.compose.material3.TopAppBar import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource +import com.ehviewer.core.i18n.R import com.google.accompanist.web.WebView import com.google.accompanist.web.rememberWebViewState -import com.hippo.ehviewer.R import com.hippo.ehviewer.client.EhUrl import com.hippo.ehviewer.ui.Screen import com.hippo.ehviewer.ui.main.NavigationIcon diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/PrivacyScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/PrivacyScreen.kt index afad2d1eb..10d6dedae 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/PrivacyScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/PrivacyScreen.kt @@ -12,8 +12,8 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.res.stringResource +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.EhApplication.Companion.searchDatabase -import com.hippo.ehviewer.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.asMutableState import com.hippo.ehviewer.ui.Screen diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/SettingsScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/SettingsScreen.kt index 6718c20d5..668c2caf5 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/SettingsScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/SettingsScreen.kt @@ -16,7 +16,7 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.res.stringResource -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.icons.EhIcons import com.hippo.ehviewer.icons.filled.SadPanda import com.hippo.ehviewer.ui.Screen diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/UConfigScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/UConfigScreen.kt index 9bd8b505d..783a9cbab 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/UConfigScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/UConfigScreen.kt @@ -1,6 +1,5 @@ package com.hippo.ehviewer.ui.settings -import android.webkit.WebView import androidx.compose.animation.AnimatedVisibilityScope import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding @@ -16,10 +15,10 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.DisposableEffect import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource +import com.ehviewer.core.i18n.R import com.google.accompanist.web.WebView import com.google.accompanist.web.rememberWebViewNavigator import com.google.accompanist.web.rememberWebViewState -import com.hippo.ehviewer.R import com.hippo.ehviewer.client.EhCookieStore import com.hippo.ehviewer.client.EhUrl import com.hippo.ehviewer.ui.Screen diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Dialog.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Dialog.kt index c99c1d58f..b1c0f0912 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Dialog.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Dialog.kt @@ -93,7 +93,7 @@ import arrow.core.Either import arrow.core.raise.Raise import arrow.core.raise.either import arrow.core.right -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.client.EhTagDatabase import com.hippo.ehviewer.client.EhTagDatabase.suggestion import com.jamal.composeprefs3.ui.ifNotNullThen diff --git a/app/src/main/kotlin/com/hippo/ehviewer/util/AppHelper.kt b/app/src/main/kotlin/com/hippo/ehviewer/util/AppHelper.kt index 0862c1342..1478a3e02 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/util/AppHelper.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/util/AppHelper.kt @@ -20,7 +20,7 @@ import android.content.Intent import android.widget.Toast import arrow.core.Either import arrow.core.getOrElse -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R object AppHelper { fun share(from: Activity, text: String?): Boolean { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/util/ClipboardUtil.kt b/app/src/main/kotlin/com/hippo/ehviewer/util/ClipboardUtil.kt index 1ba68ee66..7ea8a596f 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/util/ClipboardUtil.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/util/ClipboardUtil.kt @@ -24,7 +24,7 @@ import android.content.Context import android.os.Build import android.view.textclassifier.TextClassifier import androidx.core.os.persistableBundleOf -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.ui.MainActivity import moe.tarsin.tip import splitties.systemservices.clipboardManager diff --git a/app/src/main/kotlin/com/hippo/ehviewer/util/ExceptionUtils.kt b/app/src/main/kotlin/com/hippo/ehviewer/util/ExceptionUtils.kt index d98130a50..dbaead5a4 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/util/ExceptionUtils.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/util/ExceptionUtils.kt @@ -15,7 +15,7 @@ */ package com.hippo.ehviewer.util -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import eu.kanade.tachiyomi.util.system.logcat import io.ktor.client.network.sockets.ConnectTimeoutException import io.ktor.client.network.sockets.SocketTimeoutException diff --git a/app/src/main/kotlin/com/hippo/ehviewer/util/LanguageUtils.kt b/app/src/main/kotlin/com/hippo/ehviewer/util/LanguageUtils.kt index 95a6b8693..f5c28d1c3 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/util/LanguageUtils.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/util/LanguageUtils.kt @@ -3,13 +3,13 @@ package com.hippo.ehviewer.util import android.content.Context import androidx.appcompat.app.AppCompatDelegate import androidx.core.os.LocaleListCompat -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import org.xmlpull.v1.XmlPullParser context(ctx: Context) fun getLanguages(): Map = with(ctx) { val languages = mutableMapOf("system" to getString(R.string.app_language_system)) - resources.getXml(R.xml._generated_res_locale_config).use { parser -> + resources.getXml(com.hippo.ehviewer.R.xml._generated_res_locale_config).use { parser -> var event = parser.eventType while (event != XmlPullParser.END_DOCUMENT) { if (event == XmlPullParser.START_TAG && parser.name == "locale") { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/util/LauncherUtils.kt b/app/src/main/kotlin/com/hippo/ehviewer/util/LauncherUtils.kt index 75e84c947..c1ba7d285 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/util/LauncherUtils.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/util/LauncherUtils.kt @@ -21,7 +21,7 @@ import androidx.core.net.toUri import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleEventObserver import androidx.lifecycle.LifecycleOwner -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import eu.kanade.tachiyomi.util.lang.withUIContext import java.io.File import kotlin.concurrent.atomics.AtomicInt diff --git a/app/src/main/kotlin/com/hippo/ehviewer/util/Progress.kt b/app/src/main/kotlin/com/hippo/ehviewer/util/Progress.kt index 280a9cd48..316314a7a 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/util/Progress.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/util/Progress.kt @@ -16,7 +16,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.compose.ui.window.DialogProperties -import com.hippo.ehviewer.R.string +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.ui.tools.DialogState import kotlin.coroutines.intrinsics.COROUTINE_SUSPENDED import kotlin.coroutines.intrinsics.startCoroutineUninterceptedOrReturn @@ -40,7 +40,7 @@ fun ProgressDialog() { ) { CircularWavyProgressIndicator() Spacer(modifier = Modifier.size(18.dp)) - Text(text = stringResource(id = string.please_wait)) + Text(text = stringResource(id = R.string.please_wait)) } } } diff --git a/app/src/main/kotlin/com/hippo/ehviewer/util/ReadableTime.kt b/app/src/main/kotlin/com/hippo/ehviewer/util/ReadableTime.kt index 44cb9643b..c73120324 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/util/ReadableTime.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/util/ReadableTime.kt @@ -18,7 +18,7 @@ package com.hippo.ehviewer.util import androidx.compose.runtime.Composable import androidx.compose.ui.res.pluralStringResource import androidx.compose.ui.res.stringResource -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import java.util.Locale import kotlin.time.Clock import kotlin.time.Instant diff --git a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/BottomReaderBar.kt b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/BottomReaderBar.kt index 9ce00121f..ce09c932d 100644 --- a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/BottomReaderBar.kt +++ b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/BottomReaderBar.kt @@ -26,7 +26,7 @@ import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.asMutableState import com.hippo.ehviewer.collectAsState diff --git a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/ReaderPageSheet.kt b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/ReaderPageSheet.kt index f5fdc1e01..f122dc5d7 100644 --- a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/ReaderPageSheet.kt +++ b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/ReaderPageSheet.kt @@ -26,7 +26,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import moe.tarsin.kt.andThen @Composable diff --git a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/setting/OrientationType.kt b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/setting/OrientationType.kt index e50892a35..7df1f85d2 100644 --- a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/setting/OrientationType.kt +++ b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/setting/OrientationType.kt @@ -2,7 +2,7 @@ package eu.kanade.tachiyomi.ui.reader.setting import android.content.pm.ActivityInfo import androidx.compose.ui.graphics.vector.ImageVector -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.icons.EhIcons import com.hippo.ehviewer.icons.reader.Landscape import com.hippo.ehviewer.icons.reader.LandscapeLocked diff --git a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/setting/ReadingModeType.kt b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/setting/ReadingModeType.kt index 0895afeac..8e83c563f 100644 --- a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/setting/ReadingModeType.kt +++ b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/setting/ReadingModeType.kt @@ -2,7 +2,7 @@ package eu.kanade.tachiyomi.ui.reader.setting import androidx.compose.runtime.Stable import androidx.compose.ui.graphics.vector.ImageVector -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import com.hippo.ehviewer.icons.EhIcons import com.hippo.ehviewer.icons.reader.ContinuousVertical import com.hippo.ehviewer.icons.reader.Default diff --git a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/ViewerNavigation.kt b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/ViewerNavigation.kt index fc25d4f95..e61afd853 100644 --- a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/ViewerNavigation.kt +++ b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/ViewerNavigation.kt @@ -3,7 +3,7 @@ package eu.kanade.tachiyomi.ui.reader.viewer import androidx.annotation.StringRes import androidx.compose.ui.geometry.Offset import androidx.compose.ui.geometry.Rect -import com.hippo.ehviewer.R +import com.ehviewer.core.i18n.R import eu.kanade.tachiyomi.ui.reader.setting.TappingInvertMode import eu.kanade.tachiyomi.ui.reader.viewer.navigation.DisabledNavigation import eu.kanade.tachiyomi.ui.reader.viewer.navigation.EdgeNavigation @@ -14,11 +14,11 @@ import eu.kanade.tachiyomi.util.lang.invert abstract class ViewerNavigation { sealed class NavigationRegion(@StringRes val nameRes: Int, val colorRes: Int) { - data object MENU : NavigationRegion(R.string.action_menu, R.color.navigation_menu) - data object PREV : NavigationRegion(R.string.nav_zone_prev, R.color.navigation_prev) - data object NEXT : NavigationRegion(R.string.nav_zone_next, R.color.navigation_next) - data object LEFT : NavigationRegion(R.string.nav_zone_left, R.color.navigation_left) - data object RIGHT : NavigationRegion(R.string.nav_zone_right, R.color.navigation_right) + data object MENU : NavigationRegion(R.string.action_menu, com.hippo.ehviewer.R.color.navigation_menu) + data object PREV : NavigationRegion(R.string.nav_zone_prev, com.hippo.ehviewer.R.color.navigation_prev) + data object NEXT : NavigationRegion(R.string.nav_zone_next, com.hippo.ehviewer.R.color.navigation_next) + data object LEFT : NavigationRegion(R.string.nav_zone_left, com.hippo.ehviewer.R.color.navigation_left) + data object RIGHT : NavigationRegion(R.string.nav_zone_right, com.hippo.ehviewer.R.color.navigation_right) } data class Region(val rect: Rect, val type: NavigationRegion) { diff --git a/build.gradle.kts b/build.gradle.kts index f842cca43..60ebb4d72 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,6 +1,7 @@ plugins { alias(libs.plugins.android.application) apply false alias(libs.plugins.android.kotlin.multiplatform.library) apply false + alias(libs.plugins.android.library) apply false alias(libs.plugins.android.lint) apply false alias(libs.plugins.compose.compiler) apply false alias(libs.plugins.compose.multiplatform) apply false @@ -8,6 +9,7 @@ plugins { alias(libs.plugins.kotlin.multiplatform) apply false alias(libs.plugins.kotlin.serialization) apply false alias(libs.plugins.ksp) apply false + alias(libs.plugins.moko.resources) apply false alias(libs.plugins.spotless) apply false alias(libs.plugins.aboutlibrariesPlugin) apply false alias(libs.plugins.composeCompilerReportGenerator) apply false diff --git a/core/i18n/build.gradle.kts b/core/i18n/build.gradle.kts new file mode 100644 index 000000000..44e4cc88e --- /dev/null +++ b/core/i18n/build.gradle.kts @@ -0,0 +1,32 @@ +plugins { + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.multiplatform) + alias(libs.plugins.moko.resources) +} + +kotlin { + // TODO: Migrate to AGP KMP + // https://github.com/icerockdev/moko-resources/issues/820 + androidTarget() + + sourceSets { + commonMain { + dependencies { + api(libs.moko.resources) + } + } + } + + jvmToolchain(21) + compilerOptions { + freeCompilerArgs.add("-Xexpect-actual-classes") + } +} + +android { + namespace = "com.ehviewer.core.i18n" +} + +multiplatformResources { + resourcesPackage = "com.ehviewer.core.i18n" +} diff --git a/app/src/main/res/values/plurals.xml b/core/i18n/src/commonMain/moko-resources/base/plurals.xml similarity index 100% rename from app/src/main/res/values/plurals.xml rename to core/i18n/src/commonMain/moko-resources/base/plurals.xml diff --git a/app/src/main/res/values/strings.xml b/core/i18n/src/commonMain/moko-resources/base/strings.xml similarity index 100% rename from app/src/main/res/values/strings.xml rename to core/i18n/src/commonMain/moko-resources/base/strings.xml diff --git a/app/src/main/res/values-de/strings.xml b/core/i18n/src/commonMain/moko-resources/de/strings.xml old mode 100755 new mode 100644 similarity index 100% rename from app/src/main/res/values-de/strings.xml rename to core/i18n/src/commonMain/moko-resources/de/strings.xml diff --git a/app/src/main/res/values-es/plurals.xml b/core/i18n/src/commonMain/moko-resources/es/plurals.xml similarity index 100% rename from app/src/main/res/values-es/plurals.xml rename to core/i18n/src/commonMain/moko-resources/es/plurals.xml diff --git a/app/src/main/res/values-es/strings.xml b/core/i18n/src/commonMain/moko-resources/es/strings.xml similarity index 100% rename from app/src/main/res/values-es/strings.xml rename to core/i18n/src/commonMain/moko-resources/es/strings.xml diff --git a/app/src/main/res/values-fr/plurals.xml b/core/i18n/src/commonMain/moko-resources/fr/plurals.xml similarity index 100% rename from app/src/main/res/values-fr/plurals.xml rename to core/i18n/src/commonMain/moko-resources/fr/plurals.xml diff --git a/app/src/main/res/values-fr/strings.xml b/core/i18n/src/commonMain/moko-resources/fr/strings.xml old mode 100755 new mode 100644 similarity index 100% rename from app/src/main/res/values-fr/strings.xml rename to core/i18n/src/commonMain/moko-resources/fr/strings.xml diff --git a/app/src/main/res/values-ja/plurals.xml b/core/i18n/src/commonMain/moko-resources/ja/plurals.xml similarity index 100% rename from app/src/main/res/values-ja/plurals.xml rename to core/i18n/src/commonMain/moko-resources/ja/plurals.xml diff --git a/app/src/main/res/values-ja/strings.xml b/core/i18n/src/commonMain/moko-resources/ja/strings.xml similarity index 100% rename from app/src/main/res/values-ja/strings.xml rename to core/i18n/src/commonMain/moko-resources/ja/strings.xml diff --git a/app/src/main/res/values-ko/plurals.xml b/core/i18n/src/commonMain/moko-resources/ko/plurals.xml similarity index 100% rename from app/src/main/res/values-ko/plurals.xml rename to core/i18n/src/commonMain/moko-resources/ko/plurals.xml diff --git a/app/src/main/res/values-ko/strings.xml b/core/i18n/src/commonMain/moko-resources/ko/strings.xml old mode 100755 new mode 100644 similarity index 100% rename from app/src/main/res/values-ko/strings.xml rename to core/i18n/src/commonMain/moko-resources/ko/strings.xml diff --git a/app/src/main/res/values-nb-rNO/plurals.xml b/core/i18n/src/commonMain/moko-resources/nb-rNO/plurals.xml similarity index 100% rename from app/src/main/res/values-nb-rNO/plurals.xml rename to core/i18n/src/commonMain/moko-resources/nb-rNO/plurals.xml diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/core/i18n/src/commonMain/moko-resources/nb-rNO/strings.xml similarity index 100% rename from app/src/main/res/values-nb-rNO/strings.xml rename to core/i18n/src/commonMain/moko-resources/nb-rNO/strings.xml diff --git a/app/src/main/res/values-th/plurals.xml b/core/i18n/src/commonMain/moko-resources/th/plurals.xml similarity index 100% rename from app/src/main/res/values-th/plurals.xml rename to core/i18n/src/commonMain/moko-resources/th/plurals.xml diff --git a/app/src/main/res/values-th/strings.xml b/core/i18n/src/commonMain/moko-resources/th/strings.xml similarity index 100% rename from app/src/main/res/values-th/strings.xml rename to core/i18n/src/commonMain/moko-resources/th/strings.xml diff --git a/app/src/main/res/values-tr/strings.xml b/core/i18n/src/commonMain/moko-resources/tr/strings.xml similarity index 100% rename from app/src/main/res/values-tr/strings.xml rename to core/i18n/src/commonMain/moko-resources/tr/strings.xml diff --git a/app/src/main/res/values-zh-rCN/plurals.xml b/core/i18n/src/commonMain/moko-resources/zh-rCN/plurals.xml similarity index 100% rename from app/src/main/res/values-zh-rCN/plurals.xml rename to core/i18n/src/commonMain/moko-resources/zh-rCN/plurals.xml diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/core/i18n/src/commonMain/moko-resources/zh-rCN/strings.xml similarity index 100% rename from app/src/main/res/values-zh-rCN/strings.xml rename to core/i18n/src/commonMain/moko-resources/zh-rCN/strings.xml diff --git a/app/src/main/res/values-zh-rHK/plurals.xml b/core/i18n/src/commonMain/moko-resources/zh-rHK/plurals.xml similarity index 100% rename from app/src/main/res/values-zh-rHK/plurals.xml rename to core/i18n/src/commonMain/moko-resources/zh-rHK/plurals.xml diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/core/i18n/src/commonMain/moko-resources/zh-rHK/strings.xml old mode 100755 new mode 100644 similarity index 100% rename from app/src/main/res/values-zh-rHK/strings.xml rename to core/i18n/src/commonMain/moko-resources/zh-rHK/strings.xml diff --git a/app/src/main/res/values-zh-rTW/plurals.xml b/core/i18n/src/commonMain/moko-resources/zh-rTW/plurals.xml similarity index 100% rename from app/src/main/res/values-zh-rTW/plurals.xml rename to core/i18n/src/commonMain/moko-resources/zh-rTW/plurals.xml diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/core/i18n/src/commonMain/moko-resources/zh-rTW/strings.xml similarity index 100% rename from app/src/main/res/values-zh-rTW/strings.xml rename to core/i18n/src/commonMain/moko-resources/zh-rTW/strings.xml diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 14045c970..5f3a0649a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -25,6 +25,7 @@ kotlinx-datetime = "0.7.1" kotlinx-serialization = "1.9.0" ksp = "2.2.20-Beta2-2.0.2" ktor = "3.2.3" +moko-resources = "0.25.0" okhttp = "5.1.0" okio = "3.16.0" splitties = "3.0.0" @@ -100,6 +101,8 @@ ktor-client-okhttp = { module = "io.ktor:ktor-client-okhttp", version.ref = "kto logcat = "com.squareup.logcat:logcat:0.4" +moko-resources = { module = "dev.icerock.moko:resources", version.ref = "moko-resources" } + okio-bom = { module = "com.squareup.okio:okio-bom", version.ref = "okio" } reorderable = "sh.calvin.reorderable:reorderable:2.5.1" @@ -138,6 +141,7 @@ splitties = ["splitties-appctx", "splitties-arch-room", "splitties-preferences", aboutlibrariesPlugin = { id = "com.mikepenz.aboutlibraries.plugin", version.ref = "aboutlibraries" } android-application = { id = "com.android.application", version.ref = "agp" } android-kotlin-multiplatform-library = { id = "com.android.kotlin.multiplatform.library", version.ref = "agp" } +android-library = { id = "com.android.library", version.ref = "agp" } android-lint = { id = "com.android.lint", version.ref = "agp" } composeCompilerReportGenerator = { id = "dev.shreyaspatil.compose-compiler-report-generator", version = "1.4.2" } compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } @@ -146,6 +150,7 @@ kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } +moko-resources = { id = "dev.icerock.mobile.multiplatform-resources", version.ref = "moko-resources" } spotless = { id = "com.diffplug.spotless", version.ref = "spotless" } android-test = { id = "com.android.test", version.ref = "agp" } baselineprofile = { id = "androidx.baselineprofile", version.ref = "benchmark" } diff --git a/settings.gradle.kts b/settings.gradle.kts index e692bd408..4e2527837 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -44,3 +44,4 @@ enableFeaturePreview("STABLE_CONFIGURATION_CACHE") rootProject.name = "EhViewer" include(":app") include(":benchmark") +include(":core:i18n")