Search in sources :

Example 1 with ErrorEvent

use of org.schabi.newpipe.playlist.events.ErrorEvent in project NewPipe by TeamNewPipe.

the class PlayQueue method error.

/**
 * Report an exception for the item at the current index in order and the course of action:
 * if the error can be skipped or the current item should be removed.
 *
 * This is done as a separate event as the underlying manager may have
 * different implementation regarding exceptions.
 */
public synchronized void error(final boolean skippable) {
    final int index = getIndex();
    if (skippable) {
        queueIndex.incrementAndGet();
    } else {
        removeInternal(index);
    }
    broadcast(new ErrorEvent(index, getIndex(), skippable));
}
Also used : ErrorEvent(org.schabi.newpipe.playlist.events.ErrorEvent)

Example 2 with ErrorEvent

use of org.schabi.newpipe.playlist.events.ErrorEvent in project NewPipe by TeamNewPipe.

the class PlayQueueAdapter method onPlayQueueChanged.

private void onPlayQueueChanged(final PlayQueueEvent message) {
    switch(message.type()) {
        case RECOVERY:
            // Do nothing.
            break;
        case SELECT:
            final SelectEvent selectEvent = (SelectEvent) message;
            notifyItemChanged(selectEvent.getOldIndex());
            notifyItemChanged(selectEvent.getNewIndex());
            break;
        case APPEND:
            final AppendEvent appendEvent = (AppendEvent) message;
            notifyItemRangeInserted(playQueue.size(), appendEvent.getAmount());
            break;
        case ERROR:
            final ErrorEvent errorEvent = (ErrorEvent) message;
            if (!errorEvent.isSkippable()) {
                notifyItemRemoved(errorEvent.getErrorIndex());
            }
            notifyItemChanged(errorEvent.getErrorIndex());
            notifyItemChanged(errorEvent.getQueueIndex());
            break;
        case REMOVE:
            final RemoveEvent removeEvent = (RemoveEvent) message;
            notifyItemRemoved(removeEvent.getRemoveIndex());
            notifyItemChanged(removeEvent.getQueueIndex());
            break;
        case MOVE:
            final MoveEvent moveEvent = (MoveEvent) message;
            notifyItemMoved(moveEvent.getFromIndex(), moveEvent.getToIndex());
            break;
        case INIT:
        case REORDER:
        default:
            notifyDataSetChanged();
            break;
    }
}
Also used : ErrorEvent(org.schabi.newpipe.playlist.events.ErrorEvent) RemoveEvent(org.schabi.newpipe.playlist.events.RemoveEvent) SelectEvent(org.schabi.newpipe.playlist.events.SelectEvent) MoveEvent(org.schabi.newpipe.playlist.events.MoveEvent) AppendEvent(org.schabi.newpipe.playlist.events.AppendEvent)

Aggregations

ErrorEvent (org.schabi.newpipe.playlist.events.ErrorEvent)2 AppendEvent (org.schabi.newpipe.playlist.events.AppendEvent)1 MoveEvent (org.schabi.newpipe.playlist.events.MoveEvent)1 RemoveEvent (org.schabi.newpipe.playlist.events.RemoveEvent)1 SelectEvent (org.schabi.newpipe.playlist.events.SelectEvent)1