mirror of
https://github.com/Suwayomi/TachideskJUI.git
synced 2025-12-10 06:42:05 +01:00
Lint fixes
This commit is contained in:
@@ -72,7 +72,7 @@ subprojects {
|
||||
"ca/gosyer/jui/*/build",
|
||||
"**/generated/**",
|
||||
"ca/gosyer/jui/data/graphql",
|
||||
"ca/gosyer/jui/uicore/icons/juiassets",
|
||||
"ca/gosyer/jui/desktop/InjectAppComponent.kt"
|
||||
)
|
||||
}
|
||||
plugins.withType<com.android.build.gradle.BasePlugin> {
|
||||
|
||||
@@ -46,10 +46,6 @@ class SavedStateHandleStateFlow<T>(
|
||||
) : StateFlow<T> by stateFlow {
|
||||
override var value: T
|
||||
get() = stateFlow.value
|
||||
|
||||
/**
|
||||
* May have to be called on the main thread if there is a livedata with the same [key]
|
||||
*/
|
||||
set(value) = savedStateHandle.set(key, value)
|
||||
|
||||
fun asStateFlow() = stateFlow
|
||||
|
||||
@@ -83,8 +83,8 @@ class MangaScreenViewModel(
|
||||
private val _chapters = MutableStateFlow<ImmutableList<ChapterDownloadItem>>(persistentListOf())
|
||||
val chapters = _chapters.asStateFlow()
|
||||
|
||||
private val _selectedIds = MutableStateFlow<ImmutableList<Long>>(persistentListOf())
|
||||
val selectedItems = combine(chapters, _selectedIds) { chapters, selecteditems ->
|
||||
private val selectedIds = MutableStateFlow<ImmutableList<Long>>(persistentListOf())
|
||||
val selectedItems = combine(chapters, selectedIds) { chapters, selecteditems ->
|
||||
chapters.filter { it.isSelected(selecteditems) }.toImmutableList()
|
||||
}.stateIn(scope, SharingStarted.Eagerly, persistentListOf())
|
||||
|
||||
@@ -110,7 +110,7 @@ class MangaScreenViewModel(
|
||||
val categoriesExist = categories.map { it.isNotEmpty() }
|
||||
.stateIn(scope, SharingStarted.Eagerly, true)
|
||||
|
||||
val inActionMode = _selectedIds.map { it.isNotEmpty() }
|
||||
val inActionMode = selectedIds.map { it.isNotEmpty() }
|
||||
.stateIn(scope, SharingStarted.Eagerly, false)
|
||||
|
||||
private val chooseCategoriesFlow = MutableSharedFlow<Unit>()
|
||||
@@ -292,15 +292,15 @@ class MangaScreenViewModel(
|
||||
scope.launch {
|
||||
manga.value?.let {
|
||||
updateChapter.await(chapterIds, read = read, onError = { toast(it.message.orEmpty()) })
|
||||
_selectedIds.value = persistentListOf()
|
||||
selectedIds.value = persistentListOf()
|
||||
loadChapters()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun markRead(id: Long?) = setRead(listOfNotNull(id).ifEmpty { _selectedIds.value }, true)
|
||||
fun markRead(id: Long?) = setRead(listOfNotNull(id).ifEmpty { selectedIds.value }, true)
|
||||
|
||||
fun markUnread(id: Long?) = setRead(listOfNotNull(id).ifEmpty { _selectedIds.value }, false)
|
||||
fun markUnread(id: Long?) = setRead(listOfNotNull(id).ifEmpty { selectedIds.value }, false)
|
||||
|
||||
private fun setBookmarked(
|
||||
chapterIds: List<Long>,
|
||||
@@ -309,15 +309,15 @@ class MangaScreenViewModel(
|
||||
scope.launch {
|
||||
manga.value?.let {
|
||||
updateChapter.await(chapterIds, bookmarked = bookmark, onError = { toast(it.message.orEmpty()) })
|
||||
_selectedIds.value = persistentListOf()
|
||||
selectedIds.value = persistentListOf()
|
||||
loadChapters()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun bookmarkChapter(id: Long?) = setBookmarked(listOfNotNull(id).ifEmpty { _selectedIds.value }, true)
|
||||
fun bookmarkChapter(id: Long?) = setBookmarked(listOfNotNull(id).ifEmpty { selectedIds.value }, true)
|
||||
|
||||
fun unBookmarkChapter(id: Long?) = setBookmarked(listOfNotNull(id).ifEmpty { _selectedIds.value }, false)
|
||||
fun unBookmarkChapter(id: Long?) = setBookmarked(listOfNotNull(id).ifEmpty { selectedIds.value }, false)
|
||||
|
||||
fun markPreviousRead(index: Int) {
|
||||
scope.launch {
|
||||
@@ -326,7 +326,7 @@ class MangaScreenViewModel(
|
||||
.sortedBy { it.chapter.index }
|
||||
.subList(0, index).map { it.chapter.id } // todo test
|
||||
updateChapter.await(chapters, read = true, onError = { toast(it.message.orEmpty()) })
|
||||
_selectedIds.value = persistentListOf()
|
||||
selectedIds.value = persistentListOf()
|
||||
loadChapters()
|
||||
}
|
||||
}
|
||||
@@ -339,12 +339,12 @@ class MangaScreenViewModel(
|
||||
fun deleteDownload(id: Long?) {
|
||||
scope.launch {
|
||||
if (id == null) {
|
||||
val chapterIds = _selectedIds.value
|
||||
val chapterIds = selectedIds.value
|
||||
deleteChapterDownload.await(chapterIds, onError = { toast(it.message.orEmpty()) })
|
||||
selectedItems.value.forEach {
|
||||
it.setNotDownloaded()
|
||||
}
|
||||
_selectedIds.value = persistentListOf()
|
||||
selectedIds.value = persistentListOf()
|
||||
} else {
|
||||
chapters.value.find { it.chapter.id == id }
|
||||
?.deleteDownload(deleteChapterDownload)
|
||||
@@ -361,38 +361,38 @@ class MangaScreenViewModel(
|
||||
|
||||
fun selectAll() {
|
||||
scope.launch {
|
||||
_selectedIds.value = chapters.value.map { it.chapter.id }.toImmutableList()
|
||||
selectedIds.value = chapters.value.map { it.chapter.id }.toImmutableList()
|
||||
}
|
||||
}
|
||||
|
||||
fun invertSelection() {
|
||||
scope.launch {
|
||||
_selectedIds.value = chapters.value.map { it.chapter.id }.minus(_selectedIds.value).toImmutableList()
|
||||
selectedIds.value = chapters.value.map { it.chapter.id }.minus(selectedIds.value).toImmutableList()
|
||||
}
|
||||
}
|
||||
|
||||
fun selectChapter(id: Long) {
|
||||
scope.launch {
|
||||
_selectedIds.value = _selectedIds.value.plus(id).toImmutableList()
|
||||
selectedIds.value = selectedIds.value.plus(id).toImmutableList()
|
||||
}
|
||||
}
|
||||
|
||||
fun unselectChapter(id: Long) {
|
||||
scope.launch {
|
||||
_selectedIds.value = _selectedIds.value.minus(id).toImmutableList()
|
||||
selectedIds.value = selectedIds.value.minus(id).toImmutableList()
|
||||
}
|
||||
}
|
||||
|
||||
fun clearSelection() {
|
||||
scope.launch {
|
||||
_selectedIds.value = persistentListOf()
|
||||
selectedIds.value = persistentListOf()
|
||||
}
|
||||
}
|
||||
|
||||
fun downloadChapters() {
|
||||
scope.launch {
|
||||
batchChapterDownload.await(_selectedIds.value)
|
||||
_selectedIds.value = persistentListOf()
|
||||
batchChapterDownload.await(selectedIds.value)
|
||||
selectedIds.value = persistentListOf()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -84,7 +84,7 @@ class ReaderMenuViewModel(
|
||||
@Assisted private val params: Params,
|
||||
) : ViewModel(contextWrapper) {
|
||||
override val scope = MainScope()
|
||||
private val _manga = MutableStateFlow<Manga?>(null)
|
||||
private val manga = MutableStateFlow<Manga?>(null)
|
||||
private val viewerChapters = MutableStateFlow(ViewerChapters(null, null, null))
|
||||
val previousChapter = viewerChapters.map { it.prevChapter }.stateIn(scope, SharingStarted.Eagerly, null)
|
||||
val chapter = viewerChapters.map { it.currChapter }.stateIn(scope, SharingStarted.Eagerly, null)
|
||||
@@ -133,7 +133,7 @@ class ReaderMenuViewModel(
|
||||
.getAsFlow()
|
||||
.map { it.toImmutableList() }
|
||||
.stateIn(scope, SharingStarted.Eagerly, persistentListOf())
|
||||
val readerMode = combine(readerPreferences.mode().getAsFlow(), _manga) { mode, manga ->
|
||||
val readerMode = combine(readerPreferences.mode().getAsFlow(), manga) { mode, manga ->
|
||||
val mangaMode = manga?.meta?.juiReaderMode?.decodeURLQueryComponent()
|
||||
if (
|
||||
mangaMode != null &&
|
||||
@@ -258,7 +258,7 @@ class ReaderMenuViewModel(
|
||||
|
||||
fun setMangaReaderMode(mode: String) {
|
||||
scope.launchDefault {
|
||||
_manga.value?.let {
|
||||
manga.value?.let {
|
||||
updateMangaMeta.await(it, mode, onError = { toast(it.message.orEmpty()) })
|
||||
}
|
||||
initManga(params.mangaId)
|
||||
@@ -301,7 +301,7 @@ class ReaderMenuViewModel(
|
||||
getManga.asFlow(mangaId)
|
||||
.take(1)
|
||||
.onEach {
|
||||
_manga.value = it
|
||||
manga.value = it
|
||||
}
|
||||
.catch {
|
||||
_state.value = ReaderChapter.State.Error(it)
|
||||
|
||||
@@ -107,8 +107,8 @@ class SettingsBackupScreen : Screen {
|
||||
SettingsBackupScreenContent(
|
||||
restoreStatus = vm.restoreStatus.collectAsState().value,
|
||||
creatingStatus = vm.creatingStatus.collectAsState().value,
|
||||
missingSourceFlowHolder = vm.missingSourceFlowHolder,
|
||||
createFlowHolder = vm.createFlowHolder,
|
||||
missingSourceFlowHolder = vm.missingSourceFlow,
|
||||
createFlowHolder = vm.createFlow,
|
||||
restoreFile = vm::restoreFile,
|
||||
restoreBackup = vm::restoreBackup,
|
||||
stopRestore = vm::stopRestore,
|
||||
@@ -129,12 +129,12 @@ class SettingsBackupViewModel(
|
||||
val restoreStatus = _restoreStatus.asStateFlow()
|
||||
|
||||
private val _missingSourceFlow = MutableSharedFlow<Pair<Path, ImmutableList<String>>>()
|
||||
val missingSourceFlowHolder = StableHolder(_missingSourceFlow.asSharedFlow())
|
||||
val missingSourceFlow = StableHolder(_missingSourceFlow.asSharedFlow())
|
||||
|
||||
private val _creatingStatus = MutableStateFlow<Status>(Status.Nothing)
|
||||
val creatingStatus = _creatingStatus.asStateFlow()
|
||||
private val _createFlow = MutableSharedFlow<String>()
|
||||
val createFlowHolder = StableHolder(_createFlow.asSharedFlow())
|
||||
val createFlow = StableHolder(_createFlow.asSharedFlow())
|
||||
|
||||
fun restoreFile(source: Source) {
|
||||
scope.launch {
|
||||
|
||||
@@ -76,13 +76,13 @@ class SourceScreenViewModel(
|
||||
private val _isLatest by savedStateHandle.getStateFlow { false }
|
||||
val isLatest = _isLatest.asStateFlow()
|
||||
|
||||
private val _usingFilters by savedStateHandle.getStateFlow { false }
|
||||
private val usingFilters by savedStateHandle.getStateFlow { false }
|
||||
private val filters = MutableStateFlow<List<SourceFilter>?>(null)
|
||||
|
||||
private val _sourceSearchQuery by savedStateHandle.getStateFlow<String?> { initialQuery }
|
||||
private val _sourceSearchQuery by savedStateHandle.getStateFlow { initialQuery }
|
||||
val sourceSearchQuery = _sourceSearchQuery.asStateFlow()
|
||||
|
||||
private val _query = MutableStateFlow(sourceSearchQuery.value)
|
||||
private val query = MutableStateFlow(sourceSearchQuery.value)
|
||||
|
||||
private val pager = MutableStateFlow(getPager())
|
||||
|
||||
@@ -104,19 +104,19 @@ class SourceScreenViewModel(
|
||||
fun setMode(toLatest: Boolean) {
|
||||
if (isLatest.value != toLatest) {
|
||||
_isLatest.value = toLatest
|
||||
_query.value = null
|
||||
query.value = null
|
||||
updatePager()
|
||||
}
|
||||
}
|
||||
|
||||
private fun getPager(): SourcePager {
|
||||
val fetcher: suspend (page: Int) -> MangaPage? = when {
|
||||
_query.value != null || _usingFilters.value -> {
|
||||
query.value != null || usingFilters.value -> {
|
||||
{ page ->
|
||||
getSearchManga.await(
|
||||
sourceId = source.id,
|
||||
page = page,
|
||||
searchTerm = _query.value,
|
||||
searchTerm = query.value,
|
||||
filters = filters.value,
|
||||
onError = { toast(it.message.orEmpty()) },
|
||||
)
|
||||
@@ -154,12 +154,12 @@ class SourceScreenViewModel(
|
||||
}
|
||||
|
||||
fun startSearch(query: String?) {
|
||||
_query.value = query
|
||||
this.query.value = query
|
||||
updatePager()
|
||||
}
|
||||
|
||||
fun setUsingFilters(usingFilters: Boolean) {
|
||||
_usingFilters.value = usingFilters
|
||||
this.usingFilters.value = usingFilters
|
||||
}
|
||||
|
||||
fun search(query: String) {
|
||||
|
||||
@@ -64,8 +64,8 @@ class UpdatesScreenViewModel(
|
||||
}.toImmutableList()
|
||||
}.stateIn(scope, SharingStarted.Eagerly, persistentListOf())
|
||||
|
||||
private val _selectedIds = MutableStateFlow<ImmutableList<Long>>(persistentListOf())
|
||||
val selectedItems = combine(updates, _selectedIds) { updates, selectedItems ->
|
||||
private val selectedIds = MutableStateFlow<ImmutableList<Long>>(persistentListOf())
|
||||
val selectedItems = combine(updates, selectedIds) { updates, selectedItems ->
|
||||
updates.asSequence()
|
||||
.filterIsInstance<UpdatesUI.Item>()
|
||||
.filter { it.chapterDownloadItem.isSelected(selectedItems) }
|
||||
@@ -73,7 +73,7 @@ class UpdatesScreenViewModel(
|
||||
.toImmutableList()
|
||||
}.stateIn(scope, SharingStarted.Eagerly, persistentListOf())
|
||||
|
||||
val inActionMode = _selectedIds.map { it.isNotEmpty() }
|
||||
val inActionMode = selectedIds.map { it.isNotEmpty() }
|
||||
.stateIn(scope, SharingStarted.Eagerly, false)
|
||||
|
||||
init {
|
||||
@@ -119,13 +119,13 @@ class UpdatesScreenViewModel(
|
||||
) {
|
||||
scope.launch {
|
||||
updateChapter.await(chapterIds, read = read, onError = { toast(it.message.orEmpty()) })
|
||||
_selectedIds.value = persistentListOf()
|
||||
selectedIds.value = persistentListOf()
|
||||
}
|
||||
}
|
||||
|
||||
fun markRead(id: Long?) = setRead(listOfNotNull(id).ifEmpty { _selectedIds.value }, true)
|
||||
fun markRead(id: Long?) = setRead(listOfNotNull(id).ifEmpty { selectedIds.value }, true)
|
||||
|
||||
fun markUnread(id: Long?) = setRead(listOfNotNull(id).ifEmpty { _selectedIds.value }, false)
|
||||
fun markUnread(id: Long?) = setRead(listOfNotNull(id).ifEmpty { selectedIds.value }, false)
|
||||
|
||||
private fun setBookmarked(
|
||||
chapterIds: List<Long>,
|
||||
@@ -133,20 +133,20 @@ class UpdatesScreenViewModel(
|
||||
) {
|
||||
scope.launch {
|
||||
updateChapter.await(chapterIds, bookmarked = bookmark, onError = { toast(it.message.orEmpty()) })
|
||||
_selectedIds.value = persistentListOf()
|
||||
selectedIds.value = persistentListOf()
|
||||
}
|
||||
}
|
||||
|
||||
fun bookmarkChapter(id: Long?) = setBookmarked(listOfNotNull(id).ifEmpty { _selectedIds.value }, true)
|
||||
fun bookmarkChapter(id: Long?) = setBookmarked(listOfNotNull(id).ifEmpty { selectedIds.value }, true)
|
||||
|
||||
fun unBookmarkChapter(id: Long?) = setBookmarked(listOfNotNull(id).ifEmpty { _selectedIds.value }, false)
|
||||
fun unBookmarkChapter(id: Long?) = setBookmarked(listOfNotNull(id).ifEmpty { selectedIds.value }, false)
|
||||
|
||||
fun downloadChapter(chapter: Chapter?) {
|
||||
scope.launch {
|
||||
if (chapter == null) {
|
||||
val selectedIds = _selectedIds.value
|
||||
val selectedIds = selectedIds.value
|
||||
batchChapterDownload.await(selectedIds, onError = { toast(it.message.orEmpty()) })
|
||||
_selectedIds.value = persistentListOf()
|
||||
this@UpdatesScreenViewModel.selectedIds.value = persistentListOf()
|
||||
return@launch
|
||||
}
|
||||
queueChapterDownload.await(chapter.id, onError = { toast(it.message.orEmpty()) })
|
||||
@@ -156,12 +156,12 @@ class UpdatesScreenViewModel(
|
||||
fun deleteDownloadedChapter(chapter: Chapter?) {
|
||||
scope.launchDefault {
|
||||
if (chapter == null) {
|
||||
val selectedIds = _selectedIds.value
|
||||
val selectedIds = selectedIds.value
|
||||
deleteChapterDownload.await(selectedIds, onError = { toast(it.message.orEmpty()) })
|
||||
selectedItems.value.forEach {
|
||||
it.setNotDownloaded()
|
||||
}
|
||||
_selectedIds.value = persistentListOf()
|
||||
this@UpdatesScreenViewModel.selectedIds.value = persistentListOf()
|
||||
return@launchDefault
|
||||
}
|
||||
updates.value
|
||||
@@ -190,7 +190,7 @@ class UpdatesScreenViewModel(
|
||||
|
||||
fun selectAll() {
|
||||
scope.launchDefault {
|
||||
_selectedIds.value = updates.value.filterIsInstance<UpdatesUI.Item>()
|
||||
selectedIds.value = updates.value.filterIsInstance<UpdatesUI.Item>()
|
||||
.map { it.chapterDownloadItem.chapter.id }
|
||||
.toImmutableList()
|
||||
}
|
||||
@@ -198,28 +198,28 @@ class UpdatesScreenViewModel(
|
||||
|
||||
fun invertSelection() {
|
||||
scope.launchDefault {
|
||||
_selectedIds.value = updates.value.filterIsInstance<UpdatesUI.Item>()
|
||||
selectedIds.value = updates.value.filterIsInstance<UpdatesUI.Item>()
|
||||
.map { it.chapterDownloadItem.chapter.id }
|
||||
.minus(_selectedIds.value)
|
||||
.minus(selectedIds.value)
|
||||
.toImmutableList()
|
||||
}
|
||||
}
|
||||
|
||||
fun selectChapter(id: Long) {
|
||||
scope.launchDefault {
|
||||
_selectedIds.value = _selectedIds.value.plus(id).toImmutableList()
|
||||
selectedIds.value = selectedIds.value.plus(id).toImmutableList()
|
||||
}
|
||||
}
|
||||
|
||||
fun unselectChapter(id: Long) {
|
||||
scope.launchDefault {
|
||||
_selectedIds.value = _selectedIds.value.minus(id).toImmutableList()
|
||||
selectedIds.value = selectedIds.value.minus(id).toImmutableList()
|
||||
}
|
||||
}
|
||||
|
||||
fun clearSelection() {
|
||||
scope.launchDefault {
|
||||
_selectedIds.value = persistentListOf()
|
||||
selectedIds.value = persistentListOf()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user