use Syncing state

master
fuwa 5 years ago
parent 351cb1f945
commit 905aecb6f2

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

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

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