diff --git a/app/src/main/java/com/topjohnwu/magisk/view/MagiskDialog.kt b/app/src/main/java/com/topjohnwu/magisk/view/MagiskDialog.kt
index 696be17f1..7ba8f7708 100644
--- a/app/src/main/java/com/topjohnwu/magisk/view/MagiskDialog.kt
+++ b/app/src/main/java/com/topjohnwu/magisk/view/MagiskDialog.kt
@@ -2,25 +2,24 @@ package com.topjohnwu.magisk.view
import android.content.Context
import android.content.DialogInterface
-import android.graphics.Color
-import android.graphics.drawable.ColorDrawable
+import android.content.res.ColorStateList
import android.graphics.drawable.Drawable
+import android.graphics.drawable.InsetDrawable
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.view.WindowManager
import androidx.annotation.DrawableRes
import androidx.annotation.StringRes
import androidx.appcompat.app.AppCompatDialog
import androidx.appcompat.content.res.AppCompatResources
-import androidx.core.view.ViewCompat
-import androidx.core.view.updatePadding
import androidx.databinding.Bindable
import androidx.databinding.PropertyChangeRegistry
import androidx.databinding.ViewDataBinding
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
+import com.google.android.material.color.MaterialColors
+import com.google.android.material.shape.MaterialShapeDrawable
import com.topjohnwu.magisk.BR
import com.topjohnwu.magisk.R
import com.topjohnwu.magisk.arch.itemBindingOf
@@ -47,36 +46,22 @@ class MagiskDialog(
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
super.setContentView(binding.root)
+
+ val surfaceColor = MaterialColors.getColor(context, R.attr.colorSurfaceSurfaceVariant, javaClass.canonicalName)
+ val materialShapeDrawable = MaterialShapeDrawable(context, null, R.attr.alertDialogStyle, R.style.MaterialAlertDialog_MaterialComponents)
+ materialShapeDrawable.initializeElevationOverlay(context)
+ materialShapeDrawable.fillColor = ColorStateList.valueOf(surfaceColor)
+ materialShapeDrawable.elevation = context.resources.getDimension(R.dimen.margin_generic)
+ materialShapeDrawable.setCornerSize(context.resources.getDimension(R.dimen.l_50))
+
+ val inset = context.resources.getDimensionPixelSize(R.dimen.appcompat_dialog_background_inset)
window?.apply {
- setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
- setLayout(
- WindowManager.LayoutParams.MATCH_PARENT,
- WindowManager.LayoutParams.MATCH_PARENT
- )
- }
-
- val paddingTop = binding.root.paddingTop
- val paddingBottom = binding.root.paddingBottom
- ViewCompat.setOnApplyWindowInsetsListener(binding.root) { view, insets ->
- view.updatePadding(
- top = paddingTop + insets.systemWindowInsetTop,
- bottom = paddingBottom + insets.systemWindowInsetBottom
- )
- insets
+ setBackgroundDrawable(InsetDrawable(materialShapeDrawable, inset, inset, inset, inset))
+ setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
}
}
- override fun setCancelable(flag: Boolean) {
- val listener = if (!flag) {
- null
- } else {
- setCanceledOnTouchOutside(true)
- View.OnClickListener { dismiss() }
- }
- binding.dialogBaseOutsideContainer.setOnClickListener(listener)
- }
-
- inner class Data: ObservableHost {
+ inner class Data : ObservableHost {
override var callbacks: PropertyChangeRegistry? = null
@get:Bindable
@@ -88,7 +73,7 @@ class MagiskDialog(
set(value) = set(value, field, { field = it }, BR.title)
@get:Bindable
- var message : CharSequence = ""
+ var message: CharSequence = ""
set(value) = set(value, field, { field = it }, BR.message)
val buttonPositive = Button()
@@ -101,7 +86,7 @@ class MagiskDialog(
POSITIVE, NEUTRAL, NEGATIVE, IDGAF
}
- inner class Button: ObservableHost {
+ inner class Button : ObservableHost {
override var callbacks: PropertyChangeRegistry? = null
@get:Bindable
diff --git a/app/src/main/res/layout/dialog_magisk_base.xml b/app/src/main/res/layout/dialog_magisk_base.xml
index 9cfb9202f..0d3b98d42 100644
--- a/app/src/main/res/layout/dialog_magisk_base.xml
+++ b/app/src/main/res/layout/dialog_magisk_base.xml
@@ -12,219 +12,189 @@
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ tools:layout_width="match_parent">
-
+
+
+
+
+ tools:src="@drawable/ic_delete_md2" />
-
+
+
+
+
+ android:layout_height="wrap_content">
-
+ android:layout_height="match_parent"
+ android:text="@{data.message}"
+ android:textAppearance="@style/AppearanceFoundation.Body"
+ tools:lines="3"
+ tools:text="@tools:sample/lorem/random" />
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index df447a1ec..28aca4db0 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -4,11 +4,13 @@
@@ -29,4 +31,11 @@
+
+
+
+
\ No newline at end of file