From 27514ab11b7bf2f6b039a33e92b7d99f635640f3 Mon Sep 17 00:00:00 2001 From: Elias Projahn Date: Fri, 24 Apr 2020 19:56:14 +0200 Subject: [PATCH] Program screen: Close, if player is inactive --- musicus/lib/screens/program.dart | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/musicus/lib/screens/program.dart b/musicus/lib/screens/program.dart index 13d929c..bbf4d90 100644 --- a/musicus/lib/screens/program.dart +++ b/musicus/lib/screens/program.dart @@ -100,6 +100,8 @@ class ProgramScreen extends StatefulWidget { class _ProgramScreenState extends State { BackendState backend; + StreamSubscription playerActiveSubscription; + StreamSubscription> playlistSubscription; List items = []; @@ -113,6 +115,17 @@ class _ProgramScreenState extends State { backend = Backend.of(context); + if (playerActiveSubscription != null) { + playerActiveSubscription.cancel(); + } + + // Close the program screen, if the player is no longer active. + playerActiveSubscription = backend.player.active.listen((active) { + if (!active) { + Navigator.pop(context); + } + }); + if (playlistSubscription != null) { playlistSubscription.cancel(); } @@ -337,6 +350,7 @@ class _ProgramScreenState extends State { @override void dispose() { super.dispose(); + playerActiveSubscription.cancel(); playlistSubscription.cancel(); positionSubscription.cancel(); }