From 65f67321900012093b01ec5c8959dcb09b10b123 Mon Sep 17 00:00:00 2001 From: Darien Johnson <84008186+CADIndie@users.noreply.github.com> Date: Sun, 8 Dec 2024 13:52:46 -0500 Subject: [PATCH] Remove Unity (Including Wrapper Submodule) Still needs to have some things removed from the JNI bridge (i.e, callback to restart env if crash/close) --- .gitmodules | 3 - build.gradle | 13 +- libs/unity-classes.jar | Bin 107474 -> 0 bytes settings.gradle | 6 +- src/main/AndroidManifest.xml | 11 +- src/main/assets/lwjgl/version | 2 +- .../java/org/lwjgl/glfw/CallbackBridge.java | 12 +- src/main/java/pojlib/API.java | 2 +- src/main/java/pojlib/InstanceHandler.java | 2 +- ...yPlayerActivity.java => MainActivity.java} | 302 +++++------------- .../java/pojlib/fragments/FirstFragment.java | 45 +++ .../java/pojlib/fragments/SecondFragment.java | 45 +++ .../java/pojlib/input/gamepad/Gamepad.java | 2 +- src/main/jni/awt_bridge.c | 2 +- src/main/res/layout/activity_main.xml | 33 ++ src/main/res/layout/content_main.xml | 19 ++ src/main/res/layout/fragment_first.xml | 35 ++ src/main/res/layout/fragment_second.xml | 35 ++ src/main/res/navigation/nav_graph.xml | 28 ++ src/main/res/values-land/dimens.xml | 3 + src/main/res/values-night/themes.xml | 7 + src/main/res/values-v23/themes.xml | 9 + src/main/res/values-w1240dp/dimens.xml | 3 + src/main/res/values-w600dp/dimens.xml | 3 + src/main/res/values/dimens.xml | 3 + src/main/res/values/strings.xml | 45 +++ src/main/res/values/themes.xml | 9 + wrapper | 1 - 28 files changed, 432 insertions(+), 248 deletions(-) delete mode 100644 libs/unity-classes.jar rename src/main/java/pojlib/{UnityPlayerActivity.java => MainActivity.java} (61%) create mode 100644 src/main/java/pojlib/fragments/FirstFragment.java create mode 100644 src/main/java/pojlib/fragments/SecondFragment.java create mode 100644 src/main/res/layout/activity_main.xml create mode 100644 src/main/res/layout/content_main.xml create mode 100644 src/main/res/layout/fragment_first.xml create mode 100644 src/main/res/layout/fragment_second.xml create mode 100644 src/main/res/navigation/nav_graph.xml create mode 100644 src/main/res/values-land/dimens.xml create mode 100644 src/main/res/values-night/themes.xml create mode 100644 src/main/res/values-v23/themes.xml create mode 100644 src/main/res/values-w1240dp/dimens.xml create mode 100644 src/main/res/values-w600dp/dimens.xml create mode 100644 src/main/res/values/dimens.xml create mode 100644 src/main/res/values/strings.xml create mode 100644 src/main/res/values/themes.xml delete mode 160000 wrapper diff --git a/.gitmodules b/.gitmodules index cf7ba34c..e69de29b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +0,0 @@ -[submodule "wrapper"] - path = wrapper - url = https://github.com/QuestCraftPlusPlus/Wrapper-IL2CPP.git diff --git a/build.gradle b/build.gradle index 059d3d66..bacd67e4 100644 --- a/build.gradle +++ b/build.gradle @@ -28,6 +28,13 @@ android { } buildToolsVersion = "30.0.3" + buildFeatures { + viewBinding true + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 + } } build { @@ -52,5 +59,9 @@ dependencies { implementation("androidx.core:core:1.13.1") implementation("com.microsoft.azure:msal4j:1.14.0") implementation("com.github.Mathias-Boulay:android_gamepad_remapper:2.0.3") - implementation("blank:unity-classes") + implementation 'com.google.android.material:material:1.12.0' + implementation 'androidx.appcompat:appcompat:1.7.0' + implementation 'androidx.constraintlayout:constraintlayout:2.2.0' + implementation 'androidx.navigation:navigation-fragment:2.8.4' + implementation 'androidx.navigation:navigation-ui:2.8.4' } diff --git a/libs/unity-classes.jar b/libs/unity-classes.jar deleted file mode 100644 index 650a6e74d33191031538b77e35b2bab2ca593247..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 107474 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�*S~O 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 VC-| + - + + + + + \ No newline at end of file diff --git a/src/main/assets/lwjgl/version b/src/main/assets/lwjgl/version index d04d82ab..76cb047b 100644 --- a/src/main/assets/lwjgl/version +++ b/src/main/assets/lwjgl/version @@ -1 +1 @@ -1729544610054 \ No newline at end of file +1733683669279 \ No newline at end of file diff --git a/src/main/java/org/lwjgl/glfw/CallbackBridge.java b/src/main/java/org/lwjgl/glfw/CallbackBridge.java index 188bb2ae..764b790e 100644 --- a/src/main/java/org/lwjgl/glfw/CallbackBridge.java +++ b/src/main/java/org/lwjgl/glfw/CallbackBridge.java @@ -9,7 +9,7 @@ import java.util.ArrayList; import dalvik.annotation.optimization.CriticalNative; -import pojlib.UnityPlayerActivity; +import pojlib.MainActivity; import pojlib.input.GrabListener; import pojlib.input.LwjglGlfwKeycode; @@ -108,12 +108,12 @@ public static boolean isGrabbing() { public static @Nullable String accessAndroidClipboard(int type, String copy) { switch (type) { case CLIPBOARD_COPY: - UnityPlayerActivity.GLOBAL_CLIPBOARD.setPrimaryClip(ClipData.newPlainText("Copy", copy)); + MainActivity.GLOBAL_CLIPBOARD.setPrimaryClip(ClipData.newPlainText("Copy", copy)); return null; case CLIPBOARD_PASTE: - if (UnityPlayerActivity.GLOBAL_CLIPBOARD.hasPrimaryClip() && UnityPlayerActivity.GLOBAL_CLIPBOARD.getPrimaryClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN)) { - return UnityPlayerActivity.GLOBAL_CLIPBOARD.getPrimaryClip().getItemAt(0).getText().toString(); + if (MainActivity.GLOBAL_CLIPBOARD.hasPrimaryClip() && MainActivity.GLOBAL_CLIPBOARD.getPrimaryClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN)) { + return MainActivity.GLOBAL_CLIPBOARD.getPrimaryClip().getItemAt(0).getText().toString(); } else { return ""; } @@ -179,8 +179,8 @@ private static void onGrabStateChanged(final boolean grabbing) { } public static void restartUnitySession(Activity activity) { - UnityPlayerActivity unity = (UnityPlayerActivity) activity; - unity.reinitUnity(); +// Main unity = (UnityPlayerActivity) activity; +// unity.reinitUnity(); } public static void addGrabListener(GrabListener listener) { diff --git a/src/main/java/pojlib/API.java b/src/main/java/pojlib/API.java index c7c5eaa8..4ac89f0a 100644 --- a/src/main/java/pojlib/API.java +++ b/src/main/java/pojlib/API.java @@ -164,7 +164,7 @@ public static void updateMods(MinecraftInstances instances, MinecraftInstances.I */ public static void launchInstance(Activity activity, MinecraftAccount account, MinecraftInstances.Instance instance) { try { - UnityPlayerActivity.installLWJGL(activity); + MainActivity.installLWJGL(activity); } catch (IOException e) { Logger.getInstance().appendToLog("WARN! LWJGL install failed, " + e); } diff --git a/src/main/java/pojlib/InstanceHandler.java b/src/main/java/pojlib/InstanceHandler.java index f9382245..3219ae3a 100644 --- a/src/main/java/pojlib/InstanceHandler.java +++ b/src/main/java/pojlib/InstanceHandler.java @@ -172,7 +172,7 @@ public static MinecraftInstances.Instance create(Activity activity, MinecraftIns String clientClasspath = Installer.installClient(minecraftVersionInfo, gameDir); String minecraftClasspath = Installer.installLibraries(minecraftVersionInfo, gameDir); String modLoaderClasspath = Installer.installLibraries(finalModLoaderVersionInfo, gameDir); - String lwjgl = UnityPlayerActivity.installLWJGL(activity); + String lwjgl = MainActivity.installLWJGL(activity); instance.classpath = clientClasspath + File.pathSeparator + minecraftClasspath + File.pathSeparator + modLoaderClasspath + File.pathSeparator + lwjgl; diff --git a/src/main/java/pojlib/UnityPlayerActivity.java b/src/main/java/pojlib/MainActivity.java similarity index 61% rename from src/main/java/pojlib/UnityPlayerActivity.java rename to src/main/java/pojlib/MainActivity.java index 6e9d41b9..5e1e88ab 100644 --- a/src/main/java/pojlib/UnityPlayerActivity.java +++ b/src/main/java/pojlib/MainActivity.java @@ -7,56 +7,53 @@ import android.annotation.SuppressLint; import android.app.Activity; -import android.app.Activity; -import android.app.ActivityGroup; -import android.app.ActivityManager; import android.content.ClipData; import android.content.ClipboardManager; -import android.content.Context; -import android.content.Intent; -import android.content.res.Configuration; +import android.content.pm.ActivityInfo; import android.os.Build; import android.os.Bundle; -import android.os.Process; -import android.util.DisplayMetrics; -import android.view.InputDevice; + +import com.google.android.material.snackbar.Snackbar; + +import androidx.appcompat.app.AppCompatActivity; + import android.util.DisplayMetrics; import android.view.InputDevice; import android.view.KeyEvent; import android.view.MotionEvent; -import android.view.View; -import android.view.ViewGroup; -import android.view.Window; import android.view.WindowManager; -import com.unity3d.player.IUnityPlayerLifecycleEvents; -import com.unity3d.player.UnityPlayer; +import androidx.navigation.NavController; +import androidx.navigation.Navigation; +import androidx.navigation.ui.AppBarConfiguration; +import androidx.navigation.ui.NavigationUI; +import org.checkerframework.framework.qual.Unused; import org.lwjgl.glfw.CallbackBridge; import java.io.File; import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Paths; import java.util.Objects; import fr.spse.gamepad_remapper.RemapperManager; import fr.spse.gamepad_remapper.RemapperView; +import pojlib.android.databinding.ActivityMainBinding; + +import pojlib.android.R; import pojlib.input.AWTInputBridge; import pojlib.input.EfficientAndroidLWJGLKeycode; import pojlib.input.GrabListener; import pojlib.input.LwjglGlfwKeycode; import pojlib.input.gamepad.DefaultDataProvider; import pojlib.input.gamepad.Gamepad; +import pojlib.util.ConfigUtil; import pojlib.util.Constants; import pojlib.util.FileUtil; -import pojlib.util.Logger; -import pojlib.util.download.DownloadManager; -import pojlib.util.download.DownloadUtils; -public class UnityPlayerActivity extends ActivityGroup implements IUnityPlayerLifecycleEvents, GrabListener -{ - protected UnityPlayer mUnityPlayer; // don't change the name of this variable; referenced from native code +public class MainActivity extends AppCompatActivity implements GrabListener { + + private AppBarConfiguration appBarConfiguration; + private ActivityMainBinding binding; public static volatile ClipboardManager GLOBAL_CLIPBOARD; private Gamepad mGamepad = null; @@ -64,52 +61,25 @@ public class UnityPlayerActivity extends ActivityGroup implements IUnityPlayerLi private boolean mLastGrabState = false; - // Override this in your custom UnityPlayerActivity to tweak the command line arguments passed to the Unity Android Player - // The command line arguments are passed as a string, separated by spaces - // UnityPlayerActivity calls this from 'onCreate' - // Supported: -force-gles20, -force-gles30, -force-gles31, -force-gles31aep, -force-gles32, -force-gles, -force-vulkan - // See https://docs.unity3d.com/Manual/CommandLineArguments.html - // @param cmdLine the current command line arguments, may be null - // @return the modified command line string or null - private String appendCommandLineArgument(String cmdLine, String arg) { - if (arg == null || arg.isEmpty()) - return cmdLine; - else if (cmdLine == null || cmdLine.isEmpty()) - return arg; - else - return cmdLine + " " + arg; - } - - protected String updateUnityCommandLineArguments(String cmdLine) - { - return appendCommandLineArgument(cmdLine, "-androidChainedSignalHandlerBehavior=disabled"); - } - // Setup activity layout - @Override protected void onCreate(Bundle savedInstanceState) { - requestWindowFeature(Window.FEATURE_NO_TITLE); + @Override + protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - String cmdLine = updateUnityCommandLineArguments(getIntent().getStringExtra("unity")); - getIntent().putExtra("unity", cmdLine); + binding = ActivityMainBinding.inflate(getLayoutInflater()); + setContentView(binding.getRoot()); - mUnityPlayer = new UnityPlayer(this, this); - setContentView(mUnityPlayer); - mUnityPlayer.setOnHierarchyChangeListener(new ViewGroup.OnHierarchyChangeListener() { - @Override - public void onChildViewAdded(View parent, View child) { - System.out.println("Child added: " + child.toString()); - } + ConfigUtil.LoadConfig(); + setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); + + setSupportActionBar(binding.toolbar); + + NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment_content_main); + appBarConfiguration = new AppBarConfiguration.Builder(navController.getGraph()).build(); + NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration); - @Override - public void onChildViewRemoved(View parent, View child) { - System.out.println("Child removed: " + child.toString()); - } - }); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); - mUnityPlayer.requestFocus(); - updateWindowSize(this); GLOBAL_CLIPBOARD = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); mInputManager = new RemapperManager(this, new RemapperView.Builder(null) @@ -129,6 +99,13 @@ public void onChildViewRemoved(View parent, View child) { .remapDpad(true)); CallbackBridge.nativeSetUseInputStackQueue(true); + updateWindowSize(this); + + binding.fab.setOnClickListener(view -> Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) + .setAnchorView(R.id.fab) + .setAction("Action", null).show()); + + binding.getRoot().requestFocus(); } public static String installLWJGL(Activity activity) throws IOException { @@ -146,16 +123,6 @@ public static String installLWJGL(Activity activity) throws IOException { return lwjgl.getAbsolutePath(); } - public void reinitUnity() { - this.runOnUiThread(() -> { - Intent start = this.getPackageManager().getLaunchIntentForPackage(getApplicationInfo().packageName); - start.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); - this.startActivity(start); - this.finish(); - Process.killProcess(Process.myPid()); - }); - } - public static DisplayMetrics getDisplayMetrics(Activity activity) { DisplayMetrics displayMetrics = new DisplayMetrics(); @@ -173,58 +140,6 @@ public static DisplayMetrics getDisplayMetrics(Activity activity) { return displayMetrics; } - public static DisplayMetrics currentDisplayMetrics; - - public static void updateWindowSize(Activity activity) { - currentDisplayMetrics = getDisplayMetrics(activity); - - CallbackBridge.physicalWidth = currentDisplayMetrics.widthPixels; - CallbackBridge.physicalHeight = currentDisplayMetrics.heightPixels; - } - - public static float dpToPx(float dp) { - //Better hope for the currentDisplayMetrics to be good - return dp * currentDisplayMetrics.density; - } - - public static float pxToDp(float px){ - //Better hope for the currentDisplayMetrics to be good - return px / currentDisplayMetrics.density; - } - - public static void querySystemClipboard() { - ClipData clipData = GLOBAL_CLIPBOARD.getPrimaryClip(); - if(clipData == null) { - AWTInputBridge.nativeClipboardReceived(null, null); - return; - } - ClipData.Item firstClipItem = clipData.getItemAt(0); - //TODO: coerce to HTML if the clip item is styled - CharSequence clipItemText = firstClipItem.getText(); - if(clipItemText == null) { - AWTInputBridge.nativeClipboardReceived(null, null); - return; - } - AWTInputBridge.nativeClipboardReceived(clipItemText.toString(), "plain"); - } - - public static void putClipboardData(String data, String mimeType) { - ClipData clipData = null; - switch(mimeType) { - case "text/plain": - clipData = ClipData.newPlainText("AWT Paste", data); - break; - case "text/html": - clipData = ClipData.newHtmlText("AWT Paste", data, data); - } - if(clipData != null) GLOBAL_CLIPBOARD.setPrimaryClip(clipData); - } - - private void createGamepad(InputDevice inputDevice) { - mGamepad = new Gamepad(inputDevice, DefaultDataProvider.INSTANCE); - } - - @SuppressLint("NewApi") @Override public boolean dispatchGenericMotionEvent(MotionEvent event) { int mouseCursorIndex = -1; @@ -354,7 +269,7 @@ public static boolean sendMouseButtonUnconverted(int button, boolean status) { @Override public void onGrabState(boolean isGrabbing) { - mUnityPlayer.post(()->updateGrabState(isGrabbing)); + binding.getRoot().post(()->updateGrabState(isGrabbing)); } // private TouchEventProcessor pickEventProcessor(boolean isGrabbing) { @@ -369,118 +284,53 @@ private void updateGrabState(boolean isGrabbing) { // } } - @Override - public boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event) { - return super.onKeyMultiple(keyCode, repeatCount, event); - } - - // When Unity player unloaded move task to background - @Override public void onUnityPlayerUnloaded() { - moveTaskToBack(true); - } - - // Callback before Unity player process is killed - @Override public void onUnityPlayerQuitted() { - } - - @Override protected void onNewIntent(Intent intent) - { - // To support deep linking, we need to make sure that the client can get access to - // the last sent intent. The clients access this through a JNI api that allows them - // to get the intent set on launch. To update that after launch we have to manually - // replace the intent with the one caught here. - setIntent(intent); - mUnityPlayer.newIntent(intent); - } - - // Quit Unity - @Override protected void onDestroy () - { - mUnityPlayer.destroy(); - super.onDestroy(); - } - - // If the activity is in multi window mode or resizing the activity is allowed we will use - // onStart/onStop (the visibility callbacks) to determine when to pause/resume. - // Otherwise it will be done in onPause/onResume as Unity has done historically to preserve - // existing behavior. - @Override protected void onStop() - { - super.onStop(); - - mUnityPlayer.pause(); - } - - @Override protected void onStart() - { - super.onStart(); - - mUnityPlayer.resume(); - } - - // Pause Unity - @Override protected void onPause() - { - super.onPause(); - - mUnityPlayer.pause(); - } - - // Resume Unity - @Override protected void onResume() - { - super.onResume(); + public static DisplayMetrics currentDisplayMetrics; - mUnityPlayer.resume(); - } + public static void updateWindowSize(Activity activity) { + currentDisplayMetrics = getDisplayMetrics(activity); - // Low Memory Unity - @Override public void onLowMemory() - { - super.onLowMemory(); - mUnityPlayer.lowMemory(); + CallbackBridge.physicalWidth = currentDisplayMetrics.widthPixels; + CallbackBridge.physicalHeight = currentDisplayMetrics.heightPixels; } - // Trim Memory Unity - @Override public void onTrimMemory(int level) - { - super.onTrimMemory(level); - if (level == TRIM_MEMORY_RUNNING_CRITICAL) - { - mUnityPlayer.lowMemory(); + @SuppressLint({}) + public static void querySystemClipboard() { + ClipData clipData = GLOBAL_CLIPBOARD.getPrimaryClip(); + if(clipData == null) { + AWTInputBridge.nativeClipboardReceived(null, null); + return; } + ClipData.Item firstClipItem = clipData.getItemAt(0); + //TODO: coerce to HTML if the clip item is styled + CharSequence clipItemText = firstClipItem.getText(); + if(clipItemText == null) { + AWTInputBridge.nativeClipboardReceived(null, null); + return; + } + AWTInputBridge.nativeClipboardReceived(clipItemText.toString(), "plain"); } - // This ensures the layout will be correct. - @Override public void onConfigurationChanged(Configuration newConfig) - { - super.onConfigurationChanged(newConfig); - mUnityPlayer.configurationChanged(newConfig); + @SuppressLint({}) + public static void putClipboardData(String data, String mimeType) { + ClipData clipData = null; + switch(mimeType) { + case "text/plain": + clipData = ClipData.newPlainText("AWT Paste", data); + break; + case "text/html": + clipData = ClipData.newHtmlText("AWT Paste", data, data); + } + if(clipData != null) GLOBAL_CLIPBOARD.setPrimaryClip(clipData); } - // Notify Unity of the focus change. - @Override public void onWindowFocusChanged(boolean hasFocus) - { - super.onWindowFocusChanged(hasFocus); - mUnityPlayer.windowFocusChanged(hasFocus); + private void createGamepad(InputDevice inputDevice) { + mGamepad = new Gamepad(inputDevice, DefaultDataProvider.INSTANCE); } -/* // For some reason the multiple keyevent type is not supported by the ndk. - // Force event injection by overriding dispatchKeyEvent(). - @Override public boolean dispatchKeyEvent(KeyEvent event) - { - if (event.getAction() == KeyEvent.ACTION_MULTIPLE) - return mUnityPlayer.injectEvent(event); - return super.dispatchKeyEvent(event); - }*/ - - // Pass any events not handled by (unfocused) views straight to UnityPlayer - @Override public boolean onKeyUp(int keyCode, KeyEvent event) { - return mUnityPlayer.injectEvent(event); - } - @Override public boolean onKeyDown(int keyCode, KeyEvent event) { - return mUnityPlayer.injectEvent(event); + @Override + public boolean onSupportNavigateUp() { + NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment_content_main); + return NavigationUI.navigateUp(navController, appBarConfiguration) + || super.onSupportNavigateUp(); } - @Override public boolean onTouchEvent(MotionEvent event) { return mUnityPlayer.injectEvent(event); } - /*API12*/ public boolean onGenericMotionEvent(MotionEvent event) { return mUnityPlayer.injectEvent(event); } } \ No newline at end of file diff --git a/src/main/java/pojlib/fragments/FirstFragment.java b/src/main/java/pojlib/fragments/FirstFragment.java new file mode 100644 index 00000000..d6a3d496 --- /dev/null +++ b/src/main/java/pojlib/fragments/FirstFragment.java @@ -0,0 +1,45 @@ +package pojlib.fragments; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; +import androidx.navigation.fragment.NavHostFragment; + +import pojlib.android.R; +import pojlib.android.databinding.FragmentFirstBinding; + +public class FirstFragment extends Fragment { + + private FragmentFirstBinding binding; + + @Override + public View onCreateView( + @NonNull LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState + ) { + + binding = FragmentFirstBinding.inflate(inflater, container, false); + return binding.getRoot(); + + } + + public void onViewCreated(@NonNull View view, Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + + binding.buttonFirst.setOnClickListener(v -> + NavHostFragment.findNavController(FirstFragment.this) + .navigate(R.id.action_FirstFragment_to_SecondFragment) + ); + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + binding = null; + } + +} \ No newline at end of file diff --git a/src/main/java/pojlib/fragments/SecondFragment.java b/src/main/java/pojlib/fragments/SecondFragment.java new file mode 100644 index 00000000..bdc440a0 --- /dev/null +++ b/src/main/java/pojlib/fragments/SecondFragment.java @@ -0,0 +1,45 @@ +package pojlib.fragments; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; +import androidx.navigation.fragment.NavHostFragment; + +import pojlib.android.R; +import pojlib.android.databinding.FragmentSecondBinding; + +public class SecondFragment extends Fragment { + + private FragmentSecondBinding binding; + + @Override + public View onCreateView( + @NonNull LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState + ) { + + binding = FragmentSecondBinding.inflate(inflater, container, false); + return binding.getRoot(); + + } + + public void onViewCreated(@NonNull View view, Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + + binding.buttonSecond.setOnClickListener(v -> + NavHostFragment.findNavController(SecondFragment.this) + .navigate(R.id.action_SecondFragment_to_FirstFragment) + ); + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + binding = null; + } + +} \ No newline at end of file diff --git a/src/main/java/pojlib/input/gamepad/Gamepad.java b/src/main/java/pojlib/input/gamepad/Gamepad.java index b390f3f2..34a07a7f 100644 --- a/src/main/java/pojlib/input/gamepad/Gamepad.java +++ b/src/main/java/pojlib/input/gamepad/Gamepad.java @@ -20,7 +20,7 @@ import static org.lwjgl.glfw.CallbackBridge.sendKeyPress; import static org.lwjgl.glfw.CallbackBridge.sendMouseButton; -import static pojlib.UnityPlayerActivity.currentDisplayMetrics; +import static pojlib.MainActivity.currentDisplayMetrics; import static pojlib.input.gamepad.GamepadJoystick.DIRECTION_EAST; import static pojlib.input.gamepad.GamepadJoystick.DIRECTION_NONE; import static pojlib.input.gamepad.GamepadJoystick.DIRECTION_NORTH; diff --git a/src/main/jni/awt_bridge.c b/src/main/jni/awt_bridge.c index 79bb3ca4..c538c469 100644 --- a/src/main/jni/awt_bridge.c +++ b/src/main/jni/awt_bridge.c @@ -38,7 +38,7 @@ jint JNI_OnLoad(JavaVM* vm, void* reserved) { dalvikJavaVMPtr = vm; JNIEnv *env = NULL; (*vm)->GetEnv(vm, (void**)&env, JNI_VERSION_1_4); - class_MainActivity = (*env)->NewGlobalRef(env,(*env)->FindClass(env, "pojlib/UnityPlayerActivity")); + class_MainActivity = (*env)->NewGlobalRef(env,(*env)->FindClass(env, "pojlib/MainActivity")); method_OpenLink= (*env)->GetStaticMethodID(env, class_MainActivity, "openLink", "(Ljava/lang/String;)V"); method_OpenPath= (*env)->GetStaticMethodID(env, class_MainActivity, "openLink", "(Ljava/lang/String;)V"); method_QuerySystemClipboard = (*env)->GetStaticMethodID(env, class_MainActivity, "querySystemClipboard", "()V"); diff --git a/src/main/res/layout/activity_main.xml b/src/main/res/layout/activity_main.xml new file mode 100644 index 00000000..a9c84941 --- /dev/null +++ b/src/main/res/layout/activity_main.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/res/layout/content_main.xml b/src/main/res/layout/content_main.xml new file mode 100644 index 00000000..e416e1c1 --- /dev/null +++ b/src/main/res/layout/content_main.xml @@ -0,0 +1,19 @@ + + + + + \ No newline at end of file diff --git a/src/main/res/layout/fragment_first.xml b/src/main/res/layout/fragment_first.xml new file mode 100644 index 00000000..44baecd7 --- /dev/null +++ b/src/main/res/layout/fragment_first.xml @@ -0,0 +1,35 @@ + + + + + +