From a55ff5ce5a5680c3b7a92971ba0a54d84fda5e08 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Tue, 28 Jun 2022 12:23:27 +0300 Subject: [PATCH] Option to disable reading progress indicators --- .../kotatsu/core/prefs/AppSettings.kt | 6 ++- .../ui/list/FavouritesListViewModel.kt | 9 +++- .../history/ui/HistoryListViewModel.kt | 13 +++-- app/src/main/res/values/strings.xml | 5 ++ app/src/main/res/xml/pref_history.xml | 49 ++++++++++++------- 5 files changed, 55 insertions(+), 27 deletions(-) diff --git a/app/src/main/java/org/koitharu/kotatsu/core/prefs/AppSettings.kt b/app/src/main/java/org/koitharu/kotatsu/core/prefs/AppSettings.kt index 5dd49a44b..2c75acacb 100644 --- a/app/src/main/java/org/koitharu/kotatsu/core/prefs/AppSettings.kt +++ b/app/src/main/java/org/koitharu/kotatsu/core/prefs/AppSettings.kt @@ -104,10 +104,13 @@ class AppSettings(context: Context) { val isReaderModeDetectionEnabled: Boolean get() = prefs.getBoolean(KEY_READER_MODE_DETECT, true) - var historyGrouping: Boolean + var isHistoryGroupingEnabled: Boolean get() = prefs.getBoolean(KEY_HISTORY_GROUPING, true) set(value) = prefs.edit { putBoolean(KEY_HISTORY_GROUPING, value) } + val isReadingIndicatorsEnabled: Boolean + get() = prefs.getBoolean(KEY_READING_INDICATORS, true) + val isHistoryExcludeNsfw: Boolean get() = prefs.getBoolean(KEY_HISTORY_EXCLUDE_NSFW, false) @@ -303,6 +306,7 @@ class AppSettings(context: Context) { const val KEY_BACKUP = "backup" const val KEY_RESTORE = "restore" const val KEY_HISTORY_GROUPING = "history_grouping" + const val KEY_READING_INDICATORS = "reading_indicators" const val KEY_REVERSE_CHAPTERS = "reverse_chapters" const val KEY_HISTORY_EXCLUDE_NSFW = "history_exclude_nsfw" const val KEY_PAGES_NUMBERS = "pages_numbers" diff --git a/app/src/main/java/org/koitharu/kotatsu/favourites/ui/list/FavouritesListViewModel.kt b/app/src/main/java/org/koitharu/kotatsu/favourites/ui/list/FavouritesListViewModel.kt index 6942925c0..0c8b87c2a 100644 --- a/app/src/main/java/org/koitharu/kotatsu/favourites/ui/list/FavouritesListViewModel.kt +++ b/app/src/main/java/org/koitharu/kotatsu/favourites/ui/list/FavouritesListViewModel.kt @@ -12,6 +12,7 @@ import org.koitharu.kotatsu.core.prefs.AppSettings import org.koitharu.kotatsu.favourites.domain.FavouritesRepository import org.koitharu.kotatsu.favourites.ui.list.FavouritesListFragment.Companion.NO_ID import org.koitharu.kotatsu.history.domain.HistoryRepository +import org.koitharu.kotatsu.history.domain.PROGRESS_NONE import org.koitharu.kotatsu.list.domain.ListExtraProvider import org.koitharu.kotatsu.list.ui.MangaListViewModel import org.koitharu.kotatsu.list.ui.model.EmptyState @@ -27,7 +28,7 @@ class FavouritesListViewModel( private val repository: FavouritesRepository, private val trackingRepository: TrackingRepository, private val historyRepository: HistoryRepository, - settings: AppSettings, + private val settings: AppSettings, ) : MangaListViewModel(settings), ListExtraProvider { var sortOrder: LiveData = if (categoryId == NO_ID) { @@ -96,6 +97,10 @@ class FavouritesListViewModel( } override suspend fun getProgress(mangaId: Long): Float { - return historyRepository.getProgress(mangaId) + return if (settings.isReadingIndicatorsEnabled) { + historyRepository.getProgress(mangaId) + } else { + PROGRESS_NONE + } } } \ No newline at end of file diff --git a/app/src/main/java/org/koitharu/kotatsu/history/ui/HistoryListViewModel.kt b/app/src/main/java/org/koitharu/kotatsu/history/ui/HistoryListViewModel.kt index 231c89817..5af2747af 100644 --- a/app/src/main/java/org/koitharu/kotatsu/history/ui/HistoryListViewModel.kt +++ b/app/src/main/java/org/koitharu/kotatsu/history/ui/HistoryListViewModel.kt @@ -17,6 +17,7 @@ import org.koitharu.kotatsu.core.prefs.observeAsFlow import org.koitharu.kotatsu.core.ui.DateTimeAgo import org.koitharu.kotatsu.history.domain.HistoryRepository import org.koitharu.kotatsu.history.domain.MangaWithHistory +import org.koitharu.kotatsu.history.domain.PROGRESS_NONE import org.koitharu.kotatsu.list.ui.MangaListViewModel import org.koitharu.kotatsu.list.ui.model.* import org.koitharu.kotatsu.tracker.domain.TrackingRepository @@ -37,7 +38,7 @@ class HistoryListViewModel( val isGroupingEnabled = MutableLiveData() val onItemsRemoved = SingleLiveEvent() - private val historyGrouping = settings.observeAsFlow(AppSettings.KEY_HISTORY_GROUPING) { historyGrouping } + private val historyGrouping = settings.observeAsFlow(AppSettings.KEY_HISTORY_GROUPING) { isHistoryGroupingEnabled } .onEach { isGroupingEnabled.postValue(it) } override val content = combine( @@ -89,7 +90,7 @@ class HistoryListViewModel( } fun setGrouping(isGroupingEnabled: Boolean) { - settings.historyGrouping = isGroupingEnabled + settings.isHistoryGroupingEnabled = isGroupingEnabled } private suspend fun mapList( @@ -98,6 +99,7 @@ class HistoryListViewModel( mode: ListMode ): List { val result = ArrayList(if (grouped) (list.size * 1.4).toInt() else list.size + 1) + val showPercent = settings.isReadingIndicatorsEnabled var prevDate: DateTimeAgo? = null if (!grouped) { result += ListHeader(null, R.string.history, null) @@ -111,10 +113,11 @@ class HistoryListViewModel( prevDate = date } val counter = trackingRepository.getNewChaptersCount(manga.id) + val percent = if (showPercent) history.percent else PROGRESS_NONE result += when (mode) { - ListMode.LIST -> manga.toListModel(counter, history.percent) - ListMode.DETAILED_LIST -> manga.toListDetailedModel(counter, history.percent) - ListMode.GRID -> manga.toGridModel(counter, history.percent) + ListMode.LIST -> manga.toListModel(counter, percent) + ListMode.DETAILED_LIST -> manga.toListDetailedModel(counter, percent) + ListMode.GRID -> manga.toGridModel(counter, percent) } } return result diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 79ec942ea..a72a39ba9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -304,4 +304,9 @@ Use fingerprint if available Manga from your favourites Your recently read manga + Show reading progress indicators + Data deletion + Show percentage read in history and favourites + Manga marked as NSFW will never added to the history and your progress will not be saved + Can help in case of some issues. All authorizations will be invalidated \ No newline at end of file diff --git a/app/src/main/res/xml/pref_history.xml b/app/src/main/res/xml/pref_history.xml index 6b7d82c50..38000e3f4 100644 --- a/app/src/main/res/xml/pref_history.xml +++ b/app/src/main/res/xml/pref_history.xml @@ -1,30 +1,39 @@ + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto"> - - - + - + + + + + + android:title="@string/clear_thumbs_cache" + app:allowDividerAbove="true" /> + + - - \ No newline at end of file