onboard_model.dart 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. // ignore_for_file: non_constant_identifier_names
  2. import 'package:flutter/material.dart';
  3. import 'package:general_package/enum_to_string/enum_to_string.dart';
  4. import 'package:general_package/permisiion_converter/permission_converter.dart';
  5. import 'package:get/get.dart';
  6. import 'package:permission_handler/permission_handler.dart';
  7. stringToAlignment(String? alignmentString){
  8. Alignment imageAlignment=Alignment.center;
  9. if (alignmentString=="bottomCenter") {
  10. imageAlignment=Alignment.bottomCenter;
  11. }else if (alignmentString=="bottomLeft") {
  12. imageAlignment=Alignment.bottomLeft;
  13. }else if (alignmentString=="bottomRight") {
  14. imageAlignment=Alignment.bottomRight;
  15. }else if (alignmentString=="centerLeft") {
  16. imageAlignment=Alignment.centerLeft;
  17. }else if (alignmentString=="centerRight") {
  18. imageAlignment=Alignment.centerRight;
  19. }else if (alignmentString=="topCenter") {
  20. imageAlignment=Alignment.topCenter;
  21. }else if (alignmentString=="topLeft") {
  22. imageAlignment=Alignment.topLeft;
  23. }else if (alignmentString=="topRight") {
  24. imageAlignment=Alignment.topRight;
  25. }
  26. return imageAlignment;
  27. }
  28. class OnboardModel {
  29. final int id;
  30. final String title;
  31. final String description;
  32. final String image;
  33. final Alignment imageAlignment;
  34. OnboardModel(
  35. {required this.id,
  36. required this.title,
  37. required this.description,
  38. required this.image,
  39. required this.imageAlignment,});
  40. static Map<String, dynamic> toMap(OnboardModel form) {
  41. var map = <String, dynamic>{};
  42. map['id'] = form.id;
  43. map['title'] = form.title;
  44. map['description'] = form.description;
  45. map['image'] = form.image;
  46. return map;
  47. }
  48. factory OnboardModel.fromJson(dynamic json) {
  49. return OnboardModel(
  50. id: json['id'],
  51. title: json['title'],
  52. description: json['description'],
  53. image: json['image'],
  54. imageAlignment: stringToAlignment(json['imageAlignment']),
  55. );
  56. }
  57. }
  58. class permissionDescriptionModel {
  59. final int id;
  60. final String title;
  61. final String image;
  62. permissionDescriptionModel({
  63. required this.id,
  64. required this.title,
  65. required this.image,
  66. });
  67. static Map<String, dynamic> toMap(
  68. permissionDescriptionModel form) {
  69. var map = <String, dynamic>{};
  70. map['id'] =
  71. form.id;
  72. map['title'] =
  73. form.title;
  74. map['image'] =
  75. form.image;
  76. return map;
  77. }
  78. factory permissionDescriptionModel.fromJson(dynamic json) {
  79. return permissionDescriptionModel(
  80. id:
  81. json["id"],
  82. title:
  83. json['title'],
  84. image:
  85. json['image'],
  86. );
  87. }
  88. }
  89. enum requestTypes { location, storage, camera, contact }
  90. class OnboardPermissionModel {
  91. final int id;
  92. final String title;
  93. final String image;
  94. final Permission request;
  95. final bool requestIsGranted;
  96. final List<permissionDescriptionModel>
  97. permissionDescription;
  98. OnboardPermissionModel(
  99. {required this.id,
  100. required this.title,
  101. required this.image,
  102. required this.request,
  103. required this.requestIsGranted,
  104. required this.permissionDescription});
  105. static Map<String, dynamic> toMap(OnboardPermissionModel form) {
  106. var map = <String, dynamic>{};
  107. map['id'] = form.id;
  108. map['title'] = form.title;
  109. map['image'] = form.image;
  110. map['request'] =
  111. EnumToString.convertToString(form.request);
  112. map['permissionDescription'] =
  113. form.permissionDescription.map(
  114. (permissionDescription) =>
  115. permissionDescriptionModel.toMap(
  116. permissionDescription)).toList();
  117. return map;
  118. }
  119. factory OnboardPermissionModel.fromJson(dynamic json) {
  120. return OnboardPermissionModel(
  121. id: json["id"],
  122. title: json['title'],
  123. image: json['image'],
  124. request:
  125. PermissionConverter.fromString(json['request']),
  126. requestIsGranted: false,
  127. permissionDescription: json['permissionDescription']
  128. .map<permissionDescriptionModel>((permissionDescription) =>
  129. permissionDescriptionModel.fromJson(
  130. permissionDescription))
  131. .toList(),
  132. );
  133. }
  134. }
  135. class OnboardMainModel {
  136. final String appIcon;
  137. final String splashImage;
  138. final List<OnboardModel> onboard;
  139. final List<OnboardPermissionModel> onboardPermission;
  140. OnboardMainModel(
  141. {required this.appIcon,
  142. required this.splashImage,
  143. required this.onboard,
  144. required this.onboardPermission});
  145. static Map<String, dynamic> toMap(OnboardMainModel form) {
  146. var map = <String, dynamic>{};
  147. map['appIcon'] = form.appIcon;
  148. map['splashImage'] = form.splashImage;
  149. map['onboard'] =
  150. form.onboard.map((Onboard) => OnboardModel.toMap(Onboard)).toList();
  151. map['onboardPermission'] = form.onboardPermission.map(
  152. (onboardPermission) =>
  153. OnboardPermissionModel.toMap(onboardPermission)).toList();
  154. return map;
  155. }
  156. factory OnboardMainModel.fromJson(dynamic json) {
  157. return OnboardMainModel(
  158. appIcon: json['appIcon'],
  159. splashImage: json['splashImage'],
  160. onboard: json['onboard']
  161. .map<OnboardModel>((Onboard) => OnboardModel.fromJson(Onboard))
  162. .toList(),
  163. onboardPermission: json['onboardPermission']
  164. .map<OnboardPermissionModel>((OnboardPermission) =>
  165. OnboardPermissionModel.fromJson(OnboardPermission))
  166. .toList(),
  167. );
  168. }
  169. }
  170. class OnboardController extends GetxController {
  171. final onboardMainModel = Rxn<OnboardMainModel>();
  172. set(data){
  173. onboardMainModel.value= OnboardMainModel.fromJson(data);
  174. }
  175. clear(){
  176. onboardMainModel.value= null;
  177. }
  178. @override
  179. void onInit() {
  180. ever(onboardMainModel, (value) => print("$value has been changed!!!"));
  181. super.onInit();
  182. }
  183. }
  184. final OnboardController onboardController = Get.put(OnboardController());