Binding Reader Activity and reader view

i want to die.
pull/7308/head
Jays2Kings 4 years ago
parent 57abbd6eda
commit 7b91a8a23b

@ -32,6 +32,7 @@ import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.database.models.Chapter
import eu.kanade.tachiyomi.data.database.models.Manga
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.databinding.ReaderActivityBinding
import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.ui.base.activity.BaseRxActivity
import eu.kanade.tachiyomi.ui.main.MainActivity
@ -71,8 +72,6 @@ import eu.kanade.tachiyomi.util.view.updatePaddingRelative
import eu.kanade.tachiyomi.util.view.visible
import eu.kanade.tachiyomi.widget.SimpleAnimationListener
import eu.kanade.tachiyomi.widget.SimpleSeekBarListener
import kotlinx.android.synthetic.main.reader_activity.*
import kotlinx.android.synthetic.main.reader_chapters_sheet.*
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import kotlinx.coroutines.delay
@ -101,6 +100,8 @@ class ReaderActivity :
BaseRxActivity<ReaderPresenter>(),
SystemUiHelper.OnVisibilityChangeListener {
lateinit var binding: ReaderActivityBinding
/**
* Preferences helper.
*/
@ -186,7 +187,8 @@ class ReaderActivity :
AppCompatDelegate.setDefaultNightMode(ThemeUtil.nightMode(preferences.theme()))
setTheme(ThemeUtil.theme(preferences.theme()))
super.onCreate(savedInstanceState)
setContentView(R.layout.reader_activity)
binding = ReaderActivityBinding.inflate(layoutInflater)
setContentView(binding.root)
val a = obtainStyledAttributes(intArrayOf(android.R.attr.windowLightStatusBar))
lightStatusBar = a.getBoolean(0, false)
a.recycle()
@ -196,9 +198,9 @@ class ReaderActivity :
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
systemUiFlag = systemUiFlag.or(View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR)
}
reader_layout.systemUiVisibility = when (lightStatusBar) {
true -> reader_layout.systemUiVisibility.or(systemUiFlag)
false -> reader_layout.systemUiVisibility.rem(systemUiFlag)
binding.readerLayout.systemUiVisibility = when (lightStatusBar) {
true -> binding.readerLayout.systemUiVisibility.or(systemUiFlag)
false -> binding.readerLayout.systemUiVisibility.rem(systemUiFlag)
}
if (presenter.needsInit()) {
@ -212,7 +214,7 @@ class ReaderActivity :
}
presenter.init(manga, chapter)
} else {
please_wait.visible()
binding.pleaseWait.visible()
}
}
@ -220,9 +222,9 @@ class ReaderActivity :
menuVisible = savedInstanceState.getBoolean(::menuVisible.name)
}
chapters_bottom_sheet.setup(this)
binding.readerChaptersSheet.chaptersBottomSheet.setup(this)
if (ThemeUtil.isBlueTheme(preferences.theme())) {
chapter_recycler.setBackgroundColor(getResourceColor(android.R.attr.colorBackground))
binding.readerChaptersSheet.chapterRecycler.setBackgroundColor(getResourceColor(android.R.attr.colorBackground))
}
config = ReaderConfig()
initializeMenu()
@ -234,7 +236,7 @@ class ReaderActivity :
override fun onDestroy() {
super.onDestroy()
viewer?.destroy()
chapters_bottom_sheet.adapter = null
binding.readerChaptersSheet.chaptersBottomSheet.adapter = null
viewer = null
config = null
bottomSheet?.dismiss()
@ -272,7 +274,7 @@ class ReaderActivity :
}
/**
* Called when the options menu of the toolbar is being created. It adds our custom menu.
* Called when the options menu of the binding.toolbar is being created. It adds our custom menu.
*/
override fun onCreateOptionsMenu(menu: Menu): Boolean {
menuInflater.inflate(R.menu.reader, menu)
@ -289,7 +291,7 @@ class ReaderActivity :
R.id.action_display_settings -> TabbedReaderSettingsSheet(this).show()
R.id.action_share_page, R.id.action_set_page_as_cover, R.id.action_save_page -> {
val currentChapter = presenter.getCurrentChapter() ?: return true
val page = currentChapter.pages?.getOrNull(page_seekbar.progress) ?: return true
val page = currentChapter.pages?.getOrNull(binding.readerChaptersSheet.pageSeekBar.progress) ?: return true
when (item.itemId) {
R.id.action_share_page -> shareImage(page)
R.id.action_set_page_as_cover -> showSetCoverPrompt(page)
@ -319,12 +321,12 @@ class ReaderActivity :
}
/**
* Called when the user clicks the back key or the button on the toolbar. The call is
* Called when the user clicks the back key or the button on the binding.toolbar. The call is
* delegated to the presenter.
*/
override fun onBackPressed() {
if (chapters_bottom_sheet.sheetBehavior.isExpanded()) {
chapters_bottom_sheet.sheetBehavior?.collapse()
if (binding.readerChaptersSheet.chaptersBottomSheet.sheetBehavior.isExpanded()) {
binding.readerChaptersSheet.chaptersBottomSheet.sheetBehavior?.collapse()
return
}
presenter.onBackPressed()
@ -363,20 +365,20 @@ class ReaderActivity :
* Initializes the reader menu. It sets up click listeners and the initial visibility.
*/
private fun initializeMenu() {
// Set toolbar
setSupportActionBar(toolbar)
// Set binding.toolbar
setSupportActionBar(binding.toolbar)
val primaryColor = ColorUtils.setAlphaComponent(
getResourceColor(R.attr.colorSecondary),
200
)
appbar.setBackgroundColor(primaryColor)
binding.appBar.setBackgroundColor(primaryColor)
window.statusBarColor = Color.TRANSPARENT
supportActionBar?.setDisplayHomeAsUpEnabled(true)
toolbar.setNavigationOnClickListener {
binding.toolbar.setNavigationOnClickListener {
popToMain()
}
toolbar.setOnClickListener {
binding.toolbar.setOnClickListener {
presenter.manga?.id?.let { id ->
val intent = SearchActivity.openMangaIntent(this, id)
startActivity(intent)
@ -384,7 +386,7 @@ class ReaderActivity :
}
// Init listeners on bottom menu
page_seekbar.setOnSeekBarChangeListener(
binding.readerChaptersSheet.pageSeekBar.setOnSeekBarChangeListener(
object : SimpleSeekBarListener() {
override fun onProgressChanged(seekBar: SeekBar, value: Int, fromUser: Boolean) {
if (viewer != null && fromUser) {
@ -396,10 +398,10 @@ class ReaderActivity :
// Set initial visibility
setMenuVisibility(menuVisible)
chapters_bottom_sheet.sheetBehavior?.isHideable = !menuVisible
if (!menuVisible) chapters_bottom_sheet.sheetBehavior?.hide()
val peek = chapters_bottom_sheet.sheetBehavior?.peekHeight ?: 30.dpToPx
reader_layout.doOnApplyWindowInsets { v, insets, _ ->
binding.readerChaptersSheet.chaptersBottomSheet.sheetBehavior?.isHideable = !menuVisible
if (!menuVisible) binding.readerChaptersSheet.chaptersBottomSheet.sheetBehavior?.hide()
val peek = binding.readerChaptersSheet.chaptersBottomSheet.sheetBehavior?.peekHeight ?: 30.dpToPx
binding.readerLayout.doOnApplyWindowInsets { v, insets, _ ->
sheetManageNavColor = when {
insets.isBottomTappable() -> {
window.navigationBarColor = Color.TRANSPARENT
@ -415,21 +417,21 @@ class ReaderActivity :
}
}
appbar.updateLayoutParams<ViewGroup.MarginLayoutParams> {
binding.appBar.updateLayoutParams<ViewGroup.MarginLayoutParams> {
leftMargin = insets.systemWindowInsetLeft
rightMargin = insets.systemWindowInsetRight
}
toolbar.updateLayoutParams<ViewGroup.MarginLayoutParams> {
binding.toolbar.updateLayoutParams<ViewGroup.MarginLayoutParams> {
topMargin = insets.systemWindowInsetTop
}
chapters_bottom_sheet.updateLayoutParams<ViewGroup.MarginLayoutParams> {
binding.readerChaptersSheet.chaptersBottomSheet.updateLayoutParams<ViewGroup.MarginLayoutParams> {
leftMargin = insets.systemWindowInsetLeft
rightMargin = insets.systemWindowInsetRight
height = 280.dpToPx + insets.systemWindowInsetBottom
}
chapters_bottom_sheet.sheetBehavior?.peekHeight = peek + insets.getBottomGestureInsets()
chapter_recycler.updatePaddingRelative(bottom = insets.systemWindowInsetBottom)
viewer_container.requestLayout()
binding.readerChaptersSheet.chaptersBottomSheet.sheetBehavior?.peekHeight = peek + insets.getBottomGestureInsets()
binding.readerChaptersSheet.chapterRecycler.updatePaddingRelative(bottom = insets.systemWindowInsetBottom)
binding.viewerContainer.requestLayout()
}
}
@ -440,16 +442,16 @@ class ReaderActivity :
private fun setMenuVisibility(visible: Boolean, animate: Boolean = true) {
menuVisible = visible
if (visible) coroutine?.cancel()
viewer_container.requestLayout()
binding.viewerContainer.requestLayout()
if (visible) {
snackbar?.dismiss()
systemUi?.show()
reader_menu.visible()
binding.readerMenu.visible()
if (chapters_bottom_sheet.sheetBehavior.isExpanded()) {
chapters_bottom_sheet.sheetBehavior?.isHideable = false
if (binding.readerChaptersSheet.chaptersBottomSheet.sheetBehavior.isExpanded()) {
binding.readerChaptersSheet.chaptersBottomSheet.sheetBehavior?.isHideable = false
}
if (!chapters_bottom_sheet.sheetBehavior.isExpanded() && sheetManageNavColor) {
if (!binding.readerChaptersSheet.chaptersBottomSheet.sheetBehavior.isExpanded() && sheetManageNavColor) {
window.navigationBarColor = Color.TRANSPARENT
}
if (animate) {
@ -462,9 +464,9 @@ class ReaderActivity :
}
}
)
appbar.startAnimation(toolbarAnimation)
binding.appBar.startAnimation(toolbarAnimation)
}
chapters_bottom_sheet.sheetBehavior?.collapse()
binding.readerChaptersSheet.chaptersBottomSheet.sheetBehavior?.collapse()
}
} else {
systemUi?.hide()
@ -474,15 +476,15 @@ class ReaderActivity :
toolbarAnimation.setAnimationListener(
object : SimpleAnimationListener() {
override fun onAnimationEnd(animation: Animation) {
reader_menu.gone()
binding.readerMenu.gone()
}
}
)
appbar.startAnimation(toolbarAnimation)
BottomSheetBehavior.from(chapters_bottom_sheet).isHideable = true
chapters_bottom_sheet.sheetBehavior?.hide()
binding.appBar.startAnimation(toolbarAnimation)
BottomSheetBehavior.from(binding.readerChaptersSheet.chaptersBottomSheet).isHideable = true
binding.readerChaptersSheet.chaptersBottomSheet.sheetBehavior?.hide()
} else {
reader_menu.gone()
binding.readerMenu.gone()
}
}
menuStickyVisible = false
@ -490,7 +492,7 @@ class ReaderActivity :
/**
* Called from the presenter when a manga is ready. Used to instantiate the appropriate viewer
* and the toolbar title.
* and the binding.toolbar title.
*/
fun setManga(manga: Manga) {
val prevViewer = viewer
@ -506,7 +508,7 @@ class ReaderActivity :
}
if (noDefault && presenter.manga?.viewer!! > 0) {
snackbar = reader_layout.snack(
snackbar = binding.readerLayout.snack(
getString(
R.string.reading_,
getString(
@ -529,13 +531,13 @@ class ReaderActivity :
// Destroy previous viewer if there was one
if (prevViewer != null) {
prevViewer.destroy()
viewer_container.removeAllViews()
binding.viewerContainer.removeAllViews()
}
viewer = newViewer
viewer_container.addView(newViewer.getView())
binding.viewerContainer.addView(newViewer.getView())
navigation_overlay.isLTR = !(viewer is L2RPagerViewer)
viewer_container.setBackgroundColor(
binding.navigationOverlay.isLTR = !(viewer is L2RPagerViewer)
binding.viewerContainer.setBackgroundColor(
if (viewer is WebtoonViewer) {
Color.BLACK
} else {
@ -543,12 +545,12 @@ class ReaderActivity :
}
)
toolbar.title = manga.title
binding.toolbar.title = manga.title
page_seekbar.isRTL = newViewer is R2LPagerViewer
binding.readerChaptersSheet.pageSeekBar.isRTL = newViewer is R2LPagerViewer
please_wait.visible()
please_wait.startAnimation(AnimationUtils.loadAnimation(this, R.anim.fade_in_long))
binding.pleaseWait.visible()
binding.pleaseWait.startAnimation(AnimationUtils.loadAnimation(this, R.anim.fade_in_long))
}
override fun onPause() {
@ -558,14 +560,14 @@ class ReaderActivity :
/**
* Called from the presenter whenever a new [viewerChapters] have been set. It delegates the
* method to the current viewer, but also set the subtitle on the toolbar.
* method to the current viewer, but also set the subtitle on the binding.toolbar.
*/
fun setChapters(viewerChapters: ViewerChapters) {
please_wait.gone()
binding.pleaseWait.gone()
viewer?.setChapters(viewerChapters)
intentPageNumber?.let { moveToPageIndex(it) }
intentPageNumber = null
toolbar.subtitle = viewerChapters.currChapter.chapter.name
binding.toolbar.subtitle = viewerChapters.currChapter.chapter.name
}
/**
@ -581,7 +583,7 @@ class ReaderActivity :
/**
* Called from the presenter whenever it's loading the next or previous chapter. It shows or
* dismisses a non-cancellable dialog to prevent user interaction according to the value of
* [show]. This is only used when the next/previous buttons on the toolbar are clicked; the
* [show]. This is only used when the next/previous buttons on the binding.toolbar are clicked; the
* other cases are handled with chapter transitions on the viewers and chapter preloading.
*/
@Suppress("DEPRECATION")
@ -606,7 +608,7 @@ class ReaderActivity :
}
fun refreshChapters() {
chapters_bottom_sheet.refreshList()
binding.readerChaptersSheet.chaptersBottomSheet.refreshList()
}
/**
@ -619,21 +621,21 @@ class ReaderActivity :
val pages = page.chapter.pages ?: return
// Set bottom page number
page_number.text = "${page.number}/${pages.size}"
binding.pageNumber.text = "${page.number}/${pages.size}"
// Set seekbar page number
page_text.text = "${page.number} / ${pages.size}"
binding.readerChaptersSheet.pageText.text = "${page.number} / ${pages.size}"
if (!newChapter && chapters_bottom_sheet.shouldCollapse && chapters_bottom_sheet.sheetBehavior.isExpanded()) {
chapters_bottom_sheet.sheetBehavior?.collapse()
if (!newChapter && binding.readerChaptersSheet.chaptersBottomSheet.shouldCollapse && binding.readerChaptersSheet.chaptersBottomSheet.sheetBehavior.isExpanded()) {
binding.readerChaptersSheet.chaptersBottomSheet.sheetBehavior?.collapse()
}
if (chapters_bottom_sheet.selectedChapterId != page.chapter.chapter.id) {
chapters_bottom_sheet.refreshList()
if (binding.readerChaptersSheet.chaptersBottomSheet.selectedChapterId != page.chapter.chapter.id) {
binding.readerChaptersSheet.chaptersBottomSheet.refreshList()
}
chapters_bottom_sheet.shouldCollapse = true
binding.readerChaptersSheet.chaptersBottomSheet.shouldCollapse = true
// Set seekbar progress
page_seekbar.max = pages.lastIndex
page_seekbar.progress = page.index
binding.readerChaptersSheet.pageSeekBar.max = pages.lastIndex
binding.readerChaptersSheet.pageSeekBar.progress = page.index
}
/**
@ -763,7 +765,7 @@ class ReaderActivity :
}
if (sheetManageNavColor) window.navigationBarColor =
getResourceColor(R.attr.colorSecondary)
reader_menu.visible()
binding.readerMenu.visible()
val toolbarAnimation = AnimationUtils.loadAnimation(this, R.anim.enter_from_top)
toolbarAnimation.setAnimationListener(
object : SimpleAnimationListener() {
@ -772,7 +774,7 @@ class ReaderActivity :
}
}
)
appbar.startAnimation(toolbarAnimation)
binding.appBar.startAnimation(toolbarAnimation)
}
} else {
if (menuStickyVisible && !menuVisible) {
@ -922,7 +924,7 @@ class ReaderActivity :
* Sets the visibility of the bottom page indicator according to [visible].
*/
private fun setPageNumberVisibility(visible: Boolean) {
page_number.visibility = if (visible) View.VISIBLE else View.INVISIBLE
binding.pageNumber.visibility = if (visible) View.VISIBLE else View.INVISIBLE
}
/**
@ -985,7 +987,7 @@ class ReaderActivity :
.onEach { setColorFilterValue(it) }
.launchIn(scope)
} else {
color_overlay.gone()
binding.colorOverlay.gone()
}
}
@ -1011,11 +1013,11 @@ class ReaderActivity :
// Set black overlay visibility.
if (value < 0) {
brightness_overlay.visible()
binding.brightnessOverlay.visible()
val alpha = (abs(value) * 2.56).toInt()
brightness_overlay.setBackgroundColor(Color.argb(alpha, 0, 0, 0))
binding.brightnessOverlay.setBackgroundColor(Color.argb(alpha, 0, 0, 0))
} else {
brightness_overlay.gone()
binding.brightnessOverlay.gone()
}
}
@ -1023,8 +1025,8 @@ class ReaderActivity :
* Sets the color filter [value].
*/
private fun setColorFilterValue(value: Int) {
color_overlay.visible()
color_overlay.setFilterColor(value, preferences.colorFilterMode().get())
binding.colorOverlay.visible()
binding.colorOverlay.setFilterColor(value, preferences.colorFilterMode().get())
}
}
}

@ -14,6 +14,7 @@ import com.mikepenz.fastadapter.FastAdapter
import com.mikepenz.fastadapter.adapters.ItemAdapter
import com.mikepenz.fastadapter.listeners.ClickEventHook
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.databinding.ReaderChaptersSheetBinding
import eu.kanade.tachiyomi.ui.reader.ReaderActivity
import eu.kanade.tachiyomi.ui.reader.ReaderPresenter
import eu.kanade.tachiyomi.util.system.dpToPx
@ -24,7 +25,6 @@ import eu.kanade.tachiyomi.util.view.expand
import eu.kanade.tachiyomi.util.view.isExpanded
import eu.kanade.tachiyomi.util.view.visInvisIf
import eu.kanade.tachiyomi.util.view.visibleIf
import kotlinx.android.synthetic.main.reader_chapters_sheet.view.*
import kotlin.math.max
import kotlin.math.min
import kotlin.math.roundToInt
@ -39,13 +39,20 @@ class ReaderChapterSheet @JvmOverloads constructor(context: Context, attrs: Attr
var shouldCollapse = true
var selectedChapterId = -1L
lateinit var binding: ReaderChaptersSheetBinding
override fun onFinishInflate() {
super.onFinishInflate()
binding = ReaderChaptersSheetBinding.bind(this)
}
fun setup(activity: ReaderActivity) {
presenter = activity.presenter
val fullPrimary = activity.getResourceColor(R.attr.colorSecondary)
val primary = ColorUtils.setAlphaComponent(fullPrimary, 200)
sheetBehavior = BottomSheetBehavior.from(this)
chapters_button.setOnClickListener {
binding.chaptersButton.setOnClickListener {
if (sheetBehavior.isExpanded()) {
sheetBehavior?.collapse()
} else {
@ -53,28 +60,28 @@ class ReaderChapterSheet @JvmOverloads constructor(context: Context, attrs: Attr
}
}
webview_button.setOnClickListener {
binding.webviewButton.setOnClickListener {
activity.openMangaInBrowser()
}
post {
chapter_recycler?.alpha = if (sheetBehavior.isExpanded()) 1f else 0f
chapter_recycler?.isClickable = sheetBehavior.isExpanded()
chapter_recycler?.isFocusable = sheetBehavior.isExpanded()
binding.chapterRecycler.alpha = if (sheetBehavior.isExpanded()) 1f else 0f
binding.chapterRecycler.isClickable = sheetBehavior.isExpanded()
binding.chapterRecycler.isFocusable = sheetBehavior.isExpanded()
}
sheetBehavior?.addBottomSheetCallback(
object : BottomSheetBehavior.BottomSheetCallback() {
override fun onSlide(bottomSheet: View, progress: Float) {
pill.alpha = (1 - max(0f, progress)) * 0.25f
binding.pill.alpha = (1 - max(0f, progress)) * 0.25f
val trueProgress = max(progress, 0f)
chapters_button.alpha = 1 - trueProgress
webview_button.alpha = trueProgress
webview_button.visibleIf(webview_button.alpha > 0)
chapters_button.visInvisIf(chapters_button.alpha > 0)
binding.chaptersButton.alpha = 1 - trueProgress
binding.webviewButton.alpha = trueProgress
binding.webviewButton.visibleIf(binding.webviewButton.alpha > 0)
binding.chaptersButton.visInvisIf(binding.chaptersButton.alpha > 0)
backgroundTintList =
ColorStateList.valueOf(lerpColor(primary, fullPrimary, trueProgress))
chapter_recycler.alpha = trueProgress
binding.chapterRecycler.alpha = trueProgress
if (activity.sheetManageNavColor && progress > 0f) {
activity.window.navigationBarColor =
lerpColor(ColorUtils.setAlphaComponent(primary, 0), primary, trueProgress)
@ -85,29 +92,29 @@ class ReaderChapterSheet @JvmOverloads constructor(context: Context, attrs: Attr
if (state == BottomSheetBehavior.STATE_COLLAPSED) {
shouldCollapse = true
sheetBehavior?.isHideable = false
(chapter_recycler.layoutManager as LinearLayoutManager).scrollToPositionWithOffset(
(binding.chapterRecycler.layoutManager as LinearLayoutManager).scrollToPositionWithOffset(
adapter?.getPosition(presenter.getCurrentChapter()?.chapter?.id ?: 0L) ?: 0,
chapter_recycler.height / 2 - 30.dpToPx
binding.chapterRecycler.height / 2 - 30.dpToPx
)
chapters_button.alpha = 1f
webview_button.alpha = 0f
binding.chaptersButton.alpha = 1f
binding.webviewButton.alpha = 0f
}
if (state == BottomSheetBehavior.STATE_EXPANDED) {
chapter_recycler.alpha = 1f
chapters_button.alpha = 0f
webview_button.alpha = 1f
binding.chapterRecycler.alpha = 1f
binding.chaptersButton.alpha = 0f
binding.webviewButton.alpha = 1f
if (activity.sheetManageNavColor) activity.window.navigationBarColor = primary
}
chapter_recycler.isClickable = state == BottomSheetBehavior.STATE_EXPANDED
chapter_recycler.isFocusable = state == BottomSheetBehavior.STATE_EXPANDED
webview_button.visibleIf(state != BottomSheetBehavior.STATE_COLLAPSED)
chapters_button.visInvisIf(state != BottomSheetBehavior.STATE_EXPANDED)
binding.chapterRecycler.isClickable = state == BottomSheetBehavior.STATE_EXPANDED
binding.chapterRecycler.isFocusable = state == BottomSheetBehavior.STATE_EXPANDED
binding.webviewButton.visibleIf(state != BottomSheetBehavior.STATE_COLLAPSED)
binding.chaptersButton.visInvisIf(state != BottomSheetBehavior.STATE_EXPANDED)
}
}
)
adapter = FastAdapter.with(itemAdapter)
chapter_recycler.adapter = adapter
binding.chapterRecycler.adapter = adapter
adapter?.onClickListener = { _, _, item, _ ->
if (!sheetBehavior.isExpanded()) {
false
@ -146,7 +153,7 @@ class ReaderChapterSheet @JvmOverloads constructor(context: Context, attrs: Attr
else fullPrimary
)
chapter_recycler.layoutManager = LinearLayoutManager(context)
binding.chapterRecycler.layoutManager = LinearLayoutManager(context)
refreshList()
}
@ -158,9 +165,9 @@ class ReaderChapterSheet @JvmOverloads constructor(context: Context, attrs: Attr
itemAdapter.clear()
itemAdapter.add(chapters)
(chapter_recycler.layoutManager as LinearLayoutManager).scrollToPositionWithOffset(
(binding.chapterRecycler.layoutManager as LinearLayoutManager).scrollToPositionWithOffset(
adapter?.getPosition(presenter.getCurrentChapter()?.chapter?.id ?: 0L) ?: 0,
chapter_recycler.height / 2 - 30.dpToPx
binding.chapterRecycler.height / 2 - 30.dpToPx
)
}
}

@ -8,10 +8,6 @@ import eu.kanade.tachiyomi.util.view.gone
import eu.kanade.tachiyomi.util.view.visInvisIf
import eu.kanade.tachiyomi.util.view.visible
import eu.kanade.tachiyomi.widget.TabbedBottomSheetDialog
import kotlinx.android.synthetic.main.reader_activity.*
import kotlinx.android.synthetic.main.reader_color_filter.view.*
import kotlinx.android.synthetic.main.recycler_with_scroller.view.*
import kotlinx.android.synthetic.main.tabbed_bottom_sheet.*
class TabbedReaderSettingsSheet(val readerActivity: ReaderActivity) : TabbedBottomSheetDialog(
readerActivity
@ -57,14 +53,14 @@ class TabbedReaderSettingsSheet(val readerActivity: ReaderActivity) : TabbedBott
filterView.activity = readerActivity
generalView.sheet = this
menu.gone()
binding.menu.gone()
val attrs = window?.attributes
val ogDim = attrs?.dimAmount ?: 0.25f
pager.adapter?.notifyDataSetChanged()
tabs.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
binding.pager.adapter?.notifyDataSetChanged()
binding.tabs.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
override fun onTabSelected(tab: TabLayout.Tab?) {
window?.setDimAmount(if (tab?.position == 2) 0f else ogDim)
readerActivity.appbar.visInvisIf(tab?.position != 2)
readerActivity.binding.appBar.visInvisIf(tab?.position != 2)
}
override fun onTabUnselected(tab: TabLayout.Tab?) {
@ -77,12 +73,12 @@ class TabbedReaderSettingsSheet(val readerActivity: ReaderActivity) : TabbedBott
override fun dismiss() {
super.dismiss()
readerActivity.appbar.visible()
readerActivity.binding.appBar.visible()
}
fun updateTabs(isWebtoon: Boolean) {
showWebview = isWebtoon
pager.adapter?.notifyDataSetChanged()
binding.pager.adapter?.notifyDataSetChanged()
pagedView.updatePrefs()
}
}

@ -16,7 +16,6 @@ import eu.kanade.tachiyomi.ui.reader.viewer.BaseViewer
import eu.kanade.tachiyomi.ui.reader.viewer.ViewerNavigation
import eu.kanade.tachiyomi.util.view.gone
import eu.kanade.tachiyomi.util.view.visible
import kotlinx.android.synthetic.main.reader_activity.*
import timber.log.Timber
/**
@ -107,9 +106,9 @@ abstract class PagerViewer(val activity: ReaderActivity) : BaseViewer {
config.navigationModeChangedListener = {
val showOnStart = config.navigationOverlayForNewUser
activity.navigation_overlay.setNavigation(config.navigator, showOnStart)
activity.binding.navigationOverlay.setNavigation(config.navigator, showOnStart)
}
config.navigationModeInvertedListener = { activity.navigation_overlay.showNavigationAgain() }
config.navigationModeInvertedListener = { activity.binding.navigationOverlay.showNavigationAgain() }
}
/**

@ -16,7 +16,6 @@ import eu.kanade.tachiyomi.ui.reader.model.ViewerChapters
import eu.kanade.tachiyomi.ui.reader.viewer.BaseViewer
import eu.kanade.tachiyomi.ui.reader.viewer.ViewerNavigation
import eu.kanade.tachiyomi.util.view.visible
import kotlinx.android.synthetic.main.reader_activity.*
import rx.subscriptions.CompositeSubscription
import timber.log.Timber
import kotlin.math.max
@ -126,9 +125,9 @@ class WebtoonViewer(val activity: ReaderActivity, val hasMargins: Boolean = fals
config.navigationModeChangedListener = {
val showOnStart = config.navigationOverlayForNewUser
activity.navigation_overlay.setNavigation(config.navigator, showOnStart)
activity.binding.navigationOverlay.setNavigation(config.navigator, showOnStart)
}
config.navigationModeInvertedListener = { activity.navigation_overlay.showNavigationAgain() }
config.navigationModeInvertedListener = { activity.binding.navigationOverlay.showNavigationAgain() }
frame.layoutParams = ViewGroup.LayoutParams(MATCH_PARENT, MATCH_PARENT)
frame.addView(recycler)

@ -47,7 +47,7 @@
android:visibility="gone" >
<FrameLayout
android:id="@+id/appbar"
android:id="@+id/app_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorSecondary">
@ -61,7 +61,8 @@
</FrameLayout>
</FrameLayout>
<include layout="@layout/reader_chapters_sheet" />
<include layout="@layout/reader_chapters_sheet"
android:id="@+id/reader_chapters_sheet"/>
<View
android:id="@+id/brightness_overlay"

@ -26,7 +26,7 @@
android:alpha="0.25"
android:contentDescription="@string/drag_handle"
android:src="@drawable/draggable_pill"
android:tint="?actionBarTintColor"
app:tint="?actionBarTintColor"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@ -38,7 +38,7 @@
android:background="?selectableItemBackgroundBorderless"
android:contentDescription="@string/next_title"
android:padding="@dimen/material_layout_keylines_screen_edge_margin"
android:tint="?actionBarTintColor"
app:tint="?actionBarTintColor"
android:tooltipText="@string/view_chapters"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
@ -52,7 +52,7 @@
android:background="?selectableItemBackgroundBorderless"
android:contentDescription="@string/open_in_webview"
android:padding="@dimen/material_layout_keylines_screen_edge_margin"
android:tint="?actionBarTintColor"
app:tint="?actionBarTintColor"
android:tooltipText="@string/open_in_webview"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
@ -61,7 +61,7 @@
app:srcCompat="@drawable/ic_open_in_webview_24dp" />
<eu.kanade.tachiyomi.ui.reader.ReaderSeekBar
android:id="@+id/page_seekbar"
android:id="@+id/page_seek_bar"
android:layout_width="0dp"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"

Loading…
Cancel
Save