2018-02-06 06:32:23 +01:00
|
|
|
package org.schabi.newpipe.database.playlist;
|
|
|
|
|
|
|
|
import org.schabi.newpipe.database.LocalItem;
|
2020-07-04 11:31:24 +02:00
|
|
|
import org.schabi.newpipe.database.playlist.model.PlaylistRemoteEntity;
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.Collections;
|
2020-06-25 13:37:13 +02:00
|
|
|
import java.util.Comparator;
|
2020-07-04 11:31:24 +02:00
|
|
|
import java.util.List;
|
2018-02-06 06:32:23 +01:00
|
|
|
|
|
|
|
public interface PlaylistLocalItem extends LocalItem {
|
|
|
|
String getOrderingName();
|
2020-07-04 11:31:24 +02:00
|
|
|
|
|
|
|
static List<PlaylistLocalItem> merge(
|
|
|
|
final List<PlaylistMetadataEntry> localPlaylists,
|
|
|
|
final List<PlaylistRemoteEntity> remotePlaylists) {
|
|
|
|
final List<PlaylistLocalItem> items = new ArrayList<>(
|
|
|
|
localPlaylists.size() + remotePlaylists.size());
|
|
|
|
items.addAll(localPlaylists);
|
|
|
|
items.addAll(remotePlaylists);
|
|
|
|
|
2020-06-25 13:37:13 +02:00
|
|
|
Collections.sort(items, Comparator.comparing(PlaylistLocalItem::getOrderingName,
|
|
|
|
Comparator.nullsLast(String.CASE_INSENSITIVE_ORDER)));
|
2020-07-04 11:31:24 +02:00
|
|
|
|
|
|
|
return items;
|
|
|
|
}
|
2018-02-06 06:32:23 +01:00
|
|
|
}
|