LCOV - code coverage report
Current view: top level - src/ui/editor/pages/helper_editor - helper_editor_factory.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 79 96 82.3 %
Date: 2020-12-04 18:41:24 Functions: 0 0 -

          Line data    Source code
       1             : import 'package:pal/src/database/entity/helper/helper_type.dart';
       2             : import 'package:pal/src/services/editor/helper/helper_editor_models.dart';
       3             : import 'package:pal/src/ui/editor/pages/helper_editor/helper_editor_viewmodel.dart';
       4             : import 'package:pal/src/extensions/color_extension.dart';
       5             : import 'package:pal/src/database/entity/helper/helper_entity.dart';
       6             : 
       7             : import 'helpers/editor_fullscreen_helper/editor_fullscreen_helper_viewmodel.dart';
       8             : import 'helpers/editor_simple_helper/editor_simple_helper_viewmodel.dart';
       9             : import 'helpers/editor_update_helper/editor_update_helper_viewmodel.dart';
      10             : 
      11             : class EditorViewModelFactory {
      12             : 
      13           0 :   @deprecated
      14             :   static HelperViewModel transform(HelperViewModel model) {
      15           0 :     switch (model?.helperType) {
      16           0 :       case HelperType.HELPER_FULL_SCREEN:
      17           0 :         return FullscreenHelperViewModel.fromHelperViewModel(model);
      18           0 :       case HelperType.SIMPLE_HELPER:
      19           0 :         return SimpleHelperViewModel.fromHelperViewModel(model);
      20           0 :       case HelperType.UPDATE_HELPER:
      21           0 :         return UpdateHelperViewModel.fromHelperViewModel(model);
      22           0 :       case HelperType.ANCHORED_OVERLAYED_HELPER:
      23             :         return model;
      24             :       default:
      25             :         return null;
      26             :     }
      27             :   }
      28             : 
      29           0 :   static HelperViewModel build(HelperEntity helperEntity) {
      30           0 :     switch (helperEntity?.type) {
      31           0 :       case HelperType.HELPER_FULL_SCREEN:
      32           0 :         return FullscreenHelperViewModel.fromHelperEntity(helperEntity);
      33           0 :       case HelperType.SIMPLE_HELPER:
      34           0 :         return SimpleHelperViewModel.fromHelperEntity(helperEntity);
      35           0 :       case HelperType.UPDATE_HELPER:
      36           0 :         return UpdateHelperViewModel.fromHelperEntity(helperEntity);
      37             :       default:
      38             :         return null;
      39             :     }
      40             :   }
      41             : }
      42             : 
      43             : class EditorEntityFactory {
      44             : 
      45           1 :   static CreateFullScreenHelper buildFullscreenArgs(
      46             :     CreateHelperConfig config,
      47             :     FullscreenHelperViewModel model,
      48             :   ) =>
      49           1 :       CreateFullScreenHelper(
      50             :         config: config,
      51           1 :         title: HelperTextConfig(
      52           2 :           id: model.titleField?.id,
      53           3 :           text: model.titleField?.text?.value,
      54           4 :           fontColor: model.titleField?.fontColor?.value?.toHex(),
      55           3 :           fontWeight: model.titleField?.fontWeight?.value,
      56           3 :           fontSize: model.titleField?.fontSize?.value,
      57           3 :           fontFamily: model.titleField?.fontFamily?.value,
      58             :         ),
      59           1 :         description: HelperTextConfig(
      60           2 :           id: model.descriptionField?.id,
      61           3 :           text: model.descriptionField?.text?.value,
      62           4 :           fontColor: model.descriptionField?.fontColor?.value?.toHex(),
      63           3 :           fontWeight: model.descriptionField?.fontWeight?.value,
      64           3 :           fontSize: model.descriptionField?.fontSize?.value,
      65           3 :           fontFamily: model.descriptionField?.fontFamily?.value,
      66             :         ),
      67           1 :         mediaHeader: HelperMediaConfig(
      68           2 :           id: model.media?.id,
      69           3 :           url: model.media?.url?.value,
      70             :         ),
      71           1 :         bodyBox: HelperBoxConfig(
      72           2 :           id: model.bodyBox?.id,
      73           4 :           color: model.bodyBox?.backgroundColor?.value?.toHex(),
      74             :         ),
      75           1 :         positivButton: HelperTextConfig(
      76           2 :           id: model.positivButtonField?.id,
      77           3 :           text: model.positivButtonField?.text?.value,
      78           4 :           fontColor: model.positivButtonField?.fontColor?.value?.toHex(),
      79           3 :           fontWeight: model.positivButtonField?.fontWeight?.value,
      80           3 :           fontSize: model.positivButtonField?.fontSize?.value,
      81           3 :           fontFamily: model.positivButtonField?.fontFamily?.value,
      82             :         ),
      83           1 :         negativButton: HelperTextConfig(
      84           2 :           id: model.negativButtonField?.id,
      85           3 :           text: model.negativButtonField?.text?.value,
      86           4 :           fontColor: model.negativButtonField?.fontColor?.value?.toHex(),
      87           3 :           fontWeight: model.negativButtonField?.fontWeight?.value,
      88           3 :           fontSize: model.negativButtonField?.fontSize?.value,
      89           3 :           fontFamily: model.negativButtonField?.fontFamily?.value,
      90             :         ),
      91             :       );
      92             : 
      93           1 :   static CreateSimpleHelper buildSimpleArgs(
      94             :           CreateHelperConfig config, SimpleHelperViewModel model) =>
      95           1 :       CreateSimpleHelper(
      96             :         config: config,
      97           1 :         boxConfig: HelperBoxConfig(
      98           2 :           id: model.bodyBox?.id,
      99           4 :           color: model.bodyBox?.backgroundColor?.value?.toHex(),
     100             :         ),
     101           1 :         titleText: HelperTextConfig(
     102           3 :           text: model.detailsField?.text?.value,
     103           4 :           fontColor: model.detailsField?.fontColor?.value?.toHex(),
     104           3 :           fontWeight: model.detailsField?.fontWeight?.value,
     105           3 :           fontSize: model.detailsField?.fontSize?.value,
     106           3 :           fontFamily: model.detailsField?.fontFamily?.value,
     107             :         ),
     108             :       );
     109             : 
     110           1 :   static CreateUpdateHelper buildUpdateArgs(
     111             :       CreateHelperConfig config, UpdateHelperViewModel model) {
     112           1 :     List<HelperTextConfig> lines = [];
     113           3 :     for (var note in model.changelogsFields.entries) {
     114           1 :       lines.add(
     115           1 :         HelperTextConfig(
     116           2 :           id: note?.value?.id,
     117           3 :           text: note?.value?.text?.value,
     118           4 :           fontColor: note?.value?.fontColor?.value?.toHex(),
     119           3 :           fontWeight: note?.value?.fontWeight?.value,
     120           3 :           fontSize: note?.value?.fontSize?.value,
     121           3 :           fontFamily: note?.value?.fontFamily?.value,
     122             :         ),
     123             :       );
     124             :     }
     125           1 :     return CreateUpdateHelper(
     126             :       config: config,
     127           1 :       title: HelperTextConfig(
     128           2 :         id: model.titleField?.id,
     129           3 :         text: model.titleField?.text?.value,
     130           4 :         fontColor: model.titleField?.fontColor?.value?.toHex(),
     131           3 :         fontWeight: model.titleField?.fontWeight?.value,
     132           3 :         fontSize: model.titleField?.fontSize?.value,
     133           3 :         fontFamily: model.titleField?.fontFamily?.value,
     134             :       ),
     135           1 :       headerMedia: HelperMediaConfig(
     136           2 :         id: model.media?.id,
     137           3 :         url: model.media?.url?.value,
     138             :       ),
     139           1 :       bodyBox: HelperBoxConfig(
     140           2 :         id: model.bodyBox?.id,
     141           4 :         color: model.bodyBox?.backgroundColor?.value?.toHex(),
     142             :       ),
     143             :       lines: lines,
     144           1 :       positivButton: HelperTextConfig(
     145           2 :         id: model.thanksButton?.id,
     146           3 :         text: model.thanksButton?.text?.value,
     147           4 :         fontColor: model.thanksButton?.fontColor?.value?.toHex(),
     148           3 :         fontWeight: model.thanksButton?.fontWeight?.value,
     149           3 :         fontSize: model.thanksButton?.fontSize?.value,
     150           3 :         fontFamily: model.thanksButton?.fontFamily?.value,
     151             :       ),
     152             :     );
     153             :   }
     154             : }

Generated by: LCOV version 1.14