flutter_cast_framework_modern/lib/cast/SessionManager.dart
gianlucaparadise 9e10c120bc SessionManager state implementation;
Little methods refactor;
2019-11-11 22:52:04 +01:00

51 lines
1.5 KiB
Dart

import 'package:flutter/foundation.dart';
import 'package:flutter_cast_framework/MethodNames.dart';
class SessionManager {
final ValueNotifier<SessionState> state = ValueNotifier(SessionState.idle);
void onSessionStateChanged(String method, dynamic arguments) {
switch (method) {
case PlatformMethodNames.onSessionStarting:
state.value = SessionState.session_starting;
break;
case PlatformMethodNames.onSessionStarted:
state.value = SessionState.session_started;
break;
case PlatformMethodNames.onSessionStartFailed:
state.value = SessionState.session_start_failed;
break;
case PlatformMethodNames.onSessionEnding:
state.value = SessionState.session_ending;
break;
case PlatformMethodNames.onSessionEnded:
state.value = SessionState.session_ended;
break;
case PlatformMethodNames.onSessionResuming:
state.value = SessionState.session_resuming;
break;
case PlatformMethodNames.onSessionResumed:
state.value = SessionState.session_resumed;
break;
case PlatformMethodNames.onSessionResumeFailed:
state.value = SessionState.session_resume_failed;
break;
case PlatformMethodNames.onSessionSuspended:
state.value = SessionState.session_suspended;
break;
}
}
}
enum SessionState {
idle,
session_starting,
session_started,
session_start_failed,
session_ending,
session_ended,
session_resuming,
session_resumed,
session_resume_failed,
session_suspended,
}