mirror of
https://github.com/antebudimir/tempus.git
synced 2026-01-01 09:53:33 +00:00
In ViewModels passed the LifecycleOwner instead of the Activity
This commit is contained in:
parent
d2ad0188b7
commit
134d4e33e5
7 changed files with 53 additions and 45 deletions
|
|
@ -28,7 +28,6 @@ import com.cappielloantonio.play.ui.activity.MainActivity;
|
|||
import com.cappielloantonio.play.viewmodel.PlaylistCatalogueViewModel;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class PlaylistCatalogueFragment extends Fragment {
|
||||
|
|
@ -111,32 +110,35 @@ public class PlaylistCatalogueFragment extends Fragment {
|
|||
|
||||
playlistCatalogueAdapter = new PlaylistCatalogueAdapter(activity, requireContext(), playlistCatalogueViewModel.getType().equals(Playlist.DOWNLOADED));
|
||||
bind.playlistCatalogueRecyclerView.setAdapter(playlistCatalogueAdapter);
|
||||
playlistCatalogueViewModel.getPlaylistList(requireActivity()).observe(requireActivity(), playlists -> {
|
||||
playlistCatalogueViewModel.getPinnedPlaylistList(requireActivity()).observe(requireActivity(), pinnedPlaylists -> {
|
||||
List<Playlist> sortedList = new ArrayList<>();
|
||||
List<Playlist> unsortedList = new ArrayList<>(playlists);
|
||||
|
||||
List<Playlist> pinnedPlaylistsVerified = new ArrayList<>();
|
||||
List<Playlist> pinnedPlaylistsNotFound = new ArrayList<>();
|
||||
if(getActivity() != null) {
|
||||
playlistCatalogueViewModel.getPlaylistList(requireActivity()).observe(requireActivity(), playlists ->
|
||||
playlistCatalogueViewModel.getPinnedPlaylistList(requireActivity()).observe(requireActivity(),
|
||||
pinnedPlaylists -> {
|
||||
List<Playlist> sortedList = new ArrayList<>();
|
||||
List<Playlist> unsortedList = new ArrayList<>(playlists);
|
||||
|
||||
if(unsortedList.size() > 0) {
|
||||
for(Playlist pinnedPlaylist: pinnedPlaylists) {
|
||||
if(playlists.contains(pinnedPlaylist)) {
|
||||
pinnedPlaylistsVerified.add(pinnedPlaylist);
|
||||
} else {
|
||||
pinnedPlaylistsNotFound.add(pinnedPlaylist);
|
||||
}
|
||||
}
|
||||
List<Playlist> pinnedPlaylistsVerified = new ArrayList<>();
|
||||
List<Playlist> pinnedPlaylistsNotFound = new ArrayList<>();
|
||||
|
||||
unsortedList.removeAll(pinnedPlaylistsVerified);
|
||||
sortedList.addAll(pinnedPlaylistsVerified);
|
||||
sortedList.addAll(unsortedList);
|
||||
}
|
||||
if (unsortedList.size() > 0) {
|
||||
for (Playlist pinnedPlaylist : pinnedPlaylists) {
|
||||
if (playlists.contains(pinnedPlaylist)) {
|
||||
pinnedPlaylistsVerified.add(pinnedPlaylist);
|
||||
} else {
|
||||
pinnedPlaylistsNotFound.add(pinnedPlaylist);
|
||||
}
|
||||
}
|
||||
|
||||
playlistCatalogueAdapter.setItems(sortedList);
|
||||
playlistCatalogueViewModel.unpinPlaylist(pinnedPlaylistsNotFound);
|
||||
});
|
||||
});
|
||||
unsortedList.removeAll(pinnedPlaylistsVerified);
|
||||
sortedList.addAll(pinnedPlaylistsVerified);
|
||||
sortedList.addAll(unsortedList);
|
||||
}
|
||||
|
||||
playlistCatalogueAdapter.setItems(sortedList);
|
||||
playlistCatalogueViewModel.unpinPlaylist(pinnedPlaylistsNotFound);
|
||||
}));
|
||||
}
|
||||
|
||||
bind.playlistCatalogueRecyclerView.setOnTouchListener((v, event) -> {
|
||||
hideKeyboard(v);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue