Эх сурвалжийг харах

Add ability to reset chapter flags to defaults

Closes #10063
arkon 1 жил өмнө
parent
commit
118d3b7fcc

+ 2 - 2
app/src/main/java/eu/kanade/domain/manga/interactor/SetMangaViewerFlags.kt

@@ -9,7 +9,7 @@ class SetMangaViewerFlags(
     private val mangaRepository: MangaRepository,
 ) {
 
-    suspend fun awaitSetMangaReadingMode(id: Long, flag: Long) {
+    suspend fun awaitSetReadingMode(id: Long, flag: Long) {
         val manga = mangaRepository.getMangaById(id)
         mangaRepository.update(
             MangaUpdate(
@@ -19,7 +19,7 @@ class SetMangaViewerFlags(
         )
     }
 
-    suspend fun awaitSetOrientationType(id: Long, flag: Long) {
+    suspend fun awaitSetOrientation(id: Long, flag: Long) {
         val manga = mangaRepository.getMangaById(id)
         mangaRepository.update(
             MangaUpdate(

+ 8 - 0
app/src/main/java/eu/kanade/presentation/manga/ChapterSettingsDialog.kt

@@ -40,6 +40,7 @@ fun ChapterSettingsDialog(
     onSortModeChanged: (Long) -> Unit,
     onDisplayModeChanged: (Long) -> Unit,
     onSetAsDefault: (applyToExistingManga: Boolean) -> Unit,
+    onResetToDefault: () -> Unit,
 ) {
     var showSetAsDefaultDialog by rememberSaveable { mutableStateOf(false) }
     if (showSetAsDefaultDialog) {
@@ -64,6 +65,13 @@ fun ChapterSettingsDialog(
                     closeMenu()
                 },
             )
+            DropdownMenuItem(
+                text = { Text(stringResource(R.string.action_reset)) },
+                onClick = {
+                    onResetToDefault()
+                    closeMenu()
+                },
+            )
         },
     ) { page ->
         Column(

+ 2 - 2
app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt

@@ -59,7 +59,7 @@ import okhttp3.Headers
 import tachiyomi.core.util.lang.launchNonCancellable
 import tachiyomi.core.util.lang.withUIContext
 import tachiyomi.core.util.system.logcat
-import tachiyomi.domain.manga.repository.MangaRepository
+import tachiyomi.domain.manga.interactor.ResetViewerFlags
 import tachiyomi.presentation.core.util.collectAsState
 import uy.kohesive.injekt.Injekt
 import uy.kohesive.injekt.api.get
@@ -309,7 +309,7 @@ object SettingsAdvancedScreen : SearchableSettings {
                     subtitle = stringResource(R.string.pref_reset_viewer_flags_summary),
                     onClick = {
                         scope.launchNonCancellable {
-                            val success = Injekt.get<MangaRepository>().resetViewerFlags()
+                            val success = Injekt.get<ResetViewerFlags>().await()
                             withUIContext {
                                 val message = if (success) {
                                     R.string.pref_reset_viewer_flags_success

+ 1 - 0
app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt

@@ -172,6 +172,7 @@ class MangaScreen(
                 onSortModeChanged = screenModel::setSorting,
                 onDisplayModeChanged = screenModel::setDisplayMode,
                 onSetAsDefault = screenModel::setCurrentSettingsAsDefault,
+                onResetToDefault = screenModel::resetToDefaultSettings,
             )
             MangaScreenModel.Dialog.TrackSheet -> {
                 NavigatorAdaptiveSheet(

+ 7 - 0
app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt

@@ -834,6 +834,13 @@ class MangaScreenModel(
         }
     }
 
+    fun resetToDefaultSettings() {
+        val manga = successState?.manga ?: return
+        screenModelScope.launchNonCancellable {
+            setMangaDefaultChapterFlags.await(manga)
+        }
+    }
+
     fun toggleSelection(
         item: ChapterItem,
         selected: Boolean,

+ 2 - 2
app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt

@@ -630,7 +630,7 @@ class ReaderViewModel @JvmOverloads constructor(
     fun setMangaReadingMode(readingModeType: ReadingModeType) {
         val manga = manga ?: return
         runBlocking(Dispatchers.IO) {
-            setMangaViewerFlags.awaitSetMangaReadingMode(manga.id, readingModeType.flagValue.toLong())
+            setMangaViewerFlags.awaitSetReadingMode(manga.id, readingModeType.flagValue.toLong())
             val currChapters = state.value.viewerChapters
             if (currChapters != null) {
                 // Save current page
@@ -666,7 +666,7 @@ class ReaderViewModel @JvmOverloads constructor(
     fun setMangaOrientationType(rotationType: OrientationType) {
         val manga = manga ?: return
         viewModelScope.launchIO {
-            setMangaViewerFlags.awaitSetOrientationType(manga.id, rotationType.flagValue.toLong())
+            setMangaViewerFlags.awaitSetOrientation(manga.id, rotationType.flagValue.toLong())
             val currChapters = state.value.viewerChapters
             if (currChapters != null) {
                 // Save current page

+ 4 - 2
data/src/main/sqldelight/tachiyomi/data/mangas.sq

@@ -57,7 +57,8 @@ WHERE _id = :id;
 getMangaByUrlAndSource:
 SELECT *
 FROM mangas
-WHERE url = :url AND source = :source
+WHERE url = :url
+AND source = :source
 LIMIT 1;
 
 getFavorites:
@@ -107,7 +108,8 @@ GROUP BY source;
 
 deleteMangasNotInLibraryBySourceIds:
 DELETE FROM mangas
-WHERE favorite = 0 AND source IN :sourceIds;
+WHERE favorite = 0
+AND source IN :sourceIds;
 
 insert:
 INSERT INTO mangas(source, url, artist, author, description, genre, title, status, thumbnail_url, favorite, last_update, next_update, initialized, viewer, chapter_flags, cover_last_modified, date_added, update_strategy, calculate_interval, last_modified_at)