diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/AWTCanvasView.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/AWTCanvasView.java
index 2739d4a29..f9183f1b9 100644
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/AWTCanvasView.java
+++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/AWTCanvasView.java
@@ -37,10 +37,19 @@ public class AWTCanvasView extends TextureView implements TextureView.SurfaceTex
}
/** Computes the scale to better fit the screen */
- int[] initScaleFactors(){
+ void initScaleFactors(){
+ initScaleFactors(0);
+ }
+
+ void initScaleFactors(int forcedScale){
//Could be optimized
- int minDimension = Math.min(CallbackBridge.physicalHeight,CallbackBridge.physicalWidth);
- mScaleFactor = (3*minDimension)/1080;
+ if(forcedScale < 1) { //Auto scale
+ int minDimension = Math.min(CallbackBridge.physicalHeight, CallbackBridge.physicalWidth);
+ mScaleFactor = Math.max(((3 * minDimension) / 1080) - 1, 1);
+ }else{
+ mScaleFactor = forcedScale;
+ }
+
int[] scales = new int[2]; //Left, Top
scales[0] = (CallbackBridge.physicalWidth/2);
@@ -49,7 +58,7 @@ public class AWTCanvasView extends TextureView implements TextureView.SurfaceTex
scales[1] = (CallbackBridge.physicalHeight/2);
scales[1] -= scales[1]/mScaleFactor;
- return scales;
+ mScales = scales;
}
public AWTCanvasView(Context ctx) {
@@ -65,7 +74,7 @@ public class AWTCanvasView extends TextureView implements TextureView.SurfaceTex
fpsPaint.setTextSize(20);
setSurfaceTextureListener(this);
- mScales = initScaleFactors();
+ initScaleFactors();
}
@Override
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/JavaGUILauncherActivity.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/JavaGUILauncherActivity.java
index aa5123c84..907001a06 100644
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/JavaGUILauncherActivity.java
+++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/JavaGUILauncherActivity.java
@@ -36,7 +36,9 @@ public class JavaGUILauncherActivity extends LoggableActivity implements View.On
private boolean isLogAllow, mSkipDetectMod;
private boolean rightOverride = false;
- private int[] scaleFactor = initScaleFactors();
+ private int scaleFactor;
+ private int[] scaleFactors = initScaleFactors();
+
private final int fingerStillThreshold = 8;
private int initialX;
private int initialY;
@@ -254,8 +256,8 @@ public class JavaGUILauncherActivity extends LoggableActivity implements View.On
}
void sendScaledMousePosition(float x, float y){
- AWTInputBridge.sendMousePos((int) map(x,0,CallbackBridge.physicalWidth,scaleFactor[0],scaleFactor[2]),
- (int) map(y,0,CallbackBridge.physicalHeight,scaleFactor[1],scaleFactor[3]));
+ AWTInputBridge.sendMousePos((int) map(x,0,CallbackBridge.physicalWidth, scaleFactors[0], scaleFactors[2]),
+ (int) map(y,0,CallbackBridge.physicalHeight, scaleFactors[1], scaleFactors[3]));
}
public void forceClose(View v) {
@@ -330,9 +332,17 @@ public class JavaGUILauncherActivity extends LoggableActivity implements View.On
}
int[] initScaleFactors(){
+ return initScaleFactors(true);
+ }
+
+ int[] initScaleFactors(boolean autoScale){
//Could be optimized
- int minDimension = Math.min(CallbackBridge.physicalHeight,CallbackBridge.physicalWidth);
- int scaleFactor = (3*minDimension)/1080;
+
+ if(autoScale) { //Auto scale
+ int minDimension = Math.min(CallbackBridge.physicalHeight, CallbackBridge.physicalWidth);
+ scaleFactor = Math.max(((3 * minDimension) / 1080) - 1, 1);
+ }
+
int[] scales = new int[4]; //Left, Top, Right, Bottom
scales[0] = (CallbackBridge.physicalWidth/2);
@@ -350,4 +360,17 @@ public class JavaGUILauncherActivity extends LoggableActivity implements View.On
return scales;
}
+ public void scaleDown(View view) {
+ scaleFactor = Math.max(scaleFactor - 1, 1);
+ scaleFactors = initScaleFactors(false);
+ mTextureView.initScaleFactors(scaleFactor);
+ sendScaledMousePosition(mousePointer.getX(),mousePointer.getY());
+ }
+
+ public void scaleUp(View view) {
+ scaleFactor = Math.min(scaleFactor + 1, 6);
+ scaleFactors = initScaleFactors(false);
+ mTextureView.initScaleFactors(scaleFactor);
+ sendScaledMousePosition(mousePointer.getX(),mousePointer.getY());
+ }
}
diff --git a/app_pojavlauncher/src/main/res/layout/install_mod.xml b/app_pojavlauncher/src/main/res/layout/install_mod.xml
index 05ad90921..620fb15e3 100644
--- a/app_pojavlauncher/src/main/res/layout/install_mod.xml
+++ b/app_pojavlauncher/src/main/res/layout/install_mod.xml
@@ -44,6 +44,24 @@
android:onClick="openLogOutput"
android:layout_toLeftOf="@id/installmod_btn2"/>
+
+
+
+