From b42bf7d74ae0fa0e40b826452d3a666ffa03a21b Mon Sep 17 00:00:00 2001 From: Ming Ming Date: Fri, 12 May 2023 01:11:23 +0800 Subject: [PATCH] Simplify server feature checking --- app/lib/controller/server_controller.dart | 12 ++++++++++++ app/lib/use_case/collection/list_collection.dart | 4 +--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/lib/controller/server_controller.dart b/app/lib/controller/server_controller.dart index 9df55e28..b0732db2 100644 --- a/app/lib/controller/server_controller.dart +++ b/app/lib/controller/server_controller.dart @@ -11,6 +11,10 @@ import 'package:rxdart/rxdart.dart'; part 'server_controller.g.dart'; +enum ServerFeature { + ncAlbum, +} + @npLog class ServerController { ServerController({ @@ -24,6 +28,14 @@ class ServerController { return _statusStreamContorller.stream; } + bool isSupported(ServerFeature feature) { + switch (feature) { + case ServerFeature.ncAlbum: + return !_statusStreamContorller.hasValue || + _statusStreamContorller.value.majorVersion >= 25; + } + } + Future _load() => _getStatus(); Future _getStatus() async { diff --git a/app/lib/use_case/collection/list_collection.dart b/app/lib/use_case/collection/list_collection.dart index d30702be..bed10c76 100644 --- a/app/lib/use_case/collection/list_collection.dart +++ b/app/lib/use_case/collection/list_collection.dart @@ -7,7 +7,6 @@ import 'package:nc_photos/entity/album.dart'; import 'package:nc_photos/entity/collection.dart'; import 'package:nc_photos/entity/collection/builder.dart'; import 'package:nc_photos/entity/nc_album.dart'; -import 'package:nc_photos/entity/server_status.dart'; import 'package:nc_photos/use_case/album/list_album2.dart'; import 'package:nc_photos/use_case/nc_album/list_nc_album.dart'; @@ -56,8 +55,7 @@ class ListCollection { onDone(); }, ); - if (serverController.status.hasValue && - serverController.status.value.majorVersion < 25) { + if (!serverController.isSupported(ServerFeature.ncAlbum)) { isNcAlbumDone = true; } else { ListNcAlbum(_c)(account).listen(