diff --git a/mopidy_touchscreen/playlist_screen.py b/mopidy_touchscreen/playlist_screen.py index 81246e8..aa4129a 100644 --- a/mopidy_touchscreen/playlist_screen.py +++ b/mopidy_touchscreen/playlist_screen.py @@ -12,11 +12,15 @@ class PlaylistScreen(BaseScreen): self.playlists_strings = [] self.playlists = [] self.playlists_loaded() + self.selected_playlist = None + self.playlist_tracks = [] + self.playlist_tracks_strings = [] def update(self, screen, update_all): self.list_view.render(screen) def playlists_loaded(self): + self.selected_playlist = None self.playlists_strings = [] self.playlists = [] for playlist in self.manager.core.playlists.playlists.get(): @@ -24,10 +28,29 @@ class PlaylistScreen(BaseScreen): self.playlists_strings.append(playlist.name) self.list_view.set_list(self.playlists_strings) + def playlist_selected(self, playlist): + self.selected_playlist = playlist + self.playlist_tracks = playlist.tracks + self.playlist_tracks_strings = ["../"] + for track in self.playlist_tracks: + self.playlist_tracks_strings.append(track.name) + self.list_view.set_list(self.playlist_tracks_strings) + + def touch_event(self, touch_event): clicked = self.list_view.touch_event(touch_event) if clicked is not None: - self.manager.core.tracklist.clear() - self.manager.core.tracklist.add( - uri=self.playlists[clicked].uri) - self.manager.core.playback.play() + if self.selected_playlist is None: + self.playlist_selected(self.playlists[clicked]) + else: + if clicked==0: + self.selected_playlist = None + self.list_view.set_list(self.playlists_strings) + else: + self.manager.core.tracklist.clear() + self.manager.core.tracklist.add(self.playlist_tracks) + self.manager.core.playback.play(tl_track=self.manager.core.tracklist.tl_tracks.get()[clicked-1]) + #self.manager.core.tracklist.clear() + #self.manager.core.tracklist.add( + # uri=self.playlists[clicked].uri) + #self.manager.core.playback.play()