Transparent reader info bar option
This commit is contained in:
@@ -367,6 +367,9 @@ class AppSettings @Inject constructor(@ApplicationContext context: Context) {
|
||||
val isReaderBarEnabled: Boolean
|
||||
get() = prefs.getBoolean(KEY_READER_BAR, true)
|
||||
|
||||
val isReaderBarTransparent: Boolean
|
||||
get() = prefs.getBoolean(KEY_READER_BAR, true)
|
||||
|
||||
val isReaderKeepScreenOn: Boolean
|
||||
get() = prefs.getBoolean(KEY_READER_SCREEN_ON, true)
|
||||
|
||||
@@ -671,6 +674,7 @@ class AppSettings @Inject constructor(@ApplicationContext context: Context) {
|
||||
const val KEY_SYNC = "sync"
|
||||
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_BACKGROUND = "reader_background"
|
||||
const val KEY_READER_SCREEN_ON = "reader_screen_on"
|
||||
const val KEY_SHORTCUTS = "dynamic_shortcuts"
|
||||
|
||||
@@ -146,6 +146,7 @@ class ReaderActivity :
|
||||
onLoadingStateChanged(viewModel.isLoading.value)
|
||||
}
|
||||
viewModel.isKeepScreenOnEnabled.observe(this, this::setKeepScreenOn)
|
||||
viewModel.isInfoBarTransparent.observe(this) { viewBinding.infoBar.drawBackground = !it }
|
||||
viewModel.isInfoBarEnabled.observe(this, ::onReaderBarChanged)
|
||||
viewModel.isBookmarkAdded.observe(this, MenuInvalidator(this))
|
||||
viewModel.isPagesSheetEnabled.observe(this, MenuInvalidator(viewBinding.toolbarBottom))
|
||||
|
||||
@@ -75,6 +75,12 @@ class ReaderInfoBarView @JvmOverloads constructor(
|
||||
private val innerWidth
|
||||
get() = width - paddingLeft - paddingRight - insetLeft - insetRight
|
||||
|
||||
var drawBackground: Boolean = false
|
||||
set(value) {
|
||||
field = value
|
||||
invalidate()
|
||||
}
|
||||
|
||||
var isTimeVisible: Boolean = true
|
||||
set(value) {
|
||||
field = value
|
||||
@@ -109,7 +115,9 @@ class ReaderInfoBarView @JvmOverloads constructor(
|
||||
|
||||
override fun onDraw(canvas: Canvas) {
|
||||
super.onDraw(canvas)
|
||||
canvas.drawColor(currentBackgroundColor)
|
||||
if (drawBackground) {
|
||||
canvas.drawColor(currentBackgroundColor)
|
||||
}
|
||||
computeTextHeight()
|
||||
val h = innerHeight.toFloat()
|
||||
val ty = h / 2f + textBounds.height() / 2f - textBounds.bottom
|
||||
|
||||
@@ -136,6 +136,12 @@ class ReaderViewModel @Inject constructor(
|
||||
valueProducer = { isReaderBarEnabled },
|
||||
)
|
||||
|
||||
val isInfoBarTransparent = settings.observeAsStateFlow(
|
||||
scope = viewModelScope + Dispatchers.Default,
|
||||
key = AppSettings.KEY_READER_BAR_TRANSPARENT,
|
||||
valueProducer = { isReaderBarTransparent },
|
||||
)
|
||||
|
||||
val isKeepScreenOnEnabled = settings.observeAsStateFlow(
|
||||
scope = viewModelScope + Dispatchers.Default,
|
||||
key = AppSettings.KEY_READER_SCREEN_ON,
|
||||
|
||||
@@ -792,4 +792,5 @@
|
||||
<string name="enable_all_sources">Enable all manga sources</string>
|
||||
<string name="enable_all_sources_summary">All available manga sources will be enabled permanently</string>
|
||||
<string name="all_sources_enabled">All sources are enabled</string>
|
||||
<string name="reader_info_bar_transparent">Transparent reader information bar</string>
|
||||
</resources>
|
||||
|
||||
@@ -121,6 +121,13 @@
|
||||
android:title="@string/reader_info_bar"
|
||||
app:allowDividerAbove="true" />
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
android:dependency="reader_bar"
|
||||
android:key="reader_bar_transparent"
|
||||
android:title="@string/reader_info_bar_transparent"
|
||||
app:allowDividerAbove="true" />
|
||||
|
||||
<ListPreference
|
||||
android:entries="@array/reader_backgrounds"
|
||||
android:key="reader_background"
|
||||
|
||||
Reference in New Issue
Block a user