Address misc. build warnings
(cherry picked from commit d6f1534ee8c95c7dc450f1cb86d378007e3bf53b) # Conflicts: # app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SearchController.kt # app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SourceSearchController.kt
This commit is contained in:
parent
4d315c1d5d
commit
2999190fad
@ -304,6 +304,8 @@ tasks {
|
|||||||
"-opt-in=androidx.compose.foundation.ExperimentalFoundationApi",
|
"-opt-in=androidx.compose.foundation.ExperimentalFoundationApi",
|
||||||
"-opt-in=androidx.compose.animation.graphics.ExperimentalAnimationGraphicsApi",
|
"-opt-in=androidx.compose.animation.graphics.ExperimentalAnimationGraphicsApi",
|
||||||
"-opt-in=androidx.compose.material3.windowsizeclass.ExperimentalMaterial3WindowSizeClassApi",
|
"-opt-in=androidx.compose.material3.windowsizeclass.ExperimentalMaterial3WindowSizeClassApi",
|
||||||
|
"-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi",
|
||||||
|
"-opt-in=kotlinx.coroutines.FlowPreview",
|
||||||
"-opt-in=kotlinx.coroutines.InternalCoroutinesApi",
|
"-opt-in=kotlinx.coroutines.InternalCoroutinesApi",
|
||||||
"-opt-in=kotlinx.serialization.ExperimentalSerializationApi",
|
"-opt-in=kotlinx.serialization.ExperimentalSerializationApi",
|
||||||
)
|
)
|
||||||
|
@ -12,10 +12,10 @@ class CreateCategoryWithName(
|
|||||||
private val categoryRepository: CategoryRepository,
|
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()
|
val categories = categoryRepository.getAll()
|
||||||
if (categories.anyWithName(name)) {
|
if (categories.anyWithName(name)) {
|
||||||
return@await Result.NameAlreadyExistsError
|
return@withContext Result.NameAlreadyExistsError
|
||||||
}
|
}
|
||||||
|
|
||||||
val nextOrder = categories.maxOfOrNull { it.order }?.plus(1) ?: 0
|
val nextOrder = categories.maxOfOrNull { it.order }?.plus(1) ?: 0
|
||||||
|
@ -11,12 +11,12 @@ class DeleteCategory(
|
|||||||
private val categoryRepository: CategoryRepository,
|
private val categoryRepository: CategoryRepository,
|
||||||
) {
|
) {
|
||||||
|
|
||||||
suspend fun await(categoryId: Long) = withContext(NonCancellable) await@{
|
suspend fun await(categoryId: Long) = withContext(NonCancellable) {
|
||||||
try {
|
try {
|
||||||
categoryRepository.delete(categoryId)
|
categoryRepository.delete(categoryId)
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
logcat(LogPriority.ERROR, e)
|
logcat(LogPriority.ERROR, e)
|
||||||
return@await Result.InternalError(e)
|
return@withContext Result.InternalError(e)
|
||||||
}
|
}
|
||||||
|
|
||||||
val categories = categoryRepository.getAll()
|
val categories = categoryRepository.getAll()
|
||||||
|
@ -13,10 +13,10 @@ class RenameCategory(
|
|||||||
private val categoryRepository: CategoryRepository,
|
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()
|
val categories = categoryRepository.getAll()
|
||||||
if (categories.anyWithName(name)) {
|
if (categories.anyWithName(name)) {
|
||||||
return@await Result.NameAlreadyExistsError
|
return@withContext Result.NameAlreadyExistsError
|
||||||
}
|
}
|
||||||
|
|
||||||
val update = CategoryUpdate(
|
val update = CategoryUpdate(
|
||||||
|
@ -12,12 +12,12 @@ class ReorderCategory(
|
|||||||
private val categoryRepository: CategoryRepository,
|
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 categories = categoryRepository.getAll().filterNot(Category::isSystemCategory)
|
||||||
|
|
||||||
val currentIndex = categories.indexOfFirst { it.id == categoryId }
|
val currentIndex = categories.indexOfFirst { it.id == categoryId }
|
||||||
if (currentIndex == newPosition) {
|
if (currentIndex == newPosition) {
|
||||||
return@await Result.Unchanged
|
return@withContext Result.Unchanged
|
||||||
}
|
}
|
||||||
|
|
||||||
val reorderedCategories = categories.toMutableList()
|
val reorderedCategories = categories.toMutableList()
|
||||||
|
@ -31,11 +31,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 }
|
val chapters = values.filterNot { it.read == read }
|
||||||
|
|
||||||
if (chapters.isEmpty()) {
|
if (chapters.isEmpty()) {
|
||||||
return@f Result.NoChapters
|
return@withContext Result.NoChapters
|
||||||
}
|
}
|
||||||
|
|
||||||
val manga = chapters.fold(mutableSetOf<Manga>()) { acc, chapter ->
|
val manga = chapters.fold(mutableSetOf<Manga>()) { acc, chapter ->
|
||||||
@ -53,15 +53,15 @@ class SetReadStatus(
|
|||||||
)
|
)
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
logcat(LogPriority.ERROR, e)
|
logcat(LogPriority.ERROR, e)
|
||||||
return@f Result.InternalError(e)
|
return@withContext Result.InternalError(e)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (read && preferences.removeAfterMarkedAsRead()) {
|
if (read && preferences.removeAfterMarkedAsRead()) {
|
||||||
manga.forEach { manga ->
|
manga.forEach {
|
||||||
deleteDownload.awaitAll(
|
deleteDownload.awaitAll(
|
||||||
manga = manga,
|
manga = it,
|
||||||
values = chapters
|
values = chapters
|
||||||
.filter { manga.id == it.mangaId }
|
.filter { chapter -> it.id == chapter.mangaId }
|
||||||
.toTypedArray(),
|
.toTypedArray(),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -70,8 +70,8 @@ class SetReadStatus(
|
|||||||
Result.Success
|
Result.Success
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun await(mangaId: Long, read: Boolean): Result = withContext(NonCancellable) f@{
|
suspend fun await(mangaId: Long, read: Boolean): Result = withContext(NonCancellable) {
|
||||||
return@f await(
|
await(
|
||||||
read = read,
|
read = read,
|
||||||
values = chapterRepository
|
values = chapterRepository
|
||||||
.getChapterByMangaId(mangaId)
|
.getChapterByMangaId(mangaId)
|
||||||
|
@ -200,6 +200,7 @@ object Migrations {
|
|||||||
val oldSortingMode = prefs.getInt(PreferenceKeys.librarySortingMode, 0)
|
val oldSortingMode = prefs.getInt(PreferenceKeys.librarySortingMode, 0)
|
||||||
val oldSortingDirection = prefs.getBoolean(PreferenceKeys.librarySortingDirection, true)
|
val oldSortingDirection = prefs.getBoolean(PreferenceKeys.librarySortingDirection, true)
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
val newSortingMode = when (oldSortingMode) {
|
val newSortingMode = when (oldSortingMode) {
|
||||||
0 -> SortModeSetting.ALPHABETICAL
|
0 -> SortModeSetting.ALPHABETICAL
|
||||||
1 -> SortModeSetting.LAST_READ
|
1 -> SortModeSetting.LAST_READ
|
||||||
|
@ -10,6 +10,7 @@ import androidx.core.content.ContextCompat
|
|||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.data.notification.Notifications
|
import eu.kanade.tachiyomi.data.notification.Notifications
|
||||||
import eu.kanade.tachiyomi.util.system.acquireWakeLock
|
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.isServiceRunning
|
||||||
import eu.kanade.tachiyomi.util.system.logcat
|
import eu.kanade.tachiyomi.util.system.logcat
|
||||||
import kotlinx.coroutines.CoroutineExceptionHandler
|
import kotlinx.coroutines.CoroutineExceptionHandler
|
||||||
@ -114,7 +115,7 @@ class BackupRestoreService : Service() {
|
|||||||
* @return the start value of the command.
|
* @return the start value of the command.
|
||||||
*/
|
*/
|
||||||
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
|
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.
|
// Cancel any previous job if needed.
|
||||||
restorer?.job?.cancel()
|
restorer?.job?.cancel()
|
||||||
|
@ -31,6 +31,7 @@ data class BackupTracking(
|
|||||||
fun getTrackingImpl(): TrackImpl {
|
fun getTrackingImpl(): TrackImpl {
|
||||||
return TrackImpl().apply {
|
return TrackImpl().apply {
|
||||||
sync_id = this@BackupTracking.syncId
|
sync_id = this@BackupTracking.syncId
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
media_id = if (this@BackupTracking.mediaIdInt != 0) {
|
media_id = if (this@BackupTracking.mediaIdInt != 0) {
|
||||||
this@BackupTracking.mediaIdInt.toLong()
|
this@BackupTracking.mediaIdInt.toLong()
|
||||||
} else {
|
} else {
|
||||||
|
@ -49,7 +49,7 @@ class DownloadPendingDeleter(context: Context) {
|
|||||||
// Last entry matches the manga, reuse it to avoid decoding json from preferences
|
// Last entry matches the manga, reuse it to avoid decoding json from preferences
|
||||||
lastEntry.copy(chapters = newChapters)
|
lastEntry.copy(chapters = newChapters)
|
||||||
} else {
|
} else {
|
||||||
val existingEntry = preferences.getString(manga.id!!.toString(), null)
|
val existingEntry = preferences.getString(manga.id.toString(), null)
|
||||||
if (existingEntry != null) {
|
if (existingEntry != null) {
|
||||||
// Existing entry found on preferences, decode json and add the new chapter
|
// Existing entry found on preferences, decode json and add the new chapter
|
||||||
val savedEntry = json.decodeFromString<Entry>(existingEntry)
|
val savedEntry = json.decodeFromString<Entry>(existingEntry)
|
||||||
|
@ -114,7 +114,7 @@ class DownloadStore(
|
|||||||
* @param download the download to serialize.
|
* @param download the download to serialize.
|
||||||
*/
|
*/
|
||||||
private fun serialize(download: Download): String {
|
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)
|
return json.encodeToString(obj)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -63,6 +63,7 @@ import eu.kanade.tachiyomi.util.shouldDownloadNewChapters
|
|||||||
import eu.kanade.tachiyomi.util.storage.getUriCompat
|
import eu.kanade.tachiyomi.util.storage.getUriCompat
|
||||||
import eu.kanade.tachiyomi.util.system.acquireWakeLock
|
import eu.kanade.tachiyomi.util.system.acquireWakeLock
|
||||||
import eu.kanade.tachiyomi.util.system.createFileInCacheDir
|
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.isServiceRunning
|
||||||
import eu.kanade.tachiyomi.util.system.logcat
|
import eu.kanade.tachiyomi.util.system.logcat
|
||||||
import exh.log.xLogE
|
import exh.log.xLogE
|
||||||
@ -264,7 +265,7 @@ class LibraryUpdateService(
|
|||||||
*/
|
*/
|
||||||
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
|
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
|
||||||
if (intent == null) return START_NOT_STICKY
|
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
|
?: return START_NOT_STICKY
|
||||||
|
|
||||||
instance = this
|
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.lang.launchIO
|
||||||
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.getParcelableExtraCompat
|
||||||
import eu.kanade.tachiyomi.util.system.notificationManager
|
import eu.kanade.tachiyomi.util.system.notificationManager
|
||||||
import eu.kanade.tachiyomi.util.system.toShareIntent
|
import eu.kanade.tachiyomi.util.system.toShareIntent
|
||||||
import eu.kanade.tachiyomi.util.system.toast
|
import eu.kanade.tachiyomi.util.system.toast
|
||||||
@ -82,7 +83,7 @@ class NotificationReceiver : BroadcastReceiver() {
|
|||||||
ACTION_SHARE_BACKUP ->
|
ACTION_SHARE_BACKUP ->
|
||||||
shareFile(
|
shareFile(
|
||||||
context,
|
context,
|
||||||
intent.getParcelableExtra(EXTRA_URI)!!,
|
intent.getParcelableExtraCompat(EXTRA_URI)!!,
|
||||||
"application/x-protobuf+gzip",
|
"application/x-protobuf+gzip",
|
||||||
intent.getIntExtra(EXTRA_NOTIFICATION_ID, -1),
|
intent.getIntExtra(EXTRA_NOTIFICATION_ID, -1),
|
||||||
)
|
)
|
||||||
@ -130,7 +131,7 @@ class NotificationReceiver : BroadcastReceiver() {
|
|||||||
ACTION_SHARE_CRASH_LOG ->
|
ACTION_SHARE_CRASH_LOG ->
|
||||||
shareFile(
|
shareFile(
|
||||||
context,
|
context,
|
||||||
intent.getParcelableExtra(EXTRA_URI)!!,
|
intent.getParcelableExtraCompat(EXTRA_URI)!!,
|
||||||
"text/plain",
|
"text/plain",
|
||||||
intent.getIntExtra(EXTRA_NOTIFICATION_ID, -1),
|
intent.getIntExtra(EXTRA_NOTIFICATION_ID, -1),
|
||||||
)
|
)
|
||||||
|
@ -10,6 +10,7 @@ import android.content.pm.PackageInstaller
|
|||||||
import android.os.Build
|
import android.os.Build
|
||||||
import eu.kanade.tachiyomi.extension.model.InstallStep
|
import eu.kanade.tachiyomi.extension.model.InstallStep
|
||||||
import eu.kanade.tachiyomi.util.lang.use
|
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.getUriSize
|
||||||
import eu.kanade.tachiyomi.util.system.logcat
|
import eu.kanade.tachiyomi.util.system.logcat
|
||||||
import logcat.LogPriority
|
import logcat.LogPriority
|
||||||
@ -22,7 +23,7 @@ class PackageInstallerInstaller(private val service: Service) : Installer(servic
|
|||||||
override fun onReceive(context: Context, intent: Intent) {
|
override fun onReceive(context: Context, intent: Intent) {
|
||||||
when (intent.getIntExtra(PackageInstaller.EXTRA_STATUS, PackageInstaller.STATUS_FAILURE)) {
|
when (intent.getIntExtra(PackageInstaller.EXTRA_STATUS, PackageInstaller.STATUS_FAILURE)) {
|
||||||
PackageInstaller.STATUS_PENDING_USER_ACTION -> {
|
PackageInstaller.STATUS_PENDING_USER_ACTION -> {
|
||||||
val userAction = intent.getParcelableExtra<Intent>(Intent.EXTRA_INTENT)
|
val userAction = intent.getParcelableExtraCompat<Intent>(Intent.EXTRA_INTENT)
|
||||||
if (userAction == null) {
|
if (userAction == null) {
|
||||||
logcat(LogPriority.ERROR) { "Fatal error for $intent" }
|
logcat(LogPriority.ERROR) { "Fatal error for $intent" }
|
||||||
continueQueue(InstallStep.Error)
|
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.PackageInstallerInstaller
|
||||||
import eu.kanade.tachiyomi.extension.installer.ShizukuInstaller
|
import eu.kanade.tachiyomi.extension.installer.ShizukuInstaller
|
||||||
import eu.kanade.tachiyomi.extension.util.ExtensionInstaller.Companion.EXTRA_DOWNLOAD_ID
|
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.logcat
|
||||||
import eu.kanade.tachiyomi.util.system.notificationBuilder
|
import eu.kanade.tachiyomi.util.system.notificationBuilder
|
||||||
import logcat.LogPriority
|
import logcat.LogPriority
|
||||||
@ -36,7 +37,7 @@ class ExtensionInstallService : Service() {
|
|||||||
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
|
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
|
||||||
val uri = intent?.data
|
val uri = intent?.data
|
||||||
val id = intent?.getLongExtra(EXTRA_DOWNLOAD_ID, -1)?.takeIf { it != -1L }
|
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) {
|
if (uri == null || id == null || installerUsed == null) {
|
||||||
stopSelf()
|
stopSelf()
|
||||||
return START_NOT_STICKY
|
return START_NOT_STICKY
|
||||||
|
@ -38,6 +38,7 @@ import eu.kanade.tachiyomi.ui.browse.migration.advanced.design.PreMigrationContr
|
|||||||
import eu.kanade.tachiyomi.ui.browse.migration.search.SearchController
|
import eu.kanade.tachiyomi.ui.browse.migration.search.SearchController
|
||||||
import eu.kanade.tachiyomi.ui.manga.MangaController
|
import eu.kanade.tachiyomi.ui.manga.MangaController
|
||||||
import eu.kanade.tachiyomi.util.lang.launchUI
|
import eu.kanade.tachiyomi.util.lang.launchUI
|
||||||
|
import eu.kanade.tachiyomi.util.system.getParcelableCompat
|
||||||
import eu.kanade.tachiyomi.util.system.getResourceColor
|
import eu.kanade.tachiyomi.util.system.getResourceColor
|
||||||
import eu.kanade.tachiyomi.util.system.logcat
|
import eu.kanade.tachiyomi.util.system.logcat
|
||||||
import eu.kanade.tachiyomi.util.system.toast
|
import eu.kanade.tachiyomi.util.system.toast
|
||||||
@ -67,7 +68,7 @@ class MigrationListController(bundle: Bundle? = null) :
|
|||||||
|
|
||||||
private var adapter: MigrationProcessAdapter? = null
|
private var adapter: MigrationProcessAdapter? = null
|
||||||
|
|
||||||
val config: MigrationProcedureConfig? = args.getParcelable(CONFIG_EXTRA)
|
val config = args.getParcelableCompat<MigrationProcedureConfig>(CONFIG_EXTRA)
|
||||||
|
|
||||||
private val preferences: PreferencesHelper by injectLazy()
|
private val preferences: PreferencesHelper by injectLazy()
|
||||||
private val sourceManager: SourceManager by injectLazy()
|
private val sourceManager: SourceManager by injectLazy()
|
||||||
|
@ -23,6 +23,7 @@ import eu.kanade.tachiyomi.ui.browse.source.feed.SourceFeedController
|
|||||||
import eu.kanade.tachiyomi.ui.browse.source.globalsearch.GlobalSearchController
|
import eu.kanade.tachiyomi.ui.browse.source.globalsearch.GlobalSearchController
|
||||||
import eu.kanade.tachiyomi.ui.browse.source.latest.LatestUpdatesController
|
import eu.kanade.tachiyomi.ui.browse.source.latest.LatestUpdatesController
|
||||||
import eu.kanade.tachiyomi.ui.main.MainActivity
|
import eu.kanade.tachiyomi.ui.main.MainActivity
|
||||||
|
import eu.kanade.tachiyomi.util.system.getParcelableCompat
|
||||||
import exh.ui.smartsearch.SmartSearchController
|
import exh.ui.smartsearch.SmartSearchController
|
||||||
import kotlinx.parcelize.Parcelize
|
import kotlinx.parcelize.Parcelize
|
||||||
import uy.kohesive.injekt.injectLazy
|
import uy.kohesive.injekt.injectLazy
|
||||||
@ -32,7 +33,7 @@ class SourcesController(bundle: Bundle? = null) : SearchableComposeController<So
|
|||||||
private val preferences: PreferencesHelper by injectLazy()
|
private val preferences: PreferencesHelper by injectLazy()
|
||||||
|
|
||||||
// EXH -->
|
// EXH -->
|
||||||
private val smartSearchConfig: SmartSearchConfig? = args.getParcelable(SMART_SEARCH_CONFIG)
|
private val smartSearchConfig = args.getParcelableCompat<SmartSearchConfig>(SMART_SEARCH_CONFIG)
|
||||||
|
|
||||||
private val mode = if (smartSearchConfig == null) Mode.CATALOGUE else Mode.SMART_SEARCH
|
private val mode = if (smartSearchConfig == null) Mode.CATALOGUE else Mode.SMART_SEARCH
|
||||||
// EXH <--
|
// EXH <--
|
||||||
|
@ -52,6 +52,7 @@ import eu.kanade.tachiyomi.util.lang.launchUI
|
|||||||
import eu.kanade.tachiyomi.util.lang.withUIContext
|
import eu.kanade.tachiyomi.util.lang.withUIContext
|
||||||
import eu.kanade.tachiyomi.util.preference.asHotFlow
|
import eu.kanade.tachiyomi.util.preference.asHotFlow
|
||||||
import eu.kanade.tachiyomi.util.system.connectivityManager
|
import eu.kanade.tachiyomi.util.system.connectivityManager
|
||||||
|
import eu.kanade.tachiyomi.util.system.getParcelableCompat
|
||||||
import eu.kanade.tachiyomi.util.system.openInBrowser
|
import eu.kanade.tachiyomi.util.system.openInBrowser
|
||||||
import eu.kanade.tachiyomi.util.system.toast
|
import eu.kanade.tachiyomi.util.system.toast
|
||||||
import eu.kanade.tachiyomi.util.view.inflate
|
import eu.kanade.tachiyomi.util.view.inflate
|
||||||
@ -765,7 +766,7 @@ open class BrowseSourceController(bundle: Bundle) :
|
|||||||
MangaController(
|
MangaController(
|
||||||
item.manga.id,
|
item.manga.id,
|
||||||
true,
|
true,
|
||||||
args.getParcelable(MangaController.SMART_SEARCH_CONFIG_EXTRA),
|
args.getParcelableCompat(MangaController.SMART_SEARCH_CONFIG_EXTRA),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
return false
|
return false
|
||||||
|
@ -74,12 +74,12 @@ class SourceItem(val manga: Manga, private val displayMode: Preference<DisplayMo
|
|||||||
override fun equals(other: Any?): Boolean {
|
override fun equals(other: Any?): Boolean {
|
||||||
if (this === other) return true
|
if (this === other) return true
|
||||||
if (other is SourceItem) {
|
if (other is SourceItem) {
|
||||||
return manga.id!! == other.manga.id!!
|
return manga.id == other.manga.id
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun hashCode(): Int {
|
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)
|
.setNegativeButton(android.R.string.cancel, null)
|
||||||
.setNeutralButton(activity?.getString(R.string.action_show_manga)) { _, _ ->
|
.setNeutralButton(activity?.getString(R.string.action_show_manga)) { _, _ ->
|
||||||
dismissDialog()
|
dismissDialog()
|
||||||
router.pushController(MangaController(libraryManga.id!!))
|
router.pushController(MangaController(libraryManga.id))
|
||||||
}
|
}
|
||||||
.setCancelable(true)
|
.setCancelable(true)
|
||||||
.create()
|
.create()
|
||||||
|
@ -65,6 +65,7 @@ import eu.kanade.tachiyomi.ui.webview.WebViewActivity
|
|||||||
import eu.kanade.tachiyomi.util.lang.launchIO
|
import eu.kanade.tachiyomi.util.lang.launchIO
|
||||||
import eu.kanade.tachiyomi.util.lang.launchUI
|
import eu.kanade.tachiyomi.util.lang.launchUI
|
||||||
import eu.kanade.tachiyomi.util.lang.withUIContext
|
import eu.kanade.tachiyomi.util.lang.withUIContext
|
||||||
|
import eu.kanade.tachiyomi.util.system.getParcelableCompat
|
||||||
import eu.kanade.tachiyomi.util.system.logcat
|
import eu.kanade.tachiyomi.util.system.logcat
|
||||||
import eu.kanade.tachiyomi.util.system.toast
|
import eu.kanade.tachiyomi.util.system.toast
|
||||||
import eu.kanade.tachiyomi.widget.materialdialogs.QuadStateTextView
|
import eu.kanade.tachiyomi.widget.materialdialogs.QuadStateTextView
|
||||||
@ -122,7 +123,7 @@ class MangaController :
|
|||||||
get() = presenter.isFromSource
|
get() = presenter.isFromSource
|
||||||
|
|
||||||
// SY -->
|
// SY -->
|
||||||
val smartSearchConfig: SourcesController.SmartSearchConfig? = args.getParcelable(
|
val smartSearchConfig = args.getParcelableCompat<SourcesController.SmartSearchConfig>(
|
||||||
SMART_SEARCH_CONFIG_EXTRA,
|
SMART_SEARCH_CONFIG_EXTRA,
|
||||||
)
|
)
|
||||||
// SY <--
|
// SY <--
|
||||||
|
@ -8,6 +8,7 @@ import eu.kanade.domain.manga.model.Manga
|
|||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.ui.base.controller.DialogController
|
import eu.kanade.tachiyomi.ui.base.controller.DialogController
|
||||||
import eu.kanade.tachiyomi.util.chapter.ChapterSettingsHelper
|
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.util.system.toast
|
||||||
import eu.kanade.tachiyomi.widget.DialogCheckboxView
|
import eu.kanade.tachiyomi.widget.DialogCheckboxView
|
||||||
|
|
||||||
@ -27,7 +28,7 @@ class SetChapterSettingsDialog(bundle: Bundle? = null) : DialogController(bundle
|
|||||||
.setTitle(R.string.chapter_settings)
|
.setTitle(R.string.chapter_settings)
|
||||||
.setView(view)
|
.setView(view)
|
||||||
.setPositiveButton(android.R.string.ok) { _, _ ->
|
.setPositiveButton(android.R.string.ok) { _, _ ->
|
||||||
ChapterSettingsHelper.setGlobalSettings(args.getSerializable(MANGA_KEY)!! as Manga)
|
ChapterSettingsHelper.setGlobalSettings(args.getSerializableCompat(MANGA_KEY)!!)
|
||||||
if (view.isChecked()) {
|
if (view.isChecked()) {
|
||||||
ChapterSettingsHelper.updateAllMangasWithGlobalDefaults()
|
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.data.track.TrackManager
|
||||||
import eu.kanade.tachiyomi.databinding.TrackChaptersDialogBinding
|
import eu.kanade.tachiyomi.databinding.TrackChaptersDialogBinding
|
||||||
import eu.kanade.tachiyomi.ui.base.controller.DialogController
|
import eu.kanade.tachiyomi.ui.base.controller.DialogController
|
||||||
|
import eu.kanade.tachiyomi.util.system.getSerializableCompat
|
||||||
import uy.kohesive.injekt.Injekt
|
import uy.kohesive.injekt.Injekt
|
||||||
import uy.kohesive.injekt.api.get
|
import uy.kohesive.injekt.api.get
|
||||||
|
|
||||||
@ -31,7 +32,7 @@ class SetTrackChaptersDialog<T> : DialogController
|
|||||||
|
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
constructor(bundle: Bundle) : super(bundle) {
|
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())!!
|
val service = Injekt.get<TrackManager>().getService(track.sync_id.toLong())!!
|
||||||
item = TrackItem(track, service)
|
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.data.track.TrackManager
|
||||||
import eu.kanade.tachiyomi.databinding.TrackScoreDialogBinding
|
import eu.kanade.tachiyomi.databinding.TrackScoreDialogBinding
|
||||||
import eu.kanade.tachiyomi.ui.base.controller.DialogController
|
import eu.kanade.tachiyomi.ui.base.controller.DialogController
|
||||||
|
import eu.kanade.tachiyomi.util.system.getSerializableCompat
|
||||||
import uy.kohesive.injekt.Injekt
|
import uy.kohesive.injekt.Injekt
|
||||||
import uy.kohesive.injekt.api.get
|
import uy.kohesive.injekt.api.get
|
||||||
|
|
||||||
@ -31,7 +32,7 @@ class SetTrackScoreDialog<T> : DialogController
|
|||||||
|
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
constructor(bundle: Bundle) : super(bundle) {
|
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())!!
|
val service = Injekt.get<TrackManager>().getService(track.sync_id.toLong())!!
|
||||||
item = TrackItem(track, service)
|
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.database.models.Track
|
||||||
import eu.kanade.tachiyomi.data.track.TrackManager
|
import eu.kanade.tachiyomi.data.track.TrackManager
|
||||||
import eu.kanade.tachiyomi.ui.base.controller.DialogController
|
import eu.kanade.tachiyomi.ui.base.controller.DialogController
|
||||||
|
import eu.kanade.tachiyomi.util.system.getSerializableCompat
|
||||||
import uy.kohesive.injekt.Injekt
|
import uy.kohesive.injekt.Injekt
|
||||||
import uy.kohesive.injekt.api.get
|
import uy.kohesive.injekt.api.get
|
||||||
|
|
||||||
@ -29,7 +30,7 @@ class SetTrackStatusDialog<T> : DialogController
|
|||||||
|
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
constructor(bundle: Bundle) : super(bundle) {
|
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())!!
|
val service = Injekt.get<TrackManager>().getService(track.sync_id.toLong())!!
|
||||||
item = TrackItem(track, service)
|
item = TrackItem(track, service)
|
||||||
}
|
}
|
||||||
|
@ -108,7 +108,7 @@ abstract class PagerViewer(val activity: ReaderActivity) : BaseViewer {
|
|||||||
pagerListener,
|
pagerListener,
|
||||||
// SY <--
|
// SY <--
|
||||||
)
|
)
|
||||||
pager.tapListener = f@{ event ->
|
pager.tapListener = { event ->
|
||||||
val pos = PointF(event.rawX / pager.width, event.rawY / pager.height)
|
val pos = PointF(event.rawX / pager.width, event.rawY / pager.height)
|
||||||
val navigator = config.navigator
|
val navigator = config.navigator
|
||||||
|
|
||||||
|
@ -117,7 +117,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 pos = PointF(event.rawX / recycler.width, event.rawY / recycler.height)
|
||||||
val navigator = config.navigator
|
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.summaryRes
|
||||||
import eu.kanade.tachiyomi.util.preference.titleRes
|
import eu.kanade.tachiyomi.util.preference.titleRes
|
||||||
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.openInBrowser
|
import eu.kanade.tachiyomi.util.system.openInBrowser
|
||||||
import eu.kanade.tachiyomi.util.system.toast
|
import eu.kanade.tachiyomi.util.system.toast
|
||||||
import kotlinx.coroutines.flow.launchIn
|
import kotlinx.coroutines.flow.launchIn
|
||||||
@ -274,7 +275,7 @@ class SettingsBackupController : SettingsController() {
|
|||||||
|
|
||||||
override fun onCreateDialog(savedViewState: Bundle?): Dialog {
|
override fun onCreateDialog(savedViewState: Bundle?): Dialog {
|
||||||
val activity = activity!!
|
val activity = activity!!
|
||||||
val uri: Uri = args.getParcelable(KEY_URI)!!
|
val uri = args.getParcelableCompat<Uri>(KEY_URI)!!
|
||||||
|
|
||||||
return try {
|
return try {
|
||||||
val results = BackupFileValidator().validate(activity, uri)
|
val results = BackupFileValidator().validate(activity, uri)
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
@file:Suppress("NOTHING_TO_INLINE")
|
||||||
|
|
||||||
package eu.kanade.tachiyomi.util.preference
|
package eu.kanade.tachiyomi.util.preference
|
||||||
|
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
|
@ -4,7 +4,10 @@ import android.content.ClipData
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
|
import android.os.Build
|
||||||
|
import android.os.Bundle
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
|
import java.io.Serializable
|
||||||
|
|
||||||
fun Uri.toShareIntent(context: Context, type: String = "image/*", message: String? = null): Intent {
|
fun Uri.toShareIntent(context: Context, type: String = "image/*", message: String? = null): Intent {
|
||||||
val uri = this
|
val uri = this
|
||||||
@ -21,3 +24,39 @@ fun Uri.toShareIntent(context: Context, type: String = "image/*", message: Strin
|
|||||||
flags = Intent.FLAG_ACTIVITY_NEW_TASK
|
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
|
package eu.kanade.tachiyomi.util.system
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.res.Resources
|
import android.content.res.Resources
|
||||||
|
|
||||||
@ -20,6 +21,7 @@ object InternalResourceHelper {
|
|||||||
* @param type resource type of [resName] to get
|
* @param type resource type of [resName] to get
|
||||||
* @return 0 if not available
|
* @return 0 if not available
|
||||||
*/
|
*/
|
||||||
|
@SuppressLint("DiscouragedApi")
|
||||||
private fun getResourceId(resName: String, type: String): Int {
|
private fun getResourceId(resName: String, type: String): Int {
|
||||||
return Resources.getSystem().getIdentifier(resName, type, "android")
|
return Resources.getSystem().getIdentifier(resName, type, "android")
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,7 @@ import eu.kanade.tachiyomi.source.Source
|
|||||||
import eu.kanade.tachiyomi.source.SourceManager
|
import eu.kanade.tachiyomi.source.SourceManager
|
||||||
import eu.kanade.tachiyomi.source.online.HttpSource
|
import eu.kanade.tachiyomi.source.online.HttpSource
|
||||||
import eu.kanade.tachiyomi.util.lang.withUIContext
|
import eu.kanade.tachiyomi.util.lang.withUIContext
|
||||||
|
import eu.kanade.tachiyomi.util.system.getSerializableExtraCompat
|
||||||
import eu.kanade.tachiyomi.util.system.setDefaultSettings
|
import eu.kanade.tachiyomi.util.system.setDefaultSettings
|
||||||
import exh.log.xLogD
|
import exh.log.xLogD
|
||||||
import exh.log.xLogE
|
import exh.log.xLogE
|
||||||
@ -82,19 +83,18 @@ class BrowserActionActivity : AppCompatActivity() {
|
|||||||
(source as? HttpSource)?.headers?.toMultimap()?.mapValues {
|
(source as? HttpSource)?.headers?.toMultimap()?.mapValues {
|
||||||
it.value.joinToString(",")
|
it.value.joinToString(",")
|
||||||
} ?: emptyMap()
|
} ?: emptyMap()
|
||||||
) + (intent.getSerializableExtra(HEADERS_EXTRA) as? HashMap<String, String> ?: emptyMap())
|
) + (intent.getSerializableExtraCompat<HashMap<String, String>>(HEADERS_EXTRA) ?: emptyMap())
|
||||||
|
|
||||||
@Suppress("UNCHECKED_CAST")
|
@Suppress("UNCHECKED_CAST")
|
||||||
val cookies: HashMap<String, String>? =
|
val cookies = intent.getSerializableExtraCompat<HashMap<String, String>>(COOKIES_EXTRA)
|
||||||
intent.getSerializableExtra(COOKIES_EXTRA) as? HashMap<String, String>
|
|
||||||
val script: String? = intent.getStringExtra(SCRIPT_EXTRA)
|
val script: String? = intent.getStringExtra(SCRIPT_EXTRA)
|
||||||
val url: String? = intent.getStringExtra(URL_EXTRA)
|
val url: String? = intent.getStringExtra(URL_EXTRA)
|
||||||
val actionName = intent.getStringExtra(ACTION_NAME_EXTRA)
|
val actionName = intent.getStringExtra(ACTION_NAME_EXTRA)
|
||||||
|
|
||||||
@Suppress("NOT_NULL_ASSERTION_ON_CALLABLE_REFERENCE", "UNCHECKED_CAST")
|
@Suppress("NOT_NULL_ASSERTION_ON_CALLABLE_REFERENCE", "UNCHECKED_CAST")
|
||||||
val verifyComplete = if (source != null) {
|
val verifyComplete: ((String) -> Boolean)? = if (source != null) {
|
||||||
source::verifyComplete!!
|
source::verifyComplete!!
|
||||||
} else intent.getSerializableExtra(VERIFY_LAMBDA_EXTRA) as? (String) -> Boolean
|
} else intent.getSerializableExtraCompat(VERIFY_LAMBDA_EXTRA)
|
||||||
|
|
||||||
if (verifyComplete == null || url == null) {
|
if (verifyComplete == null || url == null) {
|
||||||
finish()
|
finish()
|
||||||
|
@ -13,6 +13,7 @@ import eu.kanade.tachiyomi.ui.base.controller.withFadeTransaction
|
|||||||
import eu.kanade.tachiyomi.ui.browse.source.SourcesController
|
import eu.kanade.tachiyomi.ui.browse.source.SourcesController
|
||||||
import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceController
|
import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceController
|
||||||
import eu.kanade.tachiyomi.ui.manga.MangaController
|
import eu.kanade.tachiyomi.ui.manga.MangaController
|
||||||
|
import eu.kanade.tachiyomi.util.system.getParcelableCompat
|
||||||
import eu.kanade.tachiyomi.util.system.toast
|
import eu.kanade.tachiyomi.util.system.toast
|
||||||
import kotlinx.coroutines.flow.launchIn
|
import kotlinx.coroutines.flow.launchIn
|
||||||
import kotlinx.coroutines.flow.onEach
|
import kotlinx.coroutines.flow.onEach
|
||||||
@ -22,7 +23,7 @@ class SmartSearchController(bundle: Bundle) : NucleusController<EhSmartSearchBin
|
|||||||
private val sourceManager: SourceManager by injectLazy()
|
private val sourceManager: SourceManager by injectLazy()
|
||||||
|
|
||||||
private val source = sourceManager.get(bundle.getLong(ARG_SOURCE_ID, -1)) as CatalogueSource
|
private val source = sourceManager.get(bundle.getLong(ARG_SOURCE_ID, -1)) as CatalogueSource
|
||||||
private val smartSearchConfig: SourcesController.SmartSearchConfig = bundle.getParcelable(ARG_SMART_SEARCH_CONFIG)!!
|
private val smartSearchConfig = bundle.getParcelableCompat<SourcesController.SmartSearchConfig>(ARG_SMART_SEARCH_CONFIG)!!
|
||||||
|
|
||||||
constructor(sourceId: Long, smartSearchConfig: SourcesController.SmartSearchConfig) : this(
|
constructor(sourceId: Long, smartSearchConfig: SourcesController.SmartSearchConfig) : this(
|
||||||
bundleOf(
|
bundleOf(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user