This commit is contained in:
ShirosakiMio 2022-12-12 20:27:36 +08:00
parent fd8b7ea718
commit cd19f86a97
4 changed files with 33 additions and 6 deletions

View File

@ -6,6 +6,7 @@ import android.os.Bundle;
import android.util.Log; import android.util.Log;
import android.view.Surface; import android.view.Surface;
import android.view.TextureView; import android.view.TextureView;
import android.view.View;
import android.widget.EditText; import android.widget.EditText;
import android.widget.ImageView; import android.widget.ImageView;
@ -33,8 +34,8 @@ public class JVMActivity extends FCLActivity implements TextureView.SurfaceTextu
private static FCLBridge fclBridge; private static FCLBridge fclBridge;
//only for test version //only for test version
private MioMouseKeyboard mioMouseKeyboard; public MioMouseKeyboard mioMouseKeyboard;
private ImageView mouse; public ImageView mouse;
private EditText input; private EditText input;
public static void setFClBridge(FCLBridge fclBridge, ControllerType controllerType) { public static void setFClBridge(FCLBridge fclBridge, ControllerType controllerType) {
@ -53,7 +54,7 @@ public class JVMActivity extends FCLActivity implements TextureView.SurfaceTextu
} }
controller = controllerType == ControllerType.GAME ? new GameController() : new JavaGuiController(); controller = controllerType == ControllerType.GAME ? new GameController() : new JavaGuiController();
controller.setup(this);
textureView = findViewById(R.id.texture_view); textureView = findViewById(R.id.texture_view);
textureView.setSurfaceTextureListener(this); textureView.setSurfaceTextureListener(this);
mouse=findViewById(R.id.mouse); mouse=findViewById(R.id.mouse);
@ -88,6 +89,15 @@ public class JVMActivity extends FCLActivity implements TextureView.SurfaceTextu
public void onBackPressed() { public void onBackPressed() {
if(getResources().getConfiguration().keyboard!= Configuration.KEYBOARD_NOKEYS) { if(getResources().getConfiguration().keyboard!= Configuration.KEYBOARD_NOKEYS) {
mioMouseKeyboard.catchPointer(); mioMouseKeyboard.catchPointer();
MioMouseKeyboard.baseX=0;
MioMouseKeyboard.baseY=0;
// if (FCLBridge.cursorMode==FCLBridge.CursorEnabled) {
// mouse.setVisibility(View.INVISIBLE);
// mioMouseKeyboard.releasePointer();
// } else {
// mouse.setVisibility(View.VISIBLE);
// mioMouseKeyboard.catchPointer();
// }
} }
} }
} }

View File

@ -2,16 +2,19 @@ package com.tungsten.fcl.control;
import android.content.Intent; import android.content.Intent;
import android.view.View; import android.view.View;
import android.widget.ImageView;
import com.tungsten.fcl.activity.JVMActivity; import com.tungsten.fcl.activity.JVMActivity;
import com.tungsten.fcl.activity.JVMCrashActivity; import com.tungsten.fcl.activity.JVMCrashActivity;
import com.tungsten.fclauncher.FCLPath; import com.tungsten.fclauncher.FCLPath;
import com.tungsten.fclauncher.bridge.FCLBridge;
import com.tungsten.fclauncher.bridge.FCLBridgeCallback; import com.tungsten.fclauncher.bridge.FCLBridgeCallback;
import com.tungsten.fclcore.util.Logging; import com.tungsten.fclcore.util.Logging;
import java.util.logging.Level; import java.util.logging.Level;
public class GameController implements Controller { public class GameController implements Controller {
private JVMActivity activity;
@Override @Override
public View getLayout() { public View getLayout() {
@ -20,19 +23,30 @@ public class GameController implements Controller {
@Override @Override
public void setup(JVMActivity activity) { public void setup(JVMActivity activity) {
this.activity=activity;
} }
@Override @Override
public FCLBridgeCallback getCallbackBridge() { public FCLBridgeCallback getCallbackBridge() {
return new FCLProcessListener(); return new FCLProcessListener(activity);
} }
static class FCLProcessListener implements FCLBridgeCallback { static class FCLProcessListener implements FCLBridgeCallback {
private JVMActivity activity;
FCLProcessListener(JVMActivity activity){
this.activity=activity;
}
@Override @Override
public void onCursorModeChange(int mode) { public void onCursorModeChange(int mode) {
// TODO: Handle mouse event // TODO: Handle mouse event
activity.mouse.post(()->{
if (mode== FCLBridge.CursorEnabled) {
activity.mouse.setVisibility(View.VISIBLE);
} else {
activity.mouse.setVisibility(View.INVISIBLE);
}
});
} }
@Override @Override

View File

@ -29,7 +29,7 @@ public class MioMouseKeyboard {
private FCLBridge fclBridge; private FCLBridge fclBridge;
private int baseX,baseY; public static int baseX,baseY;
public MioMouseKeyboard(JVMActivity context, View mouse, View focusView){ public MioMouseKeyboard(JVMActivity context, View mouse, View focusView){
this.context=context; this.context=context;
this.mouseCursor=mouse; this.mouseCursor=mouse;

View File

@ -59,6 +59,8 @@ public class FCLBridge implements Serializable {
private boolean isLogPipeReady=false; private boolean isLogPipeReady=false;
private WeakReference<LogReceiver> logReceiver; private WeakReference<LogReceiver> logReceiver;
public static int cursorMode=CursorEnabled;
public FCLBridge(FCLBridgeCallback callback) { public FCLBridge(FCLBridgeCallback callback) {
this.callback = callback; this.callback = callback;
} }
@ -138,6 +140,7 @@ public class FCLBridge implements Serializable {
// FCLBridge callbacks // FCLBridge callbacks
public void setCursorMode(int mode) { public void setCursorMode(int mode) {
cursorMode=mode;
if (callback != null) { if (callback != null) {
callback.onCursorModeChange(mode); callback.onCursorModeChange(mode);
} }