aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorBryson Steck <steck.bryson@gmail.com>2021-06-28 22:31:33 -0600
committerBryson Steck <steck.bryson@gmail.com>2021-06-28 22:31:33 -0600
commit71975e98f4b2de35af051577d5d11d935b108374 (patch)
tree8e720ed9382f74c7917649ba3f64f9e94066e97b /app
parent0c0d4b9bb1c532a1b6f9178ad9b4db3144381e01 (diff)
downloadwiimmfi-watcher-71975e98f4b2de35af051577d5d11d935b108374.tar
wiimmfi-watcher-71975e98f4b2de35af051577d5d11d935b108374.tar.gz
wiimmfi-watcher-71975e98f4b2de35af051577d5d11d935b108374.tar.bz2
added update dialog
Diffstat (limited to 'app')
-rw-r--r--app/src/main/java/me/brysonsteck/wiimmfiwatcher/MainActivity.java71
-rw-r--r--app/src/main/java/me/brysonsteck/wiimmfiwatcher/Updater.java10
-rw-r--r--app/src/main/res/values/strings.xml5
3 files changed, 68 insertions, 18 deletions
diff --git a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/MainActivity.java b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/MainActivity.java
index 3a42749..e98856b 100644
--- a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/MainActivity.java
+++ b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/MainActivity.java
@@ -1,20 +1,25 @@
package me.brysonsteck.wiimmfiwatcher;
-import android.os.Build;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;
-import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import androidx.room.Room;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+
import me.brysonsteck.wiimmfiwatcher.database.AppDatabase;
import me.brysonsteck.wiimmfiwatcher.fragments.AboutFragment;
import me.brysonsteck.wiimmfiwatcher.fragments.WatchCodeFragment;
public class MainActivity extends AppCompatActivity {
AppDatabase database;
+ final MaterialAlertDialogBuilder[] dialog = new MaterialAlertDialogBuilder[1];
+ boolean shownUpdate = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -52,20 +57,56 @@ 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---------------------------------------------------------------");
+ final String[] newestRelease = {""};
+ final boolean[] outdated = {false};
+ Thread thread = new Thread() {
+ public void run() {
+ 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---------------------------------------------------------------");
+ }
+ newestRelease[0] = updater.getNewestRelease();
+ outdated[0] = updater.isOutdated();
}
- }).start();
+ };
+ thread.start();
+ try {
+ thread.join();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ if (outdated[0] && !shownUpdate) {
+ shownUpdate = true;
+ final String appPackageName = getPackageName(); // getPackageName() from Context or Activity object
+ new MaterialAlertDialogBuilder(this)
+ .setTitle(R.string.update_title)
+ .setMessage(getResources().getString(R.string.update_message, newestRelease[0]))
+ .setNegativeButton(getResources().getString(R.string.update_negative), new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ }
+ })
+ .setPositiveButton(getResources().getString(R.string.update_positive), new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ try {
+ startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)));
+ } catch (android.content.ActivityNotFoundException anfe) {
+ startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName)));
+ }
+ }
+ })
+ .show();
+ }
+
}
@Override
diff --git a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/Updater.java b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/Updater.java
index eaa4d0c..eb3e813 100644
--- a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/Updater.java
+++ b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/Updater.java
@@ -22,8 +22,12 @@ public class Updater {
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();
+ JsonElement softwareElement = rootObj.getAsJsonObject("wiimmfi-watcher");
+ JsonObject softwareObj = softwareElement.getAsJsonObject();
+ newestRelease = softwareObj.get("current-release").getAsString();
+ newestRelease = newestRelease.replace("\"", "");
+ githubRelease = softwareObj.get("github-release").getAsString();
+ githubRelease = githubRelease.replace("\"", "");
} catch (IOException e) {
System.out.println("An error has occurred while attempting to check for updates.");
e.printStackTrace();
@@ -31,7 +35,7 @@ public class Updater {
}
public String urlReader() throws IOException {
- URL website = new URL("https://brysonsteck.net/watcher.json");
+ URL website = new URL("https://brysonsteck.net/updates.json");
URLConnection connection = website.openConnection();
BufferedReader in = new BufferedReader(
new InputStreamReader(
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index bb30d2a..05fc69e 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -37,4 +37,9 @@
<string name="header_null_error">This player is not online, not inside a room or does not exist. Click the refresh button to try again, or click on the back button to enter a different friend code.</string>
<string name="jsoup_error">Whoops! Wiimmfi Watcher was unable to connect to the Wiimmfi servers. This could be that you are not connected to the internet, but it could be something else. Here was the error:\n\n%1$s\n\nIf the error is along the lines of \"Unable to resolve host\" or \"Timeout\", you are probably having internet issues. Make sure you are connected to the internet then click the refresh button or press back to watch a new friend code.\n\nIf the error is something other than that or if the error persists, make sure that Wiimmfi\'s website is currently running. Otherwise, please screenshot this screen and submit a bug report by clicking the About icon on the main page.</string>
<string name="locating_text">Locating %1$s…</string>
+
+ <string name="update_title">A new update is available!</string>
+ <string name="update_message">A new version of Wiimmfi Watcher is available on the Play Store (version %1$s)! You can download it by pressing \"Update\".</string>
+ <string name="update_positive">Update</string>
+ <string name="update_negative">Later</string>
</resources> \ No newline at end of file