From 8ecb977629189f0bad5c223a7815ec4f323470d2 Mon Sep 17 00:00:00 2001 From: Bryson Steck Date: Wed, 9 Jun 2021 22:43:55 -0600 Subject: added new update checker, need to implement into ui --- app/build.gradle | 5 +- .../brysonsteck/wiimmfiwatcher/MainActivity.java | 21 ++++++- .../me/brysonsteck/wiimmfiwatcher/Updater.java | 69 ++++++++++++++++++++++ 3 files changed, 92 insertions(+), 3 deletions(-) create mode 100644 app/src/main/java/me/brysonsteck/wiimmfiwatcher/Updater.java diff --git a/app/build.gradle b/app/build.gradle index 20b68a8..3e0d1a3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ android { applicationId "me.brysonsteck.wiimmfiwatcher" minSdkVersion 19 targetSdkVersion 30 - versionCode 5 - versionName "1.1.3" + versionCode 6 + versionName "1.1.4" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } @@ -33,6 +33,7 @@ android { } dependencies { + implementation 'com.google.code.gson:gson:2.8.6' def lifecycle_version = "2.3.1" // ViewModel diff --git a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/MainActivity.java b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/MainActivity.java index ee68742..3a42749 100644 --- a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/MainActivity.java +++ b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/MainActivity.java @@ -16,7 +16,6 @@ import me.brysonsteck.wiimmfiwatcher.fragments.WatchCodeFragment; public class MainActivity extends AppCompatActivity { AppDatabase database; - @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -49,6 +48,26 @@ public class MainActivity extends AppCompatActivity { }); } + + @Override + protected void onStart() { + super.onStart(); + new Thread(() -> { + Updater updater = new Updater(); + updater.compareRelease(BuildConfig.VERSION_NAME); + if (updater.isOutdated()) { + System.out.println("---------------------------------------------------------------"); + System.out.println("\tA newer version of Wiimmfi Watcher is available! (" + updater.getNewestRelease() + ")"); + System.out.println("\tView the release notes and the source code here: " + updater.getGithubRelease()); + System.out.println("\t---------------------------------------------------------------"); + } else { + System.out.println("---------------------------------------------------------------"); + System.out.println("\t\t" + updater.getNewestRelease() + " is the latest release of Wiimmfi Watcher."); + System.out.println("\t\t---------------------------------------------------------------"); + } + }).start(); + } + @Override protected void onStop() { super.onStop(); diff --git a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/Updater.java b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/Updater.java new file mode 100644 index 0000000..eaa4d0c --- /dev/null +++ b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/Updater.java @@ -0,0 +1,69 @@ +package me.brysonsteck.wiimmfiwatcher; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.net.URL; +import java.net.URLConnection; + +public class Updater { + + public boolean outdated = false; + public String newestRelease; + public String githubRelease; + public String playStore = "https://play.google.com/store/apps/details?id=me.brysonsteck.wiimmfiwatcher"; + + public Updater() { + try { + String json = urlReader(); + JsonElement root = new JsonParser().parse(json); + JsonObject rootObj = root.getAsJsonObject(); + newestRelease = rootObj.get("current-release").getAsString(); + githubRelease = rootObj.get("github-release").getAsString(); + } catch (IOException e) { + System.out.println("An error has occurred while attempting to check for updates."); + e.printStackTrace(); + } + } + + public String urlReader() throws IOException { + URL website = new URL("https://brysonsteck.net/watcher.json"); + URLConnection connection = website.openConnection(); + BufferedReader in = new BufferedReader( + new InputStreamReader( + connection.getInputStream())); + + StringBuilder response = new StringBuilder(); + String inputLine; + + while ((inputLine = in.readLine()) != null) + response.append(inputLine); + + in.close(); + + return response.toString(); + + } + + public void compareRelease(String deviceRelease) { + if (!deviceRelease.equals(newestRelease)) { + outdated = true; + } + } + + public boolean isOutdated() { + return outdated; + } + + public String getNewestRelease() { + return newestRelease; + } + + public String getGithubRelease() { + return githubRelease; + } +} -- cgit v1.2.3