53 lines
1.4 KiB
Dart
53 lines
1.4 KiB
Dart
import 'package:flutter/foundation.dart';
|
|
import 'package:package_info_plus/package_info_plus.dart';
|
|
|
|
import '../../api/apiResponse.dart';
|
|
import '../../api/mhsl/breaker/getBreakers/getBreakersCache.dart';
|
|
import '../../api/mhsl/breaker/getBreakers/getBreakersResponse.dart';
|
|
import '../dataHolder.dart';
|
|
|
|
class BreakerProps extends DataHolder {
|
|
GetBreakersResponse? _getBreakersResponse;
|
|
GetBreakersResponse get getBreakersResponse => _getBreakersResponse!;
|
|
|
|
PackageInfo? packageInfo;
|
|
|
|
String? isBlocked(BreakerArea? type) {
|
|
if(kDebugMode) return null;
|
|
|
|
if(packageInfo == null) {
|
|
PackageInfo.fromPlatform().then((value) => packageInfo = value);
|
|
return null;
|
|
}
|
|
|
|
if(primaryLoading()) return null;
|
|
var breakers = _getBreakersResponse!;
|
|
|
|
if(breakers.global.areas.contains(type)) return breakers.global.message;
|
|
|
|
var selfVersion = int.parse(packageInfo!.buildNumber);
|
|
for(var key in breakers.regional.keys) {
|
|
var value = breakers.regional[key]!;
|
|
|
|
if(int.parse(key.split('b')[1]) >= selfVersion) {
|
|
if(value.areas.contains(type)) return value.message;
|
|
}
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
@override
|
|
List<ApiResponse?> properties() => [_getBreakersResponse];
|
|
|
|
@override
|
|
void run() {
|
|
GetBreakersCache(
|
|
onUpdate: (GetBreakersResponse getBreakersResponse) {
|
|
_getBreakersResponse = getBreakersResponse;
|
|
notifyListeners();
|
|
}
|
|
);
|
|
}
|
|
}
|