From 9298de0d43f14bee062e39a7154f214021f035c3 Mon Sep 17 00:00:00 2001 From: Andy Scherzinger Date: Thu, 11 Aug 2022 16:31:05 +0200 Subject: [PATCH] replace lovelyDialog with MaterialAlert Signed-off-by: Andy Scherzinger --- .../nextcloud/talk/activities/BaseActivity.kt | 24 ++++++++++++------- .../nextcloud/talk/ui/theme/ViewThemeUtils.kt | 8 +++++++ 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/activities/BaseActivity.kt b/app/src/main/java/com/nextcloud/talk/activities/BaseActivity.kt index 9bf4fce5e..fe115f100 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/BaseActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/activities/BaseActivity.kt @@ -27,8 +27,10 @@ import android.os.Bundle import android.util.Log import android.view.WindowManager import android.webkit.SslErrorHandler +import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AppCompatActivity import autodagger.AutoInjector +import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.nextcloud.talk.R import com.nextcloud.talk.application.NextcloudTalkApplication import com.nextcloud.talk.events.CertificateEvent @@ -36,7 +38,6 @@ import com.nextcloud.talk.ui.theme.ViewThemeUtils import com.nextcloud.talk.utils.SecurityUtils import com.nextcloud.talk.utils.preferences.AppPreferences import com.nextcloud.talk.utils.ssl.MagicTrustManager -import com.yarolegovich.lovelydialog.LovelyStandardDialog import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode @@ -114,21 +115,26 @@ open class BaseActivity : AppCompatActivity() { issuedBy, issuedFor, validFrom, validUntil ) - LovelyStandardDialog(this) - .setTopColorRes(R.color.nc_darkRed) - .setNegativeButtonColorRes(R.color.nc_darkRed) - .setPositiveButtonColor(viewThemeUtils.getScheme(this).primary) - .setIcon(R.drawable.ic_security_white_24dp) + val dialogBuilder = MaterialAlertDialogBuilder(this) + .setIcon(viewThemeUtils.colorMaterialAlertDialogIcon(context, R.drawable.ic_security_white_24dp)) .setTitle(R.string.nc_certificate_dialog_title) .setMessage(dialogText) - .setPositiveButton(R.string.nc_yes) { v -> + .setPositiveButton(R.string.nc_yes) { _, _ -> magicTrustManager.addCertInTrustStore(cert) sslErrorHandler?.proceed() } - .setNegativeButton(R.string.nc_no) { view1 -> + .setNegativeButton(R.string.nc_no) { _, _ -> sslErrorHandler?.cancel() } - .show() + + viewThemeUtils.colorMaterialAlertDialogBackground(context, dialogBuilder) + + val dialog = dialogBuilder.show() + + viewThemeUtils.colorTextButtons( + dialog.getButton(AlertDialog.BUTTON_POSITIVE), + dialog.getButton(AlertDialog.BUTTON_NEGATIVE) + ) } catch (e: CertificateParsingException) { Log.d(TAG, "Failed to parse the certificate") } diff --git a/app/src/main/java/com/nextcloud/talk/ui/theme/ViewThemeUtils.kt b/app/src/main/java/com/nextcloud/talk/ui/theme/ViewThemeUtils.kt index 582b16a0e..c4e1ea60d 100644 --- a/app/src/main/java/com/nextcloud/talk/ui/theme/ViewThemeUtils.kt +++ b/app/src/main/java/com/nextcloud/talk/ui/theme/ViewThemeUtils.kt @@ -801,6 +801,14 @@ class ViewThemeUtils @Inject constructor(private val theme: ServerTheme, private return spannable } + fun colorMaterialAlertDialogIcon(context: Context, drawableId: Int): Drawable { + val drawable = AppCompatResources.getDrawable(context, drawableId)!! + withScheme(context) { scheme -> + DrawableCompat.setTint(drawable, scheme.secondary) + } + return drawable + } + companion object { private val THEMEABLE_PLACEHOLDER_IDS = listOf( R.drawable.ic_mimetype_package_x_generic,