From 93b80a7147b8436d1d55e6396d71b755b05955d5 Mon Sep 17 00:00:00 2001 From: Austin Huang Date: Tue, 8 Sep 2020 15:42:12 -0400 Subject: [PATCH] implement F-Droid update checker --- .../awais/instagrabber/utils/UpdateChecker.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/awais/instagrabber/utils/UpdateChecker.java b/app/src/main/java/awais/instagrabber/utils/UpdateChecker.java index 87e26e63..20c2cbf4 100755 --- a/app/src/main/java/awais/instagrabber/utils/UpdateChecker.java +++ b/app/src/main/java/awais/instagrabber/utils/UpdateChecker.java @@ -5,6 +5,8 @@ import android.util.Log; import androidx.annotation.NonNull; +import org.json.JSONObject; + import java.net.HttpURLConnection; import java.net.URL; @@ -26,16 +28,18 @@ public final class UpdateChecker extends AsyncTask { version = ""; HttpURLConnection conn = - (HttpURLConnection) new URL("https://github.com/austinhuang0131/instagrabber/releases/latest").openConnection(); - conn.setInstanceFollowRedirects(false); + (HttpURLConnection) new URL("https://f-droid.org/api/v1/packages/me.austinhuang.instagrabber").openConnection(); conn.setUseCaches(false); conn.setRequestProperty("User-Agent", Constants.A_USER_AGENT); conn.connect(); final int responseCode = conn.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_MOVED_TEMP) { - version = conn.getHeaderField("Location").split("/v")[1]; - return !version.equals(BuildConfig.VERSION_NAME); + if (responseCode == HttpURLConnection.HTTP_OK) { + final JSONObject data = new JSONObject(Utils.readFromConnection(conn)); + if (BuildConfig.VERSION_CODE < data.getInt("suggestedVersionCode")) { + version = data.getJSONArray("packages").getString("versionName"); + return true; + } } conn.disconnect();