60 lines
2.2 KiB
Java
Raw Normal View History

2017-02-12 19:49:46 +08:00
package com.topjohnwu.magisk.asyncs;
2017-02-17 08:51:51 +08:00
import android.content.Context;
2017-02-12 19:49:46 +08:00
2017-06-07 02:19:23 +08:00
import com.topjohnwu.magisk.BuildConfig;
2017-02-17 08:51:51 +08:00
import com.topjohnwu.magisk.utils.Utils;
2017-02-12 19:49:46 +08:00
import com.topjohnwu.magisk.utils.WebService;
import org.json.JSONException;
import org.json.JSONObject;
public class CheckUpdates extends ParallelTask<Void, Void, Void> {
2017-05-12 02:25:07 +08:00
private static final String UPDATE_JSON = "https://raw.githubusercontent.com/topjohnwu/MagiskManager/update/magisk_update.json";
2017-06-07 02:19:23 +08:00
2017-02-12 19:49:46 +08:00
2017-02-17 08:51:51 +08:00
private boolean showNotification = false;
public CheckUpdates(Context context, boolean b) {
this(context);
showNotification = b;
2017-02-17 08:51:51 +08:00
}
public CheckUpdates(Context context) {
magiskManager = Utils.getMagiskManager(context);
2017-02-12 19:49:46 +08:00
}
@Override
protected Void doInBackground(Void... voids) {
String jsonStr = WebService.request(UPDATE_JSON, WebService.GET);
try {
JSONObject json = new JSONObject(jsonStr);
JSONObject magisk = json.getJSONObject("magisk");
2017-05-12 02:25:07 +08:00
magiskManager.remoteMagiskVersionString = magisk.getString("version");
magiskManager.remoteMagiskVersionCode = magisk.getInt("versionCode");
2017-02-12 19:49:46 +08:00
magiskManager.magiskLink = magisk.getString("link");
magiskManager.releaseNoteLink = magisk.getString("note");
2017-06-07 02:19:23 +08:00
JSONObject manager = json.getJSONObject("app");
magiskManager.remoteManagerVersionString = manager.getString("version");
magiskManager.remoteManagerVersionCode = manager.getInt("versionCode");
magiskManager.managerLink = manager.getString("link");
2017-05-12 02:25:07 +08:00
} catch (JSONException ignored) {}
2017-02-12 19:49:46 +08:00
return null;
}
@Override
protected void onPostExecute(Void v) {
2017-06-07 02:19:23 +08:00
if (showNotification && magiskManager.updateNotification) {
if (magiskManager.magiskVersionCode < magiskManager.remoteMagiskVersionCode) {
Utils.showMagiskUpdate(magiskManager);
}
if (BuildConfig.VERSION_CODE < magiskManager.remoteManagerVersionCode) {
Utils.showManagerUpdate(magiskManager);
}
2017-02-17 08:51:51 +08:00
}
2017-02-12 19:49:46 +08:00
magiskManager.updateCheckDone.trigger();
super.onPostExecute(v);
2017-02-12 19:49:46 +08:00
}
}