mirror of
https://github.com/AngelAuraMC/Amethyst-Android.git
synced 2025-09-08 12:03:29 -04:00
Merge pull request #50 from AngelAuraMC/fix/HolyRendererString
Rework "Default" renderer, improve corrupt json edgecase handling, and fix holygl4es string (kinda)
This commit is contained in:
commit
9ec50e8ef9
@ -357,7 +357,10 @@ public class MainActivity extends BaseActivity implements ControlButtonMenuListe
|
||||
|
||||
private void runCraft(String versionId, JMinecraftVersionList.Version version) throws Throwable {
|
||||
if(Tools.LOCAL_RENDERER == null) {
|
||||
Tools.LOCAL_RENDERER = LauncherPreferences.PREF_RENDERER;
|
||||
Integer iSelectedMcVer = Tools.mcVersiontoInt(Tools.getSelectedVanillaMcVer());
|
||||
if (iSelectedMcVer >= 1021005) {
|
||||
Tools.LOCAL_RENDERER = "opengles_mobileglues";
|
||||
} else Tools.LOCAL_RENDERER = "opengles2";
|
||||
}
|
||||
if(!Tools.checkRendererCompatible(this, Tools.LOCAL_RENDERER)) {
|
||||
Tools.RenderersList renderersList = Tools.getCompatibleRenderers(this);
|
||||
|
@ -822,6 +822,9 @@ public final class Tools {
|
||||
public static void dialogOnUiThread(final Activity activity, final CharSequence title, final CharSequence message) {
|
||||
activity.runOnUiThread(()->dialog(activity, title, message));
|
||||
}
|
||||
public static void dialogOnUiThread(final Activity activity, final int title, final int message) {
|
||||
dialogOnUiThread(activity, activity.getString(title), activity.getString(message));
|
||||
}
|
||||
|
||||
public static void dialog(final Context context, final CharSequence title, final CharSequence message) {
|
||||
new AlertDialog.Builder(context)
|
||||
@ -1506,5 +1509,47 @@ public final class Tools {
|
||||
hasNoOnlineProfileDialog(activity, null, customTitle, customMessage);
|
||||
}
|
||||
|
||||
public static String getSelectedVanillaMcVer(){
|
||||
String selectedProfile = LauncherPreferences.DEFAULT_PREF.getString(LauncherPreferences.PREF_KEY_CURRENT_PROFILE, "");
|
||||
MinecraftProfile selected = LauncherProfiles.mainProfileJson.profiles.get(selectedProfile);
|
||||
if (selected == null) { // This should NEVER happen.
|
||||
throw new RuntimeException("No profile selected, how did you reach this? Go ask in the discord or github");
|
||||
}
|
||||
String currentMCVersion = selected.lastVersionId;
|
||||
String vanillaVersion = currentMCVersion;
|
||||
File providedJsonFile = new File(Tools.DIR_HOME_VERSION + "/" + currentMCVersion + "/" + currentMCVersion + ".json");
|
||||
JMinecraftVersionList.Version providedJsonVersion = null;
|
||||
try {
|
||||
providedJsonVersion = Tools.GLOBAL_GSON.fromJson(Tools.read(providedJsonFile.getAbsolutePath()), JMinecraftVersionList.Version.class);
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
try {
|
||||
vanillaVersion = providedJsonVersion.inheritsFrom != null ? providedJsonVersion.inheritsFrom : vanillaVersion;
|
||||
} catch (NullPointerException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return vanillaVersion;
|
||||
}
|
||||
|
||||
public static Integer mcVersiontoInt(String mcVersion){
|
||||
String[] sVersionArray = mcVersion.split("\\.");
|
||||
String[] iVersionArray = new String[3];
|
||||
// Make sure this is actually a version string
|
||||
for (int i = 0; i < iVersionArray.length; i++) {
|
||||
// Ensure there's padding
|
||||
sVersionArray[i] = String.format("%3s", sVersionArray[i]).replace(' ', '0');
|
||||
System.out.println(sVersionArray[i]);
|
||||
// Grab only the last 3, MCJE 999.999.999 isnt coming soon anyway
|
||||
sVersionArray[i] = sVersionArray[i].substring(sVersionArray[i].length() - 3);
|
||||
try {
|
||||
// Verify its a real deal, legit number
|
||||
Integer.parseInt(sVersionArray[i]);
|
||||
iVersionArray[i] = sVersionArray[i];
|
||||
} catch (NumberFormatException e) {
|
||||
throw new RuntimeException("Tools(mcVersiontoInt): Invalid version string");
|
||||
}
|
||||
}
|
||||
return Integer.parseInt(iVersionArray[0] + iVersionArray[1] + iVersionArray[2]);
|
||||
}
|
||||
}
|
||||
|
@ -27,7 +27,6 @@ public class LauncherPreferences {
|
||||
public static final String PREF_KEY_SKIP_NOTIFICATION_CHECK = "skipNotificationPermissionCheck";
|
||||
|
||||
public static SharedPreferences DEFAULT_PREF;
|
||||
public static String PREF_RENDERER = "opengles2";
|
||||
|
||||
public static boolean PREF_IGNORE_NOTCH = false;
|
||||
public static int PREF_NOTCH_SIZE = 0;
|
||||
@ -79,7 +78,6 @@ public class LauncherPreferences {
|
||||
Tools.initStorageConstants(ctx);
|
||||
boolean isDevicePowerful = isDevicePowerful(ctx);
|
||||
|
||||
PREF_RENDERER = DEFAULT_PREF.getString("renderer", "opengles2");
|
||||
PREF_BUTTONSIZE = DEFAULT_PREF.getInt("buttonscale", 100);
|
||||
PREF_MOUSESCALE = DEFAULT_PREF.getInt("mousescale", 100)/100f;
|
||||
PREF_MOUSESPEED = ((float)DEFAULT_PREF.getInt("mousespeed",100))/100f;
|
||||
|
@ -45,12 +45,6 @@ public class LauncherPreferenceVideoFragment extends LauncherPreferenceFragment
|
||||
requirePreference("alternate_surface", SwitchPreferenceCompat.class).setChecked(LauncherPreferences.PREF_USE_ALTERNATE_SURFACE);
|
||||
requirePreference("force_vsync", SwitchPreferenceCompat.class).setChecked(LauncherPreferences.PREF_FORCE_VSYNC);
|
||||
|
||||
ListPreference rendererListPreference = requirePreference("renderer",
|
||||
ListPreference.class);
|
||||
Tools.RenderersList renderersList = Tools.getCompatibleRenderers(getContext());
|
||||
rendererListPreference.setEntries(renderersList.rendererDisplayNames);
|
||||
rendererListPreference.setEntryValues(renderersList.rendererIds.toArray(new String[0]));
|
||||
|
||||
computeVisibility();
|
||||
}
|
||||
|
||||
|
@ -46,7 +46,7 @@
|
||||
<string name="mcl_setting_title_javaargs">JVM Launch arguments</string>
|
||||
<string name="mcl_setting_subtitle_javaargs">Be careful, this may make game crash if modified without knowledge.</string>
|
||||
<string name="mcl_setting_category_renderer">Renderer</string>
|
||||
<string name="mcl_setting_renderer_gles2_4">Holy GL4ES - (all versions, fast)</string>
|
||||
<string name="mcl_setting_renderer_gles2_4">Holy GL4ES - (1.21.4< only, fast)</string>
|
||||
<string name="mcl_setting_renderer_vulkan_zink">Zink (Vulkan) - (all versions, mid)</string>
|
||||
<string name="mcl_setting_veroption_release">Release</string>
|
||||
<string name="mcl_setting_veroption_snapshot">Snapshot</string>
|
||||
|
@ -65,7 +65,7 @@
|
||||
<string name="mcl_setting_title_renderer_settings">Extra Renderer Settings</string>
|
||||
<string name="mcl_setting_title_renderer_subtitle">Renderer specific settings</string>
|
||||
<string name="mcl_setting_category_renderer">Renderer</string>
|
||||
<string name="mcl_setting_renderer_gles2_4">Holy GL4ES - (all versions, fast)</string>
|
||||
<string name="mcl_setting_renderer_gles2_4">Holy GL4ES - (1.21.4< only, fast)</string>
|
||||
<string name="mcl_setting_renderer_vulkan_zink">Zink (Vulkan) - (all versions, mid)</string>
|
||||
<string name="mcl_setting_renderer_mobileglues">MobileGlues (OpenGL ES) - (1.17+ only, fast)</string>
|
||||
<string name="mcl_setting_renderer_ltw">LTW (OpenGL ES 3) - 1.17+ only</string>
|
||||
|
@ -5,16 +5,10 @@
|
||||
<net.kdt.pojavlaunch.prefs.BackButtonPreference/>
|
||||
|
||||
<PreferenceCategory android:title="@string/preference_category_video" >
|
||||
<androidx.preference.ListPreference
|
||||
android:title="@string/mcl_setting_category_renderer"
|
||||
android:key="renderer"
|
||||
android:defaultValue="opengles2"
|
||||
android:icon="@drawable/ic_setting_engine"
|
||||
app2:useSimpleSummaryProvider="true"/>
|
||||
|
||||
<Preference
|
||||
android:title="@string/mcl_setting_title_renderer_settings"
|
||||
android:summary="@string/mcl_setting_title_renderer_subtitle"
|
||||
android:icon="@drawable/ic_setting_engine"
|
||||
android:fragment="net.kdt.pojavlaunch.prefs.screens.LauncherPreferenceRendererSettingsFragment"
|
||||
/>
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user