From 13a8fbbd4bf16c5fb6746f6a2808ddc1b764e66a Mon Sep 17 00:00:00 2001 From: ArtDev <45949002+artdeell@users.noreply.github.com> Date: Sun, 10 Apr 2022 12:17:54 +0300 Subject: [PATCH 1/3] Added the microphone permission for VC mods --- app_pojavlauncher/src/main/AndroidManifest.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app_pojavlauncher/src/main/AndroidManifest.xml b/app_pojavlauncher/src/main/AndroidManifest.xml index 28c2ea9e0..143d4e014 100644 --- a/app_pojavlauncher/src/main/AndroidManifest.xml +++ b/app_pojavlauncher/src/main/AndroidManifest.xml @@ -10,6 +10,7 @@ android:maxSdkVersion="28"/> + Date: Mon, 11 Apr 2022 16:23:50 +0300 Subject: [PATCH 2/3] Fix Pojav crashing while starting the screen recorder --- app_pojavlauncher/src/main/jni/input_bridge_v3.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app_pojavlauncher/src/main/jni/input_bridge_v3.c b/app_pojavlauncher/src/main/jni/input_bridge_v3.c index 14b88c861..12069bffb 100644 --- a/app_pojavlauncher/src/main/jni/input_bridge_v3.c +++ b/app_pojavlauncher/src/main/jni/input_bridge_v3.c @@ -381,13 +381,13 @@ JNIEXPORT void JNICALL Java_org_lwjgl_glfw_CallbackBridge_nativeSetWindowAttrib( return; // nothing to do yet } - jclass glfwClazz = (*runtimeJNIEnvPtr_ANDROID)->FindClass(runtimeJNIEnvPtr_ANDROID, "org/lwjgl/glfw/GLFW"); + jclass glfwClazz = (*runtimeJNIEnvPtr_JRE)->FindClass(runtimeJNIEnvPtr_JRE, "org/lwjgl/glfw/GLFW"); assert(glfwClazz != NULL); - jmethodID glfwMethod = (*runtimeJNIEnvPtr_ANDROID)->GetStaticMethodID(runtimeJNIEnvPtr_ANDROID, glfwMethod, "glfwSetWindowAttrib", "(JII)V"); + jmethodID glfwMethod = (*runtimeJNIEnvPtr_JRE)->GetStaticMethodID(runtimeJNIEnvPtr_JRE, glfwClazz, "glfwSetWindowAttrib", "(JII)V"); assert(glfwMethod != NULL); - (*runtimeJNIEnvPtr_ANDROID)->CallStaticVoidMethod( - runtimeJNIEnvPtr_ANDROID, + (*runtimeJNIEnvPtr_JRE)->CallStaticVoidMethod( + runtimeJNIEnvPtr_JRE, glfwClazz, glfwMethod, (jlong) showingWindow, attrib, value ); From 6060e8bdcd448c52481a5ded5fb19fddcb0d919f Mon Sep 17 00:00:00 2001 From: artdeell Date: Tue, 12 Apr 2022 22:00:05 +0300 Subject: [PATCH 3/3] Add the ability to change the Minecraft folder for a profile --- .../main/java/net/kdt/pojavlaunch/Tools.java | 4 ++-- .../pojavlaunch/profiles/ProfileEditor.java | 11 +++++++++ .../kdt/pojavlaunch/utils/V117CompatUtil.java | 2 +- .../res/layout/version_profile_editor.xml | 24 ++++++++++++++++++- 4 files changed, 37 insertions(+), 4 deletions(-) diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/Tools.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/Tools.java index c4bea8ce8..faf303199 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/Tools.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/Tools.java @@ -124,8 +124,8 @@ public final class Tools { LauncherProfiles.update(); MinecraftProfile minecraftProfile = ((BaseMainActivity)activity).minecraftProfile; if(minecraftProfile == null) throw new Exception("Launching empty Profile"); - if(minecraftProfile.gameDir != null && !minecraftProfile.gameDir.isEmpty()) - gamedirPath = minecraftProfile.gameDir; + if(minecraftProfile.gameDir != null && minecraftProfile.gameDir.startsWith(Tools.LAUNCHERPROFILES_RTPREFIX)) + gamedirPath = minecraftProfile.gameDir.replace(Tools.LAUNCHERPROFILES_RTPREFIX,Tools.DIR_GAME_HOME+"/"); if(minecraftProfile.javaArgs != null && !minecraftProfile.javaArgs.isEmpty()) LauncherPreferences.PREF_CUSTOM_JAVA_ARGS = minecraftProfile.javaArgs; } diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/profiles/ProfileEditor.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/profiles/ProfileEditor.java index ea4a7fc66..af42939c8 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/profiles/ProfileEditor.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/profiles/ProfileEditor.java @@ -9,6 +9,7 @@ import android.os.Looper; import android.view.LayoutInflater; import android.view.View; import android.widget.ArrayAdapter; +import android.widget.EditText; import android.widget.ImageView; import android.widget.Spinner; import android.widget.TextView; @@ -43,6 +44,7 @@ public class ProfileEditor implements ExtraListener> { private final Spinner versionSpinner; private final Spinner javaRuntimeSpinner; private final Spinner rendererSpinner; + private final EditText pathSelectionEditor; private final List renderNames; private final AlertDialog dialog; private String selectedVersionId; @@ -75,6 +77,8 @@ public class ProfileEditor implements ExtraListener> { rendererSpinner.setAdapter(new ArrayAdapter<>(context, android.R.layout.simple_spinner_dropdown_item,renderList)); } profileIconView = mainView.findViewById(R.id.vprof_editor_icon); + ((TextView)mainView.findViewById(R.id.vprof_editor_beginPathView)).setText(Tools.DIR_GAME_HOME+"/"); + pathSelectionEditor = mainView.findViewById(R.id.vprof_editor_path); builder.setPositiveButton(R.string.global_save,this::save); builder.setNegativeButton(android.R.string.cancel,(dialog,which)->destroy(dialog)); builder.setNeutralButton(R.string.global_delete,(dialogInterface, i) -> { @@ -143,6 +147,9 @@ public class ProfileEditor implements ExtraListener> { } ArrayList versions = (ArrayList) ExtraCore.getValue(ExtraConstants.VERSION_LIST); BaseLauncherActivity.updateVersionSpinner(context,versions,versionSpinner, selectedVersionId); + if(minecraftProfile.gameDir != null && minecraftProfile.gameDir.startsWith(Tools.LAUNCHERPROFILES_RTPREFIX)) { + pathSelectionEditor.setText(minecraftProfile.gameDir.substring(Tools.LAUNCHERPROFILES_RTPREFIX.length())); + } dialog.show(); return true; } @@ -175,6 +182,10 @@ public class ProfileEditor implements ExtraListener> { } if(rendererSpinner.getSelectedItemPosition() == renderNames.size()) profile.pojavRendererName = null; else profile.pojavRendererName = renderNames.get(rendererSpinner.getSelectedItemPosition()); + String selectedPath = pathSelectionEditor.getText().toString(); + if(!selectedPath.isEmpty()) { + profile.gameDir = Tools.LAUNCHERPROFILES_RTPREFIX+selectedPath; + } LauncherProfiles.mainProfileJson.profiles.put(editingProfile,profile); editSaveCallback.onSave(editingProfile,isNew, false); destroy(dialog); diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/utils/V117CompatUtil.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/utils/V117CompatUtil.java index a8fcbbfcd..8e40107a1 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/utils/V117CompatUtil.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/utils/V117CompatUtil.java @@ -116,7 +116,7 @@ public class V117CompatUtil { MinecraftProfile prof = LauncherProfiles.mainProfileJson.profiles.get(((BaseLauncherActivity)ctx).mProfile.selectedProfile); if(prof == null) throw new MinecraftDownloaderTask.SilentException(); renderer = prof.pojavRendererName != null?prof.pojavRendererName :LauncherPreferences.PREF_RENDERER; - gamePath = prof.gameDir != null?prof.gameDir:Tools.DIR_GAME_NEW; + gamePath = prof.gameDir != null && prof.gameDir.startsWith(Tools.LAUNCHERPROFILES_RTPREFIX)?prof.gameDir.replace(Tools.LAUNCHERPROFILES_RTPREFIX,Tools.DIR_GAME_HOME+"/"):Tools.DIR_GAME_NEW; //String if(renderer.equals("vulkan_zink") || renderer.equals("opengles3_virgl")) return; //don't install for zink/virgl users; diff --git a/app_pojavlauncher/src/main/res/layout/version_profile_editor.xml b/app_pojavlauncher/src/main/res/layout/version_profile_editor.xml index 4b2bb07f3..8dca17ca6 100644 --- a/app_pojavlauncher/src/main/res/layout/version_profile_editor.xml +++ b/app_pojavlauncher/src/main/res/layout/version_profile_editor.xml @@ -62,8 +62,9 @@ android:layout_marginEnd="16dp" android:minHeight="48dp" app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/vprof_editior_profile_name" /> + app:layout_constraintTop_toBottomOf="@+id/vprof_editor_path" /> + + + + \ No newline at end of file