Skip to content
Snippets Groups Projects
Commit 9be077a7 authored by Nicolas Pomepuy's avatar Nicolas Pomepuy
Browse files

Use the new Favorite API

parent e4e5acae
No related branches found
No related tags found
1 merge request!1625Update the libs
......@@ -150,12 +150,7 @@ open class AudioBrowserAdapter @JvmOverloads constructor(
holder.binding.setVariable(BR.isSD, item.uri.isSD())
holder.binding.setVariable(BR.isPresent, item.isPresent)
} else holder.binding.setVariable(BR.isPresent, true)
when (item) {
is MediaWrapper -> holder.binding.setVariable(BR.isFavorite, item.isFavorite)
is Album -> holder.binding.setVariable(BR.isFavorite, item.isFavorite)
is Artist -> holder.binding.setVariable(BR.isFavorite, item.isFavorite)
is Genre -> holder.binding.setVariable(BR.isFavorite, item.isFavorite)
}
item?.let { holder.binding.setVariable(BR.isFavorite, it.isFavorite) }
holder.binding.setVariable(BR.inSelection,multiSelectHelper.inActionMode)
holder.binding.invalidateAll()
holder.binding.executePendingBindings()
......@@ -182,6 +177,7 @@ open class AudioBrowserAdapter @JvmOverloads constructor(
UPDATE_REORDER -> {
holder.binding.invalidateAll()
}
UPDATE_FAVORITE_STATE -> getItem(position)?.let { holder.binding.setVariable(BR.isFavorite, it.isFavorite) }
}
}
}
......@@ -371,6 +367,7 @@ open class AudioBrowserAdapter @JvmOverloads constructor(
private const val TAG = "VLC/AudioBrowserAdapter"
private const val UPDATE_PAYLOAD = 1
private const val UPDATE_FAVORITE_STATE = 2
/**
* Awful hack to workaround the [PagedListAdapter] not keeping track of notifyItemMoved operations
*/
......@@ -381,7 +378,7 @@ open class AudioBrowserAdapter @JvmOverloads constructor(
oldMedia: MediaLibraryItem, newMedia: MediaLibraryItem): Boolean {
return if (preventNextAnim) {
true
} else if (oldMedia is MediaWrapper && newMedia is MediaWrapper && (oldMedia.isPresent != newMedia.isPresent || oldMedia.isFavorite != newMedia.isFavorite)) {
} else if (oldMedia is MediaWrapper && newMedia is MediaWrapper && oldMedia.isPresent != newMedia.isPresent) {
false
} else oldMedia === newMedia || oldMedia.title == newMedia.title && oldMedia.itemType == newMedia.itemType && oldMedia.tracksCount == newMedia.tracksCount && oldMedia.equals(newMedia)
}
......@@ -391,8 +388,11 @@ open class AudioBrowserAdapter @JvmOverloads constructor(
return false
}
override fun getChangePayload(oldItem: MediaLibraryItem, newItem: MediaLibraryItem): Any? {
override fun getChangePayload(oldItem: MediaLibraryItem, newItem: MediaLibraryItem): Any {
preventNextAnim = false
when {
oldItem.isFavorite != newItem.isFavorite -> return UPDATE_FAVORITE_STATE
}
return UPDATE_PAYLOAD
}
}
......
......@@ -424,12 +424,7 @@ abstract class BaseAudioBrowser<T : MedialibraryViewModel> : MediaBrowserFragmen
CTX_GO_TO_FOLDER -> showParentFolder(media as MediaWrapper)
CTX_ADD_SHORTCUT -> lifecycleScope.launch {requireActivity().createShortcut(media)}
CTX_FAV_ADD, CTX_FAV_REMOVE -> lifecycleScope.launch {
when (media) {
is Album -> media.isFavorite = option == CTX_FAV_ADD
is Artist -> media.isFavorite = option == CTX_FAV_ADD
is Genre -> media.isFavorite = option == CTX_FAV_ADD
is MediaWrapper -> media.isFavorite = option == CTX_FAV_ADD
}
withContext(Dispatchers.IO) { media.isFavorite = option == CTX_FAV_ADD }
}
}
}
......
......@@ -90,10 +90,7 @@ class PlaylistViewModel(context: Context, private val initialPlaylist: MediaLibr
}
suspend fun toggleFavorite() = withContext(Dispatchers.IO){
when (playlist) {
is Album -> (playlist as Album).setFavorite(!(playlist as Album).isFavorite)
else ->{}
}
playlist?.let { it.setFavorite(!it.isFavorite) }
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment