Merge pull request #153 from WDI-Ideas/jayeshjain25
io api settings api
This commit is contained in:
1
assets/images/invest_screen/svg/google_pay.svg
Normal file
1
assets/images/invest_screen/svg/google_pay.svg
Normal 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 |
@@ -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"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -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",
|
||||||
|
|||||||
37
assets/payment/google_pay_config.json
Normal file
37
assets/payment/google_pay_config.json
Normal 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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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';
|
||||||
|
|
||||||
|
|||||||
@@ -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";
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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';
|
||||||
|
}
|
||||||
|
|||||||
@@ -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),
|
),
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
]);
|
]);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -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: [
|
||||||
|
|||||||
@@ -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"
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -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"))
|
||||||
|
|||||||
138
pubspec.lock
138
pubspec.lock
@@ -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:
|
||||||
|
|||||||
30
pubspec.yaml
30
pubspec.yaml
@@ -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/
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -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
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user