Commit 86d8b505 authored by topjohnwu's avatar topjohnwu

Update CheckUpdate

parent 7b043861
package com.topjohnwu.magisk.asyncs; package com.topjohnwu.magisk.asyncs;
import android.os.AsyncTask; import com.androidnetworking.AndroidNetworking;
import com.androidnetworking.error.ANError;
import com.androidnetworking.interfaces.JSONObjectRequestListener;
import com.topjohnwu.magisk.BuildConfig; import com.topjohnwu.magisk.BuildConfig;
import com.topjohnwu.magisk.Const; import com.topjohnwu.magisk.Const;
import com.topjohnwu.magisk.Data; import com.topjohnwu.magisk.Data;
...@@ -42,51 +43,58 @@ public class CheckUpdates { ...@@ -42,51 +43,58 @@ public class CheckUpdates {
} }
} }
public static void fetchUpdates() { public static void check(Runnable cb) {
String jsonStr = ""; String url;
switch (Data.updateChannel) { switch (Data.updateChannel) {
case Const.Value.STABLE_CHANNEL: case Const.Value.STABLE_CHANNEL:
jsonStr = Utils.dlString(Const.Url.STABLE_URL); url = Const.Url.STABLE_URL;
break; break;
case Const.Value.BETA_CHANNEL: case Const.Value.BETA_CHANNEL:
jsonStr = Utils.dlString(Const.Url.BETA_URL); url = Const.Url.BETA_URL;
break; break;
case Const.Value.CUSTOM_CHANNEL: case Const.Value.CUSTOM_CHANNEL:
jsonStr = Utils.dlString(Data.MM().prefs.getString(Const.Key.CUSTOM_CHANNEL, "")); url = Data.MM().prefs.getString(Const.Key.CUSTOM_CHANNEL, "");
break; break;
default:
return;
} }
AndroidNetworking.get(url).build().getAsJSONObject(new UpdateListener(cb));
}
JSONObject json; public static void check() {
try { check(null);
json = new JSONObject(jsonStr); }
} catch (JSONException e) {
return; private static class UpdateListener implements JSONObjectRequestListener {
private Runnable cb;
UpdateListener(Runnable callback) {
cb = callback;
} }
JSONObject magisk = getJson(json, "magisk"); @Override
Data.remoteMagiskVersionString = getString(magisk, "version", null); public void onResponse(JSONObject json) {
Data.remoteMagiskVersionCode = getInt(magisk, "versionCode", -1); JSONObject magisk = getJson(json, "magisk");
Data.magiskLink = getString(magisk, "link", null); Data.remoteMagiskVersionString = getString(magisk, "version", null);
Data.magiskNoteLink = getString(magisk, "note", null); Data.remoteMagiskVersionCode = getInt(magisk, "versionCode", -1);
Data.magiskMD5 = getString(magisk, "md5", null); Data.magiskLink = getString(magisk, "link", null);
Data.magiskNoteLink = getString(magisk, "note", null);
JSONObject manager = getJson(json, "app"); Data.magiskMD5 = getString(magisk, "md5", null);
Data.remoteManagerVersionString = getString(manager, "version", null);
Data.remoteManagerVersionCode = getInt(manager, "versionCode", -1); JSONObject manager = getJson(json, "app");
Data.managerLink = getString(manager, "link", null); Data.remoteManagerVersionString = getString(manager, "version", null);
Data.managerNoteLink = getString(manager, "note", null); Data.remoteManagerVersionCode = getInt(manager, "versionCode", -1);
Data.managerLink = getString(manager, "link", null);
JSONObject uninstaller = getJson(json, "uninstaller"); Data.managerNoteLink = getString(manager, "note", null);
Data.uninstallerLink = getString(uninstaller, "link", null);
JSONObject uninstaller = getJson(json, "uninstaller");
JSONObject snet = getJson(json, "snet"); Data.uninstallerLink = getString(uninstaller, "link", null);
Data.snetVersionCode = getInt(snet, "versionCode", -1);
Data.snetLink = getString(snet, "link", null); JSONObject snet = getJson(json, "snet");
} Data.snetVersionCode = getInt(snet, "versionCode", -1);
Data.snetLink = getString(snet, "link", null);
public static void check(Runnable cb) {
AsyncTask.THREAD_POOL_EXECUTOR.execute(() -> {
fetchUpdates();
if (cb != null) { if (cb != null) {
if (BuildConfig.VERSION_CODE < Data.remoteManagerVersionCode) { if (BuildConfig.VERSION_CODE < Data.remoteManagerVersionCode) {
Notifications.managerUpdate(); Notifications.managerUpdate();
...@@ -96,10 +104,9 @@ public class CheckUpdates { ...@@ -96,10 +104,9 @@ public class CheckUpdates {
cb.run(); cb.run();
} }
Topic.publish(Topic.UPDATE_CHECK_DONE); Topic.publish(Topic.UPDATE_CHECK_DONE);
}); }
}
public static void check() { @Override
check(null); public void onError(ANError anError) {}
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment