From a284f5cd082ecb1c8ef9dd442bf6e44cbfc8db5c Mon Sep 17 00:00:00 2001 From: arkon Date: Mon, 3 Aug 2020 14:08:35 -0400 Subject: [PATCH] Use dialog to show what's new release info (cherry picked from commit 88032e11df7bdebd21e5684b943da3cc373ef389) # Conflicts: # app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourceController.kt # app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt --- .../ui/browse/source/SourceController.kt | 10 ++-- .../kanade/tachiyomi/ui/main/MainActivity.kt | 46 +++---------------- ...troller.kt => WhatsNewDialogController.kt} | 2 +- .../tachiyomi/ui/more/AboutController.kt | 4 +- 4 files changed, 15 insertions(+), 47 deletions(-) rename app/src/main/java/eu/kanade/tachiyomi/ui/main/{ChangelogDialogController.kt => WhatsNewDialogController.kt} (96%) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourceController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourceController.kt index f71a49203..bbf23fbde 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourceController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourceController.kt @@ -207,7 +207,7 @@ class SourceController(bundle: Bundle? = null) : ) // SY <-- - SourceOptionsDialog(item, items).showDialog(router) + SourceOptionsDialog(item.source.toString(), items).showDialog(router) } private fun disableSource(source: Source) { @@ -396,17 +396,17 @@ class SourceController(bundle: Bundle? = null) : class SourceOptionsDialog(bundle: Bundle? = null) : DialogController(bundle) { - private lateinit var item: SourceItem + private lateinit var source: String private lateinit var items: List Unit>> - constructor(item: SourceItem, items: List Unit>>) : this() { - this.item = item + constructor(source: String, items: List Unit>>) : this() { + this.source = source this.items = items } override fun onCreateDialog(savedViewState: Bundle?): Dialog { return MaterialDialog(activity!!) - .title(text = item.source.toString()) + .title(text = source) .listItems( items = items.map { it.first }, waitForPositiveButton = false diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt index ae71281f7..2d6eb76e2 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt @@ -5,14 +5,11 @@ import android.app.SearchManager import android.content.Intent import android.os.Bundle import android.os.Looper -import android.view.Gravity import android.view.View import android.view.ViewGroup import android.widget.Toast import androidx.coordinatorlayout.widget.CoordinatorLayout -import androidx.core.net.toUri import androidx.core.view.isVisible -import androidx.core.view.updateLayoutParams import com.bluelinelabs.conductor.Conductor import com.bluelinelabs.conductor.Controller import com.bluelinelabs.conductor.ControllerChangeHandler @@ -20,11 +17,10 @@ import com.bluelinelabs.conductor.Router import com.bluelinelabs.conductor.RouterTransaction import com.google.android.material.appbar.AppBarLayout import com.google.android.material.behavior.HideBottomViewOnScrollBehavior -import com.google.android.material.snackbar.Snackbar import com.google.android.material.tabs.TabLayout -import eu.kanade.tachiyomi.BuildConfig import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.notification.NotificationReceiver +import eu.kanade.tachiyomi.data.preference.asImmediateFlow import eu.kanade.tachiyomi.databinding.MainActivityBinding import eu.kanade.tachiyomi.extension.api.ExtensionGithubApi import eu.kanade.tachiyomi.ui.base.activity.BaseActivity @@ -44,8 +40,6 @@ import eu.kanade.tachiyomi.ui.recent.history.HistoryController import eu.kanade.tachiyomi.ui.recent.updates.UpdatesController import eu.kanade.tachiyomi.util.lang.launchIO import eu.kanade.tachiyomi.util.lang.launchUI -import eu.kanade.tachiyomi.util.system.toast -import eu.kanade.tachiyomi.util.view.snack import exh.EH_SOURCE_ID import exh.EIGHTMUSES_SOURCE_ID import exh.EXHMigrations @@ -64,7 +58,6 @@ import kotlinx.android.synthetic.main.main_activity.appbar import kotlinx.android.synthetic.main.main_activity.tabs import kotlinx.coroutines.delay import kotlinx.coroutines.flow.launchIn -import kotlinx.coroutines.flow.onEach import timber.log.Timber class MainActivity : BaseActivity() { @@ -187,13 +180,15 @@ class MainActivity : BaseActivity() { // Show changelog prompt on update // TODO // if (Migrations.upgrade(preferences) && !BuildConfig.DEBUG) { -// showUpdateInfoSnackbar() +// WhatsNewDialogController().showDialog(router) // } +// WhatsNewDialogController().showDialog(router) + // EXH --> // Perform EXH specific migrations if (EXHMigrations.upgrade(preferences)) { - ChangelogDialogController().showDialog(router) + WhatsNewDialogController().showDialog(router) } // EXH <-- @@ -237,9 +232,8 @@ class MainActivity : BaseActivity() { } // SY --> - setExtensionsBadge() - preferences.extensionUpdatesCount().asFlow() - .onEach { setExtensionsBadge() } + preferences.extensionUpdatesCount() + .asImmediateFlow { setExtensionsBadge() } .launchIn(scope) } @@ -460,32 +454,6 @@ class MainActivity : BaseActivity() { } } - private fun showUpdateInfoSnackbar() { - val snack = binding.rootCoordinator.snack( - getString(R.string.updated_version, BuildConfig.VERSION_NAME), - Snackbar.LENGTH_INDEFINITE - ) { - setAction(R.string.whats_new) { - val url = "https://github.com/inorichi/tachiyomi/releases/tag/v${BuildConfig.VERSION_NAME}" - val intent = Intent(Intent.ACTION_VIEW, url.toUri()) - startActivity(intent) - } - - // Ensure the snackbar sits above the bottom nav - view.updateLayoutParams { - anchorId = binding.bottomNav.id - anchorGravity = Gravity.TOP - gravity = Gravity.TOP - } - } - - // Manually handle dismiss delay since Snackbar.LENGTH_LONG is a too short - launchIO { - delay(10000) - snack.dismiss() - } - } - companion object { // Shortcut actions const val SHORTCUT_LIBRARY = "eu.kanade.tachiyomi.SHOW_LIBRARY" diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/main/ChangelogDialogController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/main/WhatsNewDialogController.kt similarity index 96% rename from app/src/main/java/eu/kanade/tachiyomi/ui/main/ChangelogDialogController.kt rename to app/src/main/java/eu/kanade/tachiyomi/ui/main/WhatsNewDialogController.kt index 9c01a60e0..0f2317dbd 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/main/ChangelogDialogController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/main/WhatsNewDialogController.kt @@ -12,7 +12,7 @@ import eu.kanade.tachiyomi.ui.base.controller.DialogController import exh.syDebugVersion import it.gmariotti.changelibs.library.view.ChangeLogRecyclerView -class ChangelogDialogController : DialogController() { +class WhatsNewDialogController : DialogController() { override fun onCreateDialog(savedViewState: Bundle?): Dialog { val activity = activity!! diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/more/AboutController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/more/AboutController.kt index 7622c53dd..e93ff8398 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/more/AboutController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/more/AboutController.kt @@ -14,7 +14,7 @@ import eu.kanade.tachiyomi.data.updater.UpdateChecker import eu.kanade.tachiyomi.data.updater.UpdateResult import eu.kanade.tachiyomi.data.updater.UpdaterService import eu.kanade.tachiyomi.ui.base.controller.DialogController -import eu.kanade.tachiyomi.ui.main.ChangelogDialogController +import eu.kanade.tachiyomi.ui.main.WhatsNewDialogController import eu.kanade.tachiyomi.ui.setting.SettingsController import eu.kanade.tachiyomi.util.lang.launchNow import eu.kanade.tachiyomi.util.lang.toDateTimestampString @@ -72,7 +72,7 @@ class AboutController : SettingsController() { onClick { // SY --> - ChangelogDialogController().showDialog(router) + WhatsNewDialogController().showDialog(router) // SY <-- } }