mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 14:27:57 +01:00 
			
		
		
		
	Can now choose to automatically remove chapter after reading (or previous). Fix #42
This commit is contained in:
		| @@ -190,6 +190,14 @@ class PreferencesHelper(private val context: Context) { | ||||
|         return prefs.getBoolean(getKey(R.string.pref_download_only_over_wifi_key), true) | ||||
|     } | ||||
|  | ||||
|     fun removeAfterRead(): Boolean { | ||||
|         return prefs.getBoolean(getKey(R.string.pref_remove_after_read_key), false) | ||||
|     } | ||||
|  | ||||
|     fun removeAfterReadPrevious(): Boolean { | ||||
|         return prefs.getBoolean(getKey(R.string.pref_remove_after_read_previous_key), false) | ||||
|     } | ||||
|  | ||||
|     fun removeAfterMarkedAsRead(): Boolean { | ||||
|         return prefs.getBoolean(getKey(R.string.pref_remove_after_marked_as_read_key), false) | ||||
|     } | ||||
|   | ||||
| @@ -252,6 +252,7 @@ class ReaderActivity : BaseRxActivity<ReaderPresenter>() { | ||||
|         nextChapterBtn?.isVisible = presenter.hasNextChapter() | ||||
|     } | ||||
|  | ||||
|  | ||||
|     private fun getOrCreateViewer(manga: Manga): BaseReader { | ||||
|         val mangaViewer = if (manga.viewer == 0) preferences.defaultViewer else manga.viewer | ||||
|  | ||||
|   | ||||
| @@ -85,7 +85,7 @@ class ReaderPresenter : BasePresenter<ReaderActivity>() { | ||||
|                 { view, pair -> view.onAdjacentChapters(pair.first, pair.second) }) | ||||
|  | ||||
|         startable(PRELOAD_NEXT_CHAPTER, { getPreloadNextChapterObservable() }, | ||||
|                 {  }, | ||||
|                 { }, | ||||
|                 { error -> Timber.e("Error preloading chapter") }) | ||||
|  | ||||
|  | ||||
| @@ -335,10 +335,32 @@ class ReaderPresenter : BasePresenter<ReaderActivity>() { | ||||
|         // Save current progress of the chapter. Mark as read if the chapter is finished | ||||
|         if (activePage.isLastPage) { | ||||
|             chapter.read = true | ||||
|  | ||||
|             // Check if remove after read is selected by user | ||||
|             if (prefs.removeAfterRead()) { | ||||
|                 if (prefs.removeAfterReadPrevious() ) { | ||||
|                     if (previousChapter != null) { | ||||
|                         deleteChapter(previousChapter!!, manga) | ||||
|                     } | ||||
|                 } else { | ||||
|                     deleteChapter(chapter, manga) | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         db.insertChapter(chapter).asRxObservable().subscribe() | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Delete selected chapter | ||||
|      * @param chapter chapter that is selected | ||||
|      * * | ||||
|      * @param manga manga that belongs to chapter | ||||
|      */ | ||||
|     fun deleteChapter(chapter: Chapter, manga: Manga) { | ||||
|         val source = sourceManager.get(manga.source)!! | ||||
|         downloadManager.deleteChapter(source, manga, chapter) | ||||
|     } | ||||
|  | ||||
|     // If the current chapter has been read, we check with this one | ||||
|     // If not, we check if the previous chapter has been read | ||||
|     // We know the chapter we have to check, but we don't know yet if an update is required. | ||||
| @@ -417,5 +439,4 @@ class ReaderPresenter : BasePresenter<ReaderActivity>() { | ||||
|         manga.viewer = viewer | ||||
|         db.insertManga(manga).executeAsBlocking() | ||||
|     } | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -20,7 +20,6 @@ import java.io.File | ||||
| class SettingsDownloadsFragment : SettingsNestedFragment() { | ||||
|  | ||||
|     val downloadDirPref by lazy { findPreference(getString(R.string.pref_download_directory_key)) } | ||||
|  | ||||
|     companion object { | ||||
|  | ||||
|         val DOWNLOAD_DIR_CODE = 103 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user