Feat[mcdl]: skip natives-only libraries to improve startup speeds

This commit is contained in:
artdeell 2023-12-17 14:46:31 +03:00 committed by Maksim Belov
parent 17f74407e6
commit 8fce2a22a2

View File

@ -3,6 +3,7 @@ package net.kdt.pojavlaunch.tasks;
import static net.kdt.pojavlaunch.PojavApplication.sExecutorService; import static net.kdt.pojavlaunch.PojavApplication.sExecutorService;
import android.app.Activity; import android.app.Activity;
import android.util.Log;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
@ -229,15 +230,25 @@ public class NewMinecraftDownloader {
Tools.preProcessLibraries(dependentLibraries); Tools.preProcessLibraries(dependentLibraries);
growDownloadList(dependentLibraries.length); growDownloadList(dependentLibraries.length);
for(DependentLibrary dependentLibrary : dependentLibraries) { for(DependentLibrary dependentLibrary : dependentLibraries) {
// Don't download lwjgl, we have our own bundled in.
if(dependentLibrary.name.startsWith("org.lwjgl")) continue;
String libArtifactPath = Tools.artifactToPath(dependentLibrary); String libArtifactPath = Tools.artifactToPath(dependentLibrary);
String sha1 = null, url = null; String sha1 = null, url = null;
long size = 0; long size = 0;
boolean skipIfFailed = false; boolean skipIfFailed = false;
if(dependentLibrary.downloads != null && dependentLibrary.downloads.artifact != null) { if(dependentLibrary.downloads != null) {
MinecraftLibraryArtifact artifact = dependentLibrary.downloads.artifact; if(dependentLibrary.downloads.artifact != null) {
sha1 = artifact.sha1; MinecraftLibraryArtifact artifact = dependentLibrary.downloads.artifact;
url = artifact.url; sha1 = artifact.sha1;
size = artifact.size; url = artifact.url;
size = artifact.size;
} else {
// If the library has a downloads section but doesn't have an artifact in
// it, it is likely natives-only, which means it can be skipped.
Log.i("NewMCDownloader", "Skipped library " + dependentLibrary.name + " due to lack of artifact");
continue;
}
} }
if(url == null) { if(url == null) {
url = (dependentLibrary.url == null url = (dependentLibrary.url == null