playback: fix widget not resetting on service end
This commit is contained in:
parent
111cb9688f
commit
b0703b4d0e
1 changed files with 8 additions and 7 deletions
|
@ -49,13 +49,15 @@ constructor(
|
||||||
@ApplicationContext private val context: Context,
|
@ApplicationContext private val context: Context,
|
||||||
private val playbackManager: PlaybackStateManager,
|
private val playbackManager: PlaybackStateManager,
|
||||||
private val playbackSettings: PlaybackSettings,
|
private val playbackSettings: PlaybackSettings,
|
||||||
private val systemReceiver: SystemPlaybackReceiver
|
private val widgetComponent: WidgetComponent
|
||||||
) : PlaybackStateManager.Listener, PlaybackSettings.Listener {
|
) : PlaybackStateManager.Listener, PlaybackSettings.Listener {
|
||||||
|
|
||||||
interface Callback {
|
interface Callback {
|
||||||
fun onCustomLayoutChanged(layout: List<CommandButton>)
|
fun onCustomLayoutChanged(layout: List<CommandButton>)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private val systemReceiver =
|
||||||
|
SystemPlaybackReceiver(playbackManager, playbackSettings, widgetComponent)
|
||||||
private var callback: Callback? = null
|
private var callback: Callback? = null
|
||||||
|
|
||||||
fun attach(callback: Callback) {
|
fun attach(callback: Callback) {
|
||||||
|
@ -71,6 +73,7 @@ constructor(
|
||||||
playbackManager.removeListener(this)
|
playbackManager.removeListener(this)
|
||||||
playbackSettings.unregisterListener(this)
|
playbackSettings.unregisterListener(this)
|
||||||
context.unregisterReceiver(systemReceiver)
|
context.unregisterReceiver(systemReceiver)
|
||||||
|
widgetComponent.release()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun withCommands(commands: SessionCommands) =
|
fun withCommands(commands: SessionCommands) =
|
||||||
|
@ -180,12 +183,10 @@ object PlaybackActions {
|
||||||
* A [BroadcastReceiver] for receiving playback-specific [Intent]s from the system that require an
|
* A [BroadcastReceiver] for receiving playback-specific [Intent]s from the system that require an
|
||||||
* active [IntentFilter] to be registered.
|
* active [IntentFilter] to be registered.
|
||||||
*/
|
*/
|
||||||
class SystemPlaybackReceiver
|
class SystemPlaybackReceiver(
|
||||||
@Inject
|
private val playbackManager: PlaybackStateManager,
|
||||||
constructor(
|
private val playbackSettings: PlaybackSettings,
|
||||||
val playbackManager: PlaybackStateManager,
|
private val widgetComponent: WidgetComponent
|
||||||
val playbackSettings: PlaybackSettings,
|
|
||||||
val widgetComponent: WidgetComponent
|
|
||||||
) : BroadcastReceiver() {
|
) : BroadcastReceiver() {
|
||||||
private var initialHeadsetPlugEventHandled = false
|
private var initialHeadsetPlugEventHandled = false
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue