Line data Source code
1 : import 'package:flutter/material.dart'; 2 : import 'package:mvvm_builder/mvvm_builder.dart'; 3 : import 'package:pal/src/database/entity/helper/helper_trigger_type.dart'; 4 : import 'package:pal/src/database/entity/helper/helper_type.dart'; 5 : import 'package:pal/src/services/editor/helper/helper_editor_models.dart'; 6 : import 'package:pal/src/ui/editor/pages/helper_editor/font_editor/pickers/font_weight_picker/font_weight_picker_loader.dart'; 7 : import 'package:pal/src/ui/editor/pages/helper_editor/helper_editor_notifiers.dart'; 8 : import 'package:pal/src/database/entity/helper/helper_entity.dart'; 9 : import 'package:pal/src/database/entity/helper/helper_theme.dart'; 10 : import 'package:pal/src/ui/shared/helper_shared_factory.dart'; 11 : import 'package:pal/src/ui/shared/helper_shared_viewmodels.dart'; 12 : 13 : class HelperEditorViewModel extends MVVMModel { 14 : bool enableSave; 15 : bool isLoading; 16 : bool isEditableWidgetValid; 17 : bool isEditingWidget; 18 : bool isKeyboardOpened; 19 : double loadingOpacity; 20 : bool isHelperCreated; 21 : bool isHelperCreating; 22 : 23 : // This the template view model with all default values 24 : HelperViewModel templateViewModel; 25 : 26 : // This is the actual edited widget view model 27 : HelperViewModel helperViewModel; 28 : } 29 : 30 : // this is used to let user choose between all available type options 31 : class HelperTypeOption { 32 : String text; 33 : HelperType type; 34 : IconData icon; 35 : 36 0 : HelperTypeOption( 37 : this.text, 38 : this.type, { 39 : this.icon = Icons.border_outer, 40 : }); 41 : } 42 : 43 : class HelperViewModel extends MVVMModel { 44 : final String id; 45 : final String name; 46 : final HelperTriggerType triggerType; 47 : final int priority; 48 : final String minVersionCode; 49 : final String maxVersionCode; 50 : final HelperTheme helperTheme; 51 : final HelperType helperType; 52 : 53 4 : HelperViewModel({ 54 : this.id, 55 : @required this.name, 56 : @required this.triggerType, 57 : this.priority, 58 : this.minVersionCode, 59 : @required this.helperType, 60 : this.helperTheme, 61 : this.maxVersionCode, 62 : }); 63 : 64 : } 65 :