mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 23:34:24 +01:00
127 lines
2.9 KiB
Dart
127 lines
2.9 KiB
Dart
/*
|
|
{
|
|
"changelog": {
|
|
"mac": "xxx",
|
|
"ios": "xxx",
|
|
"android": ""
|
|
},
|
|
"build": {
|
|
"min": {
|
|
"mac": 1,
|
|
"ios": 1,
|
|
"android": 1
|
|
},
|
|
"last": {
|
|
"mac": 1,
|
|
"ios": 1,
|
|
"android": 1
|
|
}
|
|
},
|
|
"url": {
|
|
"mac": "https://apps.apple.com/app/id1586449703",
|
|
"ios": "https://apps.apple.com/app/id1586449703",
|
|
"android": "https://cdn3.cust.app/uploads/ServerBox_262_Arm64.apk"
|
|
}
|
|
}
|
|
*/
|
|
|
|
import 'dart:convert';
|
|
|
|
import '/core/utils/platform.dart';
|
|
|
|
class AppUpdate {
|
|
AppUpdate({
|
|
required this.changelog,
|
|
required this.build,
|
|
required this.url,
|
|
});
|
|
|
|
final AppUpdatePlatformSpecific<String> changelog;
|
|
final Build build;
|
|
final AppUpdatePlatformSpecific<String> url;
|
|
|
|
factory AppUpdate.fromRawJson(String str) =>
|
|
AppUpdate.fromJson(json.decode(str));
|
|
|
|
String toRawJson() => json.encode(toJson());
|
|
|
|
factory AppUpdate.fromJson(Map<String, dynamic> json) => AppUpdate(
|
|
changelog: AppUpdatePlatformSpecific.fromJson(json["changelog"]),
|
|
build: Build.fromJson(json["build"]),
|
|
url: AppUpdatePlatformSpecific.fromJson(json["url"]),
|
|
);
|
|
|
|
Map<String, dynamic> toJson() => {
|
|
"changelog": changelog.toJson(),
|
|
"build": build.toJson(),
|
|
"url": url.toJson(),
|
|
};
|
|
}
|
|
|
|
class Build {
|
|
Build({
|
|
required this.min,
|
|
required this.last,
|
|
});
|
|
|
|
final AppUpdatePlatformSpecific<int> min;
|
|
final AppUpdatePlatformSpecific<int> last;
|
|
|
|
factory Build.fromRawJson(String str) => Build.fromJson(json.decode(str));
|
|
|
|
String toRawJson() => json.encode(toJson());
|
|
|
|
factory Build.fromJson(Map<String, dynamic> json) => Build(
|
|
min: AppUpdatePlatformSpecific.fromJson(json["min"]),
|
|
last: AppUpdatePlatformSpecific.fromJson(json["last"]),
|
|
);
|
|
|
|
Map<String, dynamic> toJson() => {
|
|
"min": min.toJson(),
|
|
"last": last.toJson(),
|
|
};
|
|
}
|
|
|
|
class AppUpdatePlatformSpecific<T> {
|
|
AppUpdatePlatformSpecific({
|
|
required this.mac,
|
|
required this.ios,
|
|
required this.android,
|
|
});
|
|
|
|
final T mac;
|
|
final T ios;
|
|
final T android;
|
|
|
|
factory AppUpdatePlatformSpecific.fromRawJson(String str) =>
|
|
AppUpdatePlatformSpecific.fromJson(json.decode(str));
|
|
|
|
String toRawJson() => json.encode(toJson());
|
|
|
|
factory AppUpdatePlatformSpecific.fromJson(Map<String, dynamic> json) =>
|
|
AppUpdatePlatformSpecific(
|
|
mac: json["mac"],
|
|
ios: json["ios"],
|
|
android: json["android"],
|
|
);
|
|
|
|
Map<String, dynamic> toJson() => {
|
|
"mac": mac,
|
|
"ios": ios,
|
|
"android": android,
|
|
};
|
|
|
|
T? get current {
|
|
switch (platform) {
|
|
case PlatformType.macos:
|
|
return mac;
|
|
case PlatformType.ios:
|
|
return ios;
|
|
case PlatformType.android:
|
|
return android;
|
|
default:
|
|
return null;
|
|
}
|
|
}
|
|
}
|