Simplify server feature checking

This commit is contained in:
Ming Ming 2023-05-12 01:11:23 +08:00
parent 87872def7b
commit b42bf7d74a
2 changed files with 13 additions and 3 deletions

View file

@ -11,6 +11,10 @@ import 'package:rxdart/rxdart.dart';
part 'server_controller.g.dart'; part 'server_controller.g.dart';
enum ServerFeature {
ncAlbum,
}
@npLog @npLog
class ServerController { class ServerController {
ServerController({ ServerController({
@ -24,6 +28,14 @@ class ServerController {
return _statusStreamContorller.stream; return _statusStreamContorller.stream;
} }
bool isSupported(ServerFeature feature) {
switch (feature) {
case ServerFeature.ncAlbum:
return !_statusStreamContorller.hasValue ||
_statusStreamContorller.value.majorVersion >= 25;
}
}
Future<void> _load() => _getStatus(); Future<void> _load() => _getStatus();
Future<void> _getStatus() async { Future<void> _getStatus() async {

View file

@ -7,7 +7,6 @@ import 'package:nc_photos/entity/album.dart';
import 'package:nc_photos/entity/collection.dart'; import 'package:nc_photos/entity/collection.dart';
import 'package:nc_photos/entity/collection/builder.dart'; import 'package:nc_photos/entity/collection/builder.dart';
import 'package:nc_photos/entity/nc_album.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/album/list_album2.dart';
import 'package:nc_photos/use_case/nc_album/list_nc_album.dart'; import 'package:nc_photos/use_case/nc_album/list_nc_album.dart';
@ -56,8 +55,7 @@ class ListCollection {
onDone(); onDone();
}, },
); );
if (serverController.status.hasValue && if (!serverController.isSupported(ServerFeature.ncAlbum)) {
serverController.status.value.majorVersion < 25) {
isNcAlbumDone = true; isNcAlbumDone = true;
} else { } else {
ListNcAlbum(_c)(account).listen( ListNcAlbum(_c)(account).listen(