wait for state.next

pull/4/head
fuwa 4 years ago
parent a32027ef55
commit 39ba7dd5c9

@ -123,21 +123,11 @@ class _CyberWOW_PageState extends State<CyberWOW_Page> with WidgetsBindingObserv
.runBinary(binName, input: inputStreamController.stream, shouldExit: _isExiting) .runBinary(binName, input: inputStreamController.stream, shouldExit: _isExiting)
.asBroadcastStream(); .asBroadcastStream();
state.AppState _syncedNextState =
await _syncingState.next(inputStreamController.sink, syncing); await _syncingState.next(inputStreamController.sink, syncing);
var exited = false; var exited = false;
if (_syncedNextState is state.SyncedState) {
state.SyncedState _syncedState = _syncedNextState;
await _syncedState.next();
} else {
state.ExitingState _exitingState = _syncedNextState;
await _exitingState.wait();
exited = true;
}
var validState = true; var validState = true;
while (validState && !exited) { while (validState && !exited) {
state.AppState _state = _getState(); state.AppState _state = _getState();
switch (_state.runtimeType) { switch (_state.runtimeType) {
@ -149,11 +139,11 @@ class _CyberWOW_PageState extends State<CyberWOW_Page> with WidgetsBindingObserv
break; break;
case state.SyncedState: case state.SyncedState:
(_state as state.SyncedState).next(); await (_state as state.SyncedState).next();
break; break;
case state.ReSyncingState: case state.ReSyncingState:
(_state as state.ReSyncingState).next(); await (_state as state.ReSyncingState).next();
break; break;
default: validState = false; default: validState = false;