diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2514f4f7..46c6c3cb 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -217,6 +217,9 @@
android:label="@string/manga"
android:launchMode="singleTask" />
+
threeDaysAgo }.toList()
.sortedByDescending { it.createdAt }
- .filter { it.createdAt * 1000L > threeDaysAgo }
val anilistActivities = mutableListOf()
val groupedActivities = activities.groupBy { it.userId }
@@ -1584,7 +1585,7 @@ Page(page:$page,perPage:50) {
)
}
private fun status(page: Int = 1): String {
- return """Page(page:$page,perPage:50){activities(isFollowing: true,sort:ID_DESC){__typename ... on TextActivity{id userId type replyCount text(asHtml:true)siteUrl isLocked isSubscribed likeCount isLiked createdAt user{id name bannerImage avatar{medium large}}likes{id name bannerImage avatar{medium large}}}... on ListActivity{id userId type replyCount status progress siteUrl isLocked isSubscribed likeCount isLiked isPinned createdAt user{id name bannerImage avatar{medium large}}media{id title{english romaji native userPreferred}bannerImage coverImage{extraLarge medium large}}likes{id name bannerImage avatar{medium large}}}... on MessageActivity{id type createdAt}}}"""
+ return """Page(page:$page,perPage:50){activities(isFollowing: true,sort:ID_DESC){__typename ... on TextActivity{id userId type replyCount text(asHtml:true)siteUrl isLocked isSubscribed likeCount isLiked createdAt user{id name bannerImage avatar{medium large}}likes{id name bannerImage avatar{medium large}}}... on ListActivity{id userId type replyCount status progress siteUrl isLocked isSubscribed likeCount isLiked isPinned createdAt user{id name bannerImage avatar{medium large}}media{id isAdult title{english romaji native userPreferred}bannerImage coverImage{extraLarge medium large}}likes{id name bannerImage avatar{medium large}}}... on MessageActivity{id type createdAt}}}"""
}
suspend fun getUpcomingAnime(id: String): List {
diff --git a/app/src/main/java/ani/dantotsu/home/HomeFragment.kt b/app/src/main/java/ani/dantotsu/home/HomeFragment.kt
index 499c7cdb..f21f11b9 100644
--- a/app/src/main/java/ani/dantotsu/home/HomeFragment.kt
+++ b/app/src/main/java/ani/dantotsu/home/HomeFragment.kt
@@ -34,6 +34,7 @@ import ani.dantotsu.home.status.UserStatusAdapter
import ani.dantotsu.loadImage
import ani.dantotsu.media.Media
import ani.dantotsu.media.MediaAdaptor
+import ani.dantotsu.media.MediaListViewActivity
import ani.dantotsu.media.user.ListActivity
import ani.dantotsu.navBarHeight
import ani.dantotsu.profile.ProfileActivity
@@ -209,13 +210,15 @@ class HomeFragment : Fragment() {
recyclerView: RecyclerView,
progress: View,
empty: View,
- title: View
+ title: View,
+ more: View
) {
container.visibility = View.VISIBLE
progress.visibility = View.VISIBLE
recyclerView.visibility = View.GONE
empty.visibility = View.GONE
title.visibility = View.INVISIBLE
+ more.visibility = View.INVISIBLE
mode.observe(viewLifecycleOwner) {
recyclerView.visibility = View.GONE
@@ -228,6 +231,14 @@ class HomeFragment : Fragment() {
LinearLayoutManager.HORIZONTAL,
false
)
+ more.setOnClickListener { _ ->
+ MediaListViewActivity.mediaList = it
+ ContextCompat.startActivity(
+ requireActivity(), Intent(requireActivity(), MediaListViewActivity::class.java)
+ .putExtra("title", getString(R.string.continue_watching)),
+ null
+ )
+ }
recyclerView.visibility = View.VISIBLE
recyclerView.layoutAnimation =
LayoutAnimationController(setSlideIn(), 0.25f)
@@ -235,6 +246,7 @@ class HomeFragment : Fragment() {
} else {
empty.visibility = View.VISIBLE
}
+ more?.visibility = View.VISIBLE
title.visibility = View.VISIBLE
title.startAnimation(setSlideUp())
progress.visibility = View.GONE
@@ -250,7 +262,8 @@ class HomeFragment : Fragment() {
binding.homeWatchingRecyclerView,
binding.homeWatchingProgressBar,
binding.homeWatchingEmpty,
- binding.homeContinueWatch
+ binding.homeContinueWatch,
+ binding.homeContinueWatchMore
)
binding.homeWatchingBrowseButton.setOnClickListener {
bottomBar.selectTabAt(0)
@@ -262,7 +275,9 @@ class HomeFragment : Fragment() {
binding.homeFavAnimeRecyclerView,
binding.homeFavAnimeProgressBar,
binding.homeFavAnimeEmpty,
- binding.homeFavAnime
+ binding.homeFavAnime,
+ binding.homeFavAnimeMore
+
)
initRecyclerView(
@@ -271,7 +286,8 @@ class HomeFragment : Fragment() {
binding.homePlannedAnimeRecyclerView,
binding.homePlannedAnimeProgressBar,
binding.homePlannedAnimeEmpty,
- binding.homePlannedAnime
+ binding.homePlannedAnime,
+ binding.homePlannedAnimeMore
)
binding.homePlannedAnimeBrowseButton.setOnClickListener {
bottomBar.selectTabAt(0)
@@ -283,7 +299,8 @@ class HomeFragment : Fragment() {
binding.homeReadingRecyclerView,
binding.homeReadingProgressBar,
binding.homeReadingEmpty,
- binding.homeContinueRead
+ binding.homeContinueRead,
+ binding.homeContinueReadMore
)
binding.homeReadingBrowseButton.setOnClickListener {
bottomBar.selectTabAt(2)
@@ -295,7 +312,8 @@ class HomeFragment : Fragment() {
binding.homeFavMangaRecyclerView,
binding.homeFavMangaProgressBar,
binding.homeFavMangaEmpty,
- binding.homeFavManga
+ binding.homeFavManga,
+ binding.homeFavMangaMore
)
initRecyclerView(
@@ -304,7 +322,8 @@ class HomeFragment : Fragment() {
binding.homePlannedMangaRecyclerView,
binding.homePlannedMangaProgressBar,
binding.homePlannedMangaEmpty,
- binding.homePlannedManga
+ binding.homePlannedManga,
+ binding.homePlannedMangaMore
)
binding.homePlannedMangaBrowseButton.setOnClickListener {
bottomBar.selectTabAt(2)
@@ -316,7 +335,8 @@ class HomeFragment : Fragment() {
binding.homeRecommendedRecyclerView,
binding.homeRecommendedProgressBar,
binding.homeRecommendedEmpty,
- binding.homeRecommended
+ binding.homeRecommended,
+ binding.homeRecommendedMore
)
binding.homeUserStatusContainer.visibility = View.VISIBLE
binding.homeUserStatusProgressBar.visibility = View.VISIBLE
diff --git a/app/src/main/java/ani/dantotsu/home/status/Stories.kt b/app/src/main/java/ani/dantotsu/home/status/Stories.kt
index cfdd7e1d..d9e0aec1 100644
--- a/app/src/main/java/ani/dantotsu/home/status/Stories.kt
+++ b/app/src/main/java/ani/dantotsu/home/status/Stories.kt
@@ -396,7 +396,7 @@ constructor(
}
binding.infoText.text = text
val bannerAnimations: Boolean = PrefManager.getVal(PrefName.BannerAnimations)
- blurImage(if (bannerAnimations)binding.contentImageViewKen else binding.contentImageView, story.media?.bannerImage ?: story.media?.coverImage?.extraLarge)
+ blurImage(if (bannerAnimations) binding.contentImageViewKen else binding.contentImageView, story.media?.bannerImage ?: story.media?.coverImage?.extraLarge)
binding.coverImage.loadImage(story.media?.coverImage?.extraLarge)
binding.coverImage.setOnClickListener{
ContextCompat.startActivity(context, Intent(context, MediaDetailsActivity::class.java)
@@ -406,7 +406,7 @@ constructor(
binding.coverImage,
ViewCompat.getTransitionName(binding.coverImage)!!
).toBundle()
- )
+ )
}
diff --git a/app/src/main/java/ani/dantotsu/media/MediaInfoFragment.kt b/app/src/main/java/ani/dantotsu/media/MediaInfoFragment.kt
index 9315863a..c9ecf6f9 100644
--- a/app/src/main/java/ani/dantotsu/media/MediaInfoFragment.kt
+++ b/app/src/main/java/ani/dantotsu/media/MediaInfoFragment.kt
@@ -573,23 +573,23 @@ class MediaInfoFragment : Fragment() {
parent.addView(root)
}
}
- val users: ArrayList = media.users ?: arrayListOf()
- if (Anilist.token != null && media.userStatus != null) {
- users.add(0,
- User(
- id = Anilist.userid!!,
- name = getString(R.string.your_progress),
- pfp = Anilist.avatar,
- banner = "",
- status = media.userStatus,
- score = media.userScore.toFloat(),
- progress = media.userProgress,
- totalEpisodes = media.anime?.totalEpisodes ?: media.manga?.totalChapters,
- nextAiringEpisode = media.anime?.nextAiringEpisode
- )
- )
- }
if (!media.users.isNullOrEmpty() && !offline) {
+ val users: ArrayList = media.users ?: arrayListOf()
+ if (Anilist.token != null && media.userStatus != null) {
+ users.add(0,
+ User(
+ id = Anilist.userid!!,
+ name = getString(R.string.your_progress),
+ pfp = Anilist.avatar,
+ banner = "",
+ status = media.userStatus,
+ score = media.userScore.toFloat(),
+ progress = media.userProgress,
+ totalEpisodes = media.anime?.totalEpisodes ?: media.manga?.totalChapters,
+ nextAiringEpisode = media.anime?.nextAiringEpisode
+ )
+ )
+ }
ItemTitleRecyclerBinding.inflate(
LayoutInflater.from(context),
parent,
diff --git a/app/src/main/java/ani/dantotsu/media/MediaListViewActivity.kt b/app/src/main/java/ani/dantotsu/media/MediaListViewActivity.kt
new file mode 100644
index 00000000..956582ae
--- /dev/null
+++ b/app/src/main/java/ani/dantotsu/media/MediaListViewActivity.kt
@@ -0,0 +1,42 @@
+package ani.dantotsu.media
+
+import android.os.Bundle
+import android.view.View
+import androidx.appcompat.app.AppCompatActivity
+import androidx.recyclerview.widget.GridLayoutManager
+import ani.dantotsu.databinding.ActivityMediaListViewBinding
+import ani.dantotsu.getThemeColor
+import ani.dantotsu.initActivity
+import ani.dantotsu.themes.ThemeManager
+import java.util.ArrayList
+
+class MediaListViewActivity: AppCompatActivity() {
+ private lateinit var binding: ActivityMediaListViewBinding
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ binding = ActivityMediaListViewBinding.inflate(layoutInflater)
+ ThemeManager(this).applyTheme()
+ initActivity(this)
+ setContentView(binding.root)
+
+ val primaryColor = getThemeColor(com.google.android.material.R.attr.colorSurface)
+ val primaryTextColor = getThemeColor(com.google.android.material.R.attr.colorPrimary)
+ val secondaryTextColor = getThemeColor(com.google.android.material.R.attr.colorOutline)
+
+ window.statusBarColor = primaryColor
+ window.navigationBarColor = primaryColor
+ binding.listAppBar.setBackgroundColor(primaryColor)
+ binding.listTitle.setTextColor(primaryTextColor)
+
+ val screenWidth = resources.displayMetrics.run { widthPixels / density }
+ binding.listTitle.text = intent.getStringExtra("title")
+ binding.mediaRecyclerView.adapter = MediaAdaptor(0, mediaList, this)
+ binding.mediaRecyclerView.layoutManager = GridLayoutManager(
+ this,
+ (screenWidth / 120f).toInt()
+ )
+ }
+ companion object{
+ var mediaList: ArrayList = arrayListOf()
+ }
+}
diff --git a/app/src/main/res/layout/activity_media_list_view.xml b/app/src/main/res/layout/activity_media_list_view.xml
new file mode 100644
index 00000000..1b007bff
--- /dev/null
+++ b/app/src/main/res/layout/activity_media_list_view.xml
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml
index a53ac379..c60981ed 100644
--- a/app/src/main/res/layout/fragment_home.xml
+++ b/app/src/main/res/layout/fragment_home.xml
@@ -314,8 +314,8 @@
android:id="@+id/homeUserStatusContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:visibility="gone"
- android:minHeight="100dp">
+ android:minHeight="100dp"
+ android:visibility="gone">
-
+ android:orientation="horizontal"
+ tools:ignore="UseCompoundDrawables">
+
+
+
+
+
-
-
+ android:orientation="horizontal"
+ tools:ignore="UseCompoundDrawables">
+
+
+
+
+
+
-
+ android:orientation="horizontal"
+ tools:ignore="UseCompoundDrawables">
+
+
+
+
+
+
-
+ android:orientation="horizontal"
+ tools:ignore="UseCompoundDrawables">
+
+
+
+
+
-
-
+ android:orientation="horizontal"
+ tools:ignore="UseCompoundDrawables">
+
+
+
+
+
-
+ android:orientation="horizontal"
+ tools:ignore="UseCompoundDrawables">
+
+
+
+
+
+
-
+ android:orientation="horizontal"
+ tools:ignore="UseCompoundDrawables">
+
+
+
+
+
+