LCOV - code coverage report
Current view: top level - src/ui/editor/pages/media_gallery - media_gallery_presenter.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 17 28 60.7 %
Date: 2020-12-04 18:41:24 Functions: 0 0 -

          Line data    Source code
       1             : import 'package:flutter/widgets.dart';
       2             : import 'package:mvvm_builder/mvvm_builder.dart';
       3             : import 'package:pal/src/database/entity/graphic_entity.dart';
       4             : import 'package:pal/src/ui/editor/pages/media_gallery/media_gallery_loader.dart';
       5             : 
       6             : import 'media_gallery.dart';
       7             : import 'media_gallery_viewmodel.dart';
       8             : 
       9             : class MediaGalleryPresenter
      10             :     extends Presenter<MediaGalleryModel, MediaGalleryView> {
      11             :   final String mediaId;
      12             :   final MediaGalleryLoader loader;
      13             : 
      14           1 :   MediaGalleryPresenter(
      15             :     MediaGalleryView viewInterface, {
      16             :     this.mediaId,
      17             :     @required this.loader,
      18           2 :   }) : super(MediaGalleryModel(), viewInterface);
      19             : 
      20           1 :   @override
      21             :   void onInit() {
      22           2 :     this.viewModel.isLoading = true;
      23           2 :     this.viewModel.isNoMore = false;
      24           2 :     this.viewModel.isLoadingMore = false;
      25             : 
      26           4 :     this.loader.load().then((MediaGalleryModel res) {
      27           3 :       this.viewModel.medias = res.medias;
      28           2 :       this.viewModel.isLoading = false;
      29           2 :       for (var media in res.medias) {
      30           3 :         if(media.id == mediaId){
      31           1 :           this.selectMedia(media);
      32             :           break;
      33             :         } 
      34             :       }
      35           1 :       this.refreshView();
      36             :     });
      37             :   }
      38             : 
      39           0 :   void loadMore() {
      40           0 :     if (!this.viewModel.isNoMore && !this.viewModel.isLoadingMore) {
      41           0 :       this.viewModel.isLoadingMore = true;
      42           0 :       this.refreshView();
      43             : 
      44           0 :       this.loader.loadMore().then((value) {
      45           0 :         if (value.isEmpty) {
      46           0 :           this.viewModel.isNoMore = true;
      47             :         } else {
      48           0 :           this.viewModel.medias.addAll(value);
      49             :         }
      50           0 :         this.viewModel.isLoadingMore = false;
      51           0 :         this.refreshView();
      52             :       });
      53             :     }
      54             :   }
      55             : 
      56           1 :   selectMedia(GraphicEntity media) {
      57           4 :     if (media.id == this.viewModel.selectedMedia?.id) {
      58           0 :       this.viewModel.selectedMedia = null;
      59             :     } else {
      60           2 :       this.viewModel.selectedMedia = media;
      61             :     }
      62           1 :     this.refreshView();
      63             :   }
      64             : }

Generated by: LCOV version 1.14