diff --git a/app/src/main/java/uk/lgl/modmenu/FloatingModMenu.java b/app/src/main/java/uk/lgl/modmenu/FloatingModMenu.java
index 56c6fa8..db8af44 100644
--- a/app/src/main/java/uk/lgl/modmenu/FloatingModMenu.java
+++ b/app/src/main/java/uk/lgl/modmenu/FloatingModMenu.java
@@ -772,100 +772,118 @@ public void onNothingSelected(AdapterView> parent) {
private View TextField(final int featNum, final String featName, final boolean numOnly, final int maxValue) {
+ final EditTextString edittextstring = new EditTextString();
+ final EditTextNum edittextnum = new EditTextNum();
LinearLayout linearLayout = new LinearLayout(activity);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(MATCH_PARENT, MATCH_PARENT);
layoutParams.setMargins(7, 5, 7, 5);
final Button button = new Button(activity);
+ if (numOnly) {
+ int num = 0;
+ edittextnum.setNum((num == 0) ? 1 : num);
+ button.setText(Html.fromHtml(featName + ": " + ((num == 0) ? 1 : num) + ""));
+ } else {
+ String string = "";
+ edittextstring.setString((string == "") ? "" : string);
+ button.setText(Html.fromHtml(featName + ": " + string + ""));
+ }
button.setAllCaps(false);
button.setLayoutParams(layoutParams);
button.setBackgroundColor(BTN_COLOR);
button.setTextColor(TEXT_COLOR_2);
-
- // Store value directly in an array (to allow mutation inside inner class)
- final String[] stringVal = {""};
- final int[] numVal = {1};
-
- // Set initial text
- button.setText(Html.fromHtml(featName + ": " + (numOnly ? numVal[0] : stringVal[0]) + ""));
-
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
+ Toast.makeText(activity, "Button clicked", Toast.LENGTH_SHORT).show();
final AlertDialog alert = new AlertDialog.Builder(activity, 2).create();
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
- Objects.requireNonNull(alert.getWindow())
- .setType(Build.VERSION.SDK_INT >= 26 ? 2038 : 2002);
- }
-
- alert.setOnCancelListener(dialog -> {
- InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
- imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
+ alert.setOnCancelListener(new DialogInterface.OnCancelListener() {
+ @SuppressLint("WrongConstant")
+ public void onCancel(DialogInterface dialog) {
+ InputMethodManager imm = (InputMethodManager) activity.getSystemService(activity.INPUT_METHOD_SERVICE);
+ imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
+ }
});
- LinearLayout dialogLayout = new LinearLayout(activity);
- dialogLayout.setPadding(5, 5, 5, 5);
- dialogLayout.setOrientation(LinearLayout.VERTICAL);
- dialogLayout.setBackgroundColor(MENU_FEATURE_BG_COLOR);
+ //LinearLayout
+ LinearLayout linearLayout1 = new LinearLayout(activity);
+ linearLayout1.setPadding(5, 5, 5, 5);
+ linearLayout1.setOrientation(LinearLayout.VERTICAL);
+ linearLayout1.setBackgroundColor(MENU_FEATURE_BG_COLOR);
- TextView note = new TextView(activity);
- note.setText("Tap OK to apply changes" + (maxValue != 0 ? "\nMax value: " + maxValue : ""));
- note.setTextColor(TEXT_COLOR_2);
+ //TextView
+ final TextView TextViewNote = new TextView(activity);
+ TextViewNote.setText("Tap OK to apply changes. Tap outside to cancel");
+ if (maxValue != 0)
+ TextViewNote.setText("Tap OK to apply changes. Tap outside to cancel\nMax value: " + maxValue);
+ TextViewNote.setTextColor(TEXT_COLOR_2);
+ //Edit text
final EditText edittext = new EditText(activity);
edittext.setMaxLines(1);
edittext.setWidth(convertDipToPixels(300));
edittext.setTextColor(TEXT_COLOR_2);
-
if (numOnly) {
edittext.setInputType(InputType.TYPE_CLASS_NUMBER);
edittext.setKeyListener(DigitsKeyListener.getInstance("0123456789-"));
- edittext.setText(String.valueOf(numVal[0]));
- edittext.setFilters(new InputFilter[]{new InputFilter.LengthFilter(10)});
+ InputFilter[] FilterArray = new InputFilter[1];
+ FilterArray[0] = new InputFilter.LengthFilter(10);
+ edittext.setFilters(FilterArray);
} else {
- edittext.setText(stringVal[0]);
+ edittext.setText(edittextstring.getString());
}
-
- edittext.setOnFocusChangeListener((v, hasFocus) -> {
- InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
- if (hasFocus) {
- imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
- } else {
- imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, 0);
+ edittext.setOnFocusChangeListener(new View.OnFocusChangeListener() {
+ @SuppressLint("WrongConstant")
+ @Override
+ public void onFocusChange(View v, boolean hasFocus) {
+ InputMethodManager imm = (InputMethodManager) activity.getSystemService(activity.INPUT_METHOD_SERVICE);
+ if (hasFocus) {
+ imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
+ } else {
+ imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
+ }
}
});
edittext.requestFocus();
- Button okBtn = new Button(activity);
- okBtn.setBackgroundColor(BTN_COLOR);
- okBtn.setTextColor(TEXT_COLOR_2);
- okBtn.setText("OK");
- okBtn.setOnClickListener(v -> {
- if (numOnly) {
- int num;
- try {
- num = Integer.parseInt(TextUtils.isEmpty(edittext.getText().toString()) ? "0" : edittext.getText().toString());
- if (maxValue != 0 && num > maxValue) num = maxValue;
- } catch (NumberFormatException ex) {
- num = 2147483640;
+ //Button
+ Button btndialog = new Button(activity);
+ btndialog.setBackgroundColor(BTN_COLOR);
+ btndialog.setTextColor(TEXT_COLOR_2);
+ btndialog.setText("OK");
+ btndialog.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ if (numOnly) {
+ int num;
+ try {
+ num = Integer.parseInt(TextUtils.isEmpty(edittext.getText().toString()) ? "0" : edittext.getText().toString());
+ if (maxValue != 0 && num >= maxValue)
+ num = maxValue;
+ } catch (NumberFormatException ex) {
+ num = 2147483640;
+ }
+ edittextnum.setNum(num);
+ button.setText(Html.fromHtml(featName + ": " + num + ""));
+ alert.dismiss();
+ Changes(activity, featNum, featName, num, false, "");
+ // Preferences.changeFeatureInt(featName, featNum, num);
+ } else {
+ String str = edittext.getText().toString();
+ edittextstring.setString(edittext.getText().toString());
+ button.setText(Html.fromHtml(featName + ": " + str + ""));
+ alert.dismiss();
+ Changes(activity, featNum, featName, 0, false, str);
+ //Preferences.changeFeatureString(featName, featNum, str);
}
- numVal[0] = num;
- button.setText(Html.fromHtml(featName + ": " + num + ""));
- Changes(activity, featNum, featName, num, true, "");
- } else {
- String str = edittext.getText().toString();
- stringVal[0] = str;
- button.setText(Html.fromHtml(featName + ": " + str + ""));
- Changes(activity, featNum, featName, 0, false, str);
+ edittext.setFocusable(false);
}
- alert.dismiss();
- edittext.setFocusable(false);
});
- dialogLayout.addView(note);
- dialogLayout.addView(edittext);
- dialogLayout.addView(okBtn);
- alert.setView(dialogLayout);
+ linearLayout1.addView(TextViewNote);
+ linearLayout1.addView(edittext);
+ linearLayout1.addView(btndialog);
+ alert.setView(linearLayout1);
alert.show();
}
});
@@ -1018,7 +1036,29 @@ private View RichWebView(String text) {
return wView;
}
+ private class EditTextString {
+ private String text;
+
+ public void setString(String s) {
+ text = s;
+ }
+
+ public String getString() {
+ return text;
+ }
+ }
+ private class EditTextNum {
+ private int val;
+
+ public void setNum(int i) {
+ val = i;
+ }
+
+ public int getNum() {
+ return val;
+ }
+ }
private boolean isViewCollapsed() {