From 54d09b53a1aa92d7f7a514ee72be976dbd0c124c Mon Sep 17 00:00:00 2001 From: artdeell Date: Mon, 22 Feb 2021 14:26:44 +0300 Subject: [PATCH] Mouse speed editor in settings + ingame --- .../net/kdt/pojavlaunch/BaseMainActivity.java | 48 +++++++++++++++++- .../prefs/LauncherPreferenceFragment.java | 7 ++- .../prefs/LauncherPreferences.java | 4 +- .../main/res/drawable/mouse_pointer_spd.png | Bin 0 -> 18767 bytes .../res/layout/live_mouse_speed_editor.xml | 31 +++++++++++ .../src/main/res/menu/menu_runopt.xml | 3 ++ .../src/main/res/values/strings.xml | 2 + .../src/main/res/xml/pref_main.xml | 7 +++ 8 files changed, 98 insertions(+), 4 deletions(-) create mode 100644 app_pojavlauncher/src/main/res/drawable/mouse_pointer_spd.png create mode 100644 app_pojavlauncher/src/main/res/layout/live_mouse_speed_editor.xml diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseMainActivity.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseMainActivity.java index df3d1d6b5..b7811de57 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseMainActivity.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseMainActivity.java @@ -161,6 +161,9 @@ public class BaseMainActivity extends LoggableActivity { case R.id.nav_debug: toggleDebug(); break; case R.id.nav_customkey: dialogSendCustomKey(); + break; + case R.id.nav_mousespd: adjustMouseSpeedLive(); + break; } //Toast.makeText(MainActivity.this, menuItem.getTitle() + ":" + menuItem.getItemId(), Toast.LENGTH_SHORT).show(); @@ -317,8 +320,8 @@ public class BaseMainActivity extends LoggableActivity { } break; case MotionEvent.ACTION_MOVE: // 2 - mouseX = Math.max(0, Math.min(displayMetrics.widthPixels, mouseX + x - prevX)); - mouseY = Math.max(0, Math.min(displayMetrics.heightPixels, mouseY + y - prevY)); + mouseX = Math.max(0, Math.min(displayMetrics.widthPixels, mouseX + (x - prevX)*LauncherPreferences.PREF_MOUSESPEED)); + mouseY = Math.max(0, Math.min(displayMetrics.heightPixels, mouseY + (y - prevY)*LauncherPreferences.PREF_MOUSESPEED)); mouse_x = (int) (mouseX * scaleFactor); mouse_y = (int) (mouseY * scaleFactor); placeMouseAt(mouseX, mouseY); @@ -1226,5 +1229,46 @@ public class BaseMainActivity extends LoggableActivity { } return hotbarKeys[((x - barX) / mcscale(180 / 9)) % 9]; } + int tmpMouseSpeed; + public void adjustMouseSpeedLive() { + AlertDialog.Builder b = new AlertDialog.Builder(this); + b.setTitle(R.string.mcl_setting_title_mousespeed); + View v = LayoutInflater.from(this).inflate(R.layout.live_mouse_speed_editor,null); + final SeekBar sb = v.findViewById(R.id.mouseSpeed); + final TextView tv = v.findViewById(R.id.mouseSpeedTV); + sb.setMax(275); + tmpMouseSpeed = (int) ((LauncherPreferences.PREF_MOUSESPEED*100)); + sb.setProgress(tmpMouseSpeed-25); + tv.setText(tmpMouseSpeed +" %"); + sb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { + @Override + public void onProgressChanged(SeekBar seekBar, int i, boolean b) { + tmpMouseSpeed = i+25; + tv.setText(tmpMouseSpeed +" %"); + } + @Override + public void onStartTrackingTouch(SeekBar seekBar) {} + @Override + public void onStopTrackingTouch(SeekBar seekBar) {} + }); + b.setView(v); + b.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + LauncherPreferences.PREF_MOUSESPEED = ((float)tmpMouseSpeed)/100f; + LauncherPreferences.DEFAULT_PREF.edit().putInt("mousespeed",tmpMouseSpeed).commit(); + dialogInterface.dismiss(); + System.gc(); + } + }); + b.setNegativeButton(android.R.string.cancel,new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + dialogInterface.dismiss(); + System.gc(); + } + }); + b.show(); + } } diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferenceFragment.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferenceFragment.java index 01ef8fa9b..740422fb1 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferenceFragment.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferenceFragment.java @@ -39,7 +39,12 @@ public class LauncherPreferenceFragment extends PreferenceFragmentCompat impleme CustomSeekBarPreference seek5 = (CustomSeekBarPreference) findPreference("resolutionRatio"); seek5.setMin(25); seek5.setSuffix(" %"); - + + CustomSeekBarPreference seek6 = (CustomSeekBarPreference) findPreference("mousespeed"); + seek6.setMin(25); + seek6.setValue((int)(LauncherPreferences.PREF_MOUSESPEED*100f)); + seek6.setMax(300); + seek6.setSuffix(" %"); // #724 bug fix if (seek5.getValue() < 25) { seek5.setValue(100); diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferences.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferences.java index d281b3b14..75df2d73e 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferences.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferences.java @@ -26,13 +26,15 @@ public class LauncherPreferences public static String PREF_VERSION_REPOS = "https://launchermeta.mojang.com/mc/game/version_manifest_v2.json"; public static boolean PREF_CHECK_LIBRARY_SHA = true; public static boolean PREF_DISABLE_GESTURES = false; + public static float PREF_MOUSESPEED = 1f; public static void loadPreferences() { PREF_BUTTONSIZE = DEFAULT_PREF.getInt("buttonscale", 100); PREF_MOUSESCALE = DEFAULT_PREF.getInt("mousescale", 100); + PREF_MOUSESPEED = ((float)DEFAULT_PREF.getInt("mousespeed",100))/100f; PREF_FREEFORM = DEFAULT_PREF.getBoolean("freeform", false); PREF_HIDE_SIDEBAR = DEFAULT_PREF.getBoolean("hideSidebar", false); PREF_IGNORE_NOTCH = DEFAULT_PREF.getBoolean("ignoreNotch", false); - PREF_BACK_TO_RIGHT_MOUSE = DEFAULT_PREF.getBoolean("backToRightMouse", true); + PREF_BACK_TO_RIGHT_MOUSE = DEFAULT_PREF.getBoolean("backToRightMouse", false); PREF_BUTTON_FLAT = DEFAULT_PREF.getBoolean("flatButtonStyle", false); PREF_VERTYPE_RELEASE = DEFAULT_PREF.getBoolean("vertype_release", true); PREF_VERTYPE_SNAPSHOT = DEFAULT_PREF.getBoolean("vertype_snapshot", false); diff --git a/app_pojavlauncher/src/main/res/drawable/mouse_pointer_spd.png b/app_pojavlauncher/src/main/res/drawable/mouse_pointer_spd.png new file mode 100644 index 0000000000000000000000000000000000000000..8ebd14f9181328c808ba4b90521e41d8d0607bd7 GIT binary patch literal 18767 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 literal 0 HcmV?d00001 diff --git a/app_pojavlauncher/src/main/res/layout/live_mouse_speed_editor.xml b/app_pojavlauncher/src/main/res/layout/live_mouse_speed_editor.xml new file mode 100644 index 000000000..a4c806164 --- /dev/null +++ b/app_pojavlauncher/src/main/res/layout/live_mouse_speed_editor.xml @@ -0,0 +1,31 @@ + + + + + + + \ No newline at end of file diff --git a/app_pojavlauncher/src/main/res/menu/menu_runopt.xml b/app_pojavlauncher/src/main/res/menu/menu_runopt.xml index f084b730a..f74005888 100644 --- a/app_pojavlauncher/src/main/res/menu/menu_runopt.xml +++ b/app_pojavlauncher/src/main/res/menu/menu_runopt.xml @@ -12,4 +12,7 @@ + diff --git a/app_pojavlauncher/src/main/res/values/strings.xml b/app_pojavlauncher/src/main/res/values/strings.xml index 550577a18..55f79dabb 100644 --- a/app_pojavlauncher/src/main/res/values/strings.xml +++ b/app_pojavlauncher/src/main/res/values/strings.xml @@ -213,4 +213,6 @@ Library %s is fine and usable Disable gestures Disables gestures, such as hold to break block, and tap to place a block. + Mouse Speed + Changes the speed of the software mouse diff --git a/app_pojavlauncher/src/main/res/xml/pref_main.xml b/app_pojavlauncher/src/main/res/xml/pref_main.xml index be8139b20..def1ebc04 100644 --- a/app_pojavlauncher/src/main/res/xml/pref_main.xml +++ b/app_pojavlauncher/src/main/res/xml/pref_main.xml @@ -104,6 +104,13 @@ app2:icon="@drawable/mouse_pointer_1" app2:selectable="false" app2:showSeekBarValue="true" /> +