From cf10229574f440499e3be8b50c91f4d314df5199 Mon Sep 17 00:00:00 2001 From: TwistedUmbrellaX <1173913+AbandonedCart@users.noreply.github.com> Date: Mon, 18 Mar 2024 00:10:38 -0400 Subject: [PATCH] fix: address deprecated code (#256) * fix: address deprecated code Build.RADIO has been deprecated since API 15, which means it hasn't worked since before the lowest target API of the app, and versioncode is deprecated in API 28. * fix: use the convenience method This takes the unused convenience method and the individually declared uses and merges them. * fix: simplify compat switch --- .../download/anime/AnimeDownloaderService.kt | 3 +- .../download/manga/MangaDownloaderService.kt | 5 +- .../download/novel/NovelDownloaderService.kt | 5 +- app/src/main/java/ani/dantotsu/util/Logger.kt | 53 +++++++++++-------- 4 files changed, 40 insertions(+), 26 deletions(-) diff --git a/app/src/main/java/ani/dantotsu/download/anime/AnimeDownloaderService.kt b/app/src/main/java/ani/dantotsu/download/anime/AnimeDownloaderService.kt index 8b19d9ab..90d90faa 100644 --- a/app/src/main/java/ani/dantotsu/download/anime/AnimeDownloaderService.kt +++ b/app/src/main/java/ani/dantotsu/download/anime/AnimeDownloaderService.kt @@ -54,6 +54,7 @@ import kotlinx.coroutines.launch import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.withLock import kotlinx.coroutines.withContext +import tachiyomi.core.util.lang.launchIO import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import java.io.File @@ -357,7 +358,7 @@ class AnimeDownloaderService : Service() { @OptIn(DelicateCoroutinesApi::class) private fun saveMediaInfo(task: AnimeDownloadTask) { - GlobalScope.launch(Dispatchers.IO) { + launchIO { val directory = File( getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS), "${DownloadsManager.animeLocation}/${task.title}" diff --git a/app/src/main/java/ani/dantotsu/download/manga/MangaDownloaderService.kt b/app/src/main/java/ani/dantotsu/download/manga/MangaDownloaderService.kt index cad2f85e..188c9dc3 100644 --- a/app/src/main/java/ani/dantotsu/download/manga/MangaDownloaderService.kt +++ b/app/src/main/java/ani/dantotsu/download/manga/MangaDownloaderService.kt @@ -37,6 +37,7 @@ import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapterImpl import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Deferred +import kotlinx.coroutines.DelicateCoroutinesApi import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.Job @@ -47,6 +48,7 @@ import kotlinx.coroutines.launch import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.withLock import kotlinx.coroutines.withContext +import tachiyomi.core.util.lang.launchIO import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import java.io.File @@ -287,8 +289,9 @@ class MangaDownloaderService : Service() { } } + @OptIn(DelicateCoroutinesApi::class) private fun saveMediaInfo(task: DownloadTask) { - GlobalScope.launch(Dispatchers.IO) { + launchIO { val directory = File( getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS), "Dantotsu/Manga/${task.title}" diff --git a/app/src/main/java/ani/dantotsu/download/novel/NovelDownloaderService.kt b/app/src/main/java/ani/dantotsu/download/novel/NovelDownloaderService.kt index 06043976..0c3575a3 100644 --- a/app/src/main/java/ani/dantotsu/download/novel/NovelDownloaderService.kt +++ b/app/src/main/java/ani/dantotsu/download/novel/NovelDownloaderService.kt @@ -31,6 +31,7 @@ import eu.kanade.tachiyomi.network.NetworkHelper import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SChapterImpl import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.DelicateCoroutinesApi import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.Job @@ -42,6 +43,7 @@ import kotlinx.coroutines.withContext import okhttp3.Request import okio.buffer import okio.sink +import tachiyomi.core.util.lang.launchIO import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import java.io.File @@ -347,8 +349,9 @@ class NovelDownloaderService : Service() { } } + @OptIn(DelicateCoroutinesApi::class) private fun saveMediaInfo(task: DownloadTask) { - GlobalScope.launch(Dispatchers.IO) { + launchIO { val directory = File( getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS), "Dantotsu/Novel/${task.title}" diff --git a/app/src/main/java/ani/dantotsu/util/Logger.kt b/app/src/main/java/ani/dantotsu/util/Logger.kt index a6780748..22c0000c 100644 --- a/app/src/main/java/ani/dantotsu/util/Logger.kt +++ b/app/src/main/java/ani/dantotsu/util/Logger.kt @@ -2,6 +2,7 @@ package ani.dantotsu.util import android.content.Context import android.content.Intent +import android.os.Build import android.util.Log import androidx.core.content.FileProvider import ani.dantotsu.BuildConfig @@ -31,8 +32,8 @@ object Logger { } file?.writeText("log started\n") file?.appendText("date/time: ${Date()}\n") - file?.appendText("device: ${android.os.Build.MODEL}\n") - file?.appendText("os version: ${android.os.Build.VERSION.RELEASE}\n") + file?.appendText("device: ${Build.MODEL}\n") + file?.appendText("os version: ${Build.VERSION.RELEASE}\n") file?.appendText( "app version: ${ context.packageManager.getPackageInfo( @@ -46,29 +47,35 @@ object Logger { context.packageManager.getPackageInfo( context.packageName, 0 - ).versionCode + ).run { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) + longVersionCode + else + @Suppress("DEPRECATION") versionCode + + } }\n" ) - file?.appendText("sdk version: ${android.os.Build.VERSION.SDK_INT}\n") - file?.appendText("manufacturer: ${android.os.Build.MANUFACTURER}\n") - file?.appendText("brand: ${android.os.Build.BRAND}\n") - file?.appendText("product: ${android.os.Build.PRODUCT}\n") - file?.appendText("device: ${android.os.Build.DEVICE}\n") - file?.appendText("hardware: ${android.os.Build.HARDWARE}\n") - file?.appendText("host: ${android.os.Build.HOST}\n") - file?.appendText("id: ${android.os.Build.ID}\n") - file?.appendText("type: ${android.os.Build.TYPE}\n") - file?.appendText("user: ${android.os.Build.USER}\n") - file?.appendText("tags: ${android.os.Build.TAGS}\n") - file?.appendText("time: ${android.os.Build.TIME}\n") - file?.appendText("radio: ${android.os.Build.RADIO}\n") - file?.appendText("bootloader: ${android.os.Build.BOOTLOADER}\n") - file?.appendText("board: ${android.os.Build.BOARD}\n") - file?.appendText("fingerprint: ${android.os.Build.FINGERPRINT}\n") - file?.appendText("supported_abis: ${android.os.Build.SUPPORTED_ABIS.joinToString()}\n") - file?.appendText("supported_32_bit_abis: ${android.os.Build.SUPPORTED_32_BIT_ABIS.joinToString()}\n") - file?.appendText("supported_64_bit_abis: ${android.os.Build.SUPPORTED_64_BIT_ABIS.joinToString()}\n") - file?.appendText("is emulator: ${android.os.Build.FINGERPRINT.contains("generic")}\n") + file?.appendText("sdk version: ${Build.VERSION.SDK_INT}\n") + file?.appendText("manufacturer: ${Build.MANUFACTURER}\n") + file?.appendText("brand: ${Build.BRAND}\n") + file?.appendText("product: ${Build.PRODUCT}\n") + file?.appendText("device: ${Build.DEVICE}\n") + file?.appendText("hardware: ${Build.HARDWARE}\n") + file?.appendText("host: ${Build.HOST}\n") + file?.appendText("id: ${Build.ID}\n") + file?.appendText("type: ${Build.TYPE}\n") + file?.appendText("user: ${Build.USER}\n") + file?.appendText("tags: ${Build.TAGS}\n") + file?.appendText("time: ${Build.TIME}\n") + file?.appendText("radio: ${Build.getRadioVersion()}\n") + file?.appendText("bootloader: ${Build.BOOTLOADER}\n") + file?.appendText("board: ${Build.BOARD}\n") + file?.appendText("fingerprint: ${Build.FINGERPRINT}\n") + file?.appendText("supported_abis: ${Build.SUPPORTED_ABIS.joinToString()}\n") + file?.appendText("supported_32_bit_abis: ${Build.SUPPORTED_32_BIT_ABIS.joinToString()}\n") + file?.appendText("supported_64_bit_abis: ${Build.SUPPORTED_64_BIT_ABIS.joinToString()}\n") + file?.appendText("is emulator: ${Build.FINGERPRINT.contains("generic")}\n") file?.appendText("--------------------------------\n") } catch (e: Exception) { Injekt.get().logException(e)