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 com.shabinder.spotiflyer.database.DownloadRecord
|
||||
import com.shabinder.spotiflyer.databinding.DownloadRecordItemBinding
|
||||
import com.shabinder.spotiflyer.models.spotify.Source
|
||||
import com.shabinder.spotiflyer.ui.downloadrecord.DownloadRecordFragmentDirections
|
||||
import com.shabinder.spotiflyer.utils.bindImage
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
@ -34,6 +35,8 @@ import kotlinx.coroutines.launch
|
||||
class DownloadRecordAdapter: ListAdapter<DownloadRecord,DownloadRecordAdapter.ViewHolder>(DownloadRecordDiffCallback()) {
|
||||
|
||||
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 {
|
||||
val layoutInflater = LayoutInflater.from(parent.context)
|
||||
@ -44,7 +47,7 @@ class DownloadRecordAdapter: ListAdapter<DownloadRecord,DownloadRecordAdapter.Vi
|
||||
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
||||
val item = getItem(position)
|
||||
adapterScope.launch {
|
||||
bindImage(holder.binding.coverUrl,item.coverUrl,null)
|
||||
bindImage(holder.binding.coverUrl,item.coverUrl,source)
|
||||
}
|
||||
holder.binding.itemName.text = item.name
|
||||
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)
|
||||
|
||||
fun submitList(list: MutableList<DownloadRecord>?,source: Source) {
|
||||
super.submitList(list)
|
||||
this.source = source
|
||||
}
|
||||
}
|
||||
|
||||
class DownloadRecordDiffCallback: DiffUtil.ItemCallback<DownloadRecord>(){
|
||||
|
@ -27,6 +27,7 @@ import androidx.lifecycle.ViewModelProvider
|
||||
import com.google.android.material.tabs.TabLayout
|
||||
import com.shabinder.spotiflyer.R
|
||||
import com.shabinder.spotiflyer.databinding.DownloadRecordFragmentBinding
|
||||
import com.shabinder.spotiflyer.models.spotify.Source
|
||||
import com.shabinder.spotiflyer.recyclerView.DownloadRecordAdapter
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
|
||||
@ -48,36 +49,40 @@ class DownloadRecordFragment : Fragment() {
|
||||
|
||||
downloadRecordViewModel.downloadRecordList.observe(viewLifecycleOwner, {
|
||||
if(it.isNotEmpty()){
|
||||
downloadRecordViewModel.spotifyList = mutableListOf()
|
||||
downloadRecordViewModel.ytList = mutableListOf()
|
||||
resetLists()
|
||||
for (downloadRecord in it) {
|
||||
if(downloadRecord.link.contains("spotify",true)) downloadRecordViewModel.spotifyList.add(downloadRecord)
|
||||
else downloadRecordViewModel.ytList.add(downloadRecord)
|
||||
when{
|
||||
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 {
|
||||
|
||||
override fun onTabSelected(tab: TabLayout.Tab?) {
|
||||
if(tab?.text == "Spotify"){
|
||||
adapter.submitList(downloadRecordViewModel.spotifyList)
|
||||
} else adapter.submitList(downloadRecordViewModel.ytList)
|
||||
}
|
||||
|
||||
override fun onTabReselected(tab: TabLayout.Tab?) {
|
||||
// Handle tab reselect
|
||||
}
|
||||
|
||||
override fun onTabUnselected(tab: TabLayout.Tab?) {
|
||||
// Handle tab unselected
|
||||
when(tab?.position){
|
||||
0-> adapter.submitList(downloadRecordViewModel.spotifyList,Source.Spotify)
|
||||
1-> adapter.submitList(downloadRecordViewModel.ytList,Source.YouTube)
|
||||
}
|
||||
}
|
||||
override fun onTabReselected(tab: TabLayout.Tab?) {}
|
||||
override fun onTabUnselected(tab: TabLayout.Tab?) {}
|
||||
})
|
||||
|
||||
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 val uiScope = CoroutineScope(Dispatchers.Default + viewModelJob)
|
||||
var spotifyList = mutableListOf<DownloadRecord>()
|
||||
var gaanaList = mutableListOf<DownloadRecord>()
|
||||
var ytList = mutableListOf<DownloadRecord>()
|
||||
val downloadRecordList = MutableLiveData<MutableList<DownloadRecord>>().apply {
|
||||
value = mutableListOf()
|
||||
|
Loading…
Reference in New Issue
Block a user