diff --git a/app/src/main/java/org/koitharu/kotatsu/details/ui/DetailsActivity.kt b/app/src/main/java/org/koitharu/kotatsu/details/ui/DetailsActivity.kt index 923c7faf6..9add56679 100644 --- a/app/src/main/java/org/koitharu/kotatsu/details/ui/DetailsActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/details/ui/DetailsActivity.kt @@ -21,6 +21,7 @@ import androidx.core.view.updatePadding import androidx.lifecycle.lifecycleScope import com.google.android.material.badge.BadgeDrawable import com.google.android.material.dialog.MaterialAlertDialogBuilder +import com.google.android.material.snackbar.BaseTransientBottomBar import com.google.android.material.snackbar.Snackbar import dagger.hilt.android.AndroidEntryPoint import javax.inject.Inject @@ -99,6 +100,7 @@ class DetailsActivity : viewModel.onMangaRemoved.observe(this, ::onMangaRemoved) viewModel.onError.observe(this, ::onError) viewModel.onShowToast.observe(this) { + makeSnackbar(getString(it), Snackbar.LENGTH_SHORT).show() } viewModel.historyInfo.observe(this, ::onHistoryChanged) viewModel.selectedBranchName.observe(this) { @@ -167,7 +169,7 @@ class DetailsActivity : val hasChapters = !manga.chapters.isNullOrEmpty() binding.buttonRead.isEnabled = hasChapters invalidateOptionsMenu() - showBottomSheet(hasChapters) + showBottomSheet(manga.chapters != null) binding.groupHeader?.isVisible = hasChapters } @@ -191,8 +193,7 @@ class DetailsActivity : finishAfterTransition() } else -> { - val snackbar = Snackbar.make( - binding.containerDetails, + val snackbar = makeSnackbar( e.getDisplayMessage(resources), if (viewModel.manga.value?.chapters == null) { Snackbar.LENGTH_INDEFINITE @@ -200,9 +201,6 @@ class DetailsActivity : Snackbar.LENGTH_LONG }, ) - if (binding.layoutBottom?.isVisible == true) { - snackbar.anchorView = binding.headerChapters - } if (e.isReportable()) { snackbar.setAction(R.string.details) { MangaErrorDialog.show(supportFragmentManager, manga, e) @@ -250,8 +248,7 @@ class DetailsActivity : fun showChapterMissingDialog(chapterId: Long) { val remoteManga = viewModel.getRemoteManga() if (remoteManga == null) { - val snackbar = Snackbar.make(binding.containerDetails, R.string.chapter_is_missing, Snackbar.LENGTH_SHORT) - snackbar.anchorView = binding.headerChapters + val snackbar = makeSnackbar(getString(R.string.chapter_is_missing), Snackbar.LENGTH_SHORT) snackbar.show() return } @@ -313,6 +310,14 @@ class DetailsActivity : view.isVisible = isVisible } + private fun makeSnackbar(text: CharSequence, @BaseTransientBottomBar.Duration duration: Int): Snackbar { + val sb = Snackbar.make(binding.containerDetails, text, duration) + if (binding.layoutBottom?.isVisible == true) { + sb.anchorView = binding.headerChapters + } + return sb + } + companion object { fun newIntent(context: Context, manga: Manga): Intent {