mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-30 22:07:57 +01:00 
			
		
		
		
	Use dialog to show what's new release info
This commit is contained in:
		| @@ -149,7 +149,7 @@ class SourceController : | ||||
|             ) | ||||
|         } | ||||
|  | ||||
|         SourceOptionsDialog(item, items).showDialog(router) | ||||
|         SourceOptionsDialog(item.source.toString(), items).showDialog(router) | ||||
|     } | ||||
|  | ||||
|     private fun disableSource(source: Source) { | ||||
| @@ -270,17 +270,17 @@ class SourceController : | ||||
|  | ||||
|     class SourceOptionsDialog(bundle: Bundle? = null) : DialogController(bundle) { | ||||
|  | ||||
|         private lateinit var item: SourceItem | ||||
|         private lateinit var source: String | ||||
|         private lateinit var items: List<Pair<String, () -> Unit>> | ||||
|  | ||||
|         constructor(item: SourceItem, items: List<Pair<String, () -> Unit>>) : this() { | ||||
|             this.item = item | ||||
|         constructor(source: String, items: List<Pair<String, () -> 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 | ||||
|   | ||||
| @@ -4,14 +4,11 @@ import android.app.Activity | ||||
| import android.app.SearchManager | ||||
| import android.content.Intent | ||||
| import android.os.Bundle | ||||
| 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 | ||||
| @@ -19,12 +16,12 @@ 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.Migrations | ||||
| 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 | ||||
| @@ -45,14 +42,12 @@ 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 java.util.Date | ||||
| import java.util.concurrent.TimeUnit | ||||
| 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<MainActivityBinding>() { | ||||
| @@ -155,13 +150,14 @@ class MainActivity : BaseActivity<MainActivityBinding>() { | ||||
|         if (savedInstanceState == null) { | ||||
|             // Show changelog prompt on update | ||||
|             if (Migrations.upgrade(preferences) && !BuildConfig.DEBUG) { | ||||
|                 showUpdateInfoSnackbar() | ||||
|                 WhatsNewDialogController().showDialog(router) | ||||
|             } | ||||
|  | ||||
|             WhatsNewDialogController().showDialog(router) | ||||
|         } | ||||
|  | ||||
|         setExtensionsBadge() | ||||
|         preferences.extensionUpdatesCount().asFlow() | ||||
|             .onEach { setExtensionsBadge() } | ||||
|         preferences.extensionUpdatesCount() | ||||
|             .asImmediateFlow { setExtensionsBadge() } | ||||
|             .launchIn(scope) | ||||
|     } | ||||
|  | ||||
| @@ -382,32 +378,6 @@ class MainActivity : BaseActivity<MainActivityBinding>() { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     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<CoordinatorLayout.LayoutParams> { | ||||
|                 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" | ||||
|   | ||||
| @@ -0,0 +1,24 @@ | ||||
| package eu.kanade.tachiyomi.ui.main | ||||
|  | ||||
| import android.app.Dialog | ||||
| import android.content.Intent | ||||
| import android.os.Bundle | ||||
| import androidx.core.net.toUri | ||||
| import com.afollestad.materialdialogs.MaterialDialog | ||||
| import eu.kanade.tachiyomi.BuildConfig | ||||
| import eu.kanade.tachiyomi.R | ||||
| import eu.kanade.tachiyomi.ui.base.controller.DialogController | ||||
|  | ||||
| class WhatsNewDialogController(bundle: Bundle? = null) : DialogController(bundle) { | ||||
|  | ||||
|     override fun onCreateDialog(savedViewState: Bundle?): Dialog { | ||||
|         return MaterialDialog(activity!!) | ||||
|             .title(text = activity!!.getString(R.string.updated_version, BuildConfig.VERSION_NAME)) | ||||
|             .positiveButton(android.R.string.ok) | ||||
|             .neutralButton(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) | ||||
|             } | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user