Commit 30024bcb authored by Sai Srinivas's avatar Sai Srinivas
Browse files

ios podspec

parent 8ddd1d9b
...@@ -21,6 +21,6 @@ ...@@ -21,6 +21,6 @@
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>1.0</string> <string>1.0</string>
<key>MinimumOSVersion</key> <key>MinimumOSVersion</key>
<string>12.0</string> <string>13.0</string>
</dict> </dict>
</plist> </plist>
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
#include "Generated.xcconfig" #include "Generated.xcconfig"
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
#include "Generated.xcconfig" #include "Generated.xcconfig"
# Uncomment this line to define a global platform for your project
platform :ios, '15.0'
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
project 'Runner', {
'Debug' => :debug,
'Profile' => :release,
'Release' => :release,
}
def flutter_root
generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
unless File.exist?(generated_xcode_build_settings_path)
raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
end
File.foreach(generated_xcode_build_settings_path) do |line|
matches = line.match(/FLUTTER_ROOT\=(.*)/)
return matches[1].strip if matches
end
raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
end
require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
flutter_ios_podfile_setup
target 'Runner' do
use_frameworks!
flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
target 'RunnerTests' do
inherit! :search_paths
end
end
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
end
end
PODS:
- connectivity_plus (0.0.1):
- Flutter
- device_info_plus (0.0.1):
- Flutter
- Firebase/CoreOnly (12.4.0):
- FirebaseCore (~> 12.4.0)
- firebase_core (4.2.0):
- Firebase/CoreOnly (= 12.4.0)
- Flutter
- FirebaseCore (12.4.0):
- FirebaseCoreInternal (~> 12.4.0)
- GoogleUtilities/Environment (~> 8.1)
- GoogleUtilities/Logger (~> 8.1)
- FirebaseCoreInternal (12.4.0):
- "GoogleUtilities/NSData+zlib (~> 8.1)"
- Flutter (1.0.0)
- fluttertoast (0.0.2):
- Flutter
- GoogleUtilities/Environment (8.1.0):
- GoogleUtilities/Privacy
- GoogleUtilities/Logger (8.1.0):
- GoogleUtilities/Environment
- GoogleUtilities/Privacy
- "GoogleUtilities/NSData+zlib (8.1.0)":
- GoogleUtilities/Privacy
- GoogleUtilities/Privacy (8.1.0)
- image_picker_ios (0.0.1):
- Flutter
- open_filex (0.0.2):
- Flutter
- package_info_plus (0.4.5):
- Flutter
- path_provider_foundation (0.0.1):
- Flutter
- FlutterMacOS
- permission_handler_apple (9.3.0):
- Flutter
- razorpay-core-pod (1.0.1)
- razorpay-pod (1.5.0):
- razorpay-core-pod
- razorpay_flutter (1.1.10):
- Flutter
- razorpay-pod
- shared_preferences_foundation (0.0.1):
- Flutter
- FlutterMacOS
- sqflite_darwin (0.0.4):
- Flutter
- FlutterMacOS
DEPENDENCIES:
- connectivity_plus (from `.symlinks/plugins/connectivity_plus/ios`)
- device_info_plus (from `.symlinks/plugins/device_info_plus/ios`)
- firebase_core (from `.symlinks/plugins/firebase_core/ios`)
- Flutter (from `Flutter`)
- fluttertoast (from `.symlinks/plugins/fluttertoast/ios`)
- image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`)
- open_filex (from `.symlinks/plugins/open_filex/ios`)
- package_info_plus (from `.symlinks/plugins/package_info_plus/ios`)
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
- permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`)
- razorpay_flutter (from `.symlinks/plugins/razorpay_flutter/ios`)
- shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`)
- sqflite_darwin (from `.symlinks/plugins/sqflite_darwin/darwin`)
SPEC REPOS:
trunk:
- Firebase
- FirebaseCore
- FirebaseCoreInternal
- GoogleUtilities
- razorpay-core-pod
- razorpay-pod
EXTERNAL SOURCES:
connectivity_plus:
:path: ".symlinks/plugins/connectivity_plus/ios"
device_info_plus:
:path: ".symlinks/plugins/device_info_plus/ios"
firebase_core:
:path: ".symlinks/plugins/firebase_core/ios"
Flutter:
:path: Flutter
fluttertoast:
:path: ".symlinks/plugins/fluttertoast/ios"
image_picker_ios:
:path: ".symlinks/plugins/image_picker_ios/ios"
open_filex:
:path: ".symlinks/plugins/open_filex/ios"
package_info_plus:
:path: ".symlinks/plugins/package_info_plus/ios"
path_provider_foundation:
:path: ".symlinks/plugins/path_provider_foundation/darwin"
permission_handler_apple:
:path: ".symlinks/plugins/permission_handler_apple/ios"
razorpay_flutter:
:path: ".symlinks/plugins/razorpay_flutter/ios"
shared_preferences_foundation:
:path: ".symlinks/plugins/shared_preferences_foundation/darwin"
sqflite_darwin:
:path: ".symlinks/plugins/sqflite_darwin/darwin"
SPEC CHECKSUMS:
connectivity_plus: f499286d7b23825ffb8a829070919f7337fd12a8
device_info_plus: 97af1d7e84681a90d0693e63169a5d50e0839a0d
Firebase: f07b15ae5a6ec0f93713e30b923d9970d144af3e
firebase_core: 49ffe9d2c7a2659f6e9e8d4a406e966bc084268e
FirebaseCore: bb595f3114953664e3c1dc032f008a244147cfd3
FirebaseCoreInternal: d7f5a043c2cd01a08103ab586587c1468047bca6
Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467
fluttertoast: 21eecd6935e7064cc1fcb733a4c5a428f3f24f0f
GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1
image_picker_ios: c560581cceedb403a6ff17f2f816d7fea1421fc1
open_filex: 6e26e659846ec990262224a12ef1c528bb4edbe4
package_info_plus: c0502532a26c7662a62a356cebe2692ec5fe4ec4
path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2
razorpay-core-pod: 42dadbbcef5a65abd02d7bac3e6bf76041934fdd
razorpay-pod: f634f1b8397eb54d547f25d35291f679545ddf17
razorpay_flutter: 84b3bfd206ae9c9c2a9ba585524a1b3d8102b6c1
shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78
sqflite_darwin: 5a7236e3b501866c1c9befc6771dfd73ffb8702d
PODFILE CHECKSUM: 53a6aebc29ccee84c41f92f409fc20cd4ca011f1
COCOAPODS: 1.16.2
...@@ -11,9 +11,11 @@ ...@@ -11,9 +11,11 @@
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 */; };
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
78CEBBD0F1CE859C6530FF76 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8840D4FB9D0B11857EA8551C /* 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 */; };
FDF173640240A48C4C5D3C84 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8D990BBCE63C0B10EA09BC8F /* Pods_RunnerTests.framework */; };
/* End PBXBuildFile section */ /* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */ /* Begin PBXContainerItemProxy section */
...@@ -45,9 +47,16 @@ ...@@ -45,9 +47,16 @@
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>"; };
593DB27BA0EB5AEC09961778 /* 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>"; };
6965DD935F46818BA4FB5DF7 /* 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>"; };
6A74E6B5D5602149A8A431AA /* 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>"; };
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>"; };
8840D4FB9D0B11857EA8551C /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
8D990BBCE63C0B10EA09BC8F /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
8DC72D99E5F0BE6344FD37C9 /* 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>"; };
963B8FD46F553A4E33651676 /* 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>"; };
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; };
...@@ -55,13 +64,23 @@ ...@@ -55,13 +64,23 @@
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>"; };
B280BA1F53D5338337E21F2A /* 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 */
68281778176E227A444E4F41 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
FDF173640240A48C4C5D3C84 /* Pods_RunnerTests.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
97C146EB1CF9000F007C117D /* Frameworks */ = { 97C146EB1CF9000F007C117D /* Frameworks */ = {
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
78CEBBD0F1CE859C6530FF76 /* Pods_Runner.framework in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
...@@ -76,6 +95,15 @@ ...@@ -76,6 +95,15 @@
path = RunnerTests; path = RunnerTests;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
87A98D82ADFC74CF4242CFF2 /* Frameworks */ = {
isa = PBXGroup;
children = (
8840D4FB9D0B11857EA8551C /* Pods_Runner.framework */,
8D990BBCE63C0B10EA09BC8F /* Pods_RunnerTests.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
9740EEB11CF90186004384FC /* Flutter */ = { 9740EEB11CF90186004384FC /* Flutter */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
...@@ -94,6 +122,8 @@ ...@@ -94,6 +122,8 @@
97C146F01CF9000F007C117D /* Runner */, 97C146F01CF9000F007C117D /* Runner */,
97C146EF1CF9000F007C117D /* Products */, 97C146EF1CF9000F007C117D /* Products */,
331C8082294A63A400263BE5 /* RunnerTests */, 331C8082294A63A400263BE5 /* RunnerTests */,
FB8751AC711BD2C8905CA292 /* Pods */,
87A98D82ADFC74CF4242CFF2 /* Frameworks */,
); );
sourceTree = "<group>"; sourceTree = "<group>";
}; };
...@@ -121,6 +151,19 @@ ...@@ -121,6 +151,19 @@
path = Runner; path = Runner;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
FB8751AC711BD2C8905CA292 /* Pods */ = {
isa = PBXGroup;
children = (
963B8FD46F553A4E33651676 /* Pods-Runner.debug.xcconfig */,
6A74E6B5D5602149A8A431AA /* Pods-Runner.release.xcconfig */,
B280BA1F53D5338337E21F2A /* Pods-Runner.profile.xcconfig */,
593DB27BA0EB5AEC09961778 /* Pods-RunnerTests.debug.xcconfig */,
8DC72D99E5F0BE6344FD37C9 /* Pods-RunnerTests.release.xcconfig */,
6965DD935F46818BA4FB5DF7 /* Pods-RunnerTests.profile.xcconfig */,
);
path = Pods;
sourceTree = "<group>";
};
/* End PBXGroup section */ /* End PBXGroup section */
/* Begin PBXNativeTarget section */ /* Begin PBXNativeTarget section */
...@@ -128,8 +171,10 @@ ...@@ -128,8 +171,10 @@
isa = PBXNativeTarget; isa = PBXNativeTarget;
buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
buildPhases = ( buildPhases = (
ED343249B35093BA5311A047 /* [CP] Check Pods Manifest.lock */,
331C807D294A63A400263BE5 /* Sources */, 331C807D294A63A400263BE5 /* Sources */,
331C807F294A63A400263BE5 /* Resources */, 331C807F294A63A400263BE5 /* Resources */,
68281778176E227A444E4F41 /* Frameworks */,
); );
buildRules = ( buildRules = (
); );
...@@ -145,12 +190,15 @@ ...@@ -145,12 +190,15 @@
isa = PBXNativeTarget; isa = PBXNativeTarget;
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = ( buildPhases = (
BA6EED2DBFE8C9516A5853B6 /* [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 */,
91F7C9907F8B973FA1527901 /* [CP] Embed Pods Frameworks */,
41A68DEDB7787ED4D7EC3DE7 /* [CP] Copy Pods Resources */,
); );
buildRules = ( buildRules = (
); );
...@@ -238,6 +286,40 @@ ...@@ -238,6 +286,40 @@
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";
}; };
41A68DEDB7787ED4D7EC3DE7 /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Copy Pods Resources";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
showEnvVarsInLog = 0;
};
91F7C9907F8B973FA1527901 /* [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;
};
9740EEB61CF901F6004384FC /* Run Script */ = { 9740EEB61CF901F6004384FC /* Run Script */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1; alwaysOutOfDate = 1;
...@@ -253,6 +335,50 @@ ...@@ -253,6 +335,50 @@
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";
}; };
BA6EED2DBFE8C9516A5853B6 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
ED343249B35093BA5311A047 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */ /* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */
...@@ -346,7 +472,7 @@ ...@@ -346,7 +472,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 12.0; IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MTL_ENABLE_DEBUG_INFO = NO; MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos; SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos; SUPPORTED_PLATFORMS = iphoneos;
...@@ -361,23 +487,32 @@ ...@@ -361,23 +487,32 @@
buildSettings = { buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; CURRENT_PROJECT_VERSION = 7;
DEVELOPMENT_TEAM = 72BV93K9AR;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
FLUTTER_BUILD_NUMBER = 7;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = Runner/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
PRODUCT_BUNDLE_IDENTIFIER = com.genrentals.genRentals; PRODUCT_BUNDLE_IDENTIFIER = in.webgrid.genrentals;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
SUPPORTS_MACCATALYST = NO;
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 1;
VERSIONING_SYSTEM = "apple-generic"; VERSIONING_SYSTEM = "apple-generic";
}; };
name = Profile; name = Profile;
}; };
331C8088294A63A400263BE5 /* Debug */ = { 331C8088294A63A400263BE5 /* Debug */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 593DB27BA0EB5AEC09961778 /* Pods-RunnerTests.debug.xcconfig */;
buildSettings = { buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)"; BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
...@@ -395,6 +530,7 @@ ...@@ -395,6 +530,7 @@
}; };
331C8089294A63A400263BE5 /* Release */ = { 331C8089294A63A400263BE5 /* Release */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 8DC72D99E5F0BE6344FD37C9 /* Pods-RunnerTests.release.xcconfig */;
buildSettings = { buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)"; BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
...@@ -410,6 +546,7 @@ ...@@ -410,6 +546,7 @@
}; };
331C808A294A63A400263BE5 /* Profile */ = { 331C808A294A63A400263BE5 /* Profile */ = {
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 6965DD935F46818BA4FB5DF7 /* Pods-RunnerTests.profile.xcconfig */;
buildSettings = { buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)"; BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
...@@ -472,7 +609,7 @@ ...@@ -472,7 +609,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 12.0; IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MTL_ENABLE_DEBUG_INFO = YES; MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES; ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos; SDKROOT = iphoneos;
...@@ -523,7 +660,7 @@ ...@@ -523,7 +660,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 12.0; IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MTL_ENABLE_DEBUG_INFO = NO; MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos; SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos; SUPPORTED_PLATFORMS = iphoneos;
...@@ -540,18 +677,26 @@ ...@@ -540,18 +677,26 @@
buildSettings = { buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; CURRENT_PROJECT_VERSION = 7;
DEVELOPMENT_TEAM = 72BV93K9AR;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
FLUTTER_BUILD_NUMBER = 7;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = Runner/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
PRODUCT_BUNDLE_IDENTIFIER = com.genrentals.genRentals; PRODUCT_BUNDLE_IDENTIFIER = in.webgrid.genrentals;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
SUPPORTS_MACCATALYST = NO;
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 1;
VERSIONING_SYSTEM = "apple-generic"; VERSIONING_SYSTEM = "apple-generic";
}; };
name = Debug; name = Debug;
...@@ -562,17 +707,25 @@ ...@@ -562,17 +707,25 @@
buildSettings = { buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; CURRENT_PROJECT_VERSION = 7;
DEVELOPMENT_TEAM = 72BV93K9AR;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
FLUTTER_BUILD_NUMBER = 7;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = Runner/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
PRODUCT_BUNDLE_IDENTIFIER = com.genrentals.genRentals; PRODUCT_BUNDLE_IDENTIFIER = in.webgrid.genrentals;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
SUPPORTS_MACCATALYST = NO;
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 1;
VERSIONING_SYSTEM = "apple-generic"; VERSIONING_SYSTEM = "apple-generic";
}; };
name = Release; name = Release;
......
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
buildConfiguration = "Debug" buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit"
shouldUseLaunchSchemeArgsEnv = "YES"> shouldUseLaunchSchemeArgsEnv = "YES">
<MacroExpansion> <MacroExpansion>
<BuildableReference <BuildableReference
...@@ -51,9 +52,10 @@ ...@@ -51,9 +52,10 @@
</Testables> </Testables>
</TestAction> </TestAction>
<LaunchAction <LaunchAction
buildConfiguration = "Debug" buildConfiguration = "Release"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit"
launchStyle = "0" launchStyle = "0"
useCustomWorkingDirectory = "NO" useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO" ignoresPersistentStateOnLaunch = "NO"
......
...@@ -4,4 +4,7 @@ ...@@ -4,4 +4,7 @@
<FileRef <FileRef
location = "group:Runner.xcodeproj"> location = "group:Runner.xcodeproj">
</FileRef> </FileRef>
<FileRef
location = "group:Pods/Pods.xcodeproj">
</FileRef>
</Workspace> </Workspace>
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,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> <dict>
<key>CADisableMinimumFrameDurationOnPhone</key>
<true/>
<key>CFBundleDevelopmentRegion</key> <key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string> <string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleDisplayName</key> <key>CFBundleDisplayName</key>
...@@ -24,6 +26,10 @@ ...@@ -24,6 +26,10 @@
<string>$(FLUTTER_BUILD_NUMBER)</string> <string>$(FLUTTER_BUILD_NUMBER)</string>
<key>LSRequiresIPhoneOS</key> <key>LSRequiresIPhoneOS</key>
<true/> <true/>
<key>NSPhotoLibraryUsageDescription</key>
<string>This app needs photo access to attach images to tickets</string>
<key>UIApplicationSupportsIndirectInputEvents</key>
<string></string>
<key>UILaunchStoryboardName</key> <key>UILaunchStoryboardName</key>
<string>LaunchScreen</string> <string>LaunchScreen</string>
<key>UIMainStoryboardFile</key> <key>UIMainStoryboardFile</key>
...@@ -41,9 +47,5 @@ ...@@ -41,9 +47,5 @@
<string>UIInterfaceOrientationLandscapeLeft</string> <string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string> <string>UIInterfaceOrientationLandscapeRight</string>
</array> </array>
<key>CADisableMinimumFrameDurationOnPhone</key>
<true/>
<key>UIApplicationSupportsIndirectInputEvents</key>
<true/>
</dict> </dict>
</plist> </plist>
...@@ -3,6 +3,7 @@ import 'package:flutter/material.dart'; ...@@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
import 'package:gen_rentals/Utility/CustomSnackbar.dart'; import 'package:gen_rentals/Utility/CustomSnackbar.dart';
import 'package:image_picker/image_picker.dart'; import 'package:image_picker/image_picker.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import '../../Notifier/HelpAndEnquiryProvider.dart'; import '../../Notifier/HelpAndEnquiryProvider.dart';
import '../../Utility/AppColors.dart'; import '../../Utility/AppColors.dart';
...@@ -18,7 +19,7 @@ class HelpTicketScreen extends StatefulWidget { ...@@ -18,7 +19,7 @@ class HelpTicketScreen extends StatefulWidget {
this.reason, this.reason,
required this.sessionId, required this.sessionId,
required this.accId, required this.accId,
required this.orderId required this.orderId,
}); });
@override @override
...@@ -61,11 +62,14 @@ class _HelpTicketScreenState extends State<HelpTicketScreen> { ...@@ -61,11 +62,14 @@ class _HelpTicketScreenState extends State<HelpTicketScreen> {
final double scale = MediaQuery.of(context).textScaleFactor; final double scale = MediaQuery.of(context).textScaleFactor;
final double width = MediaQuery.of(context).size.width; final double width = MediaQuery.of(context).size.width;
if (width < 360) { // Small phones if (width < 360) {
// Small phones
return baseSize * 0.85; return baseSize * 0.85;
} else if (width < 400) { // Medium phones } else if (width < 400) {
// Medium phones
return baseSize; return baseSize;
} else { // Large phones } else {
// Large phones
return baseSize * 1.1; return baseSize * 1.1;
} }
} }
...@@ -154,9 +158,9 @@ class _HelpTicketScreenState extends State<HelpTicketScreen> { ...@@ -154,9 +158,9 @@ class _HelpTicketScreenState extends State<HelpTicketScreen> {
SectionHeading( SectionHeading(
title: 'Create New Ticket', title: 'Create New Ticket',
textStyle: TextStyle( textStyle: TextStyle(
fontFamily: "Poppins", fontFamily: "Poppins",
fontSize: getResponsiveTextSize(context, 16), fontSize: getResponsiveTextSize(context, 16),
fontWeight: FontWeight.w500 fontWeight: FontWeight.w500,
), ),
), ),
Container( Container(
...@@ -166,7 +170,9 @@ class _HelpTicketScreenState extends State<HelpTicketScreen> { ...@@ -166,7 +170,9 @@ class _HelpTicketScreenState extends State<HelpTicketScreen> {
), ),
decoration: BoxDecoration( decoration: BoxDecoration(
color: Color(0xFFE0F4FF), color: Color(0xFFE0F4FF),
borderRadius: BorderRadius.circular(screenWidth * 0.025), borderRadius: BorderRadius.circular(
screenWidth * 0.025,
),
), ),
child: Text( child: Text(
"Order #${widget.orderId}", "Order #${widget.orderId}",
...@@ -266,7 +272,9 @@ class _HelpTicketScreenState extends State<HelpTicketScreen> { ...@@ -266,7 +272,9 @@ class _HelpTicketScreenState extends State<HelpTicketScreen> {
height: getResponsiveIconSize(context, 60), height: getResponsiveIconSize(context, 60),
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.grey.shade100, color: Colors.grey.shade100,
borderRadius: BorderRadius.circular(screenWidth * 0.02), borderRadius: BorderRadius.circular(
screenWidth * 0.02,
),
), ),
child: IconButton( child: IconButton(
onPressed: _pickImage, onPressed: _pickImage,
...@@ -290,13 +298,24 @@ class _HelpTicketScreenState extends State<HelpTicketScreen> { ...@@ -290,13 +298,24 @@ class _HelpTicketScreenState extends State<HelpTicketScreen> {
itemCount: _selectedImages.length, itemCount: _selectedImages.length,
itemBuilder: (context, index) { itemBuilder: (context, index) {
return Container( return Container(
margin: EdgeInsets.only(right: screenWidth * 0.02), margin: EdgeInsets.only(
width: getResponsiveIconSize(context, 60), right: screenWidth * 0.02,
height: getResponsiveIconSize(context, 60), ),
width: getResponsiveIconSize(
context,
60,
),
height: getResponsiveIconSize(
context,
60,
),
child: Stack( child: Stack(
children: [ children: [
ClipRRect( ClipRRect(
borderRadius: BorderRadius.circular(screenWidth * 0.02), borderRadius:
BorderRadius.circular(
screenWidth * 0.02,
),
child: Image.file( child: Image.file(
_selectedImages[index], _selectedImages[index],
fit: BoxFit.cover, fit: BoxFit.cover,
...@@ -308,16 +327,23 @@ class _HelpTicketScreenState extends State<HelpTicketScreen> { ...@@ -308,16 +327,23 @@ class _HelpTicketScreenState extends State<HelpTicketScreen> {
top: screenHeight * 0.005, top: screenHeight * 0.005,
right: screenHeight * 0.005, right: screenHeight * 0.005,
child: GestureDetector( child: GestureDetector(
onTap: () => _removeImage(index), onTap:
() => _removeImage(index),
child: Container( child: Container(
padding: EdgeInsets.all(screenWidth * 0.01), padding: EdgeInsets.all(
decoration: const BoxDecoration( screenWidth * 0.01,
color: Colors.black54,
shape: BoxShape.circle,
), ),
decoration:
const BoxDecoration(
color: Colors.black54,
shape: BoxShape.circle,
),
child: Icon( child: Icon(
Icons.close, Icons.close,
size: getResponsiveIconSize(context, 14), size: getResponsiveIconSize(
context,
14,
),
color: Colors.white, color: Colors.white,
), ),
), ),
...@@ -431,29 +457,32 @@ class _HelpTicketScreenState extends State<HelpTicketScreen> { ...@@ -431,29 +457,32 @@ class _HelpTicketScreenState extends State<HelpTicketScreen> {
style: ElevatedButton.styleFrom( style: ElevatedButton.styleFrom(
backgroundColor: AppColors.buttonColor, backgroundColor: AppColors.buttonColor,
foregroundColor: Colors.white, foregroundColor: Colors.white,
padding: EdgeInsets.symmetric(vertical: getResponsiveButtonHeight(context) * 0.32), padding: EdgeInsets.symmetric(
vertical: getResponsiveButtonHeight(context) * 0.32,
),
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(screenWidth * 0.07), borderRadius: BorderRadius.circular(screenWidth * 0.07),
), ),
elevation: 0, elevation: 0,
), ),
child: helpProvider.isLoading child:
? SizedBox( helpProvider.isLoading
height: getResponsiveIconSize(context, 22), ? SizedBox(
width: getResponsiveIconSize(context, 22), height: getResponsiveIconSize(context, 22),
child: CircularProgressIndicator( width: getResponsiveIconSize(context, 22),
color: Colors.white, child: CircularProgressIndicator(
strokeWidth: 2, color: Colors.white,
), strokeWidth: 2,
) ),
: Text( )
'Submit', : Text(
style: TextStyle( 'Submit',
fontFamily: "Poppins", style: TextStyle(
fontSize: getResponsiveTextSize(context, 14), fontFamily: "Poppins",
fontWeight: FontWeight.w500, fontSize: getResponsiveTextSize(context, 14),
), fontWeight: FontWeight.w500,
), ),
),
), ),
), ),
), ),
...@@ -480,7 +509,9 @@ class _HelpTicketScreenState extends State<HelpTicketScreen> { ...@@ -480,7 +509,9 @@ class _HelpTicketScreenState extends State<HelpTicketScreen> {
return Container( return Container(
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white,
borderRadius: BorderRadius.circular(MediaQuery.of(context).size.width * 0.03), borderRadius: BorderRadius.circular(
MediaQuery.of(context).size.width * 0.03,
),
), ),
child: TextFormField( child: TextFormField(
controller: controller, controller: controller,
...@@ -510,12 +541,51 @@ class _HelpTicketScreenState extends State<HelpTicketScreen> { ...@@ -510,12 +541,51 @@ class _HelpTicketScreenState extends State<HelpTicketScreen> {
} }
Future<void> _pickImage() async { Future<void> _pickImage() async {
final pickedFile = try {
await _picker.pickImage(source: ImageSource.gallery, imageQuality: 70); final XFile? pickedFile = await _picker.pickImage(
if (pickedFile != null) { source: ImageSource.gallery,
setState(() { imageQuality: 70,
_selectedImages.add(File(pickedFile.path)); );
});
if (pickedFile != null) {
setState(() {
_selectedImages.add(File(pickedFile.path));
});
}
} catch (e) {
print("Image picker error: $e"); // Debug log
CustomSnackBar.showWarning(
context: context,
message:
"Please allow photo access in Settings > Privacy & Security > Photos.",
);
}
}
Future<void> _pickImage2() async {
var status = await Permission.photos.request();
if (status.isGranted) {
final pickedFile = await _picker.pickImage(
source: ImageSource.gallery,
imageQuality: 70,
);
if (pickedFile != null) {
setState(() {
_selectedImages.add(File(pickedFile.path));
});
}
} else if (status.isDenied) {
CustomSnackBar.showWarning(
context: context,
message: "Photo access denied. Please allow access in settings.",
);
} else if (status.isPermanentlyDenied) {
CustomSnackBar.showWarning(
context: context,
message: "Photo access permanently denied. Please enable in Settings.",
);
// Optional: Open app settings
await openAppSettings();
} }
} }
...@@ -557,7 +627,10 @@ class _HelpTicketScreenState extends State<HelpTicketScreen> { ...@@ -557,7 +627,10 @@ class _HelpTicketScreenState extends State<HelpTicketScreen> {
final customReason = _selectedReason == 'Other Issues' ? otherReason : null; final customReason = _selectedReason == 'Other Issues' ? otherReason : null;
final helpProvider = Provider.of<HelpAndEnquiryProvider>(context, listen: false); final helpProvider = Provider.of<HelpAndEnquiryProvider>(
context,
listen: false,
);
// Show success dialog // Show success dialog
setState(() { setState(() {
...@@ -677,8 +750,8 @@ class _HelpTicketScreenState extends State<HelpTicketScreen> { ...@@ -677,8 +750,8 @@ class _HelpTicketScreenState extends State<HelpTicketScreen> {
}, },
child: Container( child: Container(
padding: EdgeInsets.symmetric( padding: EdgeInsets.symmetric(
horizontal: screenWidth * 0.005, horizontal: screenWidth * 0.005,
vertical: screenWidth * 0.002 vertical: screenWidth * 0.002,
), ),
child: Column( child: Column(
mainAxisSize: MainAxisSize.min, // Same as _buildFeatureCard mainAxisSize: MainAxisSize.min, // Same as _buildFeatureCard
...@@ -689,7 +762,9 @@ class _HelpTicketScreenState extends State<HelpTicketScreen> { ...@@ -689,7 +762,9 @@ class _HelpTicketScreenState extends State<HelpTicketScreen> {
width: iconSize, width: iconSize,
height: iconSize, height: iconSize,
decoration: BoxDecoration( decoration: BoxDecoration(
color: color.withOpacity(0.7), // Same opacity as _buildFeatureCard color: color.withOpacity(
0.7,
), // Same opacity as _buildFeatureCard
borderRadius: BorderRadius.circular(screenWidth * 0.03), borderRadius: BorderRadius.circular(screenWidth * 0.03),
), ),
child: Center( child: Center(
...@@ -700,9 +775,12 @@ class _HelpTicketScreenState extends State<HelpTicketScreen> { ...@@ -700,9 +775,12 @@ class _HelpTicketScreenState extends State<HelpTicketScreen> {
), ),
), ),
), ),
SizedBox(height: screenWidth * 0.015), // Same spacing as _buildFeatureCard SizedBox(
height: screenWidth * 0.015,
), // Same spacing as _buildFeatureCard
// Title // Title
Flexible( // Same as _buildFeatureCard Flexible(
// Same as _buildFeatureCard
child: Text( child: Text(
title, title,
textAlign: TextAlign.center, textAlign: TextAlign.center,
...@@ -717,7 +795,9 @@ class _HelpTicketScreenState extends State<HelpTicketScreen> { ...@@ -717,7 +795,9 @@ class _HelpTicketScreenState extends State<HelpTicketScreen> {
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
), ),
), ),
SizedBox(height: screenWidth * 0.005), // Same spacing as _buildFeatureCard SizedBox(
height: screenWidth * 0.005,
), // Same spacing as _buildFeatureCard
], ],
), ),
), ),
...@@ -730,4 +810,4 @@ class _HelpTicketScreenState extends State<HelpTicketScreen> { ...@@ -730,4 +810,4 @@ class _HelpTicketScreenState extends State<HelpTicketScreen> {
_otherReasonController.dispose(); _otherReasonController.dispose();
super.dispose(); super.dispose();
} }
} }
\ No newline at end of file
...@@ -7,6 +7,7 @@ import 'package:gen_rentals/Screens/BillScreens/BillDetailListScreen.dart'; ...@@ -7,6 +7,7 @@ import 'package:gen_rentals/Screens/BillScreens/BillDetailListScreen.dart';
import 'package:gen_rentals/Screens/DashboardScreen.dart'; import 'package:gen_rentals/Screens/DashboardScreen.dart';
import 'package:gen_rentals/Screens/ProductsDetailScreen.dart'; import 'package:gen_rentals/Screens/ProductsDetailScreen.dart';
import 'package:gen_rentals/Screens/TransactionScreens/TransactionsScreen.dart'; import 'package:gen_rentals/Screens/TransactionScreens/TransactionsScreen.dart';
import 'package:permission_handler/permission_handler.dart';
import '../Utility/CustomSnackbar.dart'; import '../Utility/CustomSnackbar.dart';
import '../Utility/SharedpreferencesService.dart'; import '../Utility/SharedpreferencesService.dart';
import 'authScreen/LoginScreen.dart'; import 'authScreen/LoginScreen.dart';
...@@ -18,7 +19,8 @@ class SplashScreen extends StatefulWidget { ...@@ -18,7 +19,8 @@ class SplashScreen extends StatefulWidget {
State<SplashScreen> createState() => _SplashScreenState(); State<SplashScreen> createState() => _SplashScreenState();
} }
class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderStateMixin { class _SplashScreenState extends State<SplashScreen>
with SingleTickerProviderStateMixin {
late AnimationController _controller; late AnimationController _controller;
late Animation<double> _fadeAnimation; late Animation<double> _fadeAnimation;
late Animation<double> _scaleAnimation; late Animation<double> _scaleAnimation;
...@@ -37,8 +39,7 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt ...@@ -37,8 +39,7 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt
// Initialize connectivity check // Initialize connectivity check
Future.microtask(() { Future.microtask(() {
_initConnectivity(); _initConnectivity();
},); });
_controller = AnimationController( _controller = AnimationController(
vsync: this, vsync: this,
...@@ -86,6 +87,11 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt ...@@ -86,6 +87,11 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt
}); });
} }
Future<bool> requestPhotoPermission() async {
var status = await Permission.photos.request();
return status.isGranted;
}
Future<void> _checkAccountAndNavigate() async { Future<void> _checkAccountAndNavigate() async {
try { try {
// Check if account ID exists in shared preferences // Check if account ID exists in shared preferences
...@@ -114,12 +120,13 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt ...@@ -114,12 +120,13 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt
Navigator.pushReplacement( Navigator.pushReplacement(
context, context,
PageRouteBuilder( PageRouteBuilder(
pageBuilder: (_, __, ___) => DashboardScreen(accId: savedAccId, sessionId: savedSessionId.toString(),), pageBuilder:
(_, __, ___) => DashboardScreen(
accId: savedAccId,
sessionId: savedSessionId.toString(),
),
transitionsBuilder: (_, animation, __, child) { transitionsBuilder: (_, animation, __, child) {
return FadeTransition( return FadeTransition(opacity: animation, child: child);
opacity: animation,
child: child,
);
}, },
transitionDuration: const Duration(milliseconds: 800), transitionDuration: const Duration(milliseconds: 800),
), ),
...@@ -136,10 +143,7 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt ...@@ -136,10 +143,7 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt
PageRouteBuilder( PageRouteBuilder(
pageBuilder: (_, __, ___) => const LoginScreen(), pageBuilder: (_, __, ___) => const LoginScreen(),
transitionsBuilder: (_, animation, __, child) { transitionsBuilder: (_, animation, __, child) {
return FadeTransition( return FadeTransition(opacity: animation, child: child);
opacity: animation,
child: child,
);
}, },
transitionDuration: const Duration(milliseconds: 800), transitionDuration: const Duration(milliseconds: 800),
), ),
...@@ -166,7 +170,11 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt ...@@ -166,7 +170,11 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt
// Method 1: Using connectivity_plus // Method 1: Using connectivity_plus
final connectivity = Connectivity(); final connectivity = Connectivity();
final results = await connectivity.checkConnectivity(); final results = await connectivity.checkConnectivity();
final hasInternet = results.any((element) => element == ConnectivityResult.wifi || element == ConnectivityResult.mobile); final hasInternet = results.any(
(element) =>
element == ConnectivityResult.wifi ||
element == ConnectivityResult.mobile,
);
print("netwrok results: $results"); print("netwrok results: $results");
print("Device has internet $hasInternet"); print("Device has internet $hasInternet");
...@@ -175,7 +183,8 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt ...@@ -175,7 +183,8 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt
try { try {
final result = await InternetAddress.lookup('google.com'); final result = await InternetAddress.lookup('google.com');
print("lookup result:$result"); print("lookup result:$result");
final socketCheck = result.isNotEmpty && result[0].rawAddress.isNotEmpty; final socketCheck =
result.isNotEmpty && result[0].rawAddress.isNotEmpty;
print("socketCheck $socketCheck"); print("socketCheck $socketCheck");
_updateConnectionStatus(socketCheck); _updateConnectionStatus(socketCheck);
...@@ -242,11 +251,7 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt ...@@ -242,11 +251,7 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt
gradient: LinearGradient( gradient: LinearGradient(
begin: Alignment.topCenter, begin: Alignment.topCenter,
end: Alignment.bottomCenter, end: Alignment.bottomCenter,
colors: [ colors: [Color(0xFF1487C9), Color(0xFF1487C9), Color(0xFF1487C9)],
Color(0xFF1487C9),
Color(0xFF1487C9),
Color(0xFF1487C9),
],
stops: [0.0, 0.6, 1.0], stops: [0.0, 0.6, 1.0],
), ),
), ),
...@@ -325,13 +330,13 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt ...@@ -325,13 +330,13 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt
], ],
), ),
child: RotationTransition( child: RotationTransition(
turns: _rotationAnimation, turns: _rotationAnimation,
child: SvgPicture.asset( child: SvgPicture.asset(
"assets/svg/new_svg_icon.svg", "assets/svg/new_svg_icon.svg",
color: Colors.white, color: Colors.white,
height: 125, height: 125,
width: 125, width: 125,
), ),
), ),
), ),
), ),
...@@ -369,8 +374,6 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt ...@@ -369,8 +374,6 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt
const SizedBox(height: 10), const SizedBox(height: 10),
const SizedBox(height: 50), const SizedBox(height: 50),
// Loading indicator // Loading indicator
...@@ -479,19 +482,24 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt ...@@ -479,19 +482,24 @@ class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderSt
class WavePainter extends CustomPainter { class WavePainter extends CustomPainter {
@override @override
void paint(Canvas canvas, Size size) { void paint(Canvas canvas, Size size) {
final paint = Paint() final paint =
..color = const Color(0xFF26BAE7).withOpacity(0.1) Paint()
..style = PaintingStyle.fill; ..color = const Color(0xFF26BAE7).withOpacity(0.1)
..style = PaintingStyle.fill;
final path = Path(); final path = Path();
path.moveTo(0, size.height * 0.5); path.moveTo(0, size.height * 0.5);
path.quadraticBezierTo( path.quadraticBezierTo(
size.width * 0.25, size.height * 0.3, size.width * 0.25,
size.width * 0.5, size.height * 0.5, size.height * 0.3,
size.width * 0.5,
size.height * 0.5,
); );
path.quadraticBezierTo( path.quadraticBezierTo(
size.width * 0.75, size.height * 0.7, size.width * 0.75,
size.width, size.height * 0.5, size.height * 0.7,
size.width,
size.height * 0.5,
); );
path.lineTo(size.width, size.height); path.lineTo(size.width, size.height);
path.lineTo(0, size.height); path.lineTo(0, size.height);
...@@ -502,4 +510,4 @@ class WavePainter extends CustomPainter { ...@@ -502,4 +510,4 @@ class WavePainter extends CustomPainter {
@override @override
bool shouldRepaint(covariant CustomPainter oldDelegate) => false; bool shouldRepaint(covariant CustomPainter oldDelegate) => false;
} }
\ No newline at end of file
...@@ -21,10 +21,10 @@ packages: ...@@ -21,10 +21,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: async name: async
sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63 sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.12.0" version: "2.13.0"
boolean_selector: boolean_selector:
dependency: transitive dependency: transitive
description: description:
...@@ -165,10 +165,10 @@ packages: ...@@ -165,10 +165,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: fake_async name: fake_async
sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc" sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.2" version: "1.3.3"
ffi: ffi:
dependency: transitive dependency: transitive
description: description:
...@@ -412,26 +412,26 @@ packages: ...@@ -412,26 +412,26 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: leak_tracker name: leak_tracker
sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec sha256: "8dcda04c3fc16c14f48a7bb586d4be1f0d1572731b6d81d51772ef47c02081e0"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "10.0.8" version: "11.0.1"
leak_tracker_flutter_testing: leak_tracker_flutter_testing:
dependency: transitive dependency: transitive
description: description:
name: leak_tracker_flutter_testing name: leak_tracker_flutter_testing
sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.9" version: "3.0.10"
leak_tracker_testing: leak_tracker_testing:
dependency: transitive dependency: transitive
description: description:
name: leak_tracker_testing name: leak_tracker_testing
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.1" version: "3.0.2"
lints: lints:
dependency: transitive dependency: transitive
description: description:
...@@ -921,10 +921,10 @@ packages: ...@@ -921,10 +921,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: vm_service name: vm_service
sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14" sha256: ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "14.3.1" version: "15.0.0"
web: web:
dependency: transitive dependency: transitive
description: description:
......
...@@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev ...@@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
# In Windows, build-name is used as the major, minor, and patch parts # In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix. # of the product and file versions while build-number is used as the build suffix.
version: 1.0.4+6 version: 1.0.4+7
environment: environment:
sdk: ^3.7.2 sdk: ^3.7.2
...@@ -39,7 +39,7 @@ dependencies: ...@@ -39,7 +39,7 @@ dependencies:
provider: ^6.1.5 provider: ^6.1.5
http: ^1.3.0 http: ^1.3.0
package_info_plus: ^8.3.0 package_info_plus: ^8.3.0
permission_handler: ^12.0.0+1 permission_handler: ^12.0.1
shared_preferences: ^2.5.3 shared_preferences: ^2.5.3
flutter_svg: ^2.1.0 flutter_svg: ^2.1.0
cached_network_image: ^3.2.3 cached_network_image: ^3.2.3
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment