chore: Tackle some compile warnings

This commit is contained in:
Ahmad Ansori Palembani 2024-05-25 21:53:34 +07:00
parent bf368e88ed
commit 0e2e1d9ef6
Signed by: null2264
GPG key ID: BA64F8B60AF3EFB6
16 changed files with 66 additions and 33 deletions

View file

@ -6,7 +6,7 @@ import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.RowScope import androidx.compose.foundation.layout.RowScope
import androidx.compose.foundation.layout.statusBarsPadding import androidx.compose.foundation.layout.statusBarsPadding
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.ArrowBack import androidx.compose.material.icons.automirrored.filled.ArrowBack
import androidx.compose.material3.LargeTopAppBar import androidx.compose.material3.LargeTopAppBar
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold import androidx.compose.material3.Scaffold
@ -37,7 +37,7 @@ fun YokaiScaffold(
title: String = "", title: String = "",
scrollBehavior: TopAppBarScrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior(state = rememberTopAppBarState()), scrollBehavior: TopAppBarScrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior(state = rememberTopAppBarState()),
fab: @Composable () -> Unit = {}, fab: @Composable () -> Unit = {},
navigationIcon: ImageVector = Icons.Filled.ArrowBack, navigationIcon: ImageVector = Icons.AutoMirrored.Filled.ArrowBack,
navigationIconLabel: String = stringResource(id = R.string.back), navigationIconLabel: String = stringResource(id = R.string.back),
actions: @Composable RowScope.() -> Unit = {}, actions: @Composable RowScope.() -> Unit = {},
appBarType: AppBarType = AppBarType.LARGE, appBarType: AppBarType = AppBarType.LARGE,

View file

@ -3,18 +3,18 @@ package dev.yokai.presentation.extension.repo.component
import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.material.IconButton
import androidx.compose.material.TextField
import androidx.compose.material.TextFieldDefaults
import androidx.compose.material.TextFieldDefaults.indicatorLine
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.automirrored.outlined.Label
import androidx.compose.material.icons.filled.Add import androidx.compose.material.icons.filled.Add
import androidx.compose.material.icons.filled.Check import androidx.compose.material.icons.filled.Check
import androidx.compose.material.icons.filled.Delete import androidx.compose.material.icons.filled.Delete
import androidx.compose.material.icons.outlined.Label
import androidx.compose.material3.Icon import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.material3.TextField
import androidx.compose.material3.TextFieldDefaults
import androidx.compose.material3.TextFieldDefaults.indicatorLine
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
@ -45,7 +45,7 @@ fun ExtensionRepoItem(
) { ) {
Icon( Icon(
modifier = Modifier.padding(horizontal = 8.dp), modifier = Modifier.padding(horizontal = 8.dp),
imageVector = if (repoUrl != null) Icons.Outlined.Label else Icons.Filled.Add, imageVector = if (repoUrl != null) Icons.AutoMirrored.Outlined.Label else Icons.Filled.Add,
contentDescription = null, contentDescription = null,
tint = MaterialTheme.colorScheme.onBackground, tint = MaterialTheme.colorScheme.onBackground,
) )
@ -64,10 +64,14 @@ fun ExtensionRepoItem(
) )
} }
} else { } else {
val colors = TextFieldDefaults.textFieldColors( val colors = TextFieldDefaults.colors().copy(
cursorColor = MaterialTheme.colorScheme.secondary, cursorColor = MaterialTheme.colorScheme.secondary,
placeholderColor = MaterialTheme.colorScheme.textHint, focusedPlaceholderColor = MaterialTheme.colorScheme.textHint,
textColor = MaterialTheme.colorScheme.onBackground, unfocusedPlaceholderColor = MaterialTheme.colorScheme.textHint,
errorPlaceholderColor = MaterialTheme.colorScheme.textHint,
focusedTextColor = MaterialTheme.colorScheme.onBackground,
unfocusedTextColor = MaterialTheme.colorScheme.onBackground,
errorTextColor = MaterialTheme.colorScheme.onBackground,
focusedIndicatorColor = Color.Transparent, focusedIndicatorColor = Color.Transparent,
unfocusedIndicatorColor = Color.Transparent, unfocusedIndicatorColor = Color.Transparent,
errorIndicatorColor = Color.Transparent, errorIndicatorColor = Color.Transparent,

View file

@ -11,6 +11,7 @@ import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.source.Source import eu.kanade.tachiyomi.source.Source
import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.source.SourceManager
import eu.kanade.tachiyomi.source.model.Page import eu.kanade.tachiyomi.source.model.Page
import kotlinx.coroutines.DelicateCoroutinesApi
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@ -242,6 +243,7 @@ class DownloadManager(val context: Context) {
* @param manga the manga of the chapters. * @param manga the manga of the chapters.
* @param source the source of the chapters. * @param source the source of the chapters.
*/ */
@OptIn(DelicateCoroutinesApi::class)
fun deleteChapters(chapters: List<Chapter>, manga: Manga, source: Source, force: Boolean = false) { fun deleteChapters(chapters: List<Chapter>, manga: Manga, source: Source, force: Boolean = false) {
val filteredChapters = if (force) chapters else getChaptersToDelete(chapters, manga) val filteredChapters = if (force) chapters else getChaptersToDelete(chapters, manga)
GlobalScope.launch(Dispatchers.IO) { GlobalScope.launch(Dispatchers.IO) {

View file

@ -27,6 +27,7 @@ import eu.kanade.tachiyomi.ui.reader.ReaderActivity
import eu.kanade.tachiyomi.util.chapter.updateTrackChapterMarkedAsRead import eu.kanade.tachiyomi.util.chapter.updateTrackChapterMarkedAsRead
import eu.kanade.tachiyomi.util.storage.DiskUtil import eu.kanade.tachiyomi.util.storage.DiskUtil
import eu.kanade.tachiyomi.util.storage.getUriCompat import eu.kanade.tachiyomi.util.storage.getUriCompat
import eu.kanade.tachiyomi.util.system.getParcelableCompat
import eu.kanade.tachiyomi.util.system.notificationManager import eu.kanade.tachiyomi.util.system.notificationManager
import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get import uy.kohesive.injekt.api.get
@ -75,7 +76,7 @@ class NotificationReceiver : BroadcastReceiver() {
ACTION_SHARE_BACKUP -> ACTION_SHARE_BACKUP ->
shareBackup( shareBackup(
context, context,
intent.getParcelableExtra(EXTRA_URI)!!, intent.getParcelableCompat(EXTRA_URI, Uri::class.java)!!,
intent.getIntExtra(EXTRA_NOTIFICATION_ID, -1), intent.getIntExtra(EXTRA_NOTIFICATION_ID, -1),
) )
ACTION_MARK_AS_READ -> { ACTION_MARK_AS_READ -> {
@ -96,7 +97,7 @@ class NotificationReceiver : BroadcastReceiver() {
ACTION_SHARE_CRASH_LOG -> ACTION_SHARE_CRASH_LOG ->
shareFile( shareFile(
context, context,
intent.getParcelableExtra(EXTRA_URI)!!, intent.getParcelableCompat(EXTRA_URI, Uri::class.java)!!,
"text/plain", "text/plain",
intent.getIntExtra(EXTRA_NOTIFICATION_ID, -1), intent.getIntExtra(EXTRA_NOTIFICATION_ID, -1),
) )

View file

@ -80,7 +80,7 @@ class BangumiApi(private val client: OkHttpClient, interceptor: BangumiIntercept
authClient.newCall(GET(url.toString())) authClient.newCall(GET(url.toString()))
.awaitSuccess() .awaitSuccess()
.use { .use {
var responseBody = it.body?.string().orEmpty() var responseBody = it.body.string().orEmpty()
if (responseBody.isEmpty()) { if (responseBody.isEmpty()) {
throw Exception("Null Response") throw Exception("Null Response")
} }
@ -138,7 +138,7 @@ class BangumiApi(private val client: OkHttpClient, interceptor: BangumiIntercept
// TODO: get user readed chapter here // TODO: get user readed chapter here
var response = authClient.newCall(requestUserRead).awaitSuccess() var response = authClient.newCall(requestUserRead).awaitSuccess()
var responseBody = response.body?.string().orEmpty() var responseBody = response.body.string().orEmpty()
if (responseBody.isEmpty()) { if (responseBody.isEmpty()) {
throw Exception("Null Response") throw Exception("Null Response")
} }

View file

@ -8,6 +8,7 @@ import androidx.core.content.edit
import androidx.core.net.toUri import androidx.core.net.toUri
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.util.system.getParcelableCompat
import eu.kanade.tachiyomi.util.system.localeContext import eu.kanade.tachiyomi.util.system.localeContext
import eu.kanade.tachiyomi.util.system.toast import eu.kanade.tachiyomi.util.system.toast
@ -17,7 +18,7 @@ class AppUpdateBroadcast : BroadcastReceiver() {
val extras = intent.extras ?: return val extras = intent.extras ?: return
when (val status = extras.getInt(PackageInstaller.EXTRA_STATUS)) { when (val status = extras.getInt(PackageInstaller.EXTRA_STATUS)) {
PackageInstaller.STATUS_PENDING_USER_ACTION -> { PackageInstaller.STATUS_PENDING_USER_ACTION -> {
val confirmIntent = extras[Intent.EXTRA_INTENT] as? Intent val confirmIntent = extras.getParcelableCompat(Intent.EXTRA_INTENT, Intent::class.java)
context.startActivity(confirmIntent?.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)) context.startActivity(confirmIntent?.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK))
} }
PackageInstaller.STATUS_SUCCESS -> { PackageInstaller.STATUS_SUCCESS -> {

View file

@ -19,6 +19,7 @@ import eu.kanade.tachiyomi.extension.util.ExtensionInstallBroadcast.Companion.EX
import eu.kanade.tachiyomi.extension.util.ExtensionInstallBroadcast.Companion.PACKAGE_INSTALLED_ACTION import eu.kanade.tachiyomi.extension.util.ExtensionInstallBroadcast.Companion.PACKAGE_INSTALLED_ACTION
import eu.kanade.tachiyomi.extension.util.ExtensionInstallBroadcast.Companion.packageInstallStep import eu.kanade.tachiyomi.extension.util.ExtensionInstallBroadcast.Companion.packageInstallStep
import eu.kanade.tachiyomi.util.system.DeviceUtil import eu.kanade.tachiyomi.util.system.DeviceUtil
import eu.kanade.tachiyomi.util.system.getParcelableCompat
import eu.kanade.tachiyomi.util.system.toast import eu.kanade.tachiyomi.util.system.toast
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
@ -88,7 +89,7 @@ class ExtensionInstallBroadcast : BroadcastReceiver() {
val extensionManager: ExtensionManager by injectLazy() val extensionManager: ExtensionManager by injectLazy()
when (val status = extras.getInt(PackageInstaller.EXTRA_STATUS)) { when (val status = extras.getInt(PackageInstaller.EXTRA_STATUS)) {
PackageInstaller.STATUS_PENDING_USER_ACTION -> { PackageInstaller.STATUS_PENDING_USER_ACTION -> {
val confirmIntent = extras[Intent.EXTRA_INTENT] as? Intent val confirmIntent = extras.getParcelableCompat(Intent.EXTRA_INTENT, Intent::class.java)
if (context is Activity) { if (context is Activity) {
context.startActivity(confirmIntent) context.startActivity(confirmIntent)
} else { } else {

View file

@ -11,6 +11,7 @@ import eu.kanade.tachiyomi.extension.model.Extension
import eu.kanade.tachiyomi.extension.model.LoadResult import eu.kanade.tachiyomi.extension.model.LoadResult
import eu.kanade.tachiyomi.util.system.launchNow import eu.kanade.tachiyomi.util.system.launchNow
import kotlinx.coroutines.CoroutineStart import kotlinx.coroutines.CoroutineStart
import kotlinx.coroutines.DelicateCoroutinesApi
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.async import kotlinx.coroutines.async
@ -98,6 +99,7 @@ internal class ExtensionInstallReceiver(private val listener: Listener) :
* @param context The application context. * @param context The application context.
* @param intent The intent containing the package name of the extension. * @param intent The intent containing the package name of the extension.
*/ */
@OptIn(DelicateCoroutinesApi::class)
private suspend fun getExtensionFromIntent(context: Context, intent: Intent?): LoadResult { private suspend fun getExtensionFromIntent(context: Context, intent: Intent?): LoadResult {
val pkgName = getPackageNameFromIntent(intent) val pkgName = getPackageNameFromIntent(intent)
?: return LoadResult.Error ?: return LoadResult.Error

View file

@ -255,6 +255,7 @@ internal object ExtensionLoader {
return selectExtensionPackage(sharedPkg, privatePkg) return selectExtensionPackage(sharedPkg, privatePkg)
} }
@Suppress("DEPRECATION")
fun isExtensionInstalledByApp(context: Context, pkgName: String): Boolean { fun isExtensionInstalledByApp(context: Context, pkgName: String): Boolean {
return try { return try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {

View file

@ -46,7 +46,7 @@ class MangaDex : DelegatedHttpSource() {
GET("https:///api.mangadex.org/v2$url", delegate!!.headers, CacheControl.FORCE_NETWORK) GET("https:///api.mangadex.org/v2$url", delegate!!.headers, CacheControl.FORCE_NETWORK)
val response = network.client.newCall(request).await() val response = network.client.newCall(request).await()
if (response.code != 200) throw Exception("HTTP error ${response.code}") if (response.code != 200) throw Exception("HTTP error ${response.code}")
val body = response.body?.string().orEmpty() val body = response.body.string().orEmpty()
if (body.isEmpty()) { if (body.isEmpty()) {
throw Exception("Null Response") throw Exception("Null Response")
} }

View file

@ -62,7 +62,7 @@ class ExtensionDetailsController(bundle: Bundle? = null) :
PreferenceManager.OnDisplayPreferenceDialogListener, PreferenceManager.OnDisplayPreferenceDialogListener,
DialogPreference.TargetFragment { DialogPreference.TargetFragment {
private var lastOpenPreferencePosition: Int? = null private var lastOpenPreferencePosition: Int = 0
private var preferenceScreen: PreferenceScreen? = null private var preferenceScreen: PreferenceScreen? = null
@ -141,13 +141,13 @@ class ExtensionDetailsController(bundle: Bundle? = null) :
} }
override fun onSaveInstanceState(outState: Bundle) { override fun onSaveInstanceState(outState: Bundle) {
lastOpenPreferencePosition?.let { outState.putInt(LASTOPENPREFERENCE_KEY, it) } outState.putInt(LASTOPENPREFERENCE_KEY, lastOpenPreferencePosition)
super.onSaveInstanceState(outState) super.onSaveInstanceState(outState)
} }
override fun onRestoreInstanceState(savedInstanceState: Bundle) { override fun onRestoreInstanceState(savedInstanceState: Bundle) {
super.onRestoreInstanceState(savedInstanceState) super.onRestoreInstanceState(savedInstanceState)
lastOpenPreferencePosition = savedInstanceState.get(LASTOPENPREFERENCE_KEY) as? Int lastOpenPreferencePosition = savedInstanceState.getInt(LASTOPENPREFERENCE_KEY)
} }
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
@ -349,10 +349,10 @@ class ExtensionDetailsController(bundle: Bundle? = null) :
private fun Extension.getPreferenceKey(): String = "extension_$pkgName" private fun Extension.getPreferenceKey(): String = "extension_$pkgName"
@Suppress("UNCHECKED_CAST") @Suppress("UNCHECKED_CAST")
override fun <T : Preference> findPreference(key: CharSequence): T? { override fun <T : Preference> findPreference(key: CharSequence): T {
// We track [lastOpenPreferencePosition] when displaying the dialog // We track [lastOpenPreferencePosition] when displaying the dialog
// [key] isn't useful since there may be duplicates // [key] isn't useful since there may be duplicates
return preferenceScreen!!.getPreference(lastOpenPreferencePosition!!) as T return preferenceScreen!!.getPreference(lastOpenPreferencePosition) as T
} }
private companion object { private companion object {

View file

@ -12,6 +12,7 @@ import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.os.Parcelable import android.os.Parcelable
import android.util.TypedValue import android.util.TypedValue
import android.view.GestureDetector
import android.view.Gravity import android.view.Gravity
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.Menu import android.view.Menu
@ -29,7 +30,6 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.view.ActionMode import androidx.appcompat.view.ActionMode
import androidx.coordinatorlayout.widget.CoordinatorLayout import androidx.coordinatorlayout.widget.CoordinatorLayout
import androidx.core.animation.doOnEnd import androidx.core.animation.doOnEnd
import androidx.core.view.GestureDetectorCompat
import androidx.core.view.ViewCompat import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsAnimationCompat import androidx.core.view.WindowInsetsAnimationCompat
import androidx.core.view.WindowInsetsCompat import androidx.core.view.WindowInsetsCompat
@ -175,7 +175,7 @@ open class LibraryController(
var singleCategory: Boolean = false var singleCategory: Boolean = false
private set private set
var hopperAnimation: ValueAnimator? = null var hopperAnimation: ValueAnimator? = null
var catGestureDetector: GestureDetectorCompat? = null var catGestureDetector: GestureDetector? = null
/** /**
* Library search query. * Library search query.
@ -750,7 +750,7 @@ open class LibraryController(
true true
}.show() }.show()
} }
catGestureDetector = GestureDetectorCompat(binding.root.context, LibraryCategoryGestureDetector(this)) catGestureDetector = GestureDetector(binding.root.context, LibraryCategoryGestureDetector(this))
binding.roundedCategoryHopper.categoryButton.setOnLongClickListener { binding.roundedCategoryHopper.categoryButton.setOnLongClickListener {
when (preferences.hopperLongPressAction().get()) { when (preferences.hopperLongPressAction().get()) {
@ -783,7 +783,7 @@ open class LibraryController(
} }
hopperGravity = gravityPref hopperGravity = gravityPref
val gestureDetector = GestureDetectorCompat(binding.root.context, LibraryGestureDetector(this)) val gestureDetector = GestureDetector(binding.root.context, LibraryGestureDetector(this))
with(binding.roundedCategoryHopper) { with(binding.roundedCategoryHopper) {
listOf(categoryHopperLayout, upCategory, downCategory, categoryButton).forEach { listOf(categoryHopperLayout, upCategory, downCategory, categoryButton).forEach {
it.setOnTouchListener { _, event -> it.setOnTouchListener { _, event ->

View file

@ -4,12 +4,12 @@ import android.annotation.SuppressLint
import android.app.Activity import android.app.Activity
import android.graphics.Color import android.graphics.Color
import android.util.TypedValue import android.util.TypedValue
import android.view.GestureDetector
import android.view.MotionEvent import android.view.MotionEvent
import android.view.View import android.view.View
import androidx.annotation.DrawableRes import androidx.annotation.DrawableRes
import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.view.GestureDetectorCompat
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.core.view.marginTop import androidx.core.view.marginTop
import androidx.core.view.updateLayoutParams import androidx.core.view.updateLayoutParams
@ -82,7 +82,7 @@ class LibraryHeaderHolder(val view: View, val adapter: LibraryCategoryAdapter) :
@SuppressLint("ClickableViewAccessibility") @SuppressLint("ClickableViewAccessibility")
private fun LibraryCategoryHeaderItemBinding.setTouchEvents() { private fun LibraryCategoryHeaderItemBinding.setTouchEvents() {
val gestureDetector = GestureDetectorCompat(root.context, headerGestureDetector) val gestureDetector = GestureDetector(root.context, headerGestureDetector)
listOf(categoryHeaderLayout, categorySort, categoryTitle, updateButton).forEach { listOf(categoryHeaderLayout, categorySort, categoryTitle, updateButton).forEach {
var isCancelling = false var isCancelling = false
it.setOnTouchListener { _, event -> it.setOnTouchListener { _, event ->

View file

@ -45,7 +45,6 @@ import androidx.core.graphics.ColorUtils
import androidx.core.net.toUri import androidx.core.net.toUri
import androidx.core.splashscreen.SplashScreen import androidx.core.splashscreen.SplashScreen
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
import androidx.core.view.GestureDetectorCompat
import androidx.core.view.ViewCompat import androidx.core.view.ViewCompat
import androidx.core.view.WindowCompat import androidx.core.view.WindowCompat
import androidx.core.view.WindowInsetsCompat import androidx.core.view.WindowInsetsCompat
@ -162,7 +161,7 @@ open class MainActivity : BaseActivity<MainActivityBinding>() {
protected val searchDrawable by lazy { contextCompatDrawable(R.drawable.ic_search_24dp) } protected val searchDrawable by lazy { contextCompatDrawable(R.drawable.ic_search_24dp) }
protected val backDrawable by lazy { contextCompatDrawable(R.drawable.ic_arrow_back_24dp) } protected val backDrawable by lazy { contextCompatDrawable(R.drawable.ic_arrow_back_24dp) }
private var gestureDetector: GestureDetectorCompat? = null private var gestureDetector: GestureDetector? = null
private var snackBar: Snackbar? = null private var snackBar: Snackbar? = null
private var extraViewForUndo: View? = null private var extraViewForUndo: View? = null
@ -366,7 +365,7 @@ open class MainActivity : BaseActivity<MainActivityBinding>() {
finish() finish()
return return
} }
gestureDetector = GestureDetectorCompat(this, GestureListener()) gestureDetector = GestureDetector(this, GestureListener())
binding = MainActivityBinding.inflate(layoutInflater) binding = MainActivityBinding.inflate(layoutInflater)
setContentView(binding.root) setContentView(binding.root)

View file

@ -5,6 +5,7 @@ import eu.davidea.flexibleadapter.FlexibleAdapter
import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.extension.ExtensionManager import eu.kanade.tachiyomi.extension.ExtensionManager
import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.source.SourceManager
import eu.kanade.tachiyomi.util.system.getParcelableArrayListCompat
import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
@ -36,8 +37,9 @@ class MigrationSourceAdapter(
override fun onRestoreInstanceState(savedInstanceState: Bundle) { override fun onRestoreInstanceState(savedInstanceState: Bundle) {
val sourceManager: SourceManager by injectLazy() val sourceManager: SourceManager by injectLazy()
savedInstanceState.getParcelableArrayList<MigrationSourceItem.ParcelableSI>( savedInstanceState.getParcelableArrayListCompat(
SELECTED_SOURCES_KEY, SELECTED_SOURCES_KEY,
MigrationSourceItem.ParcelableSI::class.java
)?.let { )?.let {
updateDataSet(it.map { MigrationSourceItem.fromParcelable(sourceManager, it) }) updateDataSet(it.map { MigrationSourceItem.fromParcelable(sourceManager, it) })
} }

View file

@ -0,0 +1,20 @@
package eu.kanade.tachiyomi.util.system
import android.content.Intent
import android.os.Build
import android.os.Bundle
import android.os.Parcelable
fun <T> Intent.getParcelableCompat(name: String, clazz: Class<T>) =
extras?.getParcelableCompat(name, clazz)
@Suppress("DEPRECATION")
fun <T> Bundle.getParcelableCompat(name: String, clazz: Class<T>) =
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) getParcelable(name, clazz) else getParcelable(name) as? T
fun <T : Parcelable?> Intent.getParcelableArrayListCompat(name: String, clazz: Class<T>) =
extras?.getParcelableArrayListCompat(name, clazz)
@Suppress("DEPRECATION")
fun <T : Parcelable?> Bundle.getParcelableArrayListCompat(name: String, clazz: Class<T>) =
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) getParcelableArrayList(name, clazz) else getParcelableArrayList<T>(name)