aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/me/brysonsteck/wiimmfiwatcher
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/me/brysonsteck/wiimmfiwatcher')
-rw-r--r--app/src/main/java/me/brysonsteck/wiimmfiwatcher/MainActivity.java68
-rw-r--r--app/src/main/java/me/brysonsteck/wiimmfiwatcher/Updater.java73
-rw-r--r--app/src/main/java/me/brysonsteck/wiimmfiwatcher/fragments/AboutFragment.java (renamed from app/src/main/java/me/brysonsteck/wiimmfiwatcher/AboutFragment.java)5
-rw-r--r--app/src/main/java/me/brysonsteck/wiimmfiwatcher/fragments/WatchCodeAdapter.java (renamed from app/src/main/java/me/brysonsteck/wiimmfiwatcher/WatchCodeAdapter.java)3
-rw-r--r--app/src/main/java/me/brysonsteck/wiimmfiwatcher/fragments/WatchCodeFragment.java (renamed from app/src/main/java/me/brysonsteck/wiimmfiwatcher/WatchCodeFragment.java)3
-rw-r--r--app/src/main/java/me/brysonsteck/wiimmfiwatcher/wiimmfi/Player.java22
-rw-r--r--app/src/main/java/me/brysonsteck/wiimmfiwatcher/wiimmfi/RoomData.java2
-rw-r--r--app/src/main/java/me/brysonsteck/wiimmfiwatcher/wiimmfi/WiimmfiActivity.java4
-rw-r--r--app/src/main/java/me/brysonsteck/wiimmfiwatcher/wiimmfi/fragments/RoomAdapter.java (renamed from app/src/main/java/me/brysonsteck/wiimmfiwatcher/wiimmfi/RoomAdapter.java)5
-rw-r--r--app/src/main/java/me/brysonsteck/wiimmfiwatcher/wiimmfi/fragments/RoomFragment.java (renamed from app/src/main/java/me/brysonsteck/wiimmfiwatcher/wiimmfi/RoomFragment.java)8
10 files changed, 164 insertions, 29 deletions
diff --git a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/MainActivity.java b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/MainActivity.java
index 8084714..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,26 @@
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;
- @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -47,6 +53,62 @@ public class MainActivity extends AppCompatActivity {
});
}
+
+ @Override
+ protected void onStart() {
+ super.onStart();
+ 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();
+ }
+ };
+ 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
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..eb3e813
--- /dev/null
+++ b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/Updater.java
@@ -0,0 +1,73 @@
+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();
+ 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();
+ }
+ }
+
+ public String urlReader() throws IOException {
+ URL website = new URL("https://brysonsteck.net/updates.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;
+ }
+}
diff --git a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/AboutFragment.java b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/fragments/AboutFragment.java
index 87f3def..3047e85 100644
--- a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/AboutFragment.java
+++ b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/fragments/AboutFragment.java
@@ -1,4 +1,4 @@
-package me.brysonsteck.wiimmfiwatcher;
+package me.brysonsteck.wiimmfiwatcher.fragments;
import android.annotation.SuppressLint;
import android.content.res.Configuration;
@@ -18,6 +18,9 @@ import androidx.fragment.app.Fragment;
import com.google.android.material.appbar.MaterialToolbar;
+import me.brysonsteck.wiimmfiwatcher.BuildConfig;
+import me.brysonsteck.wiimmfiwatcher.R;
+
public class AboutFragment extends Fragment {
View aboutButton;
MaterialToolbar toolbar;
diff --git a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/WatchCodeAdapter.java b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/fragments/WatchCodeAdapter.java
index 7034888..400436b 100644
--- a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/WatchCodeAdapter.java
+++ b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/fragments/WatchCodeAdapter.java
@@ -1,4 +1,4 @@
-package me.brysonsteck.wiimmfiwatcher;
+package me.brysonsteck.wiimmfiwatcher.fragments;
import android.app.ProgressDialog;
import android.content.Context;
@@ -18,6 +18,7 @@ import com.google.android.material.textview.MaterialTextView;
import java.util.ArrayList;
+import me.brysonsteck.wiimmfiwatcher.R;
import me.brysonsteck.wiimmfiwatcher.model.FriendCode;
import me.brysonsteck.wiimmfiwatcher.wiimmfi.WiimmfiActivity;
diff --git a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/WatchCodeFragment.java b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/fragments/WatchCodeFragment.java
index 01069b6..2687518 100644
--- a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/WatchCodeFragment.java
+++ b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/fragments/WatchCodeFragment.java
@@ -1,4 +1,4 @@
-package me.brysonsteck.wiimmfiwatcher;
+package me.brysonsteck.wiimmfiwatcher.fragments;
import android.app.ProgressDialog;
import android.content.Intent;
@@ -20,6 +20,7 @@ import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.textview.MaterialTextView;
+import me.brysonsteck.wiimmfiwatcher.R;
import me.brysonsteck.wiimmfiwatcher.model.FriendCode;
import me.brysonsteck.wiimmfiwatcher.viewmodel.FriendCodeViewModel;
import me.brysonsteck.wiimmfiwatcher.wiimmfi.WiimmfiActivity;
diff --git a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/wiimmfi/Player.java b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/wiimmfi/Player.java
index fe9e072..257ee20 100644
--- a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/wiimmfi/Player.java
+++ b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/wiimmfi/Player.java
@@ -1,15 +1,15 @@
package me.brysonsteck.wiimmfiwatcher.wiimmfi;
public class Player {
- String rosterNumber;
- String miiName;
- String friendCode;
- String role;
- String loginRegion;
- String roomMatch;
- String world;
- String connFail;
- String vr;
- String br;
- boolean watching;
+ public String rosterNumber;
+ public String miiName;
+ public String friendCode;
+ public String role;
+ public String loginRegion;
+ public String roomMatch;
+ public String world;
+ public String connFail;
+ public String vr;
+ public String br;
+ public boolean watching;
}
diff --git a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/wiimmfi/RoomData.java b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/wiimmfi/RoomData.java
index 60ad7df..b5f6aaf 100644
--- a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/wiimmfi/RoomData.java
+++ b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/wiimmfi/RoomData.java
@@ -14,7 +14,7 @@ public class RoomData {
String roomHeader;
String playerLink;
String friendCode;
- Exception error;
+ public Exception error;
ArrayList<Player> players = new ArrayList<>();
String userAgent = "Wiimmfi Watcher for Android (https://github.com/brysonsteck/wiimmfi-watcher) Version " + BuildConfig.VERSION_NAME;
diff --git a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/wiimmfi/WiimmfiActivity.java b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/wiimmfi/WiimmfiActivity.java
index c0d4c9f..6936275 100644
--- a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/wiimmfi/WiimmfiActivity.java
+++ b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/wiimmfi/WiimmfiActivity.java
@@ -5,7 +5,6 @@ import android.content.res.Configuration;
import android.graphics.Color;
import android.os.Bundle;
import android.os.StrictMode;
-import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import androidx.drawerlayout.widget.DrawerLayout;
@@ -13,11 +12,10 @@ import androidx.drawerlayout.widget.DrawerLayout;
import com.google.android.material.appbar.MaterialToolbar;
import com.google.android.material.navigation.NavigationView;
-import org.jsoup.*;
-
import java.util.ArrayList;
import me.brysonsteck.wiimmfiwatcher.R;
+import me.brysonsteck.wiimmfiwatcher.wiimmfi.fragments.RoomFragment;
public class WiimmfiActivity extends AppCompatActivity {
ArrayList<Player> players = new ArrayList<>();
diff --git a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/wiimmfi/RoomAdapter.java b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/wiimmfi/fragments/RoomAdapter.java
index 5538869..2840ce6 100644
--- a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/wiimmfi/RoomAdapter.java
+++ b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/wiimmfi/fragments/RoomAdapter.java
@@ -1,4 +1,4 @@
-package me.brysonsteck.wiimmfiwatcher.wiimmfi;
+package me.brysonsteck.wiimmfiwatcher.wiimmfi.fragments;
import android.annotation.SuppressLint;
import android.content.Context;
@@ -15,11 +15,10 @@ import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.card.MaterialCardView;
-import org.jsoup.*;
-
import java.util.ArrayList;
import me.brysonsteck.wiimmfiwatcher.R;
+import me.brysonsteck.wiimmfiwatcher.wiimmfi.Player;
public class RoomAdapter extends RecyclerView.Adapter<RoomAdapter.ViewHolder>{
String display;
diff --git a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/wiimmfi/RoomFragment.java b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/wiimmfi/fragments/RoomFragment.java
index fc144aa..d6326f7 100644
--- a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/wiimmfi/RoomFragment.java
+++ b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/wiimmfi/fragments/RoomFragment.java
@@ -1,10 +1,8 @@
-package me.brysonsteck.wiimmfiwatcher.wiimmfi;
+package me.brysonsteck.wiimmfiwatcher.wiimmfi.fragments;
import android.os.Bundle;
-import android.os.Looper;
import android.view.View;
import android.widget.TextView;
-import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -15,11 +13,11 @@ import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.appbar.MaterialToolbar;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
-import java.net.UnknownHostException;
import java.util.ArrayList;
-import java.util.Arrays;
import me.brysonsteck.wiimmfiwatcher.R;
+import me.brysonsteck.wiimmfiwatcher.wiimmfi.Player;
+import me.brysonsteck.wiimmfiwatcher.wiimmfi.RoomData;
public class RoomFragment extends Fragment {
String display;