From f22d88958aa70287b6ecb65be124bff0b356b9a0 Mon Sep 17 00:00:00 2001
From: shoaib-mohmad <shoaib.mohmad@tarento.com>
Date: Tue, 19 Apr 2022 12:34:16 +0530
Subject: [PATCH] Fixed all the issues in v1.0

---
 README.md                                    |  8 +++---
 lib/constants/api_endpoints.dart             |  2 ++
 lib/constants/app_constants.dart             |  3 ++-
 lib/main.dart                                |  1 +
 lib/pages/home_page.dart                     |  5 ++--
 lib/repositories/application_repository.dart |  7 +++++-
 lib/repositories/login_repository.dart       | 26 ++++++++++++--------
 lib/services/application_service.dart        |  2 +-
 lib/services/login_service.dart              |  9 +++++++
 9 files changed, 44 insertions(+), 19 deletions(-)

diff --git a/README.md b/README.md
index 7cef767..6c1d172 100644
--- a/README.md
+++ b/README.md
@@ -17,9 +17,9 @@ samples, guidance on mobile development, and a full API reference.
 
 ## Configuration Details
 
-* Flutter 2.10.3 • channel stable • https://github.com/flutter/flutter.git
-* Framework • revision 7e9793dee1 (2 weeks ago) • 2022-03-02 11:23:12 -0600
-* Engine • revision bd539267b4
-* Tools • Dart 2.16.1 • DevTools 2.9.2
+* Flutter 2.10.4 • channel stable • https://github.com/flutter/flutter.git
+* Framework • revision c860cba910 (12 days ago) • 2022-03-25 00:23:12 -0500
+* Engine • revision 57d3bac3dd
+* Tools • Dart 2.16.2 • DevTools 2.9.2
 
 
diff --git a/lib/constants/api_endpoints.dart b/lib/constants/api_endpoints.dart
index 9255dc1..e1773c9 100644
--- a/lib/constants/api_endpoints.dart
+++ b/lib/constants/api_endpoints.dart
@@ -15,4 +15,6 @@ class ApiUrl {
   static const getAllForms = '$baseUrl/api/forms/getAllForms?isDetail=true';
   static const fileUpload = '$baseUrl/api/forms/fileUpload';
   static const deleteFile = '$baseUrl/api/forms/deleteCloudFile';
+  static const deleteDeviceToken =
+      '$baseUrl/api/user/deleteDeviceToken?deviceId=';
 }
diff --git a/lib/constants/app_constants.dart b/lib/constants/app_constants.dart
index 34c32dc..1e46751 100644
--- a/lib/constants/app_constants.dart
+++ b/lib/constants/app_constants.dart
@@ -1,4 +1,4 @@
-const String appVersion = '1.0';
+const String appVersion = '1.3';
 const String appName = 'UP SMF';
 const int inspectorRoleId = 2093;
 
@@ -52,6 +52,7 @@ class Storage {
   static const String lastname = 'smf_user_last_name';
   static const String authtoken = 'smf_user_auth_token';
   static const String applicationId = 'smf_application_id';
+  static const String deviceIdentifier = 'smf_device_identifier';
 }
 
 class Inspector {
diff --git a/lib/main.dart b/lib/main.dart
index 3e5d5da..9d7b5bd 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -10,3 +10,4 @@ void main() {
     },
   ));
 }
+  
\ No newline at end of file
diff --git a/lib/pages/home_page.dart b/lib/pages/home_page.dart
index 05c79cc..f7b19c6 100644
--- a/lib/pages/home_page.dart
+++ b/lib/pages/home_page.dart
@@ -133,9 +133,10 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver {
     // await Future.delayed(const Duration(milliseconds: 10));
     if (isInternetConnected) {
       _validateUser();
-      _getForms();
-      _syncApplications();
+      await _getForms();
+      await _syncApplications();
     }
+
     _allApplications =
         await Provider.of<ApplicationRespository>(context, listen: false)
             .getApplications(isInternetConnected);
diff --git a/lib/repositories/application_repository.dart b/lib/repositories/application_repository.dart
index 9fc3d05..9fe1111 100644
--- a/lib/repositories/application_repository.dart
+++ b/lib/repositories/application_repository.dart
@@ -100,7 +100,9 @@ class ApplicationRespository with ChangeNotifier {
     bool response = false;
     List<Map> attachments = [];
     try {
+      // await OfflineModel.deleteInspections();
       List<Map> rawInspections = await OfflineModel.getInspections();
+      // print(rawInspections);
       for (var inspection in rawInspections) {
         Map inspectionData = jsonDecode(inspection['inspection_data']);
         attachments =
@@ -118,11 +120,14 @@ class ApplicationRespository with ChangeNotifier {
           consents.add(inspectionData);
         }
       }
+      // print('inspections: ' + inspections.toString());
+      // print('concents: ' + consents.toString());
       if (inspections.isNotEmpty) {
         final request1 =
             await ApplicationService.submitBulkInspection(inspections);
         data1 = json.decode(request1.body);
       }
+
       if (consents.isNotEmpty) {
         final request2 = await ApplicationService.submitBulkConsent(consents);
         data2 = json.decode(request2.body);
@@ -154,7 +159,7 @@ class ApplicationRespository with ChangeNotifier {
       if (!internetConnected) {
         Map<String, Object> applicationData = {
           'inspector_type': Inspector.assistantInspector,
-          'inspection_data': data
+          'inspection_data': json.encode(data)
         };
         await OfflineModel.saveInspection(applicationData);
 
diff --git a/lib/repositories/login_repository.dart b/lib/repositories/login_repository.dart
index bbcdfac..15216c5 100644
--- a/lib/repositories/login_repository.dart
+++ b/lib/repositories/login_repository.dart
@@ -8,6 +8,7 @@ import 'package:smf_mobile/landing_page.dart';
 import 'package:smf_mobile/models/login_model.dart';
 import 'package:flutter_secure_storage/flutter_secure_storage.dart';
 import 'package:smf_mobile/services/login_service.dart';
+import 'package:smf_mobile/util/helper.dart';
 // import 'package:smf_mobile/util/notification_helper.dart';
 
 class LoginRespository with ChangeNotifier {
@@ -74,6 +75,7 @@ class LoginRespository with ChangeNotifier {
       _storage.write(key: Storage.firstname, value: _loginDetails.firstName);
       _storage.write(key: Storage.lastname, value: _loginDetails.lastName);
       _storage.write(key: Storage.authtoken, value: _loginDetails.authToken);
+      _storage.write(key: Storage.deviceIdentifier, value: identifier);
       _firebaseMessaging.getToken().then((token) async {
         final request = await LoginService.updateUserDeviceToken(
           token.toString(),
@@ -92,16 +94,16 @@ class LoginRespository with ChangeNotifier {
   }
 
   void _configureMessaging(context) async {
-    NotificationSettings settings = await _firebaseMessaging.requestPermission(
-      alert: true,
-      announcement: false,
-      badge: true,
-      carPlay: false,
-      criticalAlert: false,
-      provisional: false,
-      sound: true,
-    );
-    print('User granted permission: ${settings.authorizationStatus}');
+    // NotificationSettings settings = await _firebaseMessaging.requestPermission(
+    //   alert: true,
+    //   announcement: false,
+    //   badge: true,
+    //   carPlay: false,
+    //   criticalAlert: false,
+    //   provisional: false,
+    //   sound: true,
+    // );
+    // print('User granted permission: ${settings.authorizationStatus}');
 
     FirebaseMessaging.onBackgroundMessage(firebaseMessagingBackgroundHandler);
 
@@ -114,6 +116,10 @@ class LoginRespository with ChangeNotifier {
   }
 
   Future<void> clearData() async {
+    String deviceIdentifier = await Helper.getUser(Storage.deviceIdentifier);
+    // print(deviceIdentifier);
+    await LoginService.deleteDeviceToken(deviceIdentifier);
+    // print(request.body);
     await _storage.deleteAll();
   }
 
diff --git a/lib/services/application_service.dart b/lib/services/application_service.dart
index fbb5fb5..2020ae4 100644
--- a/lib/services/application_service.dart
+++ b/lib/services/application_service.dart
@@ -64,7 +64,7 @@ class ApplicationService extends BaseService {
 
     final response = await http.post(Uri.parse(ApiUrl.submitBulkConcent),
         headers: headers, body: body);
-    // developer.log(ApiUrl.submitInspection);
+    // developer.log(ApiUrl.submitBulkConcent);
     // developer.log(body);
     // developer.log(response.body);
     return response;
diff --git a/lib/services/login_service.dart b/lib/services/login_service.dart
index 83d6400..4f63d7d 100644
--- a/lib/services/login_service.dart
+++ b/lib/services/login_service.dart
@@ -61,4 +61,13 @@ class LoginService extends BaseService {
         headers: headers, body: body);
     return response;
   }
+
+  static Future<dynamic> deleteDeviceToken(String identifier) async {
+    Map<String, String> headers = await BaseService.getHeaders();
+    final response = await http.delete(
+      Uri.parse(ApiUrl.deleteDeviceToken + identifier),
+      headers: headers,
+    );
+    return response;
+  }
 }
-- 
GitLab