Replace material-dialogs with Material Components' SY

This commit is contained in:
Jobobby04
2021-07-18 20:17:58 -04:00
parent d4993d1b71
commit cf54851342
40 changed files with 822 additions and 733 deletions
@@ -5,7 +5,7 @@ import android.app.Activity
import android.util.Log
import androidx.core.text.HtmlCompat
import androidx.preference.PreferenceScreen
import com.afollestad.materialdialogs.MaterialDialog
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import eu.kanade.tachiyomi.ui.setting.SettingsController
import eu.kanade.tachiyomi.util.preference.defaultValue
import eu.kanade.tachiyomi.util.preference.onClick
@@ -36,23 +36,13 @@ class SettingsDebugController : SettingsController() {
try {
val result = it.call(DebugFunctions)
val text = "Function returned result:\n\n$result"
MaterialDialog(context)
.title(text = title.toString())
.message(text = text) {
messageTextView.apply {
setHorizontallyScrolling(true)
setTextIsSelectable(true)
}
}
MaterialAlertDialogBuilder(context)
.setTitle(title.toString())
.setMessage(text)
} catch (t: Throwable) {
val text = "Function threw exception:\n\n${Log.getStackTraceString(t)}"
MaterialDialog(context)
.message(text = text) {
messageTextView.apply {
setHorizontallyScrolling(true)
setTextIsSelectable(true)
}
}
MaterialAlertDialogBuilder(context)
.setMessage(text)
}.show()
}
}
@@ -2,7 +2,7 @@ package exh.favorites
import android.content.Context
import androidx.core.text.HtmlCompat
import com.afollestad.materialdialogs.MaterialDialog
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import uy.kohesive.injekt.injectLazy
@@ -10,12 +10,12 @@ import uy.kohesive.injekt.injectLazy
class FavoritesIntroDialog {
private val prefs: PreferencesHelper by injectLazy()
fun show(context: Context) = MaterialDialog(context)
.title(R.string.favorites_sync_notes)
.message(text = HtmlCompat.fromHtml(context.getString(R.string.favorites_sync_notes_message), HtmlCompat.FROM_HTML_MODE_LEGACY))
.positiveButton(android.R.string.ok) {
fun show(context: Context) = MaterialAlertDialogBuilder(context)
.setTitle(R.string.favorites_sync_notes)
.setMessage(HtmlCompat.fromHtml(context.getString(R.string.favorites_sync_notes_message), HtmlCompat.FROM_HTML_MODE_LEGACY))
.setPositiveButton(android.R.string.ok) { _, _ ->
prefs.exhShowSyncIntro().set(false)
}
.cancelable(false)
.setCancelable(false)
.show()
}
@@ -3,7 +3,8 @@ package exh.uconfig
import android.app.Dialog
import android.os.Bundle
import android.view.View
import com.afollestad.materialdialogs.MaterialDialog
import androidx.appcompat.app.AlertDialog
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.ui.base.controller.DialogController
import eu.kanade.tachiyomi.util.lang.launchIO
@@ -14,7 +15,7 @@ import kotlinx.coroutines.MainScope
import kotlinx.coroutines.cancel
class ConfiguringDialogController : DialogController() {
private var materialDialog: MaterialDialog? = null
private var materialDialog: AlertDialog? = null
val scope = MainScope()
override fun onCreateDialog(savedViewState: Bundle?): Dialog {
@@ -28,10 +29,10 @@ class ConfiguringDialogController : DialogController() {
} catch (e: Exception) {
launchUI {
activity?.let {
MaterialDialog(it)
.title(R.string.eh_settings_configuration_failed)
.message(text = it.getString(R.string.eh_settings_configuration_failed_message, e.message))
.positiveButton(android.R.string.ok)
MaterialAlertDialogBuilder(it)
.setTitle(R.string.eh_settings_configuration_failed)
.setMessage(it.getString(R.string.eh_settings_configuration_failed_message, e.message))
.setPositiveButton(android.R.string.ok, null)
.show()
}
}
@@ -43,10 +44,11 @@ class ConfiguringDialogController : DialogController() {
}
}
return MaterialDialog(activity!!)
.title(R.string.eh_settings_uploading_to_server)
.message(R.string.eh_settings_uploading_to_server_message)
.cancelable(false)
return MaterialAlertDialogBuilder(activity!!)
.setTitle(R.string.eh_settings_uploading_to_server)
.setMessage(R.string.eh_settings_uploading_to_server_message)
.setCancelable(false)
.create()
.also {
materialDialog = it
}
@@ -2,8 +2,8 @@ package exh.uconfig
import android.app.Dialog
import android.os.Bundle
import com.afollestad.materialdialogs.MaterialDialog
import com.bluelinelabs.conductor.Router
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.ui.base.controller.DialogController
@@ -14,14 +14,15 @@ import uy.kohesive.injekt.injectLazy
class WarnConfigureDialogController : DialogController() {
private val prefs: PreferencesHelper by injectLazy()
override fun onCreateDialog(savedViewState: Bundle?): Dialog {
return MaterialDialog(activity!!)
.title(R.string.settings_profile_note)
.message(R.string.settings_profile_note_message)
.positiveButton(android.R.string.ok) {
return MaterialAlertDialogBuilder(activity!!)
.setTitle(R.string.settings_profile_note)
.setMessage(R.string.settings_profile_note_message)
.setPositiveButton(android.R.string.ok) { _, _ ->
prefs.exhShowSettingsUploadWarning().set(false)
ConfiguringDialogController().showDialog(router)
}
.cancelable(false)
.setCancelable(false)
.create()
}
companion object {
@@ -3,7 +3,7 @@ package exh.ui.batchadd
import android.view.LayoutInflater
import android.view.View
import android.widget.TextView
import com.afollestad.materialdialogs.MaterialDialog
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.databinding.EhFragmentBatchAddBinding
import eu.kanade.tachiyomi.ui.base.controller.NucleusController
@@ -143,12 +143,10 @@ class BatchAddController : NucleusController<EhFragmentBatchAddBinding, BatchAdd
private fun noGalleriesSpecified() {
activity?.let {
MaterialDialog(it)
.title(R.string.batch_add_no_valid_galleries)
.message(R.string.batch_add_no_valid_galleries_message)
.positiveButton(android.R.string.ok) { materialDialog -> materialDialog.dismiss() }
.cancelable(true)
.cancelOnTouchOutside(true)
MaterialAlertDialogBuilder(it)
.setTitle(R.string.batch_add_no_valid_galleries)
.setMessage(R.string.batch_add_no_valid_galleries_message)
.setPositiveButton(android.R.string.ok, null)
.show()
}
}
@@ -11,7 +11,7 @@ import android.webkit.JsResult
import android.webkit.WebChromeClient
import android.webkit.WebView
import androidx.appcompat.app.AppCompatActivity
import com.afollestad.materialdialogs.MaterialDialog
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.databinding.EhActivityCaptchaBinding
@@ -190,12 +190,10 @@ class BrowserActionActivity : AppCompatActivity() {
xLogE("Captcha solve Error", IllegalStateException("Captcha solve failure!"))
withUIContext {
binding.webview.evaluateJavascript(SOLVE_UI_SCRIPT_HIDE, null)
MaterialDialog(this@BrowserActionActivity)
.title(R.string.captcha_solve_failure)
.message(R.string.captcha_solve_failure_message)
.cancelable(true)
.cancelOnTouchOutside(true)
.positiveButton(android.R.string.ok)
MaterialAlertDialogBuilder(this@BrowserActionActivity)
.setTitle(R.string.captcha_solve_failure)
.setMessage(R.string.captcha_solve_failure_message)
.setPositiveButton(android.R.string.ok, null)
.show()
}
}
@@ -5,10 +5,7 @@ import android.os.Bundle
import android.view.MenuItem
import androidx.core.view.isVisible
import androidx.lifecycle.lifecycleScope
import com.afollestad.materialdialogs.MaterialDialog
import com.afollestad.materialdialogs.callbacks.onCancel
import com.afollestad.materialdialogs.callbacks.onDismiss
import com.afollestad.materialdialogs.list.listItemsSingleChoice
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.database.models.Chapter
import eu.kanade.tachiyomi.data.database.models.Manga
@@ -83,14 +80,12 @@ class InterceptActivity : BaseViewBindingActivity<EhActivityInterceptBinding>()
is InterceptResult.Failure -> {
binding.interceptProgress.isVisible = false
binding.interceptStatus.text = this.getString(R.string.error_with_reason, it.reason)
MaterialDialog(this)
.title(R.string.chapter_error)
.message(text = this.getString(R.string.could_not_open_manga, it.reason))
.cancelable(true)
.cancelOnTouchOutside(true)
.positiveButton(android.R.string.ok)
.onCancel { onBackPressed() }
.onDismiss { onBackPressed() }
MaterialAlertDialogBuilder(this)
.setTitle(R.string.chapter_error)
.setMessage(getString(R.string.could_not_open_manga, it.reason))
.setPositiveButton(android.R.string.ok, null)
.setOnCancelListener { onBackPressed() }
.setOnDismissListener { onBackPressed() }
.show()
}
}
@@ -114,9 +109,10 @@ class InterceptActivity : BaseViewBindingActivity<EhActivityInterceptBinding>()
status.value = InterceptResult.Loading
val sources = galleryAdder.pickSource(gallery)
if (sources.size > 1) {
MaterialDialog(this)
.title(R.string.label_sources)
.listItemsSingleChoice(items = sources.map { it.toString() }) { _, index, _ ->
MaterialAlertDialogBuilder(this)
.setTitle(R.string.label_sources)
.setSingleChoiceItems(sources.map { it.toString() }.toTypedArray(), 0) { dialog, index ->
dialog.dismiss()
loadGalleryEnd(gallery, sources[index])
}
.show()
@@ -13,8 +13,7 @@ import android.widget.Toast
import androidx.core.view.isInvisible
import androidx.core.view.isVisible
import androidx.lifecycle.lifecycleScope
import com.afollestad.materialdialogs.MaterialDialog
import com.afollestad.materialdialogs.input.input
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import eu.kanade.tachiyomi.BuildConfig
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
@@ -25,6 +24,7 @@ import eu.kanade.tachiyomi.util.lang.launchUI
import eu.kanade.tachiyomi.util.system.WebViewUtil
import eu.kanade.tachiyomi.util.system.setDefaultSettings
import eu.kanade.tachiyomi.util.system.toast
import eu.kanade.tachiyomi.widget.materialdialogs.setTextInput
import exh.log.xLogD
import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach
@@ -147,18 +147,18 @@ class EhLoginActivity : BaseViewBindingActivity<EhActivityLoginBinding>() {
private fun openIgneousDialog() {
var igneous: CharSequence? = null
MaterialDialog(this)
.title(R.string.custom_igneous_cookie)
.message(R.string.custom_igneous_cookie_message)
.input { _, charSequence ->
igneous = charSequence
MaterialAlertDialogBuilder(this)
.setTitle(R.string.custom_igneous_cookie)
.setMessage(R.string.custom_igneous_cookie_message)
.setTextInput { igneousText ->
igneous = igneousText
}
.positiveButton(android.R.string.ok) {
.setPositiveButton(android.R.string.ok) { _, _ ->
if (!igneous.isNullOrBlank()) {
this.igneous = igneous?.toString()?.trim()
}
}
.negativeButton(android.R.string.cancel)
.setNegativeButton(android.R.string.cancel, null)
.show()
}
@@ -5,11 +5,10 @@ import android.os.Bundle
import android.view.LayoutInflater
import androidx.core.os.bundleOf
import androidx.core.view.isVisible
import com.afollestad.materialdialogs.MaterialDialog
import com.afollestad.materialdialogs.customview.customView
import com.bluelinelabs.conductor.ControllerChangeHandler
import com.bluelinelabs.conductor.ControllerChangeType
import com.dd.processbutton.iml.ActionProcessButton
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.databinding.PrefSiteLoginTwoFactorAuthBinding
@@ -48,12 +47,10 @@ class MangadexLoginDialog(bundle: Bundle? = null) : DialogController(bundle) {
override fun onCreateDialog(savedViewState: Bundle?): Dialog {
binding = PrefSiteLoginTwoFactorAuthBinding.inflate(LayoutInflater.from(activity!!))
val dialog = MaterialDialog(activity!!)
.customView(view = binding.root, scrollable = false)
onViewCreated()
return dialog
return MaterialAlertDialogBuilder(activity!!)
.setView(binding.root)
.create()
}
fun onViewCreated() {
@@ -3,7 +3,7 @@ package exh.widget.preference
import android.app.Dialog
import android.os.Bundle
import androidx.core.os.bundleOf
import com.afollestad.materialdialogs.MaterialDialog
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.track.TrackManager
import eu.kanade.tachiyomi.source.Source
@@ -34,9 +34,9 @@ class MangadexLogoutDialog(bundle: Bundle? = null) : DialogController(bundle) {
)
override fun onCreateDialog(savedViewState: Bundle?): Dialog {
return MaterialDialog(activity!!)
.title(R.string.logout)
.positiveButton(R.string.logout) {
return MaterialAlertDialogBuilder(activity!!)
.setTitle(R.string.logout)
.setPositiveButton(R.string.logout) { _, _ ->
launchNow {
supervisorScope {
if (source != null) {
@@ -66,7 +66,8 @@ class MangadexLogoutDialog(bundle: Bundle? = null) : DialogController(bundle) {
}
}
}
.negativeButton(android.R.string.cancel)
.setNegativeButton(android.R.string.cancel, null)
.create()
}
interface Listener {