Merge pull request #153 from WDI-Ideas/jayeshjain25

io api settings api
This commit is contained in:
Jayesh jain
2024-07-30 11:30:37 +05:30
committed by GitHub
18 changed files with 316 additions and 256 deletions

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

@@ -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

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

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

@@ -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

@@ -27,6 +27,7 @@ class ToggleBloc extends Bloc<ToggleEvent, ToggleState> {
Map<String, dynamic> biometricdata = {
"code": await secureStorageService.read("temp_token"),
"is_2FA_on": false,
"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,15 +115,14 @@ dev_dependencies:
build_runner:
flutter_lints: ^3.0.0
flutter_launcher_icons: ^0.13.1
flutter_launcher_icons:
android: "launcher_icon"
ios: true
image_path: "assets/images/Vector.jpg"
min_sdk_android: 21
remove_alpha_ios: true
# flutter_launcher_icons: ^0.13.1
# 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
@@ -156,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
)