From feb0f4b7b57e782fca17faba3a692c76805294dd Mon Sep 17 00:00:00 2001 From: topjohnwu Date: Wed, 12 Aug 2020 03:33:19 -0700 Subject: [PATCH] Fix MagiskDialog --- .../magisk/utils/DataBindingAdapters.kt | 9 +- .../com/topjohnwu/magisk/view/MagiskDialog.kt | 15 +- .../main/res/layout/dialog_magisk_base.xml | 214 ++++++++---------- .../main/res/layout/item_list_single_line.xml | 4 +- 4 files changed, 108 insertions(+), 134 deletions(-) diff --git a/app/src/main/java/com/topjohnwu/magisk/utils/DataBindingAdapters.kt b/app/src/main/java/com/topjohnwu/magisk/utils/DataBindingAdapters.kt index 3961ef098..dd68ba1f4 100644 --- a/app/src/main/java/com/topjohnwu/magisk/utils/DataBindingAdapters.kt +++ b/app/src/main/java/com/topjohnwu/magisk/utils/DataBindingAdapters.kt @@ -6,10 +6,7 @@ import android.graphics.drawable.Drawable import android.view.ContextThemeWrapper import android.view.View import android.view.ViewGroup -import android.widget.ImageView -import android.widget.PopupMenu -import android.widget.ProgressBar -import android.widget.TextView +import android.widget.* import androidx.annotation.DrawableRes import androidx.appcompat.widget.Toolbar import androidx.core.view.updateLayoutParams @@ -166,8 +163,8 @@ fun RecyclerView.setDividers(dividerVertical: Drawable?, dividerHorizontal: Draw } @BindingAdapter("app:icon") -fun MaterialButton.setIconRes(res: Int) { - setIconResource(res) +fun Button.setIconRes(res: Int) { + (this as MaterialButton).setIconResource(res) } @BindingAdapter("strokeWidth") 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 5bc3fd3e0..6f96c7832 100644 --- a/app/src/main/java/com/topjohnwu/magisk/view/MagiskDialog.kt +++ b/app/src/main/java/com/topjohnwu/magisk/view/MagiskDialog.kt @@ -13,6 +13,7 @@ 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 @@ -77,13 +78,9 @@ class MagiskDialog( override var callbacks: PropertyChangeRegistry? = null @get:Bindable - var icon = 0 + var icon: Drawable? = null set(value) = set(value, field, { field = it }, BR.icon) - @get:Bindable - var iconRaw: Drawable? = null - set(value) = set(value, field, { field = it }, BR.iconRaw) - @get:Bindable var title: CharSequence = "" set(value) = set(value, field, { field = it }, BR.title) @@ -185,10 +182,12 @@ class MagiskDialog( apply { data.message = message } fun applyIcon(@DrawableRes drawableRes: Int) = - apply { data.icon = drawableRes } + apply { + data.icon = AppCompatResources.getDrawable(context, drawableRes) + } fun applyIcon(drawable: Drawable) = - apply { data.iconRaw = drawable } + apply { data.icon = drawable } fun applyButton(buttonType: ButtonType, builder: ButtonBuilder.() -> Unit) = apply { val button = when (buttonType) { @@ -269,7 +268,7 @@ class MagiskDialog( fun resetTitle() = applyTitle("") fun resetMessage() = applyMessage("") - fun resetIcon() = applyIcon(0) + fun resetIcon() = apply { data.icon = null } fun resetButtons() = apply { ButtonType.values().forEach { diff --git a/app/src/main/res/layout/dialog_magisk_base.xml b/app/src/main/res/layout/dialog_magisk_base.xml index 50c25c874..6a6bf682f 100644 --- a/app/src/main/res/layout/dialog_magisk_base.xml +++ b/app/src/main/res/layout/dialog_magisk_base.xml @@ -52,35 +52,21 @@ android:orientation="vertical" app:layout_constraintGuide_end="16dp" /> - + app:layout_constraintTop_toTopOf="parent" + tools:src="@drawable/ic_delete_md2" /> - - - - - - - - - - - + - + - + - + app:layout_constraintStart_toStartOf="parent" + android:gravity="bottom|center_horizontal" + android:layoutDirection="locale" + android:orientation="horizontal" + android:paddingStart="12dp" + android:paddingTop="4dp" + android:paddingEnd="12dp" + android:paddingBottom="4dp"> - + android:layout_gravity="center_horizontal" + android:filterTouchesWhenObscured="true" + android:onClick="@{() -> data.buttonIDGAF.clicked()}" + android:text="@{data.buttonIDGAF.title}" + app:icon="@{data.buttonIDGAF.icon}" + tools:icon="@drawable/ic_bug_md2" + tools:text="Button 1" /> - +