From f64678d91555a2da73da3dc2ff8192cc6f176f33 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Tue, 4 Feb 2020 17:14:15 +0200 Subject: [PATCH] Update reader --- .../ui/common/BaseFullscreenActivity.kt | 7 ---- .../kotatsu/ui/details/ChaptersAdapter.kt | 3 +- .../kotatsu/ui/reader/ChaptersDialog.kt | 33 +++++++++++++++---- .../koitharu/kotatsu/ui/reader/PageHolder.kt | 10 +++--- .../kotatsu/ui/reader/ReaderActivity.kt | 14 +++++--- app/src/main/res/layout/item_page.xml | 2 +- 6 files changed, 45 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/org/koitharu/kotatsu/ui/common/BaseFullscreenActivity.kt b/app/src/main/java/org/koitharu/kotatsu/ui/common/BaseFullscreenActivity.kt index b98f2782a..cecc08ab1 100644 --- a/app/src/main/java/org/koitharu/kotatsu/ui/common/BaseFullscreenActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/ui/common/BaseFullscreenActivity.kt @@ -1,14 +1,9 @@ package org.koitharu.kotatsu.ui.common -import android.os.Bundle import android.view.View abstract class BaseFullscreenActivity : BaseActivity() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - } - override fun onWindowFocusChanged(hasFocus: Boolean) { super.onWindowFocusChanged(hasFocus) if (hasFocus) hideSystemUI() @@ -28,6 +23,4 @@ abstract class BaseFullscreenActivity : BaseActivity() { or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN) } - - abstract fun onFullscreenModeChanged(isFullscreen: Boolean) } \ No newline at end of file diff --git a/app/src/main/java/org/koitharu/kotatsu/ui/details/ChaptersAdapter.kt b/app/src/main/java/org/koitharu/kotatsu/ui/details/ChaptersAdapter.kt index 513501f1e..92e8a9e51 100644 --- a/app/src/main/java/org/koitharu/kotatsu/ui/details/ChaptersAdapter.kt +++ b/app/src/main/java/org/koitharu/kotatsu/ui/details/ChaptersAdapter.kt @@ -16,7 +16,8 @@ class ChaptersAdapter(onItemClickListener: OnRecyclerItemClickListener { +class ChaptersDialog : AlertDialogFragment(R.layout.dialog_chapters), + OnRecyclerItemClickListener { override fun onBuildDialog(builder: AlertDialog.Builder) { builder.setTitle(R.string.chapters) @@ -23,9 +25,25 @@ class ChaptersDialog : AlertDialogFragment(R.layout.dialog_chapters), OnRecycler } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - recyclerView_chapters.addItemDecoration(DividerItemDecoration(requireContext(), RecyclerView.VERTICAL)) + recyclerView_chapters.addItemDecoration( + DividerItemDecoration( + requireContext(), + RecyclerView.VERTICAL + ) + ) recyclerView_chapters.adapter = ChaptersAdapter(this).apply { arguments?.getParcelableArrayList(ARG_CHAPTERS)?.let(this::replaceData) + currentChapterId = arguments?.getLong(ARG_CURRENT_ID, 0L)?.takeUnless { it == 0L } + } + } + + override fun onResume() { + super.onResume() + val pos = (recyclerView_chapters.adapter as? ChaptersAdapter)?.currentChapterPosition + ?: RecyclerView.NO_POSITION + if (pos != RecyclerView.NO_POSITION) { + (recyclerView_chapters.layoutManager as? LinearLayoutManager) + ?.scrollToPositionWithOffset(pos, 100) } } @@ -38,10 +56,13 @@ class ChaptersDialog : AlertDialogFragment(R.layout.dialog_chapters), OnRecycler private const val TAG = "ChaptersDialog" private const val ARG_CHAPTERS = "chapters" + private const val ARG_CURRENT_ID = "current_id" - fun show(fm: FragmentManager, chapters: List) = ChaptersDialog() - .withArgs(1) { - putParcelableArrayList(ARG_CHAPTERS, ArrayList(chapters)) - }.show(fm, TAG) + fun show(fm: FragmentManager, chapters: List, currentId: Long = 0L) = + ChaptersDialog() + .withArgs(2) { + putParcelableArrayList(ARG_CHAPTERS, ArrayList(chapters)) + putLong(ARG_CURRENT_ID, currentId) + }.show(fm, TAG) } } \ No newline at end of file diff --git a/app/src/main/java/org/koitharu/kotatsu/ui/reader/PageHolder.kt b/app/src/main/java/org/koitharu/kotatsu/ui/reader/PageHolder.kt index c0cefa387..e993e7076 100644 --- a/app/src/main/java/org/koitharu/kotatsu/ui/reader/PageHolder.kt +++ b/app/src/main/java/org/koitharu/kotatsu/ui/reader/PageHolder.kt @@ -23,23 +23,23 @@ class PageHolder(parent: ViewGroup, private val loader: PageLoader) : BaseViewHo override fun onBind(data: MangaPage, extra: Unit) { layout_error.isVisible = false - progressBar.show() + progressBar.isVisible = true ssiv.recycle() loader.load(data.url) { ssiv.setImage(ImageSource.uri(it.toUri())) } } - override fun onReady() { - progressBar.hide() - } + override fun onReady() = Unit override fun onImageLoadError(e: Exception) { textView_error.text = e.getDisplayMessage(context.resources) layout_error.isVisible = true } - override fun onImageLoaded() = Unit + override fun onImageLoaded() { + progressBar.isVisible = false + } override fun onTileLoadError(e: Exception?) = Unit diff --git a/app/src/main/java/org/koitharu/kotatsu/ui/reader/ReaderActivity.kt b/app/src/main/java/org/koitharu/kotatsu/ui/reader/ReaderActivity.kt index c95046071..2cce36dee 100644 --- a/app/src/main/java/org/koitharu/kotatsu/ui/reader/ReaderActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/ui/reader/ReaderActivity.kt @@ -76,7 +76,7 @@ class ReaderActivity : BaseFullscreenActivity(), ReaderView { override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) { R.id.action_chapters -> { - ChaptersDialog.show(supportFragmentManager, state.manga.chapters.orEmpty()) + ChaptersDialog.show(supportFragmentManager, state.manga.chapters.orEmpty(), state.chapterId) true } else -> super.onOptionsItemSelected(item) @@ -99,9 +99,15 @@ class ReaderActivity : BaseFullscreenActivity(), ReaderView { } } - override fun onFullscreenModeChanged(isFullscreen: Boolean) { - appbar_top.isGone = isFullscreen - appbar_bottom.isGone = isFullscreen + private fun onTapCenter() { + if (appbar_top.isVisible) { + appbar_top.isGone = false + appbar_bottom.isGone = false + } else { + appbar_top.isGone = true + appbar_bottom.isGone = true + showSystemUI() + } } companion object { diff --git a/app/src/main/res/layout/item_page.xml b/app/src/main/res/layout/item_page.xml index 9d1ba65a4..d8fa73526 100644 --- a/app/src/main/res/layout/item_page.xml +++ b/app/src/main/res/layout/item_page.xml @@ -10,7 +10,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" /> -