io api settings api

This commit is contained in:
jayesh
2024-07-30 11:29:02 +05:30
parent bb041cd950
commit 24382bcb13
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": "اختر طريقة الدفع", "choosePaymentMethodText": "اختر طريقة الدفع",
"balanceText": "الرصيد", "balanceText": "الرصيد",
"applePayText": "Apple Pay", "applePayText": "Apple Pay",
"gPayText": "Gpay Pay", "gPayText": "جوجل الدفع",
"bankTransferText": "حول الأموال مباشرة من حسابك المصرفي إلى محفظة تانامي الخاصة بك.", "bankTransferText": "حول الأموال مباشرة من حسابك المصرفي إلى محفظة تانامي الخاصة بك.",
"instantTransferFundsApplePayText": "تحويل فوري للأموال باستخدام Apple Pay!", "instantTransferFundsApplePayText": "تحويل فوري للأموال باستخدام Apple Pay!",
"instantTransferFundsGpayPayText": "تحويل فوري للأموال باستخدام Gpay Pay!", "instantTransferFundsGpayPayText": "تحويل فوري للأموال باستخدام Google Pay!",
"retailInvestirCanInvestMaxText": "يمكن للمستثمرين التجزئة استثمار حد أقصى قدره 200,000 ريال سعودي في هذه الفرصة.", "retailInvestirCanInvestMaxText": "يمكن للمستثمرين التجزئة استثمار حد أقصى قدره 200,000 ريال سعودي في هذه الفرصة.",
"upgradeYourInvestorStatusToIncreaseText": "قم بترقية حالة المستثمر الخاصة بك لزيادة حد الاستثمار الخاص بك.", "upgradeYourInvestorStatusToIncreaseText": "قم بترقية حالة المستثمر الخاصة بك لزيادة حد الاستثمار الخاص بك.",
"currentExchangeText": "سعر الصرف الحالي", "currentExchangeText": "سعر الصرف الحالي",
@@ -327,7 +327,8 @@
"securityDesc5": "لدينا فريق دعم عملاء مخصص لمساعدتك. يمكنك الاتصال بنا من خلال قسم الاتصال داخل التطبيق، أو عبر البريد الإلكتروني، أو الهاتف. نسعى لتقديم دعم سريع ومفيد لمعالجة أي أسئلة أو مخاوف قد تكون لديك.", "securityDesc5": "لدينا فريق دعم عملاء مخصص لمساعدتك. يمكنك الاتصال بنا من خلال قسم الاتصال داخل التطبيق، أو عبر البريد الإلكتروني، أو الهاتف. نسعى لتقديم دعم سريع ومفيد لمعالجة أي أسئلة أو مخاوف قد تكون لديك.",
"websiteText" : "موقع إلكتروني", "websiteText" : "موقع إلكتروني",
"toRestorePasswordYouWillBeLoggedOut" : "لاستعادة كلمة المرور، سيتم تسجيل خروجك من التطبيق", "toRestorePasswordYouWillBeLoggedOut" : "لاستعادة كلمة المرور، سيتم تسجيل خروجك من التطبيق",
"noDataAvailable" : "لا تتوافر بيانات" "noDataAvailable" : "لا تتوافر بيانات",
"payWithGpayText": "ادفع باستخدام Google Pay"
} }

View File

@@ -139,6 +139,7 @@
"next": "Next", "next": "Next",
"depositNoti": "Create deposit notification", "depositNoti": "Create deposit notification",
"payWithAppleText": "Pay with Apple Pay", "payWithAppleText": "Pay with Apple Pay",
"payWithGpayText": "Pay with Google Pay",
"submit": "Submit request", "submit": "Submit request",
"Submit": "Submit", "Submit": "Submit",
"submitDeposit": "Submit deposit", "submitDeposit": "Submit deposit",
@@ -223,10 +224,10 @@
"choosePaymentMethodText": "Choose payment method", "choosePaymentMethodText": "Choose payment method",
"balanceText": "Balance", "balanceText": "Balance",
"applePayText": "Apple Pay", "applePayText": "Apple Pay",
"gPayText": "Gpay Pay", "gPayText": "Google Pay",
"bankTransferText": "Directly transfer funds from your bank account into your Tanami wallet.", "bankTransferText": "Directly transfer funds from your bank account into your Tanami wallet.",
"instantTransferFundsApplePayText": "Instant transfer of funds using Apple Pay!", "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.", "retailInvestirCanInvestMaxText": "Retail investors can invest a maximum of SAR 200,000 in this opportunity.",
"upgradeYourInvestorStatusToIncreaseText": "Upgrade your investor status to increase your investment limit.", "upgradeYourInvestorStatusToIncreaseText": "Upgrade your investor status to increase your investment limit.",
"currentExchangeText": "Current Exchange", "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'; 'assets/images/invest_screen/svg/time_square.svg';
static const String applePayIcon = static const String applePayIcon =
'assets/images/invest_screen/svg/apple_pay.svg'; 'assets/images/invest_screen/svg/apple_pay.svg';
static const String googlePayIcon =
'assets/images/invest_screen/svg/google_pay.svg';
static const String walletSettingsIcon = static const String walletSettingsIcon =
'assets/images/settings_screen/svg/wallet_settings.svg'; 'assets/images/settings_screen/svg/wallet_settings.svg';

View File

@@ -252,6 +252,7 @@ class AppText {
static const String next = "next"; static const String next = "next";
static const String depositNoti = "depositNoti"; static const String depositNoti = "depositNoti";
static const String payWithAppleText = "payWithAppleText"; static const String payWithAppleText = "payWithAppleText";
static const String payWithGpayText = "payWithGpayText";
static const String submit = "submit"; static const String submit = "submit";
static const String Submit = "Submit"; static const String Submit = "Submit";
static const String submitDeposit = "submitDeposit"; 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'; 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 { class SharedPreferenceLocalData {
Future<void> write(String key, String value) async { Future<void> write(String key, String value) async {
final SharedPreferences prefs = await SharedPreferences.getInstance(); final SharedPreferences prefs = await SharedPreferences.getInstance();

View File

@@ -1,4 +1,7 @@
// ignore: file_names // ignore: file_names
import 'dart:convert';
import 'dart:developer';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_bloc/flutter_bloc.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:flutter_svg/flutter_svg.dart';
import 'package:gap/gap.dart'; import 'package:gap/gap.dart';
import 'package:google_fonts/google_fonts.dart'; import 'package:google_fonts/google_fonts.dart';
import 'package:pay/pay.dart';
import '../../../../../../core/routes/route_name.dart'; import '../../../../../../core/routes/route_name.dart';
import '../../../../../../core/routes/routes.dart'; import '../../../../../../core/routes/routes.dart';
@@ -26,6 +30,13 @@ class DepositLayout extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
const paymentItems = [
PaymentItem(
label: 'Total',
amount: '99.99',
status: PaymentItemStatus.final_price,
)
];
var localizations = AppLocalizations.of(context); var localizations = AppLocalizations.of(context);
final depositPaymentBloc = context.read<DepositPaymentBloc>(); final depositPaymentBloc = context.read<DepositPaymentBloc>();
int selectedIndex = 0; int selectedIndex = 0;
@@ -42,7 +53,11 @@ class DepositLayout extends StatelessWidget {
child: GestureDetector( child: GestureDetector(
onTap: () { onTap: () {
if (state.isFormValid) { if (state.isFormValid) {
goRouter.pushNamed(RouteName.depositPreview); if (selectedIndex == 1) {
} else if (selectedIndex == 2) {
} else {
goRouter.pushNamed(RouteName.depositPreview);
}
} }
}, },
child: selectedIndex == 1 child: selectedIndex == 1
@@ -81,28 +96,43 @@ class DepositLayout extends StatelessWidget {
), ),
), ),
) )
: Container( : selectedIndex == 2
margin: const EdgeInsets.all(10.0), ? GooglePayButton(
height: 65.h, paymentConfiguration:
width: double.infinity, PaymentConfiguration.fromJsonString(
decoration: BoxDecoration( jsonEncode(JsonAssets.gpayAsset)),
borderRadius: BorderRadius.circular(22.r), paymentItems: paymentItems,
color: state.isFormValid type: GooglePayButtonType.pay,
? AppColor.primaryColor2 margin: const EdgeInsets.only(top: 15.0),
: AppColor.inactiveBtnColor), onPaymentResult: (paymentResult) {
child: Center( log(paymentResult.toString());
child: Text( },
localizations.translate(AppText.next), loadingIndicator: const Center(
style: GoogleFonts.dmSans( child: CircularProgressIndicator(),
color: state.isFormValid ),
? AppColor.plainWhite )
: AppColor.inactiveBtnTxtColor, : Container(
fontSize: 14.sp, margin: const EdgeInsets.all(10.0),
fontWeight: FontWeight.w700, 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/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
@@ -108,84 +110,164 @@ class DepositPayMethodSection extends StatelessWidget {
), ),
), ),
const Gap(12), const Gap(12),
GestureDetector( Platform.isIOS
onTap: () { ? GestureDetector(
radioBloc.add(const RadioSelected(1)); onTap: () {
}, radioBloc.add(const RadioSelected(1));
child: Container( },
clipBehavior: Clip.antiAlias, child: Container(
// padding: const EdgeInsets.all(12), clipBehavior: Clip.antiAlias,
decoration: ShapeDecoration( // padding: const EdgeInsets.all(12),
color: Colors.white, decoration: ShapeDecoration(
shape: RoundedRectangleBorder( color: Colors.white,
side: const BorderSide(color: Color(0xFFD8D8D8)), shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(22), side: const BorderSide(color: Color(0xFFD8D8D8)),
), borderRadius: BorderRadius.circular(22),
shadows: const [ ),
BoxShadow( shadows: const [
color: Color(0x14000000), BoxShadow(
blurRadius: 8, color: Color(0x14000000),
offset: Offset(-2, -2), blurRadius: 8,
spreadRadius: 0.2, 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),
],
), ),
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), : GestureDetector(
child: TextWidget().text14W500( onTap: () {
localizations radioBloc.add(const RadioSelected(2));
.translate(AppText.instantTransferFundsApplePayText), },
clr: AppColor.textLabelColor, child: Container(
txtAlign: TextAlign.start, 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:gap/gap.dart';
import 'package:tanami_app/core/styles/app_color.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_bloc.dart';
import 'package:tanami_app/features/countrySelection/bloc/GetCountry/get_country_event.dart';
import 'package:tanami_app/shared/components/text_widget.dart'; import 'package:tanami_app/shared/components/text_widget.dart';
import '../../../../shared/api/api_endpoints.dart'; import '../../../../shared/api/api_endpoints.dart';
@@ -34,9 +33,9 @@ class CountrySelectionList extends StatelessWidget {
const SnackBar(content: Text("Successfully fetch")); const SnackBar(content: Text("Successfully fetch"));
} else if (state is CountryError) { } else if (state is CountryError) {
const SnackBar(content: Text("error while fetching data")); const SnackBar(content: Text("error while fetching data"));
Future.delayed(const Duration(milliseconds: 3), () { // Future.delayed(const Duration(milliseconds: 3), () {
context.read<GetCountryBlock>().add(GetCountry()); // context.read<GetCountryBlock>().add(GetCountry());
}); // });
} else { } else {
const SnackBar(content: Text("not fetch")); const SnackBar(content: Text("not fetch"));
} }
@@ -53,6 +52,9 @@ class CountrySelectionList extends StatelessWidget {
var country = state.countryModel.data![index]; var country = state.countryModel.data![index];
return ListTile( return ListTile(
onTap: () {
radioBloc.add(RadioSelected(index));
},
title: Row( title: Row(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: [ children: [

View File

@@ -27,6 +27,7 @@ class ToggleBloc extends Bloc<ToggleEvent, ToggleState> {
Map<String, dynamic> biometricdata = { Map<String, dynamic> biometricdata = {
"code": await secureStorageService.read("temp_token"), "code": await secureStorageService.read("temp_token"),
"is_2FA_on": false,
"deviceId": "test-id", "deviceId": "test-id",
"biometric_type": Platform.isIOS ? "face" : "fingerprint" "biometric_type": Platform.isIOS ? "face" : "fingerprint"
}; };

View File

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

View File

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

View File

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

View File

@@ -17,14 +17,6 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "6.4.1" version: "6.4.1"
archive:
dependency: transitive
description:
name: archive
sha256: cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d
url: "https://pub.dev"
source: hosted
version: "3.6.1"
args: args:
dependency: transitive dependency: transitive
description: description:
@@ -185,14 +177,6 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.8.1" 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: clock:
dependency: transitive dependency: transitive
description: description:
@@ -250,7 +234,7 @@ packages:
source: hosted source: hosted
version: "3.1.1" version: "3.1.1"
crypto: crypto:
dependency: "direct main" dependency: transitive
description: description:
name: crypto name: crypto
sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab
@@ -414,22 +398,6 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.3.2" 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: flutter_lints:
dependency: "direct dev" dependency: "direct dev"
description: description:
@@ -467,54 +435,6 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "5.9.3" 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: flutter_svg:
dependency: "direct main" dependency: "direct main"
description: description:
@@ -621,14 +541,6 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.0" version: "1.0.0"
image:
dependency: transitive
description:
name: image
sha256: "2237616a36c0d69aef7549ab439b833fb7f9fb9fc861af2cc9ac3eedddd69ca8"
url: "https://pub.dev"
source: hosted
version: "4.2.0"
intl: intl:
dependency: "direct main" dependency: "direct main"
description: description:
@@ -749,14 +661,6 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.2.0" version: "1.2.0"
lottie:
dependency: "direct main"
description:
name: lottie
sha256: "6a24ade5d3d918c306bb1c21a6b9a04aab0489d51a2582522eea820b4093b62b"
url: "https://pub.dev"
source: hosted
version: "3.1.2"
matcher: matcher:
dependency: transitive dependency: transitive
description: description:
@@ -917,6 +821,38 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.1.0+3" 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: permission_handler:
dependency: "direct main" dependency: "direct main"
description: description:
@@ -1037,14 +973,6 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.27.7" 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: shared_preferences:
dependency: "direct main" dependency: "direct main"
description: description:

View File

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

View File

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

View File

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