As a developer, I want to move away from reflection for getting shuffled indices from DefaultShuffleOrder, so that I can avoid the overhead and risks of using reflection.
Acceptance Criteria:
- The app should implement its own shuffle order class that extends the [ShuffleOrder] interface and provides access to the shuffled indices through a property.
- The app should use the custom shuffle order class instead of the [DefaultShuffleOrder] class when creating or updating the [MediaSource] or the [MediaItem].
- The app should be able to save and restore the shuffled indices using the property provided by the custom shuffle order class.
- The app should handle any errors or exceptions that may occur while using the custom shuffle order class.
Additional Notes:
- The app should follow the best practices and standards for implementing and using the [ShuffleOrder] interface, such as [ShuffleOrderUtil] or [ConcatenatingMediaSource].
- The app should provide a user-friendly and intuitive interface for enabling or disabling the shuffle mode, such as a button or a menu item.
(1) ShuffleOrder.DefaultShuffleOrder | Android Developers. https://developer.android.com/reference/androidx/media3/exoplayer/source/ShuffleOrder.DefaultShuffleOrder.
(2) ShuffleOrder.DefaultShuffleOrder | Android Developers. https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/ShuffleOrder.DefaultShuffleOrder.
(3) Media3 | Jetpack | Android Developers. https://developer.android.com/jetpack/androidx/releases/media3.
As a developer, I want to move away from reflection for getting shuffled indices from DefaultShuffleOrder, so that I can avoid the overhead and risks of using reflection.
Acceptance Criteria:
Additional Notes:
(1) ShuffleOrder.DefaultShuffleOrder | Android Developers. https://developer.android.com/reference/androidx/media3/exoplayer/source/ShuffleOrder.DefaultShuffleOrder.
(2) ShuffleOrder.DefaultShuffleOrder | Android Developers. https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/ShuffleOrder.DefaultShuffleOrder.
(3) Media3 | Jetpack | Android Developers. https://developer.android.com/jetpack/androidx/releases/media3.