Skip to content

Commit 686fa31

Browse files
committed
Wifi check enhancements, dns check
1 parent e233e2d commit 686fa31

4 files changed

Lines changed: 36 additions & 13 deletions

File tree

src/main/java/pojlib/API.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public class API {
4646
public static MinecraftAccount currentAcc;
4747
public static boolean isDemoMode;
4848
public static MinecraftInstances.Instance currentInstance;
49-
public static boolean hasWifi;
49+
private static boolean hasWifi;
5050
public static boolean advancedDebugger;
5151
public static boolean gameReady = false;
5252

@@ -90,8 +90,8 @@ public static boolean removeExtraProject(MinecraftInstances instances, Minecraft
9090
return InstanceHandler.removeExtraProject(instances, instance, name);
9191
}
9292

93-
public static String[] getQCSupportedVersions() {
94-
return APIHandler.getQCSupportedVersions();
93+
public static String[] getQCSupportedVersions(Context ctx) {
94+
return APIHandler.getQCSupportedVersions(ctx);
9595
}
9696

9797
/**
@@ -170,7 +170,7 @@ public static MinecraftInstances.Instance createNewInstance(Activity activity, M
170170
public static void prelaunch(Activity activity, MinecraftInstances instances, MinecraftInstances.Instance instance) {
171171
gameReady = false;
172172
instance.updateMods(instances);
173-
if (hasWifi) {
173+
if (hasConnection(activity)) {
174174
try {
175175
JREUtils.prelaunchCheck(activity, instance);
176176
} catch (IOException e) {
@@ -233,7 +233,7 @@ public static void login(Activity activity, @Nullable String accountUUID)
233233
}
234234

235235
MinecraftAccount acc = MinecraftAccount.load(activity.getFilesDir() + "/accounts", accountUUID);
236-
if(acc != null && (acc.expiresOn >= System.currentTimeMillis() || !hasWifi || acc.isDemoMode)) {
236+
if(acc != null && (acc.expiresOn >= System.currentTimeMillis() || !hasConnection(activity) || acc.isDemoMode)) {
237237
currentAcc = acc;
238238
API.profileImage = MinecraftAccount.getSkinFaceUrl(API.currentAcc);
239239
API.profileName = API.currentAcc.username;
@@ -260,7 +260,7 @@ public static void login(Activity activity, @Nullable String accountUUID)
260260
* @param activity activity object
261261
* @return true if the device has a valid wifi connection
262262
*/
263-
public static boolean hasConnection(Activity activity) {
263+
public static boolean hasConnection(Context activity) {
264264
boolean hasNetwork = false;
265265
ConnectivityManager connManager = (ConnectivityManager) activity.getSystemService(Context.CONNECTIVITY_SERVICE);
266266
NetworkCapabilities capabilities = connManager.getNetworkCapabilities(connManager.getActiveNetwork());

src/main/java/pojlib/APIHandler.java

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package pojlib;
22

3+
import android.content.Context;
4+
35
import com.google.gson.Gson;
46

57
import java.io.BufferedReader;
@@ -110,15 +112,26 @@ public static <T> T postFullUrl(String url, HashMap<String, Object> query, T bod
110112

111113
public static final String SUPPORTED_VERSIONS = "https://raw.githubusercontent.com/QuestCraftPlusPlus/Pojlib/refs/heads/QuestCraft-6.0.0/supportedVersions.json";
112114

113-
public static String[] getQCSupportedVersions() {
115+
public static String[] getQCSupportedVersions(Context ctx) {
114116
File versionsJson = new File(Constants.USER_HOME + "/supportedVersions.json");
115-
try {
116-
DownloadUtils.downloadFile(SUPPORTED_VERSIONS, versionsJson, new DownloadManager(1));
117-
} catch (IOException e) {
118-
Logger.getInstance().appendToLog("Error while grabbing supported versions!\n" + e);
117+
if(API.hasConnection(ctx)) {
118+
try {
119+
DownloadUtils.downloadFile(SUPPORTED_VERSIONS, versionsJson, new DownloadManager(1));
120+
} catch (IOException e) {
121+
Logger.getInstance().appendToLog("Error while grabbing supported versions!\n" + e);
122+
}
123+
} else {
124+
Logger.getInstance().appendToLog("Skipping supported versions download.");
125+
}
126+
127+
SupportedVersions versions = GsonUtils.jsonFileToObject(versionsJson.getAbsolutePath(), SupportedVersions.class);
128+
if(versions == null) {
129+
return new String[] {
130+
"1.21.4"
131+
};
119132
}
120133

121-
return GsonUtils.jsonFileToObject(versionsJson.getAbsolutePath(), SupportedVersions.class).supportedVersions;
134+
return versions.supportedVersions;
122135
}
123136

124137
public static class SupportedVersions {

src/main/java/pojlib/util/JREUtils.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,14 @@ public static int launchJavaVM(final Activity activity, final List<String> JVMAr
260260
private static void writeDNS(Context ctx, File out) throws IOException {
261261
FileWriter writer = new FileWriter(out);
262262

263+
if(!API.hasConnection(ctx)) {
264+
writer.write("nameserver 8.8.8.8\n");
265+
writer.write("nameserver 8.8.4.4");
266+
writer.flush();
267+
writer.close();
268+
return;
269+
}
270+
263271
ConnectivityManager cm = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE);
264272
Network activeNetwork = cm.getActiveNetwork();
265273
LinkProperties lp = cm.getLinkProperties(activeNetwork);

src/main/java/pojlib/util/download/DownloadUtils.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,15 @@ public static void downloadFile(String url, File out, DownloadManager downloadMa
5353
tempOut.renameTo(out);
5454
bos2.close();
5555
if (tempOut.exists()) tempOut.delete();
56-
56+
API.finishedDownloading = true;
5757
} catch (IOException th2) {
5858
if (tempOut.exists()) tempOut.delete();
59+
API.finishedDownloading = true;
5960
throw th2;
6061
}
6162
} catch (IOException e) {
6263
if (tempOut.exists()) tempOut.delete();
64+
API.finishedDownloading = true;
6365
throw e;
6466
}
6567
}

0 commit comments

Comments
 (0)