diff --git a/app/src/main/java/ani/dantotsu/Functions.kt b/app/src/main/java/ani/dantotsu/Functions.kt index ef9fc8cd..d985a221 100644 --- a/app/src/main/java/ani/dantotsu/Functions.kt +++ b/app/src/main/java/ani/dantotsu/Functions.kt @@ -1358,10 +1358,10 @@ fun blurImage(imageView: ImageView, banner: String?) { if (banner != null) { val radius = PrefManager.getVal(PrefName.BlurRadius).toInt() val sampling = PrefManager.getVal(PrefName.BlurSampling).toInt() - if (PrefManager.getVal(PrefName.BlurBanners)) { - val context = imageView.context - if (!(context as Activity).isDestroyed) { - val url = PrefManager.getVal(PrefName.ImageUrl).ifEmpty { banner } + val context = imageView.context + if (!(context as Activity).isDestroyed) { + val url = PrefManager.getVal(PrefName.ImageUrl).ifEmpty { banner } + if (PrefManager.getVal(PrefName.BlurBanners)) { Glide.with(context as Context) .load( if (banner.startsWith("http")) GlideUrl(url) else if (banner.startsWith("content://")) Uri.parse( @@ -1371,9 +1371,17 @@ fun blurImage(imageView: ImageView, banner: String?) { .diskCacheStrategy(DiskCacheStrategy.RESOURCE).override(400) .apply(RequestOptions.bitmapTransform(BlurTransformation(radius, sampling))) .into(imageView) + + } else { + Glide.with(context as Context) + .load( + if (banner.startsWith("http")) GlideUrl(url) else if (banner.startsWith("content://")) Uri.parse( + url + ) else File(url) + ) + .diskCacheStrategy(DiskCacheStrategy.RESOURCE).override(400) + .into(imageView) } - } else { - imageView.loadImage(banner) } } else { imageView.setImageResource(R.drawable.linear_gradient_bg) diff --git a/app/src/main/java/ani/dantotsu/home/AnimeFragment.kt b/app/src/main/java/ani/dantotsu/home/AnimeFragment.kt index 0be7a3e2..a6c19cd7 100644 --- a/app/src/main/java/ani/dantotsu/home/AnimeFragment.kt +++ b/app/src/main/java/ani/dantotsu/home/AnimeFragment.kt @@ -204,22 +204,22 @@ class AnimeFragment : Fragment() { if (i) { model.getUpdated().observe(viewLifecycleOwner) { if (it != null) { - animePageAdapter.updateRecent(MediaAdaptor(0, it, requireActivity())) + animePageAdapter.updateRecent(MediaAdaptor(0, it, requireActivity()), it) } } model.getMovies().observe(viewLifecycleOwner) { if (it != null) { - animePageAdapter.updateMovies(MediaAdaptor(0, it, requireActivity())) + animePageAdapter.updateMovies(MediaAdaptor(0, it, requireActivity()), it) } } model.getTopRated().observe(viewLifecycleOwner) { if (it != null) { - animePageAdapter.updateTopRated(MediaAdaptor(0, it, requireActivity())) + animePageAdapter.updateTopRated(MediaAdaptor(0, it, requireActivity()), it) } } model.getMostFav().observe(viewLifecycleOwner) { if (it != null) { - animePageAdapter.updateMostFav(MediaAdaptor(0, it, requireActivity())) + animePageAdapter.updateMostFav(MediaAdaptor(0, it, requireActivity()), it) } } if (animePageAdapter.trendingViewPager != null) { diff --git a/app/src/main/java/ani/dantotsu/home/AnimePageAdapter.kt b/app/src/main/java/ani/dantotsu/home/AnimePageAdapter.kt index 8fa9e880..605d1cab 100644 --- a/app/src/main/java/ani/dantotsu/home/AnimePageAdapter.kt +++ b/app/src/main/java/ani/dantotsu/home/AnimePageAdapter.kt @@ -13,6 +13,7 @@ import androidx.core.content.ContextCompat import androidx.core.view.isVisible import androidx.core.view.updateLayoutParams import androidx.core.view.updatePadding +import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView @@ -23,11 +24,14 @@ import ani.dantotsu.connections.anilist.Anilist import ani.dantotsu.currContext import ani.dantotsu.databinding.ItemAnimePageBinding import ani.dantotsu.databinding.LayoutTrendingBinding +import ani.dantotsu.getAppString import ani.dantotsu.getThemeColor import ani.dantotsu.loadImage import ani.dantotsu.media.CalendarActivity import ani.dantotsu.media.GenreActivity +import ani.dantotsu.media.Media import ani.dantotsu.media.MediaAdaptor +import ani.dantotsu.media.MediaListViewActivity import ani.dantotsu.media.SearchActivity import ani.dantotsu.profile.ProfileActivity import ani.dantotsu.px @@ -193,13 +197,16 @@ class AnimePageAdapter : RecyclerView.Adapter) { binding.apply { init( adaptor, animeUpdatedRecyclerView, animeUpdatedProgressBar, - animeRecently + animeRecently, + animeRecentlyMore, + getAppString(R.string.updated), + media ) animePopular.visibility = View.VISIBLE animePopular.startAnimation(setSlideUp()) @@ -210,40 +217,49 @@ class AnimePageAdapter : RecyclerView.Adapter) { binding.apply { init( adaptor, animeMoviesRecyclerView, animeMoviesProgressBar, - animeMovies + animeMovies, + animeMoviesMore, + getAppString(R.string.trending_movies), + media ) } } - fun updateTopRated(adaptor: MediaAdaptor) { + fun updateTopRated(adaptor: MediaAdaptor, media: MutableList) { binding.apply { init( adaptor, animeTopRatedRecyclerView, animeTopRatedProgressBar, - animeTopRated + animeTopRated, + animeTopRatedMore, + getAppString(R.string.top_rated), + media ) } } - fun updateMostFav(adaptor: MediaAdaptor) { + fun updateMostFav(adaptor: MediaAdaptor, media: MutableList) { binding.apply { init( adaptor, animeMostFavRecyclerView, animeMostFavProgressBar, - animeMostFav + animeMostFav, + animeMostFavMore, + getAppString(R.string.most_favourite), + media ) } } - fun init(adaptor: MediaAdaptor, recyclerView: RecyclerView, progress: View, title: View) { + fun init(adaptor: MediaAdaptor, recyclerView: RecyclerView, progress: View, title: View , more: View , string: String, media : MutableList) { progress.visibility = View.GONE recyclerView.adapter = adaptor recyclerView.layoutManager = @@ -252,9 +268,19 @@ class AnimePageAdapter : RecyclerView.Adapter), + null + ) + } recyclerView.visibility = View.VISIBLE title.visibility = View.VISIBLE + more.visibility = View.VISIBLE title.startAnimation(setSlideUp()) + more.startAnimation(setSlideUp()) recyclerView.layoutAnimation = LayoutAnimationController(setSlideIn(), 0.25f) } diff --git a/app/src/main/java/ani/dantotsu/home/HomeFragment.kt b/app/src/main/java/ani/dantotsu/home/HomeFragment.kt index a2f7c4f1..ab46b98d 100644 --- a/app/src/main/java/ani/dantotsu/home/HomeFragment.kt +++ b/app/src/main/java/ani/dantotsu/home/HomeFragment.kt @@ -233,10 +233,10 @@ class HomeFragment : Fragment() { false ) more.setOnClickListener { _ -> - MediaListViewActivity.mediaList = it ContextCompat.startActivity( requireActivity(), Intent(requireActivity(), MediaListViewActivity::class.java) - .putExtra("title", string), + .putExtra("title", string) + .putExtra("media", it), null ) } @@ -249,6 +249,7 @@ class HomeFragment : Fragment() { } more.visibility = View.VISIBLE title.visibility = View.VISIBLE + more.startAnimation(setSlideUp()) title.startAnimation(setSlideUp()) progress.visibility = View.GONE } diff --git a/app/src/main/java/ani/dantotsu/home/MangaFragment.kt b/app/src/main/java/ani/dantotsu/home/MangaFragment.kt index e2801817..f74178ee 100644 --- a/app/src/main/java/ani/dantotsu/home/MangaFragment.kt +++ b/app/src/main/java/ani/dantotsu/home/MangaFragment.kt @@ -162,12 +162,12 @@ class MangaFragment : Fragment() { if (i == true) { model.getPopularNovel().observe(viewLifecycleOwner) { if (it != null) { - mangaPageAdapter.updateNovel(MediaAdaptor(0, it, requireActivity())) + mangaPageAdapter.updateNovel(MediaAdaptor(0, it, requireActivity()), it) } } model.getPopularManga().observe(viewLifecycleOwner) { if (it != null) { - mangaPageAdapter.updateTrendingManga(MediaAdaptor(0, it, requireActivity())) + mangaPageAdapter.updateTrendingManga(MediaAdaptor(0, it, requireActivity()), it) } } model.getPopularManhwa().observe(viewLifecycleOwner) { @@ -177,18 +177,18 @@ class MangaFragment : Fragment() { 0, it, requireActivity() - ) + ), it ) } } model.getTopRated().observe(viewLifecycleOwner) { if (it != null) { - mangaPageAdapter.updateTopRated(MediaAdaptor(0, it, requireActivity())) + mangaPageAdapter.updateTopRated(MediaAdaptor(0, it, requireActivity()), it) } } model.getMostFav().observe(viewLifecycleOwner) { if (it != null) { - mangaPageAdapter.updateMostFav(MediaAdaptor(0, it, requireActivity())) + mangaPageAdapter.updateMostFav(MediaAdaptor(0, it, requireActivity()), it) } } if (mangaPageAdapter.trendingViewPager != null) { diff --git a/app/src/main/java/ani/dantotsu/home/MangaPageAdapter.kt b/app/src/main/java/ani/dantotsu/home/MangaPageAdapter.kt index 7844ac30..0ba08f7a 100644 --- a/app/src/main/java/ani/dantotsu/home/MangaPageAdapter.kt +++ b/app/src/main/java/ani/dantotsu/home/MangaPageAdapter.kt @@ -22,10 +22,13 @@ import ani.dantotsu.R import ani.dantotsu.connections.anilist.Anilist import ani.dantotsu.databinding.ItemMangaPageBinding import ani.dantotsu.databinding.LayoutTrendingBinding +import ani.dantotsu.getAppString import ani.dantotsu.getThemeColor import ani.dantotsu.loadImage import ani.dantotsu.media.GenreActivity +import ani.dantotsu.media.Media import ani.dantotsu.media.MediaAdaptor +import ani.dantotsu.media.MediaListViewActivity import ani.dantotsu.media.SearchActivity import ani.dantotsu.profile.ProfileActivity import ani.dantotsu.px @@ -178,65 +181,80 @@ class MangaPageAdapter : RecyclerView.Adapter) { binding.apply { init( adaptor, mangaTrendingMangaRecyclerView, mangaTrendingMangaProgressBar, - mangaTrendingManga + mangaTrendingManga, + mangaTrendingMangaMore, + getAppString(R.string.trending_manga), + media ) } } - fun updateTrendingManhwa(adaptor: MediaAdaptor) { + fun updateTrendingManhwa(adaptor: MediaAdaptor, media: MutableList) { binding.apply { init( adaptor, mangaTrendingManhwaRecyclerView, mangaTrendingManhwaProgressBar, - mangaTrendingManhwa + mangaTrendingManhwa, + mangaTrendingManhwaMore, + getAppString(R.string.trending_manhwa), + media ) } } - fun updateNovel(adaptor: MediaAdaptor) { + fun updateNovel(adaptor: MediaAdaptor, media: MutableList) { binding.apply { init( adaptor, mangaNovelRecyclerView, mangaNovelProgressBar, - mangaNovel + mangaNovel, + mangaNovelMore, + getAppString(R.string.trending_novel), + media ) } } - fun updateTopRated(adaptor: MediaAdaptor) { + fun updateTopRated(adaptor: MediaAdaptor, media: MutableList) { binding.apply { init( adaptor, mangaTopRatedRecyclerView, mangaTopRatedProgressBar, - mangaTopRated + mangaTopRated, + mangaTopRatedMore, + getAppString(R.string.top_rated), + media ) } } - fun updateMostFav(adaptor: MediaAdaptor) { + fun updateMostFav(adaptor: MediaAdaptor, media: MutableList) { binding.apply { init( adaptor, mangaMostFavRecyclerView, mangaMostFavProgressBar, - mangaMostFav + mangaMostFav, + mangaMostFavMore, + getAppString(R.string.most_favourite), + media ) mangaPopular.visibility = View.VISIBLE mangaPopular.startAnimation(setSlideUp()) } } - fun init(adaptor: MediaAdaptor, recyclerView: RecyclerView, progress: View, title: View) { + fun init(adaptor: MediaAdaptor, recyclerView: RecyclerView, progress: View, title: View , more: View , string: String, media : MutableList) { progress.visibility = View.GONE recyclerView.adapter = adaptor recyclerView.layoutManager = @@ -245,9 +263,19 @@ class MangaPageAdapter : RecyclerView.Adapter), + null + ) + } recyclerView.visibility = View.VISIBLE title.visibility = View.VISIBLE + more.visibility = View.VISIBLE title.startAnimation(setSlideUp()) + more.startAnimation(setSlideUp()) recyclerView.layoutAnimation = LayoutAnimationController(setSlideIn(), 0.25f) } diff --git a/app/src/main/java/ani/dantotsu/media/MediaListViewActivity.kt b/app/src/main/java/ani/dantotsu/media/MediaListViewActivity.kt index 2cbf7396..89c0371d 100644 --- a/app/src/main/java/ani/dantotsu/media/MediaListViewActivity.kt +++ b/app/src/main/java/ani/dantotsu/media/MediaListViewActivity.kt @@ -1,7 +1,6 @@ package ani.dantotsu.media import android.os.Bundle -import android.view.View import android.view.ViewGroup import android.view.Window import androidx.appcompat.app.AppCompatActivity @@ -13,7 +12,7 @@ import ani.dantotsu.databinding.ActivityMediaListViewBinding import ani.dantotsu.getThemeColor import ani.dantotsu.hideSystemBarsExtendView import ani.dantotsu.initActivity -import ani.dantotsu.navBarHeight +import ani.dantotsu.others.getSerialized import ani.dantotsu.settings.saving.PrefManager import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.statusBarHeight @@ -50,15 +49,14 @@ class MediaListViewActivity: AppCompatActivity() { topMargin = statusBarHeight } } - val screenWidth = resources.displayMetrics.run { widthPixels / density } + val mediaList = intent.getSerialized("media") as? ArrayList ?: ArrayList() binding.listTitle.text = intent.getStringExtra("title") + binding.mediaRecyclerView.adapter = MediaAdaptor(0, mediaList, this) + val screenWidth = resources.displayMetrics.run { widthPixels / density } binding.mediaRecyclerView.layoutManager = GridLayoutManager( this, (screenWidth / 120f).toInt() ) } - companion object{ - var mediaList: ArrayList = arrayListOf() - } } diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index 3ad966f8..f77f7f21 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -370,7 +370,6 @@ android:fontFamily="@font/poppins_bold" android:padding="8dp" android:src="@drawable/arrow_mark" - android:text="@string/continue_watching" android:textSize="16sp" tools:ignore="ContentDescription" /> @@ -466,7 +465,6 @@ android:fontFamily="@font/poppins_bold" android:padding="8dp" android:src="@drawable/arrow_mark" - android:text="@string/continue_watching" android:textSize="16sp" tools:ignore="ContentDescription" /> @@ -560,7 +558,6 @@ android:fontFamily="@font/poppins_bold" android:padding="8dp" android:src="@drawable/arrow_mark" - android:text="@string/continue_watching" android:textSize="16sp" tools:ignore="ContentDescription" /> @@ -658,7 +655,6 @@ android:fontFamily="@font/poppins_bold" android:padding="8dp" android:src="@drawable/arrow_mark" - android:text="@string/continue_watching" android:textSize="16sp" tools:ignore="ContentDescription" /> @@ -754,7 +750,6 @@ android:fontFamily="@font/poppins_bold" android:padding="8dp" android:src="@drawable/arrow_mark" - android:text="@string/continue_watching" android:textSize="16sp" tools:ignore="ContentDescription" /> @@ -847,7 +842,7 @@ android:fontFamily="@font/poppins_bold" android:padding="8dp" android:src="@drawable/arrow_mark" - android:text="@string/continue_watching" + android:textSize="16sp" tools:ignore="ContentDescription" /> @@ -944,7 +939,6 @@ android:fontFamily="@font/poppins_bold" android:padding="8dp" android:src="@drawable/arrow_mark" - android:text="@string/continue_watching" android:textSize="16sp" tools:ignore="ContentDescription" /> diff --git a/app/src/main/res/layout/item_anime_page.xml b/app/src/main/res/layout/item_anime_page.xml index 13cc155c..3bbe39d5 100644 --- a/app/src/main/res/layout/item_anime_page.xml +++ b/app/src/main/res/layout/item_anime_page.xml @@ -184,17 +184,38 @@ android:layout_height="wrap_content" android:orientation="vertical"> - + 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"> + + + + - + android:orientation="horizontal" + tools:ignore="UseCompoundDrawables"> + + + + - + android:orientation="horizontal" + tools:ignore="UseCompoundDrawables"> + + + + +