LCOV - code coverage report
Current view: top level - src/ui/editor/pages/helper_editor/helpers/editor_fullscreen_helper - editor_fullscreen_helper_viewmodel.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 57 76 75.0 %
Date: 2020-12-04 18:41:24 Functions: 0 0 -

          Line data    Source code
       1             : import 'dart:async';
       2             : 
       3             : import 'package:flutter/material.dart';
       4             : import 'package:mvvm_builder/mvvm_builder.dart';
       5             : import 'package:pal/src/database/entity/helper/helper_entity.dart';
       6             : import 'package:pal/src/database/entity/helper/helper_theme.dart';
       7             : import 'package:pal/src/database/entity/helper/helper_trigger_type.dart';
       8             : import 'package:pal/src/database/entity/helper/helper_type.dart';
       9             : import 'package:pal/src/ui/editor/pages/helper_editor/font_editor/pickers/font_weight_picker/font_weight_picker_loader.dart';
      10             : import 'package:pal/src/ui/editor/pages/helper_editor/helper_editor_notifiers.dart';
      11             : import 'package:pal/src/ui/editor/pages/helper_editor/helper_editor_viewmodel.dart';
      12             : import 'package:pal/src/ui/shared/helper_shared_factory.dart';
      13             : import 'package:pal/src/ui/shared/helper_shared_viewmodels.dart';
      14             : 
      15             : 
      16             : class FullscreenHelperViewModel extends HelperViewModel {
      17             : 
      18             :   // form
      19             :   double helperOpacity;
      20             :   ValueNotifier<bool> canValidate;
      21             :   StreamController<bool> editableTextFieldController;
      22             : 
      23             :   // helper properties
      24             :   LanguageNotifier language;
      25             :   BoxNotifier bodyBox;
      26             :   MediaNotifier media;
      27             :   TextFormFieldNotifier titleField;
      28             :   TextFormFieldNotifier descriptionField;
      29             :   TextFormFieldNotifier positivButtonField;
      30             :   TextFormFieldNotifier negativButtonField;
      31             : 
      32           1 :   FullscreenHelperViewModel({
      33             :     String id,
      34             :     @required String name,
      35             :     @required HelperTriggerType triggerType,
      36             :     @required int priority,
      37             :     @required HelperTheme helperTheme,
      38             :     String minVersionCode,
      39             :     String maxVersionCode,
      40             :     int versionMaxId,
      41             :     int languageId,
      42             :     // For edit mode only
      43             :     HelperBoxViewModel boxViewModel,
      44             :     HelperImageViewModel helperImageViewModel,
      45             :     HelperTextViewModel titleViewModel,
      46             :     HelperTextViewModel descriptionLabel,
      47             :     HelperTextViewModel positivButtonLabel,
      48             :     HelperTextViewModel negativButtonLabel,
      49           1 :   }) : super(
      50             :     id: id,
      51             :     name: name,
      52             :     triggerType: triggerType,
      53             :     priority: priority,
      54             :     minVersionCode: minVersionCode,
      55             :     maxVersionCode: maxVersionCode,
      56             :     helperTheme: helperTheme,
      57             :     helperType: HelperType.HELPER_FULL_SCREEN,
      58             :   ) {
      59           2 :     this.language = LanguageNotifier(
      60             :       id: languageId ?? 1,
      61             :     );
      62           2 :     this.bodyBox = BoxNotifier(
      63           1 :       id: boxViewModel?.id,
      64           1 :       backgroundColor: boxViewModel?.backgroundColor ?? Colors.blueAccent,
      65             :     );
      66           2 :     this.media = MediaNotifier(
      67           1 :       id: helperImageViewModel?.id,
      68           1 :       url: helperImageViewModel?.url,
      69             :     );
      70           2 :     this.titleField = TextFormFieldNotifier(
      71           1 :       id: titleViewModel?.id,
      72           1 :       fontColor: titleViewModel?.fontColor ?? Colors.white,
      73           2 :       fontSize: titleViewModel?.fontSize?.toInt() ?? 60,
      74           1 :       fontFamily: titleViewModel?.fontFamily,
      75           1 :       text: titleViewModel?.text ?? '',
      76           2 :       fontWeight: FontWeightMapper.toFontKey(titleViewModel?.fontWeight),
      77             :     );
      78           2 :     this.descriptionField = TextFormFieldNotifier(
      79           1 :       id: descriptionLabel?.id,
      80           1 :       fontColor: descriptionLabel?.fontColor ?? Colors.white,
      81           2 :       fontSize: descriptionLabel?.fontSize?.toInt() ?? 14,
      82           1 :       text: descriptionLabel?.text ?? 'Describe me',
      83           2 :       fontWeight: FontWeightMapper.toFontKey(descriptionLabel?.fontWeight),
      84           1 :       fontFamily: descriptionLabel?.fontFamily,
      85             :     );
      86           2 :     this.positivButtonField = TextFormFieldNotifier(
      87           0 :       id: positivButtonLabel?.id,
      88           0 :       fontColor: positivButtonLabel?.fontColor ?? Colors.white,
      89           0 :       fontSize: positivButtonLabel?.fontSize?.toInt() ?? 23,
      90           0 :       text: positivButtonLabel?.text ?? 'Ok, thanks !',
      91           1 :       fontWeight: FontWeightMapper.toFontKey(
      92           0 :         positivButtonLabel?.fontWeight ?? FontWeight.bold,
      93             :       ),
      94           0 :       fontFamily: positivButtonLabel?.fontFamily,
      95             :     );
      96           2 :     this.negativButtonField = TextFormFieldNotifier(
      97           0 :       id: negativButtonLabel?.id,
      98           0 :       text: negativButtonLabel?.text ?? 'This is not helping',
      99           1 :       fontWeight: FontWeightMapper.toFontKey(
     100           0 :         negativButtonLabel?.fontWeight ?? FontWeight.bold),
     101           0 :       fontColor: negativButtonLabel?.fontColor ?? Colors.white,
     102           0 :       fontSize: negativButtonLabel?.fontSize?.toInt() ?? 13,
     103           0 :       fontFamily: negativButtonLabel?.fontFamily,
     104             :     );
     105             :   }
     106             : 
     107           1 :   factory FullscreenHelperViewModel.fromHelperViewModel(HelperViewModel model) {
     108           1 :     final fullscreenHelper = FullscreenHelperViewModel(
     109           1 :       id: model.id,
     110           1 :       name: model.name,
     111           1 :       triggerType: model.triggerType,
     112           1 :       priority: model.priority,
     113           1 :       maxVersionCode: model.maxVersionCode,
     114           1 :       minVersionCode: model.minVersionCode,
     115           1 :       helperTheme: model.helperTheme,
     116             :     );
     117             : 
     118           1 :     if (model is FullscreenHelperViewModel) {
     119           0 :       fullscreenHelper.bodyBox = model?.bodyBox;
     120           0 :       fullscreenHelper.language = model?.language;
     121           0 :       fullscreenHelper.titleField = model?.titleField;
     122           0 :       fullscreenHelper.descriptionField = model?.descriptionField;
     123           0 :       fullscreenHelper.positivButtonField = model?.positivButtonField;
     124           0 :       fullscreenHelper.negativButtonField = model?.negativButtonField;
     125           0 :       fullscreenHelper.media = model?.media;
     126             :     }
     127             : 
     128             :     return fullscreenHelper;
     129             :   }
     130             : 
     131           1 :   factory FullscreenHelperViewModel.fromHelperEntity(HelperEntity helperEntity) =>
     132           1 :     FullscreenHelperViewModel(
     133           1 :       id: helperEntity?.id,
     134           1 :       name: helperEntity?.name,
     135           1 :       triggerType: helperEntity?.triggerType,
     136           1 :       priority: helperEntity?.priority,
     137           1 :       minVersionCode: helperEntity?.versionMin,
     138           1 :       maxVersionCode: helperEntity?.versionMax,
     139             :       helperTheme: null,
     140           1 :       boxViewModel: HelperSharedFactory.parseBoxBackground(
     141             :         SimpleHelperKeys.BACKGROUND_KEY,
     142           1 :         helperEntity?.helperBoxes,
     143             :       ),
     144           1 :       titleViewModel: HelperSharedFactory.parseTextLabel(
     145             :         FullscreenHelperKeys.TITLE_KEY,
     146           1 :         helperEntity?.helperTexts,
     147             :       ),
     148           1 :       descriptionLabel: HelperSharedFactory.parseTextLabel(
     149             :         FullscreenHelperKeys.DESCRIPTION_KEY,
     150           1 :         helperEntity?.helperTexts,
     151             :       ),
     152           1 :       positivButtonLabel: HelperSharedFactory.parseTextLabel(
     153             :         FullscreenHelperKeys.POSITIV_KEY,
     154           1 :         helperEntity?.helperTexts,
     155             :       ),
     156           1 :       negativButtonLabel: HelperSharedFactory.parseTextLabel(
     157             :         FullscreenHelperKeys.NEGATIV_KEY,
     158           1 :         helperEntity?.helperTexts,
     159             :       ),
     160           1 :       helperImageViewModel: HelperSharedFactory.parseImageUrl(
     161             :         FullscreenHelperKeys.IMAGE_KEY,
     162           1 :         helperEntity?.helperImages,
     163             :       ),
     164             :     );
     165             : }

Generated by: LCOV version 1.14