Merge branch 'design_3.0_ppm_new_flow' into design_3.0_transfer_request_new_flow

design_3.0_dark_mode
WaseemAbbasi22 12 months ago
commit 6bd888e06a

@ -1,331 +0,0 @@
PODS:
- audioplayers_darwin (0.0.1):
- Flutter
- device_calendar (0.0.1):
- Flutter
- DKImagePickerController/Core (4.3.9):
- DKImagePickerController/ImageDataManager
- DKImagePickerController/Resource
- DKImagePickerController/ImageDataManager (4.3.9)
- DKImagePickerController/PhotoGallery (4.3.9):
- DKImagePickerController/Core
- DKPhotoGallery
- DKImagePickerController/Resource (4.3.9)
- DKPhotoGallery (0.0.19):
- DKPhotoGallery/Core (= 0.0.19)
- DKPhotoGallery/Model (= 0.0.19)
- DKPhotoGallery/Preview (= 0.0.19)
- DKPhotoGallery/Resource (= 0.0.19)
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Core (0.0.19):
- DKPhotoGallery/Model
- DKPhotoGallery/Preview
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Model (0.0.19):
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Preview (0.0.19):
- DKPhotoGallery/Model
- DKPhotoGallery/Resource
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Resource (0.0.19):
- SDWebImage
- SwiftyGif
- file_picker (0.0.1):
- DKImagePickerController/PhotoGallery
- Flutter
- Firebase/CoreOnly (11.2.0):
- FirebaseCore (= 11.2.0)
- Firebase/Messaging (11.2.0):
- Firebase/CoreOnly
- FirebaseMessaging (~> 11.2.0)
- firebase_core (3.6.0):
- Firebase/CoreOnly (= 11.2.0)
- Flutter
- firebase_messaging (15.1.3):
- Firebase/Messaging (= 11.2.0)
- firebase_core
- Flutter
- FirebaseCore (11.2.0):
- FirebaseCoreInternal (~> 11.0)
- GoogleUtilities/Environment (~> 8.0)
- GoogleUtilities/Logger (~> 8.0)
- FirebaseCoreInternal (11.4.2):
- "GoogleUtilities/NSData+zlib (~> 8.0)"
- FirebaseInstallations (11.4.0):
- FirebaseCore (~> 11.0)
- GoogleUtilities/Environment (~> 8.0)
- GoogleUtilities/UserDefaults (~> 8.0)
- PromisesObjC (~> 2.4)
- FirebaseMessaging (11.2.0):
- FirebaseCore (~> 11.0)
- FirebaseInstallations (~> 11.0)
- GoogleDataTransport (~> 10.0)
- GoogleUtilities/AppDelegateSwizzler (~> 8.0)
- GoogleUtilities/Environment (~> 8.0)
- GoogleUtilities/Reachability (~> 8.0)
- GoogleUtilities/UserDefaults (~> 8.0)
- nanopb (~> 3.30910.0)
- Flutter (1.0.0)
- flutter_keyboard_visibility (0.0.1):
- Flutter
- flutter_local_notifications (0.0.1):
- Flutter
- flutter_sound (9.6.0):
- Flutter
- flutter_sound_core (= 9.6.0)
- flutter_sound_core (9.6.0)
- flutter_timezone (0.0.1):
- Flutter
- fluttertoast (0.0.2):
- Flutter
- Toast
- FMDB (2.7.12):
- FMDB/standard (= 2.7.12)
- FMDB/Core (2.7.12)
- FMDB/standard (2.7.12):
- FMDB/Core
- GoogleDataTransport (10.1.0):
- nanopb (~> 3.30910.0)
- PromisesObjC (~> 2.4)
- GoogleUtilities/AppDelegateSwizzler (8.0.2):
- GoogleUtilities/Environment
- GoogleUtilities/Logger
- GoogleUtilities/Network
- GoogleUtilities/Privacy
- GoogleUtilities/Environment (8.0.2):
- GoogleUtilities/Privacy
- GoogleUtilities/Logger (8.0.2):
- GoogleUtilities/Environment
- GoogleUtilities/Privacy
- GoogleUtilities/Network (8.0.2):
- GoogleUtilities/Logger
- "GoogleUtilities/NSData+zlib"
- GoogleUtilities/Privacy
- GoogleUtilities/Reachability
- "GoogleUtilities/NSData+zlib (8.0.2)":
- GoogleUtilities/Privacy
- GoogleUtilities/Privacy (8.0.2)
- GoogleUtilities/Reachability (8.0.2):
- GoogleUtilities/Logger
- GoogleUtilities/Privacy
- GoogleUtilities/UserDefaults (8.0.2):
- GoogleUtilities/Logger
- GoogleUtilities/Privacy
- image_cropper (0.0.4):
- Flutter
- TOCropViewController (~> 2.7.4)
- image_picker_ios (0.0.1):
- Flutter
- local_auth_darwin (0.0.1):
- Flutter
- FlutterMacOS
- MTBBarcodeScanner (5.0.11)
- nanopb (3.30910.0):
- nanopb/decode (= 3.30910.0)
- nanopb/encode (= 3.30910.0)
- nanopb/decode (3.30910.0)
- nanopb/encode (3.30910.0)
- open_file_ios (0.0.1):
- Flutter
- package_info (0.0.1):
- Flutter
- path_provider_foundation (0.0.1):
- Flutter
- FlutterMacOS
- permission_handler_apple (9.3.0):
- Flutter
- pointer_interceptor_ios (0.0.1):
- Flutter
- PromisesObjC (2.4.0)
- qr_code_scanner (0.2.0):
- Flutter
- MTBBarcodeScanner
- record_mp3_plus (1.0.0):
- Flutter
- rive_common (0.0.1):
- Flutter
- SDWebImage (5.19.7):
- SDWebImage/Core (= 5.19.7)
- SDWebImage/Core (5.19.7)
- share (0.0.1):
- Flutter
- shared_preferences_foundation (0.0.1):
- Flutter
- FlutterMacOS
- speech_to_text (0.0.1):
- Flutter
- FlutterMacOS
- Try
- sqflite (0.0.3):
- Flutter
- FlutterMacOS
- SwiftyGif (5.4.5)
- Toast (4.1.1)
- TOCropViewController (2.7.4)
- Try (2.1.1)
- url_launcher_ios (0.0.1):
- Flutter
DEPENDENCIES:
- audioplayers_darwin (from `.symlinks/plugins/audioplayers_darwin/ios`)
- device_calendar (from `.symlinks/plugins/device_calendar/ios`)
- file_picker (from `.symlinks/plugins/file_picker/ios`)
- firebase_core (from `.symlinks/plugins/firebase_core/ios`)
- firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`)
- Flutter (from `Flutter`)
- flutter_keyboard_visibility (from `.symlinks/plugins/flutter_keyboard_visibility/ios`)
- flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`)
- flutter_sound (from `.symlinks/plugins/flutter_sound/ios`)
- flutter_timezone (from `.symlinks/plugins/flutter_timezone/ios`)
- fluttertoast (from `.symlinks/plugins/fluttertoast/ios`)
- FMDB
- image_cropper (from `.symlinks/plugins/image_cropper/ios`)
- image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`)
- local_auth_darwin (from `.symlinks/plugins/local_auth_darwin/darwin`)
- open_file_ios (from `.symlinks/plugins/open_file_ios/ios`)
- package_info (from `.symlinks/plugins/package_info/ios`)
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
- permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`)
- pointer_interceptor_ios (from `.symlinks/plugins/pointer_interceptor_ios/ios`)
- qr_code_scanner (from `.symlinks/plugins/qr_code_scanner/ios`)
- record_mp3_plus (from `.symlinks/plugins/record_mp3_plus/ios`)
- rive_common (from `.symlinks/plugins/rive_common/ios`)
- share (from `.symlinks/plugins/share/ios`)
- shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`)
- speech_to_text (from `.symlinks/plugins/speech_to_text/darwin`)
- sqflite (from `.symlinks/plugins/sqflite/darwin`)
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
SPEC REPOS:
trunk:
- DKImagePickerController
- DKPhotoGallery
- Firebase
- FirebaseCore
- FirebaseCoreInternal
- FirebaseInstallations
- FirebaseMessaging
- flutter_sound_core
- FMDB
- GoogleDataTransport
- GoogleUtilities
- MTBBarcodeScanner
- nanopb
- PromisesObjC
- SDWebImage
- SwiftyGif
- Toast
- TOCropViewController
- Try
EXTERNAL SOURCES:
audioplayers_darwin:
:path: ".symlinks/plugins/audioplayers_darwin/ios"
device_calendar:
:path: ".symlinks/plugins/device_calendar/ios"
file_picker:
:path: ".symlinks/plugins/file_picker/ios"
firebase_core:
:path: ".symlinks/plugins/firebase_core/ios"
firebase_messaging:
:path: ".symlinks/plugins/firebase_messaging/ios"
Flutter:
:path: Flutter
flutter_keyboard_visibility:
:path: ".symlinks/plugins/flutter_keyboard_visibility/ios"
flutter_local_notifications:
:path: ".symlinks/plugins/flutter_local_notifications/ios"
flutter_sound:
:path: ".symlinks/plugins/flutter_sound/ios"
flutter_timezone:
:path: ".symlinks/plugins/flutter_timezone/ios"
fluttertoast:
:path: ".symlinks/plugins/fluttertoast/ios"
image_cropper:
:path: ".symlinks/plugins/image_cropper/ios"
image_picker_ios:
:path: ".symlinks/plugins/image_picker_ios/ios"
local_auth_darwin:
:path: ".symlinks/plugins/local_auth_darwin/darwin"
open_file_ios:
:path: ".symlinks/plugins/open_file_ios/ios"
package_info:
:path: ".symlinks/plugins/package_info/ios"
path_provider_foundation:
:path: ".symlinks/plugins/path_provider_foundation/darwin"
permission_handler_apple:
:path: ".symlinks/plugins/permission_handler_apple/ios"
pointer_interceptor_ios:
:path: ".symlinks/plugins/pointer_interceptor_ios/ios"
qr_code_scanner:
:path: ".symlinks/plugins/qr_code_scanner/ios"
record_mp3_plus:
:path: ".symlinks/plugins/record_mp3_plus/ios"
rive_common:
:path: ".symlinks/plugins/rive_common/ios"
share:
:path: ".symlinks/plugins/share/ios"
shared_preferences_foundation:
:path: ".symlinks/plugins/shared_preferences_foundation/darwin"
speech_to_text:
:path: ".symlinks/plugins/speech_to_text/darwin"
sqflite:
:path: ".symlinks/plugins/sqflite/darwin"
url_launcher_ios:
:path: ".symlinks/plugins/url_launcher_ios/ios"
SPEC CHECKSUMS:
audioplayers_darwin: 877d9a4d06331c5c374595e46e16453ac7eafa40
device_calendar: 9cb33f88a02e19652ec7b8b122ca778f751b1f7b
DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c
DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60
file_picker: 09aa5ec1ab24135ccd7a1621c46c84134bfd6655
Firebase: 98e6bf5278170668a7983e12971a66b2cd57fc8c
firebase_core: 2bedc3136ec7c7b8561c6123ed0239387b53f2af
firebase_messaging: 15d114e1a41fc31e4fbabcd48d765a19eec94a38
FirebaseCore: a282032ae9295c795714ded2ec9c522fc237f8da
FirebaseCoreInternal: 35731192cab10797b88411be84940d2beb33a238
FirebaseInstallations: 6ef4a1c7eb2a61ee1f74727d7f6ce2e72acf1414
FirebaseMessaging: c9ec7b90c399c7a6100297e9d16f8a27fc7f7152
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
flutter_keyboard_visibility: 0339d06371254c3eb25eeb90ba8d17dca8f9c069
flutter_local_notifications: 4cde75091f6327eb8517fa068a0a5950212d2086
flutter_sound: dde9a913063b65a27ba8fdc2039036b99b136c79
flutter_sound_core: 0c6eb9d5268adc70ff159b3d65fd3d98a82d3a27
flutter_timezone: ffb07bdad3c6276af8dada0f11978d8a1f8a20bb
fluttertoast: 723e187574b149e68e63ca4d39b837586b903cfa
FMDB: 728731dd336af3936ce00f91d9d8495f5718a0e6
GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7
GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d
image_cropper: 37d40f62177c101ff4c164906d259ea2c3aa70cf
image_picker_ios: c560581cceedb403a6ff17f2f816d7fea1421fc1
local_auth_darwin: 66e40372f1c29f383a314c738c7446e2f7fdadc3
MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb
nanopb: fad817b59e0457d11a5dfbde799381cd727c1275
open_file_ios: 461db5853723763573e140de3193656f91990d9e
package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62
path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2
pointer_interceptor_ios: 508241697ff0947f853c061945a8b822463947c1
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
qr_code_scanner: bb67d64904c3b9658ada8c402e8b4d406d5d796e
record_mp3_plus: be7806da5b5ff9694f8069f401120853c89f3398
rive_common: cbbac3192af00d7341f19dae2f26298e9e37d99e
SDWebImage: 8a6b7b160b4d710e2a22b6900e25301075c34cb3
share: 0b2c3e82132f5888bccca3351c504d0003b3b410
shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78
speech_to_text: 627d3fd2194770b51abb324ba45c2d39398f24a8
sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec
SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4
Toast: 1f5ea13423a1e6674c4abdac5be53587ae481c4e
TOCropViewController: 80b8985ad794298fb69d3341de183f33d1853654
Try: 5ef669ae832617b3cee58cb2c6f99fb767a4ff96
url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe
PODFILE CHECKSUM: d8654c27146ad2b7c852fbdd93ef1a3785d9310b
COCOAPODS: 1.12.0

@ -54,12 +54,6 @@
@import image_picker_ios; @import image_picker_ios;
#endif #endif
#if __has_include(<package_info/FLTPackageInfoPlugin.h>)
#import <package_info/FLTPackageInfoPlugin.h>
#else
@import package_info;
#endif
#if __has_include(<path_provider_ios/FLTPathProviderPlugin.h>) #if __has_include(<path_provider_ios/FLTPathProviderPlugin.h>)
#import <path_provider_ios/FLTPathProviderPlugin.h> #import <path_provider_ios/FLTPathProviderPlugin.h>
#else #else

@ -11,8 +11,8 @@
00C3AFCE29769C38002E7B47 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 00C3AFCD29769C37002E7B47 /* GoogleService-Info.plist */; }; 00C3AFCE29769C38002E7B47 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 00C3AFCD29769C37002E7B47 /* GoogleService-Info.plist */; };
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
4141329F7EE1C2C4921406EF /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CCEA5D6B9129CB26397DBEBA /* Pods_Runner.framework */; };
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
84713E5C1A48D35EB02DB255 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DC2334F09AFE7D4C8720A3D2 /* Pods_Runner.framework */; };
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
@ -37,11 +37,12 @@
00C3AFCD29769C37002E7B47 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; }; 00C3AFCD29769C37002E7B47 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; }; 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
19F80F744566086934C1EFAB /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; }; 2E3CB8321FC9463EA4F59770 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
834C7D121918F9FF211C5314 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
@ -49,9 +50,8 @@
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
B31016378DCE198B9537F302 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; }; B01BA1F7378A0B9F7249FF2A /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
B42BA5D3E47EC815EC803E18 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; }; DC2334F09AFE7D4C8720A3D2 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
CCEA5D6B9129CB26397DBEBA /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */ /* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */ /* Begin PBXFrameworksBuildPhase section */
@ -59,7 +59,7 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
4141329F7EE1C2C4921406EF /* Pods_Runner.framework in Frameworks */, 84713E5C1A48D35EB02DB255 /* Pods_Runner.framework in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@ -69,21 +69,13 @@
577ED37A491ADCF557B4F6D9 /* Pods */ = { 577ED37A491ADCF557B4F6D9 /* Pods */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
B42BA5D3E47EC815EC803E18 /* Pods-Runner.debug.xcconfig */, 2E3CB8321FC9463EA4F59770 /* Pods-Runner.debug.xcconfig */,
B31016378DCE198B9537F302 /* Pods-Runner.release.xcconfig */, B01BA1F7378A0B9F7249FF2A /* Pods-Runner.release.xcconfig */,
19F80F744566086934C1EFAB /* Pods-Runner.profile.xcconfig */, 834C7D121918F9FF211C5314 /* Pods-Runner.profile.xcconfig */,
); );
path = Pods; path = Pods;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
87D8490E375D7CE60C246AAF /* Frameworks */ = {
isa = PBXGroup;
children = (
CCEA5D6B9129CB26397DBEBA /* Pods_Runner.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
9740EEB11CF90186004384FC /* Flutter */ = { 9740EEB11CF90186004384FC /* Flutter */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
@ -103,7 +95,7 @@
97C146F01CF9000F007C117D /* Runner */, 97C146F01CF9000F007C117D /* Runner */,
97C146EF1CF9000F007C117D /* Products */, 97C146EF1CF9000F007C117D /* Products */,
577ED37A491ADCF557B4F6D9 /* Pods */, 577ED37A491ADCF557B4F6D9 /* Pods */,
87D8490E375D7CE60C246AAF /* Frameworks */, ACFB4E3E17DB02D4A9B63D84 /* Frameworks */,
); );
sourceTree = "<group>"; sourceTree = "<group>";
}; };
@ -132,6 +124,14 @@
path = Runner; path = Runner;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
ACFB4E3E17DB02D4A9B63D84 /* Frameworks */ = {
isa = PBXGroup;
children = (
DC2334F09AFE7D4C8720A3D2 /* Pods_Runner.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
/* End PBXGroup section */ /* End PBXGroup section */
/* Begin PBXNativeTarget section */ /* Begin PBXNativeTarget section */
@ -139,15 +139,15 @@
isa = PBXNativeTarget; isa = PBXNativeTarget;
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = ( buildPhases = (
9F565295956C4424C1A65C21 /* [CP] Check Pods Manifest.lock */, F8BE49D37BC14FBD6C4F3196 /* [CP] Check Pods Manifest.lock */,
9740EEB61CF901F6004384FC /* Run Script */, 9740EEB61CF901F6004384FC /* Run Script */,
97C146EA1CF9000F007C117D /* Sources */, 97C146EA1CF9000F007C117D /* Sources */,
97C146EB1CF9000F007C117D /* Frameworks */, 97C146EB1CF9000F007C117D /* Frameworks */,
97C146EC1CF9000F007C117D /* Resources */, 97C146EC1CF9000F007C117D /* Resources */,
9705A1C41CF9048500538489 /* Embed Frameworks */, 9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */,
55FB1946A3AB2CD5DD528CC0 /* [CP] Embed Pods Frameworks */, B921EEB42AD074FA76A076B1 /* [CP] Embed Pods Frameworks */,
279DCC538D5C02B49D7A084C /* [CP] Copy Pods Resources */, A65B36E3496C62B7D376B428 /* [CP] Copy Pods Resources */,
); );
buildRules = ( buildRules = (
); );
@ -209,72 +209,72 @@
/* End PBXResourcesBuildPhase section */ /* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */
279DCC538D5C02B49D7A084C /* [CP] Copy Pods Resources */ = { 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
); );
inputFileListPaths = ( inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist", "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}",
); );
name = "[CP] Copy Pods Resources"; name = "Thin Binary";
outputFileListPaths = ( outputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
showEnvVarsInLog = 0;
}; };
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { 9740EEB61CF901F6004384FC /* Run Script */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1; alwaysOutOfDate = 1;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
); );
inputPaths = ( inputPaths = (
"${TARGET_BUILD_DIR}/${INFOPLIST_PATH}",
); );
name = "Thin Binary"; name = "Run Script";
outputPaths = ( outputPaths = (
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
}; };
55FB1946A3AB2CD5DD528CC0 /* [CP] Embed Pods Frameworks */ = { A65B36E3496C62B7D376B428 /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
); );
inputFileListPaths = ( inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
); );
name = "[CP] Embed Pods Frameworks"; name = "[CP] Copy Pods Resources";
outputFileListPaths = ( outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
showEnvVarsInLog = 0; showEnvVarsInLog = 0;
}; };
9740EEB61CF901F6004384FC /* Run Script */ = { B921EEB42AD074FA76A076B1 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
); );
inputPaths = ( inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
); );
name = "Run Script"; name = "[CP] Embed Pods Frameworks";
outputPaths = ( outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
showEnvVarsInLog = 0;
}; };
9F565295956C4424C1A65C21 /* [CP] Check Pods Manifest.lock */ = { F8BE49D37BC14FBD6C4F3196 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
@ -469,12 +469,8 @@
"-framework", "-framework",
"\"nanopb\"", "\"nanopb\"",
"-framework", "-framework",
"\"package_info\"",
"-framework",
"\"qr_code_scanner\"", "\"qr_code_scanner\"",
"-framework", "-framework",
"\"share\"",
"-framework",
"\"speech_to_text\"", "\"speech_to_text\"",
"-framework", "-framework",
"\"sqflite\"", "\"sqflite\"",
@ -693,12 +689,8 @@
"-framework", "-framework",
"\"nanopb\"", "\"nanopb\"",
"-framework", "-framework",
"\"package_info\"",
"-framework",
"\"qr_code_scanner\"", "\"qr_code_scanner\"",
"-framework", "-framework",
"\"share\"",
"-framework",
"\"speech_to_text\"", "\"speech_to_text\"",
"-framework", "-framework",
"\"sqflite\"", "\"sqflite\"",
@ -803,12 +795,8 @@
"-framework", "-framework",
"\"nanopb\"", "\"nanopb\"",
"-framework", "-framework",
"\"package_info\"",
"-framework",
"\"qr_code_scanner\"", "\"qr_code_scanner\"",
"-framework", "-framework",
"\"share\"",
"-framework",
"\"speech_to_text\"", "\"speech_to_text\"",
"-framework", "-framework",
"\"sqflite\"", "\"sqflite\"",

@ -4,17 +4,14 @@ import 'dart:io';
import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:google_api_availability/google_api_availability.dart'; import 'package:google_api_availability/google_api_availability.dart';
import 'package:huawei_push/huawei_push.dart' as h_push;
import 'package:test_sa/controllers/notification/notification_manger.dart'; import 'package:test_sa/controllers/notification/notification_manger.dart';
import 'package:test_sa/models/all_requests_and_count_model.dart';
import 'package:test_sa/models/device/asset_transfer.dart'; import 'package:test_sa/models/device/asset_transfer.dart';
import 'package:test_sa/models/new_models/gas_refill_model.dart'; import 'package:test_sa/models/new_models/gas_refill_model.dart';
import 'package:huawei_push/huawei_push.dart' as h_push;
import 'package:test_sa/models/service_request/service_request.dart';
import 'package:test_sa/service_request_latest/views/service_request_detail_main_view.dart'; import 'package:test_sa/service_request_latest/views/service_request_detail_main_view.dart';
import 'package:test_sa/views/pages/device_transfer/device_transfer_details.dart'; import 'package:test_sa/views/pages/device_transfer/device_transfer_details.dart';
import 'package:test_sa/views/pages/user/gas_refill/gas_refill_details.dart'; import 'package:test_sa/views/pages/user/gas_refill/gas_refill_details.dart';
import 'package:test_sa/views/pages/user/ppm/ppm_details_page.dart'; import 'package:test_sa/views/pages/user/ppm/ppm_details_page.dart';
import 'package:test_sa/views/pages/user/requests/service_request_details.dart';
@pragma('vm:entry-point') @pragma('vm:entry-point')
Future<void> firebaseMessagingBackgroundHandler(RemoteMessage message) async {} Future<void> firebaseMessagingBackgroundHandler(RemoteMessage message) async {}
@ -38,7 +35,7 @@ class FirebaseNotificationManger {
// print("Huawei Token: ${hToken}"); // print("Huawei Token: ${hToken}");
token = hToken; token = hToken;
}, onError: (e) { }, onError: (e) {
print( "Huawei TokenError"+e.toString()); print("Huawei TokenError" + e.toString());
}); });
h_push.Push.getToken(''); h_push.Push.getToken('');
} else { } else {
@ -83,7 +80,7 @@ class FirebaseNotificationManger {
Widget? serviceClass; Widget? serviceClass;
if (messageData["requestType"] == "Service request to engineer") { if (messageData["requestType"] == "Service request to engineer") {
serviceClass = ServiceRequestDetailMain(requestId: messageData["requestNumber"]??''); serviceClass = ServiceRequestDetailMain(requestId: messageData["requestNumber"] ?? '');
} else if (messageData["requestType"] == "Gas Refill") { } else if (messageData["requestType"] == "Gas Refill") {
serviceClass = GasRefillDetailsPage( serviceClass = GasRefillDetailsPage(
priority: messageData["priority"], priority: messageData["priority"],
@ -93,11 +90,7 @@ class FirebaseNotificationManger {
} else if (messageData["requestType"] == "Asset Transfer") { } else if (messageData["requestType"] == "Asset Transfer") {
serviceClass = DeviceTransferDetails(model: AssetTransfer(id: int.parse(messageData["requestNumber"].toString()))); serviceClass = DeviceTransferDetails(model: AssetTransfer(id: int.parse(messageData["requestNumber"].toString())));
} else if (messageData["requestType"] == "PPM") { } else if (messageData["requestType"] == "PPM") {
serviceClass = PpmDetailsPage( serviceClass = PpmDetailsPage(requestId: int.parse(messageData["requestNumber"].toString()));
request: RequestsDetails(
id: int.parse(messageData["requestNumber"].toString()),
priority: messageData["priority"],
));
} }
// else if (data["requestType"] == "WorkOrder") { // else if (data["requestType"] == "WorkOrder") {
// //
@ -110,8 +103,7 @@ class FirebaseNotificationManger {
} }
static initialized(BuildContext context) async { static initialized(BuildContext context) async {
//TOD0 add platform check here also
//TOD0 add platform check here also
if (!(await isGoogleServicesAvailable())) { if (!(await isGoogleServicesAvailable())) {
var initialNotification = await h_push.Push.getInitialNotification(); var initialNotification = await h_push.Push.getInitialNotification();
if (initialNotification != null) { if (initialNotification != null) {
@ -165,8 +157,7 @@ class FirebaseNotificationManger {
FirebaseMessaging.onMessage.listen((RemoteMessage message) { FirebaseMessaging.onMessage.listen((RemoteMessage message) {
print('notification i got is ${message.toMap()}'); print('notification i got is ${message.toMap()}');
if (Platform.isAndroid) { if (Platform.isAndroid) {
if (message.data["notificationType"] != 'NurseConfirmArrive') {
if(message.data["notificationType"]!='NurseConfirmArrive'){
NotificationManger.showNotification( NotificationManger.showNotification(
title: message.notification?.title ?? "", subtext: message.notification?.body ?? "", hashcode: int.tryParse("1234" ?? "") ?? 1, payload: json.encode(message.data), context: context); title: message.notification?.title ?? "", subtext: message.notification?.body ?? "", hashcode: int.tryParse("1234" ?? "") ?? 1, payload: json.encode(message.data), context: context);
} }

@ -52,32 +52,32 @@ class PartsProvider extends ChangeNotifier {
/// return state code if request complete may be 200, 404 or 403 /// return state code if request complete may be 200, 404 or 403
/// for more details check http state manager /// for more details check http state manager
/// lib\controllers\http_status_manger\http_status_manger.dart /// lib\controllers\http_status_manger\http_status_manger.dart
Future<int> getParts({String? title}) async { // Future<int> getParts({String? title}) async {
if (_loading == true) return -2; // if (_loading == true) return -2;
_loading = true; // _loading = true;
notifyListeners(); // notifyListeners();
late Response response; // late Response response;
try { // try {
response = await ApiManager.instance.post(URLs.getPartNumber, body: {if (title != null && title.isNotEmpty) "partName": title}); // response = await ApiManager.instance.post(URLs.getPartNumber, body: {if (title != null && title.isNotEmpty) "partName": title});
_stateCode = response.statusCode; // _stateCode = response.statusCode;
if (response.statusCode >= 200 && response.statusCode < 300) { // if (response.statusCode >= 200 && response.statusCode < 300) {
// client's request was successfully received // // client's request was successfully received
List categoriesListJson = json.decode(utf8.decode(response.bodyBytes)); // List categoriesListJson = json.decode(utf8.decode(response.bodyBytes));
List<SparePart> page = categoriesListJson.map((part) => SparePart.fromJson(part)).toList(); // List<SparePart> page = categoriesListJson.map((part) => SparePart.fromJson(part)).toList();
_parts ??= []; // _parts ??= [];
_parts!.addAll(page.map((e) => SparePartsWorkOrders(sparePart: e)).toList()); // _parts!.addAll(page.map((e) => SparePartsWorkOrders(sparePart: e)).toList());
_nextPage = page.length >= pageItemNumber; // _nextPage = page.length >= pageItemNumber;
} // }
_loading = false; // _loading = false;
notifyListeners(); // notifyListeners();
return response.statusCode; // return response.statusCode;
} catch (error) { // } catch (error) {
_loading = false; // _loading = false;
_stateCode = -1; // _stateCode = -1;
notifyListeners(); // notifyListeners();
return -1; // return -1;
} // }
} // }
/// return -2 if request in progress /// return -2 if request in progress
/// return -1 if error happen when sending request /// return -1 if error happen when sending request

@ -6,6 +6,7 @@ import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/new_views/pages/land_page/requests/asset_item_view.dart'; import 'package:test_sa/new_views/pages/land_page/requests/asset_item_view.dart';
import 'package:test_sa/new_views/pages/land_page/requests/gas_refill_item_view.dart'; import 'package:test_sa/new_views/pages/land_page/requests/gas_refill_item_view.dart';
import 'package:test_sa/new_views/pages/land_page/requests/ppm_item_view.dart'; import 'package:test_sa/new_views/pages/land_page/requests/ppm_item_view.dart';
import 'package:test_sa/new_views/pages/land_page/requests/recurrent_wo_item_view.dart';
import 'package:test_sa/new_views/pages/land_page/requests/service_request_item_view.dart'; import 'package:test_sa/new_views/pages/land_page/requests/service_request_item_view.dart';
class RequestCategoryList extends StatelessWidget { class RequestCategoryList extends StatelessWidget {
@ -17,16 +18,17 @@ class RequestCategoryList extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return ListView.builder( return ListView.separated(
itemCount: list.length < totalCount ? list.length + 1 : list.length, itemCount: list.length < totalCount ? list.length + 1 : list.length,
shrinkWrap: true, shrinkWrap: true,
padding: const EdgeInsets.all(16), padding: const EdgeInsets.all(16),
physics: const NeverScrollableScrollPhysics(), physics: const NeverScrollableScrollPhysics(),
separatorBuilder: (cxt, index) => 16.height,
itemBuilder: (context, index) { itemBuilder: (context, index) {
if (index == list.length) { if (index == list.length) {
return const CircularProgressIndicator(color: AppColor.primary10, strokeWidth: 1).center; return const CircularProgressIndicator(color: AppColor.primary10, strokeWidth: 1).center;
} }
return Padding(padding: EdgeInsets.symmetric(vertical: 10.toScreenHeight), child: _buildRequestItem(list[index])); return _buildRequestItem(list[index]);
}, },
); );
} }
@ -36,6 +38,7 @@ class RequestCategoryList extends StatelessWidget {
bool isGasRefill = request.transactionNo == 2; bool isGasRefill = request.transactionNo == 2;
bool isAssetTransfer = request.transactionNo == 3; bool isAssetTransfer = request.transactionNo == 3;
bool isPPMs = request.transactionNo == 4; bool isPPMs = request.transactionNo == 4;
bool isRecurrentTask = request.transactionNo == 5;
if (isServiceRequest) { if (isServiceRequest) {
return ServiceRequestItemView(requestData: request); return ServiceRequestItemView(requestData: request);
@ -45,6 +48,8 @@ class RequestCategoryList extends StatelessWidget {
return PpmItemView(requestData: request); return PpmItemView(requestData: request);
} else if (isAssetTransfer) { } else if (isAssetTransfer) {
return AssetItemView(requestData: request); return AssetItemView(requestData: request);
} else if (isRecurrentTask) {
return RecurrentWoItemView(requestData: request);
} else { } else {
return Container( return Container(
height: 100, height: 100,

@ -174,7 +174,7 @@ class WorkOrderData {
failureReasone: json["failureReasone"] == null ? null : Lookup.fromJson(json["failureReasone"]), failureReasone: json["failureReasone"] == null ? null : Lookup.fromJson(json["failureReasone"]),
faultDescription: json["faultDescription"] == null ? null : FaultDescription.fromJson(json["faultDescription"]), faultDescription: json["faultDescription"] == null ? null : FaultDescription.fromJson(json["faultDescription"]),
solution: json["solution"] == null ? null : Lookup.fromJson(json["solution"]), solution: json["solution"] == null ? null : Lookup.fromJson(json["solution"]),
totalWorkingHours: json["totalWorkingHours"], totalWorkingHours: (json["totalWorkingHours"] ??"").toString(),
workOrderHistory: json["workOrderHistory"] == null ? [] : List<WorkOrderHistory>.from(json["workOrderHistory"]!.map((x) => WorkOrderHistory.fromJson(x))), workOrderHistory: json["workOrderHistory"] == null ? [] : List<WorkOrderHistory>.from(json["workOrderHistory"]!.map((x) => WorkOrderHistory.fromJson(x))),
activities: json["activities"] == null ? [] : List<Activities>.from(json["activities"]!.map((x) => Activities.fromJson(x))), activities: json["activities"] == null ? [] : List<Activities>.from(json["activities"]!.map((x) => Activities.fromJson(x))),
needAVisitDateTime: DateTime.tryParse(json["needAVisitDateTime"] ?? ""), needAVisitDateTime: DateTime.tryParse(json["needAVisitDateTime"] ?? ""),

@ -67,7 +67,7 @@ class PpmItemView extends StatelessWidget {
), ),
], ],
).toShadowContainer(context, withShadow: showShadow).onPress(() { ).toShadowContainer(context, withShadow: showShadow).onPress(() {
// Navigator.of(context).push(MaterialPageRoute(builder: (_) => PpmDetailsPage(request: request))); Navigator.of(context).push(MaterialPageRoute(builder: (_) => PpmDetailsPage(requestId: requestData!.id!)));
}); });
} }
if (requestDetails != null) { if (requestDetails != null) {
@ -117,7 +117,7 @@ class PpmItemView extends StatelessWidget {
), ),
], ],
).toShadowContainer(context, withShadow: showShadow).onPress(() { ).toShadowContainer(context, withShadow: showShadow).onPress(() {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => PpmDetailsPage(request: requestDetails!))); Navigator.of(context).push(MaterialPageRoute(builder: (_) => PpmDetailsPage(requestId: requestDetails!.id!)));
}); });
} }
return SizedBox(); return SizedBox();

@ -1,25 +1,75 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:test_sa/controllers/providers/api/all_requests_provider.dart';
import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/string_extensions.dart'; import 'package:test_sa/extensions/string_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/models/all_requests_and_count_model.dart'; import 'package:test_sa/models/all_requests_and_count_model.dart';
import 'package:test_sa/models/ppm/recurrent_wo.dart'; import 'package:test_sa/models/new_models/dashboard_detail.dart';
import 'package:test_sa/new_views/app_style/app_color.dart'; import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/views/pages/user/ppm/ppm_work_order/recurrent_wo/recurrent_work_order_view.dart'; import 'package:test_sa/views/pages/user/ppm/ppm_work_order/recurrent_wo/recurrent_work_order_view.dart';
import '../../../../views/widgets/requests/request_status.dart'; import '../../../../views/widgets/requests/request_status.dart';
class RecurrentWoItemView extends StatelessWidget { class RecurrentWoItemView extends StatelessWidget {
final Data? requestData;
final RequestsDetails? requestDetails; final RequestsDetails? requestDetails;
final bool showShadow; final bool showShadow;
const RecurrentWoItemView({Key? key, this.requestDetails, this.showShadow = true}) : super(key: key); const RecurrentWoItemView({Key? key, this.requestData, this.requestDetails, this.showShadow = true}) : super(key: key);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
if (requestData != null) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
StatusLabel(
label: requestData!.priorityName!,
textColor: AppColor.getRequestStatusTextColorByName(context, requestData!.priorityName!),
backgroundColor: AppColor.getRequestStatusColorByName(context, requestData!.priorityName!),
),
8.width,
StatusLabel(
label: requestData!.statusName!,
textColor: AppColor.getRequestStatusTextColorByName(context, requestData!.statusName!),
backgroundColor: AppColor.getRequestStatusColorByName(context, requestData!.statusName!),
),
1.width.expanded,
Text(
requestData!.transactionDate?.toServiceRequestCardFormat ?? "",
textAlign: TextAlign.end,
style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50),
),
],
),
8.height,
(requestData?.typeTransaction ?? context.translation.ppmRequest).heading5(context),
8.height,
// '${context.translation.assetNumber}: ${requestData!.assetNumber}'.bodyText(context),
// '${context.translation.assetSN}: ${request.assetSN}'.bodyText(context),//todo ask ahmed
// '${context.translation.code}: ${request.code}'.bodyText(context),
'${context.translation.requestNo}: ${requestData!.requestNo}'.bodyText(context),
16.height,
Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
context.translation.viewDetails,
style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
),
4.width,
Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
],
),
],
).toShadowContainer(context, withShadow: showShadow).onPress(() {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => RecurrentWorkOrderView(taskId: requestData!.id)));
});
}
if (requestDetails != null) { if (requestDetails != null) {
return Column( return Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,

@ -5,6 +5,7 @@ import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/new_views/pages/land_page/requests/asset_item_view.dart'; import 'package:test_sa/new_views/pages/land_page/requests/asset_item_view.dart';
import 'package:test_sa/new_views/pages/land_page/requests/gas_refill_item_view.dart'; import 'package:test_sa/new_views/pages/land_page/requests/gas_refill_item_view.dart';
import 'package:test_sa/new_views/pages/land_page/requests/ppm_item_view.dart'; import 'package:test_sa/new_views/pages/land_page/requests/ppm_item_view.dart';
import 'package:test_sa/new_views/pages/land_page/requests/recurrent_wo_item_view.dart';
import 'package:test_sa/new_views/pages/land_page/requests/service_request_item_view.dart'; import 'package:test_sa/new_views/pages/land_page/requests/service_request_item_view.dart';
class RequestPaginatedListview extends StatelessWidget { class RequestPaginatedListview extends StatelessWidget {
@ -17,12 +18,13 @@ class RequestPaginatedListview extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
print('count i got is ${totalCount}');
return ListView.builder( return ListView.separated(
itemCount: list.length < totalCount ? list.length + 1 : list.length, itemCount: list.length < totalCount ? list.length + 1 : list.length,
controller: scrollController, controller: scrollController,
shrinkWrap: true, shrinkWrap: true,
padding: EdgeInsets.symmetric(horizontal: 16.toScreenWidth), padding: const EdgeInsets.all(16),
separatorBuilder: (cxt, index) => 16.height,
itemBuilder: (context, index) { itemBuilder: (context, index) {
if (index == list.length) { if (index == list.length) {
return const ListTile( return const ListTile(
@ -37,7 +39,7 @@ class RequestPaginatedListview extends StatelessWidget {
), ),
); );
} }
return Padding(padding: EdgeInsets.symmetric(vertical: 10.toScreenHeight), child: _buildRequestItem(list[index])); return _buildRequestItem(list[index]);
}, },
); );
} }
@ -47,15 +49,21 @@ class RequestPaginatedListview extends StatelessWidget {
bool isGasRefill = request.transactionNo == 2; bool isGasRefill = request.transactionNo == 2;
bool isAssetTransfer = request.transactionNo == 3; bool isAssetTransfer = request.transactionNo == 3;
bool isPPMs = request.transactionNo == 4; bool isPPMs = request.transactionNo == 4;
bool isRecurrentTask = request.transactionNo == 5;
if (isServiceRequest) { if (isServiceRequest) {
return ServiceRequestItemView(requestData: request,refreshData: false,); return ServiceRequestItemView(
requestData: request,
refreshData: false,
);
} else if (isGasRefill) { } else if (isGasRefill) {
return GasRefillItemView(requestData: request); return GasRefillItemView(requestData: request);
} else if (isPPMs) { } else if (isPPMs) {
return PpmItemView(requestData: request); return PpmItemView(requestData: request);
} else if (isAssetTransfer) { } else if (isAssetTransfer) {
return AssetItemView(requestData: request); return AssetItemView(requestData: request);
} else if (isRecurrentTask) {
return RecurrentWoItemView(requestData: request);
} else { } else {
return Container( return Container(
height: 100, height: 100,

@ -51,6 +51,7 @@ class ServiceRequestItemView extends StatelessWidget {
), ),
8.height, 8.height,
(requestData?.typeTransaction ?? context.translation.correctiveMaintenance).heading5(context), (requestData?.typeTransaction ?? context.translation.correctiveMaintenance).heading5(context),
8.height,
'${context.translation.assetName}: ${requestData!.assetName?.cleanupWhitespace.capitalizeFirstOfEach}'.bodyText(context), '${context.translation.assetName}: ${requestData!.assetName?.cleanupWhitespace.capitalizeFirstOfEach}'.bodyText(context),
// '${context.translation.assetNumber}: ${request.assetNo}'.bodyText(context), // '${context.translation.assetNumber}: ${request.assetNo}'.bodyText(context),
// '${context.translation.requestType}: ${requestData!.requestTypeName}'.bodyText(context), // '${context.translation.requestType}: ${requestData!.requestTypeName}'.bodyText(context),
@ -108,6 +109,7 @@ class ServiceRequestItemView extends StatelessWidget {
), ),
8.height, 8.height,
(requestDetails!.nameOfType ?? context.translation.correctiveMaintenance).heading5(context), (requestDetails!.nameOfType ?? context.translation.correctiveMaintenance).heading5(context),
8.height,
'${context.translation.assetName}: ${requestDetails!.assetName?.cleanupWhitespace.capitalizeFirstOfEach}'.bodyText(context), '${context.translation.assetName}: ${requestDetails!.assetName?.cleanupWhitespace.capitalizeFirstOfEach}'.bodyText(context),
'${context.translation.assetNumber}: ${requestDetails!.assetNo}'.bodyText(context), '${context.translation.assetNumber}: ${requestDetails!.assetNo}'.bodyText(context),
'${context.translation.requestType}: ${requestDetails!.requestType}'.bodyText(context), '${context.translation.requestType}: ${requestDetails!.requestType}'.bodyText(context),

@ -70,6 +70,7 @@ class _RequestsListPageState extends State<RequestsListPage> {
if (snapshot.isDetailLoading || snapshot.requestDetailList == null) { if (snapshot.isDetailLoading || snapshot.requestDetailList == null) {
return ListView.builder( return ListView.builder(
itemCount: 6, itemCount: 6,
padding: const EdgeInsets.all(16),
itemBuilder: (context, index) { itemBuilder: (context, index) {
return Padding( return Padding(
padding: EdgeInsets.symmetric(vertical: 10.toScreenHeight, horizontal: 0), padding: EdgeInsets.symmetric(vertical: 10.toScreenHeight, horizontal: 0),

@ -64,7 +64,7 @@ class RequestItemViewList extends StatelessWidget {
// color: Colors.grey, // color: Colors.grey,
// ); // );
}, },
separatorBuilder: (cxt, index) => 8.height, separatorBuilder: (cxt, index) => 16.height,
itemCount: isLoading ? 6 : list.length); itemCount: isLoading ? 6 : list.length);
} }
} }

@ -1,143 +1,4 @@
//older code... import 'package:flutter/gestures.dart';
// import 'package:flutter/material.dart';
// import 'package:fluttertoast/fluttertoast.dart';
// import 'package:provider/provider.dart';
// import 'package:shared_preferences/shared_preferences.dart';
// import 'package:test_sa/controllers/providers/settings/app_settings.dart';
// import 'package:test_sa/extensions/context_extension.dart';
// import 'package:test_sa/extensions/int_extensions.dart';
// import 'package:test_sa/extensions/text_extensions.dart';
// import 'package:test_sa/extensions/widget_extensions.dart';
// import 'package:test_sa/new_views/app_style/app_color.dart';
// import 'package:test_sa/new_views/pages/land_page/land_page.dart';
//
// import '../../controllers/providers/api/user_provider.dart';
// import '../../controllers/providers/settings/setting_provider.dart';
// import '../../controllers/validator/validator.dart';
// import '../../models/user.dart';
// import '../common_widgets/app_filled_button.dart';
// import '../common_widgets/app_text_form_field.dart';
//
// class LoginPage extends StatefulWidget {
// static const String routeName = "/login_page";
//
// const LoginPage({Key? key}) : super(key: key);
//
// @override
// State<LoginPage> createState() => _LoginPageState();
// }
//
// class _LoginPageState extends State<LoginPage> {
// final User _user = User();
// UserProvider _userProvider;
// SettingProvider _settingProvider;
// final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
//
// bool rememberMe = false;
//
// @override
// Widget build(BuildContext context) {
// _userProvider = Provider.of<UserProvider>(context);
// if (_settingProvider == null) {
// _settingProvider = Provider.of<SettingProvider>(context);
// rememberMe = _settingProvider.rememberMe;
// if (rememberMe) {
// _user.userName = _settingProvider.username;
// _user.password = _settingProvider.password;
// }
// }
//
// return Form(
// key: _formKey,
// child: Scaffold(
// body: Column(
// children: [
// SingleChildScrollView(
// child: Column(
// mainAxisAlignment: MainAxisAlignment.center,
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// Hero(tag: "logo", child: "logo".toSvgAsset(height: 64)),
// 64.height,
// context.translation.login.heading2(context).custom(fontWeight: FontWeight.w600, color: context.isDark ? AppColor.primary50 : AppColor.neutral50),
// context.translation.enterCredsToLogin.heading6(context).custom(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20),
// 32.height,
// AppTextFormField(
// initialValue: _user?.userName,
// validator: (value) => Validator.hasValue(value) ? null : context.translation.requiredField,
// labelText: context.translation.username,
// textInputType: TextInputType.text,
// onSaved: (value) {
// _user.userName = value;
// },
// ),
// 16.height,
// AppTextFormField(
// initialValue: _user?.password,
// labelText: context.translation.password,
// obscureText: true,
// validator: (value) => Validator.isValidPassword(value)
// ? null
// : value.isEmpty
// ? context.translation.requiredField
// : context.translation.passwordLengthMessage,
// onSaved: (value) {
// _user.password = value;
// },
// ),
// 8.height,
// Row(
// children: [
// Checkbox(
// value: rememberMe,
// activeColor: AppColor.blueStatus(context),
// onChanged: (value) {
// setState(() {
// rememberMe = value;
// });
// }),
// "Remember Me".bodyText(context).custom(color: context.isDark ? AppColor.primary50 : AppColor.neutral50).expanded,
// ],
// ),
// 16.height,
// Align(
// alignment: AlignmentDirectional.centerEnd,
// child: InkWell(
// onTap: () {
// /// TODO [zaid] : push to another screen
// },
// child: context.translation.forgotPassword.bodyText(context).custom(color: AppColor.primary50, fontWeight: FontWeight.w500),
// ),
// ),
// ],
// ),
// ).center.expanded,
// AppFilledButton(label: context.translation.login, maxWidth: true, onPressed: _login),
// ],
// ).paddingOnly(start: 16, end: 16, bottom: 24, top: 24),
// ),
// );
// }
//
// Future<void> _login() async {
// if (!_formKey.currentState.validate()) return;
// _formKey.currentState.save();
// int status = await _userProvider.login(context: context, user: _user);
// if (status >= 200 && status < 300 && _userProvider.user.isAuthenticated ?? false) {
// await _settingProvider.setUser(_userProvider.user);
// (await SharedPreferences.getInstance()).remove(ASettings.localAuth);
// await _settingProvider.setRememberMe(_user.userName, _user.password, rememberMe);
//
// /// The below line for the new design
// // Navigator.pushNamed(context, LandPage.routeName);
// Navigator.pushNamed(context, LandPage.routeName);
// } else {
// Fluttertoast.showToast(msg: _userProvider.user?.message ?? context.translation.failedToCompleteRequest);
// }
// }
// }
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart'; import 'package:fluttertoast/fluttertoast.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@ -147,12 +8,14 @@ import 'package:test_sa/controllers/notification/firebase_notification_manger.da
import 'package:test_sa/controllers/providers/settings/app_settings.dart'; import 'package:test_sa/controllers/providers/settings/app_settings.dart';
import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/string_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/models/new_models/general_response_model.dart'; import 'package:test_sa/models/new_models/general_response_model.dart';
import 'package:test_sa/new_views/app_style/app_color.dart'; import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/new_views/forget_password_module/forget_passwod_verify_otp.dart'; import 'package:test_sa/new_views/forget_password_module/forget_passwod_verify_otp.dart';
import 'package:test_sa/new_views/pages/land_page/land_page.dart'; import 'package:test_sa/new_views/pages/land_page/land_page.dart';
import 'package:url_launcher/url_launcher.dart';
import '../../controllers/providers/api/user_provider.dart'; import '../../controllers/providers/api/user_provider.dart';
import '../../controllers/providers/settings/setting_provider.dart'; import '../../controllers/providers/settings/setting_provider.dart';
@ -178,6 +41,7 @@ class _LoginPageState extends State<LoginPage> {
TextEditingController userNameController = TextEditingController(); TextEditingController userNameController = TextEditingController();
bool _passwordVisible = false; bool _passwordVisible = false;
bool rememberMe = false; bool rememberMe = false;
bool privacyPolicyChecked = false;
@override @override
void initState() { void initState() {
@ -228,7 +92,6 @@ class _LoginPageState extends State<LoginPage> {
context.translation.signInToYour.customHeadingText(context).custom(color: Colors.white, fontSize: 27, fontWeight: FontWeight.w500), context.translation.signInToYour.customHeadingText(context).custom(color: Colors.white, fontSize: 27, fontWeight: FontWeight.w500),
context.translation.account.customHeadingText(context).custom(color: Colors.white, fontSize: 27, fontWeight: FontWeight.w500), context.translation.account.customHeadingText(context).custom(color: Colors.white, fontSize: 27, fontWeight: FontWeight.w500),
15.height, 15.height,
// context.translation.letSignInToAccount.customHeadingText(context).custom(color: Colors.white, fontWeight: FontWeight.w500, fontSize: 12),
], ],
), ),
), ),
@ -320,7 +183,35 @@ class _LoginPageState extends State<LoginPage> {
"Remember Me".bodyText(context).custom(color: context.isDark ? AppColor.primary50 : AppColor.neutral50).expanded, "Remember Me".bodyText(context).custom(color: context.isDark ? AppColor.primary50 : AppColor.neutral50).expanded,
], ],
), ),
50.height, Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Checkbox(
value: privacyPolicyChecked,
activeColor: AppColor.blueStatus(context),
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
onChanged: (value) {
if (value == null) return;
privacyPolicyChecked = value;
setState(() {});
}),
RichText(
text: TextSpan(text: "I have read and agree to ", style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.primary50 : AppColor.neutral50), children: [
TextSpan(
text: "Privacy Policy",
style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context), decoration: TextDecoration.underline),
recognizer: TapGestureRecognizer()
..onTap = () async {
Uri uri = Uri.parse("https://cloudsolutions.com.sa/en/privacy-policy");
try {
launchUrl(uri);
} catch (ex) {}
}),
]),
).expanded,
],
),
16.height,
AppFilledButton(label: context.translation.signIn, buttonColor: AppColor.primary10, maxWidth: true, onPressed: _login), AppFilledButton(label: context.translation.signIn, buttonColor: AppColor.primary10, maxWidth: true, onPressed: _login),
], ],
), ),
@ -333,6 +224,11 @@ class _LoginPageState extends State<LoginPage> {
Future<void> _login() async { Future<void> _login() async {
if (!_formKey.currentState!.validate()) return; if (!_formKey.currentState!.validate()) return;
if (privacyPolicyChecked == false) {
"You must agree privacy policy".showToast;
return;
}
_formKey.currentState!.save(); _formKey.currentState!.save();
int status = await _userProvider.login(context: context, user: _user); int status = await _userProvider.login(context: context, user: _user);
if (status >= 200 && status < 300 && _userProvider.user!.isAuthenticated! ?? false) { if (status >= 200 && status < 300 && _userProvider.user!.isAuthenticated! ?? false) {

@ -53,6 +53,8 @@ class _InternalMaintenanceRequestState extends State<InternalMaintenanceRequest>
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Consumer<ServiceRequestDetailProvider>(builder: (context, requestDetailProvider, child) { return Consumer<ServiceRequestDetailProvider>(builder: (context, requestDetailProvider, child) {
double totalWorkingHours = _requestDetailProvider?.activityMaintenanceHelperModel?.activityMaintenanceTimers double totalWorkingHours = _requestDetailProvider?.activityMaintenanceHelperModel?.activityMaintenanceTimers
?.fold(0.0, (sum, item) => (sum ?? 0) + DateTime.parse(item.endTime!).difference(DateTime.parse(item.startTime!)).inSeconds) ?? ?.fold(0.0, (sum, item) => (sum ?? 0) + DateTime.parse(item.endTime!).difference(DateTime.parse(item.startTime!)).inSeconds) ??
0; 0;
@ -242,11 +244,11 @@ class _InternalMaintenanceRequestState extends State<InternalMaintenanceRequest>
initialValue: requestDetailProvider.activityMaintenanceHelperModel?.travelHours?.toString(), initialValue: requestDetailProvider.activityMaintenanceHelperModel?.travelHours?.toString(),
textInputType: TextInputType.number, textInputType: TextInputType.number,
onChange: (value) { onChange: (value) {
requestDetailProvider.activityMaintenanceHelperModel?.travelHours = int.tryParse(value); requestDetailProvider.activityMaintenanceHelperModel?.travelHours = num.parse(value) ;// int.tryParse(value);
}, },
// contentPadding: EdgeInsets.symmetric(vertical: 18.toScreenHeight, horizontal: 16.toScreenWidth), // contentPadding: EdgeInsets.symmetric(vertical: 18.toScreenHeight, horizontal: 16.toScreenWidth),
onSaved: (value) { onSaved: (value) {
requestDetailProvider.activityMaintenanceHelperModel?.travelHours = value as int?; requestDetailProvider.activityMaintenanceHelperModel?.travelHours = value as num?;
}, },
), ),
16.height, 16.height,

@ -151,6 +151,7 @@ class _SparePartRequestState extends State<SparePartRequest> with TickerProvider
title: context.translation.partNo, title: context.translation.partNo,
staticData: _spareParts, staticData: _spareParts,
showShadow: false, showShadow: false,
showAsBottomSheet: true,
loading: _isLoading, loading: _isLoading,
initialValue: requestDetailProvider.sparePartHelperModel?.sparePart, initialValue: requestDetailProvider.sparePartHelperModel?.sparePart,
backgroundColor: context.isDark ? AppColor.neutral20 : AppColor.neutral90, backgroundColor: context.isDark ? AppColor.neutral20 : AppColor.neutral90,

@ -6,7 +6,6 @@ import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/string_extensions.dart'; import 'package:test_sa/extensions/string_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/models/all_requests_and_count_model.dart';
import 'package:test_sa/models/plan_preventive_visit/plan_preventive_visit_model.dart'; import 'package:test_sa/models/plan_preventive_visit/plan_preventive_visit_model.dart';
import 'package:test_sa/new_views/common_widgets/default_app_bar.dart'; import 'package:test_sa/new_views/common_widgets/default_app_bar.dart';
import 'package:test_sa/views/pages/user/ppm/update_ppm/update_ppm.dart'; import 'package:test_sa/views/pages/user/ppm/update_ppm/update_ppm.dart';
@ -20,9 +19,11 @@ import '../../../widgets/requests/request_status.dart';
class PpmDetailsPage extends StatefulWidget { class PpmDetailsPage extends StatefulWidget {
static const String id = "/visit-details"; static const String id = "/visit-details";
final RequestsDetails request;
const PpmDetailsPage({Key? key, required this.request}) : super(key: key); // final RequestsDetails request;
final int requestId;
const PpmDetailsPage({Key? key, required this.requestId}) : super(key: key);
@override @override
_PpmDetailsPageState createState() { _PpmDetailsPageState createState() {
@ -48,7 +49,7 @@ class _PpmDetailsPageState extends State<PpmDetailsPage> {
Future<void> getVisitData() async { Future<void> getVisitData() async {
ppmProvider = Provider.of<PpmProvider>(context, listen: false); ppmProvider = Provider.of<PpmProvider>(context, listen: false);
await ppmProvider?.getPlanPreventiveVisitById(widget.request.id!); await ppmProvider?.getPlanPreventiveVisitById(widget.requestId);
} }
@override @override
@ -70,20 +71,20 @@ class _PpmDetailsPageState extends State<PpmDetailsPage> {
children: [ children: [
Row( Row(
children: [ children: [
if (widget.request.priority != null) // if (widget.request.priority != null)
StatusLabel( // StatusLabel(
label: widget.request.priority, // label: widget.request.priority,
textColor: AppColor.getRequestStatusTextColorByName(context, widget.request.priority!), // textColor: AppColor.getRequestStatusTextColorByName(context, widget.request.priority!),
backgroundColor: AppColor.getRequestStatusColorByName(context, widget.request.priority!), // backgroundColor: AppColor.getRequestStatusColorByName(context, widget.request.priority!),
), // ),
if (widget.request.priority != null) 8.width, // if (planPreventiveVisit?.visitStatus != null) 8.width,
StatusLabel( StatusLabel(
label: planPreventiveVisit?.visitStatus!.name!, label: planPreventiveVisit?.visitStatus!.name!,
id: planPreventiveVisit!.visitStatus!.id!, id: planPreventiveVisit!.visitStatus!.id!,
textColor: AppColor.getRequestStatusTextColorByName(context, planPreventiveVisit.visitStatus!.name!), textColor: AppColor.getRequestStatusTextColorByName(context, planPreventiveVisit.visitStatus!.name!),
backgroundColor: AppColor.getRequestStatusColorByName(context, planPreventiveVisit.visitStatus!.name!), backgroundColor: AppColor.getRequestStatusColorByName(context, planPreventiveVisit.visitStatus!.name!),
), ),
1.width.expanded, // 1.width.expanded,
], ],
), ),
8.height, 8.height,
@ -108,7 +109,7 @@ class _PpmDetailsPageState extends State<PpmDetailsPage> {
if (userProvider!.user!.type == UsersTypes.engineer && (planPreventiveVisit.visitStatus!.id! != 270 && planPreventiveVisit.visitStatus!.id! != 269)) if (userProvider!.user!.type == UsersTypes.engineer && (planPreventiveVisit.visitStatus!.id! != 270 && planPreventiveVisit.visitStatus!.id! != 269))
AppFilledButton( AppFilledButton(
onPressed: () async { onPressed: () async {
await Navigator.of(context).push(MaterialPageRoute(builder: (_) => UpdatePpm(ppm: null, planPreventiveVisit: planPreventiveVisit, details: widget.request))); await Navigator.of(context).push(MaterialPageRoute(builder: (_) => UpdatePpm(ppm: null, planPreventiveVisit: planPreventiveVisit)));
getVisitData(); getVisitData();
}, },
label: context.translation.updateRequest, label: context.translation.updateRequest,

@ -28,9 +28,8 @@ import 'wo_info_form.dart';
class UpdatePpm extends StatefulWidget { class UpdatePpm extends StatefulWidget {
final Ppm? ppm; final Ppm? ppm;
final PlanPreventiveVisit planPreventiveVisit; final PlanPreventiveVisit planPreventiveVisit;
final RequestsDetails? details;
const UpdatePpm({Key? key, this.ppm, required this.planPreventiveVisit, this.details}) : super(key: key); const UpdatePpm({Key? key, this.ppm, required this.planPreventiveVisit}) : super(key: key);
@override @override
State<UpdatePpm> createState() => _UpdatePpmState(); State<UpdatePpm> createState() => _UpdatePpmState();

@ -66,7 +66,7 @@ class PpmItem extends StatelessWidget {
Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14) Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
], ],
).onPress(() { ).onPress(() {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => PpmDetailsPage(request: RequestsDetails(id: ppm.id!.toInt())))); Navigator.of(context).push(MaterialPageRoute(builder: (_) => PpmDetailsPage(requestId: ppm.id!.toInt())));
}), }),
], ],
).expanded, ).expanded,

@ -1065,18 +1065,18 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: package_info_plus name: package_info_plus
sha256: b15fad91c4d3d1f2b48c053dd41cb82da007c27407dc9ab5f9aa59881d0e39d4 sha256: "7976bfe4c583170d6cdc7077e3237560b364149fcd268b5f53d95a991963b191"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "8.1.4" version: "8.3.0"
package_info_plus_platform_interface: package_info_plus_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: package_info_plus_platform_interface name: package_info_plus_platform_interface
sha256: a5ef9986efc7bf772f2696183a3992615baa76c1ffb1189318dd8803778fb05b sha256: "6c935fb612dff8e3cc9632c2b301720c77450a126114126ffaafe28d2e87956c"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.2" version: "3.2.0"
path: path:
dependency: transitive dependency: transitive
description: description:

@ -45,7 +45,7 @@ dependencies:
image_picker: ^1.1.2 image_picker: ^1.1.2
url_launcher: ^6.1.6 url_launcher: ^6.1.6
flutter_launcher_icons: ^0.13.1 flutter_launcher_icons: ^0.13.1
package_info_plus: ^8.1.4 package_info_plus: ^8.3.0
share_plus: ^10.1.4 share_plus: ^10.1.4
flutter_local_notifications: ^17.2.2 flutter_local_notifications: ^17.2.2
cached_network_image: ^3.2.2 cached_network_image: ^3.2.2

Loading…
Cancel
Save