dienianindya 1 year ago
parent
commit
701fe7168d
31 changed files with 446 additions and 405 deletions
  1. 12
    2
      android/app/build.gradle
  2. 8
    9
      android/app/google-services.json
  3. 40
    0
      android/app/google-services_lama.json
  4. 2
    0
      android/app/src/main/AndroidManifest.xml
  5. 1
    1
      android/build.gradle
  6. BIN
      firebase-tools-instant-win.exe
  7. 21
    0
      flutterfire.bat
  8. BIN
      hris_keystore.jks
  9. 3
    5
      lib/Screens/Home/home_screen.dart
  10. 5
    14
      lib/Screens/Menu/Absensi/absensi_history_screen.dart
  11. 100
    33
      lib/Screens/Menu/Absensi/absensi_screen.dart
  12. 5
    5
      lib/Screens/Menu/AjukanCuti/ajukancuti_screen.dart
  13. 3
    3
      lib/Screens/Menu/AjukanCuti/history_cuti.dart
  14. 5
    3
      lib/Screens/Menu/Reimburse/RequestHttp/pengajuanReimburse_post.dart
  15. 5
    4
      lib/Screens/Menu/Reimburse/history_reimburse.dart
  16. 28
    38
      lib/Screens/Menu/Reimburse/reimburse_screen.dart
  17. 22
    18
      lib/Screens/Menu/SlipGaji/slipgaji_screen.dart
  18. 4
    91
      lib/Screens/Menu/SuratTugas/history_st.dart
  19. 3
    29
      lib/Screens/Menu/SuratTugas/pengajuan_extendTanggalKembali.dart
  20. 3
    29
      lib/Screens/Menu/SuratTugas/pengajuan_st.dart
  21. 3
    32
      lib/Screens/Menu/SuratTugas/pengajuan_uangMukaTambahan.dart
  22. 3
    3
      lib/Screens/Settings/settings_screen.dart
  23. 1
    1
      lib/main.dart
  24. 4
    0
      linux/flutter/generated_plugin_registrant.cc
  25. 1
    0
      linux/flutter/generated_plugins.cmake
  26. 2
    0
      macos/Flutter/GeneratedPluginRegistrant.swift
  27. 146
    74
      pubspec.lock
  28. 12
    11
      pubspec.yaml
  29. BIN
      ttwenty.jks
  30. 3
    0
      windows/flutter/generated_plugin_registrant.cc
  31. 1
    0
      windows/flutter/generated_plugins.cmake

+ 12
- 2
android/app/build.gradle View File

39
 
39
 
40
     defaultConfig {
40
     defaultConfig {
41
         // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
41
         // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
42
-        applicationId "com.example.hris_selfservice_mobile"
42
+        applicationId "com.urp.hris"
43
         // You can update the following values to match your application needs.
43
         // You can update the following values to match your application needs.
44
         // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration.
44
         // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration.
45
         //minSdkVersion flutter.minSdkVersion
45
         //minSdkVersion flutter.minSdkVersion
51
         multiDexEnabled true
51
         multiDexEnabled true
52
     }
52
     }
53
 
53
 
54
+    signingConfigs {
55
+        release {
56
+            storeFile file('D:/employee_self_service/ttwenty.jks')
57
+            storePassword '123123'
58
+            keyAlias 'ttwenty'
59
+            keyPassword '123123'
60
+        }
61
+    }
62
+
54
     buildTypes {
63
     buildTypes {
55
         release {
64
         release {
56
             // TODO: Add your own signing config for the release build.
65
             // TODO: Add your own signing config for the release build.
57
             // Signing with the debug keys for now, so `flutter run --release` works.
66
             // Signing with the debug keys for now, so `flutter run --release` works.
58
-            signingConfig signingConfigs.debug
67
+            //signingConfig signingConfigs.debug
68
+            signingConfig signingConfigs.release
59
         }
69
         }
60
     }
70
     }
61
 }
71
 }

+ 8
- 9
android/app/google-services.json View File

1
 {
1
 {
2
   "project_info": {
2
   "project_info": {
3
-    "project_number": "372840384875",
4
-    "firebase_url": "https://gsi---employee-self-service-default-rtdb.asia-southeast1.firebasedatabase.app",
5
-    "project_id": "gsi---employee-self-service",
6
-    "storage_bucket": "gsi---employee-self-service.appspot.com"
3
+    "project_number": "476641837995",
4
+    "project_id": "employee-self-service-8280b",
5
+    "storage_bucket": "employee-self-service-8280b.appspot.com"
7
   },
6
   },
8
   "client": [
7
   "client": [
9
     {
8
     {
10
       "client_info": {
9
       "client_info": {
11
-        "mobilesdk_app_id": "1:372840384875:android:cbf80d0700f53d3ffd642e",
10
+        "mobilesdk_app_id": "1:476641837995:android:667f14658e56d0350e08ee",
12
         "android_client_info": {
11
         "android_client_info": {
13
-          "package_name": "com.example.hris_selfservice_mobile"
12
+          "package_name": "com.urp.hris"
14
         }
13
         }
15
       },
14
       },
16
       "oauth_client": [
15
       "oauth_client": [
17
         {
16
         {
18
-          "client_id": "372840384875-6pj63n6au94f00vr8lirqgvo9i82lvh0.apps.googleusercontent.com",
17
+          "client_id": "476641837995-sggr0a4kamrivljkugc8392sobp4jq4d.apps.googleusercontent.com",
19
           "client_type": 3
18
           "client_type": 3
20
         }
19
         }
21
       ],
20
       ],
22
       "api_key": [
21
       "api_key": [
23
         {
22
         {
24
-          "current_key": "AIzaSyDUzNWQ2cvWrL77QHekf_FASfMb5KTDnuY"
23
+          "current_key": "AIzaSyDKZ2NozLQUpWeH2Cv17kuJz1f_MsG-p1Y"
25
         }
24
         }
26
       ],
25
       ],
27
       "services": {
26
       "services": {
28
         "appinvite_service": {
27
         "appinvite_service": {
29
           "other_platform_oauth_client": [
28
           "other_platform_oauth_client": [
30
             {
29
             {
31
-              "client_id": "372840384875-6pj63n6au94f00vr8lirqgvo9i82lvh0.apps.googleusercontent.com",
30
+              "client_id": "476641837995-sggr0a4kamrivljkugc8392sobp4jq4d.apps.googleusercontent.com",
32
               "client_type": 3
31
               "client_type": 3
33
             }
32
             }
34
           ]
33
           ]

+ 40
- 0
android/app/google-services_lama.json View File

1
+{
2
+  "project_info": {
3
+    "project_number": "372840384875",
4
+    "firebase_url": "https://gsi---employee-self-service-default-rtdb.asia-southeast1.firebasedatabase.app",
5
+    "project_id": "gsi---employee-self-service",
6
+    "storage_bucket": "gsi---employee-self-service.appspot.com"
7
+  },
8
+  "client": [
9
+    {
10
+      "client_info": {
11
+        "mobilesdk_app_id": "1:372840384875:android:cbf80d0700f53d3ffd642e",
12
+        "android_client_info": {
13
+          "package_name": "com.example.hris_selfservice_mobile"
14
+        }
15
+      },
16
+      "oauth_client": [
17
+        {
18
+          "client_id": "372840384875-6pj63n6au94f00vr8lirqgvo9i82lvh0.apps.googleusercontent.com",
19
+          "client_type": 3
20
+        }
21
+      ],
22
+      "api_key": [
23
+        {
24
+          "current_key": "AIzaSyDUzNWQ2cvWrL77QHekf_FASfMb5KTDnuY"
25
+        }
26
+      ],
27
+      "services": {
28
+        "appinvite_service": {
29
+          "other_platform_oauth_client": [
30
+            {
31
+              "client_id": "372840384875-6pj63n6au94f00vr8lirqgvo9i82lvh0.apps.googleusercontent.com",
32
+              "client_type": 3
33
+            }
34
+          ]
35
+        }
36
+      }
37
+    }
38
+  ],
39
+  "configuration_version": "1"
40
+}

+ 2
- 0
android/app/src/main/AndroidManifest.xml View File

4
 
4
 
5
     <uses-permission android:name="android.permission.INTERNET" />
5
     <uses-permission android:name="android.permission.INTERNET" />
6
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
6
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
7
+    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
7
     <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
8
     <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
9
+    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
8
 
10
 
9
     <application
11
     <application
10
         android:icon="@mipmap/ic_launcher"
12
         android:icon="@mipmap/ic_launcher"

+ 1
- 1
android/build.gradle View File

9
         classpath 'com.android.tools.build:gradle:7.1.3'
9
         classpath 'com.android.tools.build:gradle:7.1.3'
10
         classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
10
         classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
11
         classpath 'com.google.gms:google-services:4.3.15'
11
         classpath 'com.google.gms:google-services:4.3.15'
12
-        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.5'
12
+        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.9'
13
     }
13
     }
14
 }
14
 }
15
 
15
 

BIN
firebase-tools-instant-win.exe View File


+ 21
- 0
flutterfire.bat View File

1
+@echo off
2
+rem This file was created by pub v3.0.5.
3
+rem Package: flutterfire_cli
4
+rem Version: 0.2.7
5
+rem Executable: flutterfire
6
+rem Script: flutterfire
7
+if exist "C:\Users\Dieni Anindyasarathi.DIENIA-GSI\AppData\Local\Pub\Cache\global_packages\flutterfire_cli\bin\flutterfire.dart-3.0.5.snapshot"                                                                                                                                 (
8
+  call dart "C:\Users\Dieni Anindyasarathi.DIENIA-GSI\AppData\Local\Pub\Cache\global_packages\flutterfire_cli\bin\flutterfire.dart-3.0.5.snapshot"                                                                                                                                 %*
9
+  rem The VM exits with code 253 if the snapshot version is out-of-date.
10
+  rem If it is, we need to delete it and run "pub global" manually.
11
+  if not errorlevel 253 (
12
+    goto error
13
+  )
14
+  call dart pub global run flutterfire_cli:flutterfire %*
15
+) else (
16
+  call dart pub global run flutterfire_cli:flutterfire %*
17
+)
18
+goto eof
19
+:error
20
+exit /b %errorlevel%
21
+:eof

BIN
hris_keystore.jks View File


+ 3
- 5
lib/Screens/Home/home_screen.dart View File

121
                   .image;
121
                   .image;
122
             });
122
             });
123
           }
123
           }
124
-          loading.hide();
124
+          await loading.hide();
125
         } else if (status == "failed") {
125
         } else if (status == "failed") {
126
           String message = object['result']['message'].toString();
126
           String message = object['result']['message'].toString();
127
           Fluttertoast.showToast(
127
           Fluttertoast.showToast(
132
               textColor: Colors.white,
132
               textColor: Colors.white,
133
               fontSize: 16.0);
133
               fontSize: 16.0);
134
         }
134
         }
135
-        loading.hide();
135
+        await loading.hide();
136
       } else {
136
       } else {
137
         Fluttertoast.showToast(
137
         Fluttertoast.showToast(
138
             msg: "Server Response Error",
138
             msg: "Server Response Error",
141
             timeInSecForIosWeb: 1,
141
             timeInSecForIosWeb: 1,
142
             textColor: Colors.white,
142
             textColor: Colors.white,
143
             fontSize: 16.0);
143
             fontSize: 16.0);
144
-        loading.hide();
144
+        await loading.hide();
145
       }
145
       }
146
     });
146
     });
147
     return _imageToShow;
147
     return _imageToShow;
344
               textColor: Colors.white,
344
               textColor: Colors.white,
345
               fontSize: 16.0);
345
               fontSize: 16.0);
346
         }
346
         }
347
-        //loading.hide();
348
       } else {
347
       } else {
349
         Fluttertoast.showToast(
348
         Fluttertoast.showToast(
350
             msg: "Server Response Error",
349
             msg: "Server Response Error",
353
             timeInSecForIosWeb: 1,
352
             timeInSecForIosWeb: 1,
354
             textColor: Colors.white,
353
             textColor: Colors.white,
355
             fontSize: 16.0);
354
             fontSize: 16.0);
356
-        //loading.hide();
357
       }
355
       }
358
     });
356
     });
359
     return _imageToShow;
357
     return _imageToShow;

+ 5
- 14
lib/Screens/Menu/Absensi/absensi_history_screen.dart View File

65
     date_list_2 = [""];
65
     date_list_2 = [""];
66
     month_list_2 = [""];
66
     month_list_2 = [""];
67
 
67
 
68
-
69
-    Firebase.initializeApp();
70
-
71
-    //Enable Crashlytics
72
-    FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(true);
73
-
74
     WidgetsBinding.instance.addPostFrameCallback((_) async {
68
     WidgetsBinding.instance.addPostFrameCallback((_) async {
75
       getHistoryData();
69
       getHistoryData();
76
     });
70
     });
95
         messageTextStyle: TextStyle(
89
         messageTextStyle: TextStyle(
96
             color: Colors.black, fontSize: 15.0, fontWeight: FontWeight.w600));
90
             color: Colors.black, fontSize: 15.0, fontWeight: FontWeight.w600));
97
 
91
 
98
-    loading.show();
92
+    await loading.show();
99
     HistoryAbsensi_Post.connectToAPI().then((valueResult) async {
93
     HistoryAbsensi_Post.connectToAPI().then((valueResult) async {
100
       Map<String, dynamic> object = jsonDecode(valueResult);
94
       Map<String, dynamic> object = jsonDecode(valueResult);
101
       if (object.containsKey("result").toString() == "true") {
95
       if (object.containsKey("result").toString() == "true") {
102
         String result = object['result'].toString();
96
         String result = object['result'].toString();
103
         if (result.contains("failed")) {
97
         if (result.contains("failed")) {
104
-          loading.hide();
98
+          await loading.hide();
105
           alertDialogFailedRetrievedData(context);
99
           alertDialogFailedRetrievedData(context);
106
         } else {
100
         } else {
107
           List <dynamic> historyAbsensi = object['result'];
101
           List <dynamic> historyAbsensi = object['result'];
108
-          loading.hide();
102
+          await loading.hide();
109
           setState(() {
103
           setState(() {
110
             for (int i = 0; i < historyAbsensi.length; i++){
104
             for (int i = 0; i < historyAbsensi.length; i++){
111
               String id = historyAbsensi[i]['id'].toString();
105
               String id = historyAbsensi[i]['id'].toString();
231
         }
225
         }
232
       } else {
226
       } else {
233
         alertDialogFailedRetrievedData(context);
227
         alertDialogFailedRetrievedData(context);
228
+        await loading.hide();
234
       }
229
       }
235
     });
230
     });
236
-    loading.hide();
231
+    //await loading.hide();
237
   }
232
   }
238
 
233
 
239
   @override
234
   @override
498
     },
493
     },
499
   );
494
   );
500
 }
495
 }
501
-
502
-void sendLogMessage(String message) {
503
-  FirebaseCrashlytics.instance.log(message);
504
-}

+ 100
- 33
lib/Screens/Menu/Absensi/absensi_screen.dart View File

1
 import 'dart:async';
1
 import 'dart:async';
2
 import 'dart:convert';
2
 import 'dart:convert';
3
 
3
 
4
+import 'package:app_settings/app_settings.dart';
4
 import 'package:flutter/material.dart';
5
 import 'package:flutter/material.dart';
5
 import 'package:flutter_map/plugin_api.dart';
6
 import 'package:flutter_map/plugin_api.dart';
6
 import 'package:geolocator/geolocator.dart';
7
 import 'package:geolocator/geolocator.dart';
10
 import 'package:employee_selfservice_mobile/Screens/Menu/Absensi/absensi_history_screen.dart';
11
 import 'package:employee_selfservice_mobile/Screens/Menu/Absensi/absensi_history_screen.dart';
11
 import 'package:intl/intl.dart';
12
 import 'package:intl/intl.dart';
12
 import 'package:latlong2/latlong.dart' as latlong;
13
 import 'package:latlong2/latlong.dart' as latlong;
14
+import 'package:location/location.dart' as loc;
13
 import 'dart:developer' as logDev;
15
 import 'dart:developer' as logDev;
14
 
16
 
15
 import 'package:progress_dialog_null_safe/progress_dialog_null_safe.dart';
17
 import 'package:progress_dialog_null_safe/progress_dialog_null_safe.dart';
50
   }
52
   }
51
 
53
 
52
   determinePosition() async {
54
   determinePosition() async {
55
+    StreamSubscription<ServiceStatus> serviceStatusStream = Geolocator.getServiceStatusStream().listen(
56
+            (ServiceStatus status) {
57
+          print(status);
58
+        });
59
+
53
     ProgressDialog loading = ProgressDialog(context);
60
     ProgressDialog loading = ProgressDialog(context);
54
     loading = ProgressDialog(context,
61
     loading = ProgressDialog(context,
55
         type: ProgressDialogType.normal, isDismissible: false, showLogs: true);
62
         type: ProgressDialogType.normal, isDismissible: false, showLogs: true);
68
         messageTextStyle: TextStyle(
75
         messageTextStyle: TextStyle(
69
             color: Colors.black, fontSize: 15.0, fontWeight: FontWeight.w600));
76
             color: Colors.black, fontSize: 15.0, fontWeight: FontWeight.w600));
70
 
77
 
71
-    bool serviceEnabled;
72
-    LocationPermission permission;
73
-
74
     loading.show();
78
     loading.show();
75
-    serviceEnabled = await Geolocator.isLocationServiceEnabled();
79
+
80
+    bool serviceEnabled = await Geolocator.isLocationServiceEnabled();
81
+    logDev.log(serviceEnabled.toString(), name: "ON/OFF LOCATION SERVICE");
76
     if (!serviceEnabled) {
82
     if (!serviceEnabled) {
77
-      loading.hide();
83
+      //return Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => AbsensiScreen()));
84
+      //await loading.hide();
85
+      //alertDialogEnableLocaionServices(context);
78
       return Future.error('Location services are disabled.');
86
       return Future.error('Location services are disabled.');
79
     }
87
     }
80
 
88
 
81
-    permission = await Geolocator.checkPermission();
89
+    LocationPermission permission = await Geolocator.checkPermission();
82
 
90
 
83
     if (permission == LocationPermission.deniedForever) {
91
     if (permission == LocationPermission.deniedForever) {
84
-      loading.hide();
92
+      await loading.hide();
85
       //return Future.error('Location permissions are permanently denied, we cannot request permissions.');
93
       //return Future.error('Location permissions are permanently denied, we cannot request permissions.');
86
       return alertDialogPermissionDeniedForever(context);
94
       return alertDialogPermissionDeniedForever(context);
87
     } else if (permission == LocationPermission.denied) {
95
     } else if (permission == LocationPermission.denied) {
88
       permission = await Geolocator.requestPermission();
96
       permission = await Geolocator.requestPermission();
89
       if (permission != LocationPermission.whileInUse && permission != LocationPermission.always) {
97
       if (permission != LocationPermission.whileInUse && permission != LocationPermission.always) {
90
-        loading.hide();
98
+        await loading.hide();
91
         //return Future.error('Location permissions are denied (actual value: $permission).');
99
         //return Future.error('Location permissions are denied (actual value: $permission).');
92
         return alertDialogPermissionDenied(context);
100
         return alertDialogPermissionDenied(context);
93
       }
101
       }
96
     position = await Geolocator.getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
104
     position = await Geolocator.getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
97
     logDev.log(position.toString(), name: "Position GEOLOCATOR");
105
     logDev.log(position.toString(), name: "Position GEOLOCATOR");
98
     if (position.isMocked) {
106
     if (position.isMocked) {
99
-      loading.hide();
107
+      await loading.hide();
100
       setState(() {
108
       setState(() {
101
         alertDialogFakeGPSDetected(context);
109
         alertDialogFakeGPSDetected(context);
102
       });
110
       });
116
               visibleCheckIn = !visibleCheckIn;
124
               visibleCheckIn = !visibleCheckIn;
117
               visibleCheckOut = visibleCheckOut;
125
               visibleCheckOut = visibleCheckOut;
118
             });
126
             });
119
-            loading.hide();
127
+            await loading.hide();
120
           } else if (result.contains("checked_in")) {
128
           } else if (result.contains("checked_in")) {
121
             setState(() {
129
             setState(() {
122
               visibleCheckIn = visibleCheckIn;
130
               visibleCheckIn = visibleCheckIn;
123
               visibleCheckOut = !visibleCheckOut;
131
               visibleCheckOut = !visibleCheckOut;
124
             });
132
             });
125
-            loading.hide();
133
+            await loading.hide();
126
           } else {
134
           } else {
127
             setState(() {
135
             setState(() {
128
               alertDialogFailedResponse(context);
136
               alertDialogFailedResponse(context);
129
             });
137
             });
130
-            loading.hide();
138
+            await loading.hide();
131
           }
139
           }
132
         } else {
140
         } else {
133
           setState(() {
141
           setState(() {
134
             alertDialogFailedResponse(context);
142
             alertDialogFailedResponse(context);
135
           });
143
           });
136
-          loading.hide();
144
+          await loading.hide();
137
         }
145
         }
138
       });
146
       });
139
 
147
 
143
         if (object.containsKey("result").toString() == "true") {
151
         if (object.containsKey("result").toString() == "true") {
144
           String result = object['result'].toString();
152
           String result = object['result'].toString();
145
           if (result.contains("failed")) {
153
           if (result.contains("failed")) {
146
-            loading.hide();
154
+            await loading.hide();
147
             alertDialogFailedRetrievedData(context);
155
             alertDialogFailedRetrievedData(context);
148
           } else {
156
           } else {
149
             List <dynamic> historyAbsensi = object['result'];
157
             List <dynamic> historyAbsensi = object['result'];
150
-            loading.hide();
158
+            await loading.hide();
151
             setState(() {
159
             setState(() {
152
               String check_in = historyAbsensi[0]['check_in'].toString();
160
               String check_in = historyAbsensi[0]['check_in'].toString();
153
               String check_out = historyAbsensi[0]['check_out'].toString();
161
               String check_out = historyAbsensi[0]['check_out'].toString();
185
         }
193
         }
186
       });
194
       });
187
 
195
 
188
-      //loading.hide();
189
     }
196
     }
190
   }
197
   }
191
 
198
 
214
     //loading.show();
221
     //loading.show();
215
     serviceEnabled = await Geolocator.isLocationServiceEnabled();
222
     serviceEnabled = await Geolocator.isLocationServiceEnabled();
216
     if (!serviceEnabled) {
223
     if (!serviceEnabled) {
217
-      loading.hide();
224
+      await loading.hide();
218
       return Future.error('Location services are disabled.');
225
       return Future.error('Location services are disabled.');
219
     }
226
     }
220
 
227
 
221
     permission = await Geolocator.checkPermission();
228
     permission = await Geolocator.checkPermission();
222
 
229
 
223
     if (permission == LocationPermission.deniedForever) {
230
     if (permission == LocationPermission.deniedForever) {
224
-      loading.hide();
231
+      await loading.hide();
225
       return alertDialogPermissionDeniedForever(context);
232
       return alertDialogPermissionDeniedForever(context);
226
     } else if (permission == LocationPermission.denied) {
233
     } else if (permission == LocationPermission.denied) {
227
       permission = await Geolocator.requestPermission();
234
       permission = await Geolocator.requestPermission();
228
       if (permission != LocationPermission.whileInUse && permission != LocationPermission.always) {
235
       if (permission != LocationPermission.whileInUse && permission != LocationPermission.always) {
229
-        loading.hide();
236
+        await loading.hide();
230
         return alertDialogPermissionDenied(context);
237
         return alertDialogPermissionDenied(context);
231
       }
238
       }
232
     }
239
     }
233
 
240
 
234
     position = await Geolocator.getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
241
     position = await Geolocator.getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
235
     if (position.isMocked) {
242
     if (position.isMocked) {
236
-      loading.hide();
243
+      await loading.hide();
237
       setState(() {
244
       setState(() {
238
         alertDialogFakeGPSDetected(context);
245
         alertDialogFakeGPSDetected(context);
239
       });
246
       });
240
     } else {
247
     } else {
241
-      loading.hide();
248
+      await loading.hide();
242
       setState((){
249
       setState((){
243
         point = latlong.LatLng(position.latitude, position.longitude);
250
         point = latlong.LatLng(position.latitude, position.longitude);
244
         logDev.log(point.toString(), name: "UPDATE POINT GEOLOCATOR");
251
         logDev.log(point.toString(), name: "UPDATE POINT GEOLOCATOR");
269
     loading.show();
276
     loading.show();
270
     position = await Geolocator.getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
277
     position = await Geolocator.getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
271
     if (position.isMocked) {
278
     if (position.isMocked) {
272
-      loading.hide();
279
+      await loading.hide();
273
       setState(() {
280
       setState(() {
274
         alertDialogFakeGPSDetected(context);
281
         alertDialogFakeGPSDetected(context);
275
       });
282
       });
276
     } else {
283
     } else {
277
-      loading.hide();
284
+      await loading.hide();
278
       setState((){
285
       setState((){
279
         point = latlong.LatLng(position.latitude, position.longitude);
286
         point = latlong.LatLng(position.latitude, position.longitude);
280
         _mapController.move(point, 18);
287
         _mapController.move(point, 18);
288
         String result = object['result'].toString();
295
         String result = object['result'].toString();
289
         logDev.log(result, name: "Check In Result");
296
         logDev.log(result, name: "Check In Result");
290
         if (result.contains("failed")) {
297
         if (result.contains("failed")) {
291
-          loading.hide();
298
+          await loading.hide();
292
           setState(() {
299
           setState(() {
293
             alertDialogFailedRetrievedData(context);
300
             alertDialogFailedRetrievedData(context);
294
           });
301
           });
295
         } else if (result.contains("Anda sudah check in")) {
302
         } else if (result.contains("Anda sudah check in")) {
296
-          loading.hide();
303
+          await loading.hide();
297
           setState(() {
304
           setState(() {
298
             alertDialogFailedCheckIn(context);
305
             alertDialogFailedCheckIn(context);
299
           });
306
           });
300
         } else {
307
         } else {
301
-          loading.hide();
308
+          await loading.hide();
302
           setState(() {
309
           setState(() {
303
             alertDialogSuccessCheckIn(context);
310
             alertDialogSuccessCheckIn(context);
304
           });
311
           });
307
         setState(() {
314
         setState(() {
308
           alertDialogFailedResponse(context);
315
           alertDialogFailedResponse(context);
309
         });
316
         });
310
-        loading.hide();
317
+        await loading.hide();
311
       }
318
       }
312
     });
319
     });
313
   }
320
   }
335
 
342
 
336
     position = await Geolocator.getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
343
     position = await Geolocator.getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
337
     if (position.isMocked) {
344
     if (position.isMocked) {
338
-      loading.hide();
345
+      await loading.hide();
339
       setState(() {
346
       setState(() {
340
         alertDialogFakeGPSDetected(context);
347
         alertDialogFakeGPSDetected(context);
341
       });
348
       });
342
     } else {
349
     } else {
343
-      loading.hide();
350
+      await loading.hide();
344
       setState((){
351
       setState((){
345
         point = latlong.LatLng(position.latitude, position.longitude);
352
         point = latlong.LatLng(position.latitude, position.longitude);
346
         _mapController.move(point, 18);
353
         _mapController.move(point, 18);
354
         String result = object['result'].toString();
361
         String result = object['result'].toString();
355
         logDev.log(result, name: "Check Out Result");
362
         logDev.log(result, name: "Check Out Result");
356
         if (result.contains("failed")) {
363
         if (result.contains("failed")) {
357
-          loading.hide();
364
+          await loading.hide();
358
           setState(() {
365
           setState(() {
359
             alertDialogFailedRetrievedData(context);
366
             alertDialogFailedRetrievedData(context);
360
           });
367
           });
361
         } else if (result.contains("Anda belum check in")) {
368
         } else if (result.contains("Anda belum check in")) {
362
-          loading.hide();
369
+          await loading.hide();
363
           setState(() {
370
           setState(() {
364
             alertDialogFailedCheckOut(context);
371
             alertDialogFailedCheckOut(context);
365
           });
372
           });
366
         } else {
373
         } else {
367
-          loading.hide();
374
+          await loading.hide();
368
           setState(() {
375
           setState(() {
369
             alertDialogSuccessCheckOut(context);
376
             alertDialogSuccessCheckOut(context);
370
           });
377
           });
373
         setState(() {
380
         setState(() {
374
           alertDialogFailedResponse(context);
381
           alertDialogFailedResponse(context);
375
         });
382
         });
376
-        loading.hide();
383
+        await loading.hide();
377
       }
384
       }
378
     });
385
     });
379
   }
386
   }
917
     },
924
     },
918
   );
925
   );
919
 }
926
 }
927
+
928
+alertDialogEnableLocaionServices(BuildContext context) {
929
+  ProgressDialog loading = ProgressDialog(context);
930
+  loading = ProgressDialog(context,
931
+      type: ProgressDialogType.normal, isDismissible: false, showLogs: true);
932
+  loading.style(
933
+      message: 'Please Wait .....',
934
+      borderRadius: 3,
935
+      backgroundColor: Colors.white,
936
+      progressWidget: CircularProgressIndicator(),
937
+      elevation: 10.0,
938
+      padding: EdgeInsets.all(10),
939
+      insetAnimCurve: Curves.easeInOut,
940
+      progress: 0.0,
941
+      maxProgress: 100.0,
942
+      progressTextStyle: TextStyle(
943
+          color: Colors.black, fontSize: 10.0, fontWeight: FontWeight.w400),
944
+      messageTextStyle: TextStyle(
945
+          color: Colors.black, fontSize: 15.0, fontWeight: FontWeight.w600));
946
+
947
+  Widget okButton = TextButton(
948
+    child: Text("Open Settings"),
949
+    onPressed: () {
950
+      AppSettings.openLocationSettings();
951
+      Navigator.of(context, rootNavigator: true).pop();
952
+      loading.hide();
953
+     /* Navigator.pushReplacement(
954
+          context, MaterialPageRoute(builder: (context) => AbsensiScreen()));*/
955
+    },
956
+  );
957
+
958
+  Widget noButton = TextButton(
959
+    child: Text("No, thanks"),
960
+    onPressed: () {
961
+      Navigator.of(context, rootNavigator: true).pop();
962
+      Navigator.pop(context);
963
+      loading.hide();
964
+    },
965
+  );
966
+
967
+  // set up the AlertDialog
968
+  AlertDialog alert = AlertDialog(
969
+    title: Text("Employee Self Service"),
970
+    content:
971
+    Text("For a better experience, please turn on your device location"),
972
+    actions: [
973
+      noButton,
974
+      okButton,
975
+    ],
976
+  );
977
+
978
+  // show the dialog
979
+  showDialog(
980
+    context: context,
981
+    barrierDismissible: false,
982
+    builder: (BuildContext context) {
983
+      return alert;
984
+    },
985
+  );
986
+}

+ 5
- 5
lib/Screens/Menu/AjukanCuti/ajukancuti_screen.dart View File

87
         String result = object['result'].toString();
87
         String result = object['result'].toString();
88
         logDev.log(result, name: "Jenis Cuti Result");
88
         logDev.log(result, name: "Jenis Cuti Result");
89
         if (result.contains("Failed")) {
89
         if (result.contains("Failed")) {
90
-          loading.hide();
90
+          await loading.hide();
91
           setState(() {
91
           setState(() {
92
             cutiType = [""];
92
             cutiType = [""];
93
             alertDialogFailedRetrievedData(context);
93
             alertDialogFailedRetrievedData(context);
104
               cutiType.add(text);
104
               cutiType.add(text);
105
             }
105
             }
106
           });
106
           });
107
-          loading.hide();
107
+          await loading.hide();
108
         }
108
         }
109
       } else {
109
       } else {
110
         setState((){
110
         setState((){
118
               textColor: Colors.white,
118
               textColor: Colors.white,
119
               fontSize: 16.0);*/
119
               fontSize: 16.0);*/
120
         });
120
         });
121
-        loading.hide();
121
+        await loading.hide();
122
       }
122
       }
123
     });
123
     });
124
     return cutiType;
124
     return cutiType;
559
                                               String to = object['result']['to'].toString();
559
                                               String to = object['result']['to'].toString();
560
                                               String deskripsi = object['result']['deskripsi'].toString();
560
                                               String deskripsi = object['result']['deskripsi'].toString();
561
                                               String attachment = object['result']['attachment'].toString();*/
561
                                               String attachment = object['result']['attachment'].toString();*/
562
-                                          loading.hide();
562
+                                          await loading.hide();
563
                                           deskripsiTeksController.clear();
563
                                           deskripsiTeksController.clear();
564
                                           Widget okButton = TextButton(
564
                                           Widget okButton = TextButton(
565
                                             child: Text("OK"),
565
                                             child: Text("OK"),
594
                                         } else if (object.containsKey("error").toString() == "true") {
594
                                         } else if (object.containsKey("error").toString() == "true") {
595
                                           String errorMessage = object['error']['data']['message']
595
                                           String errorMessage = object['error']['data']['message']
596
                                               .toString();
596
                                               .toString();
597
-                                          loading.hide();
597
+                                          await loading.hide();
598
                                           Widget okButton = TextButton(
598
                                           Widget okButton = TextButton(
599
                                             child: Text("OK"),
599
                                             child: Text("OK"),
600
                                             onPressed: () {
600
                                             onPressed: () {

+ 3
- 3
lib/Screens/Menu/AjukanCuti/history_cuti.dart View File

79
       if (object.containsKey("result").toString() == "true") {
79
       if (object.containsKey("result").toString() == "true") {
80
         String result = object['result'].toString();
80
         String result = object['result'].toString();
81
         if (result.contains("Failed")) {
81
         if (result.contains("Failed")) {
82
-          loading.hide();
82
+          await loading.hide();
83
           alertDialogFailedRetrievedData(context);
83
           alertDialogFailedRetrievedData(context);
84
         } else {
84
         } else {
85
           List <dynamic> historyCuti = object['result'];
85
           List <dynamic> historyCuti = object['result'];
140
 
140
 
141
             HistoryLength = historyCuti.length;
141
             HistoryLength = historyCuti.length;
142
           });
142
           });
143
-          loading.hide();
143
+          await loading.hide();
144
         }
144
         }
145
       } else {
145
       } else {
146
         Fluttertoast.showToast(
146
         Fluttertoast.showToast(
152
             fontSize: 16.0);
152
             fontSize: 16.0);
153
       }
153
       }
154
     });
154
     });
155
-    loading.hide();
155
+    await loading.hide();
156
   }
156
   }
157
 
157
 
158
   @override
158
   @override

+ 5
- 3
lib/Screens/Menu/Reimburse/RequestHttp/pengajuanReimburse_post.dart View File

1
 import 'dart:convert';
1
 import 'dart:convert';
2
 import 'dart:core';
2
 import 'dart:core';
3
+import 'package:flutter/material.dart';
3
 import 'package:http/http.dart' as http;
4
 import 'package:http/http.dart' as http;
4
 import 'package:employee_selfservice_mobile/constants.dart';
5
 import 'package:employee_selfservice_mobile/constants.dart';
5
 import 'dart:developer' as developer;
6
 import 'dart:developer' as developer;
18
 
19
 
19
   PengajuanReimburse_Post({required this.session});
20
   PengajuanReimburse_Post({required this.session});
20
 
21
 
21
-  static Future<String> connectToAPI(String name, String product, String date, String total, String payment_mode, String description) async {
22
+  static Future<String> connectToAPI(String name, String product, String date, String total, String payment_mode, String description, List<String> file) async {
22
     String URL = baseURL + "/api/v1/pengajuan_reimburse";
23
     String URL = baseURL + "/api/v1/pengajuan_reimburse";
23
 
24
 
24
     final SharedPreferences prefs = await SharedPreferences.getInstance();
25
     final SharedPreferences prefs = await SharedPreferences.getInstance();
33
           "total" : total,
34
           "total" : total,
34
           "payment_mode" : payment_mode,
35
           "payment_mode" : payment_mode,
35
           "description" : description,
36
           "description" : description,
36
-          "session": session
37
+          "session": session,
38
+          "file" : file
37
         }
39
         }
38
       ]
40
       ]
39
     }), headers: {
41
     }), headers: {
41
       "Api-key": apiKey
43
       "Api-key": apiKey
42
     });
44
     });
43
 
45
 
44
-    //developer.log(sendData.body, name: "Get Jenis Cuti Result");
46
+    developer.log(sendData.body, name: "Pengajuan REIMBURSE");
45
     return sendData.body;
47
     return sendData.body;
46
   }
48
   }
47
 }
49
 }

+ 5
- 4
lib/Screens/Menu/Reimburse/history_reimburse.dart View File

68
         messageTextStyle: TextStyle(
68
         messageTextStyle: TextStyle(
69
             color: Colors.black, fontSize: 15.0, fontWeight: FontWeight.w600));
69
             color: Colors.black, fontSize: 15.0, fontWeight: FontWeight.w600));
70
 
70
 
71
-    loading.show();
71
+    await loading.show();
72
     HistoryReimburse_Post.connectToAPI().then((valueResult) async {
72
     HistoryReimburse_Post.connectToAPI().then((valueResult) async {
73
       Map<String, dynamic> object = jsonDecode(valueResult);
73
       Map<String, dynamic> object = jsonDecode(valueResult);
74
       if (object.containsKey("result").toString() == "true") {
74
       if (object.containsKey("result").toString() == "true") {
75
         String result = object['result'].toString();
75
         String result = object['result'].toString();
76
         if (result.contains("failed")) {
76
         if (result.contains("failed")) {
77
-          loading.hide();
77
+          await loading.hide();
78
           alertDialogFailedRetrievedData(context);
78
           alertDialogFailedRetrievedData(context);
79
         } else {
79
         } else {
80
           List <dynamic> historyReimburse = object['result'];
80
           List <dynamic> historyReimburse = object['result'];
81
-          loading.hide();
81
+          await loading.hide();
82
           setState(() {
82
           setState(() {
83
             for (int i = 0; i < historyReimburse.length; i++){
83
             for (int i = 0; i < historyReimburse.length; i++){
84
               String date = historyReimburse[i]['date'].toString();
84
               String date = historyReimburse[i]['date'].toString();
136
             fontSize: 16.0);
136
             fontSize: 16.0);
137
       }
137
       }
138
     });
138
     });
139
-    loading.hide();
139
+    await loading.hide();
140
   }
140
   }
141
 
141
 
142
   @override
142
   @override
289
   // show the dialog
289
   // show the dialog
290
   showDialog(
290
   showDialog(
291
     context: context,
291
     context: context,
292
+    barrierDismissible: false,
292
     builder: (BuildContext context) {
293
     builder: (BuildContext context) {
293
       return alert;
294
       return alert;
294
     },
295
     },

+ 28
- 38
lib/Screens/Menu/Reimburse/reimburse_screen.dart View File

81
         String result = object['result'].toString();
81
         String result = object['result'].toString();
82
         logDev.log(result, name: "Jenis Cuti Result");
82
         logDev.log(result, name: "Jenis Cuti Result");
83
         if (result.contains("failed")) {
83
         if (result.contains("failed")) {
84
-          loading.hide();
84
+          await loading.hide();
85
           setState(() {
85
           setState(() {
86
             alertDialogFailedRetrievedData(context);
86
             alertDialogFailedRetrievedData(context);
87
           });
87
           });
98
             }
98
             }
99
             logDev.log(idReimburseCategory.toString(), name: "ID Reimburse");
99
             logDev.log(idReimburseCategory.toString(), name: "ID Reimburse");
100
           });
100
           });
101
-          loading.hide();
101
+          await loading.hide();
102
         }
102
         }
103
       } else {
103
       } else {
104
-        setState((){
105
-          loading.hide();
104
+        setState(() async {
105
+          await loading.hide();
106
           alertDialogFailedResponse(context);
106
           alertDialogFailedResponse(context);
107
         });
107
         });
108
-        loading.hide();
108
+        await loading.hide();
109
       }
109
       }
110
     });
110
     });
111
     return reimburseCategory;
111
     return reimburseCategory;
541
                                               ),
541
                                               ),
542
                                             ),
542
                                             ),
543
                                           ),
543
                                           ),
544
-                                          Row(
545
-                                            children: [
546
-                                              Expanded(
547
-                                                flex: 3,
548
-                                                child: Text(
549
-                                                  '',
550
-                                                  style: GoogleFonts.inconsolata(
551
-                                                      fontSize: 17),
552
-                                                ),
553
-                                              ),
554
-                                              Expanded(
555
-                                                flex: 7,
556
-                                                child:  Container(
557
-                                                  alignment:
558
-                                                  Alignment.centerLeft,
559
-                                                  margin: EdgeInsets.only(
560
-                                                      left: 15,
561
-                                                      right: 15,
562
-                                                      bottom: 10),
563
-                                                  child: Text(_totalFile + _fileText,
564
-                                                    overflow:
565
-                                                    TextOverflow.ellipsis,
566
-                                                    /*maxLines: 7,*/
567
-                                                    style: TextStyle(
568
-                                                        color: Colors.black54),
569
-                                                  ),
570
-                                                ),
571
-                                              )
572
-                                            ],
544
+                                          Container(
545
+                                            alignment:
546
+                                            Alignment.centerLeft,
547
+                                            margin: EdgeInsets.only(
548
+                                                left: 15,
549
+                                                right: 15,
550
+                                                bottom: 10),
551
+                                            child: Text(_totalFile + _fileText,
552
+                                              overflow:
553
+                                              TextOverflow.ellipsis,
554
+                                              /*maxLines: 7,*/
555
+                                              style: TextStyle(
556
+                                                  color: Colors.black54),
557
+                                            ),
573
                                           ),
558
                                           ),
574
                                         ],
559
                                         ],
575
                                       ),
560
                                       ),
619
                                           loading.show();
604
                                           loading.show();
620
                                           PengajuanReimburse_Post.connectToAPI(namaProdukTeksController.text.toString(), idReimburse,
605
                                           PengajuanReimburse_Post.connectToAPI(namaProdukTeksController.text.toString(), idReimburse,
621
                                               formattedDateFrom, totalHargaTeksController.text.toString(), valuePayment,
606
                                               formattedDateFrom, totalHargaTeksController.text.toString(), valuePayment,
622
-                                              deskripsiTeksController.text.toString()).then((valueResult) async {
607
+                                              deskripsiTeksController.text.toString(), fileAttach).then((valueResult) async {
608
+                                                logDev.log(fileAttach.toString(), name: "FILE ATTACH APA AJA");
623
                                             Map<String, dynamic> object = json.decode(valueResult);
609
                                             Map<String, dynamic> object = json.decode(valueResult);
624
                                             if (object.containsKey("result").toString() == "true") {
610
                                             if (object.containsKey("result").toString() == "true") {
625
                                               String result = object['result'].toString();
611
                                               String result = object['result'].toString();
626
                                               if (result.contains("status")) {
612
                                               if (result.contains("status")) {
627
-                                                loading.hide();
613
+                                                await loading.hide();
628
                                                 Widget okButton = TextButton(
614
                                                 Widget okButton = TextButton(
629
                                                   child: Text("OK"),
615
                                                   child: Text("OK"),
630
                                                   onPressed: () {
616
                                                   onPressed: () {
644
                                                 // show the dialog
630
                                                 // show the dialog
645
                                                 showDialog(
631
                                                 showDialog(
646
                                                   context: context,
632
                                                   context: context,
633
+                                                  barrierDismissible: false,
647
                                                   builder: (BuildContext context) {
634
                                                   builder: (BuildContext context) {
648
                                                     return alert;
635
                                                     return alert;
649
                                                   },
636
                                                   },
650
                                                 );
637
                                                 );
651
                                               } else {
638
                                               } else {
652
-                                                loading.hide();
639
+                                                await loading.hide();
653
                                                 formattedDateFrom = "";
640
                                                 formattedDateFrom = "";
654
                                                 visibleDateFrom = false;
641
                                                 visibleDateFrom = false;
655
                                                 visibleDateFrom = false;
642
                                                 visibleDateFrom = false;
675
                                                 // show the dialog
662
                                                 // show the dialog
676
                                                 showDialog(
663
                                                 showDialog(
677
                                                   context: context,
664
                                                   context: context,
665
+                                                  barrierDismissible: false,
678
                                                   builder: (BuildContext context) {
666
                                                   builder: (BuildContext context) {
679
                                                     return alert;
667
                                                     return alert;
680
                                                   },
668
                                                   },
681
                                                 );
669
                                                 );
682
                                               }
670
                                               }
683
                                             } else {
671
                                             } else {
684
-                                              loading.hide();
672
+                                              await loading.hide();
685
                                               alertDialogFailedResponse(context);
673
                                               alertDialogFailedResponse(context);
686
                                             }
674
                                             }
687
                                           });
675
                                           });
831
   // show the dialog
819
   // show the dialog
832
   showDialog(
820
   showDialog(
833
     context: context,
821
     context: context,
822
+    barrierDismissible: false,
834
     builder: (BuildContext context) {
823
     builder: (BuildContext context) {
835
       return alert;
824
       return alert;
836
     },
825
     },
869
   // show the dialog
858
   // show the dialog
870
   showDialog(
859
   showDialog(
871
     context: context,
860
     context: context,
861
+    barrierDismissible: false,
872
     builder: (BuildContext context) {
862
     builder: (BuildContext context) {
873
       return alert;
863
       return alert;
874
     },
864
     },

+ 22
- 18
lib/Screens/Menu/SlipGaji/slipgaji_screen.dart View File

91
       if (object.containsKey("result").toString() == "true"){
91
       if (object.containsKey("result").toString() == "true"){
92
         String result = object['result'].toString();
92
         String result = object['result'].toString();
93
         if (result.contains("failed")) {
93
         if (result.contains("failed")) {
94
-          loading.hide();
94
+          await loading.hide();
95
           setState(() {
95
           setState(() {
96
             alertDialogFailedRetrievedData(context);
96
             alertDialogFailedRetrievedData(context);
97
           });
97
           });
141
             HistoryLength = historySlipGaji.length;
141
             HistoryLength = historySlipGaji.length;
142
 
142
 
143
           });
143
           });
144
-          loading.hide();
144
+          await loading.hide();
145
         }
145
         }
146
       } else {
146
       } else {
147
         setState((){
147
         setState((){
148
           alertDialogFailedResponse(context);
148
           alertDialogFailedResponse(context);
149
         });
149
         });
150
-        loading.hide();
150
+        await loading.hide();
151
       }
151
       }
152
+      await loading.hide();
152
     });
153
     });
153
     return HistoryLength;
154
     return HistoryLength;
154
   }
155
   }
179
         if (object.containsKey("result").toString() == "true"){
180
         if (object.containsKey("result").toString() == "true"){
180
           String result = object['result'].toString();
181
           String result = object['result'].toString();
181
           if (result.contains("failed")) {
182
           if (result.contains("failed")) {
182
-            loading.hide();
183
+            await loading.hide();
183
             logDev.log("ERROR", name: "FAILED RESULT");
184
             logDev.log("ERROR", name: "FAILED RESULT");
184
             setState(() {
185
             setState(() {
185
               alertDialogFailedRetrievedData(context);
186
               alertDialogFailedRetrievedData(context);
227
               category_List.removeAt(0);
228
               category_List.removeAt(0);
228
               total_List.removeAt(0);
229
               total_List.removeAt(0);
229
             });
230
             });
230
-            loading.hide();
231
+            await loading.hide();
231
           }
232
           }
232
         } else {
233
         } else {
233
           setState((){
234
           setState((){
241
                 textColor: Colors.white,
242
                 textColor: Colors.white,
242
                 fontSize: 16.0);*/
243
                 fontSize: 16.0);*/
243
           });
244
           });
244
-          loading.hide();
245
+          await loading.hide();
245
         }
246
         }
247
+        await loading.hide();
246
       });
248
       });
247
 
249
 
248
   }
250
   }
370
                               child: Card(
372
                               child: Card(
371
                                 elevation: 5,
373
                                 elevation: 5,
372
                                 child: Column(
374
                                 child: Column(
373
-                                    children: [
374
-                                      Text(number_List[indexBatchID], style: GoogleFonts.rubikBubbles(fontSize: 16)),
375
-                                      Text(number_List[indexBatchID], style: GoogleFonts.rubikBubbles(fontSize: 16)),
376
-                                      Text(structure_List[indexBatchID], style: GoogleFonts.nunito(fontSize: 15)),
377
-                                      Text(period_List[indexBatchID], style: GoogleFonts.nunito(fontSize: 15)),
378
-                                      Text(name_List[indexBatchID], style: GoogleFonts.nunito(fontSize: 15)),
379
-                                      Text(position, style: GoogleFonts.nunito(fontSize: 15)),
380
-                                      Text("Payment : " /*+ payment_List[i]*/, style: GoogleFonts.yeonSung(fontSize: 14, fontStyle: FontStyle.italic))],
381
-                                  ),
375
+                                  children: [
376
+                                    Text(number_List[indexBatchID], style: GoogleFonts.rubikBubbles(fontSize: 16)),
377
+                                    Text(structure_List[indexBatchID], style: GoogleFonts.nunito(fontSize: 15)),
378
+                                    Text(period_List[indexBatchID], style: GoogleFonts.nunito(fontSize: 15)),
379
+                                    Text(name_List[indexBatchID], style: GoogleFonts.nunito(fontSize: 15)),
380
+                                    Text(position, style: GoogleFonts.nunito(fontSize: 15)),
381
+                                    Text("Payment : " /*+ payment_List[i]*/, style: GoogleFonts.yeonSung(fontSize: 14, fontStyle: FontStyle.italic)),
382
+                                    Text(number_List[indexBatchID], style: GoogleFonts.rubikBubbles(fontSize: 16)),
383
+                                  ],
384
+                                ),
382
                               ),
385
                               ),
383
                             );
386
                             );
384
                           },
387
                           },
414
                               if (object.containsKey("result").toString() == "true"){
417
                               if (object.containsKey("result").toString() == "true"){
415
                                 String result = object['result'].toString();
418
                                 String result = object['result'].toString();
416
                                 if (result.contains("failed")) {
419
                                 if (result.contains("failed")) {
417
-                                  loading.hide();
420
+                                  await loading.hide();
418
                                   setState(() {
421
                                   setState(() {
419
                                     alertDialogFailedDownloadPayslip(context);
422
                                     alertDialogFailedDownloadPayslip(context);
420
                                   });
423
                                   });
421
                                 } else if (result.contains("url")){
424
                                 } else if (result.contains("url")){
422
-                                  loading.hide();
425
+                                  await loading.hide();
423
                                   setState(() {
426
                                   setState(() {
424
                                     //_launchURL(Uri.parse(baseURL + object['result']['url'].toString()));
427
                                     //_launchURL(Uri.parse(baseURL + object['result']['url'].toString()));
425
                                     Uri url = Uri.parse(Uri.encodeFull(baseURL + object['result']['url'.toString()]));
428
                                     Uri url = Uri.parse(Uri.encodeFull(baseURL + object['result']['url'.toString()]));
427
                                   });
430
                                   });
428
                                 }
431
                                 }
429
                               } else {
432
                               } else {
430
-                                loading.hide();
433
+                                await loading.hide();
431
                                 setState((){
434
                                 setState((){
432
                                   alertDialogFailedResponse(context);
435
                                   alertDialogFailedResponse(context);
433
                                 });
436
                                 });
434
                               }
437
                               }
438
+                              await loading.hide();
435
                             });
439
                             });
436
                           },
440
                           },
437
                           style: ElevatedButton.styleFrom(),
441
                           style: ElevatedButton.styleFrom(),

+ 4
- 91
lib/Screens/Menu/SuratTugas/history_st.dart View File

95
       if (object.containsKey("result").toString() == "true") {
95
       if (object.containsKey("result").toString() == "true") {
96
         String result = object['result'].toString();
96
         String result = object['result'].toString();
97
         if (result.contains("failed")) {
97
         if (result.contains("failed")) {
98
-          loading.hide();
98
+          await loading.hide();
99
           alertDialogFailedRetrievedData(context);
99
           alertDialogFailedRetrievedData(context);
100
         } else {
100
         } else {
101
           List <dynamic> historyST = object['result'];
101
           List <dynamic> historyST = object['result'];
147
                 if (object.containsKey("result").toString() == "true") {
147
                 if (object.containsKey("result").toString() == "true") {
148
                   String result = object['result'].toString();
148
                   String result = object['result'].toString();
149
                   if (result.contains("failed")) {
149
                   if (result.contains("failed")) {
150
-                    loading.hide();
150
+                    await loading.hide();
151
                     alertDialogFailedRetrievedData(context);
151
                     alertDialogFailedRetrievedData(context);
152
                   } else {
152
                   } else {
153
                     List <dynamic> detailST = object['result'];
153
                     List <dynamic> detailST = object['result'];
154
-                    loading.hide();
154
+                    await loading.hide();
155
                     setState(() {
155
                     setState(() {
156
                       for (int j = 0; j < HistoryLength; j++){
156
                       for (int j = 0; j < HistoryLength; j++){
157
                         String tglST = detailST[j]['tgl_st'].toString();
157
                         String tglST = detailST[j]['tgl_st'].toString();
217
             textColor: Colors.white,
217
             textColor: Colors.white,
218
             fontSize: 16.0);
218
             fontSize: 16.0);
219
       }
219
       }
220
-      loading.hide();
220
+      await loading.hide();
221
     });
221
     });
222
   }
222
   }
223
 
223
 
224
-  /*getDetailData() async {
225
-    ProgressDialog loading = ProgressDialog(context);
226
-    loading = ProgressDialog(context,
227
-        type: ProgressDialogType.normal, isDismissible: false, showLogs: true);
228
-    loading.style(
229
-        message: 'Please Wait .....',
230
-        borderRadius: 3,
231
-        backgroundColor: Colors.white,
232
-        progressWidget: CircularProgressIndicator(),
233
-        elevation: 10.0,
234
-        padding: EdgeInsets.all(10),
235
-        insetAnimCurve: Curves.easeInOut,
236
-        progress: 0.0,
237
-        maxProgress: 100.0,
238
-        progressTextStyle: TextStyle(
239
-            color: Colors.black, fontSize: 10.0, fontWeight: FontWeight.w400),
240
-        messageTextStyle: TextStyle(
241
-            color: Colors.black, fontSize: 15.0, fontWeight: FontWeight.w600));
242
-
243
-    logDev.log(HistoryLength.toString(), name: "Banyak History");
244
-    for (int i = 0; i < HistoryLength;i++){
245
-      DetailST_Post.connectToAPI(id_List[i]).then((valueResult) async {
246
-        Map<String, dynamic> object = jsonDecode(valueResult);
247
-        if (object.containsKey("result").toString() == "true") {
248
-          String result = object['result'].toString();
249
-          if (result.contains("failed")) {
250
-            loading.hide();
251
-            alertDialogFailedRetrievedData(context);
252
-          } else {
253
-            List <dynamic> detailST = object['result'];
254
-            loading.hide();
255
-            setState(() {
256
-              for (int j = 0; j < HistoryLength; j++){
257
-                String tglST = detailST[j]['tgl_st'].toString();
258
-                String uMuka = detailST[j]['umuka'].toString();
259
-                String tglBerangkat = detailST[j]['tgl_berangkat'].toString();
260
-                String tglKembali = detailST[j]['tgl_kembali'].toString();
261
-                String tujuan = detailST[j]['tujuan'].toString();
262
-
263
-                List<dynamic> ticketID = object['result']['ticket_ids'];
264
-                String ticketType = ticketID[j]['type'].toString();
265
-                String ticketFrom = ticketID[j]['from'].toString();
266
-                String ticketTo = ticketID[j]['to'].toString();
267
-                String ticketDate = ticketID[j]['tgl'].toString();
268
-                String ticketPrice = ticketID[j]['harga'].toString();
269
-
270
-                tglST_List.add(tglST);
271
-                uMuka_List.add(uMuka);
272
-                tglBerangkat_List.add(tglBerangkat);
273
-                tglKembali_List.add(tglKembali);
274
-                tujuan_List.add(tujuan);
275
-
276
-                ticketType_List.add(ticketType);
277
-                ticketFrom_List.add(ticketFrom);
278
-                ticketTo_List.add(ticketTo);
279
-                ticketDate_List.add(ticketDate);
280
-                ticketPrice_List.add(ticketPrice);
281
-
282
-                logDev.log(tglST_List.toString(), name:"semua list");
283
-              }
284
-            });
285
-          }
286
-        } else {
287
-          Fluttertoast.showToast(
288
-              msg: "Server Response Error",
289
-              toastLength: Toast.LENGTH_SHORT,
290
-              gravity: ToastGravity.CENTER,
291
-              timeInSecForIosWeb: 1,
292
-              textColor: Colors.white,
293
-              fontSize: 16.0);
294
-        }
295
-      });
296
-    }
297
-    tglST_List.removeAt(0);
298
-    uMuka_List.removeAt(0);
299
-    tglBerangkat_List.removeAt(0);
300
-    tglKembali_List.removeAt(0);
301
-    tujuan_List.removeAt(0);
302
-
303
-    ticketType_List.removeAt(0);
304
-    ticketFrom_List.removeAt(0);
305
-    ticketTo_List.removeAt(0);
306
-    ticketDate_List.removeAt(0);
307
-    ticketPrice_List.removeAt(0);
308
-    loading.hide();
309
-  }*/
310
-
311
   @override
224
   @override
312
   Widget build(BuildContext context) {
225
   Widget build(BuildContext context) {
313
     var size = MediaQuery.of(context).size;
226
     var size = MediaQuery.of(context).size;

+ 3
- 29
lib/Screens/Menu/SuratTugas/pengajuan_extendTanggalKembali.dart View File

62
     super.initState();
62
     super.initState();
63
   }
63
   }
64
 
64
 
65
-  /*loadingPage(){
66
-    ProgressDialog loading = ProgressDialog(context);
67
-    loading = ProgressDialog(context,
68
-        type: ProgressDialogType.normal, isDismissible: false, showLogs: true);
69
-    loading.style(
70
-        message: 'Please Wait .....',
71
-        borderRadius: 3,
72
-        backgroundColor: Colors.white,
73
-        progressWidget: CircularProgressIndicator(),
74
-        elevation: 10.0,
75
-        padding: EdgeInsets.all(10),
76
-        insetAnimCurve: Curves.easeInOut,
77
-        progress: 0.0,
78
-        maxProgress: 100.0,
79
-        progressTextStyle: TextStyle(
80
-            color: Colors.black, fontSize: 10.0, fontWeight: FontWeight.w400),
81
-        messageTextStyle: TextStyle(
82
-            color: Colors.black, fontSize: 15.0, fontWeight: FontWeight.w600));
83
-
84
-    loading.show();
85
-    WidgetsBinding.instance.addPostFrameCallback((_){
86
-      loading.hide();
87
-    });
88
-  }*/
89
-
90
   @override
65
   @override
91
   Widget build(BuildContext context) {
66
   Widget build(BuildContext context) {
92
     return Scaffold(
67
     return Scaffold(
887
                                                   if (object.containsKey("result").toString() == "true") {
862
                                                   if (object.containsKey("result").toString() == "true") {
888
                                                     String result = object['result'].toString();
863
                                                     String result = object['result'].toString();
889
                                                     if (result.contains("failed")){
864
                                                     if (result.contains("failed")){
890
-                                                      loading.hide();
891
-                                                      loading.hide();
865
+                                                      await loading.hide();
892
                                                       Widget okButton = TextButton(
866
                                                       Widget okButton = TextButton(
893
                                                         child: Text("OK"),
867
                                                         child: Text("OK"),
894
                                                         onPressed: () {
868
                                                         onPressed: () {
913
                                                         },
887
                                                         },
914
                                                       );
888
                                                       );
915
                                                     } else {
889
                                                     } else {
916
-                                                      loading.hide();
890
+                                                      await loading.hide();
917
                                                       /*formattedDateFrom = "";
891
                                                       /*formattedDateFrom = "";
918
                                                   visibleDateFrom = false;
892
                                                   visibleDateFrom = false;
919
                                                   visibleDateFrom = false;
893
                                                   visibleDateFrom = false;
945
                                                       );
919
                                                       );
946
                                                     }
920
                                                     }
947
                                                   } else {
921
                                                   } else {
948
-                                                    loading.hide();
922
+                                                    await loading.hide();
949
                                                     alertDialogFailedResponse(context);
923
                                                     alertDialogFailedResponse(context);
950
                                                   }
924
                                                   }
951
                                                 } );
925
                                                 } );

+ 3
- 29
lib/Screens/Menu/SuratTugas/pengajuan_st.dart View File

61
     super.initState();
61
     super.initState();
62
   }
62
   }
63
 
63
 
64
-  /*loadingPage(){
65
-    ProgressDialog loading = ProgressDialog(context);
66
-    loading = ProgressDialog(context,
67
-        type: ProgressDialogType.normal, isDismissible: false, showLogs: true);
68
-    loading.style(
69
-        message: 'Please Wait .....',
70
-        borderRadius: 3,
71
-        backgroundColor: Colors.white,
72
-        progressWidget: CircularProgressIndicator(),
73
-        elevation: 10.0,
74
-        padding: EdgeInsets.all(10),
75
-        insetAnimCurve: Curves.easeInOut,
76
-        progress: 0.0,
77
-        maxProgress: 100.0,
78
-        progressTextStyle: TextStyle(
79
-            color: Colors.black, fontSize: 10.0, fontWeight: FontWeight.w400),
80
-        messageTextStyle: TextStyle(
81
-            color: Colors.black, fontSize: 15.0, fontWeight: FontWeight.w600));
82
-
83
-    loading.show();
84
-    WidgetsBinding.instance.addPostFrameCallback((_){
85
-      loading.hide();
86
-    });
87
-  }*/
88
-
89
   @override
64
   @override
90
   Widget build(BuildContext context) {
65
   Widget build(BuildContext context) {
91
     var size = MediaQuery.of(context).size;
66
     var size = MediaQuery.of(context).size;
865
                                           String result =
840
                                           String result =
866
                                           object['result'].toString();
841
                                           object['result'].toString();
867
                                           if (result.contains("failed")) {
842
                                           if (result.contains("failed")) {
868
-                                            loading.hide();
869
-                                            loading.hide();
843
+                                            await loading.hide();
870
                                             Widget okButton = TextButton(
844
                                             Widget okButton = TextButton(
871
                                               child: Text("OK"),
845
                                               child: Text("OK"),
872
                                               onPressed: () {
846
                                               onPressed: () {
898
                                               },
872
                                               },
899
                                             );
873
                                             );
900
                                           } else {
874
                                           } else {
901
-                                            loading.hide();
875
+                                            await loading.hide();
902
                                             /*formattedDateFrom = "";
876
                                             /*formattedDateFrom = "";
903
                                                   visibleDateFrom = false;
877
                                                   visibleDateFrom = false;
904
                                                   visibleDateFrom = false;
878
                                                   visibleDateFrom = false;
940
                                             );
914
                                             );
941
                                           }
915
                                           }
942
                                         } else {
916
                                         } else {
943
-                                          loading.hide();
917
+                                          await loading.hide();
944
                                           alertDialogFailedResponse(
918
                                           alertDialogFailedResponse(
945
                                               context);
919
                                               context);
946
                                         }
920
                                         }

+ 3
- 32
lib/Screens/Menu/SuratTugas/pengajuan_uangMukaTambahan.dart View File

1
 import 'dart:convert';
1
 import 'dart:convert';
2
-import 'dart:io';
3
-import 'package:file_picker/file_picker.dart';
4
 import 'package:flutter/cupertino.dart';
2
 import 'package:flutter/cupertino.dart';
5
 import 'package:flutter/material.dart';
3
 import 'package:flutter/material.dart';
6
 import 'package:fluttertoast/fluttertoast.dart';
4
 import 'package:fluttertoast/fluttertoast.dart';
20
 TextEditingController ticketToTeksController = TextEditingController();
18
 TextEditingController ticketToTeksController = TextEditingController();
21
 TextEditingController ticketPriceTeksController = TextEditingController();
19
 TextEditingController ticketPriceTeksController = TextEditingController();
22
 
20
 
23
-
24
 class PengajuanUangMukaTambahan_Screen extends StatefulWidget {
21
 class PengajuanUangMukaTambahan_Screen extends StatefulWidget {
25
   const PengajuanUangMukaTambahan_Screen({Key? key}) : super(key: key);
22
   const PengajuanUangMukaTambahan_Screen({Key? key}) : super(key: key);
26
 
23
 
62
     super.initState();
59
     super.initState();
63
   }
60
   }
64
 
61
 
65
-  /*loadingPage(){
66
-    ProgressDialog loading = ProgressDialog(context);
67
-    loading = ProgressDialog(context,
68
-        type: ProgressDialogType.normal, isDismissible: false, showLogs: true);
69
-    loading.style(
70
-        message: 'Please Wait .....',
71
-        borderRadius: 3,
72
-        backgroundColor: Colors.white,
73
-        progressWidget: CircularProgressIndicator(),
74
-        elevation: 10.0,
75
-        padding: EdgeInsets.all(10),
76
-        insetAnimCurve: Curves.easeInOut,
77
-        progress: 0.0,
78
-        maxProgress: 100.0,
79
-        progressTextStyle: TextStyle(
80
-            color: Colors.black, fontSize: 10.0, fontWeight: FontWeight.w400),
81
-        messageTextStyle: TextStyle(
82
-            color: Colors.black, fontSize: 15.0, fontWeight: FontWeight.w600));
83
-
84
-    loading.show();
85
-    WidgetsBinding.instance.addPostFrameCallback((_){
86
-      loading.hide();
87
-    });
88
-  }*/
89
-
90
   @override
62
   @override
91
   Widget build(BuildContext context) {
63
   Widget build(BuildContext context) {
92
     return Scaffold(
64
     return Scaffold(
887
                                                   if (object.containsKey("result").toString() == "true") {
859
                                                   if (object.containsKey("result").toString() == "true") {
888
                                                     String result = object['result'].toString();
860
                                                     String result = object['result'].toString();
889
                                                     if (result.contains("failed")){
861
                                                     if (result.contains("failed")){
890
-                                                      loading.hide();
891
-                                                      loading.hide();
862
+                                                      await loading.hide();
892
                                                       Widget okButton = TextButton(
863
                                                       Widget okButton = TextButton(
893
                                                         child: Text("OK"),
864
                                                         child: Text("OK"),
894
                                                         onPressed: () {
865
                                                         onPressed: () {
913
                                                         },
884
                                                         },
914
                                                       );
885
                                                       );
915
                                                     } else {
886
                                                     } else {
916
-                                                      loading.hide();
887
+                                                      await loading.hide();
917
                                                       /*formattedDateFrom = "";
888
                                                       /*formattedDateFrom = "";
918
                                                   visibleDateFrom = false;
889
                                                   visibleDateFrom = false;
919
                                                   visibleDateFrom = false;
890
                                                   visibleDateFrom = false;
945
                                                       );
916
                                                       );
946
                                                     }
917
                                                     }
947
                                                   } else {
918
                                                   } else {
948
-                                                    loading.hide();
919
+                                                    await loading.hide();
949
                                                     alertDialogFailedResponse(context);
920
                                                     alertDialogFailedResponse(context);
950
                                                   }
921
                                                   }
951
                                                 } );
922
                                                 } );

+ 3
- 3
lib/Screens/Settings/settings_screen.dart View File

124
               textColor: Colors.white,
124
               textColor: Colors.white,
125
               fontSize: 16.0);
125
               fontSize: 16.0);
126
         }
126
         }
127
-        loading.hide();
127
+        await loading.hide();
128
       } else {
128
       } else {
129
         Fluttertoast.showToast(
129
         Fluttertoast.showToast(
130
             msg: "Server Response Error",
130
             msg: "Server Response Error",
133
             timeInSecForIosWeb: 1,
133
             timeInSecForIosWeb: 1,
134
             textColor: Colors.white,
134
             textColor: Colors.white,
135
             fontSize: 16.0);
135
             fontSize: 16.0);
136
-        loading.hide();
136
+        await loading.hide();
137
       }
137
       }
138
     });
138
     });
139
-    loading.hide();
139
+    await loading.hide();
140
     return _imageToShow;
140
     return _imageToShow;
141
   }
141
   }
142
 
142
 

+ 1
- 1
lib/main.dart View File

110
 
110
 
111
     // 2. This method only call when App in forground it mean app must be opened
111
     // 2. This method only call when App in forground it mean app must be opened
112
     FirebaseMessaging.onMessage.listen((RemoteMessage message) {
112
     FirebaseMessaging.onMessage.listen((RemoteMessage message) {
113
-      RemoteNotification? notification = message.notification;
113
+      RemoteNotification? notification = message.notification!;
114
       //AndroidNotification? android = message.notification?.android;
114
       //AndroidNotification? android = message.notification?.android;
115
       if (notification != null) {
115
       if (notification != null) {
116
         flutterLocalNotificationsPlugin.show(
116
         flutterLocalNotificationsPlugin.show(

+ 4
- 0
linux/flutter/generated_plugin_registrant.cc View File

6
 
6
 
7
 #include "generated_plugin_registrant.h"
7
 #include "generated_plugin_registrant.h"
8
 
8
 
9
+#include <file_selector_linux/file_selector_plugin.h>
9
 #include <url_launcher_linux/url_launcher_plugin.h>
10
 #include <url_launcher_linux/url_launcher_plugin.h>
10
 
11
 
11
 void fl_register_plugins(FlPluginRegistry* registry) {
12
 void fl_register_plugins(FlPluginRegistry* registry) {
13
+  g_autoptr(FlPluginRegistrar) file_selector_linux_registrar =
14
+      fl_plugin_registry_get_registrar_for_plugin(registry, "FileSelectorPlugin");
15
+  file_selector_plugin_register_with_registrar(file_selector_linux_registrar);
12
   g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar =
16
   g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar =
13
       fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin");
17
       fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin");
14
   url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar);
18
   url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar);

+ 1
- 0
linux/flutter/generated_plugins.cmake View File

3
 #
3
 #
4
 
4
 
5
 list(APPEND FLUTTER_PLUGIN_LIST
5
 list(APPEND FLUTTER_PLUGIN_LIST
6
+  file_selector_linux
6
   url_launcher_linux
7
   url_launcher_linux
7
 )
8
 )
8
 
9
 

+ 2
- 0
macos/Flutter/GeneratedPluginRegistrant.swift View File

7
 
7
 
8
 import connectivity_plus
8
 import connectivity_plus
9
 import device_info_plus
9
 import device_info_plus
10
+import file_selector_macos
10
 import firebase_core
11
 import firebase_core
11
 import firebase_crashlytics
12
 import firebase_crashlytics
12
 import firebase_messaging
13
 import firebase_messaging
21
 func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
22
 func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
22
   ConnectivityPlugin.register(with: registry.registrar(forPlugin: "ConnectivityPlugin"))
23
   ConnectivityPlugin.register(with: registry.registrar(forPlugin: "ConnectivityPlugin"))
23
   DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin"))
24
   DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin"))
25
+  FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin"))
24
   FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin"))
26
   FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin"))
25
   FLTFirebaseCrashlyticsPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCrashlyticsPlugin"))
27
   FLTFirebaseCrashlyticsPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCrashlyticsPlugin"))
26
   FLTFirebaseMessagingPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseMessagingPlugin"))
28
   FLTFirebaseMessagingPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseMessagingPlugin"))

+ 146
- 74
pubspec.lock View File

5
     dependency: transitive
5
     dependency: transitive
6
     description:
6
     description:
7
       name: _flutterfire_internals
7
       name: _flutterfire_internals
8
-      sha256: "9ebe81588e666f7e2b21309f2b5653bd9642d7f27fd0a6894278d2ff40cb9481"
8
+      sha256: a742f71d7f3484253a623b30e19256aa4668ecbb3de6ad1beb0bcf8d4777ecd8
9
       url: "https://pub.dev"
9
       url: "https://pub.dev"
10
     source: hosted
10
     source: hosted
11
-    version: "1.3.2"
11
+    version: "1.3.3"
12
   animated_splash_screen:
12
   animated_splash_screen:
13
     dependency: "direct main"
13
     dependency: "direct main"
14
     description:
14
     description:
33
       url: "https://pub.dev"
33
       url: "https://pub.dev"
34
     source: hosted
34
     source: hosted
35
     version: "2.0.7"
35
     version: "2.0.7"
36
+  app_settings:
37
+    dependency: "direct main"
38
+    description:
39
+      name: app_settings
40
+      sha256: "66715a323ac36d6c8201035ba678777c0d2ea869e4d7064300d95af10c3bb8cb"
41
+      url: "https://pub.dev"
42
+    source: hosted
43
+    version: "4.2.0"
36
   archive:
44
   archive:
37
     dependency: transitive
45
     dependency: transitive
38
     description:
46
     description:
85
     dependency: transitive
93
     dependency: transitive
86
     description:
94
     description:
87
       name: cli_util
95
       name: cli_util
88
-      sha256: "66f86e916d285c1a93d3b79587d94bd71984a66aac4ff74e524cfa7877f1395c"
96
+      sha256: b8db3080e59b2503ca9e7922c3df2072cf13992354d5e944074ffa836fba43b7
89
       url: "https://pub.dev"
97
       url: "https://pub.dev"
90
     source: hosted
98
     source: hosted
91
-    version: "0.3.5"
99
+    version: "0.4.0"
92
   clock:
100
   clock:
93
     dependency: transitive
101
     dependency: transitive
94
     description:
102
     description:
109
     dependency: "direct main"
117
     dependency: "direct main"
110
     description:
118
     description:
111
       name: connectivity_plus
119
       name: connectivity_plus
112
-      sha256: b74247fad72c171381dbe700ca17da24deac637ab6d43c343b42867acb95c991
120
+      sha256: "8599ae9edca5ff96163fca3e36f8e481ea917d1e71cdad912c084b5579913f34"
113
       url: "https://pub.dev"
121
       url: "https://pub.dev"
114
     source: hosted
122
     source: hosted
115
-    version: "3.0.6"
123
+    version: "4.0.1"
116
   connectivity_plus_platform_interface:
124
   connectivity_plus_platform_interface:
117
     dependency: transitive
125
     dependency: transitive
118
     description:
126
     description:
173
     dependency: "direct main"
181
     dependency: "direct main"
174
     description:
182
     description:
175
       name: device_info_plus
183
       name: device_info_plus
176
-      sha256: f52ab3b76b36ede4d135aab80194df8925b553686f0fa12226b4e2d658e45903
184
+      sha256: "2c35b6d1682b028e42d07b3aee4b98fa62996c10bc12cb651ec856a80d6a761b"
177
       url: "https://pub.dev"
185
       url: "https://pub.dev"
178
     source: hosted
186
     source: hosted
179
-    version: "8.2.2"
187
+    version: "9.0.2"
180
   device_info_plus_platform_interface:
188
   device_info_plus_platform_interface:
181
     dependency: transitive
189
     dependency: transitive
182
     description:
190
     description:
189
     dependency: "direct main"
197
     dependency: "direct main"
190
     description:
198
     description:
191
       name: dio
199
       name: dio
192
-      sha256: b99b1d56dc0d5dece70957023af002dbd49614b4a1bf86d3a254af3fe781bdf2
200
+      sha256: a9d76e72985d7087eb7c5e7903224ae52b337131518d127c554b9405936752b8
193
       url: "https://pub.dev"
201
       url: "https://pub.dev"
194
     source: hosted
202
     source: hosted
195
-    version: "5.2.0+1"
203
+    version: "5.2.1+1"
196
   double_back_to_close:
204
   double_back_to_close:
197
     dependency: "direct main"
205
     dependency: "direct main"
198
     description:
206
     description:
229
     dependency: "direct main"
237
     dependency: "direct main"
230
     description:
238
     description:
231
       name: file_picker
239
       name: file_picker
232
-      sha256: "9d6e95ec73abbd31ec54d0e0df8a961017e165aba1395e462e5b31ea0c165daf"
240
+      sha256: b1729fc96627dd44012d0a901558177418818d6bd428df59dcfeb594e5f66432
233
       url: "https://pub.dev"
241
       url: "https://pub.dev"
234
     source: hosted
242
     source: hosted
235
-    version: "5.3.1"
243
+    version: "5.3.2"
244
+  file_selector_linux:
245
+    dependency: transitive
246
+    description:
247
+      name: file_selector_linux
248
+      sha256: d17c5e450192cdc40b718804dfb4eaf79a71bed60ee9530703900879ba50baa3
249
+      url: "https://pub.dev"
250
+    source: hosted
251
+    version: "0.9.1+3"
252
+  file_selector_macos:
253
+    dependency: transitive
254
+    description:
255
+      name: file_selector_macos
256
+      sha256: "6290eec24fc4cc62535fe609e0c6714d3c1306191dc8c3b0319eaecc09423a3a"
257
+      url: "https://pub.dev"
258
+    source: hosted
259
+    version: "0.9.2"
260
+  file_selector_platform_interface:
261
+    dependency: transitive
262
+    description:
263
+      name: file_selector_platform_interface
264
+      sha256: "2a7f4bbf7bd2f022ecea85bfb1754e87f7dd403a9abc17a84a4fa2ddfe2abc0a"
265
+      url: "https://pub.dev"
266
+    source: hosted
267
+    version: "2.5.1"
268
+  file_selector_windows:
269
+    dependency: transitive
270
+    description:
271
+      name: file_selector_windows
272
+      sha256: ef246380b66d1fb9089fc65622c387bf3780bca79f533424c31d07f12c2c7fd8
273
+      url: "https://pub.dev"
274
+    source: hosted
275
+    version: "0.9.2"
236
   firebase_core:
276
   firebase_core:
237
     dependency: "direct main"
277
     dependency: "direct main"
238
     description:
278
     description:
239
       name: firebase_core
279
       name: firebase_core
240
-      sha256: e9b36b391690cf329c6fb1de220045e97c13784c303820cd33962319580a56c6
280
+      sha256: a4a99204da264a0aa9d54a332ea0315ce7b0768075139c77abefe98093dd98be
241
       url: "https://pub.dev"
281
       url: "https://pub.dev"
242
     source: hosted
282
     source: hosted
243
-    version: "2.13.1"
283
+    version: "2.14.0"
244
   firebase_core_platform_interface:
284
   firebase_core_platform_interface:
245
     dependency: transitive
285
     dependency: transitive
246
     description:
286
     description:
253
     dependency: transitive
293
     dependency: transitive
254
     description:
294
     description:
255
       name: firebase_core_web
295
       name: firebase_core_web
256
-      sha256: "8c0f4c87d20e2d001a5915df238c1f9c88704231f591324205f5a5d2a7740a45"
296
+      sha256: "0fd5c4b228de29b55fac38aed0d9e42514b3d3bd47675de52bf7f8fccaf922fa"
257
       url: "https://pub.dev"
297
       url: "https://pub.dev"
258
     source: hosted
298
     source: hosted
259
-    version: "2.5.0"
299
+    version: "2.6.0"
260
   firebase_crashlytics:
300
   firebase_crashlytics:
261
     dependency: "direct main"
301
     dependency: "direct main"
262
     description:
302
     description:
263
       name: firebase_crashlytics
303
       name: firebase_crashlytics
264
-      sha256: "603f23a74995c193cae89a784b8da529b1e6a91c03bc63f885f36456e9e867a0"
304
+      sha256: "398012cf7838f8a373a25da65dd62fc3a3f4abe4b5f886caa634952c3387dce3"
265
       url: "https://pub.dev"
305
       url: "https://pub.dev"
266
     source: hosted
306
     source: hosted
267
-    version: "3.3.2"
307
+    version: "3.3.3"
268
   firebase_crashlytics_platform_interface:
308
   firebase_crashlytics_platform_interface:
269
     dependency: transitive
309
     dependency: transitive
270
     description:
310
     description:
271
       name: firebase_crashlytics_platform_interface
311
       name: firebase_crashlytics_platform_interface
272
-      sha256: cefeeeb98abdb9d848581603bd1e33a2a8e6d3ed937586cb84437e606049071b
312
+      sha256: "39dfcc9a5ddfaa0588ad67f1016174dd9e19f6b31f592b8641bd559399567592"
273
       url: "https://pub.dev"
313
       url: "https://pub.dev"
274
     source: hosted
314
     source: hosted
275
-    version: "3.6.2"
315
+    version: "3.6.3"
276
   firebase_messaging:
316
   firebase_messaging:
277
     dependency: "direct main"
317
     dependency: "direct main"
278
     description:
318
     description:
279
       name: firebase_messaging
319
       name: firebase_messaging
280
-      sha256: a01d7b9eb43a4bad54a411edb2b4124089d88eab029191893e83c39e18ab19f7
320
+      sha256: "77d93f897c893fa7c8de433f6950123bd9c56f27fd7f88a032a53102ca23fcee"
281
       url: "https://pub.dev"
321
       url: "https://pub.dev"
282
     source: hosted
322
     source: hosted
283
-    version: "14.6.2"
323
+    version: "14.6.3"
284
   firebase_messaging_platform_interface:
324
   firebase_messaging_platform_interface:
285
     dependency: transitive
325
     dependency: transitive
286
     description:
326
     description:
287
       name: firebase_messaging_platform_interface
327
       name: firebase_messaging_platform_interface
288
-      sha256: c2fef3e30fbfa3a71d74477df102d1c2f5aad860bb68bb4086b0af3b12abedf3
328
+      sha256: e9e9dc48a3d8ffa67aaba3d6b1ebf74bc7d7d8c83d10b1458ff97878b9d8a2b0
289
       url: "https://pub.dev"
329
       url: "https://pub.dev"
290
     source: hosted
330
     source: hosted
291
-    version: "4.5.2"
331
+    version: "4.5.3"
292
   firebase_messaging_web:
332
   firebase_messaging_web:
293
     dependency: transitive
333
     dependency: transitive
294
     description:
334
     description:
295
       name: firebase_messaging_web
335
       name: firebase_messaging_web
296
-      sha256: "8d280f0110ca4946b9863e578b9879874066ac486ffa596a609aab329fb6fa7e"
336
+      sha256: "381f217e41e0e407baf8df21787b97e46fabfacefd6a953425be3a6cdf2269f4"
297
       url: "https://pub.dev"
337
       url: "https://pub.dev"
298
     source: hosted
338
     source: hosted
299
-    version: "3.5.2"
339
+    version: "3.5.3"
300
   flutter:
340
   flutter:
301
     dependency: "direct main"
341
     dependency: "direct main"
302
     description: flutter
342
     description: flutter
322
     dependency: "direct main"
362
     dependency: "direct main"
323
     description:
363
     description:
324
       name: flutter_launcher_icons
364
       name: flutter_launcher_icons
325
-      sha256: ce0e501cfc258907842238e4ca605e74b7fd1cdf04b3b43e86c43f3e40a1592c
365
+      sha256: "526faf84284b86a4cb36d20a5e45147747b7563d921373d4ee0559c54fcdbcea"
326
       url: "https://pub.dev"
366
       url: "https://pub.dev"
327
     source: hosted
367
     source: hosted
328
-    version: "0.11.0"
368
+    version: "0.13.1"
329
   flutter_local_notifications:
369
   flutter_local_notifications:
330
     dependency: "direct main"
370
     dependency: "direct main"
331
     description:
371
     description:
354
     dependency: "direct main"
394
     dependency: "direct main"
355
     description:
395
     description:
356
       name: flutter_map
396
       name: flutter_map
357
-      sha256: "59dfd14267b691bea55760786b47d3172d47cdcc0d79ff930746a5ad123491b8"
397
+      sha256: "52c65a977daae42f9aae6748418dd1535eaf27186e9bac9bf431843082bc75a3"
358
       url: "https://pub.dev"
398
       url: "https://pub.dev"
359
     source: hosted
399
     source: hosted
360
-    version: "3.1.0"
400
+    version: "4.0.0"
361
   flutter_map_marker_cluster:
401
   flutter_map_marker_cluster:
362
     dependency: "direct main"
402
     dependency: "direct main"
363
     description:
403
     description:
364
       name: flutter_map_marker_cluster
404
       name: flutter_map_marker_cluster
365
-      sha256: "63d8658a4d1357679f591308b9567d1d66cb23ba37a2b7792ff48ff009553283"
405
+      sha256: "362088b16311b6743a7930857129ec6c7c807ecca777fe1033c0ad6688339e36"
366
       url: "https://pub.dev"
406
       url: "https://pub.dev"
367
     source: hosted
407
     source: hosted
368
-    version: "1.1.0"
408
+    version: "1.1.1"
369
   flutter_map_marker_popup:
409
   flutter_map_marker_popup:
370
     dependency: transitive
410
     dependency: transitive
371
     description:
411
     description:
372
       name: flutter_map_marker_popup
412
       name: flutter_map_marker_popup
373
-      sha256: f5a40d006e07154a213345300217e8f995ddd3cd280dbe8dc8964f47e7d7fe7c
413
+      sha256: "7cf30fab25ffe1ba04a9e0fbe1227f44a83c73256d4d70be1c26cf141ce5c41d"
374
       url: "https://pub.dev"
414
       url: "https://pub.dev"
375
     source: hosted
415
     source: hosted
376
-    version: "4.0.3"
416
+    version: "4.1.0"
377
   flutter_plugin_android_lifecycle:
417
   flutter_plugin_android_lifecycle:
378
     dependency: transitive
418
     dependency: transitive
379
     description:
419
     description:
410
     dependency: "direct main"
450
     dependency: "direct main"
411
     description:
451
     description:
412
       name: flutter_svg
452
       name: flutter_svg
413
-      sha256: "6ff8c902c8056af9736de2689f63f81c42e2d642b9f4c79dbf8790ae48b63012"
453
+      sha256: "8c5d68a82add3ca76d792f058b186a0599414f279f00ece4830b9b231b570338"
414
       url: "https://pub.dev"
454
       url: "https://pub.dev"
415
     source: hosted
455
     source: hosted
416
-    version: "2.0.6"
456
+    version: "2.0.7"
417
   flutter_test:
457
   flutter_test:
418
     dependency: "direct dev"
458
     dependency: "direct dev"
419
     description: flutter
459
     description: flutter
492
     dependency: transitive
532
     dependency: transitive
493
     description:
533
     description:
494
       name: geolocator_android
534
       name: geolocator_android
495
-      sha256: "6cd3c622df085a79fd61f5c14fa024c3ba593aa6b1df2ee809ac59f45e6a9861"
535
+      sha256: "94c2cf51f4a8387335cc2d1a21cc50897bc93069e05fc09aee29bd353a14f6f5"
496
       url: "https://pub.dev"
536
       url: "https://pub.dev"
497
     source: hosted
537
     source: hosted
498
-    version: "4.1.8"
538
+    version: "4.1.9"
499
   geolocator_apple:
539
   geolocator_apple:
500
     dependency: transitive
540
     dependency: transitive
501
     description:
541
     description:
502
       name: geolocator_apple
542
       name: geolocator_apple
503
-      sha256: d29a4bdd48b1a575d9928d2e43c2abb2b0bedd5b34399ccfaf76d0067fc0d3b1
543
+      sha256: "36527c555f4c425f7d8fa8c7c07d67b78e3ff7590d40448051959e1860c1cfb4"
504
       url: "https://pub.dev"
544
       url: "https://pub.dev"
505
     source: hosted
545
     source: hosted
506
-    version: "2.2.6"
546
+    version: "2.2.7"
507
   geolocator_platform_interface:
547
   geolocator_platform_interface:
508
     dependency: transitive
548
     dependency: transitive
509
     description:
549
     description:
564
     dependency: transitive
604
     dependency: transitive
565
     description:
605
     description:
566
       name: image
606
       name: image
567
-      sha256: "8e9d133755c3e84c73288363e6343157c383a0c6c56fc51afcc5d4d7180306d6"
607
+      sha256: a72242c9a0ffb65d03de1b7113bc4e189686fc07c7147b8b41811d0dd0e0d9bf
568
       url: "https://pub.dev"
608
       url: "https://pub.dev"
569
     source: hosted
609
     source: hosted
570
-    version: "3.3.0"
610
+    version: "4.0.17"
571
   image_cropper:
611
   image_cropper:
572
     dependency: "direct main"
612
     dependency: "direct main"
573
     description:
613
     description:
574
       name: image_cropper
614
       name: image_cropper
575
-      sha256: "710ab4b7953e9ce1d27d833f741e5f8f3afb0b0ba3556dc0b844741b5f55c2b3"
615
+      sha256: "542c3453109d16bcc388e43ae2276044d2cd6a6d20c68bdcff2c94ab9363ea15"
576
       url: "https://pub.dev"
616
       url: "https://pub.dev"
577
     source: hosted
617
     source: hosted
578
-    version: "3.0.3"
618
+    version: "4.0.1"
579
   image_cropper_for_web:
619
   image_cropper_for_web:
580
     dependency: transitive
620
     dependency: transitive
581
     description:
621
     description:
582
       name: image_cropper_for_web
622
       name: image_cropper_for_web
583
-      sha256: "09e93a8ec0435adcaa23622ac090442872f18145d70b9ff605ffedcf97d56255"
623
+      sha256: "89c936aa772a35b69ca67b78049ae9fa163a4fb8da2f6dee3893db8883fb49d2"
584
       url: "https://pub.dev"
624
       url: "https://pub.dev"
585
     source: hosted
625
     source: hosted
586
-    version: "1.0.3"
626
+    version: "2.0.0"
587
   image_cropper_platform_interface:
627
   image_cropper_platform_interface:
588
     dependency: transitive
628
     dependency: transitive
589
     description:
629
     description:
590
       name: image_cropper_platform_interface
630
       name: image_cropper_platform_interface
591
-      sha256: "62349e3aab63873ea9b9ab9f69d036ab8a0d74b3004beec4303981386cb9273f"
631
+      sha256: b232175c132b2f7ede3e1f101652bcd635cb4079a77c6dded8e6d32e6578d685
592
       url: "https://pub.dev"
632
       url: "https://pub.dev"
593
     source: hosted
633
     source: hosted
594
-    version: "3.0.3"
634
+    version: "4.0.0"
595
   image_picker:
635
   image_picker:
596
     dependency: "direct main"
636
     dependency: "direct main"
597
     description:
637
     description:
598
       name: image_picker
638
       name: image_picker
599
-      sha256: "9978d3510af4e6a902e545ce19229b926e6de6a1828d6134d3aab2e129a4d270"
639
+      sha256: "6432178560d95303cc70d038363f892f5a05750dd27bc55220c7301af54d05e9"
600
       url: "https://pub.dev"
640
       url: "https://pub.dev"
601
     source: hosted
641
     source: hosted
602
-    version: "0.8.7+5"
642
+    version: "0.8.8"
603
   image_picker_android:
643
   image_picker_android:
604
     dependency: transitive
644
     dependency: transitive
605
     description:
645
     description:
606
       name: image_picker_android
646
       name: image_picker_android
607
-      sha256: "3083c3a3245adf9f3eb7bacf0eaa6a1f087dd538fab73a13a2f7907602601692"
647
+      sha256: "1ec6830289f5b6aeff3aa8239ea737c71950178dda389342dc2215adb06b4bd8"
608
       url: "https://pub.dev"
648
       url: "https://pub.dev"
609
     source: hosted
649
     source: hosted
610
-    version: "0.8.6+19"
650
+    version: "0.8.6+20"
611
   image_picker_for_web:
651
   image_picker_for_web:
612
     dependency: transitive
652
     dependency: transitive
613
     description:
653
     description:
624
       url: "https://pub.dev"
664
       url: "https://pub.dev"
625
     source: hosted
665
     source: hosted
626
     version: "0.8.7+4"
666
     version: "0.8.7+4"
667
+  image_picker_linux:
668
+    dependency: transitive
669
+    description:
670
+      name: image_picker_linux
671
+      sha256: "1d8f9a97178d6b8a035f1d2765f17f8ca3d36a40d5594e742a481b1e002f20be"
672
+      url: "https://pub.dev"
673
+    source: hosted
674
+    version: "0.2.0"
675
+  image_picker_macos:
676
+    dependency: transitive
677
+    description:
678
+      name: image_picker_macos
679
+      sha256: ff094b36d6c06200808f733144a033e45b4e17d59524e1cf7d2af7e4cb94e1ab
680
+      url: "https://pub.dev"
681
+    source: hosted
682
+    version: "0.2.0"
627
   image_picker_platform_interface:
683
   image_picker_platform_interface:
628
     dependency: transitive
684
     dependency: transitive
629
     description:
685
     description:
630
       name: image_picker_platform_interface
686
       name: image_picker_platform_interface
631
-      sha256: "57e66df4d3850fae4c9e45b3ac4c53cda0e35fe8a833914d3502d2faa0b48597"
687
+      sha256: "7c7b96bb9413a9c28229e717e6fd1e3edd1cc5569c1778fcca060ecf729b65ee"
688
+      url: "https://pub.dev"
689
+    source: hosted
690
+    version: "2.8.0"
691
+  image_picker_windows:
692
+    dependency: transitive
693
+    description:
694
+      name: image_picker_windows
695
+      sha256: bf77b819eb62c487e6af53b9eb213adc12bd060ef7e43f3b1dd69c53cc24a61d
632
       url: "https://pub.dev"
696
       url: "https://pub.dev"
633
     source: hosted
697
     source: hosted
634
-    version: "2.6.4"
698
+    version: "0.2.0"
635
   internet_connection_checker:
699
   internet_connection_checker:
636
     dependency: "direct main"
700
     dependency: "direct main"
637
     description:
701
     description:
872
       url: "https://pub.dev"
936
       url: "https://pub.dev"
873
     source: hosted
937
     source: hosted
874
     version: "1.0.1"
938
     version: "1.0.1"
875
-  positioned_tap_detector_2:
876
-    dependency: transitive
877
-    description:
878
-      name: positioned_tap_detector_2
879
-      sha256: "52e06863ad3e1f82b058fd05054fc8c9caeeb3b47d5cea7a24bd9320746059c1"
880
-      url: "https://pub.dev"
881
-    source: hosted
882
-    version: "1.0.4"
883
   process:
939
   process:
884
     dependency: transitive
940
     dependency: transitive
885
     description:
941
     description:
916
     dependency: "direct main"
972
     dependency: "direct main"
917
     description:
973
     description:
918
       name: shared_preferences
974
       name: shared_preferences
919
-      sha256: "16d3fb6b3692ad244a695c0183fca18cf81fd4b821664394a781de42386bf022"
975
+      sha256: "396f85b8afc6865182610c0a2fc470853d56499f75f7499e2a73a9f0539d23d0"
920
       url: "https://pub.dev"
976
       url: "https://pub.dev"
921
     source: hosted
977
     source: hosted
922
-    version: "2.1.1"
978
+    version: "2.1.2"
923
   shared_preferences_android:
979
   shared_preferences_android:
924
     dependency: transitive
980
     dependency: transitive
925
     description:
981
     description:
1049
     dependency: "direct main"
1105
     dependency: "direct main"
1050
     description:
1106
     description:
1051
       name: tuple
1107
       name: tuple
1052
-      sha256: "0ea99cd2f9352b2586583ab2ce6489d1f95a5f6de6fb9492faaf97ae2060f0aa"
1108
+      sha256: a97ce2013f240b2f3807bcbaf218765b6f301c3eff91092bcfa23a039e7dd151
1053
       url: "https://pub.dev"
1109
       url: "https://pub.dev"
1054
     source: hosted
1110
     source: hosted
1055
-    version: "2.0.1"
1111
+    version: "2.0.2"
1056
   typed_data:
1112
   typed_data:
1057
     dependency: transitive
1113
     dependency: transitive
1058
     description:
1114
     description:
1133
       url: "https://pub.dev"
1189
       url: "https://pub.dev"
1134
     source: hosted
1190
     source: hosted
1135
     version: "3.0.6"
1191
     version: "3.0.6"
1192
+  uuid:
1193
+    dependency: transitive
1194
+    description:
1195
+      name: uuid
1196
+      sha256: "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313"
1197
+      url: "https://pub.dev"
1198
+    source: hosted
1199
+    version: "3.0.7"
1136
   vector_graphics:
1200
   vector_graphics:
1137
     dependency: transitive
1201
     dependency: transitive
1138
     description:
1202
     description:
1139
       name: vector_graphics
1203
       name: vector_graphics
1140
-      sha256: b96f10cbdfcbd03a65758633a43e7d04574438f059b1043104b5d61b23d38a4f
1204
+      sha256: "670f6e07aca990b4a2bcdc08a784193c4ccdd1932620244c3a86bb72a0eac67f"
1141
       url: "https://pub.dev"
1205
       url: "https://pub.dev"
1142
     source: hosted
1206
     source: hosted
1143
-    version: "1.1.6"
1207
+    version: "1.1.7"
1144
   vector_graphics_codec:
1208
   vector_graphics_codec:
1145
     dependency: transitive
1209
     dependency: transitive
1146
     description:
1210
     description:
1147
       name: vector_graphics_codec
1211
       name: vector_graphics_codec
1148
-      sha256: "57a8e6e24662a3bdfe3b3d61257db91768700c0b8f844e235877b56480f31c69"
1212
+      sha256: "7451721781d967db9933b63f5733b1c4533022c0ba373a01bdd79d1a5457f69f"
1149
       url: "https://pub.dev"
1213
       url: "https://pub.dev"
1150
     source: hosted
1214
     source: hosted
1151
-    version: "1.1.6"
1215
+    version: "1.1.7"
1152
   vector_graphics_compiler:
1216
   vector_graphics_compiler:
1153
     dependency: transitive
1217
     dependency: transitive
1154
     description:
1218
     description:
1155
       name: vector_graphics_compiler
1219
       name: vector_graphics_compiler
1156
-      sha256: "7430f5d834d0db4560d7b19863362cd892f1e52b43838553a3c5cdfc9ab28e5b"
1220
+      sha256: "80a13c613c8bde758b1464a1755a7b3a8f2b6cec61fbf0f5a53c94c30f03ba2e"
1157
       url: "https://pub.dev"
1221
       url: "https://pub.dev"
1158
     source: hosted
1222
     source: hosted
1159
-    version: "1.1.6"
1223
+    version: "1.1.7"
1160
   vector_math:
1224
   vector_math:
1161
     dependency: "direct main"
1225
     dependency: "direct main"
1162
     description:
1226
     description:
1177
     dependency: transitive
1241
     dependency: transitive
1178
     description:
1242
     description:
1179
       name: win32
1243
       name: win32
1180
-      sha256: "5a751eddf9db89b3e5f9d50c20ab8612296e4e8db69009788d6c8b060a84191c"
1244
+      sha256: "7dacfda1edcca378031db9905ad7d7bd56b29fd1a90b0908b71a52a12c41e36b"
1245
+      url: "https://pub.dev"
1246
+    source: hosted
1247
+    version: "5.0.3"
1248
+  win32_registry:
1249
+    dependency: transitive
1250
+    description:
1251
+      name: win32_registry
1252
+      sha256: e4506d60b7244251bc59df15656a3093501c37fb5af02105a944d73eb95be4c9
1181
       url: "https://pub.dev"
1253
       url: "https://pub.dev"
1182
     source: hosted
1254
     source: hosted
1183
-    version: "4.1.4"
1255
+    version: "1.1.1"
1184
   wkt_parser:
1256
   wkt_parser:
1185
     dependency: transitive
1257
     dependency: transitive
1186
     description:
1258
     description:

+ 12
- 11
pubspec.yaml View File

31
 dependencies:
31
 dependencies:
32
   flutter:
32
   flutter:
33
     sdk: flutter
33
     sdk: flutter
34
-  google_fonts: ^4.0.3
34
+  google_fonts: ^4.0.4
35
 
35
 
36
   # The following adds the Cupertino Icons font to your application.
36
   # The following adds the Cupertino Icons font to your application.
37
   # Use with the CupertinoIcons class for iOS style icons.
37
   # Use with the CupertinoIcons class for iOS style icons.
43
   lottie: ^2.0.0
43
   lottie: ^2.0.0
44
   fluttertoast: ^8.1.1
44
   fluttertoast: ^8.1.1
45
   #google_maps_flutter: ^2.2.1
45
   #google_maps_flutter: ^2.2.1
46
-  http: ^0.13.5
46
+  http: ^0.13.6
47
   intl: ^0.18.0
47
   intl: ^0.18.0
48
   dio: ^5.0.0
48
   dio: ^5.0.0
49
   get_it: ^7.2.0
49
   get_it: ^7.2.0
50
   shared_preferences: ^2.0.15
50
   shared_preferences: ^2.0.15
51
   # device_information: ^0.0.4
51
   # device_information: ^0.0.4
52
   device_imei: ^0.0.2
52
   device_imei: ^0.0.2
53
-  device_info_plus: ^8.0.0
53
+  device_info_plus: ^9.0.2
54
   flutter_udid: ^2.0.1
54
   flutter_udid: ^2.0.1
55
   image_picker: ^0.8.6
55
   image_picker: ^0.8.6
56
-  image_cropper: ^3.0.1
56
+  image_cropper: ^4.0.1
57
   #progress_dialog: ^1.2.4
57
   #progress_dialog: ^1.2.4
58
   progress_dialog_null_safe: ^1.0.4
58
   progress_dialog_null_safe: ^1.0.4
59
   #mapbox_gl: ^0.16.0
59
   #mapbox_gl: ^0.16.0
60
-  file_picker: ^5.2.4
60
+  file_picker: ^5.3.2
61
   #device_id: ^0.2.0
61
   #device_id: ^0.2.0
62
-  flutter_launcher_icons: ^0.11.0
62
+  flutter_launcher_icons: ^0.13.1
63
   location: ^4.4.0
63
   location: ^4.4.0
64
   #latlong: ^0.6.1
64
   #latlong: ^0.6.1
65
-  flutter_map: ^3.1.0
65
+  flutter_map: ^4.0.0
66
   geolocator: ^9.0.2
66
   geolocator: ^9.0.2
67
   geocoding: ^2.1.0
67
   geocoding: ^2.1.0
68
   #geocoder: ^0.2.1
68
   #geocoder: ^0.2.1
73
   flutter_image: ^4.1.4
73
   flutter_image: ^4.1.4
74
   vector_math: ^2.1.2
74
   vector_math: ^2.1.2
75
   meta: ^1.8.0
75
   meta: ^1.8.0
76
-  collection: ^1.17.0
77
-  flutter_map_marker_cluster: ^1.0.1
76
+  collection: ^1.17.1
77
+  flutter_map_marker_cluster: ^1.1.1
78
   flutter_polyline_points: ^1.0.0
78
   flutter_polyline_points: ^1.0.0
79
   provider: ^6.0.5
79
   provider: ^6.0.5
80
-  connectivity_plus: ^3.0.3
80
+  connectivity_plus: ^4.0.1
81
   internet_connection_checker: ^1.0.0+1
81
   internet_connection_checker: ^1.0.0+1
82
   #plain_notification_token: ^0.0.4
82
   #plain_notification_token: ^0.0.4
83
   focus_detector: ^2.0.1
83
   focus_detector: ^2.0.1
84
   firebase_core: ^2.6.1
84
   firebase_core: ^2.6.1
85
-  flutter_local_notifications: ^14.0.0
85
+  flutter_local_notifications: ^14.1.1
86
   firebase_messaging: ^14.4.1
86
   firebase_messaging: ^14.4.1
87
   url_launcher: ^6.1.9
87
   url_launcher: ^6.1.9
88
   flutter_sliding_up_panel: ^2.0.1
88
   flutter_sliding_up_panel: ^2.0.1
90
   flutter_animate: ^4.1.1+1
90
   flutter_animate: ^4.1.1+1
91
   animations: ^2.0.7
91
   animations: ^2.0.7
92
   firebase_crashlytics: ^3.3.2
92
   firebase_crashlytics: ^3.3.2
93
+  app_settings: ^4.2.0
93
 
94
 
94
 dev_dependencies:
95
 dev_dependencies:
95
   flutter_test:
96
   flutter_test:

BIN
ttwenty.jks View File


+ 3
- 0
windows/flutter/generated_plugin_registrant.cc View File

7
 #include "generated_plugin_registrant.h"
7
 #include "generated_plugin_registrant.h"
8
 
8
 
9
 #include <connectivity_plus/connectivity_plus_windows_plugin.h>
9
 #include <connectivity_plus/connectivity_plus_windows_plugin.h>
10
+#include <file_selector_windows/file_selector_windows.h>
10
 #include <firebase_core/firebase_core_plugin_c_api.h>
11
 #include <firebase_core/firebase_core_plugin_c_api.h>
11
 #include <geolocator_windows/geolocator_windows.h>
12
 #include <geolocator_windows/geolocator_windows.h>
12
 #include <url_launcher_windows/url_launcher_windows.h>
13
 #include <url_launcher_windows/url_launcher_windows.h>
14
 void RegisterPlugins(flutter::PluginRegistry* registry) {
15
 void RegisterPlugins(flutter::PluginRegistry* registry) {
15
   ConnectivityPlusWindowsPluginRegisterWithRegistrar(
16
   ConnectivityPlusWindowsPluginRegisterWithRegistrar(
16
       registry->GetRegistrarForPlugin("ConnectivityPlusWindowsPlugin"));
17
       registry->GetRegistrarForPlugin("ConnectivityPlusWindowsPlugin"));
18
+  FileSelectorWindowsRegisterWithRegistrar(
19
+      registry->GetRegistrarForPlugin("FileSelectorWindows"));
17
   FirebaseCorePluginCApiRegisterWithRegistrar(
20
   FirebaseCorePluginCApiRegisterWithRegistrar(
18
       registry->GetRegistrarForPlugin("FirebaseCorePluginCApi"));
21
       registry->GetRegistrarForPlugin("FirebaseCorePluginCApi"));
19
   GeolocatorWindowsRegisterWithRegistrar(
22
   GeolocatorWindowsRegisterWithRegistrar(

+ 1
- 0
windows/flutter/generated_plugins.cmake View File

4
 
4
 
5
 list(APPEND FLUTTER_PLUGIN_LIST
5
 list(APPEND FLUTTER_PLUGIN_LIST
6
   connectivity_plus
6
   connectivity_plus
7
+  file_selector_windows
7
   firebase_core
8
   firebase_core
8
   geolocator_windows
9
   geolocator_windows
9
   url_launcher_windows
10
   url_launcher_windows

Loading…
Cancel
Save