Compare commits

...

17 Commits

Author SHA1 Message Date
Jayesh jain
6d02fed861 Merge pull request #153 from WDI-Ideas/jayeshjain25
io api settings api
2024-07-30 11:30:37 +05:30
jayesh
24382bcb13 io api settings api 2024-07-30 11:29:02 +05:30
Jayesh jain
bb041cd950 Merge pull request #152 from WDI-Ideas/jayeshjain25
Merge pull request #151 from WDI-Ideas/main
2024-07-30 11:28:40 +05:30
Jayesh jain
58a5924409 Merge pull request #151 from WDI-Ideas/main
Merge pull request #150 from WDI-Ideas/jayeshjain25
2024-07-26 17:42:08 +05:30
Jayesh jain
b689450d13 Merge pull request #150 from WDI-Ideas/jayeshjain25
io api settings api
2024-07-26 17:41:33 +05:30
jayesh
23ceeed933 io api settings api 2024-07-26 17:41:05 +05:30
Jayesh jain
ce55da045f Merge pull request #149 from WDI-Ideas/jayeshjain25
Jayeshjain25
2024-07-26 17:30:55 +05:30
jayesh
6194bc3243 Merge branch 'main' of https://github.com/WDI-Ideas/Tanami_App into jayeshjain25 2024-07-26 17:30:23 +05:30
Jayesh jain
9414370f8b Merge pull request #148 from WDI-Ideas/jayeshjain25
Merge pull request #147 from WDI-Ideas/main
2024-07-26 17:30:16 +05:30
jayesh
14a5e75db5 io api settings api 2024-07-26 17:29:39 +05:30
Jayesh jain
0c41162fd0 Merge pull request #147 from WDI-Ideas/main
Merge pull request #146 from WDI-Ideas/jayeshjain25
2024-07-26 16:58:03 +05:30
Jayesh jain
376fb1002c Merge pull request #146 from WDI-Ideas/jayeshjain25
Jayeshjain25
2024-07-26 16:57:08 +05:30
jayesh
481eeaaee7 Merge branch 'main' of https://github.com/WDI-Ideas/Tanami_App into jayeshjain25 2024-07-26 16:56:03 +05:30
Jayesh jain
0de5e3eebc Merge pull request #145 from WDI-Ideas/jayeshjain25
Merge pull request #144 from WDI-Ideas/main
2024-07-26 16:55:34 +05:30
jayesh
285f9f1d81 io api settings api 2024-07-26 16:54:11 +05:30
kishan06
9a6031b0bf app icon added 2024-07-26 15:47:06 +05:30
Jayesh jain
a5fd8a994e Merge pull request #144 from WDI-Ideas/main
Merge pull request #143 from WDI-Ideas/jayeshjain25
2024-07-26 15:34:27 +05:30
85 changed files with 699 additions and 308 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 10 KiB

BIN
assets/images/Vector.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="48px" height="48px"><path fill="#FFC107" d="M43.611,20.083H42V20H24v8h11.303c-1.649,4.657-6.08,8-11.303,8c-6.627,0-12-5.373-12-12c0-6.627,5.373-12,12-12c3.059,0,5.842,1.154,7.961,3.039l5.657-5.657C34.046,6.053,29.268,4,24,4C12.955,4,4,12.955,4,24c0,11.045,8.955,20,20,20c11.045,0,20-8.955,20-20C44,22.659,43.862,21.35,43.611,20.083z"/><path fill="#FF3D00" d="M6.306,14.691l6.571,4.819C14.655,15.108,18.961,12,24,12c3.059,0,5.842,1.154,7.961,3.039l5.657-5.657C34.046,6.053,29.268,4,24,4C16.318,4,9.656,8.337,6.306,14.691z"/><path fill="#4CAF50" d="M24,44c5.166,0,9.86-1.977,13.409-5.192l-6.19-5.238C29.211,35.091,26.715,36,24,36c-5.202,0-9.619-3.317-11.283-7.946l-6.522,5.025C9.505,39.556,16.227,44,24,44z"/><path fill="#1976D2" d="M43.611,20.083H42V20H24v8h11.303c-0.792,2.237-2.231,4.166-4.087,5.571c0.001-0.001,0.002-0.001,0.003-0.002l6.19,5.238C36.971,39.205,44,34,44,24C44,22.659,43.862,21.35,43.611,20.083z"/></svg>

After

Width:  |  Height:  |  Size: 988 B

View File

@@ -223,10 +223,10 @@
"choosePaymentMethodText": "اختر طريقة الدفع",
"balanceText": "الرصيد",
"applePayText": "Apple Pay",
"gPayText": "Gpay Pay",
"gPayText": "جوجل الدفع",
"bankTransferText": "حول الأموال مباشرة من حسابك المصرفي إلى محفظة تانامي الخاصة بك.",
"instantTransferFundsApplePayText": "تحويل فوري للأموال باستخدام Apple Pay!",
"instantTransferFundsGpayPayText": "تحويل فوري للأموال باستخدام Gpay Pay!",
"instantTransferFundsGpayPayText": "تحويل فوري للأموال باستخدام Google Pay!",
"retailInvestirCanInvestMaxText": "يمكن للمستثمرين التجزئة استثمار حد أقصى قدره 200,000 ريال سعودي في هذه الفرصة.",
"upgradeYourInvestorStatusToIncreaseText": "قم بترقية حالة المستثمر الخاصة بك لزيادة حد الاستثمار الخاص بك.",
"currentExchangeText": "سعر الصرف الحالي",
@@ -327,7 +327,8 @@
"securityDesc5": "لدينا فريق دعم عملاء مخصص لمساعدتك. يمكنك الاتصال بنا من خلال قسم الاتصال داخل التطبيق، أو عبر البريد الإلكتروني، أو الهاتف. نسعى لتقديم دعم سريع ومفيد لمعالجة أي أسئلة أو مخاوف قد تكون لديك.",
"websiteText" : "موقع إلكتروني",
"toRestorePasswordYouWillBeLoggedOut" : "لاستعادة كلمة المرور، سيتم تسجيل خروجك من التطبيق",
"noDataAvailable" : "لا تتوافر بيانات"
"noDataAvailable" : "لا تتوافر بيانات",
"payWithGpayText": "ادفع باستخدام Google Pay"
}

View File

@@ -139,6 +139,7 @@
"next": "Next",
"depositNoti": "Create deposit notification",
"payWithAppleText": "Pay with Apple Pay",
"payWithGpayText": "Pay with Google Pay",
"submit": "Submit request",
"Submit": "Submit",
"submitDeposit": "Submit deposit",
@@ -223,10 +224,10 @@
"choosePaymentMethodText": "Choose payment method",
"balanceText": "Balance",
"applePayText": "Apple Pay",
"gPayText": "Gpay Pay",
"gPayText": "Google Pay",
"bankTransferText": "Directly transfer funds from your bank account into your Tanami wallet.",
"instantTransferFundsApplePayText": "Instant transfer of funds using Apple Pay!",
"instantTransferFundsGpayPayText": "Instant transfer of funds using Gpay Pay!",
"instantTransferFundsGpayPayText": "Instant transfer of funds using Google Pay!",
"retailInvestirCanInvestMaxText": "Retail investors can invest a maximum of SAR 200,000 in this opportunity.",
"upgradeYourInvestorStatusToIncreaseText": "Upgrade your investor status to increase your investment limit.",
"currentExchangeText": "Current Exchange",

View File

@@ -0,0 +1,37 @@
{
"provider": "google_pay",
"data": {
"environment": "TEST",
"apiVersion": 2,
"apiVersionMinor": 0,
"allowedPaymentMethods": [
{
"type": "CARD",
"tokenizationSpecification": {
"type": "PAYMENT_GATEWAY",
"parameters": {
"gateway": "example",
"gatewayMerchantId": "gatewayMerchantId"
}
},
"parameters": {
"allowedCardNetworks": ["VISA", "MASTERCARD"],
"allowedAuthMethods": ["PAN_ONLY", "CRYPTOGRAM_3DS"],
"billingAddressRequired": true,
"billingAddressParameters": {
"format": "FULL",
"phoneNumberRequired": true
}
}
}
],
"merchantInfo": {
"merchantId": "01234567890123456789",
"merchantName": "Example Merchant Name"
},
"transactionInfo": {
"countryCode": "US",
"currencyCode": "USD"
}
}
}

View File

@@ -1,5 +1,5 @@
# Uncomment this line to define a global platform for your project
# platform :ios, '12.0'
platform :ios, '13.0'
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
@@ -30,11 +30,10 @@ flutter_ios_podfile_setup
target 'Runner' do
use_frameworks!
use_modular_headers!
flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
target 'RunnerTests' do
inherit! :search_paths
end
flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
# target 'RunnerTests' do
# inherit! :search_paths
# end
end
post_install do |installer|

146
ios/Podfile.lock Normal file
View File

@@ -0,0 +1,146 @@
PODS:
- connectivity_plus (0.0.1):
- Flutter
- FlutterMacOS
- device_info_plus (0.0.1):
- Flutter
- Firebase/CoreOnly (10.25.0):
- FirebaseCore (= 10.25.0)
- firebase_core (2.32.0):
- Firebase/CoreOnly (= 10.25.0)
- Flutter
- FirebaseCore (10.25.0):
- FirebaseCoreInternal (~> 10.0)
- GoogleUtilities/Environment (~> 7.12)
- GoogleUtilities/Logger (~> 7.12)
- FirebaseCoreInternal (10.29.0):
- "GoogleUtilities/NSData+zlib (~> 7.8)"
- Flutter (1.0.0)
- flutter_jailbreak_detection (1.0.0):
- Flutter
- IOSSecuritySuite
- flutter_localization (0.0.1):
- Flutter
- flutter_secure_storage (6.0.0):
- Flutter
- GoogleUtilities/Environment (7.13.3):
- GoogleUtilities/Privacy
- PromisesObjC (< 3.0, >= 1.2)
- GoogleUtilities/Logger (7.13.3):
- GoogleUtilities/Environment
- GoogleUtilities/Privacy
- "GoogleUtilities/NSData+zlib (7.13.3)":
- GoogleUtilities/Privacy
- GoogleUtilities/Privacy (7.13.3)
- IOSSecuritySuite (2.1.0)
- local_auth_darwin (0.0.1):
- Flutter
- package_info_plus (0.4.5):
- Flutter
- path_provider_foundation (0.0.1):
- Flutter
- FlutterMacOS
- permission_handler_apple (9.3.0):
- Flutter
- PromisesObjC (2.4.0)
- secure_application (0.0.1):
- Flutter
- shared_preferences_foundation (0.0.1):
- Flutter
- FlutterMacOS
- sms_autofill (0.0.1):
- Flutter
- sqflite (0.0.3):
- Flutter
- FlutterMacOS
- url_launcher_ios (0.0.1):
- Flutter
DEPENDENCIES:
- connectivity_plus (from `.symlinks/plugins/connectivity_plus/darwin`)
- device_info_plus (from `.symlinks/plugins/device_info_plus/ios`)
- firebase_core (from `.symlinks/plugins/firebase_core/ios`)
- Flutter (from `Flutter`)
- flutter_jailbreak_detection (from `.symlinks/plugins/flutter_jailbreak_detection/ios`)
- flutter_localization (from `.symlinks/plugins/flutter_localization/ios`)
- flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`)
- local_auth_darwin (from `.symlinks/plugins/local_auth_darwin/darwin`)
- 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`)
- secure_application (from `.symlinks/plugins/secure_application/ios`)
- shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`)
- sms_autofill (from `.symlinks/plugins/sms_autofill/ios`)
- sqflite (from `.symlinks/plugins/sqflite/darwin`)
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
SPEC REPOS:
trunk:
- Firebase
- FirebaseCore
- FirebaseCoreInternal
- GoogleUtilities
- IOSSecuritySuite
- PromisesObjC
EXTERNAL SOURCES:
connectivity_plus:
:path: ".symlinks/plugins/connectivity_plus/darwin"
device_info_plus:
:path: ".symlinks/plugins/device_info_plus/ios"
firebase_core:
:path: ".symlinks/plugins/firebase_core/ios"
Flutter:
:path: Flutter
flutter_jailbreak_detection:
:path: ".symlinks/plugins/flutter_jailbreak_detection/ios"
flutter_localization:
:path: ".symlinks/plugins/flutter_localization/ios"
flutter_secure_storage:
:path: ".symlinks/plugins/flutter_secure_storage/ios"
local_auth_darwin:
:path: ".symlinks/plugins/local_auth_darwin/darwin"
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"
secure_application:
:path: ".symlinks/plugins/secure_application/ios"
shared_preferences_foundation:
:path: ".symlinks/plugins/shared_preferences_foundation/darwin"
sms_autofill:
:path: ".symlinks/plugins/sms_autofill/ios"
sqflite:
:path: ".symlinks/plugins/sqflite/darwin"
url_launcher_ios:
:path: ".symlinks/plugins/url_launcher_ios/ios"
SPEC CHECKSUMS:
connectivity_plus: ddd7f30999e1faaef5967c23d5b6d503d10434db
device_info_plus: 97af1d7e84681a90d0693e63169a5d50e0839a0d
Firebase: 0312a2352584f782ea56f66d91606891d4607f06
firebase_core: a626d00494efa398e7c54f25f1454a64c8abf197
FirebaseCore: 7ec4d0484817f12c3373955bc87762d96842d483
FirebaseCoreInternal: df84dd300b561c27d5571684f389bf60b0a5c934
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
flutter_jailbreak_detection: c5bf66ff6c0c4230769b6ba0bd63eb6ac4148a76
flutter_localization: f43b18844a2b3d2c71fd64f04ffd6b1e64dd54d4
flutter_secure_storage: d33dac7ae2ea08509be337e775f6b59f1ff45f12
GoogleUtilities: ea963c370a38a8069cc5f7ba4ca849a60b6d7d15
IOSSecuritySuite: 45e8531b05ffa72b5661cbdb5b5b5648a8de1a84
local_auth_darwin: 4d56c90c2683319835a61274b57620df9c4520ab
package_info_plus: 58f0028419748fad15bf008b270aaa8e54380b1c
path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
secure_application: 27d424e8c2e770f63e38e280b5a51f921aa9b0c8
shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78
sms_autofill: c461043483362c3f1709ee76eaae6eb570b31686
sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec
url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe
PODFILE CHECKSUM: 43a9c63a5ae3ced395468a38a1d1f52a168ba9f5
COCOAPODS: 1.15.2

View File

@@ -7,6 +7,7 @@
objects = {
/* Begin PBXBuildFile section */
086333DCEBE30744A8B72799 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4EEDFFE82DF84F0A9977AFF8 /* Pods_Runner.framework */; };
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; };
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
@@ -40,14 +41,18 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
0CE95444FD6E656EA60BAB64 /* 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>"; };
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>"; };
182DD8010AE0B1F861314BE9 /* 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>"; };
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; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
4EEDFFE82DF84F0A9977AFF8 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
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>"; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
884C9A80C1736AD2EB38D444 /* 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>"; };
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; };
@@ -62,6 +67,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
086333DCEBE30744A8B72799 /* Pods_Runner.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -76,6 +82,16 @@
path = RunnerTests;
sourceTree = "<group>";
};
3C47D009CCFEBBCC155D80D9 /* Pods */ = {
isa = PBXGroup;
children = (
884C9A80C1736AD2EB38D444 /* Pods-Runner.debug.xcconfig */,
0CE95444FD6E656EA60BAB64 /* Pods-Runner.release.xcconfig */,
182DD8010AE0B1F861314BE9 /* Pods-Runner.profile.xcconfig */,
);
path = Pods;
sourceTree = "<group>";
};
9740EEB11CF90186004384FC /* Flutter */ = {
isa = PBXGroup;
children = (
@@ -94,6 +110,8 @@
97C146F01CF9000F007C117D /* Runner */,
97C146EF1CF9000F007C117D /* Products */,
331C8082294A63A400263BE5 /* RunnerTests */,
3C47D009CCFEBBCC155D80D9 /* Pods */,
9CDE7EA15007B060D5AF313C /* Frameworks */,
);
sourceTree = "<group>";
};
@@ -121,6 +139,14 @@
path = Runner;
sourceTree = "<group>";
};
9CDE7EA15007B060D5AF313C /* Frameworks */ = {
isa = PBXGroup;
children = (
4EEDFFE82DF84F0A9977AFF8 /* Pods_Runner.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
@@ -145,12 +171,15 @@
isa = PBXNativeTarget;
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = (
AFB70CB9889F1047B6B2F5A5 /* [CP] Check Pods Manifest.lock */,
9740EEB61CF901F6004384FC /* Run Script */,
97C146EA1CF9000F007C117D /* Sources */,
97C146EB1CF9000F007C117D /* Frameworks */,
97C146EC1CF9000F007C117D /* Resources */,
9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
51B0BF3A5629B47C8A34FE1F /* [CP] Embed Pods Frameworks */,
A7D67757570BD1DB843A9A8F /* [CP] Copy Pods Resources */,
);
buildRules = (
);
@@ -238,6 +267,23 @@
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
};
51B0BF3A5629B47C8A34FE1F /* [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 */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
@@ -253,6 +299,45 @@
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
};
A7D67757570BD1DB843A9A8F /* [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;
};
AFB70CB9889F1047B6B2F5A5 /* [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;
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@@ -361,17 +446,29 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = A89AY6VY4F;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = Tanami;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.finance";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = com.example.tanamiApp;
MARKETING_VERSION = 1;
PRODUCT_BUNDLE_IDENTIFIER = com.wdi.tanami;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
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_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 1;
VERSIONING_SYSTEM = "apple-generic";
};
name = Profile;
@@ -386,9 +483,14 @@
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.example.tanamiApp.RunnerTests;
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_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 1;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
};
name = Debug;
@@ -403,7 +505,12 @@
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.example.tanamiApp.RunnerTests;
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_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 1;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
};
name = Release;
@@ -418,7 +525,12 @@
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.example.tanamiApp.RunnerTests;
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_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 1;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
};
name = Profile;
@@ -540,18 +652,30 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = A89AY6VY4F;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = Tanami;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.finance";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = com.example.tanamiApp;
MARKETING_VERSION = 1;
PRODUCT_BUNDLE_IDENTIFIER = com.wdi.tanami;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
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_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 1;
VERSIONING_SYSTEM = "apple-generic";
};
name = Debug;
@@ -562,17 +686,29 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEVELOPMENT_TEAM = A89AY6VY4F;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = Tanami;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.finance";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = com.example.tanamiApp;
MARKETING_VERSION = 1;
PRODUCT_BUNDLE_IDENTIFIER = com.wdi.tanami;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
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_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 1;
VERSIONING_SYSTEM = "apple-generic";
};
name = Release;

View File

@@ -4,4 +4,7 @@
<FileRef
location = "group:Runner.xcodeproj">
</FileRef>
<FileRef
location = "group:Pods/Pods.xcodeproj">
</FileRef>
</Workspace>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

After

Width:  |  Height:  |  Size: 229 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 695 B

After

Width:  |  Height:  |  Size: 583 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 939 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -2,6 +2,8 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CADisableMinimumFrameDurationOnPhone</key>
<true/>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleDisplayName</key>
@@ -24,6 +26,8 @@
<string>$(FLUTTER_BUILD_NUMBER)</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UIApplicationSupportsIndirectInputEvents</key>
<true/>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>NSFaceIDUsageDescription</key>
@@ -43,9 +47,5 @@
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>CADisableMinimumFrameDurationOnPhone</key>
<true/>
<key>UIApplicationSupportsIndirectInputEvents</key>
<true/>
</dict>
</plist>

View File

@@ -118,6 +118,8 @@ class AppImages {
'assets/images/invest_screen/svg/time_square.svg';
static const String applePayIcon =
'assets/images/invest_screen/svg/apple_pay.svg';
static const String googlePayIcon =
'assets/images/invest_screen/svg/google_pay.svg';
static const String walletSettingsIcon =
'assets/images/settings_screen/svg/wallet_settings.svg';

View File

@@ -252,6 +252,7 @@ class AppText {
static const String next = "next";
static const String depositNoti = "depositNoti";
static const String payWithAppleText = "payWithAppleText";
static const String payWithGpayText = "payWithGpayText";
static const String submit = "submit";
static const String Submit = "Submit";
static const String submitDeposit = "submitDeposit";

View File

@@ -7,4 +7,9 @@ class DeviceInfoData {
var dataV = await deviceInfoPlugin.androidInfo;
return dataV.id.toString();
}
// Future<String> getIOSDeviceId() async {
// var dataV = await deviceInfoPlugin.iosInfo;
// return dataV..toString();
// }
}

View File

@@ -1,21 +1,19 @@
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
class SecureStorageService {
final FlutterSecureStorage _storage = const FlutterSecureStorage(
aOptions: AndroidOptions(
encryptedSharedPreferences: true,
),
);
import 'package:shared_preferences/shared_preferences.dart';
class SharedPreferenceLocalData {
Future<void> write(String key, String value) async {
await _storage.write(key: key, value: value);
final SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.setString(key, value);
}
Future<String?> read(String key) async {
return await _storage.read(key: key);
final SharedPreferences prefs = await SharedPreferences.getInstance();
return prefs.getString(key);
}
Future<void> delete(String key) async {
await _storage.delete(key: key);
}
// Future<void> delete(String key) async {
// await _storage.delete(key: key);
// }
}

View File

@@ -1,4 +1,7 @@
// ignore: file_names
import 'dart:convert';
import 'dart:developer';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
@@ -6,6 +9,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:gap/gap.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:pay/pay.dart';
import '../../../../../../core/routes/route_name.dart';
import '../../../../../../core/routes/routes.dart';
@@ -26,6 +30,13 @@ class DepositLayout extends StatelessWidget {
@override
Widget build(BuildContext context) {
const paymentItems = [
PaymentItem(
label: 'Total',
amount: '99.99',
status: PaymentItemStatus.final_price,
)
];
var localizations = AppLocalizations.of(context);
final depositPaymentBloc = context.read<DepositPaymentBloc>();
int selectedIndex = 0;
@@ -42,7 +53,11 @@ class DepositLayout extends StatelessWidget {
child: GestureDetector(
onTap: () {
if (state.isFormValid) {
goRouter.pushNamed(RouteName.depositPreview);
if (selectedIndex == 1) {
} else if (selectedIndex == 2) {
} else {
goRouter.pushNamed(RouteName.depositPreview);
}
}
},
child: selectedIndex == 1
@@ -81,28 +96,43 @@ class DepositLayout extends StatelessWidget {
),
),
)
: Container(
margin: const EdgeInsets.all(10.0),
height: 65.h,
width: double.infinity,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(22.r),
color: state.isFormValid
? AppColor.primaryColor2
: AppColor.inactiveBtnColor),
child: Center(
child: Text(
localizations.translate(AppText.next),
style: GoogleFonts.dmSans(
color: state.isFormValid
? AppColor.plainWhite
: AppColor.inactiveBtnTxtColor,
fontSize: 14.sp,
fontWeight: FontWeight.w700,
: selectedIndex == 2
? GooglePayButton(
paymentConfiguration:
PaymentConfiguration.fromJsonString(
jsonEncode(JsonAssets.gpayAsset)),
paymentItems: paymentItems,
type: GooglePayButtonType.pay,
margin: const EdgeInsets.only(top: 15.0),
onPaymentResult: (paymentResult) {
log(paymentResult.toString());
},
loadingIndicator: const Center(
child: CircularProgressIndicator(),
),
)
: Container(
margin: const EdgeInsets.all(10.0),
height: 65.h,
width: double.infinity,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(22.r),
color: state.isFormValid
? AppColor.primaryColor2
: AppColor.inactiveBtnColor),
child: Center(
child: Text(
localizations.translate(AppText.next),
style: GoogleFonts.dmSans(
color: state.isFormValid
? AppColor.plainWhite
: AppColor.inactiveBtnTxtColor,
fontSize: 14.sp,
fontWeight: FontWeight.w700,
),
),
),
),
),
),
),
);
},
@@ -319,3 +349,9 @@ class DepositLayout extends StatelessWidget {
);
}
}
class JsonAssets {
JsonAssets._();
static const String gpayAsset = 'assets/payment/google_pay_config.json';
}

View File

@@ -1,3 +1,5 @@
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_svg/flutter_svg.dart';
@@ -108,84 +110,164 @@ class DepositPayMethodSection extends StatelessWidget {
),
),
const Gap(12),
GestureDetector(
onTap: () {
radioBloc.add(const RadioSelected(1));
},
child: Container(
clipBehavior: Clip.antiAlias,
// padding: const EdgeInsets.all(12),
decoration: ShapeDecoration(
color: Colors.white,
shape: RoundedRectangleBorder(
side: const BorderSide(color: Color(0xFFD8D8D8)),
borderRadius: BorderRadius.circular(22),
),
shadows: const [
BoxShadow(
color: Color(0x14000000),
blurRadius: 8,
offset: Offset(-2, -2),
spreadRadius: 0.2,
),
BoxShadow(
color: Color(0x3391978E),
blurRadius: 8,
offset: Offset(2, 2),
spreadRadius: 1,
)
],
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
padding: const EdgeInsets.all(12),
decoration: BoxDecoration(
color: selectedIndex == 1
? const Color(0xFFE4F5E9)
: const Color(0xCCE2E2E2),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Row(
children: [
Radio<int>(
activeColor: AppColor.radioActiveColor,
value: 1,
groupValue: selectedIndex,
onChanged: (int? value) {
if (value != null) {
radioBloc.add(RadioSelected(value));
}
},
),
const Gap(5),
SvgPicture.asset(AppImages.applePayIcon),
const Gap(5),
TextWidget().text14W700(
localizations.translate(AppText.applePayText),
clr: AppColor.textLabelColor),
],
Platform.isIOS
? GestureDetector(
onTap: () {
radioBloc.add(const RadioSelected(1));
},
child: Container(
clipBehavior: Clip.antiAlias,
// padding: const EdgeInsets.all(12),
decoration: ShapeDecoration(
color: Colors.white,
shape: RoundedRectangleBorder(
side: const BorderSide(color: Color(0xFFD8D8D8)),
borderRadius: BorderRadius.circular(22),
),
shadows: const [
BoxShadow(
color: Color(0x14000000),
blurRadius: 8,
offset: Offset(-2, -2),
spreadRadius: 0.2,
),
BoxShadow(
color: Color(0x3391978E),
blurRadius: 8,
offset: Offset(2, 2),
spreadRadius: 1,
)
],
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
padding: const EdgeInsets.all(12),
decoration: BoxDecoration(
color: selectedIndex == 1
? const Color(0xFFE4F5E9)
: const Color(0xCCE2E2E2),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Row(
children: [
Radio<int>(
activeColor: AppColor.radioActiveColor,
value: 1,
groupValue: selectedIndex,
onChanged: (int? value) {
if (value != null) {
radioBloc.add(RadioSelected(value));
}
},
),
const Gap(5),
SvgPicture.asset(AppImages.applePayIcon),
const Gap(5),
TextWidget().text14W700(
localizations
.translate(AppText.applePayText),
clr: AppColor.textLabelColor),
],
),
],
),
),
Padding(
padding: const EdgeInsets.all(12.0),
child: TextWidget().text14W500(
localizations.translate(
AppText.instantTransferFundsApplePayText),
clr: AppColor.textLabelColor,
txtAlign: TextAlign.start,
),
),
const Gap(12),
],
),
),
Padding(
padding: const EdgeInsets.all(12.0),
child: TextWidget().text14W500(
localizations
.translate(AppText.instantTransferFundsApplePayText),
clr: AppColor.textLabelColor,
txtAlign: TextAlign.start,
)
: GestureDetector(
onTap: () {
radioBloc.add(const RadioSelected(2));
},
child: Container(
clipBehavior: Clip.antiAlias,
// padding: const EdgeInsets.all(12),
decoration: ShapeDecoration(
color: Colors.white,
shape: RoundedRectangleBorder(
side: const BorderSide(color: Color(0xFFD8D8D8)),
borderRadius: BorderRadius.circular(22),
),
shadows: const [
BoxShadow(
color: Color(0x14000000),
blurRadius: 8,
offset: Offset(-2, -2),
spreadRadius: 0.2,
),
BoxShadow(
color: Color(0x3391978E),
blurRadius: 8,
offset: Offset(2, 2),
spreadRadius: 1,
)
],
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
padding: const EdgeInsets.all(12),
decoration: BoxDecoration(
color: selectedIndex == 1
? const Color(0xFFE4F5E9)
: const Color(0xCCE2E2E2),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Row(
children: [
Radio<int>(
activeColor: AppColor.radioActiveColor,
value: 2,
groupValue: selectedIndex,
onChanged: (int? value) {
if (value != null) {
radioBloc.add(RadioSelected(value));
}
},
),
const Gap(5),
SvgPicture.asset(AppImages.googlePayIcon),
const Gap(5),
TextWidget().text14W700(
localizations.translate(AppText.gPayText),
clr: AppColor.textLabelColor),
],
),
],
),
),
Padding(
padding: const EdgeInsets.all(12.0),
child: TextWidget().text14W500(
localizations.translate(
AppText.instantTransferFundsGpayPayText),
clr: AppColor.textLabelColor,
txtAlign: TextAlign.start,
),
),
const Gap(12),
],
),
),
const Gap(12),
],
),
),
),
),
]);
},
);

View File

@@ -13,7 +13,7 @@ import 'biometric_state.dart';
class BiometricBloc extends Bloc<BiometricEvent, BiometricState> {
final LocalAuthentication localAuthentication;
final SecureStorageService secureStorageService;
final SharedPreferenceLocalData secureStorageService;
BiometricBloc(this.localAuthentication, this.secureStorageService)
: super(BiometricInitial()) {

View File

@@ -19,7 +19,8 @@ class BiometricLayout extends StatelessWidget {
@override
Widget build(BuildContext context) {
final SecureStorageService secureStorageService = SecureStorageService();
final SharedPreferenceLocalData secureStorageService =
SharedPreferenceLocalData();
String biometricImage = "";
if (Platform.isIOS) {
biometricImage = AppImages.biometricFace;

View File

@@ -31,8 +31,8 @@ class ChangePasswordBloc
emit(ChangePasswordLoading());
try {
Map<String, dynamic> dataForm = {
"oldPassword": event.currentPassword,
"newPassword": event.password,
"oldPassword": event.password,
"newPassword": event.currentPassword,
"confirmNewPassword": event.repeatPassword,
};
ResponseData response =

View File

@@ -5,7 +5,6 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:gap/gap.dart';
import 'package:tanami_app/core/styles/app_color.dart';
import 'package:tanami_app/features/countrySelection/bloc/GetCountry/get_country_bloc.dart';
import 'package:tanami_app/features/countrySelection/bloc/GetCountry/get_country_event.dart';
import 'package:tanami_app/shared/components/text_widget.dart';
import '../../../../shared/api/api_endpoints.dart';
@@ -34,9 +33,9 @@ class CountrySelectionList extends StatelessWidget {
const SnackBar(content: Text("Successfully fetch"));
} else if (state is CountryError) {
const SnackBar(content: Text("error while fetching data"));
Future.delayed(const Duration(milliseconds: 3), () {
context.read<GetCountryBlock>().add(GetCountry());
});
// Future.delayed(const Duration(milliseconds: 3), () {
// context.read<GetCountryBlock>().add(GetCountry());
// });
} else {
const SnackBar(content: Text("not fetch"));
}
@@ -53,6 +52,9 @@ class CountrySelectionList extends StatelessWidget {
var country = state.countryModel.data![index];
return ListTile(
onTap: () {
radioBloc.add(RadioSelected(index));
},
title: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [

View File

@@ -11,7 +11,7 @@ import 'restore_password_phone_verification_state.dart';
class RestorePasswordPhoneVerificationBloc extends Bloc<
RestorePasswordPhoneVerificationEvent,
RestorePasswordPhoneVerificationState> {
final SecureStorageService secureStorageService;
final SharedPreferenceLocalData secureStorageService;
String isdcode = "";
String countryId = "";
@@ -33,16 +33,16 @@ class RestorePasswordPhoneVerificationBloc extends Bloc<
emit(RestorePasswordPhoneVerificationLoading());
try {
Map<String, dynamic> dataForm = {
"countryId": event.id,
"phoneNumber": event.phoneNumber
"ISDcode": event.countryISDCode,
"mobileNumber": event.phoneNumber
};
ResponseData response =
await ForgotPasswordApi().forgotPasswordApi(dataForm);
if (response.status == ResponseStatus.SUCCESS) {
var data = response.data["data"];
await secureStorageService.write('temp_token', data["token"]);
Globalconst.token = data["token"];
await secureStorageService.write('temp_token', data);
Globalconst.token = data;
emit(RestorePasswordPhoneVerificationSuccess());
} else {
emit(RestorePasswordPhoneVerificationFailure(response.message));

View File

@@ -12,11 +12,13 @@ class RestorePasswordPhoneVerificationSubmitted
final String phoneNumber;
final String countryResidence;
final String id;
final String countryISDCode;
const RestorePasswordPhoneVerificationSubmitted(
this.phoneNumber,
this.countryResidence,
this.id,
this.countryISDCode,
);
@override

View File

@@ -12,7 +12,8 @@ class RestorePasswordPhoneVerificationScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
final SecureStorageService secureStorageService = SecureStorageService();
final SharedPreferenceLocalData secureStorageService =
SharedPreferenceLocalData();
final radioBloc = context.read<RadioBloc>();
return WillPopScope(
onWillPop: () async {

View File

@@ -80,7 +80,8 @@ class RestorePasswordPhoneVerificationBottomSection extends StatelessWidget {
.phoneNumberTextField
.text,
"",
restorePasswordBloc.countryId),
restorePasswordBloc.countryId,
restorePasswordBloc.isdcode),
)
: null;
},

View File

@@ -22,7 +22,8 @@ import '../bloc/text_bloc/text_event.dart';
Widget bottomSection(BuildContext context) {
var localizations = AppLocalizations.of(context);
final radioBloc = context.read<ChooseLanguageBloc>();
SecureStorageService secureStorageService = SecureStorageService();
final SharedPreferenceLocalData secureStorageService =
SharedPreferenceLocalData();
return Column(
mainAxisSize: MainAxisSize.min,
children: [

View File

@@ -14,7 +14,8 @@ class CountrySelectionList extends StatelessWidget {
@override
Widget build(BuildContext context) {
SecureStorageService secureStorageService = SecureStorageService();
final SharedPreferenceLocalData secureStorageService =
SharedPreferenceLocalData();
final radioBloc = context.read<ChooseLanguageBloc>();
_initializeLanguageSelection(radioBloc, secureStorageService);
@@ -51,9 +52,9 @@ class CountrySelectionList extends StatelessWidget {
}
void _initializeLanguageSelection(ChooseLanguageBloc radioBloc,
SecureStorageService secureStorageService) async {
SharedPreferenceLocalData secureStorageService) async {
String languageSelected =
(await secureStorageService.read("languageSelected")) ?? "";
await (secureStorageService.read("languageSelected")) ?? "";
if (languageSelected.isEmpty) {
radioBloc.add(const ChooseLanguageSelected(0));

View File

@@ -9,7 +9,7 @@ import 'login_event.dart';
import 'login_state.dart';
class LoginBloc extends Bloc<LoginEvent, LoginState> {
final SecureStorageService secureStorageService;
final SharedPreferenceLocalData secureStorageService;
final GlobalKey<FormState> formKey = GlobalKey<FormState>();
final TextEditingController countrySelectionTextField =
TextEditingController();

View File

@@ -14,7 +14,8 @@ class LoginScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
final SecureStorageService secureStorageService = SecureStorageService();
final SharedPreferenceLocalData secureStorageService =
SharedPreferenceLocalData();
final radioBloc = context.read<RadioBloc>();
return WillPopScope(

View File

@@ -28,7 +28,8 @@ class BottomSection extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
SecureStorageService secureStorageService = SecureStorageService();
final SharedPreferenceLocalData secureStorageService =
SharedPreferenceLocalData();
final radioBloc = context.read<RadioBloc>();
var loginbloc = context.read<LoginBloc>();
return Column(

View File

@@ -10,7 +10,7 @@ import 'otp_event.dart';
import 'otp_state.dart';
class OtpBloc extends Bloc<OtpEvent, OtpState> {
final SecureStorageService secureStorageService;
final SharedPreferenceLocalData secureStorageService;
final TextEditingController otpController = TextEditingController();
OtpBloc({required this.secureStorageService}) : super(OtpInitial()) {
on<StartListeningForOtp>(_onStartListeningForOtp);

View File

@@ -20,7 +20,8 @@ class OtpScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
final SecureStorageService secureStorageService = SecureStorageService();
final SharedPreferenceLocalData secureStorageService =
SharedPreferenceLocalData();
return Scaffold(
backgroundColor: AppColor.plainWhite,
resizeToAvoidBottomInset: true,

View File

@@ -24,7 +24,8 @@ class ResendOtpSection extends StatelessWidget {
Widget build(BuildContext context) {
String token = "";
getToken() async {
final SecureStorageService secureStorageService = SecureStorageService();
final SharedPreferenceLocalData secureStorageService =
SharedPreferenceLocalData();
token = await secureStorageService.read('temp_token') ?? "";
}

View File

@@ -8,7 +8,7 @@ import 'register_event.dart';
import 'register_state.dart';
class RegisterBloc extends Bloc<RegisterEvent, RegisterState> {
final SecureStorageService secureStorageService;
final SharedPreferenceLocalData secureStorageService;
final GlobalKey<FormState> formKey = GlobalKey<FormState>();
final TextEditingController countrySelectionTextField =
TextEditingController();

View File

@@ -8,7 +8,7 @@ import 'register_user_event.dart';
import 'register_user_state.dart';
class RegisterUserBloc extends Bloc<RegisterUserEvent, RegisterUserState> {
final SecureStorageService secureStorageService;
final SharedPreferenceLocalData secureStorageService;
final GlobalKey<FormState> formKey = GlobalKey<FormState>();
final TextEditingController firstNameTextField = TextEditingController();
final TextEditingController lastNameTextField = TextEditingController();
@@ -47,7 +47,7 @@ class RegisterUserBloc extends Bloc<RegisterUserEvent, RegisterUserState> {
await RegisterAPIService().RegisterRequest(registerdata);
if (response.status == ResponseStatus.SUCCESS) {
var data = response.data["data"];
secureStorageService.write("temp_token", data["token"].toString());
secureStorageService.write("temp_token", data.toString());
emit(RegisterUserSuccess());
} else {
emit(RegisterUserFailure(response.message));

View File

@@ -12,7 +12,8 @@ class RegisterScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
final SecureStorageService secureStorageService = SecureStorageService();
final SharedPreferenceLocalData secureStorageService =
SharedPreferenceLocalData();
final radioBloc = context.read<RadioBloc>();
return WillPopScope(
onWillPop: () async {

View File

@@ -14,7 +14,8 @@ class RegisterUserDetailsScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
final SecureStorageService secureStorageService = SecureStorageService();
final SharedPreferenceLocalData secureStorageService =
SharedPreferenceLocalData();
return Scaffold(
backgroundColor: AppColor.plainWhite,
resizeToAvoidBottomInset: true,

View File

@@ -33,7 +33,8 @@ class RegisterUserBottomSection extends StatelessWidget {
Widget build(BuildContext context) {
String token = "";
getToken() async {
final SecureStorageService secureStorageService = SecureStorageService();
final SharedPreferenceLocalData secureStorageService =
SharedPreferenceLocalData();
token = await secureStorageService.read("temp_token") ?? "";
}

View File

@@ -11,8 +11,7 @@ part 'pin_event.dart';
part 'pin_state.dart';
class PinBloc extends Bloc<PinEvent, PinState> {
final SecureStorageService secureStorageService;
final SharedPreferenceLocalData secureStorageService;
PinBloc({required this.secureStorageService})
: super(const PinState(
pin: '',

View File

@@ -15,7 +15,8 @@ class ConfirmPinScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
final secureStorageService = SecureStorageService();
final SharedPreferenceLocalData secureStorageService =
SharedPreferenceLocalData();
return Scaffold(
backgroundColor: AppColor.plainWhite,
appBar: AppBarWidget(

View File

@@ -17,7 +17,8 @@ class PinScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
final secureStorageService = SecureStorageService();
final SharedPreferenceLocalData secureStorageService =
SharedPreferenceLocalData();
return WillPopScope(
onWillPop: () async {
if (fromScreen == "login" ||

View File

@@ -19,7 +19,8 @@ class ConfirmPinKey extends StatelessWidget {
@override
Widget build(BuildContext context) {
var localizations = AppLocalizations.of(context);
final SecureStorageService secureStorageService = SecureStorageService();
final SharedPreferenceLocalData secureStorageService =
SharedPreferenceLocalData();
return Column(
children: [
const Gap(20),

View File

@@ -20,7 +20,8 @@ class SplashScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
SecureStorageService secureStorageService = SecureStorageService();
final SharedPreferenceLocalData secureStorageService =
SharedPreferenceLocalData();
return Scaffold(
backgroundColor: AppColor.plainWhite,

View File

@@ -63,7 +63,8 @@ class MyApp extends StatefulWidget {
}
class _MyAppState extends State<MyApp> with WidgetsBindingObserver {
SecureStorageService secureStorageService = SecureStorageService();
final SharedPreferenceLocalData secureStorageService =
SharedPreferenceLocalData();
final NetworkConnectivity _networkConnectivity =
NetworkConnectivity(onStatusChange: (_) {});
String languageSelected = "";

View File

@@ -9,7 +9,8 @@ import '../../Api_Helper/base_manager.dart';
import '../../core/utils/secure/secure_storage_service.dart';
class NetworkApiService {
final SecureStorageService secureStorageService = SecureStorageService();
final SharedPreferenceLocalData secureStorageService =
SharedPreferenceLocalData();
final Dio _dio = Dio(BaseOptions(
validateStatus: (status) {

View File

@@ -4,7 +4,6 @@ import 'package:bloc/bloc.dart';
import 'package:tanami_app/core/utils/secure/secure_storage_service.dart';
import '../../../../Api_Helper/base_manager.dart';
import '../../../../core/utils/device_info/device_info_data.dart';
import '../../../../features/MainScreens/Settings/domain/repository/settings_api.dart';
import '../../../../features/register/Repository/RegisterApi.dart';
import 'toggle_event.dart';
@@ -13,7 +12,8 @@ import 'toggle_state.dart';
class ToggleBloc extends Bloc<ToggleEvent, ToggleState> {
final String type;
final SecureStorageService secureStorageService = SecureStorageService();
final SharedPreferenceLocalData secureStorageService =
SharedPreferenceLocalData();
ToggleBloc(this.type) : super(ToggleInitial()) {
on<ToggleSwitch>(_onToggleSwitch);
@@ -28,7 +28,7 @@ class ToggleBloc extends Bloc<ToggleEvent, ToggleState> {
Map<String, dynamic> biometricdata = {
"code": await secureStorageService.read("temp_token"),
"is_2FA_on": false,
"deviceId": await DeviceInfoData().getDeviceId(),
"deviceId": "test-id",
"biometric_type": Platform.isIOS ? "face" : "fingerprint"
};
@@ -63,7 +63,7 @@ class ToggleBloc extends Bloc<ToggleEvent, ToggleState> {
Map<String, dynamic> biometricdata = {
"code": await secureStorageService.read("temp_token"),
"is_2FA_on": true,
"deviceId": await DeviceInfoData().getDeviceId(),
"deviceId": "test-id",
"biometric_type": Platform.isIOS ? "face" : "fingerprint"
};

View File

@@ -19,7 +19,8 @@ deviceLockedDialog(
context,
) {
var localizations = AppLocalizations.of(context);
final SecureStorageService secureStorageService = SecureStorageService();
final SharedPreferenceLocalData secureStorageService =
SharedPreferenceLocalData();
return showDialog(
barrierDismissible: false,
context: context,

View File

@@ -15,7 +15,8 @@ import 'text_widget.dart';
forgotPasswordlogoutdialog(context) {
var localizations = AppLocalizations.of(context);
SecureStorageService secureStorageService = SecureStorageService();
final SharedPreferenceLocalData secureStorageService =
SharedPreferenceLocalData();
return showDialog(
context: context,
builder: (context) => Column(

View File

@@ -168,7 +168,7 @@ class FormLabelTextField extends StatelessWidget {
maxlines: type == "description" ? 6 : 1,
texttype: type == "phone number"
? TextInputType.phone
: type == "Email"
: type == "email"
? TextInputType.emailAddress
: TextInputType.name,
textEditingController: textEditingController,

View File

@@ -13,7 +13,8 @@ import 'bloc/language/lng_bloc.dart';
import 'bloc/language/lng_event.dart';
void showLanguageBottomSheet(BuildContext context) {
final SecureStorageService secureStorageService = SecureStorageService();
final SharedPreferenceLocalData secureStorageService =
SharedPreferenceLocalData();
showModalBottomSheet(
backgroundColor: Colors.transparent,
context: context,

View File

@@ -15,7 +15,8 @@ import 'text_widget.dart';
buildprofilelogoutdialog(context) {
var localizations = AppLocalizations.of(context);
SecureStorageService secureStorageService = SecureStorageService();
final SharedPreferenceLocalData secureStorageService =
SharedPreferenceLocalData();
return showDialog(
context: context,
builder: (context) => Column(

View File

@@ -5,7 +5,6 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:gap/gap.dart';
import 'package:tanami_app/Api_Helper/base_manager.dart';
import 'package:tanami_app/core/styles/app_color.dart';
import 'package:tanami_app/core/utils/device_info/device_info_data.dart';
import 'package:tanami_app/shared/components/loader.dart';
import '../../core/routes/route_name.dart';
@@ -21,8 +20,8 @@ permissionDialog(
context,
) {
var localizations = AppLocalizations.of(context);
final SecureStorageService secureStorageService = SecureStorageService();
final SharedPreferenceLocalData secureStorageService =
SharedPreferenceLocalData();
return showDialog(
barrierDismissible: true,
context: context,
@@ -93,7 +92,7 @@ permissionDialog(
Map<String, dynamic> biometricdata = {
"code": await secureStorageService.read("temp_token"),
"is_2FA_on": false,
"deviceId": await DeviceInfoData().getDeviceId(),
"deviceId": "test-id",
"biometric_type":
Platform.isIOS ? "face" : "fingerprint"
};
@@ -135,7 +134,7 @@ permissionDialog(
Map<String, dynamic> biometricdata = {
"code": await secureStorageService.read("temp_token"),
"is_2FA_on": true,
"deviceId": await DeviceInfoData().getDeviceId(),
"deviceId": "test-id",
"biometric_type":
Platform.isIOS ? "face" : "fingerprint"
};

View File

@@ -7,16 +7,12 @@
#include "generated_plugin_registrant.h"
#include <flutter_localization/flutter_localization_plugin.h>
#include <flutter_secure_storage_linux/flutter_secure_storage_linux_plugin.h>
#include <url_launcher_linux/url_launcher_plugin.h>
void fl_register_plugins(FlPluginRegistry* registry) {
g_autoptr(FlPluginRegistrar) flutter_localization_registrar =
fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterLocalizationPlugin");
flutter_localization_plugin_register_with_registrar(flutter_localization_registrar);
g_autoptr(FlPluginRegistrar) flutter_secure_storage_linux_registrar =
fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterSecureStorageLinuxPlugin");
flutter_secure_storage_linux_plugin_register_with_registrar(flutter_secure_storage_linux_registrar);
g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar =
fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin");
url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar);

View File

@@ -4,7 +4,6 @@
list(APPEND FLUTTER_PLUGIN_LIST
flutter_localization
flutter_secure_storage_linux
url_launcher_linux
)

View File

@@ -9,7 +9,6 @@ import connectivity_plus
import device_info_plus
import firebase_core
import flutter_localization
import flutter_secure_storage_macos
import package_info_plus
import path_provider_foundation
import shared_preferences_foundation
@@ -24,7 +23,6 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin"))
FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin"))
FlutterLocalizationPlugin.register(with: registry.registrar(forPlugin: "FlutterLocalizationPlugin"))
FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin"))
FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin"))
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))

View File

@@ -17,14 +17,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "6.4.1"
archive:
dependency: transitive
description:
name: archive
sha256: cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d
url: "https://pub.dev"
source: hosted
version: "3.6.1"
args:
dependency: transitive
description:
@@ -185,14 +177,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.8.1"
cli_util:
dependency: transitive
description:
name: cli_util
sha256: c05b7406fdabc7a49a3929d4af76bcaccbbffcbcdcf185b082e1ae07da323d19
url: "https://pub.dev"
source: hosted
version: "0.4.1"
clock:
dependency: transitive
description:
@@ -250,7 +234,7 @@ packages:
source: hosted
version: "3.1.1"
crypto:
dependency: "direct main"
dependency: transitive
description:
name: crypto
sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab
@@ -414,22 +398,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.3.2"
flutter_jailbreak_detection:
dependency: "direct main"
description:
name: flutter_jailbreak_detection
sha256: "67ff11ea41965152d24db7104da1f9b343f94ada64c2a9e309ec4d753a12d281"
url: "https://pub.dev"
source: hosted
version: "1.10.0"
flutter_launcher_icons:
dependency: "direct dev"
description:
name: flutter_launcher_icons
sha256: "526faf84284b86a4cb36d20a5e45147747b7563d921373d4ee0559c54fcdbcea"
url: "https://pub.dev"
source: hosted
version: "0.13.1"
flutter_lints:
dependency: "direct dev"
description:
@@ -467,54 +435,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "5.9.3"
flutter_secure_storage:
dependency: "direct main"
description:
name: flutter_secure_storage
sha256: "165164745e6afb5c0e3e3fcc72a012fb9e58496fb26ffb92cf22e16a821e85d0"
url: "https://pub.dev"
source: hosted
version: "9.2.2"
flutter_secure_storage_linux:
dependency: transitive
description:
name: flutter_secure_storage_linux
sha256: "4d91bfc23047422cbcd73ac684bc169859ee766482517c22172c86596bf1464b"
url: "https://pub.dev"
source: hosted
version: "1.2.1"
flutter_secure_storage_macos:
dependency: transitive
description:
name: flutter_secure_storage_macos
sha256: "1693ab11121a5f925bbea0be725abfcfbbcf36c1e29e571f84a0c0f436147a81"
url: "https://pub.dev"
source: hosted
version: "3.1.2"
flutter_secure_storage_platform_interface:
dependency: transitive
description:
name: flutter_secure_storage_platform_interface
sha256: cf91ad32ce5adef6fba4d736a542baca9daf3beac4db2d04be350b87f69ac4a8
url: "https://pub.dev"
source: hosted
version: "1.1.2"
flutter_secure_storage_web:
dependency: transitive
description:
name: flutter_secure_storage_web
sha256: f4ebff989b4f07b2656fb16b47852c0aab9fed9b4ec1c70103368337bc1886a9
url: "https://pub.dev"
source: hosted
version: "1.2.1"
flutter_secure_storage_windows:
dependency: transitive
description:
name: flutter_secure_storage_windows
sha256: b20b07cb5ed4ed74fc567b78a72936203f587eba460af1df11281c9326cd3709
url: "https://pub.dev"
source: hosted
version: "3.1.2"
flutter_svg:
dependency: "direct main"
description:
@@ -621,14 +541,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.0.0"
image:
dependency: transitive
description:
name: image
sha256: "2237616a36c0d69aef7549ab439b833fb7f9fb9fc861af2cc9ac3eedddd69ca8"
url: "https://pub.dev"
source: hosted
version: "4.2.0"
intl:
dependency: "direct main"
description:
@@ -749,14 +661,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.2.0"
lottie:
dependency: "direct main"
description:
name: lottie
sha256: "6a24ade5d3d918c306bb1c21a6b9a04aab0489d51a2582522eea820b4093b62b"
url: "https://pub.dev"
source: hosted
version: "3.1.2"
matcher:
dependency: transitive
description:
@@ -917,6 +821,38 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.1.0+3"
pay:
dependency: "direct main"
description:
name: pay
sha256: ad904db0e06848cade6990a3ce1e10e921ae48f7ee06447873e07b9688ac1fc5
url: "https://pub.dev"
source: hosted
version: "2.0.0"
pay_android:
dependency: transitive
description:
name: pay_android
sha256: aa46cd0ece1807d3fa293113fdb84afb5fc4b6ed60cf09a4886b753acb300859
url: "https://pub.dev"
source: hosted
version: "2.0.0"
pay_ios:
dependency: transitive
description:
name: pay_ios
sha256: "75ccb285d03f22b136c58ab8e8e0c4b614ee52a8b67e6ccfb680d4d8c04a70f6"
url: "https://pub.dev"
source: hosted
version: "1.0.11"
pay_platform_interface:
dependency: transitive
description:
name: pay_platform_interface
sha256: "26a379e33c46508987c7afee8cde6f4aca5b5ab0afc697c27efbd33a9c2ea82a"
url: "https://pub.dev"
source: hosted
version: "1.0.4"
permission_handler:
dependency: "direct main"
description:
@@ -1037,14 +973,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.27.7"
secure_application:
dependency: "direct main"
description:
name: secure_application
sha256: b8e34b4bc2467a3a3c0a649e46ae6a442df7ca27aeaddebb8a53c40656da0385
url: "https://pub.dev"
source: hosted
version: "4.0.1"
shared_preferences:
dependency: "direct main"
description:

View File

@@ -45,7 +45,7 @@ dependencies:
firebase_core: ^2.31.1
# Animation
lottie: ^3.1.2
#lottie: ^3.1.2
shimmer: ^3.0.0
smooth_page_indicator: ^1.1.0
@@ -56,11 +56,10 @@ dependencies:
# Security
shared_preferences: ^2.2.3
flutter_secure_storage: ^9.2.2
local_auth: ^2.2.0
crypto: ^3.0.3
flutter_jailbreak_detection: ^1.10.0
secure_application: ^4.0.1
#crypto: ^3.0.3
# flutter_jailbreak_detection: ^1.10.0
# secure_application: ^4.0.1
# Toast Messages
toastification: ^2.0.0
@@ -77,6 +76,8 @@ dependencies:
#OTP Autofill
sms_autofill: ^2.3.1
#Image
carousel_slider: ^4.2.1
#Url Launcher
@@ -104,6 +105,9 @@ dependencies:
#Pdf
syncfusion_flutter_pdfviewer:
#Payment
pay: ^2.0.0
dev_dependencies:
flutter_test:
sdk: flutter
@@ -111,13 +115,14 @@ dev_dependencies:
build_runner:
flutter_lints: ^3.0.0
flutter_launcher_icons: ^0.13.1
# flutter_launcher_icons: ^0.13.1
flutter_launcher_icons:
android: "launcher_icon"
ios: true
image_path: "assets/images/Vector.png"
min_sdk_android: 21
# flutter_launcher_icons:
# android: "launcher_icon"
# ios: true
# image_path: "assets/images/Vector.jpg"
# min_sdk_android: 21
# remove_alpha_ios: true
flutter:
uses-material-design: true
@@ -154,3 +159,4 @@ flutter:
- assets/images/no_internet/png/
- assets/language/en.json
- assets/language/ar.json
- assets/payment/

View File

@@ -9,10 +9,8 @@
#include <connectivity_plus/connectivity_plus_windows_plugin.h>
#include <firebase_core/firebase_core_plugin_c_api.h>
#include <flutter_localization/flutter_localization_plugin_c_api.h>
#include <flutter_secure_storage_windows/flutter_secure_storage_windows_plugin.h>
#include <local_auth_windows/local_auth_plugin.h>
#include <permission_handler_windows/permission_handler_windows_plugin.h>
#include <secure_application/secure_application_plugin.h>
#include <syncfusion_pdfviewer_windows/syncfusion_pdfviewer_windows_plugin.h>
#include <url_launcher_windows/url_launcher_windows.h>
@@ -23,14 +21,10 @@ void RegisterPlugins(flutter::PluginRegistry* registry) {
registry->GetRegistrarForPlugin("FirebaseCorePluginCApi"));
FlutterLocalizationPluginCApiRegisterWithRegistrar(
registry->GetRegistrarForPlugin("FlutterLocalizationPluginCApi"));
FlutterSecureStorageWindowsPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("FlutterSecureStorageWindowsPlugin"));
LocalAuthPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("LocalAuthPlugin"));
PermissionHandlerWindowsPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("PermissionHandlerWindowsPlugin"));
SecureApplicationPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("SecureApplicationPlugin"));
SyncfusionPdfviewerWindowsPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("SyncfusionPdfviewerWindowsPlugin"));
UrlLauncherWindowsRegisterWithRegistrar(

View File

@@ -6,10 +6,8 @@ list(APPEND FLUTTER_PLUGIN_LIST
connectivity_plus
firebase_core
flutter_localization
flutter_secure_storage_windows
local_auth_windows
permission_handler_windows
secure_application
syncfusion_pdfviewer_windows
url_launcher_windows
)