77 lines
3.4 KiB
Dart
77 lines
3.4 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:preferences/preferences.dart';
|
|
import 'package:provider/provider.dart';
|
|
import 'package:toolheim/data/github_adapter.dart';
|
|
|
|
class SettingsScreen extends StatelessWidget {
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
GitHubAdapter github = Provider.of<GitHubAdapter>(context);
|
|
|
|
return Scaffold(
|
|
appBar: AppBar(title: Text('Settings')),
|
|
body: PreferencePage([
|
|
PreferenceTitle('GitHub'),
|
|
PreferenceText(
|
|
'Provide a valid GitHub repository with username and project (username/repository-name). This repository must contain warband roster files in subfolders. See the sample project for a kickstart.'),
|
|
TextFieldPreference('Repository', 'repository'),
|
|
PreferenceText(
|
|
'If your warband folders are placed in a subfolder, you can specify it here.'),
|
|
TextFieldPreference('Path', 'path', defaultVal: '/'),
|
|
PreferenceTitle('Search for Warbands'),
|
|
PreferenceText(
|
|
'Search the given GitHub repository for valid Warband files (ending with .warband.yml). This step can be done at any time.'),
|
|
FlatButton(
|
|
onPressed: () {
|
|
github.search();
|
|
showDialog(
|
|
context: context,
|
|
builder: (BuildContext context) {
|
|
return AlertDialog(
|
|
title: Text('Search Warbands ...'),
|
|
content: Column(
|
|
mainAxisSize: MainAxisSize.min,
|
|
children: <Widget>[
|
|
Text(
|
|
'Checking the GitHub repository for suitable files. This can take a while.'),
|
|
SizedBox(
|
|
height: 50,
|
|
),
|
|
if (github.isSyncInProgress)
|
|
CircularProgressIndicator(),
|
|
if (github.syncErrors.length > 0)
|
|
buildSyncErrors(context),
|
|
]),
|
|
actions: <Widget>[
|
|
if (!github.isSyncInProgress)
|
|
FlatButton(
|
|
child: Text('Close',
|
|
style: TextStyle(color: Colors.blue)),
|
|
onPressed: () {
|
|
if (github.syncErrors.length > 0) {
|
|
Navigator.pop(context);
|
|
} else {
|
|
Navigator.popAndPushNamed(context, '/');
|
|
}
|
|
},
|
|
)
|
|
]);
|
|
});
|
|
},
|
|
child:
|
|
Text('Start search', style: TextStyle(color: Colors.blue))),
|
|
]));
|
|
|
|
//String _repository = 'Labernator/Mordheim';
|
|
//String _path = 'Mordheim-BorderTownBurning/Warband Rosters';
|
|
}
|
|
|
|
static Widget buildSyncErrors(BuildContext context) {
|
|
GitHubAdapter github = Provider.of<GitHubAdapter>(context);
|
|
|
|
return Column(children: [
|
|
for (var error in github.syncErrors)
|
|
Text(error, style: TextStyle(color: Colors.red))
|
|
]);
|
|
}
|
|
}
|