@ -3,10 +3,12 @@ package eu.kanade.tachiyomi.ui.reader.settings
import android.app.Activity
import android.app.Activity
import android.content.Context
import android.content.Context
import android.util.AttributeSet
import android.util.AttributeSet
import androidx.core.view.isVisible
import com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView
import com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.databinding.ReaderPagedLayoutBinding
import eu.kanade.tachiyomi.databinding.ReaderPagedLayoutBinding
import eu.kanade.tachiyomi.ui.reader.ReaderActivity
import eu.kanade.tachiyomi.ui.reader.ReaderActivity
import eu.kanade.tachiyomi.ui.reader.viewer.pager.PageLayout
import eu.kanade.tachiyomi.util.bindToPreference
import eu.kanade.tachiyomi.util.bindToPreference
import eu.kanade.tachiyomi.util.lang.addBetaTag
import eu.kanade.tachiyomi.util.lang.addBetaTag
import eu.kanade.tachiyomi.util.view.visibleIf
import eu.kanade.tachiyomi.util.view.visibleIf
@ -17,35 +19,45 @@ class ReaderPagedView @JvmOverloads constructor(context: Context, attrs: Attribu
override fun inflateBinding ( ) = ReaderPagedLayoutBinding . bind ( this )
override fun inflateBinding ( ) = ReaderPagedLayoutBinding . bind ( this )
override fun initGeneralPreferences ( ) {
override fun initGeneralPreferences ( ) {
binding . scaleType . bindToPreference ( preferences . imageScaleType ( ) , 1 ) {
with ( binding ) {
scaleType . bindToPreference ( preferences . imageScaleType ( ) , 1 ) {
val mangaViewer = ( context as ? ReaderActivity ) ?. presenter ?. getMangaViewer ( ) ?: 0
val mangaViewer = ( context as ? ReaderActivity ) ?. presenter ?. getMangaViewer ( ) ?: 0
val isWebtoonView = mangaViewer == ReaderActivity . WEBTOON || mangaViewer == ReaderActivity . VERTICAL _PLUS
val isWebtoonView =
mangaViewer == ReaderActivity . WEBTOON || mangaViewer == ReaderActivity . VERTICAL _PLUS
updatePagedGroup ( !is WebtoonView )
}
zoomStart . bindToPreference ( preferences . zoomStart ( ) , 1 )
cropBorders . bindToPreference ( preferences . cropBorders ( ) )
pageTransitions . bindToPreference ( preferences . pageTransitions ( ) )
pagerNav . bindToPreference ( preferences . navigationModePager ( ) )
pagerInvert . bindToPreference ( preferences . pagerNavInverted ( ) )
extendPastCutout . bindToPreference ( preferences . pagerCutoutBehavior ( ) )
pageLayout . bindToPreference ( preferences . pageLayout ( ) ) {
val mangaViewer = ( context as ? ReaderActivity ) ?. presenter ?. getMangaViewer ( ) ?: 0
val isWebtoonView =
mangaViewer == ReaderActivity . WEBTOON || mangaViewer == ReaderActivity . VERTICAL _PLUS
updatePagedGroup ( !is WebtoonView )
updatePagedGroup ( !is WebtoonView )
}
}
binding . zoomStart . bindToPreference ( preferences . zoomStart ( ) , 1 )
invertDoublePages . bindToPreference ( preferences . invertDoublePages ( ) )
binding . cropBorders . bindToPreference ( preferences . cropBorders ( ) )
binding . pageTransitions . bindToPreference ( preferences . pageTransitions ( ) )
binding . pagerNav . bindToPreference ( preferences . navigationModePager ( ) )
binding . pagerInvert . bindToPreference ( preferences . pagerNavInverted ( ) )
binding . extendPastCutout . bindToPreference ( preferences . pagerCutoutBehavior ( ) )
binding . pageLayout . bindToPreference ( preferences . pageLayout ( ) )
binding . pageLayout . title = binding . pageLayout . title . toString ( ) . addBetaTag ( context )
pageLayout . title = pageLayout . title . toString ( ) . addBetaTag ( context )
val mangaViewer = ( context as ? ReaderActivity ) ?. presenter ?. getMangaViewer ( ) ?: 0
val mangaViewer = ( context as ? ReaderActivity ) ?. presenter ?. getMangaViewer ( ) ?: 0
val isWebtoonView = mangaViewer == ReaderActivity . WEBTOON || mangaViewer == ReaderActivity . VERTICAL _PLUS
val isWebtoonView =
mangaViewer == ReaderActivity . WEBTOON || mangaViewer == ReaderActivity . VERTICAL _PLUS
val hasMargins = mangaViewer == ReaderActivity . VERTICAL _PLUS
val hasMargins = mangaViewer == ReaderActivity . VERTICAL _PLUS
binding . cropBordersWebtoon . bindToPreference ( if ( hasMargins ) preferences . cropBorders ( ) else preferences . cropBordersWebtoon ( ) )
cropBordersWebtoon . bindToPreference ( if ( hasMargins ) preferences . cropBorders ( ) else preferences . cropBordersWebtoon ( ) )
binding . webtoonSidePadding . bindToIntPreference (
webtoonSidePadding . bindToIntPreference (
preferences . webtoonSidePadding ( ) ,
preferences . webtoonSidePadding ( ) ,
R . array . webtoon _side _padding _values
R . array . webtoon _side _padding _values
)
)
binding . webtoonEnableZoomOut . bindToPreference ( preferences . webtoonEnableZoomOut ( ) )
webtoonEnableZoomOut . bindToPreference ( preferences . webtoonEnableZoomOut ( ) )
binding . webtoonNav . bindToPreference ( preferences . navigationModeWebtoon ( ) )
webtoonNav . bindToPreference ( preferences . navigationModeWebtoon ( ) )
binding . webtoonInvert . bindToPreference ( preferences . webtoonNavInverted ( ) )
webtoonInvert . bindToPreference ( preferences . webtoonNavInverted ( ) )
updatePagedGroup ( !is WebtoonView )
updatePagedGroup ( !is WebtoonView )
}
}
}
fun updatePrefs ( ) {
fun updatePrefs ( ) {
val mangaViewer = activity . presenter . getMangaViewer ( )
val mangaViewer = activity . presenter . getMangaViewer ( )
@ -84,6 +96,7 @@ class ReaderPagedView @JvmOverloads constructor(context: Context, attrs: Attribu
} else {
} else {
false
false
}
}
binding . extendPastCutout . visibleIf ( show && isFullFit && hasCutout )
binding . extendPastCutout . isVisible = show && isFullFit && hasCutout
binding . invertDoublePages . isVisible = show && preferences . pageLayout ( ) . get ( ) != PageLayout . SINGLE _PAGE
}
}
}
}