diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/AboutScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/AboutScreen.kt index fac76794d..2c2d74765 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/AboutScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/AboutScreen.kt @@ -54,7 +54,7 @@ import java.text.SimpleDateFormat import java.util.Locale import java.util.TimeZone -class AboutScreen : Screen { +object AboutScreen : Screen { @Composable override fun Content() { @@ -205,58 +205,56 @@ class AboutScreen : Screen { } } - companion object { - fun getVersionName(withBuildDate: Boolean): String { - return when { - BuildConfig.DEBUG -> { - "Debug ${BuildConfig.COMMIT_SHA}".let { - if (withBuildDate) { - "$it (${getFormattedBuildTime()})" - } else { - it - } - } - } - // SY --> - isPreviewBuildType -> { - "Preview r$syDebugVersion".let { - if (withBuildDate) { - "$it (${BuildConfig.COMMIT_SHA}, ${getFormattedBuildTime()})" - } else { - "$it (${BuildConfig.COMMIT_SHA})" - } - } - } - // SY <-- - else -> { - "Stable ${BuildConfig.VERSION_NAME}".let { - if (withBuildDate) { - "$it (${getFormattedBuildTime()})" - } else { - it - } + fun getVersionName(withBuildDate: Boolean): String { + return when { + BuildConfig.DEBUG -> { + "Debug ${BuildConfig.COMMIT_SHA}".let { + if (withBuildDate) { + "$it (${getFormattedBuildTime()})" + } else { + it } } } - } - - private fun getFormattedBuildTime(): String { - return try { - val inputDf = SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'", Locale.US) - inputDf.timeZone = TimeZone.getTimeZone("UTC") - val buildTime = inputDf.parse(BuildConfig.BUILD_TIME) - - val outputDf = DateFormat.getDateTimeInstance( - DateFormat.MEDIUM, - DateFormat.SHORT, - Locale.getDefault(), - ) - outputDf.timeZone = TimeZone.getDefault() - - buildTime!!.toDateTimestampString(UiPreferences.dateFormat(Injekt.get().dateFormat().get())) - } catch (e: Exception) { - BuildConfig.BUILD_TIME + // SY --> + isPreviewBuildType -> { + "Preview r$syDebugVersion".let { + if (withBuildDate) { + "$it (${BuildConfig.COMMIT_SHA}, ${getFormattedBuildTime()})" + } else { + "$it (${BuildConfig.COMMIT_SHA})" + } + } + } + // SY <-- + else -> { + "Stable ${BuildConfig.VERSION_NAME}".let { + if (withBuildDate) { + "$it (${getFormattedBuildTime()})" + } else { + it + } + } } } } + + private fun getFormattedBuildTime(): String { + return try { + val inputDf = SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'", Locale.US) + inputDf.timeZone = TimeZone.getTimeZone("UTC") + val buildTime = inputDf.parse(BuildConfig.BUILD_TIME) + + val outputDf = DateFormat.getDateTimeInstance( + DateFormat.MEDIUM, + DateFormat.SHORT, + Locale.getDefault(), + ) + outputDf.timeZone = TimeZone.getDefault() + + buildTime!!.toDateTimestampString(UiPreferences.dateFormat(Injekt.get().dateFormat().get())) + } catch (e: Exception) { + BuildConfig.BUILD_TIME + } + } } diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt index 4c00e6b75..c9ce37649 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt @@ -98,7 +98,7 @@ import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import java.io.File -class SettingsAdvancedScreen : SearchableSettings { +object SettingsAdvancedScreen : SearchableSettings { @ReadOnlyComposable @Composable @StringRes @@ -735,8 +735,6 @@ class SettingsAdvancedScreen : SearchableSettings { ) } - companion object { - private var job: Job? = null - } + private var job: Job? = null // SY <-- } diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen.kt index 9f6dcfc6d..1919afd0e 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen.kt @@ -27,7 +27,7 @@ import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import java.util.Date -class SettingsAppearanceScreen : SearchableSettings { +object SettingsAppearanceScreen : SearchableSettings { @ReadOnlyComposable @Composable diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsBackupScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsBackupScreen.kt index 5b9d417ee..c7989edf5 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsBackupScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsBackupScreen.kt @@ -59,7 +59,7 @@ import kotlinx.coroutines.launch import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get -class SettingsBackupScreen : SearchableSettings { +object SettingsBackupScreen : SearchableSettings { @ReadOnlyComposable @Composable diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsBrowseScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsBrowseScreen.kt index 820133a53..61697a7b0 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsBrowseScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsBrowseScreen.kt @@ -26,7 +26,7 @@ import eu.kanade.tachiyomi.util.system.AuthenticatorUtil.authenticate import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get -class SettingsBrowseScreen : SearchableSettings { +object SettingsBrowseScreen : SearchableSettings { @ReadOnlyComposable @Composable diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDownloadScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDownloadScreen.kt index e5e42b0a0..f42b83eef 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDownloadScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDownloadScreen.kt @@ -32,7 +32,7 @@ import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import java.io.File -class SettingsDownloadScreen : SearchableSettings { +object SettingsDownloadScreen : SearchableSettings { @ReadOnlyComposable @Composable diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsEhScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsEhScreen.kt index 8a31cee9f..acd99b56b 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsEhScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsEhScreen.kt @@ -83,7 +83,7 @@ import kotlin.time.Duration.Companion.milliseconds import kotlin.time.Duration.Companion.minutes import kotlin.time.Duration.Companion.seconds -class SettingsEhScreen : SearchableSettings { +object SettingsEhScreen : SearchableSettings { @ReadOnlyComposable @Composable diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsGeneralScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsGeneralScreen.kt index 12b61a995..f671662bb 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsGeneralScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsGeneralScreen.kt @@ -27,7 +27,7 @@ import org.xmlpull.v1.XmlPullParser import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get -class SettingsGeneralScreen : SearchableSettings { +object SettingsGeneralScreen : SearchableSettings { @Composable @ReadOnlyComposable diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsLibraryScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsLibraryScreen.kt index cb3a4a3a2..4ea09cedf 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsLibraryScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsLibraryScreen.kt @@ -64,7 +64,7 @@ import kotlinx.coroutines.runBlocking import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get -class SettingsLibraryScreen : SearchableSettings { +object SettingsLibraryScreen : SearchableSettings { @Composable @ReadOnlyComposable diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsMainScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsMainScreen.kt index e1054a0c3..ffdf1bbc1 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsMainScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsMainScreen.kt @@ -181,98 +181,98 @@ object SettingsMainScreen : Screen { private fun Navigator.navigate(screen: Screen, twoPane: Boolean) { if (twoPane) replaceAll(screen) else push(screen) } + + private data class Item( + @StringRes val titleRes: Int, + @StringRes val subtitleRes: Int, + val formatSubtitle: @Composable () -> String = { stringResource(subtitleRes) }, + val icon: ImageVector, + val screen: Screen, + ) + + private val items = listOf( + Item( + titleRes = R.string.pref_category_general, + subtitleRes = R.string.pref_general_summary, + icon = Icons.Outlined.Tune, + screen = SettingsGeneralScreen, + ), + Item( + titleRes = R.string.pref_category_appearance, + subtitleRes = R.string.pref_appearance_summary, + icon = Icons.Outlined.Palette, + screen = SettingsAppearanceScreen, + ), + Item( + titleRes = R.string.pref_category_library, + subtitleRes = R.string.pref_library_summary, + icon = Icons.Outlined.CollectionsBookmark, + screen = SettingsLibraryScreen, + ), + Item( + titleRes = R.string.pref_category_reader, + subtitleRes = R.string.pref_reader_summary, + icon = Icons.Outlined.ChromeReaderMode, + screen = SettingsReaderScreen, + ), + Item( + titleRes = R.string.pref_category_downloads, + subtitleRes = R.string.pref_downloads_summary, + icon = Icons.Outlined.GetApp, + screen = SettingsDownloadScreen, + ), + Item( + titleRes = R.string.pref_category_tracking, + subtitleRes = R.string.pref_tracking_summary, + icon = Icons.Outlined.Sync, + screen = SettingsTrackingScreen, + ), + Item( + titleRes = R.string.browse, + subtitleRes = R.string.pref_browse_summary, + icon = Icons.Outlined.Explore, + screen = SettingsBrowseScreen, + ), + Item( + titleRes = R.string.label_backup, + subtitleRes = R.string.pref_backup_summary, + icon = Icons.Outlined.SettingsBackupRestore, + screen = SettingsBackupScreen, + ), + Item( + titleRes = R.string.pref_category_security, + subtitleRes = R.string.pref_security_summary, + icon = Icons.Outlined.Security, + screen = SettingsSecurityScreen, + ), + // SY --> + Item( + titleRes = R.string.pref_category_eh, + subtitleRes = R.string.pref_ehentai_summary, + icon = EhAssets.EhLogo, + screen = SettingsEhScreen, + ), + Item( + titleRes = R.string.pref_category_mangadex, + subtitleRes = R.string.pref_mangadex_summary, + icon = EhAssets.MangadexLogo, + screen = SettingsMangadexScreen, + ), + // SY <-- + Item( + titleRes = R.string.pref_category_advanced, + subtitleRes = R.string.pref_advanced_summary, + icon = Icons.Outlined.Code, + screen = SettingsAdvancedScreen, + ), + Item( + titleRes = R.string.pref_category_about, + subtitleRes = 0, + formatSubtitle = { + "${stringResource(R.string.app_name)} ${AboutScreen.getVersionName(withBuildDate = false)}" + }, + icon = Icons.Outlined.Info, + screen = AboutScreen, + ), + ) } - -private data class Item( - @StringRes val titleRes: Int, - @StringRes val subtitleRes: Int, - val formatSubtitle: @Composable () -> String = { stringResource(subtitleRes) }, - val icon: ImageVector, - val screen: Screen, -) - -private val items = listOf( - Item( - titleRes = R.string.pref_category_general, - subtitleRes = R.string.pref_general_summary, - icon = Icons.Outlined.Tune, - screen = SettingsGeneralScreen(), - ), - Item( - titleRes = R.string.pref_category_appearance, - subtitleRes = R.string.pref_appearance_summary, - icon = Icons.Outlined.Palette, - screen = SettingsAppearanceScreen(), - ), - Item( - titleRes = R.string.pref_category_library, - subtitleRes = R.string.pref_library_summary, - icon = Icons.Outlined.CollectionsBookmark, - screen = SettingsLibraryScreen(), - ), - Item( - titleRes = R.string.pref_category_reader, - subtitleRes = R.string.pref_reader_summary, - icon = Icons.Outlined.ChromeReaderMode, - screen = SettingsReaderScreen(), - ), - Item( - titleRes = R.string.pref_category_downloads, - subtitleRes = R.string.pref_downloads_summary, - icon = Icons.Outlined.GetApp, - screen = SettingsDownloadScreen(), - ), - Item( - titleRes = R.string.pref_category_tracking, - subtitleRes = R.string.pref_tracking_summary, - icon = Icons.Outlined.Sync, - screen = SettingsTrackingScreen(), - ), - Item( - titleRes = R.string.browse, - subtitleRes = R.string.pref_browse_summary, - icon = Icons.Outlined.Explore, - screen = SettingsBrowseScreen(), - ), - Item( - titleRes = R.string.label_backup, - subtitleRes = R.string.pref_backup_summary, - icon = Icons.Outlined.SettingsBackupRestore, - screen = SettingsBackupScreen(), - ), - Item( - titleRes = R.string.pref_category_security, - subtitleRes = R.string.pref_security_summary, - icon = Icons.Outlined.Security, - screen = SettingsSecurityScreen(), - ), - // SY --> - Item( - titleRes = R.string.pref_category_eh, - subtitleRes = R.string.pref_ehentai_summary, - icon = EhAssets.EhLogo, - screen = SettingsEhScreen(), - ), - Item( - titleRes = R.string.pref_category_mangadex, - subtitleRes = R.string.pref_mangadex_summary, - icon = EhAssets.MangadexLogo, - screen = SettingsMangadexScreen(), - ), - // SY <-- - Item( - titleRes = R.string.pref_category_advanced, - subtitleRes = R.string.pref_advanced_summary, - icon = Icons.Outlined.Code, - screen = SettingsAdvancedScreen(), - ), - Item( - titleRes = R.string.pref_category_about, - subtitleRes = 0, - formatSubtitle = { - "${stringResource(R.string.app_name)} ${AboutScreen.getVersionName(withBuildDate = false)}" - }, - icon = Icons.Outlined.Info, - screen = AboutScreen(), - ), -) diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsMangadexScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsMangadexScreen.kt index 823182500..168763008 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsMangadexScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsMangadexScreen.kt @@ -58,7 +58,7 @@ import logcat.LogPriority import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get -class SettingsMangadexScreen : SearchableSettings { +object SettingsMangadexScreen : SearchableSettings { @ReadOnlyComposable @Composable diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt index 470c9a7d0..c0e6793fe 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt @@ -23,7 +23,7 @@ import eu.kanade.tachiyomi.util.system.isReleaseBuildType import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get -class SettingsReaderScreen : SearchableSettings { +object SettingsReaderScreen : SearchableSettings { @ReadOnlyComposable @Composable diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsSearchScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsSearchScreen.kt index 7896586a1..bd46ddfd2 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsSearchScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsSearchScreen.kt @@ -285,20 +285,20 @@ private fun getLocalizedBreadcrumb(path: String, node: String?): String { } private val settingScreens = listOf( - SettingsGeneralScreen(), - SettingsAppearanceScreen(), - SettingsLibraryScreen(), - SettingsReaderScreen(), - SettingsDownloadScreen(), - SettingsTrackingScreen(), - SettingsBrowseScreen(), - SettingsBackupScreen(), - SettingsSecurityScreen(), + SettingsGeneralScreen, + SettingsAppearanceScreen, + SettingsLibraryScreen, + SettingsReaderScreen, + SettingsDownloadScreen, + SettingsTrackingScreen, + SettingsBrowseScreen, + SettingsBackupScreen, + SettingsSecurityScreen, // SY --> - SettingsEhScreen(), - SettingsMangadexScreen(), + SettingsEhScreen, + SettingsMangadexScreen, // SY <-- - SettingsAdvancedScreen(), + SettingsAdvancedScreen, ) private data class SettingsData( diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsSecurityScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsSecurityScreen.kt index 496b09629..5b06f3b97 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsSecurityScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsSecurityScreen.kt @@ -40,7 +40,7 @@ import eu.kanade.tachiyomi.util.system.AuthenticatorUtil.isAuthenticationSupport import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get -class SettingsSecurityScreen : SearchableSettings { +object SettingsSecurityScreen : SearchableSettings { @ReadOnlyComposable @Composable diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsTrackingScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsTrackingScreen.kt index ba04de027..a94ce45c4 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsTrackingScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsTrackingScreen.kt @@ -59,7 +59,7 @@ import eu.kanade.tachiyomi.util.system.toast import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get -class SettingsTrackingScreen : SearchableSettings { +object SettingsTrackingScreen : SearchableSettings { @ReadOnlyComposable @Composable diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsMainController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsMainController.kt index b9ac2e98a..18fbfbbc7 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsMainController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsMainController.kt @@ -45,9 +45,9 @@ class SettingsMainController(bundle: Bundle = bundleOf()) : BasicFullComposeCont if (!isTabletUi) { Navigator( screen = if (toBackupScreen) { - SettingsBackupScreen() + SettingsBackupScreen } else if (toAboutScreen) { - AboutScreen() + AboutScreen } else { SettingsMainScreen }, @@ -63,11 +63,11 @@ class SettingsMainController(bundle: Bundle = bundleOf()) : BasicFullComposeCont } else { Navigator( screen = if (toBackupScreen) { - SettingsBackupScreen() + SettingsBackupScreen } else if (toAboutScreen) { - AboutScreen() + AboutScreen } else { - SettingsGeneralScreen() + SettingsGeneralScreen }, ) { TwoPanelBox(