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"/>
+
> {
private final Spinner mVersionSpinner;
private final Spinner mJavaRuntimeSpinner;
private final Spinner mRendererSpinner;
+ private final EditText mPathSelectionEditText;
private final List mRenderNames;
private final AlertDialog mDialog;
private String mSelectedVersionId;
private String mEditingProfile;
private final EditSaveCallback mEditSaveCallback;
private final Handler mUiThreadHandler;
+
public static MinecraftProfile generateTemplate() {
MinecraftProfile TEMPLATE = new MinecraftProfile();
TEMPLATE.name = "New";
@@ -75,6 +78,9 @@ public class ProfileEditor implements ExtraListener> {
mRendererSpinner.setAdapter(new ArrayAdapter<>(context, android.R.layout.simple_spinner_dropdown_item,renderList));
}
mProfileIconImageView = mMainView.findViewById(R.id.vprof_editor_icon);
+ ((TextView)mMainView.findViewById(R.id.vprof_editor_beginPathView)).setText(Tools.DIR_GAME_HOME+"/");
+ mPathSelectionEditText = 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) -> {
@@ -144,8 +150,12 @@ public class ProfileEditor implements ExtraListener> {
}
}
ArrayList versions = (ArrayList) ExtraCore.getValue(ExtraConstants.VERSION_LIST);
- BaseLauncherActivity.updateVersionSpinner(context,versions, mVersionSpinner, mSelectedVersionId);
- mDialog.show();
+
+ 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;
}
public void save(DialogInterface dialog, int which) {
@@ -175,8 +185,13 @@ public class ProfileEditor implements ExtraListener> {
}else{
profile.javaDir = Tools.LAUNCHERPROFILES_RTPREFIX+selectedRuntime.name;
}
+
if(mRendererSpinner.getSelectedItemPosition() == mRenderNames.size()) profile.pojavRendererName = null;
else profile.pojavRendererName = mRenderNames.get(mRendererSpinner.getSelectedItemPosition());
+ String selectedPath = mPathSelectionEditText.getText().toString();
+ if(!selectedPath.isEmpty()) {
+ profile.gameDir = Tools.LAUNCHERPROFILES_RTPREFIX+selectedPath;
+ }
LauncherProfiles.mainProfileJson.profiles.put(mEditingProfile,profile);
mEditSaveCallback.onSave(mEditingProfile,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 6bb2a53df..cbd2b1d2e 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
@@ -113,10 +113,11 @@ public class V117CompatUtil {
String renderer;
String gamePath;
LauncherProfiles.update();
- MinecraftProfile prof = LauncherProfiles.mainProfileJson.profiles.get(((BaseLauncherActivity)activity).mProfile.selectedProfile);
+ 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/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
);
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