From 33c62ab711aeb3a3b558e58da421cacf56848f3c Mon Sep 17 00:00:00 2001 From: arkon Date: Thu, 11 Jan 2024 18:53:47 -0500 Subject: [PATCH 01/28] Clean up some unnecessary bits - Remove analytics/crash reporting - Remove app update check - Remove F-Droid warning - Remove Discord references --- CODE_OF_CONDUCT.md | 3 +- CONTRIBUTING.md | 2 +- README.md | 10 ++- app/build.gradle.kts | 11 --- app/proguard-rules.pro | 4 -- app/src/main/AndroidManifest.xml | 10 --- .../eu/kanade/domain/base/BasePreferences.kt | 4 -- .../eu/kanade/presentation/more/MoreScreen.kt | 11 +-- .../settings/screen/SettingsAdvancedScreen.kt | 7 -- .../more/settings/screen/about/AboutScreen.kt | 67 ------------------ app/src/main/java/eu/kanade/tachiyomi/App.kt | 31 --------- .../kanade/tachiyomi/ui/main/MainActivity.kt | 24 ------- app/src/standard/google-services.json | 69 ------------------- build.gradle.kts | 1 - gradle/libs.versions.toml | 7 -- .../commonMain/resources/MR/base/strings.xml | 2 +- .../commonMain/resources/MR/bg/strings.xml | 2 +- .../commonMain/resources/MR/ca/strings.xml | 2 +- .../commonMain/resources/MR/cs/strings.xml | 2 +- .../commonMain/resources/MR/de/strings.xml | 2 +- .../commonMain/resources/MR/el/strings.xml | 2 +- .../commonMain/resources/MR/es/strings.xml | 2 +- .../commonMain/resources/MR/fil/strings.xml | 2 +- .../commonMain/resources/MR/fr/strings.xml | 2 +- .../commonMain/resources/MR/gl/strings.xml | 2 +- .../commonMain/resources/MR/hr/strings.xml | 2 +- .../commonMain/resources/MR/hu/strings.xml | 2 +- .../commonMain/resources/MR/in/strings.xml | 2 +- .../commonMain/resources/MR/it/strings.xml | 2 +- .../commonMain/resources/MR/ja/strings.xml | 2 +- .../commonMain/resources/MR/kk/strings.xml | 2 +- .../commonMain/resources/MR/ko/strings.xml | 2 +- .../commonMain/resources/MR/lt/strings.xml | 2 +- .../commonMain/resources/MR/lv/strings.xml | 2 +- .../commonMain/resources/MR/ms/strings.xml | 2 +- .../resources/MR/nb-rNO/strings.xml | 2 +- .../commonMain/resources/MR/nl/strings.xml | 2 +- .../commonMain/resources/MR/pl/strings.xml | 2 +- .../resources/MR/pt-rBR/strings.xml | 2 +- .../commonMain/resources/MR/pt/strings.xml | 2 +- .../commonMain/resources/MR/ro/strings.xml | 2 +- .../commonMain/resources/MR/ru/strings.xml | 2 +- .../commonMain/resources/MR/sc/strings.xml | 2 +- .../commonMain/resources/MR/sq/strings.xml | 2 +- .../commonMain/resources/MR/sr/strings.xml | 2 +- .../commonMain/resources/MR/sv/strings.xml | 2 +- .../commonMain/resources/MR/tr/strings.xml | 2 +- .../commonMain/resources/MR/uk/strings.xml | 2 +- .../commonMain/resources/MR/vi/strings.xml | 2 +- .../resources/MR/zh-rTW/strings.xml | 2 +- 50 files changed, 42 insertions(+), 289 deletions(-) delete mode 100644 app/src/standard/google-services.json diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index c0001e988..c6862fe8a 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -59,8 +59,7 @@ representative at an online or offline event. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community moderators responsible for enforcement at -the [Tachiyomi Discord server](https://discord.gg/tachiyomi). +reported to the community moderators via issues. All complaints will be reviewed and investigated promptly and fairly. All community moderators are obligated to respect the privacy and security of the diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 81e69f498..3396be076 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -30,7 +30,7 @@ To auto-fix some linting errors, run the `ktlintFormat` Gradle task. ## Getting help -- Join [the Discord server](https://discord.gg/tachiyomi) for online help and to ask questions while developing. +No support is currently provided. # Translations diff --git a/README.md b/README.md index 2f73bb170..f6a1f95a5 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -| Build | Stable | Weekly Preview | Contribute | Support Server | -|-------|----------|---------|------------|---------| -| [![CI](https://github.com/tachiyomiorg/tachiyomi/actions/workflows/build_push.yml/badge.svg)](https://github.com/tachiyomiorg/tachiyomi/actions/workflows/build_push.yml) | [![stable release](https://img.shields.io/github/release/tachiyomiorg/tachiyomi.svg?maxAge=3600&label=download)](https://github.com/tachiyomiorg/tachiyomi/releases) | [![latest preview build](https://img.shields.io/github/v/release/tachiyomiorg/tachiyomi-preview.svg?maxAge=3600&label=download)](https://github.com/tachiyomiorg/tachiyomi-preview/releases) | [![Translation status](https://hosted.weblate.org/widgets/tachiyomi/-/svg-badge.svg)](https://hosted.weblate.org/engage/tachiyomi/?utm_source=widget) | [![Discord](https://img.shields.io/discord/349436576037732353.svg?label=discord&labelColor=7289da&color=2c2f33&style=flat)](https://discord.gg/tachiyomi) | +| Build | Stable | Weekly Preview | Contribute | +|-------|--------|----------------|------------| +| [![CI](https://github.com/tachiyomiorg/tachiyomi/actions/workflows/build_push.yml/badge.svg)](https://github.com/tachiyomiorg/tachiyomi/actions/workflows/build_push.yml) | [![stable release](https://img.shields.io/github/release/tachiyomiorg/tachiyomi.svg?maxAge=3600&label=download)](https://github.com/tachiyomiorg/tachiyomi/releases) | [![latest preview build](https://img.shields.io/github/v/release/tachiyomiorg/tachiyomi-preview.svg?maxAge=3600&label=download)](https://github.com/tachiyomiorg/tachiyomi-preview/releases) | [![Translation status](https://hosted.weblate.org/widgets/tachiyomi/-/svg-badge.svg)](https://hosted.weblate.org/engage/tachiyomi/?utm_source=widget) | # ![app icon](./.github/readme-images/app-icon.png)Tachiyomi Tachiyomi is a free and open source manga reader for Android 6.0 and above. @@ -28,8 +28,7 @@ Please make sure to read the full guidelines. Your issue may be closed without w
Issues -1. **Before reporting a new issue, take a look at the [FAQ](https://tachiyomi.org/docs/faq/general), the [changelog](https://tachiyomi.org/changelogs/) and the already opened [issues](https://github.com/tachiyomiorg/tachiyomi/issues).** -2. If you are unsure, ask here: [![Discord](https://img.shields.io/discord/349436576037732353.svg)](https://discord.gg/tachiyomi) +**Before reporting a new issue, take a look at the [FAQ](https://tachiyomi.org/docs/faq/general), the [changelog](https://tachiyomi.org/changelogs/) and the already opened [issues](https://github.com/tachiyomiorg/tachiyomi/issues).**
@@ -70,7 +69,6 @@ See [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md). ## FAQ [See our website.](https://tachiyomi.org/) -You can also reach out to us on [Discord](https://discord.gg/tachiyomi). ## License diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 2b2cbbaab..5f0b76cc5 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -8,10 +8,6 @@ plugins { id("com.github.zellius.shortcut-helper") } -if (gradle.startParameter.taskRequests.toString().contains("Standard")) { - apply() -} - shortcutHelper.setFilePath("./shortcuts.xml") val SUPPORTED_ABIS = setOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64") @@ -31,9 +27,6 @@ android { buildConfigField("boolean", "INCLUDE_UPDATER", "false") buildConfigField("boolean", "PREVIEW", "false") - // Please disable ACRA or use your own instance in forked versions of the project - buildConfigField("String", "ACRA_URI", "\"https://tachiyomi.kanade.eu/crash_report\"") - ndk { abiFilters += SUPPORTED_ABIS } @@ -245,10 +238,6 @@ dependencies { // Logging implementation(libs.logcat) - // Crash reports/analytics - implementation(libs.bundles.acra) - "standardImplementation"(libs.firebase.analytics) - // Shizuku implementation(libs.bundles.shizuku) diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 42bd63faf..f3538e0fd 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -71,7 +71,3 @@ # XmlUtil -keep public enum nl.adaptivity.xmlutil.EventType { *; } - -# Firebase --keep class com.google.firebase.installations.** { *; } --keep interface com.google.firebase.installations.** { *; } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 30805627c..f73e2e706 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -33,11 +33,6 @@ - - - - - - diff --git a/app/src/main/java/eu/kanade/domain/base/BasePreferences.kt b/app/src/main/java/eu/kanade/domain/base/BasePreferences.kt index 24ad9a1b7..d52a3899c 100644 --- a/app/src/main/java/eu/kanade/domain/base/BasePreferences.kt +++ b/app/src/main/java/eu/kanade/domain/base/BasePreferences.kt @@ -2,8 +2,6 @@ package eu.kanade.domain.base import android.content.Context import dev.icerock.moko.resources.StringResource -import eu.kanade.tachiyomi.util.system.isPreviewBuildType -import eu.kanade.tachiyomi.util.system.isReleaseBuildType import tachiyomi.core.preference.Preference import tachiyomi.core.preference.PreferenceStore import tachiyomi.i18n.MR @@ -22,8 +20,6 @@ class BasePreferences( fun extensionInstaller() = ExtensionInstallerPreference(context, preferenceStore) - fun acraEnabled() = preferenceStore.getBoolean("acra.enable", isPreviewBuildType || isReleaseBuildType) - fun shownOnboardingFlow() = preferenceStore.getBoolean(Preference.appStateKey("onboarding_complete"), false) enum class ExtensionInstaller(val titleRes: StringResource, val requiresSystemPermission: Boolean) { diff --git a/app/src/main/java/eu/kanade/presentation/more/MoreScreen.kt b/app/src/main/java/eu/kanade/presentation/more/MoreScreen.kt index 8a3b1f9fe..974804db1 100644 --- a/app/src/main/java/eu/kanade/presentation/more/MoreScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/MoreScreen.kt @@ -1,6 +1,5 @@ package eu.kanade.presentation.more -import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.WindowInsetsSides @@ -23,7 +22,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.res.vectorResource -import eu.kanade.presentation.components.WarningBanner import eu.kanade.presentation.more.settings.widget.SwitchPreferenceWidget import eu.kanade.presentation.more.settings.widget.TextPreferenceWidget import eu.kanade.tachiyomi.R @@ -60,14 +58,7 @@ fun MoreScreen( ), ) { if (isFDroid) { - WarningBanner( - textRes = MR.strings.fdroid_warning, - modifier = Modifier.clickable { - uriHandler.openUri( - "https://tachiyomi.org/docs/faq/general#how-do-i-update-from-the-f-droid-builds", - ) - }, - ) + // Don't really care about slow updaters now } } }, 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 4b8f2b9d7..ee9fd485d 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 @@ -48,7 +48,6 @@ import eu.kanade.tachiyomi.ui.more.OnboardingScreen import eu.kanade.tachiyomi.util.CrashLogUtil import eu.kanade.tachiyomi.util.system.isDevFlavor import eu.kanade.tachiyomi.util.system.isPreviewBuildType -import eu.kanade.tachiyomi.util.system.isReleaseBuildType import eu.kanade.tachiyomi.util.system.isShizukuInstalled import eu.kanade.tachiyomi.util.system.powerManager import eu.kanade.tachiyomi.util.system.setDefaultSettings @@ -88,12 +87,6 @@ object SettingsAdvancedScreen : SearchableSettings { return buildList { addAll( listOf( - Preference.PreferenceItem.SwitchPreference( - pref = basePreferences.acraEnabled(), - title = stringResource(MR.strings.pref_enable_acra), - subtitle = stringResource(MR.strings.pref_acra_summary), - enabled = isPreviewBuildType || isReleaseBuildType, - ), Preference.PreferenceItem.TextPreference( title = stringResource(MR.strings.pref_dump_crash_logs), subtitle = stringResource(MR.strings.pref_dump_crash_logs_summary), diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/about/AboutScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/about/AboutScreen.kt index 9bb5ae523..aadd1ecf3 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/about/AboutScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/about/AboutScreen.kt @@ -1,15 +1,12 @@ package eu.kanade.presentation.more.settings.screen.about import android.content.Context -import androidx.compose.animation.AnimatedVisibility import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.Public -import androidx.compose.material3.CircularProgressIndicator import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf @@ -30,13 +27,10 @@ import eu.kanade.presentation.util.LocalBackPress import eu.kanade.presentation.util.Screen import eu.kanade.tachiyomi.BuildConfig import eu.kanade.tachiyomi.data.updater.AppUpdateChecker -import eu.kanade.tachiyomi.data.updater.RELEASE_URL -import eu.kanade.tachiyomi.ui.more.NewUpdateScreen import eu.kanade.tachiyomi.util.CrashLogUtil import eu.kanade.tachiyomi.util.lang.toDateTimestampString import eu.kanade.tachiyomi.util.system.copyToClipboard import eu.kanade.tachiyomi.util.system.toast -import kotlinx.coroutines.launch import logcat.LogPriority import tachiyomi.core.util.lang.withIOContext import tachiyomi.core.util.lang.withUIContext @@ -48,7 +42,6 @@ import tachiyomi.presentation.core.components.ScrollbarLazyColumn import tachiyomi.presentation.core.components.material.Scaffold import tachiyomi.presentation.core.i18n.stringResource import tachiyomi.presentation.core.icons.CustomIcons -import tachiyomi.presentation.core.icons.Discord import tachiyomi.presentation.core.icons.Facebook import tachiyomi.presentation.core.icons.Github import tachiyomi.presentation.core.icons.Reddit @@ -98,61 +91,6 @@ object AboutScreen : Screen() { ) } - if (BuildConfig.INCLUDE_UPDATER) { - item { - TextPreferenceWidget( - title = stringResource(MR.strings.check_for_updates), - widget = { - AnimatedVisibility(visible = isCheckingUpdates) { - CircularProgressIndicator( - modifier = Modifier.size(28.dp), - strokeWidth = 3.dp, - ) - } - }, - onPreferenceClick = { - if (!isCheckingUpdates) { - scope.launch { - isCheckingUpdates = true - - checkVersion( - context = context, - onAvailableUpdate = { result -> - val updateScreen = NewUpdateScreen( - versionName = result.release.version, - changelogInfo = result.release.info, - releaseLink = result.release.releaseLink, - downloadLink = result.release.getDownloadLink(), - ) - navigator.push(updateScreen) - }, - onFinish = { - isCheckingUpdates = false - }, - ) - } - } - }, - ) - } - } - - if (!BuildConfig.DEBUG) { - item { - TextPreferenceWidget( - title = stringResource(MR.strings.whats_new), - onPreferenceClick = { uriHandler.openUri(RELEASE_URL) }, - ) - } - } - - item { - TextPreferenceWidget( - title = stringResource(MR.strings.help_translate), - onPreferenceClick = { uriHandler.openUri("https://tachiyomi.org/docs/contribute#translation") }, - ) - } - item { TextPreferenceWidget( title = stringResource(MR.strings.licenses), @@ -179,11 +117,6 @@ object AboutScreen : Screen() { icon = Icons.Outlined.Public, url = "https://tachiyomi.org", ) - LinkIcon( - label = "Discord", - icon = CustomIcons.Discord, - url = "https://discord.gg/tachiyomi", - ) LinkIcon( label = "X", icon = CustomIcons.X, diff --git a/app/src/main/java/eu/kanade/tachiyomi/App.kt b/app/src/main/java/eu/kanade/tachiyomi/App.kt index f155c5bb9..a16be7e68 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/App.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/App.kt @@ -3,7 +3,6 @@ package eu.kanade.tachiyomi import android.annotation.SuppressLint import android.app.Application import android.app.PendingIntent -import android.app.job.JobInfo import android.content.BroadcastReceiver import android.content.Context import android.content.Intent @@ -42,8 +41,6 @@ import eu.kanade.tachiyomi.util.system.DeviceUtil import eu.kanade.tachiyomi.util.system.WebViewUtil import eu.kanade.tachiyomi.util.system.animatorDurationScale import eu.kanade.tachiyomi.util.system.cancelNotification -import eu.kanade.tachiyomi.util.system.isPreviewBuildType -import eu.kanade.tachiyomi.util.system.isReleaseBuildType import eu.kanade.tachiyomi.util.system.notify import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.launchIn @@ -51,13 +48,8 @@ import kotlinx.coroutines.flow.onEach import logcat.AndroidLogcatLogger import logcat.LogPriority import logcat.LogcatLogger -import org.acra.config.httpSender -import org.acra.config.scheduler -import org.acra.ktx.initAcra -import org.acra.sender.HttpSender import org.conscrypt.Conscrypt import tachiyomi.core.i18n.stringResource -import tachiyomi.core.preference.Preference import tachiyomi.core.util.system.logcat import tachiyomi.i18n.MR import tachiyomi.presentation.widget.WidgetManager @@ -94,7 +86,6 @@ class App : Application(), DefaultLifecycleObserver, ImageLoaderFactory { Injekt.importModule(AppModule(this)) Injekt.importModule(DomainModule()) - setupAcra() setupNotificationChannels() ProcessLifecycleOwner.get().lifecycle.addObserver(this) @@ -198,28 +189,6 @@ class App : Application(), DefaultLifecycleObserver, ImageLoaderFactory { return super.getPackageName() } - private fun setupAcra() { - if (isPreviewBuildType || isReleaseBuildType) { - initAcra { - buildConfigClass = BuildConfig::class.java - excludeMatchingSharedPreferencesKeys = listOf( - Preference.privateKey(".*"), ".*username.*", ".*password.*", ".*token.*", - ) - - httpSender { - uri = BuildConfig.ACRA_URI - httpMethod = HttpSender.Method.PUT - } - - scheduler { - requiresBatteryNotLow = true - requiresDeviceIdle = true - requiresNetworkType = JobInfo.NETWORK_TYPE_UNMETERED - } - } - } - } - private fun setupNotificationChannels() { try { Notifications.createChannels(this) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt index 3b5fe77d9..6d1536003 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt @@ -65,7 +65,6 @@ import eu.kanade.tachiyomi.Migrations import eu.kanade.tachiyomi.data.cache.ChapterCache import eu.kanade.tachiyomi.data.download.DownloadCache import eu.kanade.tachiyomi.data.notification.NotificationReceiver -import eu.kanade.tachiyomi.data.updater.AppUpdateChecker import eu.kanade.tachiyomi.data.updater.RELEASE_URL import eu.kanade.tachiyomi.extension.api.ExtensionApi import eu.kanade.tachiyomi.ui.base.activity.BaseActivity @@ -74,7 +73,6 @@ import eu.kanade.tachiyomi.ui.browse.source.globalsearch.GlobalSearchScreen import eu.kanade.tachiyomi.ui.deeplink.DeepLinkScreen import eu.kanade.tachiyomi.ui.home.HomeScreen import eu.kanade.tachiyomi.ui.manga.MangaScreen -import eu.kanade.tachiyomi.ui.more.NewUpdateScreen import eu.kanade.tachiyomi.ui.more.OnboardingScreen import eu.kanade.tachiyomi.util.system.dpToPx import eu.kanade.tachiyomi.util.system.isNavigationBarNeedsScrim @@ -93,7 +91,6 @@ import tachiyomi.core.Constants import tachiyomi.core.util.lang.launchIO import tachiyomi.core.util.system.logcat import tachiyomi.domain.library.service.LibraryPreferences -import tachiyomi.domain.release.interactor.GetApplicationRelease import tachiyomi.i18n.MR import tachiyomi.presentation.core.components.material.Scaffold import tachiyomi.presentation.core.i18n.stringResource @@ -314,27 +311,6 @@ class MainActivity : BaseActivity() { @Composable private fun CheckForUpdates() { val context = LocalContext.current - val navigator = LocalNavigator.currentOrThrow - - // App updates - LaunchedEffect(Unit) { - if (BuildConfig.INCLUDE_UPDATER) { - try { - val result = AppUpdateChecker().checkForUpdate(context) - if (result is GetApplicationRelease.Result.NewUpdate) { - val updateScreen = NewUpdateScreen( - versionName = result.release.version, - changelogInfo = result.release.info, - releaseLink = result.release.releaseLink, - downloadLink = result.release.getDownloadLink(), - ) - navigator.push(updateScreen) - } - } catch (e: Exception) { - logcat(LogPriority.ERROR, e) - } - } - } // Extensions updates LaunchedEffect(Unit) { diff --git a/app/src/standard/google-services.json b/app/src/standard/google-services.json deleted file mode 100644 index 2651287a2..000000000 --- a/app/src/standard/google-services.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "project_info": { - "project_number": "777921915939", - "firebase_url": "https://tachiyomi-47364.firebaseio.com", - "project_id": "tachiyomi-47364", - "storage_bucket": "tachiyomi-47364.appspot.com" - }, - "client": [ - { - "client_info": { - "mobilesdk_app_id": "1:777921915939:android:36544cd2d96c50c7", - "android_client_info": { - "package_name": "eu.kanade.tachiyomi" - } - }, - "oauth_client": [ - { - "client_id": "777921915939-9q25jvgbdtpk91daqlk7sa1cbdcg77o6.apps.googleusercontent.com", - "client_type": 3 - } - ], - "api_key": [ - { - "current_key": "AIzaSyAHr8RxyeiSPC_MxJTnivz-hmdo5oX0QQQ" - } - ], - "services": { - "appinvite_service": { - "other_platform_oauth_client": [ - { - "client_id": "777921915939-9q25jvgbdtpk91daqlk7sa1cbdcg77o6.apps.googleusercontent.com", - "client_type": 3 - } - ] - } - } - }, - { - "client_info": { - "mobilesdk_app_id": "1:777921915939:android:564fdc1d62efd1de", - "android_client_info": { - "package_name": "eu.kanade.tachiyomi.debug" - } - }, - "oauth_client": [ - { - "client_id": "777921915939-9q25jvgbdtpk91daqlk7sa1cbdcg77o6.apps.googleusercontent.com", - "client_type": 3 - } - ], - "api_key": [ - { - "current_key": "AIzaSyAHr8RxyeiSPC_MxJTnivz-hmdo5oX0QQQ" - } - ], - "services": { - "appinvite_service": { - "other_platform_oauth_client": [ - { - "client_id": "777921915939-9q25jvgbdtpk91daqlk7sa1cbdcg77o6.apps.googleusercontent.com", - "client_type": 3 - } - ] - } - } - } - ], - "configuration_version": "1" -} diff --git a/build.gradle.kts b/build.gradle.kts index ad3a21a2e..d684e4a35 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,7 +6,6 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile buildscript { dependencies { classpath(libs.android.shortcut.gradle) - classpath(libs.google.services.gradle) classpath(libs.aboutLibraries.gradle) classpath(libs.sqldelight.gradle) classpath(libs.moko.gradle) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 3d26eee3e..d0520faa8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,5 @@ [versions] aboutlib_version = "10.10.0" -acra = "5.11.3" leakcanary = "2.13" moko = "0.23.0" okhttp_version = "5.0.0-alpha.12" @@ -13,7 +12,6 @@ voyager = "1.0.0" [libraries] desugar = "com.android.tools:desugar_jdk_libs:2.0.4" android-shortcut-gradle = "com.github.zellius:android-shortcut-gradle-plugin:0.1.2" -google-services-gradle = "com.google.gms:google-services:4.4.0" rxjava = "io.reactivex:rxjava:1.3.8" @@ -68,10 +66,6 @@ moko-gradle = { module = "dev.icerock.moko:resources-generator", version.ref = " logcat = "com.squareup.logcat:logcat:0.1" -acra-http = { module = "ch.acra:acra-http", version.ref = "acra" } -acra-scheduler = { module = "ch.acra:acra-advanced-scheduler", version.ref = "acra" } -firebase-analytics = "com.google.firebase:firebase-analytics-ktx:21.5.0" - aboutLibraries-gradle = { module = "com.mikepenz.aboutlibraries.plugin:aboutlibraries-plugin", version.ref = "aboutlib_version" } aboutLibraries-compose = { module = "com.mikepenz:aboutlibraries-compose-m3", version.ref = "aboutlib_version" } @@ -99,7 +93,6 @@ voyager-transitions = { module = "cafe.adriel.voyager:voyager-transitions", vers ktlint = "org.jlleitschuh.gradle:ktlint-gradle:12.0.3" [bundles] -acra = ["acra-http", "acra-scheduler"] okhttp = ["okhttp-core", "okhttp-logging", "okhttp-brotli", "okhttp-dnsoverhttps"] js-engine = ["quickjs-android"] sqlite = ["sqlite-framework", "sqlite-ktx", "sqlite-android"] diff --git a/i18n/src/commonMain/resources/MR/base/strings.xml b/i18n/src/commonMain/resources/MR/base/strings.xml index ccb9e8721..f51dc0181 100644 --- a/i18n/src/commonMain/resources/MR/base/strings.xml +++ b/i18n/src/commonMain/resources/MR/base/strings.xml @@ -809,7 +809,7 @@ Whoops! - %s ran into an unexpected error. We suggest you share the crash logs in our support channel on Discord. + %s ran into an unexpected error. Restart the application diff --git a/i18n/src/commonMain/resources/MR/bg/strings.xml b/i18n/src/commonMain/resources/MR/bg/strings.xml index 752077949..7fee39f3e 100644 --- a/i18n/src/commonMain/resources/MR/bg/strings.xml +++ b/i18n/src/commonMain/resources/MR/bg/strings.xml @@ -575,7 +575,7 @@ Сигурни ли сте\? Популярни Списък с незавършени - %s се сблъска с неочаквана грешка. Препоръчваме да заснемете това съобщение, да запазите записите от крашовете и да ги споделите в нашия канал за поддръжка в Discord. + %s се сблъска с неочаквана грешка. Последно обновяване на библиотеката: %1$s Списък за четене Не може да се отвори последната прочетена глава diff --git a/i18n/src/commonMain/resources/MR/ca/strings.xml b/i18n/src/commonMain/resources/MR/ca/strings.xml index ba3469681..f1f0d337f 100644 --- a/i18n/src/commonMain/resources/MR/ca/strings.xml +++ b/i18n/src/commonMain/resources/MR/ca/strings.xml @@ -625,7 +625,7 @@ Baixa automàticament mentre es llegeix Només funciona si el capítol actual i el següent ja estan baixats. Ups! - S’ha produït un error inesperat al %s. Us suggerim que compartiu el registre d’errors al nostre canal d’assistència al Discord. + S’ha produït un error inesperat al %s. No s’han concedit permisos d’emmagatzematge Populars Còpies de seguretat automàtiques i manuals i espai d’emmagatzematge diff --git a/i18n/src/commonMain/resources/MR/cs/strings.xml b/i18n/src/commonMain/resources/MR/cs/strings.xml index 3101bb62b..46c14b58d 100644 --- a/i18n/src/commonMain/resources/MR/cs/strings.xml +++ b/i18n/src/commonMain/resources/MR/cs/strings.xml @@ -637,7 +637,7 @@ Zdroje, rozšíření, globální vyhledávání Zámek aplikace, zabezpečená obrazovka Výpis protokolů selhání, optimalizace baterie - %s narazil na neočekávanou chybu. Doporučujeme vám sdílet protokoly o selhání a poté je sdílet v našem kanálu podpory na Discordu. + %s narazil na neočekávanou chybu. Restartujte aplikaci Ruční a automatické zálohování, místo v úložišti Ups! diff --git a/i18n/src/commonMain/resources/MR/de/strings.xml b/i18n/src/commonMain/resources/MR/de/strings.xml index a758c1aa6..89730a0ba 100644 --- a/i18n/src/commonMain/resources/MR/de/strings.xml +++ b/i18n/src/commonMain/resources/MR/de/strings.xml @@ -639,7 +639,7 @@ Ups! Absturzprotokolle ausgeben, Akkuverbrauch-Optimierung Manuelle und automatische Datensicherungen, Speicherplatz - %s ist auf einen unerwarteten Fehler gestoßen. Wir empfehlen dir, die Absturzprotokolle in unserem Support-Kanal auf Discord zu teilen. + %s ist auf einen unerwarteten Fehler gestoßen. App-Sperre, sicherer Bildschirm Unbekannter Titel Ungültiger Speicherort: %s diff --git a/i18n/src/commonMain/resources/MR/el/strings.xml b/i18n/src/commonMain/resources/MR/el/strings.xml index b81f92404..b32494217 100644 --- a/i18n/src/commonMain/resources/MR/el/strings.xml +++ b/i18n/src/commonMain/resources/MR/el/strings.xml @@ -640,7 +640,7 @@ Επανεκκίνηση της εφαρμογής Αυτόματη λήψη, λήψη εκ των προτέρων Αρχεία καταγραφής σφαλμάτων, βελτιστοποιήσεις μπαταρίας - Το %s αντιμετώπισε ένα απροσδόκητο σφάλμα. Σας προτείνουμε να μοιραστείτε τα αρχεία καταγραφής σφαλμάτων στο κανάλι υποστήριξης μας στο Discord. + Το %s αντιμετώπισε ένα απροσδόκητο σφάλμα. Άγνωστος τίτλος Μη έγκυρη τοποθεσία: %s Μη έγκυρη συμβολοσειρά πράκτορα χρήστη diff --git a/i18n/src/commonMain/resources/MR/es/strings.xml b/i18n/src/commonMain/resources/MR/es/strings.xml index c55bdf142..87b00c2d7 100644 --- a/i18n/src/commonMain/resources/MR/es/strings.xml +++ b/i18n/src/commonMain/resources/MR/es/strings.xml @@ -632,7 +632,7 @@ Sincroniza tu progreso de lectura; unidireccional o mejorada Descargas automáticas y por adelantado Categorías, actualizaciones generales y acciones al deslizar el dedo - %s se ha cerrado por un problema inesperado. Te sugerimos que compartas todos tus registros de depuración, enviándolos a nuestro canal de apoyo en Discord, en inglés. + %s se ha cerrado por un problema inesperado. Modos de lectura, apariencia y navegación Temas de colores y formatos de fecha Volcar datos del cuelgue y estado de ahorro de batería diff --git a/i18n/src/commonMain/resources/MR/fil/strings.xml b/i18n/src/commonMain/resources/MR/fil/strings.xml index db3d3ebc9..1f981550e 100644 --- a/i18n/src/commonMain/resources/MR/fil/strings.xml +++ b/i18n/src/commonMain/resources/MR/fil/strings.xml @@ -638,7 +638,7 @@ Itambak ang mga crash log, pag-o-optimisa sa baterya Mga kategorya, panlahatang update, pag-swipe ng kabanata Mga source, extension, panlahatang paghanap - Nagkaroon ng hindi inaasahang error ang %s. Iminumungkahi naming ibahagi mo ang mga crash log sa aming support channel sa Discord. + Nagkaroon ng hindi inaasahang error ang %s. Ay! Buksan muli ang app Invalid na lugar: %s diff --git a/i18n/src/commonMain/resources/MR/fr/strings.xml b/i18n/src/commonMain/resources/MR/fr/strings.xml index da0406b20..488469b2c 100644 --- a/i18n/src/commonMain/resources/MR/fr/strings.xml +++ b/i18n/src/commonMain/resources/MR/fr/strings.xml @@ -640,7 +640,7 @@ Catégories, mise à jour globale, faire glisser le chapitre Mode de lecture, affichage, navigation Verrouillage des applications, écran sécurisé - %s a rencontré une erreur inattendue. Nous vous suggérons de nous partager les rapports de plantage dans notre salon d\'assistance sur Discord. + %s a rencontré une erreur inattendue. Emplacement invalide : %s Chaîne d\'agent utilisateur invalide Titre inconnu diff --git a/i18n/src/commonMain/resources/MR/gl/strings.xml b/i18n/src/commonMain/resources/MR/gl/strings.xml index 69b5264ed..d41250eae 100644 --- a/i18n/src/commonMain/resources/MR/gl/strings.xml +++ b/i18n/src/commonMain/resources/MR/gl/strings.xml @@ -584,7 +584,7 @@ En seguimento Lendo Non hai ningunha conexión Wi-Fi dispoñible - %s pechouse por un problema inesperado. Aconsellámoste que compartas os rexistros de erros na canle de soporte no Discord (en inglés). + %s pechouse por un problema inesperado. Reinicia a aplicación Non se atopou ninguna fonte instalada Advertencia: As baixadas grandes poden facer que as fontes se volvan máis lentas e/ou bloqueen Tachiyomi. Preme para saber máis. diff --git a/i18n/src/commonMain/resources/MR/hr/strings.xml b/i18n/src/commonMain/resources/MR/hr/strings.xml index fa45df740..f99b76313 100644 --- a/i18n/src/commonMain/resources/MR/hr/strings.xml +++ b/i18n/src/commonMain/resources/MR/hr/strings.xml @@ -641,7 +641,7 @@ Nepoznat naslov Zadnje aktualiziranje biblioteke: %s Sigurno\? - %s je naišao na neočekivanu grešku. Predlažemo da podijeliš zapis o prekidu programa u našem kanalu za podršku na Discordu. + %s je naišao na neočekivanu grešku. Pregled Dovršene stavke Trajanje čitanja diff --git a/i18n/src/commonMain/resources/MR/hu/strings.xml b/i18n/src/commonMain/resources/MR/hu/strings.xml index 9eccc958d..e8b626626 100644 --- a/i18n/src/commonMain/resources/MR/hu/strings.xml +++ b/i18n/src/commonMain/resources/MR/hu/strings.xml @@ -677,7 +677,7 @@ Debug információ Felkapott A frissités már folyamatban van - %s hibába ütközött. A hiba üzenetet kérünk oszd meg velünk a Discord szerverünkön. + %s hibába ütközött. Dátum eltávolítása\? Applikáció újrainditása Globális frissités diff --git a/i18n/src/commonMain/resources/MR/in/strings.xml b/i18n/src/commonMain/resources/MR/in/strings.xml index 669a9a547..8af1a3762 100644 --- a/i18n/src/commonMain/resources/MR/in/strings.xml +++ b/i18n/src/commonMain/resources/MR/in/strings.xml @@ -632,7 +632,7 @@ Sumber, ekstensi, pencarian global Mode membaca, tampilan, navigasi Sinkronisasi progres searah, sinkronisasi yang ditingkatkan - %s mengalami kesalahan tak terduga. Kami menyarankan Anda membagi log kerusakan di saluran dukungan kami di Discord. + %s mengalami kesalahan tak terduga. Unduh otomatis, unduh terlebih dahulu Kunci aplikasi, amankan layar Tema, format tanggal & waktu diff --git a/i18n/src/commonMain/resources/MR/it/strings.xml b/i18n/src/commonMain/resources/MR/it/strings.xml index 1f4916a0d..c7e06b531 100644 --- a/i18n/src/commonMain/resources/MR/it/strings.xml +++ b/i18n/src/commonMain/resources/MR/it/strings.xml @@ -634,7 +634,7 @@ Saltato perché la serie non richiede aggiornamenti Ricerca… Tema, formato data e ora - %s ha riscontrato un errore imprevisto. Ti suggeriamo di condividere il registro degli arresti anomali nel nostro canale di supporto su Discord. + %s ha riscontrato un errore imprevisto. Categorie, aggiornamenti globali, azioni di scorrimento capitoli Download automatico, download anticipato Fonti, estensioni, ricerca globale diff --git a/i18n/src/commonMain/resources/MR/ja/strings.xml b/i18n/src/commonMain/resources/MR/ja/strings.xml index 6ca795be4..61094b7c9 100644 --- a/i18n/src/commonMain/resources/MR/ja/strings.xml +++ b/i18n/src/commonMain/resources/MR/ja/strings.xml @@ -629,7 +629,7 @@ ストレージ権限を持っていません シリーズは更新を必要としないため、スキップされました 検索… - %sでは予期せぬエラーが発生しました。お手数ですが、クラッシュ ログを Discord のサポート チャネルで共有するようお願い致します。 + %sでは予期せぬエラーが発生しました。 無効な場所: %s 不明なタイトル ユーザー エージェント文字列が無効です diff --git a/i18n/src/commonMain/resources/MR/kk/strings.xml b/i18n/src/commonMain/resources/MR/kk/strings.xml index 8e523fe63..2762be9d1 100644 --- a/i18n/src/commonMain/resources/MR/kk/strings.xml +++ b/i18n/src/commonMain/resources/MR/kk/strings.xml @@ -573,7 +573,7 @@ Мұқаба таңдау Сақтық көшірме файлын таңдау Ойбай! - %s күтпеген қатеге ұшырады. Жаңылыс журналдарын Discord сайтындағы қолдау арнамызда ортақ пайдалануды ұсынамыз. + %s күтпеген қатеге ұшырады. Қолданбаны өшіріп қосу Тараулар жүктелмеді. Жүктеулер кезегіне барып, сол жерден байқап көре аласыз Жадта орын аз болғандықтан тараулар жүктелмейді diff --git a/i18n/src/commonMain/resources/MR/ko/strings.xml b/i18n/src/commonMain/resources/MR/ko/strings.xml index fba583168..8f9b6369f 100644 --- a/i18n/src/commonMain/resources/MR/ko/strings.xml +++ b/i18n/src/commonMain/resources/MR/ko/strings.xml @@ -640,7 +640,7 @@ 자동 다운로드, 미리 다운로드 앗! 애플리케이션 재시작 - %s에 예기치 않은 오류가 발생했습니다. 충돌 로그를 공식 디스코드 채널에 공유하는 것을 추천합니다. + %s에 예기치 않은 오류가 발생했습니다. 알 수 없는 제목 잘못된 위치: %s 잘못된 사용자 에이전트 문자열 diff --git a/i18n/src/commonMain/resources/MR/lt/strings.xml b/i18n/src/commonMain/resources/MR/lt/strings.xml index b5b748cbd..5d4aa9a7a 100644 --- a/i18n/src/commonMain/resources/MR/lt/strings.xml +++ b/i18n/src/commonMain/resources/MR/lt/strings.xml @@ -644,7 +644,7 @@ Netinkama naudotojo agento eilutė Nežinomas pavadinimas Ką tik - %s susidūrė su netikėta klaida. Siūlome padaryti šio pranešimo ekrano nuotrauką, išsisaugoti gedimų žurnalus ir pasidalyti tuo mūsų „Discord“ palaikymo kanale. + %s susidūrė su netikėta klaida. Ar esate tikri\? Populiaru Ups! diff --git a/i18n/src/commonMain/resources/MR/lv/strings.xml b/i18n/src/commonMain/resources/MR/lv/strings.xml index 13c41176d..043910bea 100644 --- a/i18n/src/commonMain/resources/MR/lv/strings.xml +++ b/i18n/src/commonMain/resources/MR/lv/strings.xml @@ -671,7 +671,7 @@ Vai vēlaties dzēst kategoriju \"%s\"\? %1$s kļūda: %2$s Atjauninājums jau darbojas - %s radās neparedzēta kļūda. Mēs iesakām dalīties ar avārijas žurnālu mūsu atbalsta kanālā Discord lietotnē. + %s radās neparedzēta kļūda. Pagrieziet platas lapas, lai tās ietilptu Apvērst orientācija pagrieztām platām lapām Sadalīt augstus attēlus diff --git a/i18n/src/commonMain/resources/MR/ms/strings.xml b/i18n/src/commonMain/resources/MR/ms/strings.xml index 701d18ed4..8373d7315 100644 --- a/i18n/src/commonMain/resources/MR/ms/strings.xml +++ b/i18n/src/commonMain/resources/MR/ms/strings.xml @@ -640,7 +640,7 @@ Aduhai! Mulakan semula aplikasi Sumber, sambungan, carian keseluruhan - %s mengalami ralat tidak dijangka. Kami mencadangkan anda untuk kongsi log kerosakan pada Discord kami di saluran bantuan. + %s mengalami ralat tidak dijangka. Tajuk tidak diketahui Lokasi tidak sah: %s Rentetan ejen pengguna tidak sah diff --git a/i18n/src/commonMain/resources/MR/nb-rNO/strings.xml b/i18n/src/commonMain/resources/MR/nb-rNO/strings.xml index 81b1fda4c..0bfa2518c 100644 --- a/i18n/src/commonMain/resources/MR/nb-rNO/strings.xml +++ b/i18n/src/commonMain/resources/MR/nb-rNO/strings.xml @@ -623,7 +623,7 @@ Slett kategori InternalError: Sjekk krasjlogger for mer informasjon Oops! - %s fikk en uventet feil. Vi foreslår at du deler krasjloggene i vår støttekanal på Discord. + %s fikk en uventet feil. Appspråk Ingen beskrivelse Søk… diff --git a/i18n/src/commonMain/resources/MR/nl/strings.xml b/i18n/src/commonMain/resources/MR/nl/strings.xml index aefff4fbd..69f233bc7 100644 --- a/i18n/src/commonMain/resources/MR/nl/strings.xml +++ b/i18n/src/commonMain/resources/MR/nl/strings.xml @@ -668,7 +668,7 @@ Dit gaat je eerder geselcteerde startdatum %s verwijderen Download verwijderen Overgeslagen omdat serie geen updates vereist. - %s is een onverwachte fout tegengekomen. We raden u aan de crashlogboeken te delen in ons ondersteuningskanaal op Discord. + %s is een onverwachte fout tegengekomen. Foutopsporingsinformatie Voltooide titels Buiten verwachte vrijgave periode diff --git a/i18n/src/commonMain/resources/MR/pl/strings.xml b/i18n/src/commonMain/resources/MR/pl/strings.xml index 6ba1d7d94..12b1abcba 100644 --- a/i18n/src/commonMain/resources/MR/pl/strings.xml +++ b/i18n/src/commonMain/resources/MR/pl/strings.xml @@ -635,7 +635,7 @@ Lokalne Pobrane Wymuś ponowne sprawdzenie pobranych rozdziałów przez aplikację - %s napotkał nieoczekiwany błąd. Sugerujemy podzielenie się logami crasha, a następnie udostępnienie ich na naszym kanale wsparcia na Discordzie. + %s napotkał nieoczekiwany błąd. Tryb czytania, wyświetl, nawigacja Nieprawidłowa lokalizacja: %s Przycisk wznów czytanie diff --git a/i18n/src/commonMain/resources/MR/pt-rBR/strings.xml b/i18n/src/commonMain/resources/MR/pt-rBR/strings.xml index 17a4d1d02..8b3460c45 100644 --- a/i18n/src/commonMain/resources/MR/pt-rBR/strings.xml +++ b/i18n/src/commonMain/resources/MR/pt-rBR/strings.xml @@ -640,7 +640,7 @@ Exportar registros de travamento, otimizações de bateria Ooops! Reiniciar o aplicativo - %s teve um erro inesperado. Nós sugerimos que você compartilhe os registros de travamento em nosso canal de suporte no Discord. + %s teve um erro inesperado. Título desconhecido Local inválido: %s Valor de user agent inválido diff --git a/i18n/src/commonMain/resources/MR/pt/strings.xml b/i18n/src/commonMain/resources/MR/pt/strings.xml index 1e022fbb7..9e98a53e3 100644 --- a/i18n/src/commonMain/resources/MR/pt/strings.xml +++ b/i18n/src/commonMain/resources/MR/pt/strings.xml @@ -651,7 +651,7 @@ Agora mesmo Reinicie o aplicativo Ops! - %s encontrou um erro inesperado. Sugerimos que você compartilhe os registros de falha em nosso canal de suporte no Discord. + %s encontrou um erro inesperado. Descarga automática, descarga a frente Sincronização de progresso unidirecional, sincronização aprimorada Fontes, extensões, pesquisa global diff --git a/i18n/src/commonMain/resources/MR/ro/strings.xml b/i18n/src/commonMain/resources/MR/ro/strings.xml index 127652b46..65f5aa41f 100644 --- a/i18n/src/commonMain/resources/MR/ro/strings.xml +++ b/i18n/src/commonMain/resources/MR/ro/strings.xml @@ -633,7 +633,7 @@ Restabilirea șirului implicit de agent al utilizatorului Chiar acum Consemnare verbală - %s a întâmpinat o eroare neașteptată. Vă sugerăm să faceți o captură de ecran a acestui mesaj, să descărcați registrele de erori și apoi să le partajați prin intermediul canalului nostru de asistență pe Discord. + %s a întâmpinat o eroare neașteptată. Widgetul nu este disponibil atunci când este activată blocarea aplicației Tema, formatul datei și al orei Categorii, actualizări globale diff --git a/i18n/src/commonMain/resources/MR/ru/strings.xml b/i18n/src/commonMain/resources/MR/ru/strings.xml index 5380e74c7..d54ce85b7 100644 --- a/i18n/src/commonMain/resources/MR/ru/strings.xml +++ b/i18n/src/commonMain/resources/MR/ru/strings.xml @@ -640,7 +640,7 @@ Блокировка приложения, защита экрана Выгрузка журнала с ошибками, оптимизация батареи Ой, ошибочка вышла! - %s столкнулось с непредвиденной ошибкой. Мы рекомендуем поделиться журналом с ошибками в нашем Discord сервере в ветке support. + %s столкнулось с непредвиденной ошибкой. Неизвестное название Недопустимое расположение: %s Недопустимый параметр user agent diff --git a/i18n/src/commonMain/resources/MR/sc/strings.xml b/i18n/src/commonMain/resources/MR/sc/strings.xml index 8924b5a1c..a70308410 100644 --- a/i18n/src/commonMain/resources/MR/sc/strings.xml +++ b/i18n/src/commonMain/resources/MR/sc/strings.xml @@ -633,7 +633,7 @@ Permissu de archiviatzione non cuntzessu Brincadu ca sa sèrie non tenet bisòngiu de agiornamentos Chirca… - %s at tentu un\'errore non prevìdidu. Ti cussigiamus de cumpartzire sos registros de sas serraduras anòmalas in su canale de suportu nostru de Discord. + %s at tentu un\'errore non prevìdidu. Torra a allùghere s\'aplicatzione Tema, data e formadu de s\'ora Categorias, agiornamentos globales, iscurrimentu de capìtulos diff --git a/i18n/src/commonMain/resources/MR/sq/strings.xml b/i18n/src/commonMain/resources/MR/sq/strings.xml index 23469b0ef..26afb21e4 100644 --- a/i18n/src/commonMain/resources/MR/sq/strings.xml +++ b/i18n/src/commonMain/resources/MR/sq/strings.xml @@ -614,7 +614,7 @@ Udhëzuesi i migrimit të burimit Zgjidhni një burim për të migruar Migroni - %s hasi në një gabim të papritur. Ne ju sugjerojmë që të fotografoni këtë mesazh, të hidhni regjistrat e aksidenteve dhe më pas ta shpërndani në kanalin tonë të mbështetjes në Discord. + %s hasi në një gabim të papritur. Rinisni aplikacionin Kapitujt nuk mund të shkarkoheshin për shkak të hapësirës së ulët të ruajtjes Paralajmërim: shkarkimet e mëdha me shumicë mund të çojnë në ngadalësimin e burimeve dhe/ose bllokimin e Tachiyomi. Trokit për të mësuar më shumë. diff --git a/i18n/src/commonMain/resources/MR/sr/strings.xml b/i18n/src/commonMain/resources/MR/sr/strings.xml index 436d5edac..e430ea9d7 100644 --- a/i18n/src/commonMain/resources/MR/sr/strings.xml +++ b/i18n/src/commonMain/resources/MR/sr/strings.xml @@ -594,7 +594,7 @@ Сва подешавања читача су ресетована Присили апликацију да поново провери преузета поглавља Није инсталирано - %s је наишао на неочекивану грешку. Предлажемо да поделите запис о прекиду програма на нашем каналу за подршку на Discord-у. + %s је наишао на неочекивану грешку. Widget није доступан када је омогућено закључавање апликације Прокажи број непрочитаних на икони ажурирања Листа жеља diff --git a/i18n/src/commonMain/resources/MR/sv/strings.xml b/i18n/src/commonMain/resources/MR/sv/strings.xml index ee3c2dbac..f8a609c70 100644 --- a/i18n/src/commonMain/resources/MR/sv/strings.xml +++ b/i18n/src/commonMain/resources/MR/sv/strings.xml @@ -638,7 +638,7 @@ Ogiltig plats: %s Lagrings rättigheter inte tillagda Hoppat över för att serien inte behöver uppdateras - %s stötte på ett oväntat fel. Vi föreslår att du delar med dig av kraschloggen i vår supportkanal på Discord. + %s stötte på ett oväntat fel. Tema, datum och tids format Källor, tillägg, global sökning Starta om applikationen diff --git a/i18n/src/commonMain/resources/MR/tr/strings.xml b/i18n/src/commonMain/resources/MR/tr/strings.xml index 64e1e7818..cccfa573b 100644 --- a/i18n/src/commonMain/resources/MR/tr/strings.xml +++ b/i18n/src/commonMain/resources/MR/tr/strings.xml @@ -640,7 +640,7 @@ Tek yönlü ilerleme eşitlemesi, gelişmiş eşitleme Uygulamayı yeniden başlat Tüh! - %s beklenmeyen bir hatayla karşılaştı. Çökme günlüklerini Discord\'daki destek kanalımızda paylaşmanızı öneririz. + %s beklenmeyen bir hatayla karşılaştı. Bilinmeyen başlık Geçersiz konum: %s Geçersiz kullanıcı aracısı dizgesi diff --git a/i18n/src/commonMain/resources/MR/uk/strings.xml b/i18n/src/commonMain/resources/MR/uk/strings.xml index 0812c3408..ebad7b155 100644 --- a/i18n/src/commonMain/resources/MR/uk/strings.xml +++ b/i18n/src/commonMain/resources/MR/uk/strings.xml @@ -627,7 +627,7 @@ Рядок User agent не може бути пустим Популярне Автоматичне завантаження під час читання - %s зіткнулися з неочікуваною помилкою. Ми пропонуємо вам поділитися журналами збоїв у нашому каналі підтримки на Discord. + %s зіткнулися з неочікуваною помилкою. Тема, формат дати та часу Категорії, глобальне оновлення, гортання розділів Режим читання, відображення, навігація diff --git a/i18n/src/commonMain/resources/MR/vi/strings.xml b/i18n/src/commonMain/resources/MR/vi/strings.xml index 9cb3d6486..d2a7ce75f 100644 --- a/i18n/src/commonMain/resources/MR/vi/strings.xml +++ b/i18n/src/commonMain/resources/MR/vi/strings.xml @@ -680,7 +680,7 @@ Giấu những truyện đã có trong thư viện %d phút Đang kiểm tra những truyện đã tải xuống - %s đã có lỗi. Bạn nên chia sẻ tệp báo lỗi tạm ở trong kênh hỗ trợ của chúng tôi trên Discord. + %s đã có lỗi. Cập nhật danh mục Truyện này đã có sẵn trong thư viện bạn. \n diff --git a/i18n/src/commonMain/resources/MR/zh-rTW/strings.xml b/i18n/src/commonMain/resources/MR/zh-rTW/strings.xml index 9e761916a..d237d7801 100644 --- a/i18n/src/commonMain/resources/MR/zh-rTW/strings.xml +++ b/i18n/src/commonMain/resources/MR/zh-rTW/strings.xml @@ -638,7 +638,7 @@ 傾印當機記錄、電池效能最佳化 重新啟動應用程式 哎呀! - 「%s」發生了未預期的錯誤。我們建議你將當機記錄分享至我們位於 Discord 上的 support 頻道。 + 「%s」發生了未預期的錯誤。 類別、全域更新、目錄滑動動作 來源、擴充套件、全域搜尋 無效的位置:%s From 49991d38d97e21746dcc9e5f2c177bccb94c93b3 Mon Sep 17 00:00:00 2001 From: arkon Date: Sat, 13 Jan 2024 09:33:18 -0500 Subject: [PATCH 02/28] Release v0.15.3 --- .github/ISSUE_TEMPLATE.md | 2 +- .github/ISSUE_TEMPLATE/report_issue.yml | 4 ++-- .github/ISSUE_TEMPLATE/request_feature.yml | 2 +- app/build.gradle.kts | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 6aa162fc0..ac85b7483 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -3,7 +3,7 @@ I acknowledge that: - I have updated: - - To the latest version of the app (stable is v0.15.2) + - To the latest version of the app (stable is v0.15.3) - All extensions - I have gone through the FAQ (https://tachiyomi.org/docs/faq/general) and troubleshooting guide (https://tachiyomi.org/docs/guides/troubleshooting/) - If this is an issue with an official extension, that I should be opening an issue in https://github.com/tachiyomiorg/extensions diff --git a/.github/ISSUE_TEMPLATE/report_issue.yml b/.github/ISSUE_TEMPLATE/report_issue.yml index 6a2515a5b..44531d16a 100644 --- a/.github/ISSUE_TEMPLATE/report_issue.yml +++ b/.github/ISSUE_TEMPLATE/report_issue.yml @@ -53,7 +53,7 @@ body: label: Tachiyomi version description: You can find your Tachiyomi version in **More → About**. placeholder: | - Example: "0.15.2" + Example: "0.15.3" validations: required: true @@ -98,7 +98,7 @@ body: required: true - label: I have gone through the [FAQ](https://tachiyomi.org/docs/faq/general) and [troubleshooting guide](https://tachiyomi.org/docs/guides/troubleshooting/). required: true - - label: I have updated the app to version **[0.15.2](https://github.com/tachiyomiorg/tachiyomi/releases/latest)**. + - label: I have updated the app to version **[0.15.3](https://github.com/tachiyomiorg/tachiyomi/releases/latest)**. required: true - label: I have updated all installed extensions. required: true diff --git a/.github/ISSUE_TEMPLATE/request_feature.yml b/.github/ISSUE_TEMPLATE/request_feature.yml index 794525c8c..8a67d4794 100644 --- a/.github/ISSUE_TEMPLATE/request_feature.yml +++ b/.github/ISSUE_TEMPLATE/request_feature.yml @@ -33,7 +33,7 @@ body: required: true - label: If this is an issue with an official extension, I should be opening an issue in the [extensions repository](https://github.com/tachiyomiorg/extensions/issues/new/choose). required: true - - label: I have updated the app to version **[0.15.2](https://github.com/tachiyomiorg/tachiyomi/releases/latest)**. + - label: I have updated the app to version **[0.15.3](https://github.com/tachiyomiorg/tachiyomi/releases/latest)**. required: true - label: I will fill out all of the requested information in this form. required: true diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 5f0b76cc5..17871bd8a 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -18,8 +18,8 @@ android { defaultConfig { applicationId = "eu.kanade.tachiyomi" - versionCode = 118 - versionName = "0.15.2" + versionCode = 119 + versionName = "0.15.3" buildConfigField("String", "COMMIT_COUNT", "\"${getCommitCount()}\"") buildConfigField("String", "COMMIT_SHA", "\"${getGitSha()}\"") From e63a52b8e3ca4ecb04e18a8d4171158711012a3b Mon Sep 17 00:00:00 2001 From: arkon Date: Sat, 13 Jan 2024 13:52:50 -0500 Subject: [PATCH 03/28] Use newer build tools --- app/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 17871bd8a..5f78cb82b 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,6 +14,7 @@ val SUPPORTED_ABIS = setOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64") android { namespace = "eu.kanade.tachiyomi" + buildToolsVersion = "34.0.0" defaultConfig { applicationId = "eu.kanade.tachiyomi" From a9c7cbf2c43959ae7ad9df3baa2306a254dd57e3 Mon Sep 17 00:00:00 2001 From: arkon Date: Sat, 13 Jan 2024 14:01:49 -0500 Subject: [PATCH 04/28] Install build-tools 29.0.3 --- .github/workflows/build_push.yml | 4 ++++ app/build.gradle.kts | 1 - 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build_push.yml b/.github/workflows/build_push.yml index 6127d3f30..501227639 100644 --- a/.github/workflows/build_push.yml +++ b/.github/workflows/build_push.yml @@ -22,6 +22,10 @@ jobs: - name: Validate Gradle Wrapper uses: gradle/wrapper-validation-action@v1 + - name: Setup Android SDK + run: | + ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager "build-tools;29.0.3" + - name: Set up JDK uses: actions/setup-java@v4 with: diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 5f78cb82b..17871bd8a 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,7 +14,6 @@ val SUPPORTED_ABIS = setOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64") android { namespace = "eu.kanade.tachiyomi" - buildToolsVersion = "34.0.0" defaultConfig { applicationId = "eu.kanade.tachiyomi" From 87e3525f8863f6b253fc6beb7916c12c0e7f2d5a Mon Sep 17 00:00:00 2001 From: AntsyLich <59261191+AntsyLich@users.noreply.github.com> Date: Mon, 15 Jan 2024 20:44:08 +0600 Subject: [PATCH 05/28] Add back reference to Discord Partially reverts commit 33c62ab711aeb3a3b558e58da421cacf56848f3c. --- CODE_OF_CONDUCT.md | 3 ++- CONTRIBUTING.md | 2 +- README.md | 10 ++++++---- .../more/settings/screen/about/AboutScreen.kt | 6 ++++++ i18n/src/commonMain/resources/MR/base/strings.xml | 2 +- i18n/src/commonMain/resources/MR/bg/strings.xml | 2 +- i18n/src/commonMain/resources/MR/ca/strings.xml | 2 +- i18n/src/commonMain/resources/MR/cs/strings.xml | 2 +- i18n/src/commonMain/resources/MR/de/strings.xml | 2 +- i18n/src/commonMain/resources/MR/el/strings.xml | 2 +- i18n/src/commonMain/resources/MR/es/strings.xml | 2 +- i18n/src/commonMain/resources/MR/fil/strings.xml | 2 +- i18n/src/commonMain/resources/MR/fr/strings.xml | 2 +- i18n/src/commonMain/resources/MR/gl/strings.xml | 2 +- i18n/src/commonMain/resources/MR/hr/strings.xml | 2 +- i18n/src/commonMain/resources/MR/hu/strings.xml | 2 +- i18n/src/commonMain/resources/MR/in/strings.xml | 2 +- i18n/src/commonMain/resources/MR/it/strings.xml | 2 +- i18n/src/commonMain/resources/MR/ja/strings.xml | 2 +- i18n/src/commonMain/resources/MR/kk/strings.xml | 2 +- i18n/src/commonMain/resources/MR/ko/strings.xml | 2 +- i18n/src/commonMain/resources/MR/lt/strings.xml | 2 +- i18n/src/commonMain/resources/MR/lv/strings.xml | 2 +- i18n/src/commonMain/resources/MR/ms/strings.xml | 2 +- i18n/src/commonMain/resources/MR/nb-rNO/strings.xml | 2 +- i18n/src/commonMain/resources/MR/nl/strings.xml | 2 +- i18n/src/commonMain/resources/MR/pl/strings.xml | 2 +- i18n/src/commonMain/resources/MR/pt-rBR/strings.xml | 2 +- i18n/src/commonMain/resources/MR/pt/strings.xml | 2 +- i18n/src/commonMain/resources/MR/ro/strings.xml | 2 +- i18n/src/commonMain/resources/MR/ru/strings.xml | 2 +- i18n/src/commonMain/resources/MR/sc/strings.xml | 2 +- i18n/src/commonMain/resources/MR/sq/strings.xml | 2 +- i18n/src/commonMain/resources/MR/sr/strings.xml | 2 +- i18n/src/commonMain/resources/MR/sv/strings.xml | 2 +- i18n/src/commonMain/resources/MR/tr/strings.xml | 2 +- i18n/src/commonMain/resources/MR/uk/strings.xml | 2 +- i18n/src/commonMain/resources/MR/vi/strings.xml | 2 +- i18n/src/commonMain/resources/MR/zh-rTW/strings.xml | 2 +- 39 files changed, 50 insertions(+), 41 deletions(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index c6862fe8a..c0001e988 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -59,7 +59,8 @@ representative at an online or offline event. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community moderators via issues. +reported to the community moderators responsible for enforcement at +the [Tachiyomi Discord server](https://discord.gg/tachiyomi). All complaints will be reviewed and investigated promptly and fairly. All community moderators are obligated to respect the privacy and security of the diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3396be076..81e69f498 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -30,7 +30,7 @@ To auto-fix some linting errors, run the `ktlintFormat` Gradle task. ## Getting help -No support is currently provided. +- Join [the Discord server](https://discord.gg/tachiyomi) for online help and to ask questions while developing. # Translations diff --git a/README.md b/README.md index f6a1f95a5..2f73bb170 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -| Build | Stable | Weekly Preview | Contribute | -|-------|--------|----------------|------------| -| [![CI](https://github.com/tachiyomiorg/tachiyomi/actions/workflows/build_push.yml/badge.svg)](https://github.com/tachiyomiorg/tachiyomi/actions/workflows/build_push.yml) | [![stable release](https://img.shields.io/github/release/tachiyomiorg/tachiyomi.svg?maxAge=3600&label=download)](https://github.com/tachiyomiorg/tachiyomi/releases) | [![latest preview build](https://img.shields.io/github/v/release/tachiyomiorg/tachiyomi-preview.svg?maxAge=3600&label=download)](https://github.com/tachiyomiorg/tachiyomi-preview/releases) | [![Translation status](https://hosted.weblate.org/widgets/tachiyomi/-/svg-badge.svg)](https://hosted.weblate.org/engage/tachiyomi/?utm_source=widget) | +| Build | Stable | Weekly Preview | Contribute | Support Server | +|-------|----------|---------|------------|---------| +| [![CI](https://github.com/tachiyomiorg/tachiyomi/actions/workflows/build_push.yml/badge.svg)](https://github.com/tachiyomiorg/tachiyomi/actions/workflows/build_push.yml) | [![stable release](https://img.shields.io/github/release/tachiyomiorg/tachiyomi.svg?maxAge=3600&label=download)](https://github.com/tachiyomiorg/tachiyomi/releases) | [![latest preview build](https://img.shields.io/github/v/release/tachiyomiorg/tachiyomi-preview.svg?maxAge=3600&label=download)](https://github.com/tachiyomiorg/tachiyomi-preview/releases) | [![Translation status](https://hosted.weblate.org/widgets/tachiyomi/-/svg-badge.svg)](https://hosted.weblate.org/engage/tachiyomi/?utm_source=widget) | [![Discord](https://img.shields.io/discord/349436576037732353.svg?label=discord&labelColor=7289da&color=2c2f33&style=flat)](https://discord.gg/tachiyomi) | # ![app icon](./.github/readme-images/app-icon.png)Tachiyomi Tachiyomi is a free and open source manga reader for Android 6.0 and above. @@ -28,7 +28,8 @@ Please make sure to read the full guidelines. Your issue may be closed without w
Issues -**Before reporting a new issue, take a look at the [FAQ](https://tachiyomi.org/docs/faq/general), the [changelog](https://tachiyomi.org/changelogs/) and the already opened [issues](https://github.com/tachiyomiorg/tachiyomi/issues).** +1. **Before reporting a new issue, take a look at the [FAQ](https://tachiyomi.org/docs/faq/general), the [changelog](https://tachiyomi.org/changelogs/) and the already opened [issues](https://github.com/tachiyomiorg/tachiyomi/issues).** +2. If you are unsure, ask here: [![Discord](https://img.shields.io/discord/349436576037732353.svg)](https://discord.gg/tachiyomi)
@@ -69,6 +70,7 @@ See [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md). ## FAQ [See our website.](https://tachiyomi.org/) +You can also reach out to us on [Discord](https://discord.gg/tachiyomi). ## License diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/about/AboutScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/about/AboutScreen.kt index aadd1ecf3..d9587737a 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/about/AboutScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/about/AboutScreen.kt @@ -42,6 +42,7 @@ import tachiyomi.presentation.core.components.ScrollbarLazyColumn import tachiyomi.presentation.core.components.material.Scaffold import tachiyomi.presentation.core.i18n.stringResource import tachiyomi.presentation.core.icons.CustomIcons +import tachiyomi.presentation.core.icons.Discord import tachiyomi.presentation.core.icons.Facebook import tachiyomi.presentation.core.icons.Github import tachiyomi.presentation.core.icons.Reddit @@ -117,6 +118,11 @@ object AboutScreen : Screen() { icon = Icons.Outlined.Public, url = "https://tachiyomi.org", ) + LinkIcon( + label = "Discord", + icon = CustomIcons.Discord, + url = "https://discord.gg/tachiyomi", + ) LinkIcon( label = "X", icon = CustomIcons.X, diff --git a/i18n/src/commonMain/resources/MR/base/strings.xml b/i18n/src/commonMain/resources/MR/base/strings.xml index f51dc0181..ccb9e8721 100644 --- a/i18n/src/commonMain/resources/MR/base/strings.xml +++ b/i18n/src/commonMain/resources/MR/base/strings.xml @@ -809,7 +809,7 @@ Whoops! - %s ran into an unexpected error. + %s ran into an unexpected error. We suggest you share the crash logs in our support channel on Discord. Restart the application diff --git a/i18n/src/commonMain/resources/MR/bg/strings.xml b/i18n/src/commonMain/resources/MR/bg/strings.xml index 7fee39f3e..752077949 100644 --- a/i18n/src/commonMain/resources/MR/bg/strings.xml +++ b/i18n/src/commonMain/resources/MR/bg/strings.xml @@ -575,7 +575,7 @@ Сигурни ли сте\? Популярни Списък с незавършени - %s се сблъска с неочаквана грешка. + %s се сблъска с неочаквана грешка. Препоръчваме да заснемете това съобщение, да запазите записите от крашовете и да ги споделите в нашия канал за поддръжка в Discord. Последно обновяване на библиотеката: %1$s Списък за четене Не може да се отвори последната прочетена глава diff --git a/i18n/src/commonMain/resources/MR/ca/strings.xml b/i18n/src/commonMain/resources/MR/ca/strings.xml index f1f0d337f..ba3469681 100644 --- a/i18n/src/commonMain/resources/MR/ca/strings.xml +++ b/i18n/src/commonMain/resources/MR/ca/strings.xml @@ -625,7 +625,7 @@ Baixa automàticament mentre es llegeix Només funciona si el capítol actual i el següent ja estan baixats. Ups! - S’ha produït un error inesperat al %s. + S’ha produït un error inesperat al %s. Us suggerim que compartiu el registre d’errors al nostre canal d’assistència al Discord. No s’han concedit permisos d’emmagatzematge Populars Còpies de seguretat automàtiques i manuals i espai d’emmagatzematge diff --git a/i18n/src/commonMain/resources/MR/cs/strings.xml b/i18n/src/commonMain/resources/MR/cs/strings.xml index 46c14b58d..3101bb62b 100644 --- a/i18n/src/commonMain/resources/MR/cs/strings.xml +++ b/i18n/src/commonMain/resources/MR/cs/strings.xml @@ -637,7 +637,7 @@ Zdroje, rozšíření, globální vyhledávání Zámek aplikace, zabezpečená obrazovka Výpis protokolů selhání, optimalizace baterie - %s narazil na neočekávanou chybu. + %s narazil na neočekávanou chybu. Doporučujeme vám sdílet protokoly o selhání a poté je sdílet v našem kanálu podpory na Discordu. Restartujte aplikaci Ruční a automatické zálohování, místo v úložišti Ups! diff --git a/i18n/src/commonMain/resources/MR/de/strings.xml b/i18n/src/commonMain/resources/MR/de/strings.xml index 89730a0ba..a758c1aa6 100644 --- a/i18n/src/commonMain/resources/MR/de/strings.xml +++ b/i18n/src/commonMain/resources/MR/de/strings.xml @@ -639,7 +639,7 @@ Ups! Absturzprotokolle ausgeben, Akkuverbrauch-Optimierung Manuelle und automatische Datensicherungen, Speicherplatz - %s ist auf einen unerwarteten Fehler gestoßen. + %s ist auf einen unerwarteten Fehler gestoßen. Wir empfehlen dir, die Absturzprotokolle in unserem Support-Kanal auf Discord zu teilen. App-Sperre, sicherer Bildschirm Unbekannter Titel Ungültiger Speicherort: %s diff --git a/i18n/src/commonMain/resources/MR/el/strings.xml b/i18n/src/commonMain/resources/MR/el/strings.xml index b32494217..b81f92404 100644 --- a/i18n/src/commonMain/resources/MR/el/strings.xml +++ b/i18n/src/commonMain/resources/MR/el/strings.xml @@ -640,7 +640,7 @@ Επανεκκίνηση της εφαρμογής Αυτόματη λήψη, λήψη εκ των προτέρων Αρχεία καταγραφής σφαλμάτων, βελτιστοποιήσεις μπαταρίας - Το %s αντιμετώπισε ένα απροσδόκητο σφάλμα. + Το %s αντιμετώπισε ένα απροσδόκητο σφάλμα. Σας προτείνουμε να μοιραστείτε τα αρχεία καταγραφής σφαλμάτων στο κανάλι υποστήριξης μας στο Discord. Άγνωστος τίτλος Μη έγκυρη τοποθεσία: %s Μη έγκυρη συμβολοσειρά πράκτορα χρήστη diff --git a/i18n/src/commonMain/resources/MR/es/strings.xml b/i18n/src/commonMain/resources/MR/es/strings.xml index 87b00c2d7..c55bdf142 100644 --- a/i18n/src/commonMain/resources/MR/es/strings.xml +++ b/i18n/src/commonMain/resources/MR/es/strings.xml @@ -632,7 +632,7 @@ Sincroniza tu progreso de lectura; unidireccional o mejorada Descargas automáticas y por adelantado Categorías, actualizaciones generales y acciones al deslizar el dedo - %s se ha cerrado por un problema inesperado. + %s se ha cerrado por un problema inesperado. Te sugerimos que compartas todos tus registros de depuración, enviándolos a nuestro canal de apoyo en Discord, en inglés. Modos de lectura, apariencia y navegación Temas de colores y formatos de fecha Volcar datos del cuelgue y estado de ahorro de batería diff --git a/i18n/src/commonMain/resources/MR/fil/strings.xml b/i18n/src/commonMain/resources/MR/fil/strings.xml index 1f981550e..db3d3ebc9 100644 --- a/i18n/src/commonMain/resources/MR/fil/strings.xml +++ b/i18n/src/commonMain/resources/MR/fil/strings.xml @@ -638,7 +638,7 @@ Itambak ang mga crash log, pag-o-optimisa sa baterya Mga kategorya, panlahatang update, pag-swipe ng kabanata Mga source, extension, panlahatang paghanap - Nagkaroon ng hindi inaasahang error ang %s. + Nagkaroon ng hindi inaasahang error ang %s. Iminumungkahi naming ibahagi mo ang mga crash log sa aming support channel sa Discord. Ay! Buksan muli ang app Invalid na lugar: %s diff --git a/i18n/src/commonMain/resources/MR/fr/strings.xml b/i18n/src/commonMain/resources/MR/fr/strings.xml index 488469b2c..da0406b20 100644 --- a/i18n/src/commonMain/resources/MR/fr/strings.xml +++ b/i18n/src/commonMain/resources/MR/fr/strings.xml @@ -640,7 +640,7 @@ Catégories, mise à jour globale, faire glisser le chapitre Mode de lecture, affichage, navigation Verrouillage des applications, écran sécurisé - %s a rencontré une erreur inattendue. + %s a rencontré une erreur inattendue. Nous vous suggérons de nous partager les rapports de plantage dans notre salon d\'assistance sur Discord. Emplacement invalide : %s Chaîne d\'agent utilisateur invalide Titre inconnu diff --git a/i18n/src/commonMain/resources/MR/gl/strings.xml b/i18n/src/commonMain/resources/MR/gl/strings.xml index d41250eae..69b5264ed 100644 --- a/i18n/src/commonMain/resources/MR/gl/strings.xml +++ b/i18n/src/commonMain/resources/MR/gl/strings.xml @@ -584,7 +584,7 @@ En seguimento Lendo Non hai ningunha conexión Wi-Fi dispoñible - %s pechouse por un problema inesperado. + %s pechouse por un problema inesperado. Aconsellámoste que compartas os rexistros de erros na canle de soporte no Discord (en inglés). Reinicia a aplicación Non se atopou ninguna fonte instalada Advertencia: As baixadas grandes poden facer que as fontes se volvan máis lentas e/ou bloqueen Tachiyomi. Preme para saber máis. diff --git a/i18n/src/commonMain/resources/MR/hr/strings.xml b/i18n/src/commonMain/resources/MR/hr/strings.xml index f99b76313..fa45df740 100644 --- a/i18n/src/commonMain/resources/MR/hr/strings.xml +++ b/i18n/src/commonMain/resources/MR/hr/strings.xml @@ -641,7 +641,7 @@ Nepoznat naslov Zadnje aktualiziranje biblioteke: %s Sigurno\? - %s je naišao na neočekivanu grešku. + %s je naišao na neočekivanu grešku. Predlažemo da podijeliš zapis o prekidu programa u našem kanalu za podršku na Discordu. Pregled Dovršene stavke Trajanje čitanja diff --git a/i18n/src/commonMain/resources/MR/hu/strings.xml b/i18n/src/commonMain/resources/MR/hu/strings.xml index e8b626626..9eccc958d 100644 --- a/i18n/src/commonMain/resources/MR/hu/strings.xml +++ b/i18n/src/commonMain/resources/MR/hu/strings.xml @@ -677,7 +677,7 @@ Debug információ Felkapott A frissités már folyamatban van - %s hibába ütközött. + %s hibába ütközött. A hiba üzenetet kérünk oszd meg velünk a Discord szerverünkön. Dátum eltávolítása\? Applikáció újrainditása Globális frissités diff --git a/i18n/src/commonMain/resources/MR/in/strings.xml b/i18n/src/commonMain/resources/MR/in/strings.xml index 8af1a3762..669a9a547 100644 --- a/i18n/src/commonMain/resources/MR/in/strings.xml +++ b/i18n/src/commonMain/resources/MR/in/strings.xml @@ -632,7 +632,7 @@ Sumber, ekstensi, pencarian global Mode membaca, tampilan, navigasi Sinkronisasi progres searah, sinkronisasi yang ditingkatkan - %s mengalami kesalahan tak terduga. + %s mengalami kesalahan tak terduga. Kami menyarankan Anda membagi log kerusakan di saluran dukungan kami di Discord. Unduh otomatis, unduh terlebih dahulu Kunci aplikasi, amankan layar Tema, format tanggal & waktu diff --git a/i18n/src/commonMain/resources/MR/it/strings.xml b/i18n/src/commonMain/resources/MR/it/strings.xml index c7e06b531..1f4916a0d 100644 --- a/i18n/src/commonMain/resources/MR/it/strings.xml +++ b/i18n/src/commonMain/resources/MR/it/strings.xml @@ -634,7 +634,7 @@ Saltato perché la serie non richiede aggiornamenti Ricerca… Tema, formato data e ora - %s ha riscontrato un errore imprevisto. + %s ha riscontrato un errore imprevisto. Ti suggeriamo di condividere il registro degli arresti anomali nel nostro canale di supporto su Discord. Categorie, aggiornamenti globali, azioni di scorrimento capitoli Download automatico, download anticipato Fonti, estensioni, ricerca globale diff --git a/i18n/src/commonMain/resources/MR/ja/strings.xml b/i18n/src/commonMain/resources/MR/ja/strings.xml index 61094b7c9..6ca795be4 100644 --- a/i18n/src/commonMain/resources/MR/ja/strings.xml +++ b/i18n/src/commonMain/resources/MR/ja/strings.xml @@ -629,7 +629,7 @@ ストレージ権限を持っていません シリーズは更新を必要としないため、スキップされました 検索… - %sでは予期せぬエラーが発生しました。 + %sでは予期せぬエラーが発生しました。お手数ですが、クラッシュ ログを Discord のサポート チャネルで共有するようお願い致します。 無効な場所: %s 不明なタイトル ユーザー エージェント文字列が無効です diff --git a/i18n/src/commonMain/resources/MR/kk/strings.xml b/i18n/src/commonMain/resources/MR/kk/strings.xml index 2762be9d1..8e523fe63 100644 --- a/i18n/src/commonMain/resources/MR/kk/strings.xml +++ b/i18n/src/commonMain/resources/MR/kk/strings.xml @@ -573,7 +573,7 @@ Мұқаба таңдау Сақтық көшірме файлын таңдау Ойбай! - %s күтпеген қатеге ұшырады. + %s күтпеген қатеге ұшырады. Жаңылыс журналдарын Discord сайтындағы қолдау арнамызда ортақ пайдалануды ұсынамыз. Қолданбаны өшіріп қосу Тараулар жүктелмеді. Жүктеулер кезегіне барып, сол жерден байқап көре аласыз Жадта орын аз болғандықтан тараулар жүктелмейді diff --git a/i18n/src/commonMain/resources/MR/ko/strings.xml b/i18n/src/commonMain/resources/MR/ko/strings.xml index 8f9b6369f..fba583168 100644 --- a/i18n/src/commonMain/resources/MR/ko/strings.xml +++ b/i18n/src/commonMain/resources/MR/ko/strings.xml @@ -640,7 +640,7 @@ 자동 다운로드, 미리 다운로드 앗! 애플리케이션 재시작 - %s에 예기치 않은 오류가 발생했습니다. + %s에 예기치 않은 오류가 발생했습니다. 충돌 로그를 공식 디스코드 채널에 공유하는 것을 추천합니다. 알 수 없는 제목 잘못된 위치: %s 잘못된 사용자 에이전트 문자열 diff --git a/i18n/src/commonMain/resources/MR/lt/strings.xml b/i18n/src/commonMain/resources/MR/lt/strings.xml index 5d4aa9a7a..b5b748cbd 100644 --- a/i18n/src/commonMain/resources/MR/lt/strings.xml +++ b/i18n/src/commonMain/resources/MR/lt/strings.xml @@ -644,7 +644,7 @@ Netinkama naudotojo agento eilutė Nežinomas pavadinimas Ką tik - %s susidūrė su netikėta klaida. + %s susidūrė su netikėta klaida. Siūlome padaryti šio pranešimo ekrano nuotrauką, išsisaugoti gedimų žurnalus ir pasidalyti tuo mūsų „Discord“ palaikymo kanale. Ar esate tikri\? Populiaru Ups! diff --git a/i18n/src/commonMain/resources/MR/lv/strings.xml b/i18n/src/commonMain/resources/MR/lv/strings.xml index 043910bea..13c41176d 100644 --- a/i18n/src/commonMain/resources/MR/lv/strings.xml +++ b/i18n/src/commonMain/resources/MR/lv/strings.xml @@ -671,7 +671,7 @@ Vai vēlaties dzēst kategoriju \"%s\"\? %1$s kļūda: %2$s Atjauninājums jau darbojas - %s radās neparedzēta kļūda. + %s radās neparedzēta kļūda. Mēs iesakām dalīties ar avārijas žurnālu mūsu atbalsta kanālā Discord lietotnē. Pagrieziet platas lapas, lai tās ietilptu Apvērst orientācija pagrieztām platām lapām Sadalīt augstus attēlus diff --git a/i18n/src/commonMain/resources/MR/ms/strings.xml b/i18n/src/commonMain/resources/MR/ms/strings.xml index 8373d7315..701d18ed4 100644 --- a/i18n/src/commonMain/resources/MR/ms/strings.xml +++ b/i18n/src/commonMain/resources/MR/ms/strings.xml @@ -640,7 +640,7 @@ Aduhai! Mulakan semula aplikasi Sumber, sambungan, carian keseluruhan - %s mengalami ralat tidak dijangka. + %s mengalami ralat tidak dijangka. Kami mencadangkan anda untuk kongsi log kerosakan pada Discord kami di saluran bantuan. Tajuk tidak diketahui Lokasi tidak sah: %s Rentetan ejen pengguna tidak sah diff --git a/i18n/src/commonMain/resources/MR/nb-rNO/strings.xml b/i18n/src/commonMain/resources/MR/nb-rNO/strings.xml index 0bfa2518c..81b1fda4c 100644 --- a/i18n/src/commonMain/resources/MR/nb-rNO/strings.xml +++ b/i18n/src/commonMain/resources/MR/nb-rNO/strings.xml @@ -623,7 +623,7 @@ Slett kategori InternalError: Sjekk krasjlogger for mer informasjon Oops! - %s fikk en uventet feil. + %s fikk en uventet feil. Vi foreslår at du deler krasjloggene i vår støttekanal på Discord. Appspråk Ingen beskrivelse Søk… diff --git a/i18n/src/commonMain/resources/MR/nl/strings.xml b/i18n/src/commonMain/resources/MR/nl/strings.xml index 69f233bc7..aefff4fbd 100644 --- a/i18n/src/commonMain/resources/MR/nl/strings.xml +++ b/i18n/src/commonMain/resources/MR/nl/strings.xml @@ -668,7 +668,7 @@ Dit gaat je eerder geselcteerde startdatum %s verwijderen Download verwijderen Overgeslagen omdat serie geen updates vereist. - %s is een onverwachte fout tegengekomen. + %s is een onverwachte fout tegengekomen. We raden u aan de crashlogboeken te delen in ons ondersteuningskanaal op Discord. Foutopsporingsinformatie Voltooide titels Buiten verwachte vrijgave periode diff --git a/i18n/src/commonMain/resources/MR/pl/strings.xml b/i18n/src/commonMain/resources/MR/pl/strings.xml index 12b1abcba..6ba1d7d94 100644 --- a/i18n/src/commonMain/resources/MR/pl/strings.xml +++ b/i18n/src/commonMain/resources/MR/pl/strings.xml @@ -635,7 +635,7 @@ Lokalne Pobrane Wymuś ponowne sprawdzenie pobranych rozdziałów przez aplikację - %s napotkał nieoczekiwany błąd. + %s napotkał nieoczekiwany błąd. Sugerujemy podzielenie się logami crasha, a następnie udostępnienie ich na naszym kanale wsparcia na Discordzie. Tryb czytania, wyświetl, nawigacja Nieprawidłowa lokalizacja: %s Przycisk wznów czytanie diff --git a/i18n/src/commonMain/resources/MR/pt-rBR/strings.xml b/i18n/src/commonMain/resources/MR/pt-rBR/strings.xml index 8b3460c45..17a4d1d02 100644 --- a/i18n/src/commonMain/resources/MR/pt-rBR/strings.xml +++ b/i18n/src/commonMain/resources/MR/pt-rBR/strings.xml @@ -640,7 +640,7 @@ Exportar registros de travamento, otimizações de bateria Ooops! Reiniciar o aplicativo - %s teve um erro inesperado. + %s teve um erro inesperado. Nós sugerimos que você compartilhe os registros de travamento em nosso canal de suporte no Discord. Título desconhecido Local inválido: %s Valor de user agent inválido diff --git a/i18n/src/commonMain/resources/MR/pt/strings.xml b/i18n/src/commonMain/resources/MR/pt/strings.xml index 9e98a53e3..1e022fbb7 100644 --- a/i18n/src/commonMain/resources/MR/pt/strings.xml +++ b/i18n/src/commonMain/resources/MR/pt/strings.xml @@ -651,7 +651,7 @@ Agora mesmo Reinicie o aplicativo Ops! - %s encontrou um erro inesperado. + %s encontrou um erro inesperado. Sugerimos que você compartilhe os registros de falha em nosso canal de suporte no Discord. Descarga automática, descarga a frente Sincronização de progresso unidirecional, sincronização aprimorada Fontes, extensões, pesquisa global diff --git a/i18n/src/commonMain/resources/MR/ro/strings.xml b/i18n/src/commonMain/resources/MR/ro/strings.xml index 65f5aa41f..127652b46 100644 --- a/i18n/src/commonMain/resources/MR/ro/strings.xml +++ b/i18n/src/commonMain/resources/MR/ro/strings.xml @@ -633,7 +633,7 @@ Restabilirea șirului implicit de agent al utilizatorului Chiar acum Consemnare verbală - %s a întâmpinat o eroare neașteptată. + %s a întâmpinat o eroare neașteptată. Vă sugerăm să faceți o captură de ecran a acestui mesaj, să descărcați registrele de erori și apoi să le partajați prin intermediul canalului nostru de asistență pe Discord. Widgetul nu este disponibil atunci când este activată blocarea aplicației Tema, formatul datei și al orei Categorii, actualizări globale diff --git a/i18n/src/commonMain/resources/MR/ru/strings.xml b/i18n/src/commonMain/resources/MR/ru/strings.xml index d54ce85b7..5380e74c7 100644 --- a/i18n/src/commonMain/resources/MR/ru/strings.xml +++ b/i18n/src/commonMain/resources/MR/ru/strings.xml @@ -640,7 +640,7 @@ Блокировка приложения, защита экрана Выгрузка журнала с ошибками, оптимизация батареи Ой, ошибочка вышла! - %s столкнулось с непредвиденной ошибкой. + %s столкнулось с непредвиденной ошибкой. Мы рекомендуем поделиться журналом с ошибками в нашем Discord сервере в ветке support. Неизвестное название Недопустимое расположение: %s Недопустимый параметр user agent diff --git a/i18n/src/commonMain/resources/MR/sc/strings.xml b/i18n/src/commonMain/resources/MR/sc/strings.xml index a70308410..8924b5a1c 100644 --- a/i18n/src/commonMain/resources/MR/sc/strings.xml +++ b/i18n/src/commonMain/resources/MR/sc/strings.xml @@ -633,7 +633,7 @@ Permissu de archiviatzione non cuntzessu Brincadu ca sa sèrie non tenet bisòngiu de agiornamentos Chirca… - %s at tentu un\'errore non prevìdidu. + %s at tentu un\'errore non prevìdidu. Ti cussigiamus de cumpartzire sos registros de sas serraduras anòmalas in su canale de suportu nostru de Discord. Torra a allùghere s\'aplicatzione Tema, data e formadu de s\'ora Categorias, agiornamentos globales, iscurrimentu de capìtulos diff --git a/i18n/src/commonMain/resources/MR/sq/strings.xml b/i18n/src/commonMain/resources/MR/sq/strings.xml index 26afb21e4..23469b0ef 100644 --- a/i18n/src/commonMain/resources/MR/sq/strings.xml +++ b/i18n/src/commonMain/resources/MR/sq/strings.xml @@ -614,7 +614,7 @@ Udhëzuesi i migrimit të burimit Zgjidhni një burim për të migruar Migroni - %s hasi në një gabim të papritur. + %s hasi në një gabim të papritur. Ne ju sugjerojmë që të fotografoni këtë mesazh, të hidhni regjistrat e aksidenteve dhe më pas ta shpërndani në kanalin tonë të mbështetjes në Discord. Rinisni aplikacionin Kapitujt nuk mund të shkarkoheshin për shkak të hapësirës së ulët të ruajtjes Paralajmërim: shkarkimet e mëdha me shumicë mund të çojnë në ngadalësimin e burimeve dhe/ose bllokimin e Tachiyomi. Trokit për të mësuar më shumë. diff --git a/i18n/src/commonMain/resources/MR/sr/strings.xml b/i18n/src/commonMain/resources/MR/sr/strings.xml index e430ea9d7..436d5edac 100644 --- a/i18n/src/commonMain/resources/MR/sr/strings.xml +++ b/i18n/src/commonMain/resources/MR/sr/strings.xml @@ -594,7 +594,7 @@ Сва подешавања читача су ресетована Присили апликацију да поново провери преузета поглавља Није инсталирано - %s је наишао на неочекивану грешку. + %s је наишао на неочекивану грешку. Предлажемо да поделите запис о прекиду програма на нашем каналу за подршку на Discord-у. Widget није доступан када је омогућено закључавање апликације Прокажи број непрочитаних на икони ажурирања Листа жеља diff --git a/i18n/src/commonMain/resources/MR/sv/strings.xml b/i18n/src/commonMain/resources/MR/sv/strings.xml index f8a609c70..ee3c2dbac 100644 --- a/i18n/src/commonMain/resources/MR/sv/strings.xml +++ b/i18n/src/commonMain/resources/MR/sv/strings.xml @@ -638,7 +638,7 @@ Ogiltig plats: %s Lagrings rättigheter inte tillagda Hoppat över för att serien inte behöver uppdateras - %s stötte på ett oväntat fel. + %s stötte på ett oväntat fel. Vi föreslår att du delar med dig av kraschloggen i vår supportkanal på Discord. Tema, datum och tids format Källor, tillägg, global sökning Starta om applikationen diff --git a/i18n/src/commonMain/resources/MR/tr/strings.xml b/i18n/src/commonMain/resources/MR/tr/strings.xml index cccfa573b..64e1e7818 100644 --- a/i18n/src/commonMain/resources/MR/tr/strings.xml +++ b/i18n/src/commonMain/resources/MR/tr/strings.xml @@ -640,7 +640,7 @@ Tek yönlü ilerleme eşitlemesi, gelişmiş eşitleme Uygulamayı yeniden başlat Tüh! - %s beklenmeyen bir hatayla karşılaştı. + %s beklenmeyen bir hatayla karşılaştı. Çökme günlüklerini Discord\'daki destek kanalımızda paylaşmanızı öneririz. Bilinmeyen başlık Geçersiz konum: %s Geçersiz kullanıcı aracısı dizgesi diff --git a/i18n/src/commonMain/resources/MR/uk/strings.xml b/i18n/src/commonMain/resources/MR/uk/strings.xml index ebad7b155..0812c3408 100644 --- a/i18n/src/commonMain/resources/MR/uk/strings.xml +++ b/i18n/src/commonMain/resources/MR/uk/strings.xml @@ -627,7 +627,7 @@ Рядок User agent не може бути пустим Популярне Автоматичне завантаження під час читання - %s зіткнулися з неочікуваною помилкою. + %s зіткнулися з неочікуваною помилкою. Ми пропонуємо вам поділитися журналами збоїв у нашому каналі підтримки на Discord. Тема, формат дати та часу Категорії, глобальне оновлення, гортання розділів Режим читання, відображення, навігація diff --git a/i18n/src/commonMain/resources/MR/vi/strings.xml b/i18n/src/commonMain/resources/MR/vi/strings.xml index d2a7ce75f..9cb3d6486 100644 --- a/i18n/src/commonMain/resources/MR/vi/strings.xml +++ b/i18n/src/commonMain/resources/MR/vi/strings.xml @@ -680,7 +680,7 @@ Giấu những truyện đã có trong thư viện %d phút Đang kiểm tra những truyện đã tải xuống - %s đã có lỗi. + %s đã có lỗi. Bạn nên chia sẻ tệp báo lỗi tạm ở trong kênh hỗ trợ của chúng tôi trên Discord. Cập nhật danh mục Truyện này đã có sẵn trong thư viện bạn. \n diff --git a/i18n/src/commonMain/resources/MR/zh-rTW/strings.xml b/i18n/src/commonMain/resources/MR/zh-rTW/strings.xml index d237d7801..9e761916a 100644 --- a/i18n/src/commonMain/resources/MR/zh-rTW/strings.xml +++ b/i18n/src/commonMain/resources/MR/zh-rTW/strings.xml @@ -638,7 +638,7 @@ 傾印當機記錄、電池效能最佳化 重新啟動應用程式 哎呀! - 「%s」發生了未預期的錯誤。 + 「%s」發生了未預期的錯誤。我們建議你將當機記錄分享至我們位於 Discord 上的 support 頻道。 類別、全域更新、目錄滑動動作 來源、擴充套件、全域搜尋 無效的位置:%s From 71931cf6976cd6c71bbc6a90de4fe795dd4a6c38 Mon Sep 17 00:00:00 2001 From: AntsyLich <59261191+AntsyLich@users.noreply.github.com> Date: Mon, 15 Jan 2024 20:55:26 +0600 Subject: [PATCH 06/28] Add back analytics --- app/build.gradle.kts | 7 ++++ app/proguard-rules.pro | 4 +++ app/src/main/AndroidManifest.xml | 10 ++++++ app/src/standard/google-services.json | 48 +++++++++++++++++++++++++++ build.gradle.kts | 1 + gradle/libs.versions.toml | 3 ++ 6 files changed, 73 insertions(+) create mode 100644 app/src/standard/google-services.json diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 17871bd8a..dec3efc91 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -8,6 +8,10 @@ plugins { id("com.github.zellius.shortcut-helper") } +if (gradle.startParameter.taskRequests.toString().contains("Standard")) { + apply() +} + shortcutHelper.setFilePath("./shortcuts.xml") val SUPPORTED_ABIS = setOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64") @@ -238,6 +242,9 @@ dependencies { // Logging implementation(libs.logcat) + // Crash reports/analytics + "standardImplementation"(libs.firebase.analytics) + // Shizuku implementation(libs.bundles.shizuku) diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index f3538e0fd..64220f2b1 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -71,3 +71,7 @@ # XmlUtil -keep public enum nl.adaptivity.xmlutil.EventType { *; } + +# Firebase +-keep class com.google.firebase.installations.** { *; } +-keep interface com.google.firebase.installations.** { *; } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f73e2e706..30805627c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -33,6 +33,11 @@ + + + + + + diff --git a/app/src/standard/google-services.json b/app/src/standard/google-services.json new file mode 100644 index 000000000..7992dd97f --- /dev/null +++ b/app/src/standard/google-services.json @@ -0,0 +1,48 @@ +{ + "project_info": { + "project_number": "82031285239", + "project_id": "mihonapp", + "storage_bucket": "mihonapp.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:82031285239:android:336ed6dceef55c357594f2", + "android_client_info": { + "package_name": "app.mihon" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyDTvOxBQnuXADx5isKxoynPG0nlAO8bQbk" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:82031285239:android:b7440cbdd0d33c9d7594f2", + "android_client_info": { + "package_name": "app.mihon.debug" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyDTvOxBQnuXADx5isKxoynPG0nlAO8bQbk" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + } + ], + "configuration_version": "1" +} diff --git a/build.gradle.kts b/build.gradle.kts index d684e4a35..ad3a21a2e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,6 +6,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile buildscript { dependencies { classpath(libs.android.shortcut.gradle) + classpath(libs.google.services.gradle) classpath(libs.aboutLibraries.gradle) classpath(libs.sqldelight.gradle) classpath(libs.moko.gradle) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d0520faa8..479c3b44a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -12,6 +12,7 @@ voyager = "1.0.0" [libraries] desugar = "com.android.tools:desugar_jdk_libs:2.0.4" android-shortcut-gradle = "com.github.zellius:android-shortcut-gradle-plugin:0.1.2" +google-services-gradle = "com.google.gms:google-services:4.4.0" rxjava = "io.reactivex:rxjava:1.3.8" @@ -66,6 +67,8 @@ moko-gradle = { module = "dev.icerock.moko:resources-generator", version.ref = " logcat = "com.squareup.logcat:logcat:0.1" +firebase-analytics = "com.google.firebase:firebase-analytics-ktx:21.5.0" + aboutLibraries-gradle = { module = "com.mikepenz.aboutlibraries.plugin:aboutlibraries-plugin", version.ref = "aboutlib_version" } aboutLibraries-compose = { module = "com.mikepenz:aboutlibraries-compose-m3", version.ref = "aboutlib_version" } From 4b594fc11f05fc60a905bf827610a2176932a06c Mon Sep 17 00:00:00 2001 From: AntsyLich <59261191+AntsyLich@users.noreply.github.com> Date: Mon, 15 Jan 2024 21:03:10 +0600 Subject: [PATCH 07/28] Add back update checker --- .../kanade/tachiyomi/ui/main/MainActivity.kt | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt index 6d1536003..3b5fe77d9 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt @@ -65,6 +65,7 @@ import eu.kanade.tachiyomi.Migrations import eu.kanade.tachiyomi.data.cache.ChapterCache import eu.kanade.tachiyomi.data.download.DownloadCache import eu.kanade.tachiyomi.data.notification.NotificationReceiver +import eu.kanade.tachiyomi.data.updater.AppUpdateChecker import eu.kanade.tachiyomi.data.updater.RELEASE_URL import eu.kanade.tachiyomi.extension.api.ExtensionApi import eu.kanade.tachiyomi.ui.base.activity.BaseActivity @@ -73,6 +74,7 @@ import eu.kanade.tachiyomi.ui.browse.source.globalsearch.GlobalSearchScreen import eu.kanade.tachiyomi.ui.deeplink.DeepLinkScreen import eu.kanade.tachiyomi.ui.home.HomeScreen import eu.kanade.tachiyomi.ui.manga.MangaScreen +import eu.kanade.tachiyomi.ui.more.NewUpdateScreen import eu.kanade.tachiyomi.ui.more.OnboardingScreen import eu.kanade.tachiyomi.util.system.dpToPx import eu.kanade.tachiyomi.util.system.isNavigationBarNeedsScrim @@ -91,6 +93,7 @@ import tachiyomi.core.Constants import tachiyomi.core.util.lang.launchIO import tachiyomi.core.util.system.logcat import tachiyomi.domain.library.service.LibraryPreferences +import tachiyomi.domain.release.interactor.GetApplicationRelease import tachiyomi.i18n.MR import tachiyomi.presentation.core.components.material.Scaffold import tachiyomi.presentation.core.i18n.stringResource @@ -311,6 +314,27 @@ class MainActivity : BaseActivity() { @Composable private fun CheckForUpdates() { val context = LocalContext.current + val navigator = LocalNavigator.currentOrThrow + + // App updates + LaunchedEffect(Unit) { + if (BuildConfig.INCLUDE_UPDATER) { + try { + val result = AppUpdateChecker().checkForUpdate(context) + if (result is GetApplicationRelease.Result.NewUpdate) { + val updateScreen = NewUpdateScreen( + versionName = result.release.version, + changelogInfo = result.release.info, + releaseLink = result.release.releaseLink, + downloadLink = result.release.getDownloadLink(), + ) + navigator.push(updateScreen) + } + } catch (e: Exception) { + logcat(LogPriority.ERROR, e) + } + } + } // Extensions updates LaunchedEffect(Unit) { From 98bdef230a0b1e141a6bfc7c6d2628d8b09dbdd3 Mon Sep 17 00:00:00 2001 From: AntsyLich <59261191+AntsyLich@users.noreply.github.com> Date: Mon, 15 Jan 2024 21:57:31 +0600 Subject: [PATCH 08/28] Replace several reference of Tachiyomi to Mihon --- CODE_OF_CONDUCT.md | 2 +- CONTRIBUTING.md | 4 ++-- README.md | 10 +++++----- .../more/settings/screen/about/AboutScreen.kt | 10 +++++----- i18n/src/commonMain/resources/MR/base/strings.xml | 6 +++--- i18n/src/commonMain/resources/MR/bg/strings.xml | 6 +++--- i18n/src/commonMain/resources/MR/ca/strings.xml | 4 ++-- i18n/src/commonMain/resources/MR/cs/strings.xml | 4 ++-- i18n/src/commonMain/resources/MR/de/strings.xml | 4 ++-- i18n/src/commonMain/resources/MR/el/strings.xml | 4 ++-- i18n/src/commonMain/resources/MR/es/strings.xml | 4 ++-- i18n/src/commonMain/resources/MR/fil/strings.xml | 4 ++-- i18n/src/commonMain/resources/MR/fr/strings.xml | 4 ++-- i18n/src/commonMain/resources/MR/gl/strings.xml | 6 +++--- i18n/src/commonMain/resources/MR/hr/strings.xml | 4 ++-- i18n/src/commonMain/resources/MR/hu/strings.xml | 6 +++--- i18n/src/commonMain/resources/MR/in/strings.xml | 2 +- i18n/src/commonMain/resources/MR/ja/strings.xml | 4 ++-- i18n/src/commonMain/resources/MR/kk/strings.xml | 8 ++++---- i18n/src/commonMain/resources/MR/ko/strings.xml | 8 ++++---- i18n/src/commonMain/resources/MR/lt/strings.xml | 6 +++--- i18n/src/commonMain/resources/MR/lv/strings.xml | 2 +- i18n/src/commonMain/resources/MR/ms/strings.xml | 4 ++-- i18n/src/commonMain/resources/MR/nb-rNO/strings.xml | 4 ++-- i18n/src/commonMain/resources/MR/nl/strings.xml | 6 +++--- i18n/src/commonMain/resources/MR/pt-rBR/strings.xml | 4 ++-- i18n/src/commonMain/resources/MR/pt/strings.xml | 6 +++--- i18n/src/commonMain/resources/MR/ro/strings.xml | 6 +++--- i18n/src/commonMain/resources/MR/ru/strings.xml | 6 +++--- i18n/src/commonMain/resources/MR/sc/strings.xml | 2 +- i18n/src/commonMain/resources/MR/sq/strings.xml | 6 +++--- i18n/src/commonMain/resources/MR/sr/strings.xml | 2 +- i18n/src/commonMain/resources/MR/sv/strings.xml | 2 +- i18n/src/commonMain/resources/MR/tr/strings.xml | 4 ++-- i18n/src/commonMain/resources/MR/uk/strings.xml | 4 ++-- i18n/src/commonMain/resources/MR/vi/strings.xml | 8 ++++---- i18n/src/commonMain/resources/MR/zh-rTW/strings.xml | 4 ++-- 37 files changed, 90 insertions(+), 90 deletions(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index c0001e988..8cbebf496 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -60,7 +60,7 @@ representative at an online or offline event. Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community moderators responsible for enforcement at -the [Tachiyomi Discord server](https://discord.gg/tachiyomi). +the [Mihon Discord server](https://discord.gg/mihon). All complaints will be reviewed and investigated promptly and fairly. All community moderators are obligated to respect the privacy and security of the diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 81e69f498..42c09d267 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,7 +2,7 @@ Looking to report an issue/bug or make a feature request? Please refer to the [R --- -Thanks for your interest in contributing to Tachiyomi! +Thanks for your interest in contributing to Mihon! # Code contributions @@ -30,7 +30,7 @@ To auto-fix some linting errors, run the `ktlintFormat` Gradle task. ## Getting help -- Join [the Discord server](https://discord.gg/tachiyomi) for online help and to ask questions while developing. +- Join [the Discord server](https://discord.gg/mihon) for online help and to ask questions while developing. # Translations diff --git a/README.md b/README.md index 2f73bb170..5055042c3 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ | Build | Stable | Weekly Preview | Contribute | Support Server | |-------|----------|---------|------------|---------| -| [![CI](https://github.com/tachiyomiorg/tachiyomi/actions/workflows/build_push.yml/badge.svg)](https://github.com/tachiyomiorg/tachiyomi/actions/workflows/build_push.yml) | [![stable release](https://img.shields.io/github/release/tachiyomiorg/tachiyomi.svg?maxAge=3600&label=download)](https://github.com/tachiyomiorg/tachiyomi/releases) | [![latest preview build](https://img.shields.io/github/v/release/tachiyomiorg/tachiyomi-preview.svg?maxAge=3600&label=download)](https://github.com/tachiyomiorg/tachiyomi-preview/releases) | [![Translation status](https://hosted.weblate.org/widgets/tachiyomi/-/svg-badge.svg)](https://hosted.weblate.org/engage/tachiyomi/?utm_source=widget) | [![Discord](https://img.shields.io/discord/349436576037732353.svg?label=discord&labelColor=7289da&color=2c2f33&style=flat)](https://discord.gg/tachiyomi) | +| [![CI](https://github.com/tachiyomiorg/tachiyomi/actions/workflows/build_push.yml/badge.svg)](https://github.com/tachiyomiorg/tachiyomi/actions/workflows/build_push.yml) | [![stable release](https://img.shields.io/github/release/tachiyomiorg/tachiyomi.svg?maxAge=3600&label=download)](https://github.com/tachiyomiorg/tachiyomi/releases) | [![latest preview build](https://img.shields.io/github/v/release/tachiyomiorg/tachiyomi-preview.svg?maxAge=3600&label=download)](https://github.com/tachiyomiorg/tachiyomi-preview/releases) | [![Translation status](https://hosted.weblate.org/widgets/tachiyomi/-/svg-badge.svg)](https://hosted.weblate.org/engage/tachiyomi/?utm_source=widget) | [![Discord](https://img.shields.io/discord/1195734228319617024.svg?label=discord&labelColor=7289da&color=2c2f33&style=flat)](https://discord.gg/mihon) | -# ![app icon](./.github/readme-images/app-icon.png)Tachiyomi -Tachiyomi is a free and open source manga reader for Android 6.0 and above. +# ![app icon](./.github/readme-images/app-icon.png)Mihon +Mihon is a free and open source manga reader for Android 6.0 and above. ## Features @@ -29,7 +29,7 @@ Please make sure to read the full guidelines. Your issue may be closed without w
Issues 1. **Before reporting a new issue, take a look at the [FAQ](https://tachiyomi.org/docs/faq/general), the [changelog](https://tachiyomi.org/changelogs/) and the already opened [issues](https://github.com/tachiyomiorg/tachiyomi/issues).** -2. If you are unsure, ask here: [![Discord](https://img.shields.io/discord/349436576037732353.svg)](https://discord.gg/tachiyomi) +2. If you are unsure, ask here: [![Discord](https://img.shields.io/discord/1195734228319617024.svg)](https://discord.gg/mihon)
@@ -70,7 +70,7 @@ See [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md). ## FAQ [See our website.](https://tachiyomi.org/) -You can also reach out to us on [Discord](https://discord.gg/tachiyomi). +You can also reach out to us on [Discord](https://discord.gg/mihon). ## License diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/about/AboutScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/about/AboutScreen.kt index d9587737a..6afe5b842 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/about/AboutScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/about/AboutScreen.kt @@ -121,27 +121,27 @@ object AboutScreen : Screen() { LinkIcon( label = "Discord", icon = CustomIcons.Discord, - url = "https://discord.gg/tachiyomi", + url = "https://discord.gg/mihon", ) LinkIcon( label = "X", icon = CustomIcons.X, - url = "https://x.com/tachiyomiorg", + url = "https://x.com/mihonapp", ) LinkIcon( label = "Facebook", icon = CustomIcons.Facebook, - url = "https://facebook.com/tachiyomiorg", + url = "https://facebook.com/mihonapp", ) LinkIcon( label = "Reddit", icon = CustomIcons.Reddit, - url = "https://www.reddit.com/r/Tachiyomi", + url = "https://www.reddit.com/r/mihonapp", ) LinkIcon( label = "GitHub", icon = CustomIcons.Github, - url = "https://github.com/tachiyomiorg", + url = "https://github.com/mihonapp", ) } } diff --git a/i18n/src/commonMain/resources/MR/base/strings.xml b/i18n/src/commonMain/resources/MR/base/strings.xml index ccb9e8721..5214e41a8 100644 --- a/i18n/src/commonMain/resources/MR/base/strings.xml +++ b/i18n/src/commonMain/resources/MR/base/strings.xml @@ -1,6 +1,6 @@ - Tachiyomi + Mihon On @@ -339,7 +339,7 @@ You have no repos set. Add repo Repo URL - Add additional repos to Tachiyomi. This should be a URL that ends with \"index.min.json\". + Add additional repos to Mihon. This should be a URL that ends with \"index.min.json\". This repo already exists! Delete repo Invalid repo URL @@ -833,7 +833,7 @@ Couldn\'t download chapters. You can try again in the downloads section Couldn\'t download chapters due to low storage space - Warning: large bulk downloads may lead to sources becoming slower and/or blocking Tachiyomi. Tap to learn more. + Warning: large bulk downloads may lead to sources becoming slower and/or blocking Mihon. Tap to learn more. Updating library… (%s) diff --git a/i18n/src/commonMain/resources/MR/bg/strings.xml b/i18n/src/commonMain/resources/MR/bg/strings.xml index 752077949..32d976159 100644 --- a/i18n/src/commonMain/resources/MR/bg/strings.xml +++ b/i18n/src/commonMain/resources/MR/bg/strings.xml @@ -245,7 +245,7 @@ Непотвърдено разширение Следното разширение имаше непотвърден сертификат и не беше активирано. \n -\nЗлонамереното разширение може да види всичката информация за вход в системата на Tachiyomi или да компилира неблагонадежден код. +\nЗлонамереното разширение може да види всичката информация за вход в системата на Mihon или да компилира неблагонадежден код. \n \nПотвърждавайки този сертификат, вие приемате тези рискове. Скорост на анимацията @@ -301,7 +301,7 @@ Ъпдейти на разширенията Нови глави Моля, обновете WebView за по-добра съвместимост - WebView е необходим за Tachiyomi + WebView е необходим за Mihon Грешка при минаването през Cloudflare Глави %1$s Глава %1$s и %2$d още @@ -557,7 +557,7 @@ Неуспешно получаване на списък с разширения На всеки 3 дена Само през Wi-Fi - Предупреждение: големите масови изтегляния могат да доведат до забавяне на източниците и/или блокиране на Tachiyomi. Натиснете тук, за да научите повече. + Предупреждение: големите масови изтегляния могат да доведат до забавяне на източниците и/или блокиране на Mihon. Натиснете тук, за да научите повече. Покажи манга Решетка само с корици Искате ли да изтриете категорията \"%s\"\? diff --git a/i18n/src/commonMain/resources/MR/ca/strings.xml b/i18n/src/commonMain/resources/MR/ca/strings.xml index ba3469681..7a6a3f33f 100644 --- a/i18n/src/commonMain/resources/MR/ca/strings.xml +++ b/i18n/src/commonMain/resources/MR/ca/strings.xml @@ -557,7 +557,7 @@ Actualitzacions de l’aplicació Segueix Informació de l’aplicació - Advertència: Les baixades massa grosses poden fer que les fonts es tornin més lentes i/o bloquin el Tachiyomi. Premeu per a obtenir-ne més informació. + Advertència: Les baixades massa grosses poden fer que les fonts es tornin més lentes i/o bloquin el Mihon. Premeu per a obtenir-ne més informació. Les actualitzacions grosses perjudiquen les fonts i poden implicar actualitzacions més lentes i un augment en l’ús de bateria. Premeu per a obtenir-ne més informació. Amplia automàticament les imatges amples Mostra l’element @@ -784,7 +784,7 @@ Repositoris d’extensions No heu definit cap repositori. Suprimeix el repositori - Afegiu repositoris addicionals al Tachiyomi. Ha de ser un URL que acabi amb «index.min.json». + Afegiu repositoris addicionals al Mihon. Ha de ser un URL que acabi amb «index.min.json». Aquest repositori ja existeix! URL del repositori invàlid Voleu suprimir el repositori «%s»? diff --git a/i18n/src/commonMain/resources/MR/cs/strings.xml b/i18n/src/commonMain/resources/MR/cs/strings.xml index 3101bb62b..553d893ff 100644 --- a/i18n/src/commonMain/resources/MR/cs/strings.xml +++ b/i18n/src/commonMain/resources/MR/cs/strings.xml @@ -542,7 +542,7 @@ Každé 3 dny Jen na Wi-Fi Podrobné protokolování - Varování: hromadné stahování může vést k tomu, že zdroje zpomalí a/nebo zablokují Tachiyomi. Klepnutím se dozvíte více. + Varování: hromadné stahování může vést k tomu, že zdroje zpomalí a/nebo zablokují Mihon. Klepnutím se dozvíte více. Aktualizovat vše Vypisovat podrobné informace do systémového protokolu (sníží výkon aplikace) Aktualizace aplikace @@ -781,7 +781,7 @@ \nVybraná složka: %2$s
Úplná chyba: Chytrá aktualizace - Přidat další repozitáře do Tachiyomi. Měli by to být URL končící \"index.min.json\". + Přidat další repozitáře do Mihon. Měli by to být URL končící \"index.min.json\". Tento repozitář již existuje! Odstranit repozitář Neplatná URL repozitáře diff --git a/i18n/src/commonMain/resources/MR/de/strings.xml b/i18n/src/commonMain/resources/MR/de/strings.xml index a758c1aa6..234c8536a 100644 --- a/i18n/src/commonMain/resources/MR/de/strings.xml +++ b/i18n/src/commonMain/resources/MR/de/strings.xml @@ -545,7 +545,7 @@ Du solltest Kopien der Sicherungen auch an anderen Orten aufbewahren. Sicherungen beinhalten möglicherweise sensible Daten, einschließlich gespeicherter Passwörter. Sei vorsichtig beim Teilen. Nur über WLAN Alle 3 Tage - Achtung: Große Downloads könnten dazu führen, dass Quellen langsamer werden und/oder Tachiyomi blockieren. Tippe, um mehr zu erfahren. + Achtung: Große Downloads könnten dazu führen, dass Quellen langsamer werden und/oder Mihon blockieren. Tippe, um mehr zu erfahren. Alle aktualisieren App-Aktualisierungen Kapitel-Zwischenspeicher beim Öffnen der App löschen @@ -791,7 +791,7 @@ Speicherleitfaden Intelligentes Aktualisieren Repository-URL - Füge zusätzliche Repositorys zu Tachiyomi hinzu. Deren URL sollte mit „index.min.json“ enden. + Füge zusätzliche Repositorys zu Mihon hinzu. Deren URL sollte mit „index.min.json“ enden. Ungültige Repository-URL Neue Kapitel vsl. in ca. %1$s, überprüfe ca. alle %2$s Nord diff --git a/i18n/src/commonMain/resources/MR/el/strings.xml b/i18n/src/commonMain/resources/MR/el/strings.xml index b81f92404..226a7d3d5 100644 --- a/i18n/src/commonMain/resources/MR/el/strings.xml +++ b/i18n/src/commonMain/resources/MR/el/strings.xml @@ -545,7 +545,7 @@ Οι μεγάλες ενημερώσεις βλάπτουν τις πηγές και μπορεί να οδηγήσουν σε πιο αργές ενημερώσεις και σε αυξημένη χρήση της μπαταρίας. Πατήστε για να μάθετε περισσότερα. Μόνο σε Wi-Fi Κάθε 3 ημέρες - Προειδοποίηση: οι μαζικές λήψεις ενδέχεται να οδηγήσουν σε επιβράδυνση των πηγών ή/και αποκλεισμό του Tachiyomi. Πατήστε για να μάθετε περισσότερα. + Προειδοποίηση: οι μαζικές λήψεις ενδέχεται να οδηγήσουν σε επιβράδυνση των πηγών ή/και αποκλεισμό του Mihon. Πατήστε για να μάθετε περισσότερα. Ενημέρωση όλων Ενημερώσεις εφαρμογής Εκκαθάριση της προσωρινής μνήμης κεφαλαίων κατά την εκκίνηση της εφαρμογής @@ -792,7 +792,7 @@ Nord Έξυπνη ενημέρωση URL αποθετηρίου - Προσθέστε επιπλέον αποθετήρια στο Tachiyomi. Αυτό θα πρέπει να είναι ένα URL που τελειώνει με \"index.min.json\". + Προσθέστε επιπλέον αποθετήρια στο Mihon. Αυτό θα πρέπει να είναι ένα URL που τελειώνει με \"index.min.json\". Θέλετε να διαγράψετε το αποθετήριο \"%s\"; Αυτό το αποθετήριο υπάρχει ήδη! Σύντομα diff --git a/i18n/src/commonMain/resources/MR/es/strings.xml b/i18n/src/commonMain/resources/MR/es/strings.xml index c55bdf142..9a9163403 100644 --- a/i18n/src/commonMain/resources/MR/es/strings.xml +++ b/i18n/src/commonMain/resources/MR/es/strings.xml @@ -545,7 +545,7 @@ Es una buena idea tener copias de respaldo fuera de tu dispositivo. También incluyen contraseñas y otros datos privados que seguramente no quieras compartir. Solo con Wi-Fi Cada 3 días - Advertencia: Las descargas grandes pueden llevar a que las fuentes se vuelvan cada vez más lentas y en casos extremos que los servidores limiten o impidan el acceso a Tachiyomi. Toca aquí para más información. + Advertencia: Las descargas grandes pueden llevar a que las fuentes se vuelvan cada vez más lentas y en casos extremos que los servidores limiten o impidan el acceso a Mihon. Toca aquí para más información. Actualizar todas Actualizaciones de la aplicación Limpiar la caché de capítulos al abrir la aplicación @@ -785,7 +785,7 @@ El repositorio ya existe Actualizaciones inteligentes La dirección URL del repositorio no parece ser correcta - Añade más repositorios a Tachiyomi; la dirección URL tiene que terminar en «index.min.json». + Añade más repositorios a Mihon; la dirección URL tiene que terminar en «index.min.json». ¿Seguro que quieres borrar el repositorio «%s»? Borrar repositorio Añadir un repositorio diff --git a/i18n/src/commonMain/resources/MR/fil/strings.xml b/i18n/src/commonMain/resources/MR/fil/strings.xml index db3d3ebc9..8bad24a31 100644 --- a/i18n/src/commonMain/resources/MR/fil/strings.xml +++ b/i18n/src/commonMain/resources/MR/fil/strings.xml @@ -545,7 +545,7 @@ Dapat nagtatabi rin kayo ng mga kopya ng backup sa ibang mga lugar. Ang mga backup ay naglalaman ng sensitibong data tulad ng nakaimbak na password; mag-ingat kung ibahagi ito. Sa Wi-Fi lang Kada 3 araw - Babala: maaaring humantong sa pagbagal at/o pagharang ng mga source sa Tachiyomi ang maramihang pag-download. I-tap para matuto pa. + Babala: maaaring humantong sa pagbagal at/o pagharang ng mga source sa Mihon ang maramihang pag-download. I-tap para matuto pa. Mga update sa app I-update lahat %1$d na entry sa database na wala sa aklatan @@ -790,7 +790,7 @@ Umiiral na ang repo na ito! Tanggalin ang repo URL ng repo - Magdagdag ng mga karagdagang repo sa Tachiyomi. Dapat ito ay isang URL na nagtatapos sa \"index.min.json\". + Magdagdag ng mga karagdagang repo sa Mihon. Dapat ito ay isang URL na nagtatapos sa \"index.min.json\". Di-wastong URL ng repo Gusto mo bang tanggalin ang repo na \"%s\"? Ipasadya ang update frequency: diff --git a/i18n/src/commonMain/resources/MR/fr/strings.xml b/i18n/src/commonMain/resources/MR/fr/strings.xml index da0406b20..56e0641dc 100644 --- a/i18n/src/commonMain/resources/MR/fr/strings.xml +++ b/i18n/src/commonMain/resources/MR/fr/strings.xml @@ -545,7 +545,7 @@ Vous devez également conserver des copies des sauvegardes à d\'autres endroits. Uniquement en Wi-Fi Tous les 3 jours - Attention : les téléchargements massifs peuvent entraîner un ralentissement des sources ou le blocage de Tachiyomi. Appuyez pour en savoir plus. + Attention : les téléchargements massifs peuvent entraîner un ralentissement des sources ou le blocage de Mihon. Appuyez pour en savoir plus. Tout mettre à jour Mises à jour de l\'application Vider le cache de chapitre au lancement de l\'application @@ -782,7 +782,7 @@ Répertoire d\'extension Révoquer les extensions provenant d\'un répertoire additionnel URL du répertoire - Ajouter un répertoire additionnel à Tachiyomi. L\'URL devrait se terminer par « index.min.json ». + Ajouter un répertoire additionnel à Mihon. L\'URL devrait se terminer par « index.min.json ». Ce répertoire existe déjà ! L\'URL du répertoire est invalide Bientôt diff --git a/i18n/src/commonMain/resources/MR/gl/strings.xml b/i18n/src/commonMain/resources/MR/gl/strings.xml index 69b5264ed..ee5a4585a 100644 --- a/i18n/src/commonMain/resources/MR/gl/strings.xml +++ b/i18n/src/commonMain/resources/MR/gl/strings.xml @@ -82,7 +82,7 @@ Esta extensión xa non está dispoñible. Pode que non funcione ben e cause problemas na aplicación. Recoméndase desinstalala. Esta extensión foi firmada cun certificado non confiable e non se activou. \n -\nUnha extensión maliciosa podería ler calquera credencial de inicio de sesión gardado en Tachiyomi ou executar código arbitrario. +\nUnha extensión maliciosa podería ler calquera credencial de inicio de sesión gardado en Mihon ou executar código arbitrario. \n \nConfiando neste certificado aceptas estes riscos. Extensión non confiable @@ -587,7 +587,7 @@ %s pechouse por un problema inesperado. Aconsellámoste que compartas os rexistros de erros na canle de soporte no Discord (en inglés). Reinicia a aplicación Non se atopou ninguna fonte instalada - Advertencia: As baixadas grandes poden facer que as fontes se volvan máis lentas e/ou bloqueen Tachiyomi. Preme para saber máis. + Advertencia: As baixadas grandes poden facer que as fontes se volvan máis lentas e/ou bloqueen Mihon. Preme para saber máis. Abrir no GitHub Xestor de descargas Erro @@ -626,7 +626,7 @@ Non se atopou a ruta do ficheiro da páxina %d Rematada Actualizacións de capítulos - Tachiyomi necesita WebView + Mihon necesita WebView Non se atopou a páxina %d ao separar Xeral Vaia! diff --git a/i18n/src/commonMain/resources/MR/hr/strings.xml b/i18n/src/commonMain/resources/MR/hr/strings.xml index fa45df740..657095031 100644 --- a/i18n/src/commonMain/resources/MR/hr/strings.xml +++ b/i18n/src/commonMain/resources/MR/hr/strings.xml @@ -528,7 +528,7 @@ Instaliranje proširenja … Podaci programa Samo putem Wi-Fi veze - Upozorenje: velika skupna preuzimanja mogu dovesti do usporavanja izvora i/ili blokiranja Tachiyomija. Za daljnje informacije dodirni. + Upozorenje: velika skupna preuzimanja mogu dovesti do usporavanja izvora i/ili blokiranja Mihonja. Za daljnje informacije dodirni. Plavozelena i tirkiz Broj unosa u bazi odataka koje nisu u zbirci: %1$d Opširno zapisivanje @@ -789,7 +789,7 @@ Dodaj repozitorij Izbriši repozitorij URL repozitorija - Dodaj dodatne repozitorije u Tachiyomi. To bi trebao biti URL koji završava s „index.min.json”. + Dodaj dodatne repozitorije u Mihon. To bi trebao biti URL koji završava s „index.min.json”. Neispravan URL repozitorija Opozovi pouzdana nepoznata proširenja Želiš li izbrisati repozitorij „%s”? diff --git a/i18n/src/commonMain/resources/MR/hu/strings.xml b/i18n/src/commonMain/resources/MR/hu/strings.xml index 9eccc958d..3a9eff415 100644 --- a/i18n/src/commonMain/resources/MR/hu/strings.xml +++ b/i18n/src/commonMain/resources/MR/hu/strings.xml @@ -245,7 +245,7 @@ Másolás Áttelepítés %1$s. fejezet - A Tachiyomi működéséhez WebView szükséges + A Mihon működéséhez WebView szükséges %1$s. fejezetek A(z) %1$s. fejezet és %2$d egyéb fejezetek %1$s:%2$s, %3$d. oldal @@ -273,7 +273,7 @@ Licenszelt Ezt a kiterjesztést nem megbízható tanúsítvánnyal írták alá, és nem lett aktiválva. \n -\nEgy rosszindulatú kiterjesztés elolvashatja a Tachiyomiban tárolt bejelentkezési adatokat, vagy tetszőleges kódot futtathat. +\nEgy rosszindulatú kiterjesztés elolvashatja a Mihonban tárolt bejelentkezési adatokat, vagy tetszőleges kódot futtathat. \n \nAz ebben a tanúsítványban való megbízással, elfogadja ezeket a kockázatokat. Bizalom @@ -506,7 +506,7 @@ Új fejezet Biztonsági mentés már folyamatban van Nincs telepítve - Figyelmeztetés: a tömeges letöltések a források lelassulásához és/vagy a Tachiyomi leállásához vezethetnek. Koppintson további információért. + Figyelmeztetés: a tömeges letöltések a források lelassulásához és/vagy a Mihon leállásához vezethetnek. Koppintson további információért. Koppintson további információért Nem sikerült a fedlap frissítése Először adja a mangát a könyvtárhoz diff --git a/i18n/src/commonMain/resources/MR/in/strings.xml b/i18n/src/commonMain/resources/MR/in/strings.xml index 669a9a547..1c171faf2 100644 --- a/i18n/src/commonMain/resources/MR/in/strings.xml +++ b/i18n/src/commonMain/resources/MR/in/strings.xml @@ -536,7 +536,7 @@ Pemasang Total entri Pembaruan berskala besar membahayakan sumber, dapat membuat pembaruan lambat dan meningkatkan penggunaan baterai. Ketuk untuk mempelajari lebih lanjut. - Peringatan: mengunduh dalam jumlah besar bisa menyebabkan sumber menjadi lambat dan/atau memblokir Tachiyomi. Ketuk untuk mempelajari lebih lanjut. + Peringatan: mengunduh dalam jumlah besar bisa menyebabkan sumber menjadi lambat dan/atau memblokir Mihon. Ketuk untuk mempelajari lebih lanjut. Peringatan Cetak catatan berlebih ke catatan sistem (mengurangi kinerja aplikasi) Anda juga harus menyimpan salinan cadangan di tempat lain. Cadangan mungkin berisi data sensitif termasuk kata sandi yang tersimpan; berhati-hatilah jika berbagi. diff --git a/i18n/src/commonMain/resources/MR/ja/strings.xml b/i18n/src/commonMain/resources/MR/ja/strings.xml index 6ca795be4..df4e258b2 100644 --- a/i18n/src/commonMain/resources/MR/ja/strings.xml +++ b/i18n/src/commonMain/resources/MR/ja/strings.xml @@ -543,7 +543,7 @@ 言語 警告 Verboseログ出力 - 警告: 大量の一括ダウンロードにより、ソースは遅くなったり、Tachiyomiを接続禁止したりする恐れがあります。詳しくはタップでご覧ください。 + 警告: 大量の一括ダウンロードにより、ソースは遅くなったり、Mihonを接続禁止したりする恐れがあります。詳しくはタップでご覧ください。 3日ごと Wi-Fi接続時のみ 全て更新 @@ -790,7 +790,7 @@ 不明な拡張機能の信頼を取り消す 拡張機能リポジトリ リポジトリURLが無効です - Tachiyomiにリポジトリを追加します。「index.min.json」で終わるURLを入力してください。 + Mihonにリポジトリを追加します。「index.min.json」で終わるURLを入力してください。 リポジトリを追加 ソース リポジトリを開く 古いバージョンからバージョンアップしたばかりで、選択に悩んでいますか?ストレージ ガイドにご参照ください。 diff --git a/i18n/src/commonMain/resources/MR/kk/strings.xml b/i18n/src/commonMain/resources/MR/kk/strings.xml index 8e523fe63..7cc9ab12e 100644 --- a/i18n/src/commonMain/resources/MR/kk/strings.xml +++ b/i18n/src/commonMain/resources/MR/kk/strings.xml @@ -239,7 +239,7 @@ Сенімсіз кеңейту Бұл кеңейту сенімсіз сертификатпен қол қойылған және іске қосылмаған. \n -\nЗиянды кеңейту Tachiyomi-де сақталған кез келген кіру тіркелгі деректерін оқуы немесе еркін кодты орындауы мүмкін. +\nЗиянды кеңейту Mihon-де сақталған кез келген кіру тіркелгі деректерін оқуы немесе еркін кодты орындауы мүмкін. \n \nОсы сертификатқа сену арқылы сіз осы қауіп-қатерді қабылдайсыз. 18+ @@ -493,7 +493,7 @@ Қайта оқылуда Оқылудағылар Тізімі Жаңалтулар жоқ - Tachiyomi-ны қолдану үшін WebView керек + Mihon-ны қолдану үшін WebView керек Әдепкі тарау параметрлері жаңартылды Желі байланысы жоқ Сіздің кітапханаңызда санаттар жоқ. @@ -613,7 +613,7 @@ Қателік пайда болды Жүктеуіш Файл таңдайтын қолданба табылмады - Жаңа нұсқа Tachiyomi сайтында қолжетімді. F-Droid қолданбасының бейресми нұсқасынан көшуді білу үшін басыңыз. + Жаңа нұсқа Mihon сайтында қолжетімді. F-Droid қолданбасының бейресми нұсқасынан көшуді білу үшін басыңыз. Оқылғандар Тізімі Тоқтап тұрғандар Тізімі Келісі тарау табылмады @@ -630,7 +630,7 @@ Жеке сүзгі Көп жаңалтулар саны дереккөздер жұмысын баяулата және батарея жұмысын өтімін көбейте алады. Көбірек білу үшін басыңыз. %1$s-Тарау - Ескерту: Көп жүктеулер саны дереккөздер жұмысын баяулата алады және/немесе Tachiyomi бұғатталына алады. Толығырақ оқу үшін басыңыз. + Ескерту: Көп жүктеулер саны дереккөздер жұмысын баяулата алады және/немесе Mihon бұғатталына алады. Толығырақ оқу үшін басыңыз. Жаңа тараулар табылды Автоматты жүктеу, алдын ала жүктеу Көбірек diff --git a/i18n/src/commonMain/resources/MR/ko/strings.xml b/i18n/src/commonMain/resources/MR/ko/strings.xml index fba583168..95f966e83 100644 --- a/i18n/src/commonMain/resources/MR/ko/strings.xml +++ b/i18n/src/commonMain/resources/MR/ko/strings.xml @@ -93,7 +93,7 @@ 신뢰되지않음 삭제 신뢰할 수 없는 확장 앱 - 일부 악의적인 확장 앱은 Tachiyomi에 저장된 로그인 정보를 읽거나 임의의 코드를 실행할 수도 있습니다. + 일부 악의적인 확장 앱은 Mihon에 저장된 로그인 정보를 읽거나 임의의 코드를 실행할 수도 있습니다. \n \n이 확장 앱을 신뢰하면 이러한 위험에 노출될 수 있습니다. 전체화면 @@ -465,7 +465,7 @@ 내역 삭제 기록이 삭제되었습니다 저장 공간이 부족하여 회차를 다운로드 할 수 없습니다 - 경고: 대량 다운로드는 소스가 느려지거나 Tachiyomi를 차단할 수 있습니다. 탭하여 자세히 알아보기. + 경고: 대량 다운로드는 소스가 느려지거나 Mihon를 차단할 수 있습니다. 탭하여 자세히 알아보기. 대규모 업데이트는 소스에 피해를 입히고 업데이트가 느려지고 배터리 사용량이 증가할 수 있습니다. 탭하여 자세히 알아보기. %1$s화 %1$d개의 업데이트가 실패했습니다 @@ -474,7 +474,7 @@ 읽지 않은 만화를 건너 뛰었습니다 이 안드로이드 버전은 더이상 지원되지 않습니다 Cloudflare를 통과하지 못했습니다 - Tachiyomi 앱의 기능을 사용하려면 WebView가 필요합니다 + Mihon 앱의 기능을 사용하려면 WebView가 필요합니다 호환성을 위해 WebView 어플리케이션을 업데이트 해 주세요 넓은 이미지 이동 이 확장 프로그램은 더 이상 사용할 수 없습니다. 제대로 작동하지 않을 수 있으며 앱에 문제가 발생할 수 있습니다. 제거하는 것이 좋습니다. @@ -763,7 +763,7 @@ 신뢰한 알수없는 확장 앱 신뢰 취소 자동 백업, 챕터 다운로드 및 로컬 소스에 사용됩니다. 사용자 지정 업데이트 빈도: - Tachiyomi에 추가적으로 저장소를 추가합니다. \"index.min.json\"으로 끝나는 URL이어야 합니다. + Mihon에 추가적으로 저장소를 추가합니다. \"index.min.json\"으로 끝나는 URL이어야 합니다. 소스 저장소 열기 곧 출시 먼저 몇 가지 사항을 설정해 보겠습니다. 나중에 언제든지 설정에서 변경할 수도 있습니다. diff --git a/i18n/src/commonMain/resources/MR/lt/strings.xml b/i18n/src/commonMain/resources/MR/lt/strings.xml index b5b748cbd..fdc51805a 100644 --- a/i18n/src/commonMain/resources/MR/lt/strings.xml +++ b/i18n/src/commonMain/resources/MR/lt/strings.xml @@ -188,7 +188,7 @@ Šis plėtinys nebėra prieinamas. Plėtinys gali veikti netinkamai arba sukelti problemas programėlėje. Rekomenduojama išdiegti plėtinį. Šis plėtinys buvo pasirašytas nepatikimu sertifikatu ir nebuvo aktyvuotas. \n -\nPlėtinys, su negeranoriškais ketinimais, gali perskaityti prisijungimo duomenys patalpintus Tachiyomi arba gali paleisti kenkėjišką kodą. +\nPlėtinys, su negeranoriškais ketinimais, gali perskaityti prisijungimo duomenys patalpintus Mihon arba gali paleisti kenkėjišką kodą. \n \nJūs priimate šias rizikas pasitikėdami sertifikatu. Nepatikimas plėtinys @@ -353,7 +353,7 @@ Prieš atlikdami šį veiksmą, pridėkite įrašą į savo biblioteką Praleista, nes nėra perskaitytų skyrių Nepavyko apeiti \"Cloudflare\" - \"WebView\" reikalingas \"Tachiyomi\" + \"WebView\" reikalingas \"Mihon\" Šaltinis nerastas Pasirinkite šaltinį, iš kurio norite perkelti Perkelti @@ -480,7 +480,7 @@ Nėra „Wi-Fi“ ryšio Progresas Atsarginė kopija jau kuriama - Įspėjimas: dėl didelių masinių atsisiuntimų šaltiniai gali tapti lėtesni ir (arba) jie blokuoti \"Tachiyomi\". Bakstelėkite , jei norite sužinoti daugiau. + Įspėjimas: dėl didelių masinių atsisiuntimų šaltiniai gali tapti lėtesni ir (arba) jie blokuoti \"Mihon\". Bakstelėkite , jei norite sužinoti daugiau. Nauja versija pasiekiama oficialiuose leidiniuose. Bakstelėkite , kad sužinotumėte, kaip pereiti iš neoficialių \"F-Droid\" leidinių. Išjungti akumuliatoriaus optimizavimą Atkūrimas baigtas diff --git a/i18n/src/commonMain/resources/MR/lv/strings.xml b/i18n/src/commonMain/resources/MR/lv/strings.xml index 13c41176d..72534b8bd 100644 --- a/i18n/src/commonMain/resources/MR/lv/strings.xml +++ b/i18n/src/commonMain/resources/MR/lv/strings.xml @@ -512,7 +512,7 @@ Vai izmantot šo attēlu kā vāku\? Priekš šīs sērijas Pamests - Brīdinājums: liela apjoma lejupielāde var izraisīt to, ka avoti kļūst lēnāki un/vai bloķē Tachiyomi. Pieskarieties, lai uzzinātu vairāk. + Brīdinājums: liela apjoma lejupielāde var izraisīt to, ka avoti kļūst lēnāki un/vai bloķē Mihon. Pieskarieties, lai uzzinātu vairāk. Izlaists, jo neviena nodaļa nav izlasīta Atlasiet vāka attēlu Atlasiet dublējuma failu diff --git a/i18n/src/commonMain/resources/MR/ms/strings.xml b/i18n/src/commonMain/resources/MR/ms/strings.xml index 701d18ed4..befa0d041 100644 --- a/i18n/src/commonMain/resources/MR/ms/strings.xml +++ b/i18n/src/commonMain/resources/MR/ms/strings.xml @@ -545,7 +545,7 @@ Kemas kini yang besar membahayakan sumber dan mengakibatkan sumber menjadi perlahan dan juga peningkatan penggunaan bateri. Ketik untuk ketahui selebihnya. Hanya menggunakan Wi-Fi Setiap 3 hari - Amaran: muat turun secara pukal besar boleh menyebabkan sumber menjadi lebih perlahan dan/atau menyekat Tachiyomi. Ketik untuk ketahui selebihnya. + Amaran: muat turun secara pukal besar boleh menyebabkan sumber menjadi lebih perlahan dan/atau menyekat Mihon. Ketik untuk ketahui selebihnya. Kemas kini semua Kemas kini aplikasi Hapus cache bab apabila membuka aplikasi @@ -783,7 +783,7 @@ Skor penjejak Batalkan sambungan dipercayakan yang tidak diketahui Anda tidak menetapkan repositori. - Tambah repositori tambahan pada Tachiyomi. Ini mestilah URL yang berakhir dengan \"index.min.json\". + Tambah repositori tambahan pada Mihon. Ini mestilah URL yang berakhir dengan \"index.min.json\". Buka sumber repositori Tidak lama lagi Scanlator diff --git a/i18n/src/commonMain/resources/MR/nb-rNO/strings.xml b/i18n/src/commonMain/resources/MR/nb-rNO/strings.xml index 81b1fda4c..4e3e142f4 100644 --- a/i18n/src/commonMain/resources/MR/nb-rNO/strings.xml +++ b/i18n/src/commonMain/resources/MR/nb-rNO/strings.xml @@ -557,7 +557,7 @@ Ingenting å fjerne Hoppet over fordi det er uleste kapitler Hoppet over fordi serien er fullført - Advarsel: store bulknedlastinger kan føre til at kilder blir tregere og/eller blokkerer Tachiyomi. Trykk for å lære mer. + Advarsel: store bulknedlastinger kan føre til at kilder blir tregere og/eller blokkerer Mihon. Trykk for å lære mer. For hjelp til å fikse bibliotekoppdateringsfeil, se %1$s Kun omslags-rutenett Hopp over oppføringer som ikke er påbegynt @@ -782,7 +782,7 @@ Batteribruk i bakgrunnen For å installere kildeutvidelser. Ugyldig pakkebrønn URL - Legg til ekstra pakkebrønner i Tachiyomi. URL-en må ende med \"index.min.json\". + Legg til ekstra pakkebrønner i Mihon. URL-en må ende med \"index.min.json\". Få varsler for oppdateringer i biblioteket og mer. Tillatelse er nødvendig for å installere utvidelser. Trykk her for å tillate. Ønsker du å slette pakkebrønnen \"%s\"? diff --git a/i18n/src/commonMain/resources/MR/nl/strings.xml b/i18n/src/commonMain/resources/MR/nl/strings.xml index aefff4fbd..2a19fa1aa 100644 --- a/i18n/src/commonMain/resources/MR/nl/strings.xml +++ b/i18n/src/commonMain/resources/MR/nl/strings.xml @@ -245,7 +245,7 @@ Niet vertrouwde extensie Deze extensie is door een niet vertrouwd certificaat ondertekend en is niet geactiveerd. \n -\nEen kwaadaardige extensie zou alle log-in gegevens kunnen uitlezen in Tachiyomi of arbitraire code uit kunnen voeren. +\nEen kwaadaardige extensie zou alle log-in gegevens kunnen uitlezen in Mihon of arbitraire code uit kunnen voeren. \n \nDoor dit certificaat te vertrouwen accepteer je deze risico\'s. Dubbeltik animatiesnelheid @@ -328,7 +328,7 @@ Herstellen mislukt Er wordt al een back-up hersteld Extensie-updates - WebView is vereist voor Tachiyomi + WebView is vereist voor Mihon Hoofdstukken %1$s Hoofdstuk %1$s en %2$d meer Hoofdstuk %1$s @@ -549,7 +549,7 @@ Totaal aantal items Houd uitgebreide logs bij in de systeemlogs (verslechterd de werking van de app) App updates - Waarschuwing: grote bulk downloads kunnen leiden tot trager werkende bronnen en/of Tachiyomi blokkeren + Waarschuwing: grote bulk downloads kunnen leiden tot trager werkende bronnen en/of Mihon blokkeren Alles updaten Iedere 3 dagen Voor hulp bij het oplossen van fouten bij het bijwerken van de bibliotheek, zie %1$s diff --git a/i18n/src/commonMain/resources/MR/pt-rBR/strings.xml b/i18n/src/commonMain/resources/MR/pt-rBR/strings.xml index 17a4d1d02..3b8063460 100644 --- a/i18n/src/commonMain/resources/MR/pt-rBR/strings.xml +++ b/i18n/src/commonMain/resources/MR/pt-rBR/strings.xml @@ -545,7 +545,7 @@ Você deve manter cópias em outros locais também. Backups podem ter informações sensíveis incluindo senhas salvas; tenha cuidado se compartilhar. Somente no Wi-Fi A cada 3 dias - Aviso: grandes downloads em massa podem levar as fontes a ficarem lentas e/ou começarem a bloquear o Tachiyomi. Toque para saber mais. + Aviso: grandes downloads em massa podem levar as fontes a ficarem lentas e/ou começarem a bloquear o Mihon. Toque para saber mais. Atualizar tudo Atualizações do aplicativo Limpar o cache de capítulos ao abrir o aplicativo @@ -785,7 +785,7 @@ Este repositório já existe! Atualização inteligente URL do repositório inválido - Adiciona repositórios adicionais ao Tachiyomi. Deve ser uma URL que termine com \"index.min.json\". + Adiciona repositórios adicionais ao Mihon. Deve ser uma URL que termine com \"index.min.json\". Você deseja deletar o repositório \"%s\"? Deletar repositório Adicionar repositório diff --git a/i18n/src/commonMain/resources/MR/pt/strings.xml b/i18n/src/commonMain/resources/MR/pt/strings.xml index 1e022fbb7..0881bcd09 100644 --- a/i18n/src/commonMain/resources/MR/pt/strings.xml +++ b/i18n/src/commonMain/resources/MR/pt/strings.xml @@ -197,7 +197,7 @@ Extensão não confiável Esta extensão possui um certificado não confiável e não foi ativada. \n -\nUma extensão maliciosa podia ler qualquer credencial de entrada armazenada no Tachiyomi ou executar código arbitrário. +\nUma extensão maliciosa podia ler qualquer credencial de entrada armazenada no Mihon ou executar código arbitrário. \n \nAo confiar neste certificado serão aceites estes riscos. Cortar bordas @@ -350,7 +350,7 @@ Cópia de segurança falhou Cópia de segurança já em progresso Apenas transferidos - WebView é necessária para Tachiyomi + WebView é necessária para Mihon Cap. %1$s - %2$s Adicionar à monitorização Menos @@ -536,7 +536,7 @@ Guardar como ficheiro CBZ %1$d itens que não estão na biblioteca no banco de dados Nada para limpar - Aviso: downloads grandes em massa podem levar as fontes a ficarem lentas e/ou começarem a bloquear o Tachiyomi. Toque para saber mais. + Aviso: downloads grandes em massa podem levar as fontes a ficarem lentas e/ou começarem a bloquear o Mihon. Toque para saber mais. Grandes atualizações prejudicam as fontes e podem levar a atualizações lentas e ainda ao aumento do uso da bateria. Toque para saber mais. Para obter ajuda sobre como corrigir erros de atualização da biblioteca, veja %1$s Limpar a cache de capítulos ao fechar a app diff --git a/i18n/src/commonMain/resources/MR/ro/strings.xml b/i18n/src/commonMain/resources/MR/ro/strings.xml index 127652b46..8e7e8d7cb 100644 --- a/i18n/src/commonMain/resources/MR/ro/strings.xml +++ b/i18n/src/commonMain/resources/MR/ro/strings.xml @@ -97,7 +97,7 @@ Extensie nesigură Extensia a fost semnată cu un certificat nesigur și nu a fost activată. \n -\nO extensie periculoasă ar putea citi orice date de logare stocate în Tachiyomi sau executa cod periculos. +\nO extensie periculoasă ar putea citi orice date de logare stocate în Mihon sau executa cod periculos. \n \nPrin acordarea încrederii acestui certificat acceptați riscurile menționate. Ecran complet @@ -346,7 +346,7 @@ Urmărește În bibliotecă Adaugă în bibliotecă - WebView este necesar pentru Tachiyomi + WebView este necesar pentru Mihon Ch. %1$s - %2$s Mai puțin Mai mult @@ -505,7 +505,7 @@ Ignorata deoarece seria este completa Ignorat din cauza lipsei de capitolel citite Format de capitol invalid - Atentie : actualizarile mari la gramada vor face sursele mai incete si pot/vor bloca Tachiyomi. Apasa pentru mai multe informatii. + Atentie : actualizarile mari la gramada vor face sursele mai incete si pot/vor bloca Mihon. Apasa pentru mai multe informatii. Ghidul de inceput %1$d actualizari esuate Ignorata deoarece sunt capitole necitite diff --git a/i18n/src/commonMain/resources/MR/ru/strings.xml b/i18n/src/commonMain/resources/MR/ru/strings.xml index 5380e74c7..9ed0c48ba 100644 --- a/i18n/src/commonMain/resources/MR/ru/strings.xml +++ b/i18n/src/commonMain/resources/MR/ru/strings.xml @@ -545,7 +545,7 @@ Настоятельно рекомендуется хранить резервные копии в других местах или сервисах. Резервные копии могут содержать конфиденциальную информацию, как, например, пароли. Будьте осторожны при их отправке. Только по Wi-Fi Каждые 3 дня - Предупреждение: Большое количество загрузок может привести к замедлению работы источников и/или блокировке Tachiyomi. Нажмите для подробностей. + Предупреждение: Большое количество загрузок может привести к замедлению работы источников и/или блокировке Mihon. Нажмите для подробностей. Обновить все Обновления приложения Очищать кэш глав при запуске приложения @@ -572,7 +572,7 @@ Портретная наоборот Переместить серию в начало Отключено - Новая версия доступна на оф. странице Tachiyomi. Нажмите, чтобы узнать, как перенестись с неофициальной версии из F-Droid. + Новая версия доступна на оф. странице Mihon. Нажмите, чтобы узнать, как перенестись с неофициальной версии из F-Droid. Не удалось сохранить изображение Нет элементов в библиотеке для резервирования Открыть в GitHub @@ -785,7 +785,7 @@ Этот репозиторий уже существует! Умное обновление Недопустимый URL-адрес репозитория - Добавить дополнительные репозиторий в Tachiyomi. Это должны быть URL-адреса которые заканчиваться на \"index.min.json\". + Добавить дополнительные репозиторий в Mihon. Это должны быть URL-адреса которые заканчиваться на \"index.min.json\". Хотите ли вы удалить репозиторий \"%s\"? Удалить репозиторий Добавить репозиторий diff --git a/i18n/src/commonMain/resources/MR/sc/strings.xml b/i18n/src/commonMain/resources/MR/sc/strings.xml index 8924b5a1c..a2e1908e4 100644 --- a/i18n/src/commonMain/resources/MR/sc/strings.xml +++ b/i18n/src/commonMain/resources/MR/sc/strings.xml @@ -549,7 +549,7 @@ Sos agiornamentos mannos diant pòdere fàghere dannu a sas fontes e causare agiornamentos prus lentos e fintzas un\'impreu de sa bateria prus mannu. Toca pro nde ischire de prus. Cada 3 dies Petzi cun su Wi-Fi - Dae cara: sos iscarrigamentos de massa mannos diant pòdere rallentare sas fontes e/o blocare Tachiyomi. Toca pro nde ischire de prus. + Dae cara: sos iscarrigamentos de massa mannos diant pòdere rallentare sas fontes e/o blocare Mihon. Toca pro nde ischire de prus. Agiorna totu Agiornamentos de s\'aplicatzione %1$d elementos chi non sunt in sa biblioteca in sa base de datos diff --git a/i18n/src/commonMain/resources/MR/sq/strings.xml b/i18n/src/commonMain/resources/MR/sq/strings.xml index 23469b0ef..1cd271f26 100644 --- a/i18n/src/commonMain/resources/MR/sq/strings.xml +++ b/i18n/src/commonMain/resources/MR/sq/strings.xml @@ -75,7 +75,7 @@ Udhëzues për fillimin Nuk u gjet asnjë element në këtë kategori Nuk ke kategori. Prekni butonin plus për të krijuar një për organizimin e bibliotekës tuaj. - WebView kërkohet për Tachiyomi + WebView kërkohet për Mihon Dështoi të anashkalojë Cloudflare Nuk ke ende asnjë kategori. Shkarkimet u ndërprenë @@ -291,7 +291,7 @@ Trashëgimia Kjo shtesë u nënshkrua me një certifikatë të pabesueshme dhe nuk u aktivizua. \n -\n Një shtesë me qëllim të keq mund të lexojë çdo kredencial identifikimi të ruajtur në Tachiyomi ose të ekzekutojë kod arbitrar. +\n Një shtesë me qëllim të keq mund të lexojë çdo kredencial identifikimi të ruajtur në Mihon ose të ekzekutojë kod arbitrar. \n \n Duke i besuar kësaj certifikate ju i pranoni këto rreziqe. Kjo shtesë nuk është më e disponueshme. Mund të mos funksionojë siç duhet dhe mund të shkaktojë probleme me aplikacionin. Rekomandohet ta çinstaloni. @@ -617,7 +617,7 @@ %s hasi në një gabim të papritur. Ne ju sugjerojmë që të fotografoni këtë mesazh, të hidhni regjistrat e aksidenteve dhe më pas ta shpërndani në kanalin tonë të mbështetjes në Discord. Rinisni aplikacionin Kapitujt nuk mund të shkarkoheshin për shkak të hapësirës së ulët të ruajtjes - Paralajmërim: shkarkimet e mëdha me shumicë mund të çojnë në ngadalësimin e burimeve dhe/ose bllokimin e Tachiyomi. Trokit për të mësuar më shumë. + Paralajmërim: shkarkimet e mëdha me shumicë mund të çojnë në ngadalësimin e burimeve dhe/ose bllokimin e Mihon. Trokit për të mësuar më shumë. U gjetën kapituj të rinj Trokit për të mësuar më shumë Përditësimi i kopertinës dështoi diff --git a/i18n/src/commonMain/resources/MR/sr/strings.xml b/i18n/src/commonMain/resources/MR/sr/strings.xml index 436d5edac..1c08015da 100644 --- a/i18n/src/commonMain/resources/MR/sr/strings.xml +++ b/i18n/src/commonMain/resources/MR/sr/strings.xml @@ -548,7 +548,7 @@ Историја је избрисана Да ли сте сигурни\? Цела историја ће бити изгубљена. Водич за миграцију извора - Упозорење: велики број преузимања може довести до успоравања извора и/или блокирања Tachiyomi-ја. Додирни да сазнаш више. + Упозорење: велики број преузимања може довести до успоравања извора и/или блокирања Mihon-ја. Додирни да сазнаш више. Велика ажурирања штете изворима и могу довести до споријег ажурирања и повећања потрошње батерије. Кликни да сазнаш више. Ажурирај све Ажурирања апликације diff --git a/i18n/src/commonMain/resources/MR/sv/strings.xml b/i18n/src/commonMain/resources/MR/sv/strings.xml index ee3c2dbac..b26fdcd89 100644 --- a/i18n/src/commonMain/resources/MR/sv/strings.xml +++ b/i18n/src/commonMain/resources/MR/sv/strings.xml @@ -544,7 +544,7 @@ Språk Bara över Wi-Fi Stora uppdateringar skadar källor och kan leda till långsammare uppdateringar samt en ökad batterianvändning. Tryck för att få veta mer. - Varning: stora massnerladdningar kan leda till att källor blir långsamma och/eller blockerar Tachiyomi. Tryck för att få veta mer. + Varning: stora massnerladdningar kan leda till att källor blir långsamma och/eller blockerar Mihon. Tryck för att få veta mer. Var 3:e dag Uppdatera alla Appuppdateringar diff --git a/i18n/src/commonMain/resources/MR/tr/strings.xml b/i18n/src/commonMain/resources/MR/tr/strings.xml index 64e1e7818..6c29808df 100644 --- a/i18n/src/commonMain/resources/MR/tr/strings.xml +++ b/i18n/src/commonMain/resources/MR/tr/strings.xml @@ -544,7 +544,7 @@ Ayrıntılı günlük kaydı Ayrıntılı günlükleri sistem günlüğüne yaz (uygulama performansını düşürür) Yalnızca kablosuz ağda - Uyarı: Büyük toplu indirmeler kaynakların yavaşlamasına ve/veya Tachiyomi\'yi engellemesine neden olabilir. Daha çok öğrenmek için dokunun. + Uyarı: Büyük toplu indirmeler kaynakların yavaşlamasına ve/veya Mihon\'yi engellemesine neden olabilir. Daha çok öğrenmek için dokunun. 3 günde bir Tümünü güncelle Uygulama güncellemeleri @@ -785,7 +785,7 @@ Depolama kılavuzu Depo ekle Depo URL\'si - Tachiyomi\'ye ek depolar ekleyin. Bu, \"index.min.json\" ile biten bir URL olmalıdır. + Mihon\'ye ek depolar ekleyin. Bu, \"index.min.json\" ile biten bir URL olmalıdır. Bu depo zaten var! Depoyu sil Geçersiz depo URL\'si diff --git a/i18n/src/commonMain/resources/MR/uk/strings.xml b/i18n/src/commonMain/resources/MR/uk/strings.xml index 0812c3408..d6e60c477 100644 --- a/i18n/src/commonMain/resources/MR/uk/strings.xml +++ b/i18n/src/commonMain/resources/MR/uk/strings.xml @@ -541,7 +541,7 @@ Записувати докладні журнали до системного журналу (знижує продуктивність застосунку) Попередження: великі оновлення можуть призвести до сповільнення джерел або збільшити використання батареї. Тицьніть задля подробиць. Оновлення застосунку - Попередження: великий об\'єм завантажень може призвести до сповільнення роботи джерел та/або блокуванню Tachiyomi. + Попередження: великий об\'єм завантажень може призвести до сповільнення роботи джерел та/або блокуванню Mihon. Оновити все Ви повинні зберігати декілька резервних копій в інших місцях. Резервні копії можуть містити конфіденційні дані, включно зі збереженими паролями; будьте обережні, якщо ділитеся ними. Попередження @@ -764,7 +764,7 @@ Репозиторії розширень Цей репозиторій вже існує! Посилання на репозиторій - Додати додаткові репозиторії до Tachiyomi. Це повинні бути посилання які закінчуються на \"index.min.json\". + Додати додаткові репозиторії до Mihon. Це повинні бути посилання які закінчуються на \"index.min.json\". Нові глави передбачено будуть випущені приблизно в %1$s, перевіряючи кожні %2$s. Оновлюєтесь з попередньої версії і не впевнені яку обрати? Перегляньте гайд по сховищу для додаткової інформації. Гайд по сховищу diff --git a/i18n/src/commonMain/resources/MR/vi/strings.xml b/i18n/src/commonMain/resources/MR/vi/strings.xml index 9cb3d6486..5721049fa 100644 --- a/i18n/src/commonMain/resources/MR/vi/strings.xml +++ b/i18n/src/commonMain/resources/MR/vi/strings.xml @@ -225,7 +225,7 @@ Tiện ích mở rộng không đáng tin cậy Tiện ích mở rộng này được đăng ký bằng chứng chỉ không đáng tin cậy và chưa được kích hoạt. \n -\nMột tiện ích mở rộng độc hại có thể đọc được bất kỳ thông tin đăng nhập được lưu trữ nào của Tachiyomi hoặc tự ý thay đổi mã nguồn.\t +\nMột tiện ích mở rộng độc hại có thể đọc được bất kỳ thông tin đăng nhập được lưu trữ nào của Mihon hoặc tự ý thay đổi mã nguồn.\t \n \nBạn sẽ chấp nhận những rủi ro khi tin tưởng chứng chỉ này. Tốc độ nhấn đúp hình ảnh động @@ -300,7 +300,7 @@ Bỏ qua các chương đã lọc Màn hình Hiển thị nội dung ở phần rìa - Phần mở rộng này không khả dụng. Nó có thể không chạy và có thể gây ra lỗi với Tachiyomi. Kiến nghị nên Gỡ cài đặt. + Phần mở rộng này không khả dụng. Nó có thể không chạy và có thể gây ra lỗi với Mihon. Kiến nghị nên Gỡ cài đặt. Lỗi thời Cập nhật đang chờ Cập nhật toàn bộ @@ -390,7 +390,7 @@ Lỗi Hoàn thành Quá trình - Tachiyomi yêu cầu phải có WebView + Mihon yêu cầu phải có WebView Phiên bản Android này không còn được hỗ trợ Chương %1$s Chương %1$s và thêm %2$d @@ -547,7 +547,7 @@ Đang cài đặt tiện ích mở rộng… 3 ngày một lần Chỉ qua Wi-Fi - Cảnh báo: các tải xuống hàng loạt lớn có thể dẫn đến các nguồn trở nên chậm hơn và / hoặc chặn Tachiyomi. Nhấn vào để tìm hiểu thêm. + Cảnh báo: các tải xuống hàng loạt lớn có thể dẫn đến các nguồn trở nên chậm hơn và / hoặc chặn Mihon. Nhấn vào để tìm hiểu thêm. Cập nhật ứng dụng Cập nhật tất cả Xóa bộ nhớ đệm các chương khi tắt ứng dụng diff --git a/i18n/src/commonMain/resources/MR/zh-rTW/strings.xml b/i18n/src/commonMain/resources/MR/zh-rTW/strings.xml index 9e761916a..61e262fff 100644 --- a/i18n/src/commonMain/resources/MR/zh-rTW/strings.xml +++ b/i18n/src/commonMain/resources/MR/zh-rTW/strings.xml @@ -545,7 +545,7 @@ 傾印詳細記錄至系統日誌 (將降低應用程式效能) 僅透過 Wi-Fi 每 3 天 - 警告:大量批次下載可能壅塞來源,甚至使其封鎖 Tachiyomi。輕觸以瞭解詳情。 + 警告:大量批次下載可能壅塞來源,甚至使其封鎖 Mihon。輕觸以瞭解詳情。 全部更新 應用程式更新 啟動應用程式時清除章節快取 @@ -786,7 +786,7 @@ 已有該儲存庫! 智慧型更新 無效的儲存庫網址 - 將額外的擴充套件儲存庫新增至 Tachiyomi。此處應填入一個結尾為「index.min.json」的網址。 + 將額外的擴充套件儲存庫新增至 Mihon。此處應填入一個結尾為「index.min.json」的網址。 確定要刪除「%s」儲存庫嗎? 刪除儲存庫 新增儲存庫 From dfb3091e380dda3e9bfb64bf5c9a685cf3a03d0e Mon Sep 17 00:00:00 2001 From: AntsyLich <59261191+AntsyLich@users.noreply.github.com> Date: Mon, 15 Jan 2024 22:43:13 +0600 Subject: [PATCH 09/28] Make the app Android 8+ --- README.md | 2 +- app/src/debug/res/mipmap-hdpi/ic_launcher.png | Bin 2625 -> 0 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 4222 -> 0 bytes app/src/debug/res/mipmap-mdpi/ic_launcher.png | Bin 1500 -> 0 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 2374 -> 0 bytes .../debug/res/mipmap-xhdpi/ic_launcher.png | Bin 2960 -> 0 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 5454 -> 0 bytes .../debug/res/mipmap-xxhdpi/ic_launcher.png | Bin 5641 -> 0 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 10703 -> 0 bytes .../debug/res/mipmap-xxxhdpi/ic_launcher.png | Bin 6537 -> 0 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 13402 -> 0 bytes .../ic_launcher.xml | 0 .../ic_launcher_round.xml | 0 .../java/eu/kanade/domain/ui/UiPreferences.kt | 6 +- .../manga/components/MangaCoverDialog.kt | 8 +- .../settings/screen/SettingsAdvancedScreen.kt | 97 ++++++++---------- .../settings/screen/SettingsReaderScreen.kt | 1 - .../widget/AppThemeModePreferenceWidget.kt | 17 +-- .../kanade/presentation/util/Permissions.kt | 7 +- app/src/main/java/eu/kanade/tachiyomi/App.kt | 27 +++-- .../data/coil/TachiyomiImageDecoder.kt | 4 +- .../data/notification/NotificationReceiver.kt | 23 ++--- .../extension/installer/ShizukuInstaller.kt | 7 +- .../ui/reader/loader/ZipPageLoader.kt | 6 +- .../tachiyomi/util/storage/FileExtensions.kt | 8 +- .../util/system/ContextExtensions.kt | 10 +- .../util/system/NetworkExtensions.kt | 3 +- .../util/system/NetworkStateTracker.kt | 42 ++------ .../sc_collections_bookmark_48dp.xml | 24 ----- .../main/res/drawable-v26/sc_explore_48dp.xml | 21 ---- .../main/res/drawable-v26/sc_history_48dp.xml | 21 ---- .../res/drawable-v26/sc_new_releases_48dp.xml | 21 ---- .../drawable/sc_collections_bookmark_48dp.xml | 44 ++++---- app/src/main/res/drawable/sc_explore_48dp.xml | 38 +++---- app/src/main/res/drawable/sc_history_48dp.xml | 38 +++---- .../res/drawable/sc_new_releases_48dp.xml | 38 +++---- app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 2582 -> 0 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 4361 -> 0 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 1547 -> 0 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 2440 -> 0 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 3013 -> 0 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 5568 -> 0 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 5892 -> 0 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 11097 -> 0 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 7022 -> 0 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 14070 -> 0 bytes .../ic_launcher.xml | 0 .../ic_launcher_round.xml | 0 buildSrc/src/main/kotlin/AndroidConfig.kt | 2 +- .../util/system/WebViewClientCompat.kt | 3 - .../tachiyomi/util/system/WebViewUtil.kt | 15 +-- 51 files changed, 177 insertions(+), 356 deletions(-) delete mode 100644 app/src/debug/res/mipmap-hdpi/ic_launcher.png delete mode 100644 app/src/debug/res/mipmap-hdpi/ic_launcher_round.png delete mode 100644 app/src/debug/res/mipmap-mdpi/ic_launcher.png delete mode 100644 app/src/debug/res/mipmap-mdpi/ic_launcher_round.png delete mode 100644 app/src/debug/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 app/src/debug/res/mipmap-xhdpi/ic_launcher_round.png delete mode 100644 app/src/debug/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 app/src/debug/res/mipmap-xxhdpi/ic_launcher_round.png delete mode 100644 app/src/debug/res/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 app/src/debug/res/mipmap-xxxhdpi/ic_launcher_round.png rename app/src/debug/res/{mipmap-anydpi-v26 => mipmap}/ic_launcher.xml (100%) rename app/src/debug/res/{mipmap-anydpi-v26 => mipmap}/ic_launcher_round.xml (100%) delete mode 100644 app/src/main/res/drawable-v26/sc_collections_bookmark_48dp.xml delete mode 100644 app/src/main/res/drawable-v26/sc_explore_48dp.xml delete mode 100644 app/src/main/res/drawable-v26/sc_history_48dp.xml delete mode 100644 app/src/main/res/drawable-v26/sc_new_releases_48dp.xml delete mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.png delete mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.png delete mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.png delete mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png delete mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png rename app/src/main/res/{mipmap-anydpi-v26 => mipmap}/ic_launcher.xml (100%) rename app/src/main/res/{mipmap-anydpi-v26 => mipmap}/ic_launcher_round.xml (100%) diff --git a/README.md b/README.md index 5055042c3..cd66687cb 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ | [![CI](https://github.com/tachiyomiorg/tachiyomi/actions/workflows/build_push.yml/badge.svg)](https://github.com/tachiyomiorg/tachiyomi/actions/workflows/build_push.yml) | [![stable release](https://img.shields.io/github/release/tachiyomiorg/tachiyomi.svg?maxAge=3600&label=download)](https://github.com/tachiyomiorg/tachiyomi/releases) | [![latest preview build](https://img.shields.io/github/v/release/tachiyomiorg/tachiyomi-preview.svg?maxAge=3600&label=download)](https://github.com/tachiyomiorg/tachiyomi-preview/releases) | [![Translation status](https://hosted.weblate.org/widgets/tachiyomi/-/svg-badge.svg)](https://hosted.weblate.org/engage/tachiyomi/?utm_source=widget) | [![Discord](https://img.shields.io/discord/1195734228319617024.svg?label=discord&labelColor=7289da&color=2c2f33&style=flat)](https://discord.gg/mihon) | # ![app icon](./.github/readme-images/app-icon.png)Mihon -Mihon is a free and open source manga reader for Android 6.0 and above. +Mihon is a free and open source manga reader for Android 8.0 and above. ## Features diff --git a/app/src/debug/res/mipmap-hdpi/ic_launcher.png b/app/src/debug/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 85b8efd982e71203ede299a2a9cf29c662b50e8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2625 zcmV-H3cmG;P)8AsZU$)?dJC5_@ADydz0$YX}N1H)?=aRvl#w=6Y2f)GNJZFI5Os$C0O+qJ6; zU1OrLHEvV?=w>6WO^v$SY#Se8NlleOi&9M8;M&F4RMp7+RR~gB+i(%2vVn7fk{5R@Sbh}uE`iJ`^^xW>z6<=>2bgn+8?%x`i& z2ogAb6%7&ajxI?X+AFVZs|g2=5}=6(7UVap-CEf=PL@KAD9+Uo=Tt0b0$5A2(9YspmK-1X3u11j;Wg z#H%Mbhx=^B$E{PIs!vwY@`jiRMFJ3?QY30LDMpFX&k?Dbq%HU`0`^-V=?HufpvIU9 zMF}9+vKyJD5YO>UlXm}ri`iK zS|RCBijmZ6lT%DC%R*7$IDj`baT;04@|95S^}~0)E1;@00L5i1wf9mJut8nCPpn8f zktgYpP~-_ZBpj7OkrRaea6&QEfFcB-*;5RMbDVHGEgia-E`{!wUVii)8Ie>UPE<$zJL?_(sK#fDM<7&shAhGn#m(lcOPkxx#eF!cqZ$3Y2`=Ac#` z4&uO|VK04NQ3Y@1x>*`g>shu8KH0DVK0kUC9$vWuqxbK_li^_)xpN1GFI<2-@4gHD zt5=88j{DvPEWhFQD0L8@Zhqx>&)z~2!P)0 z)zqW_iGaNmQ&lh&oT9yjB6+x>Fi)vT_)*$#Y;DtimXTlFYlT)0rWzHQq!Lv8f$J$qPP$MMCG7i4Rp=qN3RE*_w>XALzC>9Gh9Nl8gCHZ~?* z>+kPp+;jf?dBg92*4D=AIza)lvru&U%HgjZao(4EpK!;G8#gpyw70iQ<;9B^!}$2P z;rBmnX<>E!9;F2zLC;Jm*2{#f;2&=3S>RR}$OCrZgVOGIaNj;t(YI*PA_0tK3t80AL8}l2p=i!Q+|qNs&eAi#gd+`93w`i6PDy`;oWdUjpt*DBLUM94ELgC> z)aK2b2VSpN)0_3LTE)O2yyuXWv|F{T^vpP@f#V>WW@-*1XTn48aAL71I~yKjs#uvE zvuY1$^vKql<$zpFZ#H4Z?Iy9^j3NQ4EUyUu&P|mPG94cs)g7!xY9qI9!R5R>cJEHC z$5Y^qpBY7Y>l^GOWKC!Pupt9mw!qUTPc*ZIR%R6GG4|jA^ogS4zRlTAxqGjUuNg%r za?u}B(-f-`Wa@)V%ui-U@xR!cU0u0SalhZBWk626%_!2T2GZpgW6$ytr>u!xDJz37 z;IHg;)%uLE;74>(RPEDCPkd0B}TwcNL=HMb$vjlBdp{Uq5D00ieN+U8Lv!E0_ zx%p6+>42^2neYotowl@e*oEiK8JVyKqeVdeB9TYCaSD#!4l{n~+15hQ${t05Tbd>u zMF4Yn1CZnOgQGMcm0fhpi@~z8@g7BSW{={`9>tkGiqF9w#mNgrG0e4aKC$_1YoW+< zkeQEK;JFRA*ID<81EDBd^ic{tD55?22}{5;MSIcVDd0@chB1rC~4 jKhb4bD4GbW=hEkYxDF{T8;7Y+00000NkvXXu0mjff@TH} diff --git a/app/src/debug/res/mipmap-hdpi/ic_launcher_round.png b/app/src/debug/res/mipmap-hdpi/ic_launcher_round.png deleted file mode 100644 index 40dbb9c34f4154f9b889196613f1bf414cc96499..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4222 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 U3YbUDZ2$lO07*qoM6N<$f^(+^2><{9 diff --git a/app/src/debug/res/mipmap-mdpi/ic_launcher.png b/app/src/debug/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index bbd7cb26557b68ea491072c75ae5491c568f24b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1500 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 Ef>5P={{R30 diff --git a/app/src/debug/res/mipmap-xxhdpi/ic_launcher.png b/app/src/debug/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 112552082d038163f2158396403a6a5589cc3dca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5641 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 diff --git a/app/src/debug/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/debug/res/mipmap-xxhdpi/ic_launcher_round.png deleted file mode 100644 index a14c8a3aed6d8e5843a71ee4b67a6b3c67ea6b3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10703 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 diff --git a/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_round.png deleted file mode 100644 index 8c172e3c9cd1e8b88f0a384d685117fd98ee31eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13402 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 diff --git a/app/src/debug/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/debug/res/mipmap/ic_launcher.xml similarity index 100% rename from app/src/debug/res/mipmap-anydpi-v26/ic_launcher.xml rename to app/src/debug/res/mipmap/ic_launcher.xml diff --git a/app/src/debug/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/debug/res/mipmap/ic_launcher_round.xml similarity index 100% rename from app/src/debug/res/mipmap-anydpi-v26/ic_launcher_round.xml rename to app/src/debug/res/mipmap/ic_launcher_round.xml diff --git a/app/src/main/java/eu/kanade/domain/ui/UiPreferences.kt b/app/src/main/java/eu/kanade/domain/ui/UiPreferences.kt index 294812bdc..efb27fa02 100644 --- a/app/src/main/java/eu/kanade/domain/ui/UiPreferences.kt +++ b/app/src/main/java/eu/kanade/domain/ui/UiPreferences.kt @@ -1,6 +1,5 @@ package eu.kanade.domain.ui -import android.os.Build import eu.kanade.domain.ui.model.AppTheme import eu.kanade.domain.ui.model.TabletUiMode import eu.kanade.domain.ui.model.ThemeMode @@ -16,10 +15,7 @@ class UiPreferences( private val preferenceStore: PreferenceStore, ) { - fun themeMode() = preferenceStore.getEnum( - "pref_theme_mode_key", - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { ThemeMode.SYSTEM } else { ThemeMode.LIGHT }, - ) + fun themeMode() = preferenceStore.getEnum("pref_theme_mode_key", ThemeMode.SYSTEM) fun appTheme() = preferenceStore.getEnum( "pref_app_theme", diff --git a/app/src/main/java/eu/kanade/presentation/manga/components/MangaCoverDialog.kt b/app/src/main/java/eu/kanade/presentation/manga/components/MangaCoverDialog.kt index b3c06a979..a71d08674 100644 --- a/app/src/main/java/eu/kanade/presentation/manga/components/MangaCoverDialog.kt +++ b/app/src/main/java/eu/kanade/presentation/manga/components/MangaCoverDialog.kt @@ -2,7 +2,6 @@ package eu.kanade.presentation.manga.components import android.graphics.Bitmap import android.graphics.drawable.BitmapDrawable -import android.os.Build import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Row @@ -173,14 +172,9 @@ fun MangaCoverDialog( // Copy bitmap in case it came from memory cache // Because SSIV needs to thoroughly read the image val copy = (drawable as? BitmapDrawable)?.let { - val config = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - Bitmap.Config.HARDWARE - } else { - Bitmap.Config.ARGB_8888 - } BitmapDrawable( view.context.resources, - it.bitmap.copy(config, false), + it.bitmap.copy(Bitmap.Config.HARDWARE, false), ) } ?: drawable view.setImage(copy, ReaderPageImageView.Config(zoomDuration = 500)) 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 ee9fd485d..c86492287 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 @@ -3,7 +3,6 @@ package eu.kanade.presentation.more.settings.screen import android.annotation.SuppressLint import android.content.ActivityNotFoundException import android.content.Intent -import android.os.Build import android.provider.Settings import android.webkit.WebStorage import android.webkit.WebView @@ -84,60 +83,48 @@ object SettingsAdvancedScreen : SearchableSettings { val basePreferences = remember { Injekt.get() } val networkPreferences = remember { Injekt.get() } - return buildList { - addAll( - listOf( - Preference.PreferenceItem.TextPreference( - title = stringResource(MR.strings.pref_dump_crash_logs), - subtitle = stringResource(MR.strings.pref_dump_crash_logs_summary), - onClick = { - scope.launch { - CrashLogUtil(context).dumpLogs() - } - }, - ), - Preference.PreferenceItem.SwitchPreference( - pref = networkPreferences.verboseLogging(), - title = stringResource(MR.strings.pref_verbose_logging), - subtitle = stringResource(MR.strings.pref_verbose_logging_summary), - onValueChanged = { - context.toast(MR.strings.requires_app_restart) - true - }, - ), - Preference.PreferenceItem.TextPreference( - title = stringResource(MR.strings.pref_debug_info), - onClick = { navigator.push(DebugInfoScreen()) }, - ), - Preference.PreferenceItem.TextPreference( - title = stringResource(MR.strings.pref_onboarding_guide), - onClick = { navigator.push(OnboardingScreen()) }, - ), - ), - ) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - add( - Preference.PreferenceItem.TextPreference( - title = stringResource(MR.strings.pref_manage_notifications), - onClick = { - val intent = Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS).apply { - putExtra(Settings.EXTRA_APP_PACKAGE, context.packageName) - } - context.startActivity(intent) - }, - ), - ) - } - addAll( - listOf( - getBackgroundActivityGroup(), - getDataGroup(), - getNetworkGroup(networkPreferences = networkPreferences), - getLibraryGroup(), - getExtensionsGroup(basePreferences = basePreferences), - ), - ) - } + return listOf( + Preference.PreferenceItem.TextPreference( + title = stringResource(MR.strings.pref_dump_crash_logs), + subtitle = stringResource(MR.strings.pref_dump_crash_logs_summary), + onClick = { + scope.launch { + CrashLogUtil(context).dumpLogs() + } + }, + ), + Preference.PreferenceItem.SwitchPreference( + pref = networkPreferences.verboseLogging(), + title = stringResource(MR.strings.pref_verbose_logging), + subtitle = stringResource(MR.strings.pref_verbose_logging_summary), + onValueChanged = { + context.toast(MR.strings.requires_app_restart) + true + }, + ), + Preference.PreferenceItem.TextPreference( + title = stringResource(MR.strings.pref_debug_info), + onClick = { navigator.push(DebugInfoScreen()) }, + ), + Preference.PreferenceItem.TextPreference( + title = stringResource(MR.strings.pref_onboarding_guide), + onClick = { navigator.push(OnboardingScreen()) }, + ), + Preference.PreferenceItem.TextPreference( + title = stringResource(MR.strings.pref_manage_notifications), + onClick = { + val intent = Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS).apply { + putExtra(Settings.EXTRA_APP_PACKAGE, context.packageName) + } + context.startActivity(intent) + }, + ), + getBackgroundActivityGroup(), + getDataGroup(), + getNetworkGroup(networkPreferences = networkPreferences), + getLibraryGroup(), + getExtensionsGroup(basePreferences = basePreferences), + ) } @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 c28b12d48..bc60037e9 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 @@ -60,7 +60,6 @@ object SettingsReaderScreen : SearchableSettings { pref = readerPref.trueColor(), title = stringResource(MR.strings.pref_true_color), subtitle = stringResource(MR.strings.pref_true_color_summary), - enabled = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O, ), Preference.PreferenceItem.SwitchPreference( pref = readerPref.pageTransitions(), diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/widget/AppThemeModePreferenceWidget.kt b/app/src/main/java/eu/kanade/presentation/more/settings/widget/AppThemeModePreferenceWidget.kt index d1901745b..bd523c6de 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/widget/AppThemeModePreferenceWidget.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/widget/AppThemeModePreferenceWidget.kt @@ -13,18 +13,11 @@ import eu.kanade.domain.ui.model.ThemeMode import tachiyomi.i18n.MR import tachiyomi.presentation.core.i18n.stringResource -private val options = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - mapOf( - ThemeMode.SYSTEM to MR.strings.theme_system, - ThemeMode.LIGHT to MR.strings.theme_light, - ThemeMode.DARK to MR.strings.theme_dark, - ) -} else { - mapOf( - ThemeMode.LIGHT to MR.strings.theme_light, - ThemeMode.DARK to MR.strings.theme_dark, - ) -} +private val options = mapOf( + ThemeMode.SYSTEM to MR.strings.theme_system, + ThemeMode.LIGHT to MR.strings.theme_light, + ThemeMode.DARK to MR.strings.theme_dark, +) @Composable internal fun AppThemeModePreferenceWidget( diff --git a/app/src/main/java/eu/kanade/presentation/util/Permissions.kt b/app/src/main/java/eu/kanade/presentation/util/Permissions.kt index b4f4f4bd3..d136fee7b 100644 --- a/app/src/main/java/eu/kanade/presentation/util/Permissions.kt +++ b/app/src/main/java/eu/kanade/presentation/util/Permissions.kt @@ -23,12 +23,7 @@ fun rememberRequestPackageInstallsPermissionState(initialValue: Boolean = false) DisposableEffect(lifecycleOwner.lifecycle) { val observer = object : DefaultLifecycleObserver { override fun onResume(owner: LifecycleOwner) { - installGranted = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - context.packageManager.canRequestPackageInstalls() - } else { - @Suppress("DEPRECATION") - Settings.Secure.getInt(context.contentResolver, Settings.Secure.INSTALL_NON_MARKET_APPS) != 0 - } + installGranted = context.packageManager.canRequestPackageInstalls() } } lifecycleOwner.lifecycle.addObserver(observer) diff --git a/app/src/main/java/eu/kanade/tachiyomi/App.kt b/app/src/main/java/eu/kanade/tachiyomi/App.kt index a16be7e68..2b53cee0c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/App.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/App.kt @@ -169,22 +169,19 @@ class App : Application(), DefaultLifecycleObserver, ImageLoaderFactory { } override fun getPackageName(): String { - // This causes freezes in Android 6/7 for some reason - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - try { - // Override the value passed as X-Requested-With in WebView requests - val stackTrace = Looper.getMainLooper().thread.stackTrace - val chromiumElement = stackTrace.find { - it.className.equals( - "org.chromium.base.BuildInfo", - ignoreCase = true, - ) - } - if (chromiumElement?.methodName.equals("getAll", ignoreCase = true)) { - return WebViewUtil.SPOOF_PACKAGE_NAME - } - } catch (_: Exception) { + try { + // Override the value passed as X-Requested-With in WebView requests + val stackTrace = Looper.getMainLooper().thread.stackTrace + val chromiumElement = stackTrace.find { + it.className.equals( + "org.chromium.base.BuildInfo", + ignoreCase = true, + ) } + if (chromiumElement?.methodName.equals("getAll", ignoreCase = true)) { + return WebViewUtil.SPOOF_PACKAGE_NAME + } + } catch (_: Exception) { } return super.getPackageName() } diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/coil/TachiyomiImageDecoder.kt b/app/src/main/java/eu/kanade/tachiyomi/data/coil/TachiyomiImageDecoder.kt index e0a5ffe8e..fb1278614 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/coil/TachiyomiImageDecoder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/coil/TachiyomiImageDecoder.kt @@ -1,6 +1,5 @@ package eu.kanade.tachiyomi.data.coil -import android.os.Build import androidx.core.graphics.drawable.toDrawable import coil.ImageLoader import coil.decode.DecodeResult @@ -48,8 +47,7 @@ class TachiyomiImageDecoder(private val resources: ImageSource, private val opti ImageUtil.findImageType(it) } return when (type) { - ImageUtil.ImageType.AVIF, ImageUtil.ImageType.JXL -> true - ImageUtil.ImageType.HEIF -> Build.VERSION.SDK_INT < Build.VERSION_CODES.O + ImageUtil.ImageType.AVIF, ImageUtil.ImageType.JXL, ImageUtil.ImageType.HEIF -> true else -> false } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt b/app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt index 9e5d60d7b..7d6e9099e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt @@ -5,7 +5,6 @@ import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.net.Uri -import android.os.Build import androidx.core.net.toUri import eu.kanade.tachiyomi.data.backup.restore.BackupRestoreJob import eu.kanade.tachiyomi.data.download.DownloadManager @@ -354,20 +353,18 @@ class NotificationReceiver : BroadcastReceiver() { When programmatically dismissing this notification, the group notification is not automatically dismissed. */ - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { - val groupKey = context.notificationManager.activeNotifications.find { - it.id == notificationId - }?.groupKey + val groupKey = context.notificationManager.activeNotifications.find { + it.id == notificationId + }?.groupKey - if (groupId != null && groupId != 0 && !groupKey.isNullOrEmpty()) { - val notifications = context.notificationManager.activeNotifications.filter { - it.groupKey == groupKey - } + if (groupId != null && groupId != 0 && !groupKey.isNullOrEmpty()) { + val notifications = context.notificationManager.activeNotifications.filter { + it.groupKey == groupKey + } - if (notifications.size == 2) { - context.cancelNotification(groupId) - return - } + if (notifications.size == 2) { + context.cancelNotification(groupId) + return } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/extension/installer/ShizukuInstaller.kt b/app/src/main/java/eu/kanade/tachiyomi/extension/installer/ShizukuInstaller.kt index 68eacd9d6..33ff287c7 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/extension/installer/ShizukuInstaller.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/extension/installer/ShizukuInstaller.kt @@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.extension.installer import android.app.Service import android.content.pm.PackageManager -import android.os.Build import eu.kanade.tachiyomi.extension.model.InstallStep import eu.kanade.tachiyomi.util.system.getUriSize import eu.kanade.tachiyomi.util.system.toast @@ -50,11 +49,7 @@ class ShizukuInstaller(private val service: Service) : Installer(service) { try { val size = service.getUriSize(entry.uri) ?: throw IllegalStateException() service.contentResolver.openInputStream(entry.uri)!!.use { - val createCommand = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { - "pm install-create --user current -r -i ${service.packageName} -S $size" - } else { - "pm install-create -r -i ${service.packageName} -S $size" - } + val createCommand = "pm install-create --user current -r -i ${service.packageName} -S $size" val createResult = exec(createCommand) sessionId = SESSION_ID_REGEX.find(createResult.out)?.value ?: throw RuntimeException("Failed to create install session") diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ZipPageLoader.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ZipPageLoader.kt index e04fe78e6..55b6a7ac7 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ZipPageLoader.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ZipPageLoader.kt @@ -14,11 +14,7 @@ import java.util.zip.ZipFile */ internal class ZipPageLoader(file: File) : PageLoader() { - private val zip = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { - ZipFile(file, StandardCharsets.ISO_8859_1) - } else { - ZipFile(file) - } + private val zip = ZipFile(file, StandardCharsets.ISO_8859_1) override var isLocal: Boolean = true diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/storage/FileExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/util/storage/FileExtensions.kt index 3c0fab2ab..c0575c0d5 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/storage/FileExtensions.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/storage/FileExtensions.kt @@ -2,9 +2,7 @@ package eu.kanade.tachiyomi.util.storage import android.content.Context import android.net.Uri -import android.os.Build import androidx.core.content.FileProvider -import androidx.core.net.toUri import eu.kanade.tachiyomi.BuildConfig import java.io.File @@ -17,11 +15,7 @@ val Context.cacheImageDir: File * @param context context of application */ fun File.getUriCompat(context: Context): Uri { - return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { - FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID + ".provider", this) - } else { - this.toUri() - } + return FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID + ".provider", this) } /** diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt index 96560e59a..92b5f3843 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt @@ -170,12 +170,8 @@ fun Context.isInstalledFromFDroid(): Boolean { } fun Context.launchRequestPackageInstallsPermission() { - val intent = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES).apply { - data = Uri.parse("package:$packageName") - } - } else { - Intent(Settings.ACTION_SECURITY_SETTINGS) + Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES).apply { + data = Uri.parse("package:$packageName") + startActivity(this) } - startActivity(intent) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/system/NetworkExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/util/system/NetworkExtensions.kt index 8d72a9c86..18e16baac 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/system/NetworkExtensions.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/system/NetworkExtensions.kt @@ -18,8 +18,7 @@ fun Context.isOnline(): Boolean { val networkCapabilities = connectivityManager.getNetworkCapabilities(activeNetwork) ?: return false val maxTransport = when { Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1 -> NetworkCapabilities.TRANSPORT_LOWPAN - Build.VERSION.SDK_INT >= Build.VERSION_CODES.O -> NetworkCapabilities.TRANSPORT_WIFI_AWARE - else -> NetworkCapabilities.TRANSPORT_VPN + else -> NetworkCapabilities.TRANSPORT_WIFI_AWARE } return (NetworkCapabilities.TRANSPORT_CELLULAR..maxTransport).any(networkCapabilities::hasTransport) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/system/NetworkStateTracker.kt b/app/src/main/java/eu/kanade/tachiyomi/util/system/NetworkStateTracker.kt index a4a686541..ac206262d 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/system/NetworkStateTracker.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/system/NetworkStateTracker.kt @@ -17,11 +17,7 @@ data class NetworkState( val isValidated: Boolean, val isWifi: Boolean, ) { - val isOnline = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - isConnected && isValidated - } else { - isConnected - } + val isOnline = isConnected && isValidated } @Suppress("DEPRECATION") @@ -34,34 +30,18 @@ fun Context.activeNetworkState(): NetworkState { ) } -@Suppress("DEPRECATION") fun Context.networkStateFlow() = callbackFlow { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { - val networkCallback = object : NetworkCallback() { - override fun onCapabilitiesChanged(network: Network, networkCapabilities: NetworkCapabilities) { - trySend(activeNetworkState()) - } - override fun onLost(network: Network) { - trySend(activeNetworkState()) - } + val networkCallback = object : NetworkCallback() { + override fun onCapabilitiesChanged(network: Network, networkCapabilities: NetworkCapabilities) { + trySend(activeNetworkState()) } - - connectivityManager.registerDefaultNetworkCallback(networkCallback) - awaitClose { - connectivityManager.unregisterNetworkCallback(networkCallback) - } - } else { - val receiver = object : BroadcastReceiver() { - override fun onReceive(context: Context, intent: Intent) { - if (intent.action == ConnectivityManager.CONNECTIVITY_ACTION) { - trySend(activeNetworkState()) - } - } - } - - registerReceiver(receiver, IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION)) - awaitClose { - unregisterReceiver(receiver) + override fun onLost(network: Network) { + trySend(activeNetworkState()) } } + + connectivityManager.registerDefaultNetworkCallback(networkCallback) + awaitClose { + connectivityManager.unregisterNetworkCallback(networkCallback) + } } diff --git a/app/src/main/res/drawable-v26/sc_collections_bookmark_48dp.xml b/app/src/main/res/drawable-v26/sc_collections_bookmark_48dp.xml deleted file mode 100644 index fd2784fbb..000000000 --- a/app/src/main/res/drawable-v26/sc_collections_bookmark_48dp.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - diff --git a/app/src/main/res/drawable-v26/sc_explore_48dp.xml b/app/src/main/res/drawable-v26/sc_explore_48dp.xml deleted file mode 100644 index 9737e6031..000000000 --- a/app/src/main/res/drawable-v26/sc_explore_48dp.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - diff --git a/app/src/main/res/drawable-v26/sc_history_48dp.xml b/app/src/main/res/drawable-v26/sc_history_48dp.xml deleted file mode 100644 index f8b0ff94a..000000000 --- a/app/src/main/res/drawable-v26/sc_history_48dp.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - diff --git a/app/src/main/res/drawable-v26/sc_new_releases_48dp.xml b/app/src/main/res/drawable-v26/sc_new_releases_48dp.xml deleted file mode 100644 index 256f5ff8f..000000000 --- a/app/src/main/res/drawable-v26/sc_new_releases_48dp.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - diff --git a/app/src/main/res/drawable/sc_collections_bookmark_48dp.xml b/app/src/main/res/drawable/sc_collections_bookmark_48dp.xml index d45e333f7..fd2784fbb 100644 --- a/app/src/main/res/drawable/sc_collections_bookmark_48dp.xml +++ b/app/src/main/res/drawable/sc_collections_bookmark_48dp.xml @@ -1,24 +1,24 @@ - - - - - - - - - + tools:keep="@drawable/sc_collections_bookmark_48dp"> + + + + + + + + + + diff --git a/app/src/main/res/drawable/sc_explore_48dp.xml b/app/src/main/res/drawable/sc_explore_48dp.xml index bc97eb259..9737e6031 100644 --- a/app/src/main/res/drawable/sc_explore_48dp.xml +++ b/app/src/main/res/drawable/sc_explore_48dp.xml @@ -1,21 +1,21 @@ - - - - - - - - + tools:keep="@drawable/sc_explore_48dp"> + + + + + + + + + diff --git a/app/src/main/res/drawable/sc_history_48dp.xml b/app/src/main/res/drawable/sc_history_48dp.xml index 3ee54e497..f8b0ff94a 100644 --- a/app/src/main/res/drawable/sc_history_48dp.xml +++ b/app/src/main/res/drawable/sc_history_48dp.xml @@ -1,21 +1,21 @@ - - - - - - - - + tools:keep="@drawable/sc_history_48dp"> + + + + + + + + + diff --git a/app/src/main/res/drawable/sc_new_releases_48dp.xml b/app/src/main/res/drawable/sc_new_releases_48dp.xml index 20d04862c..256f5ff8f 100644 --- a/app/src/main/res/drawable/sc_new_releases_48dp.xml +++ b/app/src/main/res/drawable/sc_new_releases_48dp.xml @@ -1,21 +1,21 @@ - - - - - - - - + tools:keep="@drawable/sc_new_releases_48dp"> + + + + + + + + + diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 8a33a162671fcf9efccbd1bf2664fb7a8781833c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2582 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 D!=Yzt diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index f84e248d0babf4602a82520f5b177ba528aeba6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1547 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 O0000yjP1>Q%gpN z&qa#fx%1VLE$JdXe&Crk2+Jj;DSd}DuNq4ug~oH?VYfX-rd*3$ULXwxHWsZGzu9;O zm;{(e2Jc*qnSHsLwWsuI@A`6Y9siK=WwoChj6YGuY;N%TY$gQaf8`2Xb-Es&o*`hB zH6VS_UGkqS)byK%+7s`~pqJmsG+0{v5J$)Y8j`2iSKK@Bi1<{ze5d%l&C9?V`>Z@0 zYXPtO-hTuvzWU!pMco{81w9taSNW!;(-Ovmuok?F_`DF8lO$uS=ujtNkc%YS;Y;7LMcuNUR^LU)jNGht0j&yMk`p}KKP`dRR>(~r|lMM&`X@!;6U z_J*SjHe*YHM}@6~zW4N6IuO0f%V)uC%FFo;Ns9Ipv)zhDm_7oA6o!x<@#-GAnRQ~l z(tE&Ajz~=A--zOuzZjn{e#R)Mb-(r|@EE%K;c9o;O8;{B03R#k>BDt*BX}%#*U6)& z&5r-@k?fpe?QZXvk|KN*xy}RE#|gI++!XPFvb}V2S{8Y?ESGbDMiEAH-64fxN#yZ5 zSic8$UV6B!!MYRU-(tT_i}OB7ibx*5c~Q#u$B+)t!u4r=zhX@#ymQDnOR#Sp(CNm`%Yr`n7P-QG&?-SmLHC>V?nPQ+qn<9P@>J3 z@;3}}@53u6QipkFFhVO%lhB)mPoA=2r9CdD=c*%>=e4qpY$L45pHm=>Nods6-9ZOj zWh(M78*a3|Gh2>h*z*wSRv9N?*E7sy$iCJ>(PH5gAOTY3`$O#duYS^_I{8T0BN7(W zCIqNS62u3WrD7&U?j7Ntf8c?ynC*gpPE`kg3@rk`?@BaXI4>_JV!Bc z4(0=tU-fcGt%Twp>KTa2x;0O1ZfMQcNZ72fLBQ`4fzzIUaXu%Ik5`$nuRNJ_Sg?N% z`PvyRw-u(@PC{o|i`6jke z1sI|#xoT8(7}ta2X3ltxDovw?AHh*yN0iDYv!d!fI1s%IRA5P=;wy7yF@*h9M@uqGIB5ljRlmK&?1a zDXb%qMWV9&V{=yg*buVVWfVps+(9lZh)I$ipTyvIw^Jnz!H0zNSN$?6dY;~~*AFeX zbX&dUuB*CAL3zrR;bll75)E9|#3~b&mf`tjUeQ_h9_re4lqYcj=fdwo2?!ZCEH3W6 z1VDfa6Sq*8x|}4^v4DteB4fWn1=*E1>3|sra{U%CjoL2Ng}G0h3qi`Ai2S!RUNk#G z7!?7(u?r4;7!*ARVllHmghV4$&XEsQjM*0(a2iah9;Xgf$ zRnE)S&6~`M!(q-)!At~-P{5n*&I)j>zpDWfzlVP2ENJ}~iP5Z!13bwtb7|KpsSyMj z3ZUG0VzD8bVg-aBiRwM#K|$#aiT8|psm$D5I|4Y_zg?(bsI7edTRD^-4qHW`+IGe<5TeQTftmvPZ_IVx7BK8PZLcjx(CGK zT3oklye3G!h1zQm+0GEGI7JCOBtgg}Ha}mst(UoWw9FHITDQ4GMTY7G(|C{p*ok!b z^IvMNFf~oRP3{A;kFyOGh`!K)6ux2F67R(hvC269(BsS+pdN+XEfG#|15p+e!eQGf z1)n(IcEr+d$4x~<7;jWPu@F>L%w>lP2nZzf4AkDZfwpur>XRZ2_NschsgnVm!(qeS z9}k{?>=4TdkSs*}!l=|acL)ja^6@d$*Vm&^D3IIkT(i>+gPrg1G!S?^-a&NImW72y z%JchO?T-hTOmX8k;<63(wzW|P#-axJ782ba|O^{7WL{f!bchOFib!2b@Wv5mzA#rJcxh^ z!BH(~0Wts|74p{aP>KPOQGBYDtZJw4@A9AC30AG%m~@dx_ESWHk3HD$esA;X?w`F+ z`wc~jvwwEyEye@(7PP;#`0rZIG`gnVojDzsc7j#W9;?YSbOsSqpcKwKetd;uTdJe# z=xy5Cv-u>_!3Fp7_Kxl7Q2IJDQf|(~C}lO+8^?q@+bFJroi;cRm(6pNq#er&O;0|h>iw-4{FIBNIZ=w`AJbzwdFGyi=4GMA21 zf{^#Fx>_{uI&S{rBvHM8tDbvvU6IHRFo@;x$kcj9@7PCC3^tb2$jJGj`uUfTlRd*V zMKG6-nD@?1$18Eka9Ud0n`6)bLrPZO<~I9oPdMDnd^ms%uoeZoEBJT)S46@}QKV&r zb}?UlQ3?q<%Pze(JJeIqHsa zCUvshWiU>?N)upeVsb#{xY+S3veR6$`PqEd+Qn+3q`HyOo8B^xgAvAh_vxLBPTGzI zgek*MH4t`?l;s(xu#)2~2H44GU&^#x^6KF_8w1uEJ)d7pMP+Lv2b)--z`gbjb2Vw7 z6{yiN)haRj%{5|&~LVl zlVRqAqCxfM>G9v;Q1FvbVOK82^{12#Lg*K)v1D$qeIzjvTY+*l1=tvMNJT}(=Wc~S z0%%-PMkamju!m04!1+t#RCwReDLb588jMna%XZKU>m)EpUa4FydW7} zVsNgeWwjjMPJa-IQo`E5}vk1)T!&Kf4F@~cWHuklzo9C4LL zK$@QNt2imi(g}00qC^=1hU}Gv7o>G5T(_tJ*Zdr}+?z^OiW&KoK1K?GK;g$=UO6x3 zy3PU>@4Xp;yogCB`jX)X1ix_Dj^-WpfyK~%k6R4FEs6>MHB|$0!J@O1(bD^-mpl?N zg?z)x-U|w*KAXqEZLhC8*AOFdIr~&MZWx;6HgZ!tQSWV_frBEW-c>#*DANK1hIVm_QwSyfDrd1YhOx#iAvaDXpWOHoueO9K=dsc`?}lwq3>9E&oJ;0FZ`c_4XFy7`9fakTF;G!( zG-Vl;8sOAma%Rx8(tGD65PjJ-G?eZ)=!CH{HKmMW$FC!b_sP{%J6DD!br~#;uwUTGs(>3Wsr#qfMev_ilJ}V1yTs8#cYl_UxacT0vGeY!=K`6JHzNNS`Lm>?_ zp58?6nFrQTjT*byhoBt;6#mZ75n7<+hckN)na+`;1O32UrZ0 zOPXYBfue6am+Yt9WGT!-JmDm{dZWXoa-d0+z8lD_eztXB#29xz4r;)JZ8*6Y(wSFT z4%k=EmwQ%1*8#_1FcW23Ow@FAMty`j2J3d5w8rf0Y)j)~Bi2wBUh#89(-@{03GkAG zuCE*bwJ8NJcXhriMcO|S@gG{~l(66{R-4l9=>dKg=>K-YGWiIP5%LxDbKn`X96k>t z3Z;(+_*>E%kOHxNM`0Z(s?^L)XQTy1*QRK-KJT5i{Q_$oAKSxCh&j=H3YEMC!qTAJ z5Gl3N1#=skA_*y_7*_fNHel)q6khgMTqx>9)e0)8G{`iL9#F+4c{1?>P@<&5+uQ*H z_rKiUC!r{>i_QxNVb^SYUL9_Jzh?o$Vk_)^o?h-}-HY7Oo-%g~fvaw2bp9t;6qJVw zhn<1a+_Ub=9@@aU3p{Khirm+KT;*oK-c91fxZ~e;5T10a7sb{l@4U<(Mci^b_in^E}=s+m}?t$of^ zXe*=jr#gw0sHxS%7jy3jQ*!vKJ|IOhM!{NAbLpHj)va}vWG65}>Bx__dTOx`z#fL) zlpbNH%2U)Ja}BlY5R%bZQ~lp& zlV9yr)7AQaZ-0HI9LfTG9xxxJ^p4S%PcCzNqfyT04}=KXpoVrXgr+d@OD0c+4Qh)R z%*bce->Wzsi!5g1CR;W$GZJZ@6y!;LKF|o`$<6;5pCso+nCi(<6T7wEJ435O4FI63 zCtbujR5FYh`KFelfAl)R9^7t^1yd}E#&FDzJuN7funzygc{d!4!KBMs*JxqD-cT98 zf(DH2s*l5cIvz-7{<~@>KtIB#n8o%#G&wE$SJ>;ytdZvCeiB~_(2^?trN3PBG_9{V zg%x-88HT(q;9S;PQY=Dpb+yE>);U?2?ZRqC-{Y@C--@geq2!l#_OF*E#Ii6(!mP?T zYC!6_)#M&ynoL|ww4rxuOQr6R*tWCkPLN+$+l?1w!FRK*z{}`*x-M9#VkxUxkI?P56iV6*#-VXrBJ~ z{HBRhFY_s(q4H!eS$Fl-c@C1MwWwx&+hVQ>5soL^Eb<=$0|bJ3eH2kdF7&IRVKc-z zpJ_J>Oej0WYD<_Vfx|s$+y~3TOPhR=^J#R_o5Z)6_cV$V4y%?PmU6bB#M@cU|31`& z1etDMrpSvk>HH|St^9>8)aVDaJKj2nO%b3I6=EpT+!)g5gz1Eo1C!MCOsdL%)YQd2 z2z^1Y+-ku81J8t_je(}1(rqeF7HiGc$F`KDqDDzc`msGr5A8#Io>yyfQ&44ck@N*` z`#`0a^6hMh-LI zjMBk2iylm5sR+B2`Fu&83vC{cMmUHR=}m$hJD1wP8I6whco^9`Jk(=xUf(co?d{?D zKCVDclKEQzgw;lEHl^zNY`8-xgzu053jd^$?kSJPg~MW?=rYJlOkvd-Gpbqv?$@p5 z(6*ri{Qs37I-L%VVIoD|iGwr|ANIEfQ>yBU8o?D5*MeVbIrUqiKZ07MA1h**6Kai*tBdq8j}gz#q|=e ziBn00xaxzbiDoxkGN}IB=Gxi=B0zDfMAhZ~rqX3AnbP1r?#&-j4W{L+s7-!g0pg17 zjkDAau)^=%BQ^AT>-E{~uBK6~=fqrti}ks!{*-x6n4;ew!%^|Ot$%Ni7CYHfQjsFx z5;Iw__^~?sU9FAXfCcoH5wN8?;lKH-RgOo8xE9NU@wYX@rdQ>==y0+&V^H$clZRFO-LFPH3CvwyvRWPR6bu_0jkRZ&ZFPL8wpyB#-kyKfR($D>_z3HoZw&*h&! z8(D5180?SZ0U3U+syKUip104&CtX!1)NtKn`G!To<0*G*#=(=Q%p4uZ@8390+)>rh zso+_CZJ^oW=+Y+sATIVauru`zDD7049r893Ce}5`n=j=kL56&+lklAxcoG3~r6@>^ zyI_vkB|~l2F)4m7pFDVKvx;{CrXxSMCEbq8uIC^FX#caZPMJ~g(9hi)*QC0hq6FNv S83obZCehZ=hrL&~kNki5RThB& diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png deleted file mode 100644 index d6f9884f67b59919c5bd3c034fd11e04ae9c3b99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11097 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 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 89f53f50a36dedc8c40d653dfe9c24857688ce8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7022 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 YZNFs$9oUI2_8tvKU0F-16lNLnUsU@DssI20 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png deleted file mode 100644 index ead7c32417b2071c5145738579fd5568fdaccc4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14070 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 Build.VERSION_CODES.O) { - val webView = WebView.getCurrentWebViewPackage() ?: return "how did you get here?" - val pm = context.packageManager - val label = webView.applicationInfo.loadLabel(pm) - val version = webView.versionName - "$label $version" - } else { - "Unknown" - } + val webView = WebView.getCurrentWebViewPackage() ?: return "how did you get here?" + val pm = context.packageManager + val label = webView.applicationInfo.loadLabel(pm) + val version = webView.versionName + return "$label $version" } fun supportsWebView(context: Context): Boolean { From 8c910f2a2c27dc339a4b05f03be3386a3afa2194 Mon Sep 17 00:00:00 2001 From: AntsyLich <59261191+AntsyLich@users.noreply.github.com> Date: Mon, 15 Jan 2024 23:01:20 +0600 Subject: [PATCH 10/28] Make tracker use Mihon's client --- app/src/main/AndroidManifest.xml | 2 +- .../java/eu/kanade/tachiyomi/data/track/anilist/AnilistApi.kt | 2 +- .../java/eu/kanade/tachiyomi/data/track/bangumi/BangumiApi.kt | 2 +- .../kanade/tachiyomi/data/track/myanimelist/MyAnimeListApi.kt | 2 +- .../eu/kanade/tachiyomi/data/track/shikimori/ShikimoriApi.kt | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 30805627c..f3e716f88 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -179,7 +179,7 @@ - + diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/AnilistApi.kt b/app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/AnilistApi.kt index de6ef2f8e..3037220fe 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/AnilistApi.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/AnilistApi.kt @@ -363,7 +363,7 @@ class AnilistApi(val client: OkHttpClient, interceptor: AnilistInterceptor) { } companion object { - private const val clientId = "385" + private const val clientId = "16329" private const val apiUrl = "https://graphql.anilist.co/" private const val baseUrl = "https://anilist.co/api/v2/" private const val baseMangaUrl = "https://anilist.co/manga/" diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/track/bangumi/BangumiApi.kt b/app/src/main/java/eu/kanade/tachiyomi/data/track/bangumi/BangumiApi.kt index 8dbde5324..9d2073707 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/track/bangumi/BangumiApi.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/track/bangumi/BangumiApi.kt @@ -189,7 +189,7 @@ class BangumiApi( private const val oauthUrl = "https://bgm.tv/oauth/access_token" private const val loginUrl = "https://bgm.tv/oauth/authorize" - private const val redirectUrl = "tachiyomi://bangumi-auth" + private const val redirectUrl = "mihon://bangumi-auth" fun authUrl(): Uri = loginUrl.toUri().buildUpon() diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/track/myanimelist/MyAnimeListApi.kt b/app/src/main/java/eu/kanade/tachiyomi/data/track/myanimelist/MyAnimeListApi.kt index c67cc2a2a..518b872b4 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/track/myanimelist/MyAnimeListApi.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/track/myanimelist/MyAnimeListApi.kt @@ -278,7 +278,7 @@ class MyAnimeListApi( companion object { // Registered under arkon's MAL account - private const val clientId = "8fd3313bc138e8b890551aa1de1a2589" + private const val clientId = "f46004a9c16483b6d87b5bf10de56d97" private const val baseOAuthUrl = "https://myanimelist.net/v1/oauth2" private const val baseApiUrl = "https://api.myanimelist.net/v2" diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/track/shikimori/ShikimoriApi.kt b/app/src/main/java/eu/kanade/tachiyomi/data/track/shikimori/ShikimoriApi.kt index dca1c290d..d84b01330 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/track/shikimori/ShikimoriApi.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/track/shikimori/ShikimoriApi.kt @@ -200,7 +200,7 @@ class ShikimoriApi( private const val oauthUrl = "$baseUrl/oauth/token" private const val loginUrl = "$baseUrl/oauth/authorize" - private const val redirectUrl = "tachiyomi://shikimori-auth" + private const val redirectUrl = "mihon://shikimori-auth" fun authUrl(): Uri = loginUrl.toUri().buildUpon() .appendQueryParameter("client_id", clientId) From 1aa75f22d0761664af37a355c3a6660bed836502 Mon Sep 17 00:00:00 2001 From: AntsyLich <59261191+AntsyLich@users.noreply.github.com> Date: Mon, 15 Jan 2024 23:39:48 +0600 Subject: [PATCH 11/28] Replace all Tachi links to Mihon --- .github/ISSUE_TEMPLATE.md | 2 +- .github/ISSUE_TEMPLATE/config.yml | 4 ++-- .github/ISSUE_TEMPLATE/report_issue.yml | 2 +- .github/workflows/issue_moderator.yml | 2 +- CONTRIBUTING.md | 2 +- README.md | 4 ++-- .../java/eu/kanade/presentation/more/onboarding/GuidesStep.kt | 2 +- .../presentation/more/settings/screen/SettingsDataScreen.kt | 2 +- .../more/settings/screen/SettingsTrackingScreen.kt | 2 +- .../presentation/more/settings/screen/about/AboutScreen.kt | 4 ++-- .../eu/kanade/presentation/webview/WebViewScreenContent.kt | 2 +- .../java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt | 2 +- .../eu/kanade/tachiyomi/data/library/LibraryUpdateNotifier.kt | 2 +- .../eu/kanade/tachiyomi/data/updater/AppUpdateNotifier.kt | 2 +- .../tachiyomi/ui/browse/migration/sources/MigrateSourceTab.kt | 2 +- core/src/main/java/tachiyomi/core/Constants.kt | 2 +- i18n/README.md | 2 +- .../androidMain/kotlin/tachiyomi/source/local/LocalSource.kt | 2 +- 18 files changed, 21 insertions(+), 21 deletions(-) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index ac85b7483..01cf0e1d0 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -5,7 +5,7 @@ I acknowledge that: - I have updated: - To the latest version of the app (stable is v0.15.3) - All extensions -- I have gone through the FAQ (https://tachiyomi.org/docs/faq/general) and troubleshooting guide (https://tachiyomi.org/docs/guides/troubleshooting/) +- I have gone through the FAQ (https://mihon.app/docs/faq/general) and troubleshooting guide (https://mihon.app/docs/guides/troubleshooting/) - If this is an issue with an official extension, that I should be opening an issue in https://github.com/tachiyomiorg/extensions - I have searched the existing issues and this is new ticket **NOT** a duplicate or related to another open or closed issue - I will fill out the title and the information in this template diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 30d50347e..ff28e96e2 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -4,8 +4,8 @@ contact_links: url: https://github.com/tachiyomiorg/extensions/issues/new/choose about: Issues and requests for official extensions and sources should be opened in the extensions repository instead - name: 📦 Tachiyomi extensions - url: https://tachiyomi.org/extensions/ + url: https://mihon.app/extensions/ about: List of all available extensions with download links - name: 🖥️ Tachiyomi website - url: https://tachiyomi.org/ + url: https://mihon.app/ about: Guides, troubleshooting, and answers to common questions diff --git a/.github/ISSUE_TEMPLATE/report_issue.yml b/.github/ISSUE_TEMPLATE/report_issue.yml index 44531d16a..3e406d2f0 100644 --- a/.github/ISSUE_TEMPLATE/report_issue.yml +++ b/.github/ISSUE_TEMPLATE/report_issue.yml @@ -96,7 +96,7 @@ body: required: true - label: If this is an issue with an official extension, I should be opening an issue in the [extensions repository](https://github.com/tachiyomiorg/extensions/issues/new/choose). required: true - - label: I have gone through the [FAQ](https://tachiyomi.org/docs/faq/general) and [troubleshooting guide](https://tachiyomi.org/docs/guides/troubleshooting/). + - label: I have gone through the [FAQ](https://mihon.app/docs/faq/general) and [troubleshooting guide](https://mihon.app/docs/guides/troubleshooting/). required: true - label: I have updated the app to version **[0.15.3](https://github.com/tachiyomiorg/tachiyomi/releases/latest)**. required: true diff --git a/.github/workflows/issue_moderator.yml b/.github/workflows/issue_moderator.yml index 8e937956c..6a069e5c4 100644 --- a/.github/workflows/issue_moderator.yml +++ b/.github/workflows/issue_moderator.yml @@ -39,7 +39,7 @@ jobs: "regex": ".*(?:fail(?:ed|ure|s)?|can\\s*(?:no|')?t|(?:not|un).*able|(?Issues -1. **Before reporting a new issue, take a look at the [FAQ](https://tachiyomi.org/docs/faq/general), the [changelog](https://tachiyomi.org/changelogs/) and the already opened [issues](https://github.com/tachiyomiorg/tachiyomi/issues).** +1. **Before reporting a new issue, take a look at the [FAQ](https://mihon.app/docs/faq/general), the [changelog](https://mihon.app/changelogs/) and the already opened [issues](https://github.com/tachiyomiorg/tachiyomi/issues).** 2. If you are unsure, ask here: [![Discord](https://img.shields.io/discord/1195734228319617024.svg)](https://discord.gg/mihon) @@ -69,7 +69,7 @@ See [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md). ## FAQ -[See our website.](https://tachiyomi.org/) +[See our website.](https://mihon.app/) You can also reach out to us on [Discord](https://discord.gg/mihon). ## License diff --git a/app/src/main/java/eu/kanade/presentation/more/onboarding/GuidesStep.kt b/app/src/main/java/eu/kanade/presentation/more/onboarding/GuidesStep.kt index 5a095b0ef..0af77922a 100644 --- a/app/src/main/java/eu/kanade/presentation/more/onboarding/GuidesStep.kt +++ b/app/src/main/java/eu/kanade/presentation/more/onboarding/GuidesStep.kt @@ -56,7 +56,7 @@ internal class GuidesStep( } } -const val GETTING_STARTED_URL = "https://tachiyomi.org/docs/guides/getting-started" +const val GETTING_STARTED_URL = "https://mihon.app/docs/guides/getting-started" @PreviewLightDark @Composable diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDataScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDataScreen.kt index 43d24510c..f0a2864ee 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDataScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDataScreen.kt @@ -64,7 +64,7 @@ import uy.kohesive.injekt.api.get object SettingsDataScreen : SearchableSettings { val restorePreferenceKeyString = MR.strings.label_backup - const val HELP_URL = "https://tachiyomi.org/docs/faq/storage" + const val HELP_URL = "https://mihon.app/docs/faq/storage" @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 d0ba0dd0c..8d508746c 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 @@ -71,7 +71,7 @@ object SettingsTrackingScreen : SearchableSettings { @Composable override fun RowScope.AppBarAction() { val uriHandler = LocalUriHandler.current - IconButton(onClick = { uriHandler.openUri("https://tachiyomi.org/docs/guides/tracking") }) { + IconButton(onClick = { uriHandler.openUri("https://mihon.app/docs/guides/tracking") }) { Icon( imageVector = Icons.AutoMirrored.Outlined.HelpOutline, contentDescription = stringResource(MR.strings.tracking_guide), diff --git a/app/src/main/java/eu/kanade/presentation/more/settings/screen/about/AboutScreen.kt b/app/src/main/java/eu/kanade/presentation/more/settings/screen/about/AboutScreen.kt index 6afe5b842..b980a3aa8 100644 --- a/app/src/main/java/eu/kanade/presentation/more/settings/screen/about/AboutScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/settings/screen/about/AboutScreen.kt @@ -102,7 +102,7 @@ object AboutScreen : Screen() { item { TextPreferenceWidget( title = stringResource(MR.strings.privacy_policy), - onPreferenceClick = { uriHandler.openUri("https://tachiyomi.org/privacy/") }, + onPreferenceClick = { uriHandler.openUri("https://mihon.app/privacy/") }, ) } @@ -116,7 +116,7 @@ object AboutScreen : Screen() { LinkIcon( label = stringResource(MR.strings.website), icon = Icons.Outlined.Public, - url = "https://tachiyomi.org", + url = "https://mihon.app", ) LinkIcon( label = "Discord", diff --git a/app/src/main/java/eu/kanade/presentation/webview/WebViewScreenContent.kt b/app/src/main/java/eu/kanade/presentation/webview/WebViewScreenContent.kt index dcfb83534..f1779da58 100644 --- a/app/src/main/java/eu/kanade/presentation/webview/WebViewScreenContent.kt +++ b/app/src/main/java/eu/kanade/presentation/webview/WebViewScreenContent.kt @@ -175,7 +175,7 @@ fun WebViewScreenContent( .clip(MaterialTheme.shapes.small) .clickable { uriHandler.openUri( - "https://tachiyomi.org/docs/guides/troubleshooting/#cloudflare", + "https://mihon.app/docs/guides/troubleshooting/#cloudflare", ) }, ) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt index d7384fe51..578743da8 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt @@ -413,7 +413,7 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet private const val WORK_NAME_AUTO = "LibraryUpdate-auto" private const val WORK_NAME_MANUAL = "LibraryUpdate-manual" - private const val ERROR_LOG_HELP_URL = "https://tachiyomi.org/docs/guides/troubleshooting/" + private const val ERROR_LOG_HELP_URL = "https://mihon.app/docs/guides/troubleshooting/" private const val MANGA_PER_SOURCE_QUEUE_WARNING_THRESHOLD = 60 diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateNotifier.kt b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateNotifier.kt index 74e6c77e5..e49c5ba37 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateNotifier.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateNotifier.kt @@ -377,7 +377,7 @@ class LibraryUpdateNotifier( companion object { const val HELP_WARNING_URL = - "https://tachiyomi.org/docs/faq/library#why-am-i-warned-about-large-bulk-updates-and-downloads" + "https://mihon.app/docs/faq/library#why-am-i-warned-about-large-bulk-updates-and-downloads" } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/updater/AppUpdateNotifier.kt b/app/src/main/java/eu/kanade/tachiyomi/data/updater/AppUpdateNotifier.kt index dd7b8a68b..f5a900cdc 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/updater/AppUpdateNotifier.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/updater/AppUpdateNotifier.kt @@ -153,7 +153,7 @@ internal class AppUpdateNotifier(private val context: Context) { setContentIntent( NotificationHandler.openUrl( context, - "https://tachiyomi.org/docs/faq/general#how-do-i-update-from-the-f-droid-builds", + "https://mihon.app/docs/faq/general#how-do-i-update-from-the-f-droid-builds", ), ) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrateSourceTab.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrateSourceTab.kt index aaf47a3af..a3ebea28f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrateSourceTab.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrateSourceTab.kt @@ -32,7 +32,7 @@ fun Screen.migrateSourceTab(): TabContent { title = stringResource(MR.strings.migration_help_guide), icon = Icons.AutoMirrored.Outlined.HelpOutline, onClick = { - uriHandler.openUri("https://tachiyomi.org/docs/guides/source-migration") + uriHandler.openUri("https://mihon.app/docs/guides/source-migration") }, ), ), diff --git a/core/src/main/java/tachiyomi/core/Constants.kt b/core/src/main/java/tachiyomi/core/Constants.kt index c5631535f..46c619b86 100644 --- a/core/src/main/java/tachiyomi/core/Constants.kt +++ b/core/src/main/java/tachiyomi/core/Constants.kt @@ -1,7 +1,7 @@ package tachiyomi.core object Constants { - const val URL_HELP = "https://tachiyomi.org/docs/guides/troubleshooting/" + const val URL_HELP = "https://mihon.app/docs/guides/troubleshooting/" const val MANGA_EXTRA = "manga" diff --git a/i18n/README.md b/i18n/README.md index 545c09448..b96cd6535 100644 --- a/i18n/README.md +++ b/i18n/README.md @@ -2,4 +2,4 @@ This module houses the string resources and translations. -Original English strings are manged in `src/commonMain/resources/MR/base/`. Translations are done externally via Weblate. See [our website](https://tachiyomi.org/docs/contribute#translation) for more details. \ No newline at end of file +Original English strings are manged in `src/commonMain/resources/MR/base/`. Translations are done externally via Weblate. See [our website](https://mihon.app/docs/contribute#translation) for more details. \ No newline at end of file diff --git a/source-local/src/androidMain/kotlin/tachiyomi/source/local/LocalSource.kt b/source-local/src/androidMain/kotlin/tachiyomi/source/local/LocalSource.kt index d92f93900..93bb2ec6f 100644 --- a/source-local/src/androidMain/kotlin/tachiyomi/source/local/LocalSource.kt +++ b/source-local/src/androidMain/kotlin/tachiyomi/source/local/LocalSource.kt @@ -367,7 +367,7 @@ actual class LocalSource( companion object { const val ID = 0L - const val HELP_URL = "https://tachiyomi.org/docs/guides/local-source/" + const val HELP_URL = "https://mihon.app/docs/guides/local-source/" private val LATEST_THRESHOLD = 7.days.inWholeMilliseconds } From e51013d2a479998dac7498a436a9f1542e98479e Mon Sep 17 00:00:00 2001 From: AntsyLich <59261191+AntsyLich@users.noreply.github.com> Date: Mon, 15 Jan 2024 23:45:49 +0600 Subject: [PATCH 12/28] Remove unnecessary migrations --- .../java/eu/kanade/tachiyomi/Migrations.kt | 425 +----------------- .../kanade/tachiyomi/ui/main/MainActivity.kt | 9 - .../sqldelight/tachiyomi/migrations/1.sqm | 6 - .../sqldelight/tachiyomi/migrations/10.sqm | 11 - .../sqldelight/tachiyomi/migrations/11.sqm | 2 - .../sqldelight/tachiyomi/migrations/12.sqm | 27 -- .../sqldelight/tachiyomi/migrations/13.sqm | 3 - .../sqldelight/tachiyomi/migrations/14.sqm | 149 ------ .../sqldelight/tachiyomi/migrations/15.sqm | 52 --- .../sqldelight/tachiyomi/migrations/16.sqm | 5 - .../sqldelight/tachiyomi/migrations/17.sqm | 29 -- .../sqldelight/tachiyomi/migrations/18.sqm | 20 - .../sqldelight/tachiyomi/migrations/19.sqm | 10 - .../sqldelight/tachiyomi/migrations/2.sqm | 10 - .../sqldelight/tachiyomi/migrations/20.sqm | 1 - .../sqldelight/tachiyomi/migrations/21.sqm | 27 -- .../sqldelight/tachiyomi/migrations/22.sqm | 31 -- .../sqldelight/tachiyomi/migrations/23.sqm | 23 - .../sqldelight/tachiyomi/migrations/24.sqm | 1 - .../sqldelight/tachiyomi/migrations/25.sqm | 49 -- .../sqldelight/tachiyomi/migrations/26.sqm | 44 -- .../sqldelight/tachiyomi/migrations/27.sqm | 3 - .../sqldelight/tachiyomi/migrations/3.sqm | 2 - .../sqldelight/tachiyomi/migrations/4.sqm | 2 - .../sqldelight/tachiyomi/migrations/5.sqm | 2 - .../sqldelight/tachiyomi/migrations/6.sqm | 2 - .../sqldelight/tachiyomi/migrations/7.sqm | 9 - .../sqldelight/tachiyomi/migrations/8.sqm | 5 - .../sqldelight/tachiyomi/migrations/9.sqm | 2 - 29 files changed, 1 insertion(+), 960 deletions(-) delete mode 100644 data/src/main/sqldelight/tachiyomi/migrations/1.sqm delete mode 100644 data/src/main/sqldelight/tachiyomi/migrations/10.sqm delete mode 100644 data/src/main/sqldelight/tachiyomi/migrations/11.sqm delete mode 100644 data/src/main/sqldelight/tachiyomi/migrations/12.sqm delete mode 100644 data/src/main/sqldelight/tachiyomi/migrations/13.sqm delete mode 100644 data/src/main/sqldelight/tachiyomi/migrations/14.sqm delete mode 100644 data/src/main/sqldelight/tachiyomi/migrations/15.sqm delete mode 100644 data/src/main/sqldelight/tachiyomi/migrations/16.sqm delete mode 100644 data/src/main/sqldelight/tachiyomi/migrations/17.sqm delete mode 100644 data/src/main/sqldelight/tachiyomi/migrations/18.sqm delete mode 100644 data/src/main/sqldelight/tachiyomi/migrations/19.sqm delete mode 100644 data/src/main/sqldelight/tachiyomi/migrations/2.sqm delete mode 100644 data/src/main/sqldelight/tachiyomi/migrations/20.sqm delete mode 100644 data/src/main/sqldelight/tachiyomi/migrations/21.sqm delete mode 100644 data/src/main/sqldelight/tachiyomi/migrations/22.sqm delete mode 100644 data/src/main/sqldelight/tachiyomi/migrations/23.sqm delete mode 100644 data/src/main/sqldelight/tachiyomi/migrations/24.sqm delete mode 100644 data/src/main/sqldelight/tachiyomi/migrations/25.sqm delete mode 100644 data/src/main/sqldelight/tachiyomi/migrations/26.sqm delete mode 100644 data/src/main/sqldelight/tachiyomi/migrations/27.sqm delete mode 100644 data/src/main/sqldelight/tachiyomi/migrations/3.sqm delete mode 100644 data/src/main/sqldelight/tachiyomi/migrations/4.sqm delete mode 100644 data/src/main/sqldelight/tachiyomi/migrations/5.sqm delete mode 100644 data/src/main/sqldelight/tachiyomi/migrations/6.sqm delete mode 100644 data/src/main/sqldelight/tachiyomi/migrations/7.sqm delete mode 100644 data/src/main/sqldelight/tachiyomi/migrations/8.sqm delete mode 100644 data/src/main/sqldelight/tachiyomi/migrations/9.sqm diff --git a/app/src/main/java/eu/kanade/tachiyomi/Migrations.kt b/app/src/main/java/eu/kanade/tachiyomi/Migrations.kt index 9947f98ec..119adf72d 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/Migrations.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/Migrations.kt @@ -1,34 +1,10 @@ package eu.kanade.tachiyomi import android.content.Context -import androidx.core.content.edit -import androidx.preference.PreferenceManager -import eu.kanade.domain.base.BasePreferences -import eu.kanade.domain.source.service.SourcePreferences -import eu.kanade.domain.ui.UiPreferences -import eu.kanade.tachiyomi.core.security.SecurityPreferences import eu.kanade.tachiyomi.data.backup.create.BackupCreateJob import eu.kanade.tachiyomi.data.library.LibraryUpdateJob -import eu.kanade.tachiyomi.data.track.TrackerManager -import eu.kanade.tachiyomi.network.NetworkPreferences -import eu.kanade.tachiyomi.network.PREF_DOH_CLOUDFLARE -import eu.kanade.tachiyomi.ui.reader.setting.ReaderOrientation -import eu.kanade.tachiyomi.ui.reader.setting.ReaderPreferences -import eu.kanade.tachiyomi.util.system.DeviceUtil -import eu.kanade.tachiyomi.util.system.toast -import eu.kanade.tachiyomi.util.system.workManager import tachiyomi.core.preference.Preference import tachiyomi.core.preference.PreferenceStore -import tachiyomi.core.preference.TriState -import tachiyomi.core.preference.getAndSet -import tachiyomi.core.preference.getEnum -import tachiyomi.core.preference.minusAssign -import tachiyomi.core.preference.plusAssign -import tachiyomi.domain.backup.service.BackupPreferences -import tachiyomi.domain.library.service.LibraryPreferences -import tachiyomi.domain.library.service.LibraryPreferences.Companion.MANGA_NON_COMPLETED -import tachiyomi.i18n.MR -import java.io.File object Migrations { @@ -37,18 +13,10 @@ object Migrations { * * @return true if a migration is performed, false otherwise. */ + @Suppress("SameReturnValue") fun upgrade( context: Context, preferenceStore: PreferenceStore, - basePreferences: BasePreferences, - uiPreferences: UiPreferences, - networkPreferences: NetworkPreferences, - sourcePreferences: SourcePreferences, - securityPreferences: SecurityPreferences, - libraryPreferences: LibraryPreferences, - readerPreferences: ReaderPreferences, - backupPreferences: BackupPreferences, - trackerManager: TrackerManager, ): Boolean { val lastVersionCode = preferenceStore.getInt(Preference.appStateKey("last_version_code"), 0) val oldVersion = lastVersionCode.get() @@ -63,399 +31,8 @@ object Migrations { if (oldVersion == 0) { return false } - - val prefs = PreferenceManager.getDefaultSharedPreferences(context) - - if (oldVersion < 15) { - // Delete internal chapter cache dir. - File(context.cacheDir, "chapter_disk_cache").deleteRecursively() - } - if (oldVersion < 19) { - // Move covers to external files dir. - val oldDir = File(context.externalCacheDir, "cover_disk_cache") - if (oldDir.exists()) { - val destDir = context.getExternalFilesDir("covers") - if (destDir != null) { - oldDir.listFiles()?.forEach { - it.renameTo(File(destDir, it.name)) - } - } - } - } - if (oldVersion < 26) { - // Delete external chapter cache dir. - val extCache = context.externalCacheDir - if (extCache != null) { - val chapterCache = File(extCache, "chapter_disk_cache") - if (chapterCache.exists()) { - chapterCache.deleteRecursively() - } - } - } - if (oldVersion < 44) { - // Reset sorting preference if using removed sort by source - val oldSortingMode = prefs.getInt(libraryPreferences.sortingMode().key(), 0) - - if (oldSortingMode == 5) { // SOURCE = 5 - prefs.edit { - putInt(libraryPreferences.sortingMode().key(), 0) // ALPHABETICAL = 0 - } - } - } - if (oldVersion < 52) { - // Migrate library filters to tri-state versions - fun convertBooleanPrefToTriState(key: String): Int { - val oldPrefValue = prefs.getBoolean(key, false) - return if (oldPrefValue) { - 1 - } else { - 0 - } - } - prefs.edit { - putInt( - libraryPreferences.filterDownloaded().key(), - convertBooleanPrefToTriState("pref_filter_downloaded_key"), - ) - remove("pref_filter_downloaded_key") - - putInt( - libraryPreferences.filterUnread().key(), - convertBooleanPrefToTriState("pref_filter_unread_key"), - ) - remove("pref_filter_unread_key") - - putInt( - libraryPreferences.filterCompleted().key(), - convertBooleanPrefToTriState("pref_filter_completed_key"), - ) - remove("pref_filter_completed_key") - } - } - if (oldVersion < 54) { - // Force MAL log out due to login flow change - // v52: switched from scraping to WebView - // v53: switched from WebView to OAuth - if (trackerManager.myAnimeList.isLoggedIn) { - trackerManager.myAnimeList.logout() - context.toast(MR.strings.myanimelist_relogin) - } - } - if (oldVersion < 57) { - // Migrate DNS over HTTPS setting - val wasDohEnabled = prefs.getBoolean("enable_doh", false) - if (wasDohEnabled) { - prefs.edit { - putInt(networkPreferences.dohProvider().key(), PREF_DOH_CLOUDFLARE) - remove("enable_doh") - } - } - } - if (oldVersion < 59) { - // Reset rotation to Free after replacing Lock - if (prefs.contains("pref_rotation_type_key")) { - prefs.edit { - putInt("pref_rotation_type_key", 1) - } - } - } - if (oldVersion < 60) { - // Migrate Rotation and Viewer values to default values for viewer_flags - val newOrientation = when (prefs.getInt("pref_rotation_type_key", 1)) { - 1 -> ReaderOrientation.FREE.flagValue - 2 -> ReaderOrientation.PORTRAIT.flagValue - 3 -> ReaderOrientation.LANDSCAPE.flagValue - 4 -> ReaderOrientation.LOCKED_PORTRAIT.flagValue - 5 -> ReaderOrientation.LOCKED_LANDSCAPE.flagValue - else -> ReaderOrientation.FREE.flagValue - } - - // Reading mode flag and prefValue is the same value - val newReadingMode = prefs.getInt("pref_default_viewer_key", 1) - - prefs.edit { - putInt("pref_default_orientation_type_key", newOrientation) - remove("pref_rotation_type_key") - putInt("pref_default_reading_mode_key", newReadingMode) - remove("pref_default_viewer_key") - } - } - if (oldVersion < 61) { - // Handle removed every 1 or 2 hour library updates - val updateInterval = libraryPreferences.autoUpdateInterval().get() - if (updateInterval == 1 || updateInterval == 2) { - libraryPreferences.autoUpdateInterval().set(3) - LibraryUpdateJob.setupTask(context, 3) - } - } - if (oldVersion < 64) { - val oldSortingMode = prefs.getInt(libraryPreferences.sortingMode().key(), 0) - val oldSortingDirection = prefs.getBoolean("library_sorting_ascending", true) - - val newSortingMode = when (oldSortingMode) { - 0 -> "ALPHABETICAL" - 1 -> "LAST_READ" - 2 -> "LAST_CHECKED" - 3 -> "UNREAD" - 4 -> "TOTAL_CHAPTERS" - 6 -> "LATEST_CHAPTER" - 8 -> "DATE_FETCHED" - 7 -> "DATE_ADDED" - else -> "ALPHABETICAL" - } - - val newSortingDirection = when (oldSortingDirection) { - true -> "ASCENDING" - else -> "DESCENDING" - } - - prefs.edit(commit = true) { - remove(libraryPreferences.sortingMode().key()) - remove("library_sorting_ascending") - } - - prefs.edit { - putString(libraryPreferences.sortingMode().key(), newSortingMode) - putString("library_sorting_ascending", newSortingDirection) - } - } - if (oldVersion < 70) { - if (sourcePreferences.enabledLanguages().isSet()) { - sourcePreferences.enabledLanguages() += "all" - } - } - if (oldVersion < 71) { - // Handle removed every 3, 4, 6, and 8 hour library updates - val updateInterval = libraryPreferences.autoUpdateInterval().get() - if (updateInterval in listOf(3, 4, 6, 8)) { - libraryPreferences.autoUpdateInterval().set(12) - LibraryUpdateJob.setupTask(context, 12) - } - } - if (oldVersion < 72) { - val oldUpdateOngoingOnly = prefs.getBoolean("pref_update_only_non_completed_key", true) - if (!oldUpdateOngoingOnly) { - libraryPreferences.autoUpdateMangaRestrictions() -= MANGA_NON_COMPLETED - } - } - if (oldVersion < 75) { - val oldSecureScreen = prefs.getBoolean("secure_screen", false) - if (oldSecureScreen) { - securityPreferences.secureScreen().set(SecurityPreferences.SecureScreenMode.ALWAYS) - } - if ( - DeviceUtil.isMiui && - basePreferences.extensionInstaller().get() == BasePreferences.ExtensionInstaller.PACKAGEINSTALLER - ) { - basePreferences.extensionInstaller().set(BasePreferences.ExtensionInstaller.LEGACY) - } - } - if (oldVersion < 77) { - val oldReaderTap = prefs.getBoolean("reader_tap", false) - if (!oldReaderTap) { - readerPreferences.navigationModePager().set(5) - readerPreferences.navigationModeWebtoon().set(5) - } - } - if (oldVersion < 81) { - // Handle renamed enum values - prefs.edit { - val newSortingMode = when ( - val oldSortingMode = prefs.getString( - libraryPreferences.sortingMode().key(), - "ALPHABETICAL", - ) - ) { - "LAST_CHECKED" -> "LAST_MANGA_UPDATE" - "UNREAD" -> "UNREAD_COUNT" - "DATE_FETCHED" -> "CHAPTER_FETCH_DATE" - else -> oldSortingMode - } - putString(libraryPreferences.sortingMode().key(), newSortingMode) - } - } - if (oldVersion < 82) { - prefs.edit { - val sort = prefs.getString(libraryPreferences.sortingMode().key(), null) ?: return@edit - val direction = prefs.getString("library_sorting_ascending", "ASCENDING")!! - putString(libraryPreferences.sortingMode().key(), "$sort,$direction") - remove("library_sorting_ascending") - } - } - if (oldVersion < 84) { - if (backupPreferences.backupInterval().get() == 0) { - backupPreferences.backupInterval().set(12) - BackupCreateJob.setupTask(context) - } - } - if (oldVersion < 85) { - val preferences = listOf( - libraryPreferences.filterChapterByRead(), - libraryPreferences.filterChapterByDownloaded(), - libraryPreferences.filterChapterByBookmarked(), - libraryPreferences.sortChapterBySourceOrNumber(), - libraryPreferences.displayChapterByNameOrNumber(), - libraryPreferences.sortChapterByAscendingOrDescending(), - ) - - prefs.edit { - preferences.forEach { preference -> - val key = preference.key() - val value = prefs.getInt(key, Int.MIN_VALUE) - if (value == Int.MIN_VALUE) return@forEach - remove(key) - putLong(key, value.toLong()) - } - } - } - if (oldVersion < 86) { - if (uiPreferences.themeMode().isSet()) { - prefs.edit { - val themeMode = prefs.getString(uiPreferences.themeMode().key(), null) ?: return@edit - putString(uiPreferences.themeMode().key(), themeMode.uppercase()) - } - } - } - if (oldVersion < 92) { - val trackingQueuePref = context.getSharedPreferences("tracking_queue", Context.MODE_PRIVATE) - trackingQueuePref.all.forEach { - val (_, lastChapterRead) = it.value.toString().split(":") - trackingQueuePref.edit { - remove(it.key) - putFloat(it.key, lastChapterRead.toFloat()) - } - } - } - if (oldVersion < 96) { - LibraryUpdateJob.cancelAllWorks(context) - LibraryUpdateJob.setupTask(context) - } - if (oldVersion < 97) { - // Removed background jobs - context.workManager.cancelAllWorkByTag("UpdateChecker") - context.workManager.cancelAllWorkByTag("ExtensionUpdate") - prefs.edit { - remove("automatic_ext_updates") - } - } - if (oldVersion < 99) { - val prefKeys = listOf( - "pref_filter_library_downloaded", - "pref_filter_library_unread", - "pref_filter_library_started", - "pref_filter_library_bookmarked", - "pref_filter_library_completed", - ) + trackerManager.trackers.map { "pref_filter_library_tracked_${it.id}" } - - prefKeys.forEach { key -> - val pref = preferenceStore.getInt(key, 0) - prefs.edit { - remove(key) - - val newValue = when (pref.get()) { - 1 -> TriState.ENABLED_IS - 2 -> TriState.ENABLED_NOT - else -> TriState.DISABLED - } - - preferenceStore.getEnum("${key}_v2", TriState.DISABLED).set(newValue) - } - } - } - if (oldVersion < 105) { - val pref = libraryPreferences.autoUpdateDeviceRestrictions() - if (pref.isSet() && "battery_not_low" in pref.get()) { - pref.getAndSet { it - "battery_not_low" } - } - } - if (oldVersion < 106) { - val pref = preferenceStore.getInt("relative_time", 7) - if (pref.get() == 0) { - uiPreferences.relativeTime().set(false) - } - } - if (oldVersion < 113) { - val prefsToReplace = listOf( - "pref_download_only", - "incognito_mode", - "last_catalogue_source", - "trusted_signatures", - "last_app_closed", - "library_update_last_timestamp", - "library_unseen_updates_count", - "last_used_category", - "last_app_check", - "last_ext_check", - "last_version_code", - "storage_dir", - ) - replacePreferences( - preferenceStore = preferenceStore, - filterPredicate = { it.key in prefsToReplace }, - newKey = { Preference.appStateKey(it) }, - ) - - // Deleting old download cache index files, but might as well clear it all out - context.cacheDir.deleteRecursively() - } - if (oldVersion < 114) { - sourcePreferences.extensionRepos().getAndSet { - it.map { repo -> "https://raw.githubusercontent.com/$repo/repo" }.toSet() - } - } - if (oldVersion < 116) { - replacePreferences( - preferenceStore = preferenceStore, - filterPredicate = { it.key.startsWith("pref_mangasync_") || it.key.startsWith("track_token_") }, - newKey = { Preference.privateKey(it) }, - ) - } - if (oldVersion < 117) { - prefs.edit { - remove(Preference.appStateKey("trusted_signatures")) - } - } - return true } return false } } - -@Suppress("UNCHECKED_CAST") -private fun replacePreferences( - preferenceStore: PreferenceStore, - filterPredicate: (Map.Entry) -> Boolean, - newKey: (String) -> String, -) { - preferenceStore.getAll() - .filter(filterPredicate) - .forEach { (key, value) -> - when (value) { - is Int -> { - preferenceStore.getInt(newKey(key)).set(value) - preferenceStore.getInt(key).delete() - } - is Long -> { - preferenceStore.getLong(newKey(key)).set(value) - preferenceStore.getLong(key).delete() - } - is Float -> { - preferenceStore.getFloat(newKey(key)).set(value) - preferenceStore.getFloat(key).delete() - } - is String -> { - preferenceStore.getString(newKey(key)).set(value) - preferenceStore.getString(key).delete() - } - is Boolean -> { - preferenceStore.getBoolean(newKey(key)).set(value) - preferenceStore.getBoolean(key).delete() - } - is Set<*> -> (value as? Set)?.let { - preferenceStore.getStringSet(newKey(key)).set(value) - preferenceStore.getStringSet(key).delete() - } - } - } -} diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt index 3b5fe77d9..c0125bbd8 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt @@ -133,16 +133,7 @@ class MainActivity : BaseActivity() { val didMigration = if (isLaunch) { Migrations.upgrade( context = applicationContext, - basePreferences = preferences, - uiPreferences = uiPreferences, preferenceStore = Injekt.get(), - networkPreferences = Injekt.get(), - sourcePreferences = sourcePreferences, - securityPreferences = Injekt.get(), - libraryPreferences = libraryPreferences, - readerPreferences = Injekt.get(), - backupPreferences = Injekt.get(), - trackerManager = Injekt.get(), ) } else { false diff --git a/data/src/main/sqldelight/tachiyomi/migrations/1.sqm b/data/src/main/sqldelight/tachiyomi/migrations/1.sqm deleted file mode 100644 index 7ae4198c7..000000000 --- a/data/src/main/sqldelight/tachiyomi/migrations/1.sqm +++ /dev/null @@ -1,6 +0,0 @@ -ALTER TABLE chapters -ADD COLUMN source_order INTEGER DEFAULT 0; - -UPDATE mangas -SET thumbnail_url = replace(thumbnail_url, '93.174.95.110', 'kissmanga.com') -WHERE source = 4; \ No newline at end of file diff --git a/data/src/main/sqldelight/tachiyomi/migrations/10.sqm b/data/src/main/sqldelight/tachiyomi/migrations/10.sqm deleted file mode 100644 index 20a2c8444..000000000 --- a/data/src/main/sqldelight/tachiyomi/migrations/10.sqm +++ /dev/null @@ -1,11 +0,0 @@ -ALTER TABLE mangas -ADD COLUMN date_added INTEGER NOT NULL DEFAULT 0; - -UPDATE mangas -SET date_added = ( - SELECT MIN(date_fetch) - FROM mangas M - INNER JOIN chapters C - ON M._id = C.manga_id - GROUP BY M._id -); \ No newline at end of file diff --git a/data/src/main/sqldelight/tachiyomi/migrations/11.sqm b/data/src/main/sqldelight/tachiyomi/migrations/11.sqm deleted file mode 100644 index 23b429acd..000000000 --- a/data/src/main/sqldelight/tachiyomi/migrations/11.sqm +++ /dev/null @@ -1,2 +0,0 @@ -ALTER TABLE mangas -ADD COLUMN next_update INTEGER DEFAULT 0; \ No newline at end of file diff --git a/data/src/main/sqldelight/tachiyomi/migrations/12.sqm b/data/src/main/sqldelight/tachiyomi/migrations/12.sqm deleted file mode 100644 index 953b99d0e..000000000 --- a/data/src/main/sqldelight/tachiyomi/migrations/12.sqm +++ /dev/null @@ -1,27 +0,0 @@ -ALTER TABLE manga_sync -RENAME TO manga_sync_tmp; - -CREATE TABLE manga_sync( - _id INTEGER NOT NULL PRIMARY KEY, - manga_id INTEGER NOT NULL, - sync_id INTEGER NOT NULL, - remote_id INTEGER NOT NULL, - library_id INTEGER, - title TEXT NOT NULL, - last_chapter_read REAL NOT NULL, - total_chapters INTEGER NOT NULL, - status INTEGER NOT NULL, - score REAL AS Float NOT NULL, - remote_url TEXT NOT NULL, - start_date INTEGER AS Long NOT NULL, - finish_date INTEGER AS Long NOT NULL, - UNIQUE (manga_id, sync_id) ON CONFLICT REPLACE, - FOREIGN KEY(manga_id) REFERENCES mangas (_id) - ON DELETE CASCADE -); - -INSERT INTO manga_sync(_id, manga_id, sync_id, remote_id, library_id, title, last_chapter_read, total_chapters, status, score, remote_url, start_date, finish_date) -SELECT _id, manga_id, sync_id, remote_id, library_id, title, last_chapter_read, total_chapters, status, score, remote_url, start_date, finish_date -FROM manga_sync_tmp; - -DROP TABLE manga_sync_tmp; \ No newline at end of file diff --git a/data/src/main/sqldelight/tachiyomi/migrations/13.sqm b/data/src/main/sqldelight/tachiyomi/migrations/13.sqm deleted file mode 100644 index 78e1ece21..000000000 --- a/data/src/main/sqldelight/tachiyomi/migrations/13.sqm +++ /dev/null @@ -1,3 +0,0 @@ -UPDATE chapters -SET date_upload = date_fetch -WHERE date_upload = 0; \ No newline at end of file diff --git a/data/src/main/sqldelight/tachiyomi/migrations/14.sqm b/data/src/main/sqldelight/tachiyomi/migrations/14.sqm deleted file mode 100644 index 918958392..000000000 --- a/data/src/main/sqldelight/tachiyomi/migrations/14.sqm +++ /dev/null @@ -1,149 +0,0 @@ -DROP INDEX IF EXISTS chapters_manga_id_index; -DROP INDEX IF EXISTS chapters_unread_by_manga_index; -DROP INDEX IF EXISTS history_history_chapter_id_index; -DROP INDEX IF EXISTS library_favorite_index; -DROP INDEX IF EXISTS mangas_url_index; - -ALTER TABLE mangas RENAME TO manga_temp; -CREATE TABLE mangas( - _id INTEGER NOT NULL PRIMARY KEY, - source INTEGER NOT NULL, - url TEXT NOT NULL, - artist TEXT, - author TEXT, - description TEXT, - genre TEXT, - title TEXT NOT NULL, - status INTEGER NOT NULL, - thumbnail_url TEXT, - favorite INTEGER NOT NULL, - last_update INTEGER AS Long, - next_update INTEGER AS Long, - initialized INTEGER AS Boolean NOT NULL, - viewer INTEGER NOT NULL, - chapter_flags INTEGER NOT NULL, - cover_last_modified INTEGER AS Long NOT NULL, - date_added INTEGER AS Long NOT NULL -); -INSERT INTO mangas -SELECT _id,source,url,artist,author,description,genre,title,status,thumbnail_url,favorite,last_update,next_update,initialized,viewer,chapter_flags,cover_last_modified,date_added -FROM manga_temp; - -ALTER TABLE categories RENAME TO categories_temp; -CREATE TABLE categories( - _id INTEGER NOT NULL PRIMARY KEY, - name TEXT NOT NULL, - sort INTEGER NOT NULL, - flags INTEGER NOT NULL -); -INSERT INTO categories -SELECT _id,name,sort,flags -FROM categories_temp; - -ALTER TABLE chapters RENAME TO chapters_temp; -CREATE TABLE chapters( - _id INTEGER NOT NULL PRIMARY KEY, - manga_id INTEGER NOT NULL, - url TEXT NOT NULL, - name TEXT NOT NULL, - scanlator TEXT, - read INTEGER AS Boolean NOT NULL, - bookmark INTEGER AS Boolean NOT NULL, - last_page_read INTEGER NOT NULL, - chapter_number REAL AS Float NOT NULL, - source_order INTEGER NOT NULL, - date_fetch INTEGER AS Long NOT NULL, - date_upload INTEGER AS Long NOT NULL, - FOREIGN KEY(manga_id) REFERENCES mangas (_id) - ON DELETE CASCADE -); -INSERT INTO chapters -SELECT _id,manga_id,url,name,scanlator,read,bookmark,last_page_read,chapter_number,source_order,date_fetch,date_upload -FROM chapters_temp; - -ALTER TABLE history RENAME TO history_temp; -CREATE TABLE history( - history_id INTEGER NOT NULL PRIMARY KEY, - history_chapter_id INTEGER NOT NULL UNIQUE, - history_last_read INTEGER AS Long, - history_time_read INTEGER AS Long, - FOREIGN KEY(history_chapter_id) REFERENCES chapters (_id) - ON DELETE CASCADE -); -INSERT INTO history -SELECT history_id, history_chapter_id, history_last_read, history_time_read -FROM history_temp; - -ALTER TABLE mangas_categories RENAME TO mangas_categories_temp; -CREATE TABLE mangas_categories( - _id INTEGER NOT NULL PRIMARY KEY, - manga_id INTEGER NOT NULL, - category_id INTEGER NOT NULL, - FOREIGN KEY(category_id) REFERENCES categories (_id) - ON DELETE CASCADE, - FOREIGN KEY(manga_id) REFERENCES mangas (_id) - ON DELETE CASCADE -); -INSERT INTO mangas_categories -SELECT _id, manga_id, category_id -FROM mangas_categories_temp; - -ALTER TABLE manga_sync RENAME TO manga_sync_temp; -CREATE TABLE manga_sync( - _id INTEGER NOT NULL PRIMARY KEY, - manga_id INTEGER NOT NULL, - sync_id INTEGER NOT NULL, - remote_id INTEGER NOT NULL, - library_id INTEGER, - title TEXT NOT NULL, - last_chapter_read REAL NOT NULL, - total_chapters INTEGER NOT NULL, - status INTEGER NOT NULL, - score REAL AS Float NOT NULL, - remote_url TEXT NOT NULL, - start_date INTEGER AS Long NOT NULL, - finish_date INTEGER AS Long NOT NULL, - UNIQUE (manga_id, sync_id) ON CONFLICT REPLACE, - FOREIGN KEY(manga_id) REFERENCES mangas (_id) - ON DELETE CASCADE -); -INSERT INTO manga_sync -SELECT _id, manga_id, sync_id, remote_id, library_id, title, last_chapter_read, total_chapters, status, score, remote_url, start_date, finish_date -FROM manga_sync_temp; - -CREATE INDEX chapters_manga_id_index ON chapters(manga_id); -CREATE INDEX chapters_unread_by_manga_index ON chapters(manga_id, read) WHERE read = 0; -CREATE INDEX history_history_chapter_id_index ON history(history_chapter_id); -CREATE INDEX library_favorite_index ON mangas(favorite) WHERE favorite = 1; -CREATE INDEX mangas_url_index ON mangas(url); - -CREATE VIEW IF NOT EXISTS historyView AS -SELECT -history.history_id AS id, -mangas._id AS mangaId, -chapters._id AS chapterId, -mangas.title, -mangas.thumbnail_url AS thumnailUrl, -chapters.chapter_number AS chapterNumber, -history.history_last_read AS readAt, -max_last_read.history_last_read AS maxReadAt, -max_last_read.history_chapter_id AS maxReadAtChapterId -FROM mangas -JOIN chapters -ON mangas._id = chapters.manga_id -JOIN history -ON chapters._id = history.history_chapter_id -JOIN ( -SELECT chapters.manga_id,chapters._id AS history_chapter_id, MAX(history.history_last_read) AS history_last_read -FROM chapters JOIN history -ON chapters._id = history.history_chapter_id -GROUP BY chapters.manga_id -) AS max_last_read -ON chapters.manga_id = max_last_read.manga_id; - -DROP TABLE IF EXISTS manga_sync_temp; -DROP TABLE IF EXISTS mangas_categories_temp; -DROP TABLE IF EXISTS history_temp; -DROP TABLE IF EXISTS chapters_temp; -DROP TABLE IF EXISTS categories_temp; -DROP TABLE IF EXISTS manga_temp; \ No newline at end of file diff --git a/data/src/main/sqldelight/tachiyomi/migrations/15.sqm b/data/src/main/sqldelight/tachiyomi/migrations/15.sqm deleted file mode 100644 index 6c3c60b9b..000000000 --- a/data/src/main/sqldelight/tachiyomi/migrations/15.sqm +++ /dev/null @@ -1,52 +0,0 @@ -import java.util.Date; - -DROP INDEX IF EXISTS history_history_chapter_id_index; -DROP VIEW IF EXISTS historyView; - -/** - * [last_read] was made not-null - * [time_read] was kept as long and made non-null - * `history` prefix was removed from table name - */ -ALTER TABLE history RENAME TO history_temp; -CREATE TABLE history( - _id INTEGER NOT NULL PRIMARY KEY, - chapter_id INTEGER NOT NULL UNIQUE, - last_read INTEGER AS Date NOT NULL, - time_read INTEGER NOT NULL, - FOREIGN KEY(chapter_id) REFERENCES chapters (_id) - ON DELETE CASCADE -); -INSERT INTO history -SELECT history_id, history_chapter_id, coalesce(history_last_read, 0), coalesce(history_time_read, 0) -FROM history_temp; - -/** - * [history.time_read] was added as a column in [historyView] - */ -CREATE VIEW historyView AS -SELECT - history._id AS id, - mangas._id AS mangaId, - chapters._id AS chapterId, - mangas.title, - mangas.thumbnail_url AS thumbnailUrl, - chapters.chapter_number AS chapterNumber, - history.last_read AS readAt, - history.time_read AS readDuration, - max_last_read.last_read AS maxReadAt, - max_last_read.chapter_id AS maxReadAtChapterId -FROM mangas -JOIN chapters -ON mangas._id = chapters.manga_id -JOIN history -ON chapters._id = history.chapter_id -JOIN ( - SELECT chapters.manga_id,chapters._id AS chapter_id, MAX(history.last_read) AS last_read - FROM chapters JOIN history - ON chapters._id = history.chapter_id - GROUP BY chapters.manga_id -) AS max_last_read -ON chapters.manga_id = max_last_read.manga_id; - -CREATE INDEX history_history_chapter_id_index ON history(chapter_id); \ No newline at end of file diff --git a/data/src/main/sqldelight/tachiyomi/migrations/16.sqm b/data/src/main/sqldelight/tachiyomi/migrations/16.sqm deleted file mode 100644 index 6a40f9bff..000000000 --- a/data/src/main/sqldelight/tachiyomi/migrations/16.sqm +++ /dev/null @@ -1,5 +0,0 @@ -CREATE TABLE sources( - _id INTEGER NOT NULL PRIMARY KEY, - lang TEXT NOT NULL, - name TEXT NOT NULL -); \ No newline at end of file diff --git a/data/src/main/sqldelight/tachiyomi/migrations/17.sqm b/data/src/main/sqldelight/tachiyomi/migrations/17.sqm deleted file mode 100644 index d331a6436..000000000 --- a/data/src/main/sqldelight/tachiyomi/migrations/17.sqm +++ /dev/null @@ -1,29 +0,0 @@ -DROP VIEW IF EXISTS historyView; - -CREATE VIEW historyView AS -SELECT - history._id AS id, - mangas._id AS mangaId, - chapters._id AS chapterId, - mangas.title, - mangas.thumbnail_url AS thumbnailUrl, - mangas.source, - mangas.favorite, - mangas.cover_last_modified, - chapters.chapter_number AS chapterNumber, - history.last_read AS readAt, - history.time_read AS readDuration, - max_last_read.last_read AS maxReadAt, - max_last_read.chapter_id AS maxReadAtChapterId -FROM mangas -JOIN chapters -ON mangas._id = chapters.manga_id -JOIN history -ON chapters._id = history.chapter_id -JOIN ( - SELECT chapters.manga_id,chapters._id AS chapter_id, MAX(history.last_read) AS last_read - FROM chapters JOIN history - ON chapters._id = history.chapter_id - GROUP BY chapters.manga_id -) AS max_last_read -ON chapters.manga_id = max_last_read.manga_id; diff --git a/data/src/main/sqldelight/tachiyomi/migrations/18.sqm b/data/src/main/sqldelight/tachiyomi/migrations/18.sqm deleted file mode 100644 index 6a12320aa..000000000 --- a/data/src/main/sqldelight/tachiyomi/migrations/18.sqm +++ /dev/null @@ -1,20 +0,0 @@ -CREATE VIEW updatesView AS -SELECT - mangas._id AS mangaId, - mangas.title AS mangaTitle, - chapters._id AS chapterId, - chapters.name AS chapterName, - chapters.scanlator, - chapters.read, - chapters.bookmark, - mangas.source, - mangas.favorite, - mangas.thumbnail_url AS thumbnailUrl, - mangas.cover_last_modified AS coverLastModified, - chapters.date_upload AS dateUpload, - chapters.date_fetch AS datefetch -FROM mangas JOIN chapters -ON mangas._id = chapters.manga_id -WHERE favorite = 1 -AND date_fetch > date_added -ORDER BY date_fetch DESC; \ No newline at end of file diff --git a/data/src/main/sqldelight/tachiyomi/migrations/19.sqm b/data/src/main/sqldelight/tachiyomi/migrations/19.sqm deleted file mode 100644 index 253bdb3ab..000000000 --- a/data/src/main/sqldelight/tachiyomi/migrations/19.sqm +++ /dev/null @@ -1,10 +0,0 @@ --- Insert Default category -INSERT OR IGNORE INTO categories(_id, name, sort, flags) VALUES (0, "", -1, 0); --- Disallow deletion of default category -CREATE TRIGGER IF NOT EXISTS system_category_delete_trigger BEFORE DELETE -ON categories -BEGIN SELECT CASE - WHEN old._id <= 0 THEN - RAISE(ABORT, "System category can't be deleted") - END; -END; \ No newline at end of file diff --git a/data/src/main/sqldelight/tachiyomi/migrations/2.sqm b/data/src/main/sqldelight/tachiyomi/migrations/2.sqm deleted file mode 100644 index 345e24c6e..000000000 --- a/data/src/main/sqldelight/tachiyomi/migrations/2.sqm +++ /dev/null @@ -1,10 +0,0 @@ -CREATE TABLE history( - history_id INTEGER NOT NULL PRIMARY KEY, - history_chapter_id INTEGER NOT NULL UNIQUE, - history_last_read INTEGER, - history_time_read INTEGER, - FOREIGN KEY(history_chapter_id) REFERENCES chapters (_id) - ON DELETE CASCADE -); - -CREATE INDEX history_history_chapter_id_index ON history(history_chapter_id); \ No newline at end of file diff --git a/data/src/main/sqldelight/tachiyomi/migrations/20.sqm b/data/src/main/sqldelight/tachiyomi/migrations/20.sqm deleted file mode 100644 index 8c4cc983a..000000000 --- a/data/src/main/sqldelight/tachiyomi/migrations/20.sqm +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE mangas ADD COLUMN update_strategy INTEGER NOT NULL DEFAULT 0; diff --git a/data/src/main/sqldelight/tachiyomi/migrations/21.sqm b/data/src/main/sqldelight/tachiyomi/migrations/21.sqm deleted file mode 100644 index 00538aef8..000000000 --- a/data/src/main/sqldelight/tachiyomi/migrations/21.sqm +++ /dev/null @@ -1,27 +0,0 @@ -CREATE VIEW libraryView AS -SELECT - M.*, - coalesce(C.total - C.readCount, 0) AS unreadCount, - coalesce(C.readCount, 0) AS readCount, - coalesce(C.latestUpload, 0) AS latestUpload, - coalesce(C.fetchedAt, 0) AS chapterFetchedAt, - coalesce(C.lastRead, 0) AS lastRead, - COALESCE(MC.category_id, 0) AS category -FROM mangas M -LEFT JOIN mangas_categories AS MC -ON MC.manga_id = M._id -LEFT JOIN( - SELECT - chapters.manga_id, - count(*) AS total, - sum(read) AS readCount, - max(chapters.date_upload) AS latestUpload, - max(history.last_read) AS lastRead, - max(chapters.date_fetch) AS fetchedAt - FROM chapters - LEFT JOIN history - ON chapters._id = history.chapter_id - GROUP BY chapters.manga_id -) AS C -ON M._id = C.manga_id -WHERE M.favorite = 1; diff --git a/data/src/main/sqldelight/tachiyomi/migrations/22.sqm b/data/src/main/sqldelight/tachiyomi/migrations/22.sqm deleted file mode 100644 index a55abdff1..000000000 --- a/data/src/main/sqldelight/tachiyomi/migrations/22.sqm +++ /dev/null @@ -1,31 +0,0 @@ -DROP VIEW libraryView; - -CREATE VIEW libraryView AS -SELECT - M.*, - coalesce(C.total, 0) AS totalCount, - coalesce(C.readCount, 0) AS readCount, - coalesce(C.latestUpload, 0) AS latestUpload, - coalesce(C.fetchedAt, 0) AS chapterFetchedAt, - coalesce(C.lastRead, 0) AS lastRead, - coalesce(C.bookmarkCount, 0) AS bookmarkCount, - coalesce(MC.category_id, 0) AS category -FROM mangas M -LEFT JOIN( - SELECT - chapters.manga_id, - count(*) AS total, - sum(read) AS readCount, - coalesce(max(chapters.date_upload), 0) AS latestUpload, - coalesce(max(history.last_read), 0) AS lastRead, - coalesce(max(chapters.date_fetch), 0) AS fetchedAt, - sum(chapters.bookmark) AS bookmarkCount - FROM chapters - LEFT JOIN history - ON chapters._id = history.chapter_id - GROUP BY chapters.manga_id -) AS C -ON M._id = C.manga_id -LEFT JOIN mangas_categories AS MC -ON MC.manga_id = M._id -WHERE M.favorite = 1; \ No newline at end of file diff --git a/data/src/main/sqldelight/tachiyomi/migrations/23.sqm b/data/src/main/sqldelight/tachiyomi/migrations/23.sqm deleted file mode 100644 index cf80a941e..000000000 --- a/data/src/main/sqldelight/tachiyomi/migrations/23.sqm +++ /dev/null @@ -1,23 +0,0 @@ -DROP VIEW IF EXISTS updatesView; - -CREATE VIEW updatesView AS -SELECT - mangas._id AS mangaId, - mangas.title AS mangaTitle, - chapters._id AS chapterId, - chapters.name AS chapterName, - chapters.scanlator, - chapters.read, - chapters.bookmark, - chapters.last_page_read, - mangas.source, - mangas.favorite, - mangas.thumbnail_url AS thumbnailUrl, - mangas.cover_last_modified AS coverLastModified, - chapters.date_upload AS dateUpload, - chapters.date_fetch AS datefetch -FROM mangas JOIN chapters -ON mangas._id = chapters.manga_id -WHERE favorite = 1 -AND date_fetch > date_added -ORDER BY date_fetch DESC; diff --git a/data/src/main/sqldelight/tachiyomi/migrations/24.sqm b/data/src/main/sqldelight/tachiyomi/migrations/24.sqm deleted file mode 100644 index c34ccfa0f..000000000 --- a/data/src/main/sqldelight/tachiyomi/migrations/24.sqm +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE mangas ADD COLUMN calculate_interval INTEGER DEFAULT 0 NOT NULL; diff --git a/data/src/main/sqldelight/tachiyomi/migrations/25.sqm b/data/src/main/sqldelight/tachiyomi/migrations/25.sqm deleted file mode 100644 index 0cd1c4c07..000000000 --- a/data/src/main/sqldelight/tachiyomi/migrations/25.sqm +++ /dev/null @@ -1,49 +0,0 @@ -ALTER TABLE mangas ADD COLUMN last_modified_at INTEGER AS Long NOT NULL DEFAULT 0; -ALTER TABLE mangas ADD COLUMN favorite_modified_at INTEGER AS Long; -ALTER TABLE mangas_categories ADD COLUMN last_modified_at INTEGER AS Long NOT NULL DEFAULT 0; -ALTER TABLE chapters ADD COLUMN last_modified_at INTEGER AS Long NOT NULL DEFAULT 0; - -UPDATE mangas SET last_modified_at = strftime('%s', 'now'); -UPDATE mangas SET favorite_modified_at = strftime('%s', 'now') WHERE favorite = 1; -UPDATE mangas_categories SET last_modified_at = strftime('%s', 'now'); -UPDATE chapters SET last_modified_at = strftime('%s', 'now'); - --- Create triggers -DROP TRIGGER IF EXISTS update_last_modified_at_mangas; -CREATE TRIGGER update_last_modified_at_mangas -AFTER UPDATE ON mangas -FOR EACH ROW -BEGIN - UPDATE mangas - SET last_modified_at = strftime('%s', 'now') - WHERE _id = new._id; -END; - -DROP TRIGGER IF EXISTS update_favorite_modified_at_mangas; -CREATE TRIGGER update_last_favorited_at_mangas -AFTER UPDATE OF favorite ON mangas -BEGIN - UPDATE mangas - SET favorite_modified_at = strftime('%s', 'now') - WHERE _id = new._id; -END; - -DROP TRIGGER IF EXISTS update_last_modified_at_chapters; -CREATE TRIGGER update_last_modified_at_chapters -AFTER UPDATE ON chapters -FOR EACH ROW -BEGIN - UPDATE chapters - SET last_modified_at = strftime('%s', 'now') - WHERE _id = new._id; -END; - -DROP TRIGGER IF EXISTS update_last_modified_at_mangas_categories; -CREATE TRIGGER update_last_modified_at_mangas_categories -AFTER UPDATE ON mangas_categories -FOR EACH ROW -BEGIN - UPDATE mangas_categories - SET last_modified_at = strftime('%s', 'now') - WHERE _id = new._id; -END; \ No newline at end of file diff --git a/data/src/main/sqldelight/tachiyomi/migrations/26.sqm b/data/src/main/sqldelight/tachiyomi/migrations/26.sqm deleted file mode 100644 index b68ad43ba..000000000 --- a/data/src/main/sqldelight/tachiyomi/migrations/26.sqm +++ /dev/null @@ -1,44 +0,0 @@ -CREATE TABLE excluded_scanlators( - manga_id INTEGER NOT NULL, - scanlator TEXT NOT NULL, - FOREIGN KEY(manga_id) REFERENCES mangas (_id) - ON DELETE CASCADE -); - -CREATE INDEX excluded_scanlators_manga_id_index ON excluded_scanlators(manga_id); - -DROP VIEW IF EXISTS libraryView; - -CREATE VIEW libraryView AS -SELECT - M.*, - coalesce(C.total, 0) AS totalCount, - coalesce(C.readCount, 0) AS readCount, - coalesce(C.latestUpload, 0) AS latestUpload, - coalesce(C.fetchedAt, 0) AS chapterFetchedAt, - coalesce(C.lastRead, 0) AS lastRead, - coalesce(C.bookmarkCount, 0) AS bookmarkCount, - coalesce(MC.category_id, 0) AS category -FROM mangas M -LEFT JOIN( - SELECT - chapters.manga_id, - count(*) AS total, - sum(read) AS readCount, - coalesce(max(chapters.date_upload), 0) AS latestUpload, - coalesce(max(history.last_read), 0) AS lastRead, - coalesce(max(chapters.date_fetch), 0) AS fetchedAt, - sum(chapters.bookmark) AS bookmarkCount - FROM chapters - LEFT JOIN excluded_scanlators - ON chapters.manga_id = excluded_scanlators.manga_id - AND chapters.scanlator = excluded_scanlators.scanlator - LEFT JOIN history - ON chapters._id = history.chapter_id - WHERE excluded_scanlators.scanlator IS NULL - GROUP BY chapters.manga_id -) AS C -ON M._id = C.manga_id -LEFT JOIN mangas_categories AS MC -ON MC.manga_id = M._id -WHERE M.favorite = 1; diff --git a/data/src/main/sqldelight/tachiyomi/migrations/27.sqm b/data/src/main/sqldelight/tachiyomi/migrations/27.sqm deleted file mode 100644 index 0d2638594..000000000 --- a/data/src/main/sqldelight/tachiyomi/migrations/27.sqm +++ /dev/null @@ -1,3 +0,0 @@ -UPDATE chapters -SET scanlator = trim(scanlator) -WHERE scanlator IS NOT NULL; diff --git a/data/src/main/sqldelight/tachiyomi/migrations/3.sqm b/data/src/main/sqldelight/tachiyomi/migrations/3.sqm deleted file mode 100644 index 42ffba899..000000000 --- a/data/src/main/sqldelight/tachiyomi/migrations/3.sqm +++ /dev/null @@ -1,2 +0,0 @@ -ALTER TABLE chapters -ADD COLUMN bookmark INTEGER DEFAULT 0; \ No newline at end of file diff --git a/data/src/main/sqldelight/tachiyomi/migrations/4.sqm b/data/src/main/sqldelight/tachiyomi/migrations/4.sqm deleted file mode 100644 index 7fc06a612..000000000 --- a/data/src/main/sqldelight/tachiyomi/migrations/4.sqm +++ /dev/null @@ -1,2 +0,0 @@ -ALTER TABLE chapters -ADD COLUMN scanlator TEXT DEFAULT NULL; \ No newline at end of file diff --git a/data/src/main/sqldelight/tachiyomi/migrations/5.sqm b/data/src/main/sqldelight/tachiyomi/migrations/5.sqm deleted file mode 100644 index a1e3b8378..000000000 --- a/data/src/main/sqldelight/tachiyomi/migrations/5.sqm +++ /dev/null @@ -1,2 +0,0 @@ -ALTER TABLE manga_sync -ADD COLUMN remote_url TEXT DEFAULT ''; \ No newline at end of file diff --git a/data/src/main/sqldelight/tachiyomi/migrations/6.sqm b/data/src/main/sqldelight/tachiyomi/migrations/6.sqm deleted file mode 100644 index 00ee92e22..000000000 --- a/data/src/main/sqldelight/tachiyomi/migrations/6.sqm +++ /dev/null @@ -1,2 +0,0 @@ -ALTER TABLE manga_sync -ADD COLUMN library_id INTEGER; \ No newline at end of file diff --git a/data/src/main/sqldelight/tachiyomi/migrations/7.sqm b/data/src/main/sqldelight/tachiyomi/migrations/7.sqm deleted file mode 100644 index 03492df76..000000000 --- a/data/src/main/sqldelight/tachiyomi/migrations/7.sqm +++ /dev/null @@ -1,9 +0,0 @@ -DROP INDEX IF EXISTS mangas_favorite_index; - -CREATE INDEX library_favorite_index -ON mangas(favorite) -WHERE favorite = 1; - -CREATE INDEX chapters_unread_by_manga_index -ON chapters(manga_id, read) -WHERE read = 0; \ No newline at end of file diff --git a/data/src/main/sqldelight/tachiyomi/migrations/8.sqm b/data/src/main/sqldelight/tachiyomi/migrations/8.sqm deleted file mode 100644 index dc47263a8..000000000 --- a/data/src/main/sqldelight/tachiyomi/migrations/8.sqm +++ /dev/null @@ -1,5 +0,0 @@ -ALTER TABLE manga_sync -ADD COLUMN start_date INTEGER NOT NULL DEFAULT 0; - -ALTER TABLE manga_sync -ADD COLUMN finish_date INTEGER NOT NULL DEFAULT 0; \ No newline at end of file diff --git a/data/src/main/sqldelight/tachiyomi/migrations/9.sqm b/data/src/main/sqldelight/tachiyomi/migrations/9.sqm deleted file mode 100644 index 6eb647300..000000000 --- a/data/src/main/sqldelight/tachiyomi/migrations/9.sqm +++ /dev/null @@ -1,2 +0,0 @@ -ALTER TABLE mangas -ADD COLUMN cover_last_modified INTEGER NOT NULL DEFAULT 0; \ No newline at end of file From c9906491fb7f899f59fd737b8ddefd6a8ab15500 Mon Sep 17 00:00:00 2001 From: AntsyLich <59261191+AntsyLich@users.noreply.github.com> Date: Mon, 15 Jan 2024 23:54:13 +0600 Subject: [PATCH 13/28] Make version code 1 --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index dec3efc91..15532f324 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -22,7 +22,7 @@ android { defaultConfig { applicationId = "eu.kanade.tachiyomi" - versionCode = 119 + versionCode = 1 versionName = "0.15.3" buildConfigField("String", "COMMIT_COUNT", "\"${getCommitCount()}\"") From 5067160132695928d5c387ca07a6ad249a30e7a5 Mon Sep 17 00:00:00 2001 From: AntsyLich <59261191+AntsyLich@users.noreply.github.com> Date: Tue, 16 Jan 2024 01:02:57 +0600 Subject: [PATCH 14/28] Add a temporary icon --- .../res/drawable/ic_launcher_foreground.xml | 31 ++++++------------- app/src/debug/res/mipmap/ic_launcher.xml | 4 +-- .../debug/res/mipmap/ic_launcher_round.xml | 6 ---- app/src/main/AndroidManifest.xml | 2 +- .../eu/kanade/presentation/more/LogoHeader.kt | 2 +- .../tachiyomi/data/backup/BackupNotifier.kt | 4 +-- .../data/library/LibraryUpdateNotifier.kt | 6 ++-- .../data/updater/AppUpdateNotifier.kt | 2 +- .../extension/util/ExtensionInstallService.kt | 2 +- .../res/drawable/ic_launcher_foreground.xml | 31 ++++++------------- .../res/drawable/ic_launcher_monochrome.xml | 14 +++++++++ app/src/main/res/drawable/ic_mihon.xml | 9 ++++++ ...c_tachi_splash.xml => ic_mihon_splash.xml} | 2 +- app/src/main/res/drawable/ic_tachi.xml | 12 ------- .../drawable/ic_tachi_monochrome_launcher.xml | 12 ------- app/src/main/res/mipmap/ic_launcher.xml | 4 +-- app/src/main/res/mipmap/ic_launcher_round.xml | 6 ---- app/src/main/res/values/color.xml | 5 +++ app/src/main/res/values/themes.xml | 2 +- 19 files changed, 61 insertions(+), 95 deletions(-) delete mode 100644 app/src/debug/res/mipmap/ic_launcher_round.xml create mode 100644 app/src/main/res/drawable/ic_launcher_monochrome.xml create mode 100644 app/src/main/res/drawable/ic_mihon.xml rename app/src/main/res/drawable/{ic_tachi_splash.xml => ic_mihon_splash.xml} (83%) delete mode 100644 app/src/main/res/drawable/ic_tachi.xml delete mode 100644 app/src/main/res/drawable/ic_tachi_monochrome_launcher.xml delete mode 100644 app/src/main/res/mipmap/ic_launcher_round.xml create mode 100644 app/src/main/res/values/color.xml diff --git a/app/src/debug/res/drawable/ic_launcher_foreground.xml b/app/src/debug/res/drawable/ic_launcher_foreground.xml index ff51d0085..b2db2f35c 100644 --- a/app/src/debug/res/drawable/ic_launcher_foreground.xml +++ b/app/src/debug/res/drawable/ic_launcher_foreground.xml @@ -1,27 +1,14 @@ + android:viewportWidth="256" + android:viewportHeight="256"> + - - - - - - + android:fillColor="#FFFFFFFF" + android:pathData="M234.14,187.75c-9.57,-2.7 -19.5,2.87 -22.2,12.44l-1.97,7c-0.8,2.84 -3.43,4.83 -6.38,4.83h-18.04c-3.66,0 -6.63,-2.97 -6.63,-6.63v-28.56h13.94c16.19,0 29.36,-13.17 29.36,-29.36L222.22,37.36c0,-16.19 -13.17,-29.36 -29.36,-29.36L65.45,8c-16.19,0 -29.36,13.17 -29.36,29.36v110.11c0,16.19 13.17,29.36 29.36,29.36h14.59c-0.7,1.98 -1.54,4.05 -2.57,6.14 -7.36,14.97 -20.78,24.91 -39.89,29.55 -9.66,2.35 -15.58,12.07 -13.24,21.73 2,8.23 9.36,13.75 17.47,13.75 1.41,0 2.83,-0.17 4.26,-0.51 38.36,-9.32 56.31,-32.64 64.6,-50.56 3.36,-7.26 5.42,-14.2 6.67,-20.1h25.58v28.56c0,23.5 19.12,42.61 42.61,42.61h18.04c9.23,0 18.36,-3.07 25.72,-8.64s12.79,-13.53 15.29,-22.41l1.97,-7c2.7,-9.56 -2.87,-19.5 -12.44,-22.2ZM72.08,82.24h114.14v19.79L72.08,102.03v-19.79ZM186.22,43.99v15.53L72.08,59.52v-15.53h114.14ZM72.08,124.76h114.14v16.08L72.08,140.84v-16.08Z"/> + diff --git a/app/src/debug/res/mipmap/ic_launcher.xml b/app/src/debug/res/mipmap/ic_launcher.xml index 1ad255903..40ad6488a 100644 --- a/app/src/debug/res/mipmap/ic_launcher.xml +++ b/app/src/debug/res/mipmap/ic_launcher.xml @@ -1,6 +1,6 @@ - + - + \ No newline at end of file diff --git a/app/src/debug/res/mipmap/ic_launcher_round.xml b/app/src/debug/res/mipmap/ic_launcher_round.xml deleted file mode 100644 index 1ad255903..000000000 --- a/app/src/debug/res/mipmap/ic_launcher_round.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f3e716f88..48a783ecd 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -50,7 +50,7 @@ android:networkSecurityConfig="@xml/network_security_config" android:preserveLegacyExternalStorage="true" android:requestLegacyExternalStorage="true" - android:roundIcon="@mipmap/ic_launcher_round" + android:roundIcon="@mipmap/ic_launcher" android:supportsRtl="true" android:theme="@style/Theme.Tachiyomi"> diff --git a/app/src/main/java/eu/kanade/presentation/more/LogoHeader.kt b/app/src/main/java/eu/kanade/presentation/more/LogoHeader.kt index bd7aa1ee4..881d96b64 100644 --- a/app/src/main/java/eu/kanade/presentation/more/LogoHeader.kt +++ b/app/src/main/java/eu/kanade/presentation/more/LogoHeader.kt @@ -21,7 +21,7 @@ fun LogoHeader() { horizontalAlignment = Alignment.CenterHorizontally, ) { Icon( - painter = painterResource(R.drawable.ic_tachi), + painter = painterResource(R.drawable.ic_mihon), contentDescription = null, tint = MaterialTheme.colorScheme.onSurface, modifier = Modifier diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupNotifier.kt b/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupNotifier.kt index 817f8a222..4ef212999 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupNotifier.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupNotifier.kt @@ -28,7 +28,7 @@ class BackupNotifier(private val context: Context) { Notifications.CHANNEL_BACKUP_RESTORE_PROGRESS, ) { setLargeIcon(BitmapFactory.decodeResource(context.resources, R.mipmap.ic_launcher)) - setSmallIcon(R.drawable.ic_tachi) + setSmallIcon(R.drawable.ic_mihon) setAutoCancel(false) setOngoing(true) setOnlyAlertOnce(true) @@ -38,7 +38,7 @@ class BackupNotifier(private val context: Context) { Notifications.CHANNEL_BACKUP_RESTORE_COMPLETE, ) { setLargeIcon(BitmapFactory.decodeResource(context.resources, R.mipmap.ic_launcher)) - setSmallIcon(R.drawable.ic_tachi) + setSmallIcon(R.drawable.ic_mihon) setAutoCancel(false) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateNotifier.kt b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateNotifier.kt index e49c5ba37..c21dd7d32 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateNotifier.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateNotifier.kt @@ -153,7 +153,7 @@ class LibraryUpdateNotifier( ) { setContentTitle(context.stringResource(MR.strings.notification_update_error, failed)) setContentText(context.stringResource(MR.strings.action_show_errors)) - setSmallIcon(R.drawable.ic_tachi) + setSmallIcon(R.drawable.ic_mihon) setContentIntent(NotificationReceiver.openErrorLogPendingActivity(context, uri)) } @@ -193,7 +193,7 @@ class LibraryUpdateNotifier( } } - setSmallIcon(R.drawable.ic_tachi) + setSmallIcon(R.drawable.ic_mihon) setLargeIcon(notificationBitmap) setGroup(Notifications.GROUP_NEW_CHAPTERS) @@ -229,7 +229,7 @@ class LibraryUpdateNotifier( setContentText(description) setStyle(NotificationCompat.BigTextStyle().bigText(description)) - setSmallIcon(R.drawable.ic_tachi) + setSmallIcon(R.drawable.ic_mihon) if (icon != null) { setLargeIcon(icon) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/updater/AppUpdateNotifier.kt b/app/src/main/java/eu/kanade/tachiyomi/data/updater/AppUpdateNotifier.kt index f5a900cdc..6c20bea64 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/updater/AppUpdateNotifier.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/updater/AppUpdateNotifier.kt @@ -149,7 +149,7 @@ internal class AppUpdateNotifier(private val context: Context) { with(notificationBuilder) { setContentTitle(context.stringResource(MR.strings.update_check_notification_update_available)) setContentText(context.stringResource(MR.strings.update_check_fdroid_migration_info)) - setSmallIcon(R.drawable.ic_tachi) + setSmallIcon(R.drawable.ic_mihon) setContentIntent( NotificationHandler.openUrl( context, diff --git a/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionInstallService.kt b/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionInstallService.kt index 826db44cd..3ffe9f783 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionInstallService.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/extension/util/ExtensionInstallService.kt @@ -25,7 +25,7 @@ class ExtensionInstallService : Service() { override fun onCreate() { val notification = notificationBuilder(Notifications.CHANNEL_EXTENSIONS_UPDATE) { - setSmallIcon(R.drawable.ic_tachi) + setSmallIcon(R.drawable.ic_mihon) setAutoCancel(false) setOngoing(true) setShowWhen(false) diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/app/src/main/res/drawable/ic_launcher_foreground.xml index c83d7d907..80b3d1951 100644 --- a/app/src/main/res/drawable/ic_launcher_foreground.xml +++ b/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -1,27 +1,14 @@ + android:viewportWidth="256" + android:viewportHeight="256"> + - - - - - - + android:fillColor="#FF000000" + android:pathData="M234.14,187.75c-9.57,-2.7 -19.5,2.87 -22.2,12.44l-1.97,7c-0.8,2.84 -3.43,4.83 -6.38,4.83h-18.04c-3.66,0 -6.63,-2.97 -6.63,-6.63v-28.56h13.94c16.19,0 29.36,-13.17 29.36,-29.36L222.22,37.36c0,-16.19 -13.17,-29.36 -29.36,-29.36L65.45,8c-16.19,0 -29.36,13.17 -29.36,29.36v110.11c0,16.19 13.17,29.36 29.36,29.36h14.59c-0.7,1.98 -1.54,4.05 -2.57,6.14 -7.36,14.97 -20.78,24.91 -39.89,29.55 -9.66,2.35 -15.58,12.07 -13.24,21.73 2,8.23 9.36,13.75 17.47,13.75 1.41,0 2.83,-0.17 4.26,-0.51 38.36,-9.32 56.31,-32.64 64.6,-50.56 3.36,-7.26 5.42,-14.2 6.67,-20.1h25.58v28.56c0,23.5 19.12,42.61 42.61,42.61h18.04c9.23,0 18.36,-3.07 25.72,-8.64s12.79,-13.53 15.29,-22.41l1.97,-7c2.7,-9.56 -2.87,-19.5 -12.44,-22.2ZM72.08,82.24h114.14v19.79L72.08,102.03v-19.79ZM186.22,43.99v15.53L72.08,59.52v-15.53h114.14ZM72.08,124.76h114.14v16.08L72.08,140.84v-16.08Z"/> + diff --git a/app/src/main/res/drawable/ic_launcher_monochrome.xml b/app/src/main/res/drawable/ic_launcher_monochrome.xml new file mode 100644 index 000000000..b2db2f35c --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_monochrome.xml @@ -0,0 +1,14 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_mihon.xml b/app/src/main/res/drawable/ic_mihon.xml new file mode 100644 index 000000000..92e656fb3 --- /dev/null +++ b/app/src/main/res/drawable/ic_mihon.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_tachi_splash.xml b/app/src/main/res/drawable/ic_mihon_splash.xml similarity index 83% rename from app/src/main/res/drawable/ic_tachi_splash.xml rename to app/src/main/res/drawable/ic_mihon_splash.xml index 3fdf1b6f5..fa126b0ae 100644 --- a/app/src/main/res/drawable/ic_tachi_splash.xml +++ b/app/src/main/res/drawable/ic_mihon_splash.xml @@ -3,6 +3,6 @@ diff --git a/app/src/main/res/drawable/ic_tachi.xml b/app/src/main/res/drawable/ic_tachi.xml deleted file mode 100644 index 0c988fbf1..000000000 --- a/app/src/main/res/drawable/ic_tachi.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_tachi_monochrome_launcher.xml b/app/src/main/res/drawable/ic_tachi_monochrome_launcher.xml deleted file mode 100644 index 276da9df2..000000000 --- a/app/src/main/res/drawable/ic_tachi_monochrome_launcher.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - diff --git a/app/src/main/res/mipmap/ic_launcher.xml b/app/src/main/res/mipmap/ic_launcher.xml index 1ad255903..1413a3145 100644 --- a/app/src/main/res/mipmap/ic_launcher.xml +++ b/app/src/main/res/mipmap/ic_launcher.xml @@ -1,6 +1,6 @@ - + - + \ No newline at end of file diff --git a/app/src/main/res/mipmap/ic_launcher_round.xml b/app/src/main/res/mipmap/ic_launcher_round.xml deleted file mode 100644 index 1ad255903..000000000 --- a/app/src/main/res/mipmap/ic_launcher_round.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/values/color.xml b/app/src/main/res/values/color.xml new file mode 100644 index 000000000..761c85472 --- /dev/null +++ b/app/src/main/res/values/color.xml @@ -0,0 +1,5 @@ + + + #FFFFFF + #36454F + diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index f6597c58b..2e6458eca 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -373,7 +373,7 @@