diff options
Diffstat (limited to 'app')
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 |