added clear button but doesn't work yet
This commit is contained in:
parent
5c0ed1708a
commit
2734f6777a
9 changed files with 231 additions and 94 deletions
|
@ -1,7 +1,11 @@
|
||||||
package me.brysonsteck.wiimmfiwatcher;
|
package me.brysonsteck.wiimmfiwatcher;
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.text.Html;
|
||||||
|
import android.text.method.LinkMovementMethod;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
@ -10,9 +14,51 @@ import androidx.fragment.app.Fragment;
|
||||||
public class AboutFragment extends Fragment {
|
public class AboutFragment extends Fragment {
|
||||||
public AboutFragment() { super(R.layout.about_fragment); }
|
public AboutFragment() { super(R.layout.about_fragment); }
|
||||||
|
|
||||||
|
@SuppressLint("SetTextI18n")
|
||||||
@Override
|
@Override
|
||||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||||
super.onViewCreated(view, 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,8 +7,15 @@ import android.view.View;
|
||||||
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.databinding.ObservableArrayList;
|
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.database.AppDatabase;
|
||||||
import me.brysonsteck.wiimmfiwatcher.model.FriendCode;
|
import me.brysonsteck.wiimmfiwatcher.model.FriendCode;
|
||||||
|
import me.brysonsteck.wiimmfiwatcher.viewmodel.FriendCodeViewModel;
|
||||||
|
|
||||||
public class MainActivity extends AppCompatActivity {
|
public class MainActivity extends AppCompatActivity {
|
||||||
ObservableArrayList<FriendCode> recentFCList = new ObservableArrayList<>();
|
ObservableArrayList<FriendCode> recentFCList = new ObservableArrayList<>();
|
||||||
|
@ -27,7 +34,22 @@ public class MainActivity extends AppCompatActivity {
|
||||||
|
|
||||||
}
|
}
|
||||||
setContentView(R.layout.activity_main);
|
setContentView(R.layout.activity_main);
|
||||||
|
database = Room.databaseBuilder(this, AppDatabase.class, "friend-codes-db").build();
|
||||||
View aboutButton = findViewById(R.id.about_button);
|
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) -> {
|
aboutButton.setOnClickListener((about) -> {
|
||||||
getSupportFragmentManager().beginTransaction()
|
getSupportFragmentManager().beginTransaction()
|
||||||
|
|
|
@ -14,6 +14,7 @@ import androidx.lifecycle.ViewModelProvider;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton;
|
||||||
import com.google.android.material.textview.MaterialTextView;
|
import com.google.android.material.textview.MaterialTextView;
|
||||||
|
|
||||||
import me.brysonsteck.wiimmfiwatcher.model.FriendCode;
|
import me.brysonsteck.wiimmfiwatcher.model.FriendCode;
|
||||||
|
@ -108,5 +109,6 @@ public class WatchCodeFragment extends Fragment {
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,4 +27,8 @@ public interface FriendCodeDao {
|
||||||
|
|
||||||
@Delete
|
@Delete
|
||||||
public void delete(FriendCode friendCode);
|
public void delete(FriendCode friendCode);
|
||||||
|
|
||||||
|
@Query("DELETE FROM friendcode")
|
||||||
|
public void nukeTable();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package me.brysonsteck.wiimmfiwatcher.viewmodel;
|
package me.brysonsteck.wiimmfiwatcher.viewmodel;
|
||||||
|
|
||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
|
import android.database.sqlite.SQLiteDatabase;
|
||||||
|
|
||||||
import androidx.databinding.ObservableArrayList;
|
import androidx.databinding.ObservableArrayList;
|
||||||
import androidx.lifecycle.AndroidViewModel;
|
import androidx.lifecycle.AndroidViewModel;
|
||||||
|
@ -45,6 +46,13 @@ public class FriendCodeViewModel extends AndroidViewModel {
|
||||||
return entries;
|
return entries;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean deleteAll() {
|
||||||
|
for (FriendCode entry: entries) {
|
||||||
|
db.getFriendCodeDao().nukeTable();
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public void saveFriendCode(String name, String friendCode) {
|
public void saveFriendCode(String name, String friendCode) {
|
||||||
saving.setValue(true);
|
saving.setValue(true);
|
||||||
new Thread(() -> {
|
new Thread(() -> {
|
||||||
|
|
5
app/src/main/res/drawable/ic_baseline_clear_all_24.xml
Normal file
5
app/src/main/res/drawable/ic_baseline_clear_all_24.xml
Normal file
|
@ -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>
|
|
@ -1,17 +1,22 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:padding="15dp"
|
||||||
|
android:paddingBottom="30dp">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/textView"
|
android:id="@+id/textView"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="About Wiimmfi Watcher"
|
android:text="About Wiimmfi Watcher"
|
||||||
android:textSize="30sp"
|
android:textSize="24sp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
@ -21,6 +26,7 @@
|
||||||
android:id="@+id/about_watcher_text"
|
android:id="@+id/about_watcher_text"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingBottom="15dp"
|
||||||
android:text="TextView"
|
android:text="TextView"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
@ -31,7 +37,7 @@
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="About Me"
|
android:text="About Me"
|
||||||
android:textSize="30sp"
|
android:textSize="24sp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
@ -42,6 +48,7 @@
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="TextView"
|
android:text="TextView"
|
||||||
|
android:paddingBottom="15dp"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/textView5" />
|
app:layout_constraintTop_toBottomOf="@+id/textView5" />
|
||||||
|
@ -51,7 +58,7 @@
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="GitHub"
|
android:text="GitHub"
|
||||||
android:textSize="30sp"
|
android:textSize="24sp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
@ -62,6 +69,7 @@
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="TextView"
|
android:text="TextView"
|
||||||
|
android:paddingBottom="15dp"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/textView7" />
|
app:layout_constraintTop_toBottomOf="@+id/textView7" />
|
||||||
|
@ -71,7 +79,7 @@
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="Donations"
|
android:text="Donations"
|
||||||
android:textSize="30sp"
|
android:textSize="24sp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintHorizontal_bias="0.0"
|
app:layout_constraintHorizontal_bias="0.0"
|
||||||
|
@ -83,6 +91,7 @@
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="TextView"
|
android:text="TextView"
|
||||||
|
android:paddingBottom="15dp"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/textView8" />
|
app:layout_constraintTop_toBottomOf="@+id/textView8" />
|
||||||
|
@ -92,7 +101,7 @@
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="Contact"
|
android:text="Contact"
|
||||||
android:textSize="30sp"
|
android:textSize="24sp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintHorizontal_bias="0.0"
|
app:layout_constraintHorizontal_bias="0.0"
|
||||||
|
@ -104,7 +113,31 @@
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="TextView"
|
android:text="TextView"
|
||||||
|
android:paddingBottom="15dp"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/textView9" />
|
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>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
</ScrollView>
|
|
@ -44,6 +44,21 @@
|
||||||
android:hapticFeedbackEnabled="false"
|
android:hapticFeedbackEnabled="false"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/friend_code_input_fragment" />
|
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 -->
|
<!-- Screen content -->
|
||||||
<!-- Use app:layout_behavior="@string/appbar_scrolling_view_behavior" to fit below top app bar -->
|
<!-- Use app:layout_behavior="@string/appbar_scrolling_view_behavior" to fit below top app bar -->
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
<resources>
|
<resources>
|
||||||
<string name="app_name">Wiimmfi</string>
|
<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>
|
</resources>
|
Reference in a new issue