Files
QingTing-Player/lib/services/app_lifecycle_service.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();
}
}