From ac79557e2278798697b085e2dd34203f1601fc2d Mon Sep 17 00:00:00 2001 From: Zakhar Timoshenko Date: Thu, 21 Jul 2022 08:11:58 +0300 Subject: [PATCH] Fix merging artifacts attempt 2 --- .../kotatsu/reader/ui/ReaderActivity.kt | 51 +++++++------------ app/src/main/res/menu/opt_reader_bottom.xml | 25 ++------- 2 files changed, 20 insertions(+), 56 deletions(-) diff --git a/app/src/main/java/org/koitharu/kotatsu/reader/ui/ReaderActivity.kt b/app/src/main/java/org/koitharu/kotatsu/reader/ui/ReaderActivity.kt index c3f173cd4..ab6ec12c5 100644 --- a/app/src/main/java/org/koitharu/kotatsu/reader/ui/ReaderActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/reader/ui/ReaderActivity.kt @@ -12,7 +12,6 @@ import androidx.core.view.OnApplyWindowInsetsListener import androidx.core.view.WindowInsetsCompat import androidx.core.view.isVisible import androidx.core.view.updatePadding -import androidx.lifecycle.flowWithLifecycle import androidx.lifecycle.lifecycleScope import androidx.transition.Slide import androidx.transition.TransitionManager @@ -20,8 +19,6 @@ import androidx.transition.TransitionSet import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.snackbar.Snackbar import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.flow.launchIn -import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import org.koin.android.ext.android.get @@ -44,7 +41,6 @@ import org.koitharu.kotatsu.reader.ui.thumbnails.OnPageSelectListener import org.koitharu.kotatsu.reader.ui.thumbnails.PagesThumbnailsSheet import org.koitharu.kotatsu.settings.SettingsActivity import org.koitharu.kotatsu.utils.GridTouchHelper -import org.koitharu.kotatsu.utils.ScreenOrientationHelper import org.koitharu.kotatsu.utils.ShareHelper import org.koitharu.kotatsu.utils.ext.* import java.util.concurrent.TimeUnit @@ -68,7 +64,6 @@ class ReaderActivity : } private lateinit var touchHelper: GridTouchHelper - private lateinit var orientationHelper: ScreenOrientationHelper private lateinit var controlDelegate: ReaderControlDelegate private val savePageRequest = registerForActivityResult(PageSaveContract(), this) private var gestureInsets: Insets = Insets.NONE @@ -81,18 +76,12 @@ class ReaderActivity : readerManager = ReaderManager(supportFragmentManager, R.id.container) supportActionBar?.setDisplayHomeAsUpEnabled(true) touchHelper = GridTouchHelper(this, this) - orientationHelper = ScreenOrientationHelper(this) controlDelegate = ReaderControlDelegate(lifecycleScope, get(), this) - binding.toolbarBottom.inflateMenu(R.menu.opt_reader_bottom) binding.toolbarBottom.setOnMenuItemClickListener(::onOptionsItemSelected) + binding.slider.setLabelFormatter(PageLabelFormatter()) + ReaderSliderListener(this, viewModel).attachToSlider(binding.slider) insetsDelegate.interceptingWindowInsetsListener = this - orientationHelper.observeAutoOrientation() - .flowWithLifecycle(lifecycle) - .onEach { - binding.toolbarBottom.menu.findItem(R.id.action_screen_rotate).isVisible = !it - }.launchIn(lifecycleScope) - viewModel.onError.observe(this, this::onError) viewModel.readerMode.observe(this, this::onInitReader) viewModel.onPageSaved.observe(this, this::onPageSaved) @@ -114,15 +103,6 @@ class ReaderActivity : if (readerManager.currentMode != mode) { readerManager.replace(mode) } - val iconRes = when (mode) { - ReaderMode.WEBTOON -> R.drawable.ic_script - ReaderMode.REVERSED -> R.drawable.ic_read_reversed - ReaderMode.STANDARD -> R.drawable.ic_book_page - } - binding.toolbarBottom.menu.findItem(R.id.action_reader_mode).run { - setIcon(iconRes) - setVisible(true) - } if (binding.appbarTop.isVisible) { lifecycle.postDelayed(hideUiRunnable, TimeUnit.SECONDS.toMillis(1)) } @@ -135,7 +115,7 @@ class ReaderActivity : override fun onOptionsItemSelected(item: MenuItem): Boolean { when (item.itemId) { - R.id.action_reader_mode -> { + R.id.action_menu -> { val currentMode = readerManager.currentMode ?: return false ReaderConfigDialog.show(supportFragmentManager, currentMode) } @@ -149,9 +129,6 @@ class ReaderActivity : viewModel.getCurrentState()?.chapterId ?: 0L ) } - R.id.action_screen_rotate -> { - orientationHelper.toggleOrientation() - } R.id.action_pages_thumbs -> { val pages = viewModel.getCurrentChapterPages() if (!pages.isNullOrEmpty()) { @@ -165,11 +142,6 @@ class ReaderActivity : return false } } - R.id.action_save_page -> { - viewModel.saveCurrentState(readerManager.currentReader?.getCurrentState()) - val page = viewModel.getCurrentPage() ?: return false - viewModel.saveCurrentPage(page, savePageRequest) - } R.id.action_bookmark -> { if (viewModel.isBookmarkAdded.value == true) { viewModel.removeBookmark() @@ -197,7 +169,6 @@ class ReaderActivity : val menu = binding.toolbarBottom.menu menu.findItem(R.id.action_bookmark).isVisible = hasPages menu.findItem(R.id.action_pages_thumbs).isVisible = hasPages - menu.findItem(R.id.action_save_page).isVisible = hasPages } private fun onError(e: Throwable) { @@ -347,16 +318,28 @@ class ReaderActivity : private fun onUiStateChanged(uiState: ReaderUiState?, previous: ReaderUiState?) { title = uiState?.chapterName ?: uiState?.mangaName ?: getString(R.string.loading_) - supportActionBar?.subtitle = if (uiState != null && uiState.chapterNumber in 1..uiState.chaptersTotal) { + if (uiState == null) { + supportActionBar?.subtitle = null + binding.slider.isVisible = false + return + } + supportActionBar?.subtitle = if (uiState.chapterNumber in 1..uiState.chaptersTotal) { getString(R.string.chapter_d_of_d, uiState.chapterNumber, uiState.chaptersTotal) } else { null } - if (uiState != null && previous?.chapterName != null && uiState.chapterName != previous.chapterName) { + if (previous?.chapterName != null && uiState.chapterName != previous.chapterName) { if (!uiState.chapterName.isNullOrEmpty()) { binding.toastView.showTemporary(uiState.chapterName, TOAST_DURATION) } } + if (uiState.totalPages > 0) { + binding.slider.value = uiState.currentPage.toFloat() + binding.slider.valueTo = uiState.totalPages.toFloat() + binding.slider.isVisible = true + } else { + binding.slider.isVisible = false + } } private inner class ErrorDialogListener( diff --git a/app/src/main/res/menu/opt_reader_bottom.xml b/app/src/main/res/menu/opt_reader_bottom.xml index 569bffc11..c9dbdcba5 100644 --- a/app/src/main/res/menu/opt_reader_bottom.xml +++ b/app/src/main/res/menu/opt_reader_bottom.xml @@ -20,28 +20,9 @@ app:showAsAction="always" /> - - - - - -