-Reverted current item removal and update logic.
-Updated external play queue.
This commit is contained in:
parent
f9eb2a1ee5
commit
86c7b8522e
4 changed files with 19 additions and 18 deletions
|
|
@ -267,6 +267,7 @@ public abstract class BasePlayer implements Player.EventListener,
|
|||
final int serviceId = intent.getIntExtra(ExternalPlayQueue.SERVICE_ID, -1);
|
||||
final int index = intent.getIntExtra(ExternalPlayQueue.INDEX, 0);
|
||||
final Serializable serializable = intent.getSerializableExtra(ExternalPlayQueue.STREAMS);
|
||||
final String url = intent.getStringExtra(ExternalPlayQueue.URL);
|
||||
final String nextPageUrl = intent.getStringExtra(ExternalPlayQueue.NEXT_PAGE_URL);
|
||||
|
||||
List<InfoItem> info = new ArrayList<>();
|
||||
|
|
@ -276,7 +277,7 @@ public abstract class BasePlayer implements Player.EventListener,
|
|||
}
|
||||
}
|
||||
|
||||
final PlayQueue queue = new ExternalPlayQueue(serviceId, nextPageUrl, info, index);
|
||||
final PlayQueue queue = new ExternalPlayQueue(serviceId, url, nextPageUrl, info, index);
|
||||
initPlayback(this, queue);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -120,14 +120,11 @@ public class PlaybackManager {
|
|||
break;
|
||||
case REMOVE:
|
||||
final RemoveEvent removeEvent = (RemoveEvent) event;
|
||||
if (removeEvent.isCurrent()) tryBlock();
|
||||
remove(removeEvent.index(), true);
|
||||
break;
|
||||
if (!removeEvent.isCurrent()) {
|
||||
remove(removeEvent.index());
|
||||
break;
|
||||
}
|
||||
case UPDATE:
|
||||
final UpdateEvent updateEvent = (UpdateEvent) event;
|
||||
tryBlock();
|
||||
remove(updateEvent.index(), false);
|
||||
break;
|
||||
case SHUFFLE:
|
||||
tryBlock();
|
||||
resetSources();
|
||||
|
|
@ -275,7 +272,7 @@ public class PlaybackManager {
|
|||
}
|
||||
}
|
||||
|
||||
private void remove(final int queueIndex, final boolean cascade) {
|
||||
private void remove(final int queueIndex) {
|
||||
if (queueIndex < 0) return;
|
||||
|
||||
final int sourceIndex = sourceToQueueIndex.indexOf(queueIndex);
|
||||
|
|
@ -284,11 +281,9 @@ public class PlaybackManager {
|
|||
sourceToQueueIndex.remove(sourceIndex);
|
||||
sources.removeMediaSource(sourceIndex);
|
||||
|
||||
if (cascade) {
|
||||
// Will be slow on really large arrays, fast enough for typical use case
|
||||
for (int i = sourceIndex; i < sourceToQueueIndex.size(); i++) {
|
||||
sourceToQueueIndex.set(i, sourceToQueueIndex.get(i) - 1);
|
||||
}
|
||||
// Will be slow on really large arrays, fast enough for typical use case
|
||||
for (int i = sourceIndex; i < sourceToQueueIndex.size(); i++) {
|
||||
sourceToQueueIndex.set(i, sourceToQueueIndex.get(i) - 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue