44 lines
1.1 KiB
Dart
44 lines
1.1 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
/// App 生命周期状态
|
|
enum AppStatus {
|
|
starting, // 启动中
|
|
mediaKitInitializing, // MediaKit 初始化中
|
|
mediaKitReady, // MediaKit 就绪
|
|
playerInitializing, // 播放器初始化中
|
|
playerReady, // 播放器就绪
|
|
webdavChecking, // WebDAV 检测中
|
|
webdavReady, // WebDAV 就绪
|
|
webdavMissing, // WebDAV 未配置
|
|
fullReady, // 完全就绪
|
|
error, // 错误
|
|
}
|
|
|
|
class AppLifecycleService extends ChangeNotifier {
|
|
AppStatus _status = AppStatus.starting;
|
|
|
|
AppStatus get status => _status;
|
|
|
|
bool get isPlayerReady =>
|
|
_status == AppStatus.playerReady || _status == AppStatus.fullReady;
|
|
|
|
bool get isWebDAVReady =>
|
|
_status == AppStatus.webdavReady || _status == AppStatus.fullReady;
|
|
|
|
bool get isFullReady => _status == AppStatus.fullReady;
|
|
|
|
void updateStatus(AppStatus newStatus) {
|
|
if (_status != newStatus) {
|
|
_status = newStatus;
|
|
debugPrint('🔄 App 状态更新: $newStatus');
|
|
notifyListeners();
|
|
}
|
|
}
|
|
|
|
// 重置(用于错误恢复)
|
|
void reset() {
|
|
_status = AppStatus.starting;
|
|
notifyListeners();
|
|
}
|
|
}
|