From 2734f6777a6b7c439d9bc55c8756155721f76fa5 Mon Sep 17 00:00:00 2001 From: Bryson Steck Date: Sun, 9 May 2021 00:44:42 -0600 Subject: added clear button but doesn't work yet --- .../brysonsteck/wiimmfiwatcher/AboutFragment.java | 46 ++++++++++++++++++++++ .../brysonsteck/wiimmfiwatcher/MainActivity.java | 22 +++++++++++ .../wiimmfiwatcher/WatchCodeFragment.java | 2 + .../wiimmfiwatcher/database/FriendCodeDao.java | 4 ++ .../viewmodel/FriendCodeViewModel.java | 8 ++++ 5 files changed, 82 insertions(+) (limited to 'app/src/main/java') 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 = "here."; + +// 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 = "here."; + 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 = "todo list."; +// String issueGithub = "here."; +// 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 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(() -> { -- cgit v1.2.3