diff --git a/app/src/main/java/org/oxycblt/auxio/playback/service/PlaybackActionHandler.kt b/app/src/main/java/org/oxycblt/auxio/playback/service/PlaybackActionHandler.kt index 8597770de..6d0c1fbeb 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/service/PlaybackActionHandler.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/service/PlaybackActionHandler.kt @@ -49,13 +49,15 @@ constructor( @ApplicationContext private val context: Context, private val playbackManager: PlaybackStateManager, private val playbackSettings: PlaybackSettings, - private val systemReceiver: SystemPlaybackReceiver + private val widgetComponent: WidgetComponent ) : PlaybackStateManager.Listener, PlaybackSettings.Listener { interface Callback { fun onCustomLayoutChanged(layout: List) } + private val systemReceiver = + SystemPlaybackReceiver(playbackManager, playbackSettings, widgetComponent) private var callback: Callback? = null fun attach(callback: Callback) { @@ -71,6 +73,7 @@ constructor( playbackManager.removeListener(this) playbackSettings.unregisterListener(this) context.unregisterReceiver(systemReceiver) + widgetComponent.release() } fun withCommands(commands: SessionCommands) = @@ -180,12 +183,10 @@ object PlaybackActions { * A [BroadcastReceiver] for receiving playback-specific [Intent]s from the system that require an * active [IntentFilter] to be registered. */ -class SystemPlaybackReceiver -@Inject -constructor( - val playbackManager: PlaybackStateManager, - val playbackSettings: PlaybackSettings, - val widgetComponent: WidgetComponent +class SystemPlaybackReceiver( + private val playbackManager: PlaybackStateManager, + private val playbackSettings: PlaybackSettings, + private val widgetComponent: WidgetComponent ) : BroadcastReceiver() { private var initialHeadsetPlugEventHandled = false