Line data Source code
1 : import 'package:pal/src/database/entity/graphic_entity.dart'; 2 : import 'package:pal/src/database/entity/pageable.dart'; 3 : import 'package:pal/src/services/editor/project_gallery/project_gallery_editor_service.dart'; 4 : 5 : import 'media_gallery_viewmodel.dart'; 6 : 7 : class MediaGalleryLoader { 8 : final ProjectGalleryEditorService _projectGalleryEditorService; 9 : final _mediasOffset = 30; 10 : Pageable<GraphicEntity> _pageable; 11 : 12 0 : MediaGalleryLoader( 13 : this._projectGalleryEditorService, 14 : ); 15 : 16 0 : Future<MediaGalleryModel> load() async { 17 0 : var resViewModel = MediaGalleryModel(); 18 : 19 0 : resViewModel.medias = await this.loadMore(); 20 : 21 : return resViewModel; 22 : } 23 : 24 0 : Future<List<GraphicEntity>> loadMore() { 25 0 : return _pageable != null && _pageable.last 26 0 : ? Future.value([]) 27 : : this 28 0 : ._projectGalleryEditorService 29 0 : .getAllMedias( 30 0 : _pageable == null ? 0 : ++_pageable.pageNumber, 31 0 : _mediasOffset, 32 : ) 33 0 : .then( 34 0 : (res) { 35 0 : _pageable = res; 36 0 : return this._pageable.entities.toList(); 37 : }, 38 : ); 39 : } 40 : }