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 + .../main/res/drawable/ic_baseline_clear_all_24.xml | 5 + app/src/main/res/layout/about_fragment.xml | 221 ++++++++++++--------- app/src/main/res/layout/activity_main.xml | 15 ++ app/src/main/res/values/strings.xml | 2 + 9 files changed, 231 insertions(+), 94 deletions(-) create mode 100644 app/src/main/res/drawable/ic_baseline_clear_all_24.xml 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(() -> { 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 @@ + + + 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 @@ - - + android:padding="15dp" + android:paddingBottom="30dp"> - + - + - + - + - + - + - + - + - - \ No newline at end of file + + + + + + + + + \ 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" /> + + 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 @@ Wiimmfi + All of the code in this project is open source on my GitHub repository here. You are free to use this code and expand upon it under the GNU General Public License. + Speaking of bugs, did you find a bug? First, make sure that the issue you found is not listed on my todo list. 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 here. If you aren\'t sure how to use GitHub, you can also fill out this Google Forum. \ No newline at end of file -- cgit v1.2.3