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