diff --git a/app/build.gradle b/app/build.gradle index 82d60c4da..89b93dbaa 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -24,7 +24,7 @@ android { minSdkVersion 21 targetSdkVersion 26 versionCode 156236 - versionName "3.3.0b_6408b_20201119" + versionName "3.3.0b_6408b_20201122" multiDexEnabled true //important } diff --git a/app/src/main/java/com/kdt/handleview/ActionPopupWindow.java b/app/src/main/java/com/kdt/handleview/ActionPopupWindow.java index 486e2d68e..ab1044e8a 100644 --- a/app/src/main/java/com/kdt/handleview/ActionPopupWindow.java +++ b/app/src/main/java/com/kdt/handleview/ActionPopupWindow.java @@ -103,7 +103,7 @@ public class ActionPopupWindow extends PinnedPopupWindow implements OnClickListe String[] oldSpecialArr = ControlData.buildSpecialButtonArray(); final String[] specialArr = new String[oldSpecialArr.length]; for (int i = 0; i < specialArr.length; i++) { - specialArr[i] = "SPECIAL_" + oldSpecialArr[i]; + specialArr[i] = "SPECIAL_" + oldSpecialArr[specialArr.length - i - 1]; } adapter.addAll(specialArr); @@ -111,7 +111,7 @@ public class ActionPopupWindow extends PinnedPopupWindow implements OnClickListe adapter.setDropDownViewResource(android.R.layout.simple_list_item_single_choice); spinnerKeycode.setAdapter(adapter); if (properties.keycode < 0) { - spinnerKeycode.setSelection(0 - properties.keycode); + spinnerKeycode.setSelection(properties.keycode + specialArr.length); } else { spinnerKeycode.setSelection(AndroidLWJGLKeycode.getIndexByLWJGLKey(properties.keycode) + specialArr.length); } diff --git a/app/src/main/java/net/kdt/pojavlaunch/CustomControlsActivity.java b/app/src/main/java/net/kdt/pojavlaunch/CustomControlsActivity.java index da80f4504..035c67585 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/CustomControlsActivity.java +++ b/app/src/main/java/net/kdt/pojavlaunch/CustomControlsActivity.java @@ -20,12 +20,10 @@ public class CustomControlsActivity extends BaseActivity private DrawerLayout drawerLayout; private NavigationView navDrawer; private ControlLayout ctrlLayout; - private CustomControls mCtrl; - + private SharedPreferences mPref; public boolean isModified = false; - private String selectedName = "new_control"; @Override @@ -66,14 +64,10 @@ public class CustomControlsActivity extends BaseActivity } }); - mCtrl = new CustomControls(); - ctrlLayout.setActivity(this); ctrlLayout.setModifiable(true); loadControl(LauncherPreferences.PREF_DEFAULTCTRL_PATH); - - ctrlLayout.loadLayout(mCtrl); } @Override @@ -96,7 +90,7 @@ public class CustomControlsActivity extends BaseActivity Tools.showError(this, th); } } - + private void dialogSelectDefaultCtrl() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(R.string.customctrl_selectdefault); @@ -203,8 +197,7 @@ public class CustomControlsActivity extends BaseActivity private void loadControl(String path) { try { - mCtrl = Tools.GLOBAL_GSON.fromJson(Tools.read(path), CustomControls.class); - ctrlLayout.loadLayout(mCtrl); + ctrlLayout.loadLayout(path); selectedName = new File(path).getName(); // Remove `.json` diff --git a/app/src/main/java/net/kdt/pojavlaunch/CustomCtrlMainActivity.java b/app/src/main/java/net/kdt/pojavlaunch/CustomCtrlMainActivity.java index f080c4149..7bc8e7c70 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/CustomCtrlMainActivity.java +++ b/app/src/main/java/net/kdt/pojavlaunch/CustomCtrlMainActivity.java @@ -7,9 +7,10 @@ import android.widget.*; import net.kdt.pojavlaunch.customcontrols.*; import net.kdt.pojavlaunch.prefs.*; import org.lwjgl.glfw.*; +import java.io.*; +import com.google.gson.*; public class CustomCtrlMainActivity extends BaseMainActivity { - private CustomControls mControl; private ControlLayout mControlLayout; private View.OnClickListener mClickListener; @@ -99,21 +100,15 @@ public class CustomCtrlMainActivity extends BaseMainActivity { = mTouchListener; mControlLayout = findViewById(R.id.main_control_layout); - mControl = new CustomControls(); + try { + mControlLayout.loadLayout(LauncherPreferences.PREF_DEFAULTCTRL_PATH); + } catch (Throwable th) { + Tools.showError(this, th); + } + mControlLayout.setModifiable(false); - loadControl(LauncherPreferences.PREF_DEFAULTCTRL_PATH); - mControlLayout.loadLayout(mControl); // toggleGui(null); mControlLayout.toggleControlVisible(); } - - private void loadControl(String path) { - try { - mControl = Tools.GLOBAL_GSON.fromJson(Tools.read(path), CustomControls.class); - mControlLayout.loadLayout(mControl); - } catch (Exception e) { - Tools.showError(this, e); - } - } } diff --git a/app/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlButton.java b/app/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlButton.java index dbf1ff3bf..98904cda4 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlButton.java +++ b/app/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlButton.java @@ -106,17 +106,18 @@ public class ControlButton extends Button implements OnLongClickListener, OnTouc @Override public boolean onLongClick(View p1) { - if (!mCanTriggerLongClick) return false; - - if (mHandleView.isShowing()) { - mHandleView.hide(); - } else { - if (getParent() != null) { - ((ControlLayout) getParent()).hideAllHandleViews(); + if (mCanTriggerLongClick) { + if (mHandleView.isShowing()) { + mHandleView.hide(); + } else { + if (getParent() != null) { + ((ControlLayout) getParent()).hideAllHandleViews(); + } + mHandleView.show(); } - mHandleView.show(); } - return true; + + return mCanTriggerLongClick; } private float moveX, moveY; @@ -145,8 +146,6 @@ public class ControlButton extends Button implements OnLongClickListener, OnTouc return true; } - - return false; } else { if (mGestureDetector.onTouchEvent(event)) { mCanTriggerLongClick = true; @@ -173,9 +172,9 @@ public class ControlButton extends Button implements OnLongClickListener, OnTouc break; } - - return false; } + + return false; } public void setModifiable(boolean z) { diff --git a/app/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlLayout.java b/app/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlLayout.java index b8c30b58f..5035dd4c6 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlLayout.java +++ b/app/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlLayout.java @@ -7,6 +7,7 @@ import com.google.gson.*; import net.kdt.pojavlaunch.*; import android.support.v7.app.*; import java.util.*; +import java.io.*; public class ControlLayout extends FrameLayout { @@ -32,17 +33,19 @@ public class ControlLayout extends FrameLayout } } - public void loadLayout(String jsonPath) { - try { - loadLayout(Tools.GLOBAL_GSON.fromJson(Tools.read(jsonPath), CustomControls.class)); - } catch (Exception e) { - e.printStackTrace(); - } + public void loadLayout(String jsonPath) throws IOException, JsonSyntaxException { + loadLayout(Tools.GLOBAL_GSON.fromJson(Tools.read(jsonPath), CustomControls.class)); } public void loadLayout(CustomControls controlLayout) { mLayout = controlLayout; - removeAllViews(); + + for (int i = 0; i < getChildCount(); i++) { + if (getChildAt(i) instanceof ControlButton) { + removeViewAt(i); + } + } + for (ControlData button : controlLayout.mControlDataList) { button.isHideable = button.keycode != ControlData.SPECIALBTN_TOGGLECTRL && button.keycode != ControlData.SPECIALBTN_VIRTUALMOUSE; addControlView(button); diff --git a/app/src/main/res/layout/main_with_customctrl.xml b/app/src/main/res/layout/main_with_customctrl.xml index 750742abe..4fb05b27b 100644 --- a/app/src/main/res/layout/main_with_customctrl.xml +++ b/app/src/main/res/layout/main_with_customctrl.xml @@ -13,31 +13,31 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - - - - - - - - + + + + + + + +