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 000000000..8ebd14f91 Binary files /dev/null and b/app_pojavlauncher/src/main/res/drawable/mouse_pointer_spd.png differ 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" /> +