use Syncing state

master
fuwa 5 years ago
parent 351cb1f945
commit 905aecb6f2

@ -28,10 +28,10 @@ import 'dart:async';
import 'state.dart'; import 'state.dart';
import 'config.dart'; import 'config.dart';
import 'controller/loading.dart'; import 'controller/loading.dart';
import 'controller/running.dart'; import 'controller/syncing.dart';
import 'widget/loading.dart'; import 'widget/loading.dart';
import 'widget/blank.dart'; import 'widget/blank.dart';
import 'widget/running.dart'; import 'widget/syncing.dart';
import 'widget/synced.dart'; import 'widget/synced.dart';
void main() => runApp(MyApp()); void main() => runApp(MyApp());
@ -86,10 +86,10 @@ class _MyHomePageState extends State<MyHomePage>
final bundle = DefaultAssetBundle.of(context); final bundle = DefaultAssetBundle.of(context);
final loading = deployBinary(bundle, resourcePath, binName); final loading = deployBinary(bundle, resourcePath, binName);
RunningState _runningState = await _loadingState.next(loading, ''); SyncingState _syncingState = await _loadingState.next(loading, '');
final running = runBinary(binName); final syncing = runBinary(binName);
SyncedState _syncedState = await _runningState.next(running); SyncedState _syncedState = await _syncingState.next(syncing);
await _syncedState.next(); await _syncedState.next();
} }
@ -121,7 +121,7 @@ class _MyHomePageState extends State<MyHomePage>
( (
(s) => buildBlank(context, s), (s) => buildBlank(context, s),
(s) => buildLoading(context, s), (s) => buildLoading(context, s),
(s) => buildRunning(context, s), (s) => buildSyncing(context, s),
(s) => buildSynced(context, s), (s) => buildSynced(context, s),
), ),
); );

@ -36,7 +36,7 @@ abstract class AppState {
( (
T Function(BlankState) useBlankState, T Function(BlankState) useBlankState,
T Function(LoadingState) useLoadingState, T Function(LoadingState) useLoadingState,
T Function(RunningState) useRunningState, T Function(SyncingState) useSyncingState,
T Function(SyncedState) useSyncedState, T Function(SyncedState) useSyncedState,
) )
{ {
@ -46,8 +46,8 @@ abstract class AppState {
if (this is LoadingState) { if (this is LoadingState) {
return useLoadingState(this); return useLoadingState(this);
} }
if (this is RunningState) { if (this is SyncingState) {
return useRunningState(this); return useSyncingState(this);
} }
if (this is SyncedState) { if (this is SyncedState) {
return useSyncedState(this); return useSyncedState(this);
@ -86,7 +86,7 @@ class LoadingState extends HookedState {
} }
Future<RunningState> next(Stream<String> loadingProgress, String status) async { Future<SyncingState> next(Stream<String> loadingProgress, String status) async {
Future<void> showBanner() async { Future<void> showBanner() async {
var chars = []; var chars = [];
banner.runes.forEach((int rune) { banner.runes.forEach((int rune) {
@ -118,16 +118,16 @@ class LoadingState extends HookedState {
await Future.wait([load(), showBanner()]); await Future.wait([load(), showBanner()]);
} }
RunningState _next = RunningState(setState, status); SyncingState _next = SyncingState(setState, status);
setState(_next); setState(_next);
return _next; return _next;
} }
} }
class RunningState extends HookedState { class SyncingState extends HookedState {
String status; String status;
RunningState(f, this.status) : super (f); SyncingState(f, this.status) : super (f);
void append(String msg) { void append(String msg) {
this.status += msg; this.status += msg;
@ -135,7 +135,7 @@ class RunningState extends HookedState {
} }
Future<SyncedState> next(Stream<String> processOutput) async { Future<SyncedState> next(Stream<String> processOutput) async {
print("RunningState.next"); print("SyncingState.next");
await for (var line in processOutput) { await for (var line in processOutput) {
append(line); append(line);

@ -24,7 +24,7 @@ import 'package:flutter/material.dart';
import '../state.dart'; import '../state.dart';
import '../config.dart'; import '../config.dart';
Widget buildRunning(BuildContext context, RunningState state) { Widget buildSyncing(BuildContext context, SyncingState state) {
return Scaffold return Scaffold
( (
// appBar: AppBar // appBar: AppBar
Loading…
Cancel
Save