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