mirror of
https://github.com/Shabinder/SpotiFlyer.git
synced 2024-11-24 18:04:33 +01:00
DownloadRecord YT Art Fix
This commit is contained in:
parent
ac423623e6
commit
cac306e9e8
@ -25,6 +25,7 @@ import androidx.recyclerview.widget.ListAdapter
|
|||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import com.shabinder.spotiflyer.database.DownloadRecord
|
import com.shabinder.spotiflyer.database.DownloadRecord
|
||||||
import com.shabinder.spotiflyer.databinding.DownloadRecordItemBinding
|
import com.shabinder.spotiflyer.databinding.DownloadRecordItemBinding
|
||||||
|
import com.shabinder.spotiflyer.models.spotify.Source
|
||||||
import com.shabinder.spotiflyer.ui.downloadrecord.DownloadRecordFragmentDirections
|
import com.shabinder.spotiflyer.ui.downloadrecord.DownloadRecordFragmentDirections
|
||||||
import com.shabinder.spotiflyer.utils.bindImage
|
import com.shabinder.spotiflyer.utils.bindImage
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
@ -34,6 +35,8 @@ import kotlinx.coroutines.launch
|
|||||||
class DownloadRecordAdapter: ListAdapter<DownloadRecord,DownloadRecordAdapter.ViewHolder>(DownloadRecordDiffCallback()) {
|
class DownloadRecordAdapter: ListAdapter<DownloadRecord,DownloadRecordAdapter.ViewHolder>(DownloadRecordDiffCallback()) {
|
||||||
|
|
||||||
private val adapterScope = CoroutineScope(Dispatchers.Default)
|
private val adapterScope = CoroutineScope(Dispatchers.Default)
|
||||||
|
//Remember To change when Submitting a Different List / Or Use New Submit List Fun
|
||||||
|
var source:Source = Source.Spotify
|
||||||
|
|
||||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
|
||||||
val layoutInflater = LayoutInflater.from(parent.context)
|
val layoutInflater = LayoutInflater.from(parent.context)
|
||||||
@ -44,7 +47,7 @@ class DownloadRecordAdapter: ListAdapter<DownloadRecord,DownloadRecordAdapter.Vi
|
|||||||
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
||||||
val item = getItem(position)
|
val item = getItem(position)
|
||||||
adapterScope.launch {
|
adapterScope.launch {
|
||||||
bindImage(holder.binding.coverUrl,item.coverUrl,null)
|
bindImage(holder.binding.coverUrl,item.coverUrl,source)
|
||||||
}
|
}
|
||||||
holder.binding.itemName.text = item.name
|
holder.binding.itemName.text = item.name
|
||||||
holder.binding.totalItems.text = "Tracks: ${item.totalFiles}"
|
holder.binding.totalItems.text = "Tracks: ${item.totalFiles}"
|
||||||
@ -58,6 +61,11 @@ class DownloadRecordAdapter: ListAdapter<DownloadRecord,DownloadRecordAdapter.Vi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
class ViewHolder(val binding: DownloadRecordItemBinding) : RecyclerView.ViewHolder(binding.root)
|
class ViewHolder(val binding: DownloadRecordItemBinding) : RecyclerView.ViewHolder(binding.root)
|
||||||
|
|
||||||
|
fun submitList(list: MutableList<DownloadRecord>?,source: Source) {
|
||||||
|
super.submitList(list)
|
||||||
|
this.source = source
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class DownloadRecordDiffCallback: DiffUtil.ItemCallback<DownloadRecord>(){
|
class DownloadRecordDiffCallback: DiffUtil.ItemCallback<DownloadRecord>(){
|
||||||
|
@ -27,6 +27,7 @@ import androidx.lifecycle.ViewModelProvider
|
|||||||
import com.google.android.material.tabs.TabLayout
|
import com.google.android.material.tabs.TabLayout
|
||||||
import com.shabinder.spotiflyer.R
|
import com.shabinder.spotiflyer.R
|
||||||
import com.shabinder.spotiflyer.databinding.DownloadRecordFragmentBinding
|
import com.shabinder.spotiflyer.databinding.DownloadRecordFragmentBinding
|
||||||
|
import com.shabinder.spotiflyer.models.spotify.Source
|
||||||
import com.shabinder.spotiflyer.recyclerView.DownloadRecordAdapter
|
import com.shabinder.spotiflyer.recyclerView.DownloadRecordAdapter
|
||||||
import dagger.hilt.android.AndroidEntryPoint
|
import dagger.hilt.android.AndroidEntryPoint
|
||||||
|
|
||||||
@ -48,36 +49,40 @@ class DownloadRecordFragment : Fragment() {
|
|||||||
|
|
||||||
downloadRecordViewModel.downloadRecordList.observe(viewLifecycleOwner, {
|
downloadRecordViewModel.downloadRecordList.observe(viewLifecycleOwner, {
|
||||||
if(it.isNotEmpty()){
|
if(it.isNotEmpty()){
|
||||||
downloadRecordViewModel.spotifyList = mutableListOf()
|
resetLists()
|
||||||
downloadRecordViewModel.ytList = mutableListOf()
|
|
||||||
for (downloadRecord in it) {
|
for (downloadRecord in it) {
|
||||||
if(downloadRecord.link.contains("spotify",true)) downloadRecordViewModel.spotifyList.add(downloadRecord)
|
when{
|
||||||
else downloadRecordViewModel.ytList.add(downloadRecord)
|
downloadRecord.link.contains("spotify",true) -> downloadRecordViewModel.spotifyList.add(downloadRecord)
|
||||||
|
downloadRecord.link.contains("gaana",true) -> downloadRecordViewModel.gaanaList.add(downloadRecord)
|
||||||
|
else -> downloadRecordViewModel.ytList.add(downloadRecord)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
when(binding.tabLayout.selectedTabPosition){
|
||||||
|
0-> adapter.submitList(downloadRecordViewModel.spotifyList,Source.Spotify)
|
||||||
|
1-> adapter.submitList(downloadRecordViewModel.ytList,Source.YouTube)
|
||||||
}
|
}
|
||||||
if(binding.tabLayout.selectedTabPosition == 0) adapter.submitList(downloadRecordViewModel.spotifyList)
|
|
||||||
else adapter.submitList(downloadRecordViewModel.ytList)
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
binding.tabLayout.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
|
binding.tabLayout.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
|
||||||
|
|
||||||
override fun onTabSelected(tab: TabLayout.Tab?) {
|
override fun onTabSelected(tab: TabLayout.Tab?) {
|
||||||
if(tab?.text == "Spotify"){
|
when(tab?.position){
|
||||||
adapter.submitList(downloadRecordViewModel.spotifyList)
|
0-> adapter.submitList(downloadRecordViewModel.spotifyList,Source.Spotify)
|
||||||
} else adapter.submitList(downloadRecordViewModel.ytList)
|
1-> adapter.submitList(downloadRecordViewModel.ytList,Source.YouTube)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onTabReselected(tab: TabLayout.Tab?) {
|
|
||||||
// Handle tab reselect
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onTabUnselected(tab: TabLayout.Tab?) {
|
|
||||||
// Handle tab unselected
|
|
||||||
}
|
}
|
||||||
|
override fun onTabReselected(tab: TabLayout.Tab?) {}
|
||||||
|
override fun onTabUnselected(tab: TabLayout.Tab?) {}
|
||||||
})
|
})
|
||||||
|
|
||||||
return binding.root
|
return binding.root
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun resetLists() {
|
||||||
|
downloadRecordViewModel.spotifyList = mutableListOf()
|
||||||
|
downloadRecordViewModel.ytList = mutableListOf()
|
||||||
|
downloadRecordViewModel.gaanaList = mutableListOf()
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -32,6 +32,7 @@ class DownloadRecordViewModel @ViewModelInject constructor(val databaseDAO: Data
|
|||||||
private var viewModelJob = Job()
|
private var viewModelJob = Job()
|
||||||
private val uiScope = CoroutineScope(Dispatchers.Default + viewModelJob)
|
private val uiScope = CoroutineScope(Dispatchers.Default + viewModelJob)
|
||||||
var spotifyList = mutableListOf<DownloadRecord>()
|
var spotifyList = mutableListOf<DownloadRecord>()
|
||||||
|
var gaanaList = mutableListOf<DownloadRecord>()
|
||||||
var ytList = mutableListOf<DownloadRecord>()
|
var ytList = mutableListOf<DownloadRecord>()
|
||||||
val downloadRecordList = MutableLiveData<MutableList<DownloadRecord>>().apply {
|
val downloadRecordList = MutableLiveData<MutableList<DownloadRecord>>().apply {
|
||||||
value = mutableListOf()
|
value = mutableListOf()
|
||||||
|
Loading…
Reference in New Issue
Block a user