From 3ef21ba5be31a6e862cda5aebfbbdafb95e507d2 Mon Sep 17 00:00:00 2001 From: SerpentSpirale Date: Tue, 24 Aug 2021 16:03:25 +0200 Subject: [PATCH] Add ControlButton cloning feature --- .../customcontrols/ControlData.java | 2 +- .../handleview/ActionPopupWindow.java | 18 +++++++++++++++--- .../customcontrols/handleview/HandleView.java | 4 ++-- .../handleview/SelectionEndHandleView.java | 4 ++-- .../src/main/res/values/strings.xml | 1 + 5 files changed, 21 insertions(+), 8 deletions(-) diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlData.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlData.java index a43dbc299..89bd53cb7 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlData.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlData.java @@ -133,7 +133,7 @@ public class ControlData implements Cloneable this.dynamicY = dynamicY; this.width = width; this.height = height; - this.isDynamicBtn = true; + this.isDynamicBtn = false; this.isToggle = isToggle; this.opacity = opacity; this.bgColor = bgColor; 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 cbcc33aad..4179330af 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 @@ -41,12 +41,13 @@ public class ActionPopupWindow extends PinnedPopupWindow implements OnClickListe private TextView mEditTextView; private TextView mDeleteTextView; + private TextView mCloneTextView; - private Object editedButton; + private ControlButton editedButton; - public ActionPopupWindow(HandleView handleView, Object object){ + public ActionPopupWindow(HandleView handleView, ControlButton button){ super(handleView); - this.editedButton = object; + this.editedButton = button; } @Override @@ -79,6 +80,12 @@ public class ActionPopupWindow extends PinnedPopupWindow implements OnClickListe mContentView.addView(mDeleteTextView); mDeleteTextView.setText(R.string.global_remove); mDeleteTextView.setOnClickListener(this); + + mCloneTextView = (TextView) inflater.inflate(R.layout.control_action_popup_text, null); + mCloneTextView.setLayoutParams(wrapContent); + mContentView.addView(mCloneTextView); + mCloneTextView.setText(R.string.global_clone); + mCloneTextView.setOnClickListener(this); } @Override @@ -132,6 +139,11 @@ public class ActionPopupWindow extends PinnedPopupWindow implements OnClickListe }); alertBuilder.setNegativeButton(android.R.string.cancel, null); alertBuilder.show(); + }else if(view == mCloneTextView) { + ControlData cloneData = editedButton.getProperties().clone(); + cloneData.dynamicX = "0.5 * ${screen_width}"; + cloneData.dynamicY = "0.5 * ${screen_height}"; + ((ControlLayout) mHandleView.mView.getParent()).addControlButton(cloneData); } hide(); diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/handleview/HandleView.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/handleview/HandleView.java index 46e122905..1378be5db 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/handleview/HandleView.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/handleview/HandleView.java @@ -189,9 +189,9 @@ public abstract class HandleView extends View implements ViewPositionListener, V getPositionListener().removeSubscriber(this); } - void showActionPopupWindow(int delay, Object object) { + void showActionPopupWindow(int delay, ControlButton button) { if (mActionPopupWindow == null) { - mActionPopupWindow = new ActionPopupWindow(this, object); + mActionPopupWindow = new ActionPopupWindow(this, button); } if (mActionPopupShower == null) { mActionPopupShower = new Runnable() { diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/handleview/SelectionEndHandleView.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/handleview/SelectionEndHandleView.java index eb606da4e..489c91bec 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/handleview/SelectionEndHandleView.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/handleview/SelectionEndHandleView.java @@ -50,9 +50,9 @@ public class SelectionEndHandleView extends HandleView return 0; // mView.getSelectionEnd(); } - public void show(Object object){ + public void show(ControlButton button){ super.show(); - showActionPopupWindow(0, object); + showActionPopupWindow(0, button); } @Override diff --git a/app_pojavlauncher/src/main/res/values/strings.xml b/app_pojavlauncher/src/main/res/values/strings.xml index 8241232e9..520b29f9e 100644 --- a/app_pojavlauncher/src/main/res/values/strings.xml +++ b/app_pojavlauncher/src/main/res/values/strings.xml @@ -118,6 +118,7 @@ Load Name Remove + Clone Restart Save Unpacking %s