Reader fullscreen option
This commit is contained in:
@@ -111,6 +111,9 @@ class AppSettings @Inject constructor(@ApplicationContext context: Context) {
|
||||
val isReaderZoomButtonsEnabled: Boolean
|
||||
get() = prefs.getBoolean(KEY_READER_ZOOM_BUTTONS, false)
|
||||
|
||||
val isReaderFullscreenEnabled: Boolean
|
||||
get() = prefs.getBoolean(KEY_READER_FULLSCREEN, true)
|
||||
|
||||
val isReaderOptimizationEnabled: Boolean
|
||||
get() = prefs.getBoolean(KEY_READER_OPTIMIZE, false)
|
||||
|
||||
@@ -482,6 +485,7 @@ class AppSettings @Inject constructor(@ApplicationContext context: Context) {
|
||||
const val KEY_LOCAL_STORAGE = "local_storage"
|
||||
const val KEY_READER_DOUBLE_PAGES = "reader_double_pages"
|
||||
const val KEY_READER_ZOOM_BUTTONS = "reader_zoom_buttons"
|
||||
const val KEY_READER_FULLSCREEN = "reader_fullscreen"
|
||||
const val KEY_READER_VOLUME_BUTTONS = "reader_volume_buttons"
|
||||
const val KEY_TRACKER_ENABLED = "tracker_enabled"
|
||||
const val KEY_TRACKER_WIFI_ONLY = "tracker_wifi"
|
||||
|
||||
@@ -29,7 +29,6 @@ abstract class BaseFullscreenActivity<B : ViewBinding> :
|
||||
WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
|
||||
}
|
||||
}
|
||||
// insetsControllerCompat.systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
|
||||
systemUiController.setSystemUiVisible(true)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -310,10 +310,12 @@ class ReaderActivity :
|
||||
}
|
||||
TransitionManager.beginDelayedTransition(viewBinding.root, transition)
|
||||
}
|
||||
val isFullscreen = settings.isReaderFullscreenEnabled
|
||||
viewBinding.appbarTop.isVisible = isUiVisible
|
||||
viewBinding.appbarBottom?.isVisible = isUiVisible
|
||||
viewBinding.infoBar.isGone = isUiVisible || (!viewModel.isInfoBarEnabled.value)
|
||||
systemUiController.setSystemUiVisible(isUiVisible)
|
||||
viewBinding.infoBar.isTimeVisible = isFullscreen
|
||||
systemUiController.setSystemUiVisible(isUiVisible || !isFullscreen)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -330,6 +332,9 @@ class ReaderActivity :
|
||||
rightMargin = systemBars.right + topMargin
|
||||
leftMargin = systemBars.left + topMargin
|
||||
}
|
||||
viewBinding.infoBar.updatePadding(
|
||||
top = systemBars.top,
|
||||
)
|
||||
return WindowInsetsCompat.Builder(insets)
|
||||
.setInsets(WindowInsetsCompat.Type.systemBars(), Insets.NONE)
|
||||
.build()
|
||||
|
||||
@@ -62,6 +62,12 @@ class ReaderInfoBarView @JvmOverloads constructor(
|
||||
private val innerWidth
|
||||
get() = width - paddingLeft - paddingRight - insetLeft - insetRight
|
||||
|
||||
var isTimeVisible: Boolean = true
|
||||
set(value) {
|
||||
field = value
|
||||
invalidate()
|
||||
}
|
||||
|
||||
init {
|
||||
paint.strokeWidth = context.resources.resolveDp(2f)
|
||||
val insetCorner = getSystemUiDimensionOffset("rounded_corner_content_padding")
|
||||
@@ -92,12 +98,14 @@ class ReaderInfoBarView @JvmOverloads constructor(
|
||||
(paddingLeft + insetLeft + cutoutInsetLeft).toFloat(),
|
||||
paddingTop + insetTop + ty,
|
||||
)
|
||||
paint.textAlign = Paint.Align.RIGHT
|
||||
canvas.drawTextOutline(
|
||||
timeText,
|
||||
(width - paddingRight - insetRight - cutoutInsetRight).toFloat(),
|
||||
paddingTop + insetTop + ty,
|
||||
)
|
||||
if (isTimeVisible) {
|
||||
paint.textAlign = Paint.Align.RIGHT
|
||||
canvas.drawTextOutline(
|
||||
timeText,
|
||||
(width - paddingRight - insetRight - cutoutInsetRight).toFloat(),
|
||||
paddingTop + insetTop + ty,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) {
|
||||
@@ -183,7 +191,9 @@ class ReaderInfoBarView @JvmOverloads constructor(
|
||||
|
||||
override fun onReceive(context: Context?, intent: Intent?) {
|
||||
timeText = timeFormat.format(LocalTime.now())
|
||||
invalidate()
|
||||
if (isTimeVisible) {
|
||||
invalidate()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -586,4 +586,6 @@
|
||||
<string name="config_reset_confirm">Reset settings to default values? This action cannot be undone.</string>
|
||||
<string name="use_two_pages_landscape">Use two pages layout on landscape orientation (beta)</string>
|
||||
<string name="default_webtoon_zoom_out">Default webtoon zoom out</string>
|
||||
<string name="fullscreen_mode">Fullscreen mode</string>
|
||||
<string name="reader_fullscreen_summary">Hide system status and navigation bars</string>
|
||||
</resources>
|
||||
|
||||
@@ -76,12 +76,18 @@
|
||||
android:summary="@string/reader_optimize_summary"
|
||||
android:title="@string/reader_optimize" />
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
android:key="reader_fullscreen"
|
||||
android:summary="@string/reader_fullscreen_summary"
|
||||
android:title="@string/fullscreen_mode"
|
||||
app:allowDividerAbove="true" />
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
android:key="reader_bar"
|
||||
android:summary="@string/reader_info_bar_summary"
|
||||
android:title="@string/reader_info_bar"
|
||||
app:allowDividerAbove="true" />
|
||||
android:title="@string/reader_info_bar" />
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
|
||||
Reference in New Issue
Block a user