Select Git revision
homepage.dart
-
Erik Hinkelmanns authoredErik Hinkelmanns authored
homepage.dart 8.33 KiB
import 'dart:async';
import 'package:ambient/widgets/MusicPlayerState.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:spotify_sdk/models/connection_status.dart';
import 'package:spotify_sdk/models/track.dart';
import 'package:spotify_sdk/spotify_sdk.dart';
import 'dart:developer' as developer;
import 'main.dart';
void printErr(String msg) {
developer.log(msg);
}
class HomePage extends StatelessWidget {
final pageController;
const HomePage({super.key, this.pageController});
@override
Widget build(BuildContext context) {
return StreamBuilder<ConnectionStatus>(
stream: SpotifySdk.subscribeConnectionStatus(),
builder: (context, snapshot) {
var data = snapshot.data;
if (data != null) {
MusicPlayerState
.of(context)
.connected = data.connected;
}
return StreamBuilder<void>(
stream: MusicPlayerState.of(context).rebuildStream.stream,
builder: (context, _) => player(context),
);
},
);
}
Widget player(BuildContext context) {
return Stack(children: [
Center(child: ListView(
shrinkWrap: true,
padding: const EdgeInsets.all(8),
children: [
MusicPlayerState.of(context).connected
? _buildPlayerStateWidget(context)
: Center(
child: MaterialButton(
minWidth: 200,
height: 200,
color: Colors.blue,
textColor: Colors.white,
shape: const CircleBorder(),
child: const Icon(
Icons.connected_tv,
size: 50,
),
onPressed: () async {
await MusicPlayerState.of(context).connectToSpotifyRemote();
buildSnackbar(context);
},
),
),
IconButton(
icon: const Icon(Icons.info),
iconSize: 50,
color: primaryColor,