diff --git a/app_pojavlauncher/build.gradle b/app_pojavlauncher/build.gradle index 63710446a..52a9965c2 100644 --- a/app_pojavlauncher/build.gradle +++ b/app_pojavlauncher/build.gradle @@ -125,6 +125,7 @@ dependencies { implementation "androidx.constraintlayout:constraintlayout:2.0.4" implementation 'com.rarepebble:colorpicker:3.0.1' + implementation 'com.github.duanhong169:checkerboarddrawable:1.0.2' // implementation 'com.intuit.sdp:sdp-android:1.0.5' diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/handleview/ActionPopupWindow.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/handleview/ActionPopupWindow.java index 5c4836cc9..cbcc33aad 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/handleview/ActionPopupWindow.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/handleview/ActionPopupWindow.java @@ -20,6 +20,7 @@ package net.kdt.pojavlaunch.customcontrols.handleview; import android.content.*; +import android.graphics.drawable.ColorDrawable; import android.view.*; import android.view.ViewGroup.*; import android.widget.*; @@ -152,7 +153,9 @@ public class ActionPopupWindow extends PinnedPopupWindow implements OnClickListe } - public static void showColorPicker(Context ctx,String title, boolean showAlpha, int startColor, View v){ + public static void showColorPicker(Context ctx,String title, boolean showAlpha, ImageView v){ + int startColor = ((ColorDrawable)v.getDrawable()).getColor(); + ColorPickerView picker = new ColorPickerView(ctx); picker.setColor(startColor); picker.showAlpha(showAlpha); @@ -161,7 +164,7 @@ public class ActionPopupWindow extends PinnedPopupWindow implements OnClickListe dialog.setTitle(title); dialog.setView(picker); dialog.setNegativeButton(android.R.string.cancel, null); - dialog.setPositiveButton(android.R.string.ok, (dialogInterface, i) -> v.setBackgroundColor(picker.getColor())); + dialog.setPositiveButton(android.R.string.ok, (dialogInterface, i) -> v.setImageDrawable(new ColorDrawable(picker.getColor()))); dialog.show(); } diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/handleview/EditControlButtonPopup.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/handleview/EditControlButtonPopup.java index aa6358592..9c79a7c48 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/handleview/EditControlButtonPopup.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/handleview/EditControlButtonPopup.java @@ -2,6 +2,7 @@ package net.kdt.pojavlaunch.customcontrols.handleview; import android.app.Dialog; import android.content.Context; +import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.view.LayoutInflater; import android.view.View; @@ -17,9 +18,12 @@ import androidx.appcompat.app.AlertDialog; import net.kdt.pojavlaunch.EfficientAndroidLWJGLKeycode; import net.kdt.pojavlaunch.R; +import net.kdt.pojavlaunch.Tools; import net.kdt.pojavlaunch.customcontrols.buttons.ControlButton; import net.kdt.pojavlaunch.customcontrols.ControlData; +import top.defaults.checkerboarddrawable.CheckerboardDrawable; + import static net.kdt.pojavlaunch.customcontrols.handleview.ActionPopupWindow.setPercentageText; public class EditControlButtonPopup { @@ -171,8 +175,8 @@ public class EditControlButtonPopup { } //Set color imageButton behavior - buttonBackgroundColor.setOnClickListener(view -> ActionPopupWindow.showColorPicker(ctx, "Edit background color", true, ((ColorDrawable) buttonBackgroundColor.getBackground()).getColor(), buttonBackgroundColor)); - buttonStrokeColor.setOnClickListener(view -> ActionPopupWindow.showColorPicker(ctx, "Edit stroke color", false, ((ColorDrawable) buttonStrokeColor.getBackground()).getColor(), buttonStrokeColor)); + buttonBackgroundColor.setOnClickListener(view -> ActionPopupWindow.showColorPicker(ctx, "Edit background color", true, buttonBackgroundColor)); + buttonStrokeColor.setOnClickListener(view -> ActionPopupWindow.showColorPicker(ctx, "Edit stroke color", false, buttonStrokeColor)); //Set dialog buttons behavior @@ -180,6 +184,7 @@ public class EditControlButtonPopup { hideUselessViews(); + setupCheckerboards(); } protected void setupDialogButtons(){ @@ -196,6 +201,17 @@ public class EditControlButtonPopup { (v.findViewById(R.id.editOrientation_textView)).setVisibility(View.GONE); } + private void setupCheckerboards(){ + CheckerboardDrawable drawable = new CheckerboardDrawable.Builder() + .colorEven(Color.LTGRAY) + .colorOdd(Color.WHITE) + .size((int) Tools.dpToPx(20)) + .build(); + + buttonBackgroundColor.setBackground(drawable); + buttonStrokeColor.setBackground(drawable); + } + protected void setEditDialogValues(){ editName.setText(properties.name); @@ -218,8 +234,8 @@ public class EditControlButtonPopup { seekBarStrokeWidth.setProgress(properties.strokeWidth); seekBarCornerRadius.setProgress((int)properties.cornerRadius); - buttonBackgroundColor.setBackgroundColor(properties.bgColor); - buttonStrokeColor.setBackgroundColor(properties.strokeColor); + buttonBackgroundColor.setImageDrawable(new ColorDrawable(properties.bgColor)); + buttonStrokeColor.setImageDrawable(new ColorDrawable(properties.strokeColor)); setPercentageText(textCornerRadius,seekBarCornerRadius.getProgress()); setPercentageText(textOpacity,seekBarOpacity.getProgress()); @@ -280,8 +296,8 @@ public class EditControlButtonPopup { properties.strokeWidth = seekBarStrokeWidth.getProgress(); properties.cornerRadius = seekBarCornerRadius.getProgress(); - properties.bgColor = ((ColorDrawable) buttonBackgroundColor.getBackground()).getColor(); - properties.strokeColor = ((ColorDrawable) buttonStrokeColor.getBackground()).getColor(); + properties.bgColor = ((ColorDrawable)buttonBackgroundColor.getDrawable()).getColor(); + properties.strokeColor = ((ColorDrawable) buttonStrokeColor.getDrawable()).getColor(); properties.isToggle = checkToggle.isChecked(); properties.passThruEnabled = checkPassThrough.isChecked();