Add option to flash white screen on page change in reader for e-ink displays
Closes #2123 (cherry picked from commit 443d56f69bc1df515ed2edcd5b2936ed8710fb71) # Conflicts: # app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt # app/src/main/java/eu/kanade/presentation/reader/settings/GeneralSettingsPage.kt # app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
package eu.kanade.presentation.reader
|
||||
|
||||
import androidx.compose.foundation.Canvas
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
import androidx.compose.runtime.Stable
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import kotlinx.coroutines.delay
|
||||
|
||||
@Stable
|
||||
class DisplayRefreshHost {
|
||||
|
||||
internal var currentDisplayRefresh by mutableStateOf(false)
|
||||
|
||||
fun flash() {
|
||||
currentDisplayRefresh = true
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun DisplayRefreshHost(
|
||||
hostState: DisplayRefreshHost,
|
||||
modifier: Modifier = Modifier,
|
||||
) {
|
||||
val currentDisplayRefresh = hostState.currentDisplayRefresh
|
||||
LaunchedEffect(currentDisplayRefresh) {
|
||||
if (currentDisplayRefresh) {
|
||||
delay(200)
|
||||
hostState.currentDisplayRefresh = false
|
||||
}
|
||||
}
|
||||
|
||||
if (currentDisplayRefresh) {
|
||||
Canvas(
|
||||
modifier = modifier.fillMaxSize(),
|
||||
) {
|
||||
drawRect(Color.White)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -88,7 +88,14 @@ internal fun ColumnScope.GeneralPage(screenModel: ReaderSettingsScreenModel) {
|
||||
/*CheckboxItem(
|
||||
label = stringResource(R.string.pref_page_transitions),
|
||||
pref = screenModel.preferences.pageTransitions(),
|
||||
)*/
|
||||
) SY <-- */
|
||||
|
||||
CheckboxItem(
|
||||
label = stringResource(R.string.pref_flash_page),
|
||||
pref = screenModel.preferences.flashOnPageChange(),
|
||||
)
|
||||
|
||||
// SY -->
|
||||
CheckboxItem(
|
||||
label = stringResource(R.string.auto_webtoon_mode),
|
||||
pref = screenModel.preferences.useAutoWebtoon(),
|
||||
|
||||
Reference in New Issue
Block a user