mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-30 22:07:57 +01:00 
			
		
		
		
	Implements delete chapter when set as read for issue #42
This commit is contained in:
		| @@ -190,6 +190,10 @@ class PreferencesHelper(private val context: Context) { | ||||
|         return prefs.getBoolean(getKey(R.string.pref_download_only_over_wifi_key), true) | ||||
|     } | ||||
|  | ||||
|     fun removeAfterMarkedAsRead(): Boolean { | ||||
|         return prefs.getBoolean(getKey(R.string.pref_remove_after_marked_as_read_key), false) | ||||
|     } | ||||
|  | ||||
|     fun libraryUpdateInterval(): Preference<Int> { | ||||
|         return rxPrefs.getInteger(getKey(R.string.pref_library_update_interval_key), 0) | ||||
|     } | ||||
|   | ||||
| @@ -103,7 +103,7 @@ class ChaptersPresenter : BasePresenter<ChaptersFragment>() { | ||||
|                         } | ||||
|                         start(CHAPTER_STATUS_CHANGES) | ||||
|                     } | ||||
|                     .subscribe{ chaptersSubject.onNext(it) }) | ||||
|                     .subscribe { chaptersSubject.onNext(it) }) | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @@ -191,6 +191,11 @@ class ChaptersPresenter : BasePresenter<ChaptersFragment>() { | ||||
|                 .doOnNext { chapter -> | ||||
|                     chapter.read = read | ||||
|                     if (!read) chapter.last_page_read = 0 | ||||
|  | ||||
|                     // Delete chapter when marked as read if desired by user. | ||||
|                     if (preferences.removeAfterMarkedAsRead() && read) { | ||||
|                         deleteChapter(chapter) | ||||
|                     } | ||||
|                 } | ||||
|                 .toList() | ||||
|                 .flatMap { chapters -> db.insertChapters(chapters).asRxObservable() } | ||||
|   | ||||
| @@ -202,9 +202,9 @@ class RecentChaptersFragment : BaseRxFragment<RecentChaptersPresenter>(), Flexib | ||||
|      * @param chapters selected chapter | ||||
|      * @return true | ||||
|      */ | ||||
|     fun onMarkAsRead(chapters: Observable<Chapter>): Boolean { | ||||
|     fun onMarkAsRead(chapters: Observable<Chapter>, manga : Manga): Boolean { | ||||
|         // Set marked as read | ||||
|         presenter.markChaptersRead(chapters, true) | ||||
|         presenter.markChaptersRead(chapters, manga, true) | ||||
|         return true | ||||
|     } | ||||
|  | ||||
| @@ -214,9 +214,9 @@ class RecentChaptersFragment : BaseRxFragment<RecentChaptersPresenter>(), Flexib | ||||
|      * @param chapters selected chapter | ||||
|      * @return true | ||||
|      */ | ||||
|     fun onMarkAsUnread(chapters: Observable<Chapter>): Boolean { | ||||
|     fun onMarkAsUnread(chapters: Observable<Chapter> , manga : Manga): Boolean { | ||||
|         // Set marked as unread | ||||
|         presenter.markChaptersRead(chapters, false) | ||||
|         presenter.markChaptersRead(chapters, manga, false) | ||||
|         return true | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -125,8 +125,8 @@ class RecentChaptersHolder(view: View, private val adapter: RecentChaptersAdapte | ||||
|                 when (menuItem.itemId) { | ||||
|                     R.id.action_download -> adapter.fragment.onDownload(chapterObservable, it.manga) | ||||
|                     R.id.action_delete -> adapter.fragment.onDelete(chapterObservable, it.manga) | ||||
|                     R.id.action_mark_as_read -> adapter.fragment.onMarkAsRead(chapterObservable); | ||||
|                     R.id.action_mark_as_unread -> adapter.fragment.onMarkAsUnread(chapterObservable); | ||||
|                     R.id.action_mark_as_read -> adapter.fragment.onMarkAsRead(chapterObservable, it.manga); | ||||
|                     R.id.action_mark_as_unread -> adapter.fragment.onMarkAsUnread(chapterObservable, it.manga); | ||||
|                 } | ||||
|                 false | ||||
|             } | ||||
|   | ||||
| @@ -7,6 +7,7 @@ import eu.kanade.tachiyomi.data.database.models.Manga | ||||
| import eu.kanade.tachiyomi.data.database.models.MangaChapter | ||||
| import eu.kanade.tachiyomi.data.download.DownloadManager | ||||
| import eu.kanade.tachiyomi.data.download.model.Download | ||||
| import eu.kanade.tachiyomi.data.preference.PreferencesHelper | ||||
| import eu.kanade.tachiyomi.data.source.SourceManager | ||||
| import eu.kanade.tachiyomi.event.DownloadChaptersEvent | ||||
| import eu.kanade.tachiyomi.event.ReaderEvent | ||||
| @@ -25,6 +26,11 @@ class RecentChaptersPresenter : BasePresenter<RecentChaptersFragment>() { | ||||
|      */ | ||||
|     @Inject lateinit var db: DatabaseHelper | ||||
|  | ||||
|     /** | ||||
|      * Used to get settings | ||||
|      */ | ||||
|     @Inject lateinit var preferences: PreferencesHelper | ||||
|  | ||||
|     /** | ||||
|      * Used to get information from download manager | ||||
|      */ | ||||
| @@ -291,15 +297,16 @@ class RecentChaptersPresenter : BasePresenter<RecentChaptersFragment>() { | ||||
|      * * | ||||
|      * @param read read status | ||||
|      */ | ||||
|     fun markChaptersRead(selectedChapters: Observable<Chapter>, read: Boolean) { | ||||
|         add(selectedChapters | ||||
|                 .subscribeOn(Schedulers.io()) | ||||
|                 .map { chapter -> | ||||
|     fun markChaptersRead(selectedChapters: Observable<Chapter>, manga: Manga, read: Boolean) { | ||||
|         add(selectedChapters.subscribeOn(Schedulers.io()) | ||||
|                 .doOnNext { chapter -> | ||||
|                     chapter.read = read | ||||
|                     if (!read) { | ||||
|                         chapter.last_page_read = 0 | ||||
|                     if (!read) chapter.last_page_read = 0 | ||||
|  | ||||
|                     // Delete chapter when marked as read if desired by user. | ||||
|                     if (preferences.removeAfterMarkedAsRead() && read) { | ||||
|                         deleteChapter(chapter,manga) | ||||
|                     } | ||||
|                     chapter | ||||
|                 } | ||||
|                 .toList() | ||||
|                 .flatMap { chapters -> db.insertChapters(chapters).asRxObservable() } | ||||
|   | ||||
| @@ -36,6 +36,8 @@ | ||||
|     <string name="pref_download_directory_key">pref_download_directory_key</string> | ||||
|     <string name="pref_download_slots_key">pref_download_slots_key</string> | ||||
|     <string name="pref_download_only_over_wifi_key">pref_download_only_over_wifi_key</string> | ||||
|     <string name="pref_remove_after_marked_as_read_key">pref_remove_after_marked_as_read_key</string> | ||||
|  | ||||
|  | ||||
|     <string name="pref_source_languages">pref_source_languages</string> | ||||
|  | ||||
|   | ||||
| @@ -134,6 +134,7 @@ | ||||
|     <string name="pref_download_directory">Downloads directory</string> | ||||
|     <string name="pref_download_slots">Simultaneous downloads</string> | ||||
|     <string name="pref_download_only_over_wifi">Only download over Wi-Fi</string> | ||||
|     <string name="pref_remove_after_marked_as_read">Remove when marked as read</string> | ||||
|     <string name="custom_dir">Custom directory</string> | ||||
|  | ||||
|       <!-- Sources section --> | ||||
|   | ||||
| @@ -11,6 +11,12 @@ | ||||
|         android:key="@string/pref_download_only_over_wifi_key" | ||||
|         android:defaultValue="true"/> | ||||
|  | ||||
|     <SwitchPreferenceCompat | ||||
|         android:title="@string/pref_remove_after_marked_as_read" | ||||
|         android:key="@string/pref_remove_after_marked_as_read_key" | ||||
|         android:defaultValue="false"/> | ||||
|  | ||||
|  | ||||
|     <eu.kanade.tachiyomi.widget.preference.IntListPreference | ||||
|         android:title="@string/pref_download_slots" | ||||
|         android:key="@string/pref_download_slots_key" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user