diff --git a/app/src/main/java/net/kdt/pojavlaunch/CustomControlsActivity.java b/app/src/main/java/net/kdt/pojavlaunch/CustomControlsActivity.java
index 32ad077e0..38490cb4e 100644
--- a/app/src/main/java/net/kdt/pojavlaunch/CustomControlsActivity.java
+++ b/app/src/main/java/net/kdt/pojavlaunch/CustomControlsActivity.java
@@ -44,8 +44,7 @@ public class CustomControlsActivity extends AppCompatActivity
ctrlBtn.name = "New";
ctrlBtn.x = 100;
ctrlBtn.y = 100;
- mCtrl.button.add(ctrlBtn);
- ctrlLayout.refreshLayout();
+ ctrlLayout.addControlButton(ctrlBtn);
break;
case R.id.menu_ctrl_edit: // openLogOutput();
break;
@@ -60,14 +59,14 @@ public class CustomControlsActivity extends AppCompatActivity
});
mCtrl = new CustomControls();
-
+ /*
ControlButton ctrlEx = new ControlButton();
ctrlEx.name = "Test";
ctrlEx.x = 100;
ctrlEx.y = 100;
mCtrl.button.add(ctrlEx);
-
+ */
ctrlLayout = (ControlsLayout) findViewById(R.id.customctrl_controllayout);
ctrlLayout.loadLayout(mCtrl);
ctrlLayout.setCanMove(true);
diff --git a/app/src/main/java/net/kdt/pojavlaunch/MCLauncherActivity.java b/app/src/main/java/net/kdt/pojavlaunch/MCLauncherActivity.java
index 7b0b62fa0..23faef940 100644
--- a/app/src/main/java/net/kdt/pojavlaunch/MCLauncherActivity.java
+++ b/app/src/main/java/net/kdt/pojavlaunch/MCLauncherActivity.java
@@ -843,7 +843,7 @@ public class MCLauncherActivity extends AppCompatActivity
checkUpdate();
} break;
case 3:{ // Custom controls
- // startActivity(new Intent(MCLauncherActivity.this, CustomControlsActivity.class));
+ startActivity(new Intent(MCLauncherActivity.this, CustomControlsActivity.class));
} break;
case 4:{ // Settings
startActivity(new Intent(MCLauncherActivity.this, PojavPreferenceActivity.class));
diff --git a/app/src/main/java/net/kdt/pojavlaunch/MainActivity.java b/app/src/main/java/net/kdt/pojavlaunch/MainActivity.java
index bb3bfe2da..f946a96f5 100644
--- a/app/src/main/java/net/kdt/pojavlaunch/MainActivity.java
+++ b/app/src/main/java/net/kdt/pojavlaunch/MainActivity.java
@@ -36,6 +36,7 @@ import org.lwjgl.util.glu.tessellation.*;
import android.app.AlertDialog;
import android.graphics.drawable.Drawable;
+import net.kdt.pojavlaunch.value.customcontrols.*;
public class MainActivity extends AppCompatActivity implements OnTouchListener, OnClickListener
{
@@ -275,6 +276,27 @@ public class MainActivity extends AppCompatActivity implements OnTouchListener,
this.glSurfaceView = (MinecraftGLView) findViewById(R.id.main_game_render_view);
+ ControlButton[] specialButtons = ControlButton.getSpecialButtons();
+ specialButtons[0].specialButtonListener = new View.OnClickListener(){
+
+ @Override
+ public void onClick(View p1)
+ {
+ showKeyboard();
+ }
+ };
+ specialButtons[1].specialButtonListener = new View.OnClickListener(){
+
+ @Override
+ public void onClick(View p1)
+ {
+ switch(overlayView.getVisibility()){
+ case View.VISIBLE: overlayView.setVisibility(View.GONE);
+ break;
+ case View.GONE: overlayView.setVisibility(View.VISIBLE);
+ }
+ }
+ };
// toggleGui(null);
onClick(toggleControlButton);
diff --git a/app/src/main/java/net/kdt/pojavlaunch/PojavApplication.java b/app/src/main/java/net/kdt/pojavlaunch/PojavApplication.java
index a1168d0c8..9d73d0720 100644
--- a/app/src/main/java/net/kdt/pojavlaunch/PojavApplication.java
+++ b/app/src/main/java/net/kdt/pojavlaunch/PojavApplication.java
@@ -5,6 +5,7 @@ import android.os.*;
import android.content.pm.PackageManager.*;
import android.content.pm.*;
import net.kdt.pojavlaunch.prefs.*;
+import net.kdt.pojavlaunch.value.customcontrols.*;
public class PojavApplication extends Application
{
@@ -22,6 +23,11 @@ public class PojavApplication extends Application
Tools.datapath = getDir("files", MODE_PRIVATE).getParent();
PojavPreferenceActivity.loadPreferences(this);
+
+ ControlButton.pixelOf50dp = (int) Tools.dpToPx(this, 50);
+ ControlButton[] specialButtons = ControlButton.getSpecialButtons();
+ specialButtons[0].name = getString(R.string.control_keyboard);
+ specialButtons[1].name = getString(R.string.control_toggle);
} catch (Exception e) {
e.printStackTrace();
}
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
index 2710a6345..8b138ed47 100644
--- a/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/ControlButton.java
+++ b/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/ControlButton.java
@@ -1,16 +1,41 @@
package net.kdt.pojavlaunch.value.customcontrols;
import net.kdt.pojavlaunch.*;
+import android.view.*;
public class ControlButton
{
+ public static int pixelOf50dp;
+
+ public static int SPECIALBTN_KEYBOARD = 0;
+ public static int SPECIALBTN_TOGGLECTRL = 1;
+
+ private static ControlButton[] SPECIAL_BUTTONS;
+
+ public static ControlButton[] getSpecialButtons(){
+ if (SPECIAL_BUTTONS == null) {
+ ControlButton keyboardBtn = new ControlButton();
+ ControlButton toggleCtrlBtn = new ControlButton();
+
+ SPECIAL_BUTTONS = new ControlButton[]{
+ keyboardBtn,
+ toggleCtrlBtn
+ };
+ }
+
+ return SPECIAL_BUTTONS;
+ }
+
// Concept...
public String name;
public float x;
public float y;
+ public int width = pixelOf50dp;
+ public int height = pixelOf50dp;
public int lwjglKeycode;
public boolean holdCtrl;
public boolean holdAlt;
public boolean holdShift;
+ public View.OnClickListener specialButtonListener;
// public boolean hold
public void execute(MainActivity act, boolean 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
index 61a5ada21..666439420 100644
--- a/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/ControlView.java
+++ b/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/ControlView.java
@@ -26,6 +26,8 @@ public class ControlView extends Button implements OnTouchListener
setText(properties.name);
setTranslationX(moveX = properties.x);
setTranslationY(moveY = properties.y);
+
+ setLayoutParams(new FrameLayout.LayoutParams(properties.width, properties.height));
}
@Override
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
index ce22906cd..c910082dd 100644
--- a/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/ControlsLayout.java
+++ b/app/src/main/java/net/kdt/pojavlaunch/value/customcontrols/ControlsLayout.java
@@ -21,6 +21,7 @@ public class ControlsLayout extends FrameLayout
public void loadLayout(CustomControls controlLayout) {
mLayout = controlLayout;
+ removeAllViews();
for (ControlButton button : controlLayout.button) {
final ControlView view = new ControlView(getContext(), button);
view.setOnClickListener(new View.OnClickListener(){
@@ -39,9 +40,22 @@ public class ControlsLayout extends FrameLayout
}
}
- public void refreshLayout(/* CustomControls controlLayout */) {
- removeAllViews();
- loadLayout(mLayout);
+ public void addControlButton(ControlButton controlButton) {
+ mLayout.button.add(controlButton);
+
+ final ControlView view = new ControlView(getContext(), controlButton);
+ view.setOnClickListener(new View.OnClickListener(){
+
+ @Override
+ public void onClick(View p1) {
+ AlertDialog.Builder alert = new AlertDialog.Builder(getContext());
+ alert.setTitle(getResources().getString(R.string.global_edit) + " " + view.getText());
+ // alert.setView(edit);
+ alert.show();
+ }
+ });
+ view.setCanMove(mCanMove);
+ addView(view);
// loadLayout(controlLayout);
}
diff --git a/app/src/main/res/layout/control_mapping.xml b/app/src/main/res/layout/control_mapping.xml
index 3576198f8..5a3ed4714 100644
--- a/app/src/main/res/layout/control_mapping.xml
+++ b/app/src/main/res/layout/control_mapping.xml
@@ -7,12 +7,24 @@
android:layout_alignParentRight="true"
android:id="@+id/customctrl_drawerlayout">
-
+
-
+
+
+
+
+
+
+
-
+
diff --git a/app/src/main/res/layout/control_setting.xml b/app/src/main/res/layout/control_setting.xml
new file mode 100644
index 000000000..2323d4302
--- /dev/null
+++ b/app/src/main/res/layout/control_setting.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/main.xml b/app/src/main/res/layout/main.xml
index b4c3102d8..3f607bbfb 100644
--- a/app/src/main/res/layout/main.xml
+++ b/app/src/main/res/layout/main.xml
@@ -53,7 +53,7 @@
android:background="@drawable/control_button"
android:layout_width="50dp"
android:layout_height="50dp"
- android:text="GUI"
+ android:text="@string/control_toggle"
android:layout_marginBottom="14dp"
android:layout_marginLeft="14dp"
android:layout_gravity="bottom"
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index f0ea6beb3..bde458f5f 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -33,6 +33,7 @@
To select, click it. To delete an account, hold it.
+ Swipe from right to left to open menu\n◀
Warning
@@ -95,6 +96,7 @@
Add
Edit
+ Name
Remove
Save
This field can\'t be empty
@@ -131,6 +133,7 @@
Controls
+ GUI
Keyboard
Chat
Debug
@@ -154,11 +157,13 @@
Log output
PointerCapture Debug
Send custom keycode
-
-
+
+ LWJGL Keycode
+ Hidden
+
Update console