mirror of
https://github.com/mihonapp/mihon.git
synced 2025-06-26 02:57:50 +02:00
Add crop borders functionality, #219
This commit is contained in:
@ -41,6 +41,8 @@ class PreferenceKeys(context: Context) {
|
||||
|
||||
val readerTheme = context.getString(R.string.pref_reader_theme_key)
|
||||
|
||||
val cropBorders = context.getString(R.string.pref_crop_borders_key)
|
||||
|
||||
val readWithTapping = context.getString(R.string.pref_read_with_tapping_key)
|
||||
|
||||
val readWithVolumeKeys = context.getString(R.string.pref_read_with_volume_keys_key)
|
||||
|
@ -34,7 +34,7 @@ class PreferencesHelper(val context: Context) {
|
||||
|
||||
fun rotation() = rxPrefs.getInteger(keys.rotation, 1)
|
||||
|
||||
fun enableTransitions() = rxPrefs.getBoolean(keys.enableTransitions, true)
|
||||
fun pageTransitions() = rxPrefs.getBoolean(keys.enableTransitions, true)
|
||||
|
||||
fun showPageNumber() = rxPrefs.getBoolean(keys.showPageNumber, true)
|
||||
|
||||
@ -60,6 +60,8 @@ class PreferencesHelper(val context: Context) {
|
||||
|
||||
fun readerTheme() = rxPrefs.getInteger(keys.readerTheme, 0)
|
||||
|
||||
fun cropBorders() = rxPrefs.getBoolean(keys.cropBorders, false)
|
||||
|
||||
fun readWithTapping() = rxPrefs.getBoolean(keys.readWithTapping, true)
|
||||
|
||||
fun readWithVolumeKeys() = rxPrefs.getBoolean(keys.readWithVolumeKeys, false)
|
||||
|
@ -83,6 +83,11 @@ class ReaderSettingsDialog : DialogFragment() {
|
||||
fullscreen.setOnCheckedChangeListener { v, isChecked ->
|
||||
preferences.fullscreen().set(isChecked)
|
||||
}
|
||||
|
||||
crop_borders.isChecked = preferences.cropBorders().getOrDefault()
|
||||
crop_borders.setOnCheckedChangeListener { v, isChecked ->
|
||||
preferences.cropBorders().set(isChecked)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
|
@ -70,6 +70,7 @@ class PageView @JvmOverloads constructor(context: Context, attrs: AttributeSet?
|
||||
setRegionDecoderClass(reader.regionDecoderClass)
|
||||
setBitmapDecoderClass(reader.bitmapDecoderClass)
|
||||
setVerticalScrollingParent(reader is VerticalReader)
|
||||
setCropBorders(reader.cropBorders)
|
||||
setOnTouchListener { v, motionEvent -> reader.gestureDetector.onTouchEvent(motionEvent) }
|
||||
setOnLongClickListener { reader.onLongClick(page) }
|
||||
setOnImageEventListener(object : SubsamplingScaleImageView.DefaultOnImageEventListener() {
|
||||
|
@ -79,6 +79,12 @@ abstract class PagerReader : BaseReader() {
|
||||
var transitions: Boolean = false
|
||||
private set
|
||||
|
||||
/**
|
||||
* Whether to crop image borders.
|
||||
*/
|
||||
var cropBorders: Boolean = false
|
||||
private set
|
||||
|
||||
/**
|
||||
* Scale type (fit width, fit screen, etc).
|
||||
*/
|
||||
@ -150,9 +156,16 @@ abstract class PagerReader : BaseReader() {
|
||||
.distinctUntilChanged()
|
||||
.subscribe { refreshAdapter() })
|
||||
|
||||
add(preferences.enableTransitions()
|
||||
add(preferences.pageTransitions()
|
||||
.asObservable()
|
||||
.subscribe { transitions = it })
|
||||
|
||||
add(preferences.cropBorders()
|
||||
.asObservable()
|
||||
.doOnNext { cropBorders = it }
|
||||
.skip(1)
|
||||
.distinctUntilChanged()
|
||||
.subscribe { refreshAdapter() })
|
||||
}
|
||||
|
||||
setPagesOnAdapter()
|
||||
|
Reference in New Issue
Block a user