From e26a6c647f460fd8a4e9ed29dd2398e6e86dad6f Mon Sep 17 00:00:00 2001
From: Finnley Somdahl <87634197+rebelonion@users.noreply.github.com>
Date: Tue, 5 Dec 2023 01:05:36 -0600
Subject: [PATCH] random option
---
.../main/java/ani/dantotsu/media/MediaAdaptor.kt | 13 +++++++++++++
.../java/ani/dantotsu/media/user/ListActivity.kt | 10 ++++++++++
.../java/ani/dantotsu/media/user/ListFragment.kt | 5 +++++
app/src/main/res/drawable/ic_shuffle_24.xml | 10 ++++++++++
app/src/main/res/layout/activity_list.xml | 13 +++++++++++--
app/src/main/res/values/strings.xml | 1 +
6 files changed, 50 insertions(+), 2 deletions(-)
create mode 100644 app/src/main/res/drawable/ic_shuffle_24.xml
diff --git a/app/src/main/java/ani/dantotsu/media/MediaAdaptor.kt b/app/src/main/java/ani/dantotsu/media/MediaAdaptor.kt
index 509b40a7..50cd88dc 100644
--- a/app/src/main/java/ani/dantotsu/media/MediaAdaptor.kt
+++ b/app/src/main/java/ani/dantotsu/media/MediaAdaptor.kt
@@ -300,6 +300,19 @@ class MediaAdaptor(
return type
}
+ fun randomOptionClick() { //used for user list
+ val media = mediaList?.random()
+ if (media != null) {
+ mediaList?.let {
+ clicked(
+ it.indexOf(media),
+ null
+ )
+ }
+ }
+
+ }
+
inner class MediaViewHolder(val binding: ItemMediaCompactBinding) :
RecyclerView.ViewHolder(binding.root) {
init {
diff --git a/app/src/main/java/ani/dantotsu/media/user/ListActivity.kt b/app/src/main/java/ani/dantotsu/media/user/ListActivity.kt
index 047efc05..ada753a4 100644
--- a/app/src/main/java/ani/dantotsu/media/user/ListActivity.kt
+++ b/app/src/main/java/ani/dantotsu/media/user/ListActivity.kt
@@ -162,5 +162,15 @@ class ListActivity : AppCompatActivity() {
popup.inflate(R.menu.list_sort_menu)
popup.show()
}
+
+ binding.random.setOnClickListener {
+ //get the current tab
+ val currentTab =
+ binding.listTabLayout.getTabAt(binding.listTabLayout.selectedTabPosition)
+ val currentViewePager = binding.listViewPager.getChildAt(0)
+ val currentFragment =
+ supportFragmentManager.findFragmentByTag("f" + currentTab?.position.toString()) as? ListFragment
+ currentFragment?.randomOptionClick()
+ }
}
}
diff --git a/app/src/main/java/ani/dantotsu/media/user/ListFragment.kt b/app/src/main/java/ani/dantotsu/media/user/ListFragment.kt
index 8053996a..3eccf001 100644
--- a/app/src/main/java/ani/dantotsu/media/user/ListFragment.kt
+++ b/app/src/main/java/ani/dantotsu/media/user/ListFragment.kt
@@ -76,6 +76,11 @@ class ListFragment : Fragment() {
}
}
+ fun randomOptionClick() {
+ val adapter = binding.listRecyclerView.adapter as MediaAdaptor
+ adapter.randomOptionClick()
+ }
+
companion object {
fun newInstance(pos: Int, calendar: Boolean = false): ListFragment =
ListFragment().apply {
diff --git a/app/src/main/res/drawable/ic_shuffle_24.xml b/app/src/main/res/drawable/ic_shuffle_24.xml
new file mode 100644
index 00000000..2bd11b20
--- /dev/null
+++ b/app/src/main/res/drawable/ic_shuffle_24.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/layout/activity_list.xml b/app/src/main/res/layout/activity_list.xml
index d3e59eef..d75f2f77 100644
--- a/app/src/main/res/layout/activity_list.xml
+++ b/app/src/main/res/layout/activity_list.xml
@@ -44,12 +44,21 @@
android:layout_height="wrap_content"
android:layout_weight="1" />
+
+
Available Anime
Installed Manga
Color Picker
+ Random Selection