diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4315d067d..201607f1e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -32,6 +32,11 @@ android:screenOrientation="sensorLandscape" android:name=".MCLauncherActivity" android:configChanges="keyboardHidden|orientation|screenSize"/> + + 0) { @@ -526,8 +526,8 @@ public class MainActivity extends Activity implements OnTouchListener, OnClickLi builder.append("XPos=" + x + "\n"); builder.append("YPos=" + y + "\n\n"); - builder.append("MovingX=" + getMoving(x, true) + "\n"); - builder.append("MovingY=" + getMoving(y, false) + "\n"); + builder.append("MovingX=" + getMoving(e.getX(), true) + "\n"); + builder.append("MovingY=" + getMoving(e.getY(), false) + "\n"); debugText.setText(builder.toString()); } @@ -1245,12 +1245,4 @@ public class MainActivity extends Activity implements OnTouchListener, OnClickLi } return hotbarKeys[((x - barx) / mcscale(20)) % 9]; } - - private class SingleTapConfirm extends SimpleOnGestureListener - { - @Override - public boolean onSingleTapUp(MotionEvent event) { - return true; - } - } } diff --git a/app/src/main/java/net/kdt/pojavlaunch/SingleTapConfirm.java b/app/src/main/java/net/kdt/pojavlaunch/SingleTapConfirm.java new file mode 100644 index 000000000..bd82eb77f --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/SingleTapConfirm.java @@ -0,0 +1,12 @@ +package net.kdt.pojavlaunch; + +import android.view.*; +import android.view.GestureDetector.*; + +public class SingleTapConfirm extends SimpleOnGestureListener +{ + @Override + public boolean onSingleTapUp(MotionEvent event) { + return true; + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/ControlButton.java b/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/ControlButton.java new file mode 100644 index 000000000..2710a6345 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/ControlButton.java @@ -0,0 +1,19 @@ +package net.kdt.pojavlaunch.value.customcontrols; +import net.kdt.pojavlaunch.*; + +public class ControlButton +{ + // Concept... + public String name; + public float x; + public float y; + public int lwjglKeycode; + public boolean holdCtrl; + public boolean holdAlt; + public boolean holdShift; + // public boolean hold + + public void execute(MainActivity act, boolean isDown) { + act.sendKeyPress(lwjglKeycode, isDown); + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/ControlView.java b/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/ControlView.java new file mode 100644 index 000000000..b23f822e7 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/ControlView.java @@ -0,0 +1,73 @@ +package net.kdt.pojavlaunch.value.customcontrols; + +import android.content.*; +import android.view.*; +import android.view.View.*; +import android.widget.*; +import net.kdt.pojavlaunch.*; + +public class ControlView extends Button implements OnTouchListener +{ + private GestureDetector mGestureDetector; + private View.OnClickListener mClickListener; + private ControlButton mProperties; + + public ControlView(Context ctx, ControlButton properties) { + super(ctx); + + setOnTouchListener(this); + mGestureDetector = new GestureDetector(ctx, new SingleTapConfirm()); + mProperties = properties; + + setText(properties.name); + setTranslationX(moveX = properties.x); + setTranslationY(moveY = properties.y); + } + + @Override + public void setTranslationX(float x) + { + super.setTranslationX(x); + mProperties.x = x; + } + + @Override + public void setTranslationY(float y) { + super.setTranslationY(y); + mProperties.y = y; + } + + private float moveX, moveY; + private float downX, downY; + @Override + public boolean onTouch(View view, MotionEvent event) { + if (mGestureDetector.onTouchEvent(event)) { + mClickListener.onClick(view); + return true; + } + + switch (event.getActionMasked()) { + case MotionEvent.ACTION_DOWN: + downX = event.getX(); + downY = event.getY(); + break; + case MotionEvent.ACTION_UP: + case MotionEvent.ACTION_MOVE: + moveX += event.getX() - downX; + moveY += event.getY() - downY; + + setTranslationX(moveX); + setTranslationY(moveY); + break; + } + + return false; + } + + @Override + public void setOnClickListener(View.OnClickListener l) { + // super.setOnClickListener(p1); + + mClickListener = l; + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/ControlsLayout.java b/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/ControlsLayout.java new file mode 100644 index 000000000..191df1092 --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/ControlsLayout.java @@ -0,0 +1,21 @@ +package net.kdt.pojavlaunch.value.customcontrols; +import android.widget.*; +import android.content.*; +import android.util.*; + +public class ControlsLayout extends FrameLayout +{ + public ControlsLayout(Context ctx) { + super(ctx); + } + + public ControlsLayout(Context ctx, AttributeSet attrs) { + super(ctx, attrs); + } + + public void loadLayout(CustomControls controlLayout) { + for (ControlButton button : controlLayout.button) { + addView(new ControlView(getContext(), button)); + } + } +} diff --git a/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/CustomControls.java b/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/CustomControls.java new file mode 100644 index 000000000..7d3cf42fc --- /dev/null +++ b/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/CustomControls.java @@ -0,0 +1,6 @@ +package net.kdt.pojavlaunch.value.customcontrols; + +public class CustomControls +{ + public ControlButton[] button = new ControlButton[]{}; +}