Files
PinePods-nix/PinePods-0.8.2/mobile/lib/state/queue_event_state.dart
2026-03-03 10:57:43 -05:00

59 lines
1.3 KiB
Dart

// Copyright 2020 Ben Hills and the project contributors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:pinepods_mobile/entities/episode.dart';
abstract class QueueEvent {
Episode? episode;
int? position;
QueueEvent({
this.episode,
this.position,
});
}
class QueueAddEvent extends QueueEvent {
QueueAddEvent({required Episode super.episode, super.position});
}
class QueueRemoveEvent extends QueueEvent {
QueueRemoveEvent({required Episode episode}) : super(episode: episode);
}
class QueueMoveEvent extends QueueEvent {
final int oldIndex;
final int newIndex;
QueueMoveEvent({
required Episode episode,
required this.oldIndex,
required this.newIndex,
}) : super(episode: episode);
}
class QueueClearEvent extends QueueEvent {}
abstract class QueueState {
final Episode? playing;
final List<Episode> queue;
QueueState({
required this.playing,
required this.queue,
});
}
class QueueListState extends QueueState {
QueueListState({
required super.playing,
required super.queue,
});
}
class QueueEmptyState extends QueueState {
QueueEmptyState()
: super(playing: Episode(guid: '', pguid: '', podcast: '', title: '', description: ''), queue: <Episode>[]);
}