aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/src/main/java/me/brysonsteck/wiimmfiwatcher/AboutFragment.java46
-rw-r--r--app/src/main/java/me/brysonsteck/wiimmfiwatcher/MainActivity.java22
-rw-r--r--app/src/main/java/me/brysonsteck/wiimmfiwatcher/WatchCodeFragment.java2
-rw-r--r--app/src/main/java/me/brysonsteck/wiimmfiwatcher/database/FriendCodeDao.java4
-rw-r--r--app/src/main/java/me/brysonsteck/wiimmfiwatcher/viewmodel/FriendCodeViewModel.java8
-rw-r--r--app/src/main/res/drawable/ic_baseline_clear_all_24.xml5
-rw-r--r--app/src/main/res/layout/about_fragment.xml221
-rw-r--r--app/src/main/res/layout/activity_main.xml15
-rw-r--r--app/src/main/res/values/strings.xml2
9 files changed, 231 insertions, 94 deletions
diff --git a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/AboutFragment.java b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/AboutFragment.java
index 7851977..4cd51fd 100644
--- a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/AboutFragment.java
+++ b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/AboutFragment.java
@@ -1,7 +1,11 @@
package me.brysonsteck.wiimmfiwatcher;
+import android.annotation.SuppressLint;
import android.os.Bundle;
+import android.text.Html;
+import android.text.method.LinkMovementMethod;
import android.view.View;
+import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -10,9 +14,51 @@ import androidx.fragment.app.Fragment;
public class AboutFragment extends Fragment {
public AboutFragment() { super(R.layout.about_fragment); }
+ @SuppressLint("SetTextI18n")
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
+
+ TextView aboutWatcher = view.findViewById(R.id.about_watcher_text);
+ TextView aboutMe = view.findViewById(R.id.about_me_text);
+ TextView github = view.findViewById(R.id.github_text);
+ TextView donations = view.findViewById(R.id.donations_text);
+ TextView contact = view.findViewById(R.id.contact_text);
+ TextView bugs = view.findViewById(R.id.bugs_text);
+
+ aboutWatcher.setText("Wiimmfi Watcher is an UNOFFICIAL application created for a school project that I have decided to turn into a full application. " +
+ "This application was made to provide an easy shortcut to the Wiimmfi website and display data in a mobile friendly way, since the official website doesn't have a mobile friendly version. " +
+ "Free and open source, you can watch your Wiimmfi Mario Kart Wii matches on your phone in a quick and easy way. " +
+ "");
+
+ aboutMe.setText("Hi there! My name is Bryson Steck. I am a student studying Computer Science at Utah State University. This is my first official application that I'm maintaining. " +
+ "This whole \"application on the Google Play Store\" thing is new to me, so please be patient as I am learning how to maintain something like this. " +
+ "I hope you enjoy my first application!");
+
+ github.setClickable(true);
+ github.setMovementMethod(LinkMovementMethod.getInstance());
+ String githubLink = "<a href='https://github.com/brysonsteck/wiimmfi-watcher/tree/master'>here.</a>";
+
+// github.setText("All of the code in this project is open source on my GitHub repository " + Html.fromHtml(githubLink) + " You are free to use this code and expand upon it under the GNU General Public License.");
+ github.setText(R.string.github);
+// donations.setMovementMethod(LinkMovementMethod.getInstance());
+// String donationsLink = "<a href='https://github.com/brysonsteck/wiimmfi-watcher/tree/master'>here.</a>";
+ donations.setText("Since this application is free and the code is open source, I do not receive income from maintaining this app. Because of that, I'd appreciate any donation in the following methods:\n\n" +
+ "PayPal: @bryzinga\n" +
+ "Venmo: @brysonsteck\n" +
+ "Bitcoin: 1Kbnp5JMTKd7a3Zs2WWm2JMCjfVb5tpcky\n" +
+ "Litecoin: LRboJVNzoJCjXHmwN6RQgyvYEQjjaFzEA7\n" +
+ "Dogecoin: DMx362YBEBYw1uDGetX3svdg8RypHsWTCS");
+
+ contact.setText("If you would like to get ahold of me for any reason unrelated to bug reports or this app in general, you can contact me through email at steck.bryson@gmail.com " +
+ "or on Discord at bryzinga#9971.");
+
+// String todoList = "<a href='https://github.com/brysonsteck/wiimmfi-watcher/blob/master/TODO.md'>todo list.</a>";
+// String issueGithub = "<a href='https://github.com/brysonsteck/wiimmfi-watcher/issues'>here.</a>";
+// bugs.setText("Speaking of bugs, did you find a bug? First, make sure that the issue you found is not listed on my " + Html.fromHtml(todoList) +
+// "It's possible I'm already aware of it or working on it. If your issue is not addressed on the todo list, then you can create an issue on my GitHub repository " + Html.fromHtml(issueGithub) +
+// "If you aren't sure how to use GitHub, you can also fill out this Google Forum.");
+ bugs.setText(R.string.bugs);
}
}
diff --git a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/MainActivity.java b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/MainActivity.java
index e48486e..c3933ee 100644
--- a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/MainActivity.java
+++ b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/MainActivity.java
@@ -7,8 +7,15 @@ import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import androidx.databinding.ObservableArrayList;
+import androidx.lifecycle.ViewModelProvider;
+import androidx.room.Room;
+import androidx.sqlite.db.SimpleSQLiteQuery;
+
+import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton;
+
import me.brysonsteck.wiimmfiwatcher.database.AppDatabase;
import me.brysonsteck.wiimmfiwatcher.model.FriendCode;
+import me.brysonsteck.wiimmfiwatcher.viewmodel.FriendCodeViewModel;
public class MainActivity extends AppCompatActivity {
ObservableArrayList<FriendCode> recentFCList = new ObservableArrayList<>();
@@ -27,7 +34,22 @@ public class MainActivity extends AppCompatActivity {
}
setContentView(R.layout.activity_main);
+ database = Room.databaseBuilder(this, AppDatabase.class, "friend-codes-db").build();
View aboutButton = findViewById(R.id.about_button);
+ ExtendedFloatingActionButton clearButton = findViewById(R.id.clear_button);
+ FriendCodeViewModel viewModel = new ViewModelProvider(MainActivity.this).get(FriendCodeViewModel.class);
+ clearButton.setOnClickListener(new View.OnClickListener() {
+
+
+ @Override
+ public void onClick(View view) {
+ new Thread(() -> {
+ database.clearAllTables();
+ database.query(new SimpleSQLiteQuery("DELETE FROM friendcode"));
+ });
+ }
+ });
+
aboutButton.setOnClickListener((about) -> {
getSupportFragmentManager().beginTransaction()
diff --git a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/WatchCodeFragment.java b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/WatchCodeFragment.java
index 942da0f..414519c 100644
--- a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/WatchCodeFragment.java
+++ b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/WatchCodeFragment.java
@@ -14,6 +14,7 @@ import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
+import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton;
import com.google.android.material.textview.MaterialTextView;
import me.brysonsteck.wiimmfiwatcher.model.FriendCode;
@@ -108,5 +109,6 @@ public class WatchCodeFragment extends Fragment {
});
+
}
}
diff --git a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/database/FriendCodeDao.java b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/database/FriendCodeDao.java
index 24e8762..1b0788e 100644
--- a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/database/FriendCodeDao.java
+++ b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/database/FriendCodeDao.java
@@ -27,4 +27,8 @@ public interface FriendCodeDao {
@Delete
public void delete(FriendCode friendCode);
+
+ @Query("DELETE FROM friendcode")
+ public void nukeTable();
+
}
diff --git a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/viewmodel/FriendCodeViewModel.java b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/viewmodel/FriendCodeViewModel.java
index ae300c0..87db049 100644
--- a/app/src/main/java/me/brysonsteck/wiimmfiwatcher/viewmodel/FriendCodeViewModel.java
+++ b/app/src/main/java/me/brysonsteck/wiimmfiwatcher/viewmodel/FriendCodeViewModel.java
@@ -1,6 +1,7 @@
package me.brysonsteck.wiimmfiwatcher.viewmodel;
import android.app.Application;
+import android.database.sqlite.SQLiteDatabase;
import androidx.databinding.ObservableArrayList;
import androidx.lifecycle.AndroidViewModel;
@@ -45,6 +46,13 @@ public class FriendCodeViewModel extends AndroidViewModel {
return entries;
}
+ public boolean deleteAll() {
+ for (FriendCode entry: entries) {
+ db.getFriendCodeDao().nukeTable();
+ }
+ return true;
+ }
+
public void saveFriendCode(String name, String friendCode) {
saving.setValue(true);
new Thread(() -> {
diff --git a/app/src/main/res/drawable/ic_baseline_clear_all_24.xml b/app/src/main/res/drawable/ic_baseline_clear_all_24.xml
new file mode 100644
index 0000000..54ca983
--- /dev/null
+++ b/app/src/main/res/drawable/ic_baseline_clear_all_24.xml
@@ -0,0 +1,5 @@
+<vector android:height="24dp" android:tint="#FFFFFF"
+ android:viewportHeight="24" android:viewportWidth="24"
+ android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
+ <path android:fillColor="@android:color/white" android:pathData="M5,13h14v-2L5,11v2zM3,17h14v-2L3,15v2zM7,7v2h14L21,7L7,7z"/>
+</vector>
diff --git a/app/src/main/res/layout/about_fragment.xml b/app/src/main/res/layout/about_fragment.xml
index 623b71f..ce55068 100644
--- a/app/src/main/res/layout/about_fragment.xml
+++ b/app/src/main/res/layout/about_fragment.xml
@@ -1,110 +1,143 @@
<?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
- <TextView
- android:id="@+id/textView"
- android:layout_width="0dp"
+ <androidx.constraintlayout.widget.ConstraintLayout
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:text="About Wiimmfi Watcher"
- android:textSize="30sp"
- android:textStyle="bold"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent" />
+ android:padding="15dp"
+ android:paddingBottom="30dp">
- <TextView
- android:id="@+id/about_watcher_text"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:text="TextView"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/textView" />
+ <TextView
+ android:id="@+id/textView"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:text="About Wiimmfi Watcher"
+ android:textSize="24sp"
+ android:textStyle="bold"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
- <TextView
- android:id="@+id/textView5"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:text="About Me"
- android:textSize="30sp"
- android:textStyle="bold"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/about_watcher_text" />
+ <TextView
+ android:id="@+id/about_watcher_text"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:paddingBottom="15dp"
+ android:text="TextView"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/textView" />
- <TextView
- android:id="@+id/about_me_text"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:text="TextView"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/textView5" />
+ <TextView
+ android:id="@+id/textView5"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:text="About Me"
+ android:textSize="24sp"
+ android:textStyle="bold"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/about_watcher_text" />
- <TextView
- android:id="@+id/textView7"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:text="GitHub"
- android:textSize="30sp"
- android:textStyle="bold"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/about_me_text" />
+ <TextView
+ android:id="@+id/about_me_text"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:text="TextView"
+ android:paddingBottom="15dp"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/textView5" />
- <TextView
- android:id="@+id/github_text"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:text="TextView"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/textView7" />
+ <TextView
+ android:id="@+id/textView7"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:text="GitHub"
+ android:textSize="24sp"
+ android:textStyle="bold"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/about_me_text" />
- <TextView
- android:id="@+id/textView8"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:text="Donations"
- android:textSize="30sp"
- android:textStyle="bold"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintHorizontal_bias="0.0"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/github_text" />
+ <TextView
+ android:id="@+id/github_text"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:text="TextView"
+ android:paddingBottom="15dp"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/textView7" />
- <TextView
- android:id="@+id/donations_text"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:text="TextView"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/textView8" />
+ <TextView
+ android:id="@+id/textView8"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:text="Donations"
+ android:textSize="24sp"
+ android:textStyle="bold"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintHorizontal_bias="0.0"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/github_text" />
- <TextView
- android:id="@+id/textView9"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:text="Contact"
- android:textSize="30sp"
- android:textStyle="bold"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintHorizontal_bias="0.0"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/donations_text" />
+ <TextView
+ android:id="@+id/donations_text"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:text="TextView"
+ android:paddingBottom="15dp"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/textView8" />
- <TextView
- android:id="@+id/contact_text"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:text="TextView"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/textView9" />
-</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file
+ <TextView
+ android:id="@+id/textView9"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:text="Contact"
+ android:textSize="24sp"
+ android:textStyle="bold"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintHorizontal_bias="0.0"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/donations_text" />
+
+ <TextView
+ android:id="@+id/contact_text"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:text="TextView"
+ android:paddingBottom="15dp"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/textView9" />
+
+ <TextView
+ android:id="@+id/bugs_text"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:paddingBottom="65dp"
+ android:text="TextView"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/textView13" />
+
+ <TextView
+ android:id="@+id/textView13"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:text="Bugs?"
+ android:textSize="24sp"
+ android:textStyle="bold"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintHorizontal_bias="0.0"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/contact_text" />
+ </androidx.constraintlayout.widget.ConstraintLayout>
+ </ScrollView> \ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 109efae..1e15f02 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -44,6 +44,21 @@
android:hapticFeedbackEnabled="false"
app:layout_constraintTop_toBottomOf="@+id/friend_code_input_fragment" />
+ <com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
+ android:id="@+id/clear_button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="bottom|right"
+ android:layout_margin="15dp"
+ android:foregroundTint="#FFFFFF"
+ android:text="Clear"
+ android:textColor="#FFFFFF"
+ app:backgroundTint="#1E88E5"
+ app:icon="@drawable/ic_baseline_clear_all_24"
+ app:iconTint="#FFFFFF"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent" />
+
<!-- Screen content -->
<!-- Use app:layout_behavior="@string/appbar_scrolling_view_behavior" to fit below top app bar -->
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 276e54a..88268f7 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,3 +1,5 @@
<resources>
<string name="app_name">Wiimmfi</string>
+ <string name="github">All of the code in this project is open source on my GitHub repository <a href='https://github.com/brysonsteck/wiimmfi-watcher/tree/master'>here.</a> You are free to use this code and expand upon it under the GNU General Public License.</string>
+ <string name="bugs">Speaking of bugs, did you find a bug? First, make sure that the issue you found is not listed on my <a href='https://github.com/brysonsteck/wiimmfi-watcher/blob/master/TODO.md'>todo list.</a> It\'s possible I\'m already aware of it or working on it. If your issue is not addressed on the todo list, then you can create an issue on my GitHub repository <a href='https://github.com/brysonsteck/wiimmfi-watcher/issues'>here.</a> If you aren\'t sure how to use GitHub, you can also fill out this Google Forum.</string>
</resources> \ No newline at end of file