mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-04 08:08:55 +01:00 
			
		
		
		
	Address misc. build warnings
This commit is contained in:
		@@ -12,10 +12,10 @@ class CreateCategoryWithName(
 | 
			
		||||
    private val categoryRepository: CategoryRepository,
 | 
			
		||||
) {
 | 
			
		||||
 | 
			
		||||
    suspend fun await(name: String): Result = withContext(NonCancellable) await@{
 | 
			
		||||
    suspend fun await(name: String): Result = withContext(NonCancellable) {
 | 
			
		||||
        val categories = categoryRepository.getAll()
 | 
			
		||||
        if (categories.anyWithName(name)) {
 | 
			
		||||
            return@await Result.NameAlreadyExistsError
 | 
			
		||||
            return@withContext Result.NameAlreadyExistsError
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        val nextOrder = categories.maxOfOrNull { it.order }?.plus(1) ?: 0
 | 
			
		||||
 
 | 
			
		||||
@@ -11,12 +11,12 @@ class DeleteCategory(
 | 
			
		||||
    private val categoryRepository: CategoryRepository,
 | 
			
		||||
) {
 | 
			
		||||
 | 
			
		||||
    suspend fun await(categoryId: Long) = withContext(NonCancellable) await@{
 | 
			
		||||
    suspend fun await(categoryId: Long) = withContext(NonCancellable) {
 | 
			
		||||
        try {
 | 
			
		||||
            categoryRepository.delete(categoryId)
 | 
			
		||||
        } catch (e: Exception) {
 | 
			
		||||
            logcat(LogPriority.ERROR, e)
 | 
			
		||||
            return@await Result.InternalError(e)
 | 
			
		||||
            return@withContext Result.InternalError(e)
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        val categories = categoryRepository.getAll()
 | 
			
		||||
 
 | 
			
		||||
@@ -13,10 +13,10 @@ class RenameCategory(
 | 
			
		||||
    private val categoryRepository: CategoryRepository,
 | 
			
		||||
) {
 | 
			
		||||
 | 
			
		||||
    suspend fun await(categoryId: Long, name: String) = withContext(NonCancellable) await@{
 | 
			
		||||
    suspend fun await(categoryId: Long, name: String) = withContext(NonCancellable) {
 | 
			
		||||
        val categories = categoryRepository.getAll()
 | 
			
		||||
        if (categories.anyWithName(name)) {
 | 
			
		||||
            return@await Result.NameAlreadyExistsError
 | 
			
		||||
            return@withContext Result.NameAlreadyExistsError
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        val update = CategoryUpdate(
 | 
			
		||||
 
 | 
			
		||||
@@ -12,12 +12,12 @@ class ReorderCategory(
 | 
			
		||||
    private val categoryRepository: CategoryRepository,
 | 
			
		||||
) {
 | 
			
		||||
 | 
			
		||||
    suspend fun await(categoryId: Long, newPosition: Int) = withContext(NonCancellable) await@{
 | 
			
		||||
    suspend fun await(categoryId: Long, newPosition: Int) = withContext(NonCancellable) {
 | 
			
		||||
        val categories = categoryRepository.getAll().filterNot(Category::isSystemCategory)
 | 
			
		||||
 | 
			
		||||
        val currentIndex = categories.indexOfFirst { it.id == categoryId }
 | 
			
		||||
        if (currentIndex == newPosition) {
 | 
			
		||||
            return@await Result.Unchanged
 | 
			
		||||
            return@withContext Result.Unchanged
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        val reorderedCategories = categories.toMutableList()
 | 
			
		||||
 
 | 
			
		||||
@@ -27,11 +27,11 @@ class SetReadStatus(
 | 
			
		||||
        )
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    suspend fun await(read: Boolean, vararg values: Chapter): Result = withContext(NonCancellable) f@{
 | 
			
		||||
    suspend fun await(read: Boolean, vararg values: Chapter): Result = withContext(NonCancellable) {
 | 
			
		||||
        val chapters = values.filterNot { it.read == read }
 | 
			
		||||
 | 
			
		||||
        if (chapters.isEmpty()) {
 | 
			
		||||
            return@f Result.NoChapters
 | 
			
		||||
            return@withContext Result.NoChapters
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        val manga = chapters.fold(mutableSetOf<Manga>()) { acc, chapter ->
 | 
			
		||||
@@ -49,15 +49,15 @@ class SetReadStatus(
 | 
			
		||||
            )
 | 
			
		||||
        } catch (e: Exception) {
 | 
			
		||||
            logcat(LogPriority.ERROR, e)
 | 
			
		||||
            return@f Result.InternalError(e)
 | 
			
		||||
            return@withContext Result.InternalError(e)
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (read && preferences.removeAfterMarkedAsRead()) {
 | 
			
		||||
            manga.forEach { manga ->
 | 
			
		||||
            manga.forEach {
 | 
			
		||||
                deleteDownload.awaitAll(
 | 
			
		||||
                    manga = manga,
 | 
			
		||||
                    manga = it,
 | 
			
		||||
                    values = chapters
 | 
			
		||||
                        .filter { manga.id == it.mangaId }
 | 
			
		||||
                        .filter { chapter -> it.id == chapter.mangaId }
 | 
			
		||||
                        .toTypedArray(),
 | 
			
		||||
                )
 | 
			
		||||
            }
 | 
			
		||||
@@ -66,8 +66,8 @@ class SetReadStatus(
 | 
			
		||||
        Result.Success
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    suspend fun await(mangaId: Long, read: Boolean): Result = withContext(NonCancellable) f@{
 | 
			
		||||
        return@f await(
 | 
			
		||||
    suspend fun await(mangaId: Long, read: Boolean): Result = withContext(NonCancellable) {
 | 
			
		||||
        await(
 | 
			
		||||
            read = read,
 | 
			
		||||
            values = chapterRepository
 | 
			
		||||
                .getChapterByMangaId(mangaId)
 | 
			
		||||
 
 | 
			
		||||
@@ -198,6 +198,7 @@ object Migrations {
 | 
			
		||||
                val oldSortingMode = prefs.getInt(PreferenceKeys.librarySortingMode, 0)
 | 
			
		||||
                val oldSortingDirection = prefs.getBoolean(PreferenceKeys.librarySortingDirection, true)
 | 
			
		||||
 | 
			
		||||
                @Suppress("DEPRECATION")
 | 
			
		||||
                val newSortingMode = when (oldSortingMode) {
 | 
			
		||||
                    0 -> SortModeSetting.ALPHABETICAL
 | 
			
		||||
                    1 -> SortModeSetting.LAST_READ
 | 
			
		||||
 
 | 
			
		||||
@@ -10,6 +10,7 @@ import androidx.core.content.ContextCompat
 | 
			
		||||
import eu.kanade.tachiyomi.R
 | 
			
		||||
import eu.kanade.tachiyomi.data.notification.Notifications
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.acquireWakeLock
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.getParcelableExtraCompat
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.isServiceRunning
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.logcat
 | 
			
		||||
import kotlinx.coroutines.CoroutineExceptionHandler
 | 
			
		||||
@@ -114,7 +115,7 @@ class BackupRestoreService : Service() {
 | 
			
		||||
     * @return the start value of the command.
 | 
			
		||||
     */
 | 
			
		||||
    override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
 | 
			
		||||
        val uri = intent?.getParcelableExtra<Uri>(BackupConst.EXTRA_URI) ?: return START_NOT_STICKY
 | 
			
		||||
        val uri = intent?.getParcelableExtraCompat<Uri>(BackupConst.EXTRA_URI) ?: return START_NOT_STICKY
 | 
			
		||||
 | 
			
		||||
        // Cancel any previous job if needed.
 | 
			
		||||
        restorer?.job?.cancel()
 | 
			
		||||
 
 | 
			
		||||
@@ -31,6 +31,7 @@ data class BackupTracking(
 | 
			
		||||
    fun getTrackingImpl(): TrackImpl {
 | 
			
		||||
        return TrackImpl().apply {
 | 
			
		||||
            sync_id = this@BackupTracking.syncId
 | 
			
		||||
            @Suppress("DEPRECATION")
 | 
			
		||||
            media_id = if (this@BackupTracking.mediaIdInt != 0) {
 | 
			
		||||
                this@BackupTracking.mediaIdInt.toLong()
 | 
			
		||||
            } else {
 | 
			
		||||
 
 | 
			
		||||
@@ -49,7 +49,7 @@ class DownloadPendingDeleter(context: Context) {
 | 
			
		||||
            // Last entry matches the manga, reuse it to avoid decoding json from preferences
 | 
			
		||||
            lastEntry.copy(chapters = newChapters)
 | 
			
		||||
        } else {
 | 
			
		||||
            val existingEntry = preferences.getString(manga.id!!.toString(), null)
 | 
			
		||||
            val existingEntry = preferences.getString(manga.id.toString(), null)
 | 
			
		||||
            if (existingEntry != null) {
 | 
			
		||||
                // Existing entry found on preferences, decode json and add the new chapter
 | 
			
		||||
                val savedEntry = json.decodeFromString<Entry>(existingEntry)
 | 
			
		||||
 
 | 
			
		||||
@@ -114,7 +114,7 @@ class DownloadStore(
 | 
			
		||||
     * @param download the download to serialize.
 | 
			
		||||
     */
 | 
			
		||||
    private fun serialize(download: Download): String {
 | 
			
		||||
        val obj = DownloadObject(download.manga.id!!, download.chapter.id!!, counter++)
 | 
			
		||||
        val obj = DownloadObject(download.manga.id, download.chapter.id!!, counter++)
 | 
			
		||||
        return json.encodeToString(obj)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -52,6 +52,7 @@ import eu.kanade.tachiyomi.util.shouldDownloadNewChapters
 | 
			
		||||
import eu.kanade.tachiyomi.util.storage.getUriCompat
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.acquireWakeLock
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.createFileInCacheDir
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.getSerializableExtraCompat
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.isServiceRunning
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.logcat
 | 
			
		||||
import kotlinx.coroutines.CoroutineExceptionHandler
 | 
			
		||||
@@ -223,7 +224,7 @@ class LibraryUpdateService(
 | 
			
		||||
     */
 | 
			
		||||
    override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
 | 
			
		||||
        if (intent == null) return START_NOT_STICKY
 | 
			
		||||
        val target = intent.getSerializableExtra(KEY_TARGET) as? Target
 | 
			
		||||
        val target = intent.getSerializableExtraCompat<Target>(KEY_TARGET)
 | 
			
		||||
            ?: return START_NOT_STICKY
 | 
			
		||||
 | 
			
		||||
        instance = this
 | 
			
		||||
 
 | 
			
		||||
@@ -29,6 +29,7 @@ import eu.kanade.tachiyomi.ui.reader.ReaderActivity
 | 
			
		||||
import eu.kanade.tachiyomi.util.lang.launchIO
 | 
			
		||||
import eu.kanade.tachiyomi.util.storage.DiskUtil
 | 
			
		||||
import eu.kanade.tachiyomi.util.storage.getUriCompat
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.getParcelableExtraCompat
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.notificationManager
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.toShareIntent
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.toast
 | 
			
		||||
@@ -82,7 +83,7 @@ class NotificationReceiver : BroadcastReceiver() {
 | 
			
		||||
            ACTION_SHARE_BACKUP ->
 | 
			
		||||
                shareFile(
 | 
			
		||||
                    context,
 | 
			
		||||
                    intent.getParcelableExtra(EXTRA_URI)!!,
 | 
			
		||||
                    intent.getParcelableExtraCompat(EXTRA_URI)!!,
 | 
			
		||||
                    "application/x-protobuf+gzip",
 | 
			
		||||
                    intent.getIntExtra(EXTRA_NOTIFICATION_ID, -1),
 | 
			
		||||
                )
 | 
			
		||||
@@ -130,7 +131,7 @@ class NotificationReceiver : BroadcastReceiver() {
 | 
			
		||||
            ACTION_SHARE_CRASH_LOG ->
 | 
			
		||||
                shareFile(
 | 
			
		||||
                    context,
 | 
			
		||||
                    intent.getParcelableExtra(EXTRA_URI)!!,
 | 
			
		||||
                    intent.getParcelableExtraCompat(EXTRA_URI)!!,
 | 
			
		||||
                    "text/plain",
 | 
			
		||||
                    intent.getIntExtra(EXTRA_NOTIFICATION_ID, -1),
 | 
			
		||||
                )
 | 
			
		||||
 
 | 
			
		||||
@@ -10,6 +10,7 @@ import android.content.pm.PackageInstaller
 | 
			
		||||
import android.os.Build
 | 
			
		||||
import eu.kanade.tachiyomi.extension.model.InstallStep
 | 
			
		||||
import eu.kanade.tachiyomi.util.lang.use
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.getParcelableExtraCompat
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.getUriSize
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.logcat
 | 
			
		||||
import logcat.LogPriority
 | 
			
		||||
@@ -22,7 +23,7 @@ class PackageInstallerInstaller(private val service: Service) : Installer(servic
 | 
			
		||||
        override fun onReceive(context: Context, intent: Intent) {
 | 
			
		||||
            when (intent.getIntExtra(PackageInstaller.EXTRA_STATUS, PackageInstaller.STATUS_FAILURE)) {
 | 
			
		||||
                PackageInstaller.STATUS_PENDING_USER_ACTION -> {
 | 
			
		||||
                    val userAction = intent.getParcelableExtra<Intent>(Intent.EXTRA_INTENT)
 | 
			
		||||
                    val userAction = intent.getParcelableExtraCompat<Intent>(Intent.EXTRA_INTENT)
 | 
			
		||||
                    if (userAction == null) {
 | 
			
		||||
                        logcat(LogPriority.ERROR) { "Fatal error for $intent" }
 | 
			
		||||
                        continueQueue(InstallStep.Error)
 | 
			
		||||
 
 | 
			
		||||
@@ -12,6 +12,7 @@ import eu.kanade.tachiyomi.extension.installer.Installer
 | 
			
		||||
import eu.kanade.tachiyomi.extension.installer.PackageInstallerInstaller
 | 
			
		||||
import eu.kanade.tachiyomi.extension.installer.ShizukuInstaller
 | 
			
		||||
import eu.kanade.tachiyomi.extension.util.ExtensionInstaller.Companion.EXTRA_DOWNLOAD_ID
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.getSerializableExtraCompat
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.logcat
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.notificationBuilder
 | 
			
		||||
import logcat.LogPriority
 | 
			
		||||
@@ -36,7 +37,7 @@ class ExtensionInstallService : Service() {
 | 
			
		||||
    override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
 | 
			
		||||
        val uri = intent?.data
 | 
			
		||||
        val id = intent?.getLongExtra(EXTRA_DOWNLOAD_ID, -1)?.takeIf { it != -1L }
 | 
			
		||||
        val installerUsed = intent?.getSerializableExtra(EXTRA_INSTALLER) as? PreferenceValues.ExtensionInstaller
 | 
			
		||||
        val installerUsed = intent?.getSerializableExtraCompat<PreferenceValues.ExtensionInstaller>(EXTRA_INSTALLER)
 | 
			
		||||
        if (uri == null || id == null || installerUsed == null) {
 | 
			
		||||
            stopSelf()
 | 
			
		||||
            return START_NOT_STICKY
 | 
			
		||||
 
 | 
			
		||||
@@ -17,6 +17,7 @@ import eu.kanade.tachiyomi.ui.browse.migration.MigrationFlags
 | 
			
		||||
import eu.kanade.tachiyomi.ui.browse.source.globalsearch.GlobalSearchController
 | 
			
		||||
import eu.kanade.tachiyomi.ui.browse.source.globalsearch.GlobalSearchPresenter
 | 
			
		||||
import eu.kanade.tachiyomi.ui.manga.MangaController
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.getSerializableCompat
 | 
			
		||||
import kotlinx.coroutines.runBlocking
 | 
			
		||||
import uy.kohesive.injekt.Injekt
 | 
			
		||||
import uy.kohesive.injekt.api.get
 | 
			
		||||
@@ -50,8 +51,8 @@ class SearchController(
 | 
			
		||||
 | 
			
		||||
    override fun onRestoreInstanceState(savedInstanceState: Bundle) {
 | 
			
		||||
        super.onRestoreInstanceState(savedInstanceState)
 | 
			
		||||
        manga = savedInstanceState.getSerializable(::manga.name) as? Manga
 | 
			
		||||
        newManga = savedInstanceState.getSerializable(::newManga.name) as? Manga
 | 
			
		||||
        manga = savedInstanceState.getSerializableCompat(::manga.name)
 | 
			
		||||
        newManga = savedInstanceState.getSerializableCompat(::newManga.name)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fun migrateManga(manga: Manga? = null, newManga: Manga?) {
 | 
			
		||||
 
 | 
			
		||||
@@ -6,6 +6,7 @@ import eu.kanade.domain.manga.model.Manga
 | 
			
		||||
import eu.kanade.tachiyomi.source.CatalogueSource
 | 
			
		||||
import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceController
 | 
			
		||||
import eu.kanade.tachiyomi.ui.browse.source.browse.SourceItem
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.getSerializableCompat
 | 
			
		||||
 | 
			
		||||
class SourceSearchController(
 | 
			
		||||
    bundle: Bundle,
 | 
			
		||||
@@ -20,7 +21,7 @@ class SourceSearchController(
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
    )
 | 
			
		||||
    private var oldManga: Manga? = args.getSerializable(MANGA_KEY) as Manga?
 | 
			
		||||
    private var oldManga: Manga? = args.getSerializableCompat(MANGA_KEY)
 | 
			
		||||
    private var newManga: Manga? = null
 | 
			
		||||
 | 
			
		||||
    override fun onItemClick(view: View, position: Int): Boolean {
 | 
			
		||||
 
 | 
			
		||||
@@ -52,12 +52,12 @@ class SourceItem(val manga: Manga, private val displayMode: Preference<DisplayMo
 | 
			
		||||
    override fun equals(other: Any?): Boolean {
 | 
			
		||||
        if (this === other) return true
 | 
			
		||||
        if (other is SourceItem) {
 | 
			
		||||
            return manga.id!! == other.manga.id!!
 | 
			
		||||
            return manga.id == other.manga.id
 | 
			
		||||
        }
 | 
			
		||||
        return false
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override fun hashCode(): Int {
 | 
			
		||||
        return manga.id!!.hashCode()
 | 
			
		||||
        return manga.id.hashCode()
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -40,7 +40,7 @@ class AddDuplicateMangaDialog(bundle: Bundle? = null) : DialogController(bundle)
 | 
			
		||||
            .setNegativeButton(android.R.string.cancel, null)
 | 
			
		||||
            .setNeutralButton(activity?.getString(R.string.action_show_manga)) { _, _ ->
 | 
			
		||||
                dismissDialog()
 | 
			
		||||
                router.pushController(MangaController(libraryManga.id!!))
 | 
			
		||||
                router.pushController(MangaController(libraryManga.id))
 | 
			
		||||
            }
 | 
			
		||||
            .setCancelable(true)
 | 
			
		||||
            .create()
 | 
			
		||||
 
 | 
			
		||||
@@ -8,6 +8,7 @@ import eu.kanade.domain.manga.model.Manga
 | 
			
		||||
import eu.kanade.tachiyomi.R
 | 
			
		||||
import eu.kanade.tachiyomi.ui.base.controller.DialogController
 | 
			
		||||
import eu.kanade.tachiyomi.util.chapter.ChapterSettingsHelper
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.getSerializableCompat
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.toast
 | 
			
		||||
import eu.kanade.tachiyomi.widget.DialogCheckboxView
 | 
			
		||||
 | 
			
		||||
@@ -27,7 +28,7 @@ class SetChapterSettingsDialog(bundle: Bundle? = null) : DialogController(bundle
 | 
			
		||||
            .setTitle(R.string.chapter_settings)
 | 
			
		||||
            .setView(view)
 | 
			
		||||
            .setPositiveButton(android.R.string.ok) { _, _ ->
 | 
			
		||||
                ChapterSettingsHelper.setGlobalSettings(args.getSerializable(MANGA_KEY)!! as Manga)
 | 
			
		||||
                ChapterSettingsHelper.setGlobalSettings(args.getSerializableCompat(MANGA_KEY)!!)
 | 
			
		||||
                if (view.isChecked()) {
 | 
			
		||||
                    ChapterSettingsHelper.updateAllMangasWithGlobalDefaults()
 | 
			
		||||
                }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,6 +11,7 @@ import eu.kanade.tachiyomi.data.database.models.Track
 | 
			
		||||
import eu.kanade.tachiyomi.data.track.TrackManager
 | 
			
		||||
import eu.kanade.tachiyomi.databinding.TrackChaptersDialogBinding
 | 
			
		||||
import eu.kanade.tachiyomi.ui.base.controller.DialogController
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.getSerializableCompat
 | 
			
		||||
import uy.kohesive.injekt.Injekt
 | 
			
		||||
import uy.kohesive.injekt.api.get
 | 
			
		||||
 | 
			
		||||
@@ -31,7 +32,7 @@ class SetTrackChaptersDialog<T> : DialogController
 | 
			
		||||
 | 
			
		||||
    @Suppress("unused")
 | 
			
		||||
    constructor(bundle: Bundle) : super(bundle) {
 | 
			
		||||
        val track = bundle.getSerializable(KEY_ITEM_TRACK) as Track
 | 
			
		||||
        val track = bundle.getSerializableCompat<Track>(KEY_ITEM_TRACK)!!
 | 
			
		||||
        val service = Injekt.get<TrackManager>().getService(track.sync_id.toLong())!!
 | 
			
		||||
        item = TrackItem(track, service)
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,6 +11,7 @@ import eu.kanade.tachiyomi.data.database.models.Track
 | 
			
		||||
import eu.kanade.tachiyomi.data.track.TrackManager
 | 
			
		||||
import eu.kanade.tachiyomi.databinding.TrackScoreDialogBinding
 | 
			
		||||
import eu.kanade.tachiyomi.ui.base.controller.DialogController
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.getSerializableCompat
 | 
			
		||||
import uy.kohesive.injekt.Injekt
 | 
			
		||||
import uy.kohesive.injekt.api.get
 | 
			
		||||
 | 
			
		||||
@@ -31,7 +32,7 @@ class SetTrackScoreDialog<T> : DialogController
 | 
			
		||||
 | 
			
		||||
    @Suppress("unused")
 | 
			
		||||
    constructor(bundle: Bundle) : super(bundle) {
 | 
			
		||||
        val track = bundle.getSerializable(KEY_ITEM_TRACK) as Track
 | 
			
		||||
        val track = bundle.getSerializableCompat<Track>(KEY_ITEM_TRACK)!!
 | 
			
		||||
        val service = Injekt.get<TrackManager>().getService(track.sync_id.toLong())!!
 | 
			
		||||
        item = TrackItem(track, service)
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -9,6 +9,7 @@ import eu.kanade.tachiyomi.R
 | 
			
		||||
import eu.kanade.tachiyomi.data.database.models.Track
 | 
			
		||||
import eu.kanade.tachiyomi.data.track.TrackManager
 | 
			
		||||
import eu.kanade.tachiyomi.ui.base.controller.DialogController
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.getSerializableCompat
 | 
			
		||||
import uy.kohesive.injekt.Injekt
 | 
			
		||||
import uy.kohesive.injekt.api.get
 | 
			
		||||
 | 
			
		||||
@@ -29,7 +30,7 @@ class SetTrackStatusDialog<T> : DialogController
 | 
			
		||||
 | 
			
		||||
    @Suppress("unused")
 | 
			
		||||
    constructor(bundle: Bundle) : super(bundle) {
 | 
			
		||||
        val track = bundle.getSerializable(KEY_ITEM_TRACK) as Track
 | 
			
		||||
        val track = bundle.getSerializableCompat<Track>(KEY_ITEM_TRACK)!!
 | 
			
		||||
        val service = Injekt.get<TrackManager>().getService(track.sync_id.toLong())!!
 | 
			
		||||
        item = TrackItem(track, service)
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -103,7 +103,7 @@ abstract class PagerViewer(val activity: ReaderActivity) : BaseViewer {
 | 
			
		||||
                }
 | 
			
		||||
            },
 | 
			
		||||
        )
 | 
			
		||||
        pager.tapListener = f@{ event ->
 | 
			
		||||
        pager.tapListener = { event ->
 | 
			
		||||
            val pos = PointF(event.rawX / pager.width, event.rawY / pager.height)
 | 
			
		||||
            val navigator = config.navigator
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -116,7 +116,7 @@ class WebtoonViewer(val activity: ReaderActivity, val isContinuous: Boolean = tr
 | 
			
		||||
                }
 | 
			
		||||
            },
 | 
			
		||||
        )
 | 
			
		||||
        recycler.tapListener = f@{ event ->
 | 
			
		||||
        recycler.tapListener = { event ->
 | 
			
		||||
            val pos = PointF(event.rawX / recycler.width, event.rawY / recycler.height)
 | 
			
		||||
            val navigator = config.navigator
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -37,6 +37,7 @@ import eu.kanade.tachiyomi.util.preference.preferenceCategory
 | 
			
		||||
import eu.kanade.tachiyomi.util.preference.summaryRes
 | 
			
		||||
import eu.kanade.tachiyomi.util.preference.titleRes
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.DeviceUtil
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.getParcelableCompat
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.openInBrowser
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.toast
 | 
			
		||||
import kotlinx.coroutines.flow.launchIn
 | 
			
		||||
@@ -266,7 +267,7 @@ class SettingsBackupController : SettingsController() {
 | 
			
		||||
 | 
			
		||||
        override fun onCreateDialog(savedViewState: Bundle?): Dialog {
 | 
			
		||||
            val activity = activity!!
 | 
			
		||||
            val uri: Uri = args.getParcelable(KEY_URI)!!
 | 
			
		||||
            val uri = args.getParcelableCompat<Uri>(KEY_URI)!!
 | 
			
		||||
 | 
			
		||||
            return try {
 | 
			
		||||
                val results = BackupFileValidator().validate(activity, uri)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
@file:Suppress("NOTHING_TO_INLINE")
 | 
			
		||||
 | 
			
		||||
package eu.kanade.tachiyomi.util.preference
 | 
			
		||||
 | 
			
		||||
import androidx.annotation.StringRes
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,10 @@ import android.content.ClipData
 | 
			
		||||
import android.content.Context
 | 
			
		||||
import android.content.Intent
 | 
			
		||||
import android.net.Uri
 | 
			
		||||
import android.os.Build
 | 
			
		||||
import android.os.Bundle
 | 
			
		||||
import eu.kanade.tachiyomi.R
 | 
			
		||||
import java.io.Serializable
 | 
			
		||||
 | 
			
		||||
fun Uri.toShareIntent(context: Context, type: String = "image/*", message: String? = null): Intent {
 | 
			
		||||
    val uri = this
 | 
			
		||||
@@ -21,3 +24,39 @@ fun Uri.toShareIntent(context: Context, type: String = "image/*", message: Strin
 | 
			
		||||
        flags = Intent.FLAG_ACTIVITY_NEW_TASK
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
inline fun <reified T> Intent.getParcelableExtraCompat(name: String): T? {
 | 
			
		||||
    return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
 | 
			
		||||
        getParcelableExtra(name, T::class.java)
 | 
			
		||||
    } else {
 | 
			
		||||
        @Suppress("DEPRECATION")
 | 
			
		||||
        getParcelableExtra(name)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
inline fun <reified T : Serializable> Intent.getSerializableExtraCompat(name: String): T? {
 | 
			
		||||
    return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
 | 
			
		||||
        getSerializableExtra(name, T::class.java)
 | 
			
		||||
    } else {
 | 
			
		||||
        @Suppress("DEPRECATION")
 | 
			
		||||
        getSerializableExtra(name) as? T
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
inline fun <reified T : Serializable> Bundle.getSerializableCompat(name: String): T? {
 | 
			
		||||
    return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
 | 
			
		||||
        getSerializable(name, T::class.java)
 | 
			
		||||
    } else {
 | 
			
		||||
        @Suppress("DEPRECATION")
 | 
			
		||||
        getSerializable(name) as? T
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
inline fun <reified T> Bundle.getParcelableCompat(name: String): T? {
 | 
			
		||||
    return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
 | 
			
		||||
        getParcelable(name, T::class.java)
 | 
			
		||||
    } else {
 | 
			
		||||
        @Suppress("DEPRECATION")
 | 
			
		||||
        getParcelable(name)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,6 @@
 | 
			
		||||
package eu.kanade.tachiyomi.util.system
 | 
			
		||||
 | 
			
		||||
import android.annotation.SuppressLint
 | 
			
		||||
import android.content.Context
 | 
			
		||||
import android.content.res.Resources
 | 
			
		||||
 | 
			
		||||
@@ -20,6 +21,7 @@ object InternalResourceHelper {
 | 
			
		||||
     * @param type resource type of [resName] to get
 | 
			
		||||
     * @return 0 if not available
 | 
			
		||||
     */
 | 
			
		||||
    @SuppressLint("DiscouragedApi")
 | 
			
		||||
    private fun getResourceId(resName: String, type: String): Int {
 | 
			
		||||
        return Resources.getSystem().getIdentifier(resName, type, "android")
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user