67 lines
2.2 KiB
Java
Raw Normal View History

2017-02-12 19:49:46 +08:00
package com.topjohnwu.magisk.asyncs;
2017-06-07 02:19:23 +08:00
import com.topjohnwu.magisk.BuildConfig;
import com.topjohnwu.magisk.MagiskManager;
2017-11-06 04:41:23 +08:00
import com.topjohnwu.magisk.utils.Const;
2017-10-15 23:54:34 +08:00
import com.topjohnwu.magisk.utils.ShowUI;
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-10-16 00:54:48 +08:00
private boolean showNotification;
2017-02-17 08:51:51 +08:00
2017-10-16 00:54:48 +08:00
public CheckUpdates() {
this(false);
2017-02-17 08:51:51 +08:00
}
2017-10-16 00:54:48 +08:00
public CheckUpdates(boolean b) {
showNotification = b;
2017-02-12 19:49:46 +08:00
}
@Override
protected Void doInBackground(Void... voids) {
2017-10-16 00:54:48 +08:00
MagiskManager mm = MagiskManager.get();
2017-08-29 01:34:42 +08:00
String jsonStr;
2017-09-03 15:35:14 +08:00
switch (mm.updateChannel) {
2017-11-06 04:41:23 +08:00
case Const.Value.STABLE_CHANNEL:
jsonStr = WebService.getString(Const.Url.STABLE_URL);
2017-08-29 01:34:42 +08:00
break;
2017-11-06 04:41:23 +08:00
case Const.Value.BETA_CHANNEL:
jsonStr = WebService.getString(Const.Url.BETA_URL);
2017-08-29 01:34:42 +08:00
break;
default:
jsonStr = null;
}
2017-02-12 19:49:46 +08:00
try {
JSONObject json = new JSONObject(jsonStr);
JSONObject magisk = json.getJSONObject("magisk");
2017-09-03 15:35:14 +08:00
mm.remoteMagiskVersionString = magisk.getString("version");
mm.remoteMagiskVersionCode = magisk.getInt("versionCode");
mm.magiskLink = magisk.getString("link");
mm.releaseNoteLink = magisk.getString("note");
2017-06-07 02:19:23 +08:00
JSONObject manager = json.getJSONObject("app");
2017-09-03 15:35:14 +08:00
mm.remoteManagerVersionString = manager.getString("version");
mm.remoteManagerVersionCode = manager.getInt("versionCode");
mm.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-10-16 00:54:48 +08:00
MagiskManager mm = MagiskManager.get();
2017-09-03 15:35:14 +08:00
if (showNotification && mm.updateNotification) {
if (BuildConfig.VERSION_CODE < mm.remoteManagerVersionCode) {
2017-10-16 00:54:48 +08:00
ShowUI.showManagerUpdateNotification();
2017-09-03 15:35:14 +08:00
} else if (mm.magiskVersionCode < mm.remoteMagiskVersionCode) {
2017-10-16 00:54:48 +08:00
ShowUI.showMagiskUpdateNotification();
2017-06-07 02:19:23 +08:00
}
2017-02-17 08:51:51 +08:00
}
2017-09-03 15:35:14 +08:00
mm.updateCheckDone.publish();
super.onPostExecute(v);
2017-02-12 19:49:46 +08:00
}
}