Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 338f3e052a |
@@ -20,5 +20,7 @@
|
|||||||
<string>????</string>
|
<string>????</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>1.0</string>
|
<string>1.0</string>
|
||||||
|
<key>MinimumOSVersion</key>
|
||||||
|
<string>13.0</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|||||||
@@ -44,9 +44,9 @@ PODS:
|
|||||||
- path_provider_foundation (0.0.1):
|
- path_provider_foundation (0.0.1):
|
||||||
- Flutter
|
- Flutter
|
||||||
- FlutterMacOS
|
- FlutterMacOS
|
||||||
- SDWebImage (5.21.3):
|
- SDWebImage (5.21.7):
|
||||||
- SDWebImage/Core (= 5.21.3)
|
- SDWebImage/Core (= 5.21.7)
|
||||||
- SDWebImage/Core (5.21.3)
|
- SDWebImage/Core (5.21.7)
|
||||||
- shared_preferences_foundation (0.0.1):
|
- shared_preferences_foundation (0.0.1):
|
||||||
- Flutter
|
- Flutter
|
||||||
- FlutterMacOS
|
- FlutterMacOS
|
||||||
@@ -93,7 +93,7 @@ SPEC CHECKSUMS:
|
|||||||
image_picker_ios: 4f2f91b01abdb52842a8e277617df877e40f905b
|
image_picker_ios: 4f2f91b01abdb52842a8e277617df877e40f905b
|
||||||
mobile_scanner: 77265f3dc8d580810e91849d4a0811a90467ed5e
|
mobile_scanner: 77265f3dc8d580810e91849d4a0811a90467ed5e
|
||||||
path_provider_foundation: 0b743cbb62d8e47eab856f09262bb8c1ddcfe6ba
|
path_provider_foundation: 0b743cbb62d8e47eab856f09262bb8c1ddcfe6ba
|
||||||
SDWebImage: 16309af6d214ba3f77a7c6f6fdda888cb313a50a
|
SDWebImage: e9fc87c1aab89a8ab1bbd74eba378c6f53be8abf
|
||||||
shared_preferences_foundation: 5086985c1d43c5ba4d5e69a4e8083a389e2909e6
|
shared_preferences_foundation: 5086985c1d43c5ba4d5e69a4e8083a389e2909e6
|
||||||
SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4
|
SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4
|
||||||
|
|
||||||
|
|||||||
@@ -7,15 +7,15 @@
|
|||||||
objects = {
|
objects = {
|
||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
/* Begin PBXBuildFile section */
|
||||||
|
009FE00002023B474E5F615B /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7FA2E6EEBA24D1D13B1A266F /* Pods_RunnerTests.framework */; };
|
||||||
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
|
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
|
||||||
331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; };
|
331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; };
|
||||||
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
|
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
|
||||||
51A3A2EFDD1A9C3AB6FB3F96 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7B39779CF6FD29100AC0BBA8 /* 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 */; };
|
||||||
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 */; };
|
||||||
D34028E81F5AB1F75E7B16A0 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B7CF29D3E86AAE462952D5AC /* Pods_RunnerTests.framework */; };
|
C614FCF7A5E78A8C45529D67 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D71A217BE5380EA07CDDF04C /* Pods_Runner.framework */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
/* Begin PBXContainerItemProxy section */
|
/* Begin PBXContainerItemProxy section */
|
||||||
@@ -44,27 +44,27 @@
|
|||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
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>"; };
|
||||||
3278C65BE817D790CE9D31EA /* 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>"; };
|
217D5EE4ED45A9C2C2A1FF6F /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
292C94FD8F5EB223FCA0D626 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; };
|
331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; };
|
||||||
331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
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>"; };
|
||||||
|
3CC52E203513A2D23DB2B2A9 /* 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>"; };
|
||||||
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>"; };
|
||||||
76E3A205AB57DF923EC46FF4 /* 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>"; };
|
|
||||||
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>"; };
|
||||||
7B39779CF6FD29100AC0BBA8 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
7FA2E6EEBA24D1D13B1A266F /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
84810DBB84C302273D0A3837 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.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>"; };
|
||||||
9773B881A4736A93B26DA98C /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.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; };
|
||||||
97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
|
97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
|
||||||
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>"; };
|
||||||
B12CD22763ED0AABDBFA3843 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = "<group>"; };
|
CCCCA868F0AAA56876A031CC /* 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>"; };
|
||||||
B7CF29D3E86AAE462952D5AC /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
D71A217BE5380EA07CDDF04C /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
EDBD399D358E57BBA6222C89 /* 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>"; };
|
E7B1106E9B82E5EC66ECA142 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
F69591C933A2B991CBE337B8 /* 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>"; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
@@ -72,7 +72,7 @@
|
|||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
51A3A2EFDD1A9C3AB6FB3F96 /* Pods_Runner.framework in Frameworks */,
|
C614FCF7A5E78A8C45529D67 /* Pods_Runner.framework in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -80,13 +80,22 @@
|
|||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
D34028E81F5AB1F75E7B16A0 /* Pods_RunnerTests.framework in Frameworks */,
|
009FE00002023B474E5F615B /* Pods_RunnerTests.framework in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
/* End PBXFrameworksBuildPhase section */
|
/* End PBXFrameworksBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXGroup section */
|
/* Begin PBXGroup section */
|
||||||
|
0553143CD598C0802B181E65 /* Frameworks */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
D71A217BE5380EA07CDDF04C /* Pods_Runner.framework */,
|
||||||
|
7FA2E6EEBA24D1D13B1A266F /* Pods_RunnerTests.framework */,
|
||||||
|
);
|
||||||
|
name = Frameworks;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
331C8082294A63A400263BE5 /* RunnerTests */ = {
|
331C8082294A63A400263BE5 /* RunnerTests */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@@ -95,15 +104,6 @@
|
|||||||
path = RunnerTests;
|
path = RunnerTests;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
77EB6C32365D74ADFB415023 /* Frameworks */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
7B39779CF6FD29100AC0BBA8 /* Pods_Runner.framework */,
|
|
||||||
B7CF29D3E86AAE462952D5AC /* Pods_RunnerTests.framework */,
|
|
||||||
);
|
|
||||||
name = Frameworks;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
9740EEB11CF90186004384FC /* Flutter */ = {
|
9740EEB11CF90186004384FC /* Flutter */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@@ -123,7 +123,7 @@
|
|||||||
97C146EF1CF9000F007C117D /* Products */,
|
97C146EF1CF9000F007C117D /* Products */,
|
||||||
331C8082294A63A400263BE5 /* RunnerTests */,
|
331C8082294A63A400263BE5 /* RunnerTests */,
|
||||||
CCC359E15820CA586901458F /* Pods */,
|
CCC359E15820CA586901458F /* Pods */,
|
||||||
77EB6C32365D74ADFB415023 /* Frameworks */,
|
0553143CD598C0802B181E65 /* Frameworks */,
|
||||||
);
|
);
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
@@ -154,12 +154,12 @@
|
|||||||
CCC359E15820CA586901458F /* Pods */ = {
|
CCC359E15820CA586901458F /* Pods */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
EDBD399D358E57BBA6222C89 /* Pods-Runner.debug.xcconfig */,
|
3CC52E203513A2D23DB2B2A9 /* Pods-Runner.debug.xcconfig */,
|
||||||
3278C65BE817D790CE9D31EA /* Pods-Runner.release.xcconfig */,
|
CCCCA868F0AAA56876A031CC /* Pods-Runner.release.xcconfig */,
|
||||||
76E3A205AB57DF923EC46FF4 /* Pods-Runner.profile.xcconfig */,
|
F69591C933A2B991CBE337B8 /* Pods-Runner.profile.xcconfig */,
|
||||||
B12CD22763ED0AABDBFA3843 /* Pods-RunnerTests.debug.xcconfig */,
|
292C94FD8F5EB223FCA0D626 /* Pods-RunnerTests.debug.xcconfig */,
|
||||||
84810DBB84C302273D0A3837 /* Pods-RunnerTests.release.xcconfig */,
|
217D5EE4ED45A9C2C2A1FF6F /* Pods-RunnerTests.release.xcconfig */,
|
||||||
9773B881A4736A93B26DA98C /* Pods-RunnerTests.profile.xcconfig */,
|
E7B1106E9B82E5EC66ECA142 /* Pods-RunnerTests.profile.xcconfig */,
|
||||||
);
|
);
|
||||||
path = Pods;
|
path = Pods;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -171,7 +171,7 @@
|
|||||||
isa = PBXNativeTarget;
|
isa = PBXNativeTarget;
|
||||||
buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
|
buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
|
||||||
buildPhases = (
|
buildPhases = (
|
||||||
5CBD8E8486B121262DE7BE14 /* [CP] Check Pods Manifest.lock */,
|
DC6A2DB978D937ADCCE2D3B6 /* [CP] Check Pods Manifest.lock */,
|
||||||
331C807D294A63A400263BE5 /* Sources */,
|
331C807D294A63A400263BE5 /* Sources */,
|
||||||
331C807F294A63A400263BE5 /* Resources */,
|
331C807F294A63A400263BE5 /* Resources */,
|
||||||
B8A03EAB2471301E5C3F51A6 /* Frameworks */,
|
B8A03EAB2471301E5C3F51A6 /* Frameworks */,
|
||||||
@@ -190,14 +190,14 @@
|
|||||||
isa = PBXNativeTarget;
|
isa = PBXNativeTarget;
|
||||||
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
|
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
|
||||||
buildPhases = (
|
buildPhases = (
|
||||||
F103013AD18A5ACBE4D990DF /* [CP] Check Pods Manifest.lock */,
|
6DEDEB6BFA32059CBDD6C101 /* [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 */,
|
||||||
3CFF0FC1A483D0467DD94BE3 /* [CP] Embed Pods Frameworks */,
|
B659A5D7849A68A8EF0E95E0 /* [CP] Embed Pods Frameworks */,
|
||||||
);
|
);
|
||||||
buildRules = (
|
buildRules = (
|
||||||
);
|
);
|
||||||
@@ -285,24 +285,7 @@
|
|||||||
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\" embed_and_thin";
|
||||||
};
|
};
|
||||||
3CFF0FC1A483D0467DD94BE3 /* [CP] Embed Pods Frameworks */ = {
|
6DEDEB6BFA32059CBDD6C101 /* [CP] Check Pods Manifest.lock */ = {
|
||||||
isa = PBXShellScriptBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
);
|
|
||||||
inputFileListPaths = (
|
|
||||||
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
|
|
||||||
);
|
|
||||||
name = "[CP] Embed Pods Frameworks";
|
|
||||||
outputFileListPaths = (
|
|
||||||
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
shellPath = /bin/sh;
|
|
||||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
|
|
||||||
showEnvVarsInLog = 0;
|
|
||||||
};
|
|
||||||
5CBD8E8486B121262DE7BE14 /* [CP] Check Pods Manifest.lock */ = {
|
|
||||||
isa = PBXShellScriptBuildPhase;
|
isa = PBXShellScriptBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
@@ -317,7 +300,7 @@
|
|||||||
outputFileListPaths = (
|
outputFileListPaths = (
|
||||||
);
|
);
|
||||||
outputPaths = (
|
outputPaths = (
|
||||||
"$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt",
|
"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
shellPath = /bin/sh;
|
shellPath = /bin/sh;
|
||||||
@@ -339,7 +322,24 @@
|
|||||||
shellPath = /bin/sh;
|
shellPath = /bin/sh;
|
||||||
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
|
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
|
||||||
};
|
};
|
||||||
F103013AD18A5ACBE4D990DF /* [CP] Check Pods Manifest.lock */ = {
|
B659A5D7849A68A8EF0E95E0 /* [CP] Embed Pods Frameworks */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
|
||||||
|
);
|
||||||
|
name = "[CP] Embed Pods Frameworks";
|
||||||
|
outputFileListPaths = (
|
||||||
|
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
|
DC6A2DB978D937ADCCE2D3B6 /* [CP] Check Pods Manifest.lock */ = {
|
||||||
isa = PBXShellScriptBuildPhase;
|
isa = PBXShellScriptBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
@@ -354,7 +354,7 @@
|
|||||||
outputFileListPaths = (
|
outputFileListPaths = (
|
||||||
);
|
);
|
||||||
outputPaths = (
|
outputPaths = (
|
||||||
"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
|
"$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt",
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
shellPath = /bin/sh;
|
shellPath = /bin/sh;
|
||||||
@@ -497,7 +497,7 @@
|
|||||||
};
|
};
|
||||||
331C8088294A63A400263BE5 /* Debug */ = {
|
331C8088294A63A400263BE5 /* Debug */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
baseConfigurationReference = B12CD22763ED0AABDBFA3843 /* Pods-RunnerTests.debug.xcconfig */;
|
baseConfigurationReference = 292C94FD8F5EB223FCA0D626 /* Pods-RunnerTests.debug.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
@@ -515,7 +515,7 @@
|
|||||||
};
|
};
|
||||||
331C8089294A63A400263BE5 /* Release */ = {
|
331C8089294A63A400263BE5 /* Release */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
baseConfigurationReference = 84810DBB84C302273D0A3837 /* Pods-RunnerTests.release.xcconfig */;
|
baseConfigurationReference = 217D5EE4ED45A9C2C2A1FF6F /* Pods-RunnerTests.release.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
@@ -531,7 +531,7 @@
|
|||||||
};
|
};
|
||||||
331C808A294A63A400263BE5 /* Profile */ = {
|
331C808A294A63A400263BE5 /* Profile */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
baseConfigurationReference = 9773B881A4736A93B26DA98C /* Pods-RunnerTests.profile.xcconfig */;
|
baseConfigurationReference = E7B1106E9B82E5EC66ECA142 /* Pods-RunnerTests.profile.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<Scheme
|
<Scheme
|
||||||
LastUpgradeVersion = "1510"
|
LastUpgradeVersion = "1610"
|
||||||
version = "1.3">
|
version = "1.3">
|
||||||
<BuildAction
|
<BuildAction
|
||||||
parallelizeBuildables = "YES"
|
parallelizeBuildables = "YES"
|
||||||
|
|||||||
@@ -2,15 +2,12 @@ import Flutter
|
|||||||
import UIKit
|
import UIKit
|
||||||
|
|
||||||
@main
|
@main
|
||||||
@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate {
|
@objc class AppDelegate: FlutterAppDelegate {
|
||||||
override func application(
|
override func application(
|
||||||
_ application: UIApplication,
|
_ application: UIApplication,
|
||||||
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
|
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
|
||||||
) -> Bool {
|
) -> Bool {
|
||||||
|
GeneratedPluginRegistrant.register(with: self)
|
||||||
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
|
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
|
||||||
}
|
}
|
||||||
|
|
||||||
func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) {
|
|
||||||
GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,69 +1,48 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
<plist version="1.0">
|
<plist version="1.0">
|
||||||
<dict>
|
|
||||||
<key>CADisableMinimumFrameDurationOnPhone</key>
|
|
||||||
<true/>
|
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
|
||||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
|
||||||
<key>CFBundleDisplayName</key>
|
|
||||||
<string>Citycards Partner Flutter</string>
|
|
||||||
<key>CFBundleExecutable</key>
|
|
||||||
<string>$(EXECUTABLE_NAME)</string>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
|
||||||
<key>CFBundleInfoDictionaryVersion</key>
|
|
||||||
<string>6.0</string>
|
|
||||||
<key>CFBundleName</key>
|
|
||||||
<string>citycards_partner_flutter</string>
|
|
||||||
<key>CFBundlePackageType</key>
|
|
||||||
<string>APPL</string>
|
|
||||||
<key>CFBundleShortVersionString</key>
|
|
||||||
<string>$(FLUTTER_BUILD_NAME)</string>
|
|
||||||
<key>CFBundleSignature</key>
|
|
||||||
<string>????</string>
|
|
||||||
<key>CFBundleVersion</key>
|
|
||||||
<string>$(FLUTTER_BUILD_NUMBER)</string>
|
|
||||||
<key>LSRequiresIPhoneOS</key>
|
|
||||||
<true/>
|
|
||||||
<key>NSCameraUsageDescription</key>
|
|
||||||
<string>This app needs camera access to scan QR codes</string>
|
|
||||||
<key>NSPhotoLibraryUsageDescription</key>
|
|
||||||
<string>This app needs photos access to get QR code from photo library</string>
|
|
||||||
<key>UIApplicationSceneManifest</key>
|
|
||||||
<dict>
|
<dict>
|
||||||
<key>UIApplicationSupportsMultipleScenes</key>
|
<key>CADisableMinimumFrameDurationOnPhone</key>
|
||||||
|
<true/>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||||
|
<key>CFBundleDisplayName</key>
|
||||||
|
<string>Citycards Partner Flutter</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>$(EXECUTABLE_NAME)</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>citycards_partner_flutter</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>APPL</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>$(FLUTTER_BUILD_NAME)</string>
|
||||||
|
<key>CFBundleSignature</key>
|
||||||
|
<string>????</string>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>$(FLUTTER_BUILD_NUMBER)</string>
|
||||||
|
<key>LSRequiresIPhoneOS</key>
|
||||||
|
<true/>
|
||||||
|
<key>NSCameraUsageDescription</key>
|
||||||
|
<string>This app needs camera access to scan QR codes</string>
|
||||||
|
<key>NSPhotoLibraryUsageDescription</key>
|
||||||
|
<string>This app needs photos access to get QR code from photo library</string>
|
||||||
|
<key>UIApplicationSupportsIndirectInputEvents</key>
|
||||||
|
<true/>
|
||||||
|
<key>UILaunchStoryboardName</key>
|
||||||
|
<string>LaunchScreen.storyboard</string>
|
||||||
|
<key>UIMainStoryboardFile</key>
|
||||||
|
<string>Main</string>
|
||||||
|
<key>UIStatusBarHidden</key>
|
||||||
|
<false/>
|
||||||
|
<key>UISupportedInterfaceOrientations</key>
|
||||||
|
<array>
|
||||||
|
<string>UIInterfaceOrientationPortrait</string>
|
||||||
|
</array>
|
||||||
|
<key>UIViewControllerBasedStatusBarAppearance</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>UISceneConfigurations</key>
|
|
||||||
<dict>
|
|
||||||
<key>UIWindowSceneSessionRoleApplication</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>UISceneClassName</key>
|
|
||||||
<string>UIWindowScene</string>
|
|
||||||
<key>UISceneConfigurationName</key>
|
|
||||||
<string>flutter</string>
|
|
||||||
<key>UISceneDelegateClassName</key>
|
|
||||||
<string>FlutterSceneDelegate</string>
|
|
||||||
<key>UISceneStoryboardFile</key>
|
|
||||||
<string>Main</string>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
</dict>
|
|
||||||
</dict>
|
</dict>
|
||||||
<key>UIApplicationSupportsIndirectInputEvents</key>
|
|
||||||
<true/>
|
|
||||||
<key>UILaunchStoryboardName</key>
|
|
||||||
<string>LaunchScreen.storyboard</string>
|
|
||||||
<key>UIMainStoryboardFile</key>
|
|
||||||
<string>Main</string>
|
|
||||||
<key>UIStatusBarHidden</key>
|
|
||||||
<false/>
|
|
||||||
<key>UISupportedInterfaceOrientations</key>
|
|
||||||
<array>
|
|
||||||
<string>UIInterfaceOrientationPortrait</string>
|
|
||||||
</array>
|
|
||||||
<key>UIViewControllerBasedStatusBarAppearance</key>
|
|
||||||
<false/>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
</plist>
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ class LoginBloc extends Bloc<LoginEvent, LoginState> {
|
|||||||
on<LoginRememberMeToggled>(_onRememberMeToggled);
|
on<LoginRememberMeToggled>(_onRememberMeToggled);
|
||||||
on<LoginEmailErrorToggled>(_onEmailErrorToggled);
|
on<LoginEmailErrorToggled>(_onEmailErrorToggled);
|
||||||
on<LoginPasswordErrorToggled>(_onPasswordErrorToggled);
|
on<LoginPasswordErrorToggled>(_onPasswordErrorToggled);
|
||||||
on<LoginReset>(_onReset);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ================= LOGIN SUBMITTED =================
|
// ================= LOGIN SUBMITTED =================
|
||||||
@@ -88,11 +87,4 @@ class LoginBloc extends Bloc<LoginEvent, LoginState> {
|
|||||||
) {
|
) {
|
||||||
emit(state.copyWith(showPasswordError: event.show));
|
emit(state.copyWith(showPasswordError: event.show));
|
||||||
}
|
}
|
||||||
|
|
||||||
void _onReset(
|
|
||||||
LoginReset event,
|
|
||||||
Emitter<LoginState> emit,
|
|
||||||
) {
|
|
||||||
emit(const LoginState());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -42,10 +42,6 @@ class LoginEmailErrorToggled extends LoginEvent {
|
|||||||
List<Object?> get props => [show];
|
List<Object?> get props => [show];
|
||||||
}
|
}
|
||||||
|
|
||||||
class LoginReset extends LoginEvent {
|
|
||||||
const LoginReset();
|
|
||||||
}
|
|
||||||
|
|
||||||
class LoginPasswordErrorToggled extends LoginEvent {
|
class LoginPasswordErrorToggled extends LoginEvent {
|
||||||
final bool show;
|
final bool show;
|
||||||
const LoginPasswordErrorToggled(this.show);
|
const LoginPasswordErrorToggled(this.show);
|
||||||
|
|||||||
@@ -62,29 +62,6 @@ class _ForgotPasswordPageState extends State<ForgotPasswordPage> {
|
|||||||
behavior: HitTestBehavior.translucent,
|
behavior: HitTestBehavior.translucent,
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
backgroundColor: AppColors.backgroundWhite,
|
backgroundColor: AppColors.backgroundWhite,
|
||||||
appBar: AppBar(
|
|
||||||
backgroundColor: Colors.transparent,
|
|
||||||
elevation: 0,
|
|
||||||
leadingWidth: 70.w,
|
|
||||||
leading: Padding(
|
|
||||||
padding: EdgeInsets.only(left: 24.w, top: 8.h, bottom: 8.h),
|
|
||||||
child: InkWell(
|
|
||||||
onTap: () => Navigator.pop(context),
|
|
||||||
borderRadius: BorderRadius.circular(50),
|
|
||||||
child: Container(
|
|
||||||
decoration: const BoxDecoration(
|
|
||||||
color: AppColors.primaryRed,
|
|
||||||
shape: BoxShape.circle,
|
|
||||||
),
|
|
||||||
child: Icon(
|
|
||||||
Icons.arrow_back_ios_new,
|
|
||||||
color: Colors.white,
|
|
||||||
size: 18.sp,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
body: BlocConsumer<ForgotPasswordBloc, ForgotPasswordState>(
|
body: BlocConsumer<ForgotPasswordBloc, ForgotPasswordState>(
|
||||||
listener: (context, state) {
|
listener: (context, state) {
|
||||||
if (state.status == ForgotPasswordStatus.success) {
|
if (state.status == ForgotPasswordStatus.success) {
|
||||||
@@ -120,7 +97,7 @@ class _ForgotPasswordPageState extends State<ForgotPasswordPage> {
|
|||||||
child: SingleChildScrollView(
|
child: SingleChildScrollView(
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
SizedBox(height: 10.h),
|
SizedBox(height: 40.h),
|
||||||
// ===== LOGO SECTION =====
|
// ===== LOGO SECTION =====
|
||||||
Center(
|
Center(
|
||||||
child: Column(
|
child: Column(
|
||||||
|
|||||||
@@ -22,12 +22,6 @@ class _LoginPageState extends State<LoginPage> {
|
|||||||
final _emailFocusNode = FocusNode();
|
final _emailFocusNode = FocusNode();
|
||||||
final _passwordFocusNode = FocusNode();
|
final _passwordFocusNode = FocusNode();
|
||||||
|
|
||||||
@override
|
|
||||||
void initState() {
|
|
||||||
super.initState();
|
|
||||||
context.read<LoginBloc>().add(const LoginReset());
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
_emailController.dispose();
|
_emailController.dispose();
|
||||||
@@ -38,7 +32,9 @@ class _LoginPageState extends State<LoginPage> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool _isEmailValid(String email) {
|
bool _isEmailValid(String email) {
|
||||||
return RegExp(r'^[\w-\.]+@([\w-]+\.)+[a-zA-Z]{2,4}$').hasMatch(email);
|
return RegExp(
|
||||||
|
r'^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$')
|
||||||
|
.hasMatch(email);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _onLoginPressed(BuildContext context) {
|
void _onLoginPressed(BuildContext context) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||||
import 'package:pinput/pinput.dart';
|
import 'package:flutter_otp_text_field/flutter_otp_text_field.dart';
|
||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:google_fonts/google_fonts.dart';
|
import 'package:google_fonts/google_fonts.dart';
|
||||||
import '../../constants/app_assets.dart';
|
import '../../constants/app_assets.dart';
|
||||||
@@ -21,30 +21,7 @@ class OtpVerificationPage extends StatelessWidget {
|
|||||||
behavior: HitTestBehavior.translucent,
|
behavior: HitTestBehavior.translucent,
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
backgroundColor: AppColors.backgroundWhite,
|
backgroundColor: AppColors.backgroundWhite,
|
||||||
appBar: AppBar(
|
body: BlocConsumer<VerifyOtpBloc, VerifyOtpState>(
|
||||||
backgroundColor: Colors.transparent,
|
|
||||||
elevation: 0,
|
|
||||||
leadingWidth: 70.w,
|
|
||||||
leading: Padding(
|
|
||||||
padding: EdgeInsets.only(left: 24.w, top: 8.h, bottom: 8.h),
|
|
||||||
child: InkWell(
|
|
||||||
onTap: () => Navigator.pop(context),
|
|
||||||
borderRadius: BorderRadius.circular(50),
|
|
||||||
child: Container(
|
|
||||||
decoration: const BoxDecoration(
|
|
||||||
color: AppColors.primaryRed,
|
|
||||||
shape: BoxShape.circle,
|
|
||||||
),
|
|
||||||
child: Icon(
|
|
||||||
Icons.arrow_back_ios_new,
|
|
||||||
color: Colors.white,
|
|
||||||
size: 18.sp,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
body: BlocListener<VerifyOtpBloc, VerifyOtpState>(
|
|
||||||
listener: (context, state) {
|
listener: (context, state) {
|
||||||
if (state.status == VerifyOtpStatus.success) {
|
if (state.status == VerifyOtpStatus.success) {
|
||||||
Navigator.pushReplacementNamed(
|
Navigator.pushReplacementNamed(
|
||||||
@@ -62,149 +39,122 @@ class OtpVerificationPage extends StatelessWidget {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
child: SafeArea(
|
builder: (context, state) {
|
||||||
child: Padding(
|
final isLoading = state.status == VerifyOtpStatus.loading;
|
||||||
padding: EdgeInsets.symmetric(horizontal: 24.w),
|
|
||||||
child: Column(
|
return SafeArea(
|
||||||
children: [
|
child: Padding(
|
||||||
Expanded(
|
padding: EdgeInsets.symmetric(horizontal: 24.w),
|
||||||
child: SingleChildScrollView(
|
child: Column(
|
||||||
child: Column(
|
children: [
|
||||||
children: [
|
Expanded(
|
||||||
SizedBox(height: 10.h),
|
child: SingleChildScrollView(
|
||||||
// ===== LOGO SECTION =====
|
child: Column(
|
||||||
Center(
|
children: [
|
||||||
child: Column(
|
SizedBox(height: 40.h),
|
||||||
children: [
|
// ===== LOGO SECTION =====
|
||||||
Image.asset(
|
Center(
|
||||||
AppAssets.appIcon,
|
child: Column(
|
||||||
height: 60.h,
|
children: [
|
||||||
),
|
Image.asset(
|
||||||
SizedBox(height: 8.h),
|
AppAssets.appIcon,
|
||||||
Text(
|
height: 60.h,
|
||||||
"Partner's App",
|
|
||||||
style: GoogleFonts.poppins(
|
|
||||||
color: AppColors.primaryRed,
|
|
||||||
fontSize: 20.sp,
|
|
||||||
fontWeight: FontWeight.w500,
|
|
||||||
),
|
),
|
||||||
),
|
SizedBox(height: 8.h),
|
||||||
],
|
Text(
|
||||||
),
|
"Partner's App",
|
||||||
),
|
style: GoogleFonts.poppins(
|
||||||
SizedBox(height: 60.h),
|
color: AppColors.primaryRed,
|
||||||
|
fontSize: 20.sp,
|
||||||
// ===== HEADER TEXT =====
|
fontWeight: FontWeight.w500,
|
||||||
Text(
|
|
||||||
"Verify OTP",
|
|
||||||
textAlign: TextAlign.center,
|
|
||||||
style: GoogleFonts.poppins(
|
|
||||||
color: AppColors.black,
|
|
||||||
fontSize: 24.sp,
|
|
||||||
fontWeight: FontWeight.w600,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
SizedBox(height: 12.h),
|
|
||||||
Text(
|
|
||||||
"We've sent an OTP to your registered email. Please enter it below.",
|
|
||||||
textAlign: TextAlign.center,
|
|
||||||
style: GoogleFonts.poppins(
|
|
||||||
color: AppColors.textGrey,
|
|
||||||
fontSize: 16.sp,
|
|
||||||
height: 1.4,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
SizedBox(height: 48.h),
|
|
||||||
|
|
||||||
// ===== OTP INPUT FIELDS =====
|
|
||||||
Pinput(
|
|
||||||
length: 6,
|
|
||||||
defaultPinTheme: PinTheme(
|
|
||||||
width: 48.w,
|
|
||||||
height: 52.h,
|
|
||||||
textStyle: GoogleFonts.poppins(
|
|
||||||
fontSize: 18.sp,
|
|
||||||
fontWeight: FontWeight.w600,
|
|
||||||
color: AppColors.black,
|
|
||||||
),
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
borderRadius: BorderRadius.circular(12.r),
|
|
||||||
border: Border.all(color: AppColors.borderGrey),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
focusedPinTheme: PinTheme(
|
|
||||||
width: 48.w,
|
|
||||||
height: 52.h,
|
|
||||||
textStyle: GoogleFonts.poppins(
|
|
||||||
fontSize: 18.sp,
|
|
||||||
fontWeight: FontWeight.w600,
|
|
||||||
color: AppColors.black,
|
|
||||||
),
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
borderRadius: BorderRadius.circular(12.r),
|
|
||||||
border: Border.all(color: AppColors.primaryRed),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
submittedPinTheme: PinTheme(
|
|
||||||
width: 48.w,
|
|
||||||
height: 52.h,
|
|
||||||
textStyle: GoogleFonts.poppins(
|
|
||||||
fontSize: 18.sp,
|
|
||||||
fontWeight: FontWeight.w600,
|
|
||||||
color: AppColors.black,
|
|
||||||
),
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
borderRadius: BorderRadius.circular(12.r),
|
|
||||||
border: Border.all(color: AppColors.borderGrey),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
onChanged: (String code) {
|
|
||||||
context.read<VerifyOtpBloc>().add(
|
|
||||||
OtpChanged(otp: code),
|
|
||||||
);
|
|
||||||
},
|
|
||||||
onCompleted: (String verificationCode) {
|
|
||||||
context.read<VerifyOtpBloc>().add(
|
|
||||||
VerifyOtpSubmitted(
|
|
||||||
emailAddress: email,
|
|
||||||
otp: verificationCode,
|
|
||||||
),
|
),
|
||||||
);
|
),
|
||||||
},
|
],
|
||||||
),
|
),
|
||||||
],
|
),
|
||||||
),
|
SizedBox(height: 60.h),
|
||||||
),
|
|
||||||
),
|
|
||||||
|
|
||||||
// ===== VERIFY BUTTON =====
|
// ===== HEADER TEXT =====
|
||||||
BlocBuilder<VerifyOtpBloc, VerifyOtpState>(
|
Text(
|
||||||
buildWhen: (previous, current) =>
|
"Verify OTP",
|
||||||
previous.otp.length != current.otp.length ||
|
textAlign: TextAlign.center,
|
||||||
previous.status != current.status,
|
style: GoogleFonts.poppins(
|
||||||
builder: (context, state) {
|
color: AppColors.black,
|
||||||
final isLoading = state.status == VerifyOtpStatus.loading;
|
fontSize: 24.sp,
|
||||||
return CustomButton(
|
fontWeight: FontWeight.w600,
|
||||||
text: "Verify",
|
),
|
||||||
isLoading: isLoading,
|
),
|
||||||
onPressed: state.otp.length == 6 && !isLoading
|
SizedBox(height: 12.h),
|
||||||
? () {
|
Text(
|
||||||
|
"We've sent an OTP to your registered email. Please enter it below.",
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
style: GoogleFonts.poppins(
|
||||||
|
color: AppColors.textGrey,
|
||||||
|
fontSize: 16.sp,
|
||||||
|
height: 1.4,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(height: 48.h),
|
||||||
|
|
||||||
|
// ===== OTP INPUT FIELDS =====
|
||||||
|
OtpTextField(
|
||||||
|
numberOfFields: 6,
|
||||||
|
borderColor: AppColors.borderGrey,
|
||||||
|
focusedBorderColor: AppColors.primaryRed,
|
||||||
|
showFieldAsBox: true,
|
||||||
|
fieldWidth: 45.w,
|
||||||
|
borderRadius: BorderRadius.circular(12.r),
|
||||||
|
enabledBorderColor: AppColors.borderGrey,
|
||||||
|
cursorColor: AppColors.primaryRed,
|
||||||
|
textStyle: GoogleFonts.poppins(
|
||||||
|
fontSize: 18.sp,
|
||||||
|
fontWeight: FontWeight.w600,
|
||||||
|
color: AppColors.black,
|
||||||
|
),
|
||||||
|
onCodeChanged: (String code) {
|
||||||
|
context.read<VerifyOtpBloc>().add(
|
||||||
|
OtpChanged(otp: code),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
onSubmit: (String verificationCode) {
|
||||||
|
if (isLoading) return;
|
||||||
|
context.read<VerifyOtpBloc>().add(
|
||||||
|
OtpChanged(otp: verificationCode),
|
||||||
|
);
|
||||||
context.read<VerifyOtpBloc>().add(
|
context.read<VerifyOtpBloc>().add(
|
||||||
VerifyOtpSubmitted(
|
VerifyOtpSubmitted(
|
||||||
emailAddress: email,
|
emailAddress: email,
|
||||||
otp: state.otp,
|
otp: verificationCode,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
},
|
||||||
: null,
|
),
|
||||||
);
|
],
|
||||||
},
|
),
|
||||||
),
|
),
|
||||||
SizedBox(height: 24.h),
|
),
|
||||||
],
|
|
||||||
|
// ===== VERIFY BUTTON =====
|
||||||
|
CustomButton(
|
||||||
|
text: "Verify",
|
||||||
|
isLoading: isLoading,
|
||||||
|
onPressed: state.otp.length == 6 && !isLoading
|
||||||
|
? () {
|
||||||
|
context.read<VerifyOtpBloc>().add(
|
||||||
|
VerifyOtpSubmitted(
|
||||||
|
emailAddress: email,
|
||||||
|
otp: state.otp,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
: null,
|
||||||
|
),
|
||||||
|
SizedBox(height: 24.h),
|
||||||
|
],
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
);
|
||||||
),
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -70,29 +70,6 @@ class _ResetPasswordPageState extends State<ResetPasswordPage> {
|
|||||||
behavior: HitTestBehavior.translucent,
|
behavior: HitTestBehavior.translucent,
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
backgroundColor: AppColors.backgroundWhite,
|
backgroundColor: AppColors.backgroundWhite,
|
||||||
appBar: AppBar(
|
|
||||||
backgroundColor: Colors.transparent,
|
|
||||||
elevation: 0,
|
|
||||||
leadingWidth: 70.w,
|
|
||||||
leading: Padding(
|
|
||||||
padding: EdgeInsets.only(left: 24.w, top: 8.h, bottom: 8.h),
|
|
||||||
child: InkWell(
|
|
||||||
onTap: () => Navigator.pop(context),
|
|
||||||
borderRadius: BorderRadius.circular(50),
|
|
||||||
child: Container(
|
|
||||||
decoration: const BoxDecoration(
|
|
||||||
color: AppColors.primaryRed,
|
|
||||||
shape: BoxShape.circle,
|
|
||||||
),
|
|
||||||
child: Icon(
|
|
||||||
Icons.arrow_back_ios_new,
|
|
||||||
color: Colors.white,
|
|
||||||
size: 18.sp,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
body: BlocConsumer<ResetPasswordBloc, ResetPasswordState>(
|
body: BlocConsumer<ResetPasswordBloc, ResetPasswordState>(
|
||||||
listener: (context, state) {
|
listener: (context, state) {
|
||||||
if (state.status == ResetPasswordStatus.success) {
|
if (state.status == ResetPasswordStatus.success) {
|
||||||
@@ -128,7 +105,7 @@ class _ResetPasswordPageState extends State<ResetPasswordPage> {
|
|||||||
child: SingleChildScrollView(
|
child: SingleChildScrollView(
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
SizedBox(height: 10.h),
|
SizedBox(height: 40.h),
|
||||||
// ===== LOGO SECTION =====
|
// ===== LOGO SECTION =====
|
||||||
Center(
|
Center(
|
||||||
child: Column(
|
child: Column(
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
class ApiUrls {
|
class ApiUrls {
|
||||||
|
|
||||||
// static const baseUrl = "https://devapi.citycards.betadelivery.com"; // Normal API
|
// static const baseUrl = "https://devapi.citycards.betadelivery.com"; // Normal API
|
||||||
// static const baseUrl = "https://testingapi.citycards.betadelivery.com"; // Test API
|
static const baseUrl = "https://testingapi.citycards.betadelivery.com"; // Test API
|
||||||
static const baseUrl = "https://uatapi.citycard.betadelivery.com"; // Production Lvl API
|
// static const baseUrl = "https://uatapi.citycard.betadelivery.com"; // Production Lvl API
|
||||||
|
|
||||||
static const refreshToken = "$baseUrl/partner/auth/refresh";
|
static const refreshToken = "$baseUrl/partner/auth/refresh";
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import '../blocs/profile/profile_bloc.dart';
|
|||||||
import '../blocs/profile/profile_event.dart';
|
import '../blocs/profile/profile_event.dart';
|
||||||
import '../blocs/profile/profile_state.dart';
|
import '../blocs/profile/profile_state.dart';
|
||||||
import '../models/profile_model.dart'; // Import UserDetails model
|
import '../models/profile_model.dart'; // Import UserDetails model
|
||||||
import '../../login/blocs/login/login_bloc.dart';
|
|
||||||
|
|
||||||
class ProfileScreen extends StatelessWidget {
|
class ProfileScreen extends StatelessWidget {
|
||||||
const ProfileScreen({super.key});
|
const ProfileScreen({super.key});
|
||||||
@@ -193,7 +192,6 @@ class ProfileScreen extends StatelessWidget {
|
|||||||
child: ElevatedButton(
|
child: ElevatedButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
LocalPreference.clearAllExceptOnBoarding();
|
LocalPreference.clearAllExceptOnBoarding();
|
||||||
context.read<LoginBloc>().add(const LoginReset());
|
|
||||||
Navigator.pushNamedAndRemoveUntil(
|
Navigator.pushNamedAndRemoveUntil(
|
||||||
context,
|
context,
|
||||||
AppRouter.login,
|
AppRouter.login,
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ class SubmitQrCodeBloc
|
|||||||
SubmitQrCodeEventTriggered event,
|
SubmitQrCodeEventTriggered event,
|
||||||
Emitter<SubmitQrCodeState> emit,
|
Emitter<SubmitQrCodeState> emit,
|
||||||
) async {
|
) async {
|
||||||
if (state is SubmitQrCodeLoading) return;
|
|
||||||
if (event.qrCode.trim().isEmpty) {
|
if (event.qrCode.trim().isEmpty) {
|
||||||
emit(const SubmitQrCodeFailure(
|
emit(const SubmitQrCodeFailure(
|
||||||
errorMessage: 'QR code cannot be empty'));
|
errorMessage: 'QR code cannot be empty'));
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ class _QrScanScreenState extends State<QrScanScreen>
|
|||||||
late MobileScannerController _cameraController;
|
late MobileScannerController _cameraController;
|
||||||
final ValueNotifier<bool> _isTorchOn = ValueNotifier(false);
|
final ValueNotifier<bool> _isTorchOn = ValueNotifier(false);
|
||||||
bool _cameraAvailable = true;
|
bool _cameraAvailable = true;
|
||||||
bool _isScanProcessing = false;
|
|
||||||
|
|
||||||
final sheetContentKey = GlobalKey();
|
final sheetContentKey = GlobalKey();
|
||||||
final ValueNotifier<double> sheetExtent = ValueNotifier(0.5);
|
final ValueNotifier<double> sheetExtent = ValueNotifier(0.5);
|
||||||
@@ -86,7 +85,6 @@ class _QrScanScreenState extends State<QrScanScreen>
|
|||||||
if (!mounted || !_cameraAvailable) return;
|
if (!mounted || !_cameraAvailable) return;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
_isScanProcessing = false; // Reset flag when camera starts
|
|
||||||
if (!_cameraController.value.isStarting) {
|
if (!_cameraController.value.isStarting) {
|
||||||
await _cameraController.start();
|
await _cameraController.start();
|
||||||
}
|
}
|
||||||
@@ -181,25 +179,22 @@ class _QrScanScreenState extends State<QrScanScreen>
|
|||||||
|
|
||||||
/// 📷 QR Scanner
|
/// 📷 QR Scanner
|
||||||
MobileScanner(
|
MobileScanner(
|
||||||
controller: _cameraController,
|
controller: _cameraController,
|
||||||
fit: BoxFit.cover,
|
fit: BoxFit.cover,
|
||||||
onDetect: (capture) {
|
onDetect: (capture) {
|
||||||
if (_isScanProcessing) return;
|
final barcode =
|
||||||
|
capture.barcodes.first.rawValue ?? '';
|
||||||
final barcode =
|
if (barcode.isNotEmpty &&
|
||||||
capture.barcodes.first.rawValue ?? '';
|
state is! SubmitQrCodeLoading &&
|
||||||
if (barcode.isNotEmpty &&
|
state is SubmitQrCodeInitial) {
|
||||||
state is! SubmitQrCodeLoading &&
|
final extractedCode = _extractQrCode(barcode);
|
||||||
state is SubmitQrCodeInitial) {
|
_cameraController.stop();
|
||||||
_isScanProcessing = true;
|
context.read<SubmitQrCodeBloc>().add(
|
||||||
final extractedCode = _extractQrCode(barcode);
|
SubmitQrCodeEventTriggered(
|
||||||
_cameraController.stop();
|
qrCode: extractedCode));
|
||||||
context.read<SubmitQrCodeBloc>().add(
|
}
|
||||||
SubmitQrCodeEventTriggered(
|
},
|
||||||
qrCode: extractedCode));
|
),
|
||||||
}
|
|
||||||
},
|
|
||||||
),
|
|
||||||
|
|
||||||
/// 🔲 Scanner Frame
|
/// 🔲 Scanner Frame
|
||||||
if (_cameraAvailable)
|
if (_cameraAvailable)
|
||||||
|
|||||||
24
pubspec.lock
24
pubspec.lock
@@ -197,10 +197,10 @@ packages:
|
|||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: file_picker
|
name: file_picker
|
||||||
sha256: f2d9f173c2c14635cc0e9b14c143c49ef30b4934e8d1d274d6206fcb0086a06f
|
sha256: "57d9a1dd5063f85fa3107fb42d1faffda52fdc948cefd5fe5ea85267a5fc7343"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "10.3.3"
|
version: "10.3.10"
|
||||||
file_selector_linux:
|
file_selector_linux:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -270,6 +270,14 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.4.7"
|
version: "2.4.7"
|
||||||
|
flutter_otp_text_field:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: flutter_otp_text_field
|
||||||
|
sha256: e7e589dc51cde120d63da6db55f3cef618f5d013d12adba76137ca1a51ce1390
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "1.5.1+1"
|
||||||
flutter_plugin_android_lifecycle:
|
flutter_plugin_android_lifecycle:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -560,14 +568,6 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "7.0.1"
|
version: "7.0.1"
|
||||||
pinput:
|
|
||||||
dependency: "direct main"
|
|
||||||
description:
|
|
||||||
name: pinput
|
|
||||||
sha256: "4c3f1b84768b47a56a1abdaca551bd7cef4ac673b882209039ecdf803a5d6e68"
|
|
||||||
url: "https://pub.dev"
|
|
||||||
source: hosted
|
|
||||||
version: "6.0.2"
|
|
||||||
platform:
|
platform:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -737,10 +737,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: test_api
|
name: test_api
|
||||||
sha256: "93167629bfc610f71560ab9312acdda4959de4df6fac7492c89ff0d3886f6636"
|
sha256: "19a78f63e83d3a61f00826d09bc2f60e191bf3504183c001262be6ac75589fb8"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.7.9"
|
version: "0.7.8"
|
||||||
typed_data:
|
typed_data:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ dependencies:
|
|||||||
cupertino_icons: ^1.0.8
|
cupertino_icons: ^1.0.8
|
||||||
google_fonts: ^6.3.2
|
google_fonts: ^6.3.2
|
||||||
flutter_bloc: ^9.1.1
|
flutter_bloc: ^9.1.1
|
||||||
|
flutter_otp_text_field: ^1.5.1+1
|
||||||
intl: ^0.20.2
|
intl: ^0.20.2
|
||||||
table_calendar: ^3.2.0
|
table_calendar: ^3.2.0
|
||||||
file_picker: ^10.3.3
|
file_picker: ^10.3.3
|
||||||
@@ -51,7 +52,6 @@ dependencies:
|
|||||||
dio_cookie_manager: ^3.4.0
|
dio_cookie_manager: ^3.4.0
|
||||||
cookie_jar: ^4.0.9
|
cookie_jar: ^4.0.9
|
||||||
image_picker: ^1.2.1
|
image_picker: ^1.2.1
|
||||||
pinput: ^6.0.2
|
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
|
|||||||
Reference in New Issue
Block a user