feat(Media List view): switch between grid and list view

This commit is contained in:
aayush262 2024-05-02 14:34:49 +05:30
parent 3a88656e21
commit e9551be62d
6 changed files with 75 additions and 19 deletions

View file

@ -232,9 +232,9 @@ class HomeFragment : Fragment() {
LinearLayoutManager.HORIZONTAL,
false
)
more.setOnClickListener { _ ->
more.setOnClickListener { i ->
ContextCompat.startActivity(
requireActivity(), Intent(requireActivity(), MediaListViewActivity::class.java)
i.context, Intent(i.context, MediaListViewActivity::class.java)
.putExtra("title", string)
.putExtra("media", it),
null

View file

@ -221,7 +221,6 @@ class MangaPageAdapter : RecyclerView.Adapter<MangaPageAdapter.MangaPageViewHold
media
)
}
}
fun updateTopRated(adaptor: MediaAdaptor, media: MutableList<Media>) {
@ -254,7 +253,15 @@ class MangaPageAdapter : RecyclerView.Adapter<MangaPageAdapter.MangaPageViewHold
}
}
fun init(adaptor: MediaAdaptor, recyclerView: RecyclerView, progress: View, title: View , more: View , string: String, media : MutableList<Media>) {
fun init(
adaptor: MediaAdaptor,
recyclerView: RecyclerView,
progress: View,
title: View ,
more: View ,
string: String,
media : MutableList<Media>
) {
progress.visibility = View.GONE
recyclerView.adapter = adaptor
recyclerView.layoutManager =

View file

@ -1,6 +1,7 @@
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
@ -52,11 +53,36 @@ class MediaListViewActivity: AppCompatActivity() {
binding.listTitle.setTextColor(primaryTextColor)
val screenWidth = resources.displayMetrics.run { widthPixels / density }
val mediaList = intent.getSerialized("media") as? ArrayList<Media> ?: ArrayList()
val view = PrefManager.getCustomVal("mediaView", 0)
var mediaView: View = when (view) {
1 -> binding.mediaList
0 -> binding.mediaGrid
else -> binding.mediaGrid
}
mediaView.alpha = 1f
fun changeView(mode: Int, current: View) {
mediaView.alpha = 0.33f
mediaView = current
current.alpha = 1f
PrefManager.setCustomVal("mediaView", mode)
binding.mediaRecyclerView.adapter = MediaAdaptor(mode, mediaList, this)
binding.mediaRecyclerView.layoutManager = GridLayoutManager(
this,
if (mode == 1) 1 else (screenWidth / 120f).toInt()
)
}
binding.mediaList.setOnClickListener {
changeView(1, binding.mediaList)
}
binding.mediaGrid.setOnClickListener {
changeView(0, binding.mediaGrid)
}
binding.listTitle.text = intent.getStringExtra("title")
binding.mediaRecyclerView.adapter = MediaAdaptor(0, mediaList, this)
binding.mediaRecyclerView.adapter = MediaAdaptor(view, mediaList, this)
binding.mediaRecyclerView.layoutManager = GridLayoutManager(
this,
(screenWidth / 120f).toInt()
if (view == 1) 1 else (screenWidth / 120f).toInt()
)
}
}