Add crop borders functionality, #219

This commit is contained in:
len
2017-02-12 00:30:32 +01:00
parent c8e3375248
commit 91c58640a7
18 changed files with 50 additions and 12 deletions

View File

@ -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)

View File

@ -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)

View File

@ -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() {

View File

@ -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() {

View File

@ -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()