mirror of
https://github.com/2009scape/2009Scape-mobile.git
synced 2025-12-12 01:21:09 -07:00
158 lines
6 KiB
Java
158 lines
6 KiB
Java
package net.kdt.pojavlaunch;
|
|
|
|
import android.os.*;
|
|
import android.view.*;
|
|
|
|
import androidx.annotation.Nullable;
|
|
|
|
import net.kdt.pojavlaunch.customcontrols.*;
|
|
import net.kdt.pojavlaunch.prefs.*;
|
|
import net.kdt.pojavlaunch.utils.MCOptionUtils;
|
|
|
|
import org.lwjgl.glfw.*;
|
|
import java.io.*;
|
|
|
|
import static net.kdt.pojavlaunch.prefs.LauncherPreferences.DEFAULT_PREF;
|
|
|
|
public class MainActivity extends BaseMainActivity {
|
|
private ControlLayout mControlLayout;
|
|
|
|
private View.OnClickListener mClickListener;
|
|
private View.OnTouchListener mTouchListener;
|
|
private FileObserver fileObserver;
|
|
|
|
@Override
|
|
public void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
initLayout(R.layout.main_with_customctrl);
|
|
|
|
|
|
mClickListener = new View.OnClickListener(){
|
|
@Override
|
|
public void onClick(View view) {
|
|
if (view instanceof ControlButton) {
|
|
ControlButton button = (ControlButton) view;
|
|
switch (button.getProperties().keycode) {
|
|
case ControlData.SPECIALBTN_KEYBOARD:
|
|
showKeyboard();
|
|
break;
|
|
|
|
case ControlData.SPECIALBTN_TOGGLECTRL:
|
|
mControlLayout.toggleControlVisible();
|
|
break;
|
|
|
|
case ControlData.SPECIALBTN_VIRTUALMOUSE:
|
|
toggleMouse(button);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
mTouchListener = new View.OnTouchListener(){
|
|
@Override
|
|
public boolean onTouch(View view, MotionEvent e) {
|
|
boolean isDown;
|
|
switch (e.getActionMasked()) {
|
|
case MotionEvent.ACTION_DOWN: // 0
|
|
case MotionEvent.ACTION_POINTER_DOWN: // 5
|
|
isDown = true;
|
|
break;
|
|
case MotionEvent.ACTION_UP: // 1
|
|
case MotionEvent.ACTION_CANCEL: // 3
|
|
case MotionEvent.ACTION_POINTER_UP: // 6
|
|
isDown = false;
|
|
break;
|
|
default:
|
|
return false;
|
|
}
|
|
|
|
if (view instanceof ControlButton) {
|
|
ControlButton button = (ControlButton) view;
|
|
switch (button.getProperties().keycode) {
|
|
case ControlData.SPECIALBTN_MOUSEPRI:
|
|
sendMouseButton(LWJGLGLFWKeycode.GLFW_MOUSE_BUTTON_LEFT, isDown);
|
|
break;
|
|
|
|
case ControlData.SPECIALBTN_MOUSEMID:
|
|
sendMouseButton(LWJGLGLFWKeycode.GLFW_MOUSE_BUTTON_MIDDLE, isDown);
|
|
break;
|
|
|
|
case ControlData.SPECIALBTN_MOUSESEC:
|
|
if (CallbackBridge.isGrabbing()) {
|
|
sendMouseButton(LWJGLGLFWKeycode.GLFW_MOUSE_BUTTON_RIGHT, isDown);
|
|
} else {
|
|
CallbackBridge.putMouseEventWithCoords(LWJGLGLFWKeycode.GLFW_MOUSE_BUTTON_RIGHT, isDown ? 1 : 0, CallbackBridge.mouseX, CallbackBridge.mouseY);
|
|
|
|
setRightOverride(isDown);
|
|
}
|
|
break;
|
|
|
|
case ControlData.SPECIALBTN_SCROLLDOWN:
|
|
CallbackBridge.sendScroll(0, 0.1d);
|
|
break;
|
|
|
|
case ControlData.SPECIALBTN_SCROLLUP:
|
|
CallbackBridge.sendScroll(0, -0.1d);
|
|
break;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
};
|
|
|
|
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q){
|
|
fileObserver = new FileObserver(new File(Tools.DIR_GAME_NEW + "/options.txt"), FileObserver.MODIFY) {
|
|
@Override
|
|
public void onEvent(int i, @Nullable String s) {
|
|
//FIXME Make sure the multithreading nature of this event doesn't cause any problems ?
|
|
MCOptionUtils.load();
|
|
getMcScale();
|
|
}
|
|
};
|
|
}else{
|
|
fileObserver = new FileObserver(Tools.DIR_GAME_NEW + "/options.txt", FileObserver.MODIFY) {
|
|
@Override
|
|
public void onEvent(int i, @Nullable String s) {
|
|
//FIXME Make sure the multithreading nature of this event doesn't cause any problems ?
|
|
MCOptionUtils.load();
|
|
getMcScale();
|
|
}
|
|
};
|
|
}
|
|
|
|
fileObserver.startWatching();
|
|
|
|
ControlData[] specialButtons = ControlData.getSpecialButtons();
|
|
specialButtons[0].specialButtonListener
|
|
= specialButtons[1].specialButtonListener
|
|
= specialButtons[4].specialButtonListener
|
|
= mClickListener;
|
|
|
|
specialButtons[2].specialButtonListener
|
|
= specialButtons[3].specialButtonListener
|
|
= specialButtons[5].specialButtonListener
|
|
= specialButtons[6].specialButtonListener
|
|
= specialButtons[7].specialButtonListener
|
|
= mTouchListener;
|
|
|
|
mControlLayout = findViewById(R.id.main_control_layout);
|
|
mControlLayout.setModifiable(false);
|
|
try {
|
|
mControlLayout.loadLayout(LauncherPreferences.PREF_DEFAULTCTRL_PATH);
|
|
} catch(IOException e) {
|
|
try {
|
|
mControlLayout.loadLayout(Tools.CTRLDEF_FILE);
|
|
DEFAULT_PREF.edit().putString("defaultCtrl",Tools.CTRLDEF_FILE).commit();
|
|
} catch (IOException ioException) {
|
|
Tools.showError(this, ioException);
|
|
}
|
|
} catch (Throwable th) {
|
|
Tools.showError(this, th);
|
|
}
|
|
|
|
// toggleGui(null);
|
|
mControlLayout.toggleControlVisible();
|
|
}
|
|
}
|