Quellcode durchsuchen

feat: play songs when selecting them

Fela Maslen vor 4 Jahren
Ursprung
Commit
c01354b034
2 geänderte Dateien mit 23 neuen und 3 gelöschten Zeilen
  1. 7 3
      gmus-mobile/lib/components/browser.dart
  2. 16 0
      gmus-mobile/lib/controller.dart

+ 7 - 3
gmus-mobile/lib/components/browser.dart

@@ -1,9 +1,11 @@
 import 'package:flutter/widgets.dart';
 import 'package:get/get.dart';
-import 'package:gmus_mobile/components/albums.dart';
-import 'package:gmus_mobile/components/songs.dart';
 
+import '../controller.dart';
+
+import './albums.dart';
 import './artists.dart';
+import './songs.dart';
 
 class Browser extends StatefulWidget {
   @override
@@ -11,6 +13,8 @@ class Browser extends StatefulWidget {
 }
 
 class _BrowserWidgetState extends State<Browser> {
+  final Controller controller = Get.find();
+
   PageController pageController = PageController();
 
   void _jumpToPage(int page) {
@@ -38,7 +42,7 @@ class _BrowserWidgetState extends State<Browser> {
   }
 
   void onSelectSong(int songId) {
-    print("Selecting song ID $songId");
+    controller.playSong(songId);
   }
 
   @override

+ 16 - 0
gmus-mobile/lib/controller.dart

@@ -109,4 +109,20 @@ class Controller extends GetxController {
       }));
     }
   }
+
+  void playSong(int songId) {
+    if (this._isMaster()) {
+      throw Exception('Playing songs on mobile not yet implemented!');
+    }
+
+    this.player.value.songId = songId;
+    this.player.value.currentTime = 0;
+    this.player.value.seekTime = -1;
+    this.player.value.playing = true;
+
+    this._remoteDispatch(jsonEncode({
+      'type': actions.STATE_SET,
+      'payload': this.player.value.stringify(),
+    }));
+  }
 }