diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/core/prefs/AppSettings.kt b/app/src/main/kotlin/org/koitharu/kotatsu/core/prefs/AppSettings.kt
index fba3fbe70..8846c6f29 100644
--- a/app/src/main/kotlin/org/koitharu/kotatsu/core/prefs/AppSettings.kt
+++ b/app/src/main/kotlin/org/koitharu/kotatsu/core/prefs/AppSettings.kt
@@ -409,6 +409,9 @@ class AppSettings @Inject constructor(@ApplicationContext context: Context) {
val isReaderBarTransparent: Boolean
get() = prefs.getBoolean(KEY_READER_BAR_TRANSPARENT, true)
+ val isReaderChapterToastEnabled: Boolean
+ get() = prefs.getBoolean(KEY_READER_CHAPTER_TOAST, true)
+
val isReaderKeepScreenOn: Boolean
get() = prefs.getBoolean(KEY_READER_SCREEN_ON, true)
@@ -747,6 +750,7 @@ class AppSettings @Inject constructor(@ApplicationContext context: Context) {
const val KEY_SYNC_SETTINGS = "sync_settings"
const val KEY_READER_BAR = "reader_bar"
const val KEY_READER_BAR_TRANSPARENT = "reader_bar_transparent"
+ const val KEY_READER_CHAPTER_TOAST = "reader_chapter_toast"
const val KEY_READER_BACKGROUND = "reader_background"
const val KEY_READER_SCREEN_ON = "reader_screen_on"
const val KEY_SHORTCUTS = "dynamic_shortcuts"
diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/ReaderActivity.kt b/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/ReaderActivity.kt
index 5b51d143b..040f25118 100644
--- a/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/ReaderActivity.kt
+++ b/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/ReaderActivity.kt
@@ -488,7 +488,11 @@ class ReaderActivity :
uiState.incognito -> getString(R.string.incognito_mode)
else -> chapterTitle
}
- if (chapterTitle != previous?.getChapterTitle(resources) && chapterTitle.isNotEmpty()) {
+ if (
+ viewModel.isChapterToastEnabled.value &&
+ chapterTitle != previous?.getChapterTitle(resources) &&
+ chapterTitle.isNotEmpty()
+ ) {
viewBinding.toastView.showTemporary(chapterTitle, TOAST_DURATION)
}
if (uiState.isSliderAvailable()) {
diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/ReaderViewModel.kt b/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/ReaderViewModel.kt
index e951521d2..a9229f62a 100644
--- a/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/ReaderViewModel.kt
+++ b/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/ReaderViewModel.kt
@@ -142,6 +142,12 @@ class ReaderViewModel @Inject constructor(
valueProducer = { isReaderBarTransparent },
)
+ val isChapterToastEnabled = settings.observeAsStateFlow(
+ scope = viewModelScope + Dispatchers.Default,
+ key = AppSettings.KEY_READER_CHAPTER_TOAST,
+ valueProducer = { isReaderChapterToastEnabled },
+ )
+
val isKeepScreenOnEnabled = settings.observeAsStateFlow(
scope = viewModelScope + Dispatchers.Default,
key = AppSettings.KEY_READER_SCREEN_ON,
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index fcda5536e..448406bce 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -803,6 +803,8 @@
Enable all manga sources
All available manga sources will be enabled permanently
All sources are enabled
+ Show chapter toast
+ Show a toast message with the chapter name when it changes
Transparent reader information bar
The backup will be restored in the background
Restoring backup
diff --git a/app/src/main/res/xml/pref_reader.xml b/app/src/main/res/xml/pref_reader.xml
index 3045b3d0a..4a926ebc8 100644
--- a/app/src/main/res/xml/pref_reader.xml
+++ b/app/src/main/res/xml/pref_reader.xml
@@ -144,6 +144,12 @@
android:key="reader_bar_transparent"
android:title="@string/reader_info_bar_transparent" />
+
+