mirror of
https://github.com/immich-app/immich.git
synced 2026-02-05 02:23:52 -05:00
* fix(mobile): hide latest version if disabled If the version check feature is disabled, the server will currently send stale data to the client. In addition to no longer sending stale data, the client should also not show the latest version if the feature is disabled. This complements the server PR #25688. * lint --------- Co-authored-by: Alex <alex.tran1502@gmail.com>
84 lines
2.7 KiB
Dart
84 lines
2.7 KiB
Dart
import 'package:easy_localization/easy_localization.dart';
|
|
import 'package:immich_mobile/models/server_info/server_config.model.dart';
|
|
import 'package:immich_mobile/models/server_info/server_disk_info.model.dart';
|
|
import 'package:immich_mobile/models/server_info/server_features.model.dart';
|
|
import 'package:immich_mobile/models/server_info/server_version.model.dart';
|
|
|
|
enum VersionStatus {
|
|
upToDate,
|
|
clientOutOfDate,
|
|
serverOutOfDate,
|
|
error;
|
|
|
|
String get message => switch (this) {
|
|
VersionStatus.upToDate => "",
|
|
VersionStatus.clientOutOfDate => "app_update_available".tr(),
|
|
VersionStatus.serverOutOfDate => "server_update_available".tr(),
|
|
VersionStatus.error => "unable_to_check_version".tr(),
|
|
};
|
|
}
|
|
|
|
class ServerInfo {
|
|
final ServerVersion serverVersion;
|
|
final ServerVersion? latestVersion;
|
|
final ServerFeatures serverFeatures;
|
|
final ServerConfig serverConfig;
|
|
final ServerDiskInfo serverDiskInfo;
|
|
final VersionStatus versionStatus;
|
|
|
|
const ServerInfo({
|
|
required this.serverVersion,
|
|
required this.latestVersion,
|
|
required this.serverFeatures,
|
|
required this.serverConfig,
|
|
required this.serverDiskInfo,
|
|
required this.versionStatus,
|
|
});
|
|
|
|
ServerInfo copyWith({
|
|
ServerVersion? serverVersion,
|
|
ServerVersion? latestVersion,
|
|
ServerFeatures? serverFeatures,
|
|
ServerConfig? serverConfig,
|
|
ServerDiskInfo? serverDiskInfo,
|
|
VersionStatus? versionStatus,
|
|
}) {
|
|
return ServerInfo(
|
|
serverVersion: serverVersion ?? this.serverVersion,
|
|
latestVersion: latestVersion ?? this.latestVersion,
|
|
serverFeatures: serverFeatures ?? this.serverFeatures,
|
|
serverConfig: serverConfig ?? this.serverConfig,
|
|
serverDiskInfo: serverDiskInfo ?? this.serverDiskInfo,
|
|
versionStatus: versionStatus ?? this.versionStatus,
|
|
);
|
|
}
|
|
|
|
@override
|
|
String toString() {
|
|
return 'ServerInfo(serverVersion: $serverVersion, latestVersion: $latestVersion, serverFeatures: $serverFeatures, serverConfig: $serverConfig, serverDiskInfo: $serverDiskInfo, versionStatus: $versionStatus)';
|
|
}
|
|
|
|
@override
|
|
bool operator ==(Object other) {
|
|
if (identical(this, other)) return true;
|
|
|
|
return other is ServerInfo &&
|
|
other.serverVersion == serverVersion &&
|
|
other.latestVersion == latestVersion &&
|
|
other.serverFeatures == serverFeatures &&
|
|
other.serverConfig == serverConfig &&
|
|
other.serverDiskInfo == serverDiskInfo &&
|
|
other.versionStatus == versionStatus;
|
|
}
|
|
|
|
@override
|
|
int get hashCode {
|
|
return serverVersion.hashCode ^
|
|
latestVersion.hashCode ^
|
|
serverFeatures.hashCode ^
|
|
serverConfig.hashCode ^
|
|
serverDiskInfo.hashCode ^
|
|
versionStatus.hashCode;
|
|
}
|
|
}
|