From b1ccebf329e9a9d77894b9d4ff06aeb9d7317acf Mon Sep 17 00:00:00 2001 From: arkon Date: Sun, 13 Nov 2022 12:24:52 -0500 Subject: [PATCH] Minor cleanup Mostly just addressing comments from #8452 --- .../browse/components/BrowseIcons.kt | 2 +- .../components/ChapterDownloadIndicator.kt | 2 +- .../presentation/components/TrackLogoIcon.kt | 34 ++++++++ .../kanade/presentation/crash/CrashScreen.kt | 4 +- .../presentation/manga/MangaSettingsDialog.kt | 28 +++--- .../presentation/manga/TrackInfoDialogHome.kt | 85 +++++-------------- .../manga/TrackInfoDialogSelector.kt | 12 +-- .../presentation/manga/TrackServiceSearch.kt | 10 +-- .../more/settings/PreferenceItem.kt | 4 +- .../more/settings/PreferenceModel.kt | 2 +- .../more/settings/PreferenceScaffold.kt | 2 +- .../more/settings/widget/InfoWidget.kt | 2 +- .../widget/TrackingPreferenceWidget.kt | 26 ++---- .../eu/kanade/tachiyomi/source/LocalSource.kt | 2 +- .../ui/manga/track/TrackInfoDialog.kt | 14 +-- 15 files changed, 102 insertions(+), 127 deletions(-) create mode 100644 app/src/main/java/eu/kanade/presentation/components/TrackLogoIcon.kt diff --git a/app/src/main/java/eu/kanade/presentation/browse/components/BrowseIcons.kt b/app/src/main/java/eu/kanade/presentation/browse/components/BrowseIcons.kt index 9be627cd36..1d37ca50bc 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/components/BrowseIcons.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/components/BrowseIcons.kt @@ -62,7 +62,7 @@ fun SourceIcon( } else -> { Image( - painter = painterResource(id = R.mipmap.ic_local_source), + painter = painterResource(R.mipmap.ic_local_source), contentDescription = null, modifier = modifier.then(defaultModifier), ) diff --git a/app/src/main/java/eu/kanade/presentation/components/ChapterDownloadIndicator.kt b/app/src/main/java/eu/kanade/presentation/components/ChapterDownloadIndicator.kt index 9af38720af..2f7d2cfc24 100644 --- a/app/src/main/java/eu/kanade/presentation/components/ChapterDownloadIndicator.kt +++ b/app/src/main/java/eu/kanade/presentation/components/ChapterDownloadIndicator.kt @@ -95,7 +95,7 @@ private fun NotDownloadedIndicator( contentAlignment = Alignment.Center, ) { Icon( - painter = painterResource(id = R.drawable.ic_download_chapter_24dp), + painter = painterResource(R.drawable.ic_download_chapter_24dp), contentDescription = stringResource(R.string.manga_download), modifier = Modifier.size(IndicatorSize), tint = MaterialTheme.colorScheme.onSurfaceVariant, diff --git a/app/src/main/java/eu/kanade/presentation/components/TrackLogoIcon.kt b/app/src/main/java/eu/kanade/presentation/components/TrackLogoIcon.kt new file mode 100644 index 0000000000..ea70d3705b --- /dev/null +++ b/app/src/main/java/eu/kanade/presentation/components/TrackLogoIcon.kt @@ -0,0 +1,34 @@ +package eu.kanade.presentation.components + +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.material3.MaterialTheme +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.unit.dp +import eu.kanade.tachiyomi.data.track.TrackService + +@Composable +fun TrackLogoIcon( + service: TrackService, +) { + Box( + modifier = Modifier + .size(48.dp) + .background(color = Color(service.getLogoColor()), shape = MaterialTheme.shapes.medium) + .padding(4.dp), + contentAlignment = Alignment.Center, + ) { + Image( + painter = painterResource(service.getLogo()), + contentDescription = stringResource(service.nameRes()), + ) + } +} diff --git a/app/src/main/java/eu/kanade/presentation/crash/CrashScreen.kt b/app/src/main/java/eu/kanade/presentation/crash/CrashScreen.kt index 826fb7a1b0..1ff3b8b37e 100644 --- a/app/src/main/java/eu/kanade/presentation/crash/CrashScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/crash/CrashScreen.kt @@ -72,7 +72,7 @@ fun CrashScreen( }, modifier = Modifier.fillMaxWidth(), ) { - Text(text = stringResource(id = R.string.pref_dump_crash_logs)) + Text(text = stringResource(R.string.pref_dump_crash_logs)) } OutlinedButton( onClick = onRestartClick, @@ -102,7 +102,7 @@ fun CrashScreen( style = MaterialTheme.typography.titleLarge, ) Text( - text = stringResource(R.string.crash_screen_description, stringResource(id = R.string.app_name)), + text = stringResource(R.string.crash_screen_description, stringResource(R.string.app_name)), modifier = Modifier .padding(vertical = MaterialTheme.padding.small), ) diff --git a/app/src/main/java/eu/kanade/presentation/manga/MangaSettingsDialog.kt b/app/src/main/java/eu/kanade/presentation/manga/MangaSettingsDialog.kt index 8f47dd790a..bbc8b2e4e4 100644 --- a/app/src/main/java/eu/kanade/presentation/manga/MangaSettingsDialog.kt +++ b/app/src/main/java/eu/kanade/presentation/manga/MangaSettingsDialog.kt @@ -208,12 +208,12 @@ private fun SetAsDefaultDialog( var optionalChecked by rememberSaveable { mutableStateOf(false) } AlertDialog( onDismissRequest = onDismissRequest, - title = { Text(text = stringResource(id = R.string.chapter_settings)) }, + title = { Text(text = stringResource(R.string.chapter_settings)) }, text = { Column( verticalArrangement = Arrangement.spacedBy(12.dp), ) { - Text(text = stringResource(id = R.string.confirm_set_chapter_settings)) + Text(text = stringResource(R.string.confirm_set_chapter_settings)) Row( modifier = Modifier @@ -227,13 +227,13 @@ private fun SetAsDefaultDialog( checked = optionalChecked, onCheckedChange = null, ) - Text(text = stringResource(id = R.string.also_set_chapter_settings_for_library)) + Text(text = stringResource(R.string.also_set_chapter_settings_for_library)) } } }, dismissButton = { TextButton(onClick = onDismissRequest) { - Text(text = stringResource(id = android.R.string.cancel)) + Text(text = stringResource(android.R.string.cancel)) } }, confirmButton = { @@ -242,7 +242,7 @@ private fun SetAsDefaultDialog( onConfirmed(optionalChecked) }, ) { - Text(text = stringResource(id = android.R.string.ok)) + Text(text = stringResource(android.R.string.ok)) } }, ) @@ -257,7 +257,7 @@ private fun MoreMenu( IconButton(onClick = { expanded = true }) { Icon( imageVector = Icons.Default.MoreVert, - contentDescription = stringResource(id = R.string.label_more), + contentDescription = stringResource(R.string.label_more), ) } DropdownMenu( @@ -292,17 +292,17 @@ private fun FilterPage( .verticalScroll(rememberScrollState()), ) { FilterPageItem( - label = stringResource(id = R.string.action_filter_downloaded), + label = stringResource(R.string.action_filter_downloaded), state = downloadFilter, onClick = onDownloadFilterChanged, ) FilterPageItem( - label = stringResource(id = R.string.action_filter_unread), + label = stringResource(R.string.action_filter_unread), state = unreadFilter, onClick = onUnreadFilterChanged, ) FilterPageItem( - label = stringResource(id = R.string.action_filter_bookmarked), + label = stringResource(R.string.action_filter_bookmarked), state = bookmarkedFilter, onClick = onBookmarkedFilterChanged, ) @@ -372,17 +372,17 @@ private fun SortPage( } SortPageItem( - label = stringResource(id = R.string.sort_by_source), + label = stringResource(R.string.sort_by_source), statusIcon = arrowIcon.takeIf { sortingMode == Manga.CHAPTER_SORTING_SOURCE }, onClick = { onItemSelected(Manga.CHAPTER_SORTING_SOURCE) }, ) SortPageItem( - label = stringResource(id = R.string.sort_by_number), + label = stringResource(R.string.sort_by_number), statusIcon = arrowIcon.takeIf { sortingMode == Manga.CHAPTER_SORTING_NUMBER }, onClick = { onItemSelected(Manga.CHAPTER_SORTING_NUMBER) }, ) SortPageItem( - label = stringResource(id = R.string.sort_by_upload_date), + label = stringResource(R.string.sort_by_upload_date), statusIcon = arrowIcon.takeIf { sortingMode == Manga.CHAPTER_SORTING_UPLOAD_DATE }, onClick = { onItemSelected(Manga.CHAPTER_SORTING_UPLOAD_DATE) }, ) @@ -432,12 +432,12 @@ private fun DisplayPage( .verticalScroll(rememberScrollState()), ) { DisplayPageItem( - label = stringResource(id = R.string.show_title), + label = stringResource(R.string.show_title), selected = displayMode == Manga.CHAPTER_DISPLAY_NAME, onClick = { onItemSelected(Manga.CHAPTER_DISPLAY_NAME) }, ) DisplayPageItem( - label = stringResource(id = R.string.show_chapter_number), + label = stringResource(R.string.show_chapter_number), selected = displayMode == Manga.CHAPTER_DISPLAY_NUMBER, onClick = { onItemSelected(Manga.CHAPTER_DISPLAY_NUMBER) }, ) diff --git a/app/src/main/java/eu/kanade/presentation/manga/TrackInfoDialogHome.kt b/app/src/main/java/eu/kanade/presentation/manga/TrackInfoDialogHome.kt index 62eda377c0..cc4de8c65e 100644 --- a/app/src/main/java/eu/kanade/presentation/manga/TrackInfoDialogHome.kt +++ b/app/src/main/java/eu/kanade/presentation/manga/TrackInfoDialogHome.kt @@ -1,9 +1,6 @@ package eu.kanade.presentation.manga -import androidx.annotation.ColorInt -import androidx.annotation.DrawableRes import androidx.compose.animation.animateContentSize -import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement @@ -15,15 +12,12 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.wrapContentSize import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.Delete import androidx.compose.material.icons.filled.MoreVert -import androidx.compose.material.icons.filled.OpenInBrowser import androidx.compose.material3.DropdownMenuItem import androidx.compose.material3.Icon import androidx.compose.material3.IconButton @@ -39,15 +33,15 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.alpha import androidx.compose.ui.draw.clip -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import eu.kanade.presentation.components.Divider import eu.kanade.presentation.components.DropdownMenu +import eu.kanade.presentation.components.TrackLogoIcon import eu.kanade.presentation.components.VerticalDivider import eu.kanade.tachiyomi.R +import eu.kanade.tachiyomi.data.track.TrackService import eu.kanade.tachiyomi.ui.manga.track.TrackItem import java.text.DateFormat @@ -82,8 +76,7 @@ fun TrackInfoDialogHome( val supportsReadingDates = item.service.supportsReadingDates TrackInfoItem( title = item.track.title, - logoRes = item.service.getLogo(), - logoColor = item.service.getLogoColor(), + service = item.service, status = item.service.getStatus(item.track.status), onStatusClick = { onStatusClick(item) }, chapters = "${item.track.last_chapter_read.toInt()}".let { @@ -114,8 +107,7 @@ fun TrackInfoDialogHome( ) } else { TrackInfoItemEmpty( - logoRes = item.service.getLogo(), - logoColor = item.service.getLogoColor(), + service = item.service, onNewSearch = { onNewSearch(item) }, ) } @@ -126,8 +118,7 @@ fun TrackInfoDialogHome( @Composable private fun TrackInfoItem( title: String, - @DrawableRes logoRes: Int, - @ColorInt logoColor: Int, + service: TrackService, status: String, onStatusClick: () -> Unit, chapters: String, @@ -146,20 +137,7 @@ private fun TrackInfoItem( Row( verticalAlignment = Alignment.CenterVertically, ) { - Box( - modifier = Modifier - .clip(RoundedCornerShape(12.dp)) - .clickable(onClick = onOpenInBrowser) - .size(48.dp) - .background(color = Color(logoColor)) - .padding(4.dp), - contentAlignment = Alignment.Center, - ) { - Image( - painter = painterResource(id = logoRes), - contentDescription = null, - ) - } + TrackLogoIcon(service) Box( modifier = Modifier .height(48.dp) @@ -185,7 +163,7 @@ private fun TrackInfoItem( Box( modifier = Modifier .padding(top = 12.dp) - .clip(RoundedCornerShape(12.dp)) + .clip(MaterialTheme.shapes.medium) .background(MaterialTheme.colorScheme.surface) .padding(8.dp) .clip(RoundedCornerShape(6.dp)), @@ -209,7 +187,7 @@ private fun TrackInfoItem( modifier = Modifier .weight(1f) .alpha(if (score == null) UnsetStatusTextAlpha else 1f), - text = score ?: stringResource(id = R.string.score), + text = score ?: stringResource(R.string.score), onClick = onScoreClick, ) } @@ -219,18 +197,16 @@ private fun TrackInfoItem( Divider() Row(modifier = Modifier.height(IntrinsicSize.Min)) { TrackDetailsItem( - modifier = Modifier - .weight(1F) - .alpha(if (startDate == null) UnsetStatusTextAlpha else 1f), - text = startDate ?: stringResource(id = R.string.track_started_reading_date), + modifier = Modifier.weight(1F), + text = startDate, + placeholder = stringResource(R.string.track_started_reading_date), onClick = onStartDateClick, ) VerticalDivider() TrackDetailsItem( - modifier = Modifier - .weight(1F) - .alpha(if (endDate == null) UnsetStatusTextAlpha else 1f), - text = endDate ?: stringResource(id = R.string.track_finished_reading_date), + modifier = Modifier.weight(1F), + text = endDate, + placeholder = stringResource(R.string.track_finished_reading_date), onClick = onEndDateClick, ) } @@ -243,17 +219,19 @@ private fun TrackInfoItem( @Composable private fun TrackDetailsItem( modifier: Modifier = Modifier, - text: String, + text: String?, + placeholder: String = "", onClick: () -> Unit, ) { Box( modifier = modifier .clickable(onClick = onClick) + .alpha(if (text == null) UnsetStatusTextAlpha else 1f) .padding(12.dp), contentAlignment = Alignment.Center, ) { Text( - text = text, + text = text ?: placeholder, maxLines = 1, style = MaterialTheme.typography.bodyMedium, ) @@ -262,33 +240,20 @@ private fun TrackDetailsItem( @Composable private fun TrackInfoItemEmpty( - @DrawableRes logoRes: Int, - @ColorInt logoColor: Int, + service: TrackService, onNewSearch: () -> Unit, ) { Row( verticalAlignment = Alignment.CenterVertically, ) { - Box( - modifier = Modifier - .clip(RoundedCornerShape(12.dp)) - .size(48.dp) - .background(color = Color(logoColor)) - .padding(4.dp), - contentAlignment = Alignment.Center, - ) { - Image( - painter = painterResource(id = logoRes), - contentDescription = null, - ) - } + TrackLogoIcon(service) TextButton( onClick = onNewSearch, modifier = Modifier .padding(start = 16.dp) .weight(1f), ) { - Text(text = stringResource(id = R.string.add_tracking)) + Text(text = stringResource(R.string.add_tracking)) } } } @@ -303,7 +268,7 @@ private fun TrackInfoItemMenu( IconButton(onClick = { expanded = true }) { Icon( imageVector = Icons.Default.MoreVert, - contentDescription = stringResource(id = R.string.label_more), + contentDescription = stringResource(R.string.label_more), ) } DropdownMenu( @@ -312,9 +277,6 @@ private fun TrackInfoItemMenu( ) { DropdownMenuItem( text = { Text(stringResource(R.string.action_open_in_browser)) }, - leadingIcon = { - Icon(imageVector = Icons.Default.OpenInBrowser, contentDescription = null) - }, onClick = { onOpenInBrowser() expanded = false @@ -322,9 +284,6 @@ private fun TrackInfoItemMenu( ) DropdownMenuItem( text = { Text(stringResource(R.string.action_remove)) }, - leadingIcon = { - Icon(imageVector = Icons.Default.Delete, contentDescription = null) - }, onClick = { onRemoved() expanded = false diff --git a/app/src/main/java/eu/kanade/presentation/manga/TrackInfoDialogSelector.kt b/app/src/main/java/eu/kanade/presentation/manga/TrackInfoDialogSelector.kt index 2e7ccea508..637f5f6719 100644 --- a/app/src/main/java/eu/kanade/presentation/manga/TrackInfoDialogSelector.kt +++ b/app/src/main/java/eu/kanade/presentation/manga/TrackInfoDialogSelector.kt @@ -50,7 +50,7 @@ fun TrackStatusSelector( ) { BaseSelector( contentPadding = contentPadding, - title = stringResource(id = R.string.status), + title = stringResource(R.string.status), content = { val state = rememberLazyListState() ScrollbarLazyColumn(state = state) { @@ -100,7 +100,7 @@ fun TrackChapterSelector( ) { BaseSelector( contentPadding = contentPadding, - title = stringResource(id = R.string.chapters), + title = stringResource(R.string.chapters), content = { WheelTextPicker( modifier = Modifier.align(Alignment.Center), @@ -128,7 +128,7 @@ fun TrackScoreSelector( ) { BaseSelector( contentPadding = contentPadding, - title = stringResource(id = R.string.score), + title = stringResource(R.string.score), content = { WheelTextPicker( modifier = Modifier.align(Alignment.Center), @@ -185,7 +185,7 @@ fun TrackDateSelector( thirdButton = if (onRemove != null) { { TextButton(onClick = onRemove) { - Text(text = stringResource(id = R.string.action_remove)) + Text(text = stringResource(R.string.action_remove)) } } } else { @@ -224,10 +224,10 @@ private fun BaseSelector( Spacer(modifier = Modifier.weight(1f)) } TextButton(onClick = onDismissRequest) { - Text(text = stringResource(id = android.R.string.cancel)) + Text(text = stringResource(android.R.string.cancel)) } TextButton(onClick = onConfirm) { - Text(text = stringResource(id = android.R.string.ok)) + Text(text = stringResource(android.R.string.ok)) } } }, diff --git a/app/src/main/java/eu/kanade/presentation/manga/TrackServiceSearch.kt b/app/src/main/java/eu/kanade/presentation/manga/TrackServiceSearch.kt index eeccdee6da..e055166f01 100644 --- a/app/src/main/java/eu/kanade/presentation/manga/TrackServiceSearch.kt +++ b/app/src/main/java/eu/kanade/presentation/manga/TrackServiceSearch.kt @@ -165,7 +165,7 @@ fun TrackServiceSearch( .fillMaxWidth(), elevation = ButtonDefaults.elevatedButtonElevation(), ) { - Text(text = stringResource(id = R.string.action_track)) + Text(text = stringResource(R.string.action_track)) } } }, @@ -206,7 +206,7 @@ fun TrackServiceSearch( EmptyScreen( modifier = Modifier.padding(innerPadding), message = queryResult.exceptionOrNull()?.message - ?: stringResource(id = R.string.unknown_error), + ?: stringResource(R.string.unknown_error), ) } } @@ -264,19 +264,19 @@ private fun SearchResultItem( ) if (type.isNotBlank()) { SearchResultItemDetails( - title = stringResource(id = R.string.track_type), + title = stringResource(R.string.track_type), text = type, ) } if (startDate.isNotBlank()) { SearchResultItemDetails( - title = stringResource(id = R.string.track_start_date), + title = stringResource(R.string.track_start_date), text = startDate, ) } if (status.isNotBlank()) { SearchResultItemDetails( - title = stringResource(id = R.string.track_status), + title = stringResource(R.string.track_status), text = status, ) } diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/PreferenceItem.kt b/app/src/main/java/eu/kanade/presentation/more/settings/PreferenceItem.kt index 75ef269eec..13fe26a2bc 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/PreferenceItem.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/PreferenceItem.kt @@ -156,9 +156,7 @@ internal fun PreferenceItem( .collectAsState() item.service.run { TrackingPreferenceWidget( - title = item.title, - logoRes = getLogo(), - logoColor = getLogoColor(), + service = this, checked = uName.isNotEmpty(), onClick = { if (isLogged) item.logout() else item.login() }, ) diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/PreferenceModel.kt b/app/src/main/java/eu/kanade/presentation/more/settings/PreferenceModel.kt index ce02384077..16e5e518e4 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/PreferenceModel.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/PreferenceModel.kt @@ -96,7 +96,7 @@ sealed class Preference { v.map { e[it] } .takeIf { it.isNotEmpty() } ?.joinToString() - } ?: stringResource(id = R.string.none) + } ?: stringResource(R.string.none) subtitle?.format(combined) }, override val icon: ImageVector? = null, diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/PreferenceScaffold.kt b/app/src/main/java/eu/kanade/presentation/more/settings/PreferenceScaffold.kt index 6fd4c070b9..a1b9e69ee9 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/PreferenceScaffold.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/PreferenceScaffold.kt @@ -23,7 +23,7 @@ fun PreferenceScaffold( Scaffold( topBar = { TopAppBar( - title = { Text(text = stringResource(id = titleRes)) }, + title = { Text(text = stringResource(titleRes)) }, navigationIcon = { if (onBackPressed != null) { IconButton(onClick = onBackPressed) { diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/widget/InfoWidget.kt b/app/src/main/java/eu/kanade/presentation/more/settings/widget/InfoWidget.kt index c38c163457..6060902ed6 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/widget/InfoWidget.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/widget/InfoWidget.kt @@ -52,7 +52,7 @@ internal fun InfoWidget(text: String) { private fun InfoWidgetPreview() { TachiyomiTheme { Surface { - InfoWidget(text = stringResource(id = R.string.download_ahead_info)) + InfoWidget(text = stringResource(R.string.download_ahead_info)) } } } diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/widget/TrackingPreferenceWidget.kt b/app/src/main/java/eu/kanade/presentation/more/settings/widget/TrackingPreferenceWidget.kt index 7dc1d1a283..5c95eacc6c 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/widget/TrackingPreferenceWidget.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/widget/TrackingPreferenceWidget.kt @@ -1,9 +1,5 @@ package eu.kanade.presentation.more.settings.widget -import androidx.annotation.ColorInt -import androidx.annotation.DrawableRes -import androidx.compose.foundation.Image -import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Row @@ -19,18 +15,17 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color -import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp +import eu.kanade.presentation.components.TrackLogoIcon import eu.kanade.presentation.more.settings.LocalPreferenceHighlighted import eu.kanade.tachiyomi.R +import eu.kanade.tachiyomi.data.track.TrackService @Composable fun TrackingPreferenceWidget( modifier: Modifier = Modifier, - title: String, - @DrawableRes logoRes: Int, - @ColorInt logoColor: Int, + service: TrackService, checked: Boolean, onClick: (() -> Unit)? = null, ) { @@ -43,20 +38,9 @@ fun TrackingPreferenceWidget( .padding(horizontal = PrefsHorizontalPadding, vertical = 8.dp), verticalAlignment = Alignment.CenterVertically, ) { - Box( - modifier = Modifier - .size(48.dp) - .background(color = Color(logoColor), shape = MaterialTheme.shapes.small) - .padding(4.dp), - contentAlignment = Alignment.Center, - ) { - Image( - painter = painterResource(id = logoRes), - contentDescription = null, - ) - } + TrackLogoIcon(service) Text( - text = title, + text = stringResource(service.nameRes()), modifier = Modifier .weight(1f) .padding(horizontal = 16.dp), diff --git a/app/src/main/java/eu/kanade/tachiyomi/source/LocalSource.kt b/app/src/main/java/eu/kanade/tachiyomi/source/LocalSource.kt index d9bbbdd04b..19122761eb 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/source/LocalSource.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/source/LocalSource.kt @@ -244,7 +244,7 @@ class LocalSource( val comicInfo = AndroidXmlReader(stream, StandardCharsets.UTF_8.name()).use { xml.decodeFromReader(it) } - + manga.copyFromComicInfo(comicInfo) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackInfoDialog.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackInfoDialog.kt index aeb81501d5..299bcd1eb3 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackInfoDialog.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackInfoDialog.kt @@ -427,9 +427,9 @@ private data class TrackDateSelectorScreen( TrackDateSelector( contentPadding = LocalNavigatorContentPadding.current, title = if (start) { - stringResource(id = R.string.track_started_reading_date) + stringResource(R.string.track_started_reading_date) } else { - stringResource(id = R.string.track_finished_reading_date) + stringResource(R.string.track_finished_reading_date) }, selection = state.selection, onSelectionChange = sm::setSelection, @@ -509,7 +509,7 @@ private data class TrackDateRemoverScreen( }, title = { Text( - text = stringResource(id = R.string.track_remove_date_conf_title), + text = stringResource(R.string.track_remove_date_conf_title), textAlign = TextAlign.Center, ) }, @@ -517,9 +517,9 @@ private data class TrackDateRemoverScreen( val serviceName = stringResource(sm.getServiceNameRes()) Text( text = if (start) { - stringResource(id = R.string.track_remove_start_date_conf_text, serviceName) + stringResource(R.string.track_remove_start_date_conf_text, serviceName) } else { - stringResource(id = R.string.track_remove_finish_date_conf_text, serviceName) + stringResource(R.string.track_remove_finish_date_conf_text, serviceName) }, ) }, @@ -529,7 +529,7 @@ private data class TrackDateRemoverScreen( horizontalArrangement = Arrangement.spacedBy(8.dp, Alignment.End), ) { TextButton(onClick = navigator::pop) { - Text(text = stringResource(id = android.R.string.cancel)) + Text(text = stringResource(android.R.string.cancel)) } FilledTonalButton( onClick = { sm.removeDate(); navigator.popUntilRoot() }, @@ -538,7 +538,7 @@ private data class TrackDateRemoverScreen( contentColor = MaterialTheme.colorScheme.onErrorContainer, ), ) { - Text(text = stringResource(id = R.string.action_remove)) + Text(text = stringResource(R.string.action_remove)) } } },