mirror of
https://github.com/johrpan/musicus_mobile.git
synced 2025-10-26 10:47:25 +01:00
mobile: Support using an account
This commit is contained in:
parent
8765edc257
commit
3d3d5d50a6
3 changed files with 310 additions and 36 deletions
|
|
@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
|||
import 'package:flutter/services.dart';
|
||||
import 'package:musicus_common/musicus_common.dart';
|
||||
|
||||
import 'account_settings.dart';
|
||||
import 'server_settings.dart';
|
||||
|
||||
class SettingsScreen extends StatelessWidget {
|
||||
|
|
@ -19,46 +20,67 @@ class SettingsScreen extends StatelessWidget {
|
|||
body: ListView(
|
||||
children: <Widget>[
|
||||
StreamBuilder<String>(
|
||||
stream: settings.musicLibraryPath,
|
||||
builder: (context, snapshot) {
|
||||
return ListTile(
|
||||
title: Text('Music library path'),
|
||||
subtitle: Text(snapshot.data ?? 'Choose folder'),
|
||||
isThreeLine: snapshot.hasData,
|
||||
onTap: () async {
|
||||
final uri =
|
||||
await _platform.invokeMethod<String>('openTree');
|
||||
stream: settings.musicLibraryPath,
|
||||
builder: (context, snapshot) {
|
||||
return ListTile(
|
||||
title: Text('Music library path'),
|
||||
subtitle: Text(snapshot.data ?? 'Choose folder'),
|
||||
isThreeLine: snapshot.hasData,
|
||||
onTap: () async {
|
||||
final uri = await _platform.invokeMethod<String>('openTree');
|
||||
|
||||
if (uri != null) {
|
||||
settings.setMusicLibraryPath(uri);
|
||||
}
|
||||
},
|
||||
);
|
||||
}),
|
||||
if (uri != null) {
|
||||
settings.setMusicLibraryPath(uri);
|
||||
}
|
||||
},
|
||||
);
|
||||
},
|
||||
),
|
||||
StreamBuilder<MusicusServerSettings>(
|
||||
stream: settings.server,
|
||||
builder: (context, snapshot) {
|
||||
final s = snapshot.data;
|
||||
stream: settings.server,
|
||||
builder: (context, snapshot) {
|
||||
final s = snapshot.data;
|
||||
|
||||
return ListTile(
|
||||
title: Text('Musicus server'),
|
||||
subtitle: Text(
|
||||
s != null ? '${s.host}:${s.port}${s.apiPath}' : '...'),
|
||||
trailing: const Icon(Icons.chevron_right),
|
||||
onTap: () async {
|
||||
final MusicusServerSettings result = await Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => ServerSettingsScreen(),
|
||||
),
|
||||
);
|
||||
return ListTile(
|
||||
title: Text('Musicus server'),
|
||||
subtitle:
|
||||
Text(s != null ? '${s.host}:${s.port}${s.apiPath}' : '...'),
|
||||
trailing: const Icon(Icons.chevron_right),
|
||||
onTap: () async {
|
||||
final MusicusServerSettings result = await Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => ServerSettingsScreen(),
|
||||
),
|
||||
);
|
||||
|
||||
if (result != null) {
|
||||
settings.setServer(result);
|
||||
}
|
||||
},
|
||||
);
|
||||
}),
|
||||
if (result != null) {
|
||||
settings.setServer(result);
|
||||
}
|
||||
},
|
||||
);
|
||||
},
|
||||
),
|
||||
StreamBuilder<MusicusAccountSettings>(
|
||||
stream: settings.account,
|
||||
builder: (context, snapshot) {
|
||||
final a = snapshot.data;
|
||||
|
||||
return ListTile(
|
||||
title: Text('Account settings'),
|
||||
subtitle: Text(a != null ? a.username : 'No account'),
|
||||
trailing: const Icon(Icons.chevron_right),
|
||||
onTap: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => AccountSettingsScreen(),
|
||||
),
|
||||
);
|
||||
},
|
||||
);
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue