29 lines
961 B
Java
29 lines
961 B
Java
package org.schabi.newpipe.database.playlist;
|
|
|
|
import org.schabi.newpipe.database.LocalItem;
|
|
import org.schabi.newpipe.database.playlist.model.PlaylistRemoteEntity;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.Collections;
|
|
import java.util.Comparator;
|
|
import java.util.List;
|
|
|
|
public interface PlaylistLocalItem extends LocalItem {
|
|
String getOrderingName();
|
|
|
|
static List<PlaylistLocalItem> merge(
|
|
final List<PlaylistMetadataEntry> localPlaylists,
|
|
final List<PlaylistRemoteEntity> remotePlaylists) {
|
|
// todo: merge algorithm
|
|
final List<PlaylistLocalItem> items = new ArrayList<>(
|
|
localPlaylists.size() + remotePlaylists.size());
|
|
items.addAll(localPlaylists);
|
|
items.addAll(remotePlaylists);
|
|
|
|
Collections.sort(items, Comparator.comparing(PlaylistLocalItem::getOrderingName,
|
|
Comparator.nullsLast(String.CASE_INSENSITIVE_ORDER)));
|
|
|
|
return items;
|
|
}
|
|
}
|