fingerprint auth added

This commit is contained in:
jayesh
2024-07-03 18:50:05 +05:30
13 changed files with 125 additions and 115 deletions

View File

@@ -7,11 +7,11 @@ class AppText {
static const String welcomeTitle1Text = "Tanami offers";
static const String welcomeTitle2Text = "Invest alongside";
static const String welcomeTitle3Text = "Start investing today ";
static const String weclomeDescription1Text =
static const String welcomeDescription1Text =
"access to best-in-class, exclusive, global private investments";
static const String weclomeDescription2Text =
static const String welcomeDescription2Text =
"experienced investment experts with a long-standing track record";
static const String weclomeDescription3Text = "with only SAR 1,000";
static const String welcomeDescription3Text = "with only SAR 1,000";
static const String loginText = "Log In";
static const String signUpText = "Sign Up";
@@ -96,6 +96,9 @@ class AppText {
static const String areYouSureYouWantToExitText =
"Are you sure you want to Exit?";
//FAQ
static const String faqTitle = "Frequently Asked Questions:";
//Security
static const String unlockText = "Unlock";
static const String tanamiAppIsLocked = "Tanami Capital is locked";
@@ -130,6 +133,11 @@ class AppText {
static const String allowText = "Allow";
static const String declineText = "Decline";
//Forgot Password
static const String almostHere = 'Almost here...';
static const String completeAcc =
'Complete account profile in 3 minutes to start investing';
//Forgot Password
static const String restorePasswordText = "Restore password";
static const String toRestorePasswordPleaseEnterPhoneNumber =
@@ -144,6 +152,7 @@ class AppText {
static const String filterTitle = "Filters";
static const String onHold = "On Hold";
static const String deposit = "Deposit";
static const String withdraw = "Withdraw";
static const String withdrawal = "Withdrawal";
static const String yield = "Yield";
static const String refund = "Refund";
@@ -177,7 +186,8 @@ class AppText {
static const String required = 'Fields with * are required';
static const String withdrawAmt = 'Total Withdrawal amount:';
static const String depositAmt = 'Total Deposit amount:';
static const String info2 = 'Payment can include transfer fee from your bank';
static const String info2 =
'Payment can include transfer fee from your bank ';
static const String info3 =
'To accomplish payment please use payment details and Reference ID in tour Bank';
static const String next = 'Next';
@@ -310,7 +320,4 @@ class AppText {
static const String investmentConfirmationText = "Investment confirmation";
static const String enterAmountText = "Enter Amount";
static const String pleaseEnterAmountText = "Please Enter Amount";
//Wallet
static const String withdrawText = 'Withdraw';
}

View File

@@ -27,7 +27,7 @@ class ConfirmInvestmentScreen extends StatelessWidget {
),
),
),
body: ConfirmInvestmentLayout(),
body: const ConfirmInvestmentLayout(),
);
}
}

View File

@@ -29,7 +29,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
),
titleSpacing: 16,
),
body: SettingsLayout(),
body: const SettingsLayout(),
);
}
}

View File

@@ -41,11 +41,14 @@ class SettingsListItem extends StatelessWidget {
trailing: Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(trailing,
style: GoogleFonts.dmSans(
fontSize: 15,
fontWeight: FontWeight.w500,
color: AppColor.plainBlack)),
Text(
trailing,
style: GoogleFonts.dmSans(
fontSize: 15,
fontWeight: FontWeight.w500,
color: AppColor.plainBlack,
),
),
const Gap(10),
const Icon(Icons.arrow_forward_ios, size: 16.0),
],

View File

@@ -1,3 +1,4 @@
// ignore: file_names
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
@@ -257,7 +258,7 @@ class DepositLayout extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
'Fee',
AppText.feeText,
style: GoogleFonts.dmSans(
color: const Color(0xFF535353),
fontSize: 14.sp,
@@ -278,7 +279,7 @@ class DepositLayout extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
'Total Deposit amount:',
AppText.depositAmt,
style: GoogleFonts.dmSans(
color: const Color(0xFF535353),
fontSize: 14.sp,

View File

@@ -47,7 +47,7 @@ class _KYCScreenState extends State<KYCScreen> {
height: 24.h,
),
Text(
'Almost here...',
AppText.almostHere,
style: GoogleFonts.dmSans(
color: const Color(0xFF363636),
fontSize: 17.sp,
@@ -60,7 +60,7 @@ class _KYCScreenState extends State<KYCScreen> {
SizedBox(
width: 280.w,
child: Text(
'Complete account profile in 3 minutes to start investing',
AppText.completeAcc,
textAlign: TextAlign.center,
style: GoogleFonts.dmSans(
color: const Color(0xFF8D8D8D),
@@ -129,9 +129,6 @@ class _KYCScreenState extends State<KYCScreen> {
),
GestureDetector(
onTap: () {
// goRouter.pushNamed(RouteName.otpScreen, pathParameters: {
// "fromScreen": 'withdrawal',
// });
},
child: Container(
margin: const EdgeInsets.all(12.0),

View File

@@ -1,13 +1,12 @@
// ignore: file_names
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:tanami_app/core/routes/routes.dart';
import 'package:tanami_app/core/styles/app_text.dart';
import 'package:ticket_widget/ticket_widget.dart';
import '../../../../../core/styles/app_color.dart';
import '../../../../../shared/components/button_widget.dart';
import 'package:tanami_app/core/styles/app_color.dart';
import 'package:tanami_app/shared/components/button_widget.dart';
class WalletDetails extends StatelessWidget {
final String type;
@@ -477,7 +476,7 @@ class WalletDetails extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
AppText.paymentMethod,
AppText.paymentMethodText,
style: GoogleFonts.dmSans(
color: const Color(0xFF535353),
fontSize: 14.sp,

View File

@@ -273,7 +273,7 @@ class _WithdrawalConfirmationState extends State<WithdrawalConfirmation> {
padding: const EdgeInsets.symmetric(vertical: 20.0),
child: Center(
child: Text(
'Close',
AppText.closeText,
style: GoogleFonts.dmSans(
color: Colors.white,
fontSize: 14.sp,

View File

@@ -62,7 +62,7 @@ Widget bottomSection(BuildContext context) {
}
},
builder: (context, state) {
return Container(
return SizedBox(
width: 1.sw,
height: 56.h,
child: ButtonWidget().textBorderBtn(

View File

@@ -35,7 +35,7 @@ class _AccountappState extends State<FAQScreen> {
Padding(
padding: EdgeInsets.only(left: 16.w, top: 23.h),
child: Text(
"Frequently Asked Questions:",
AppText.faqTitle,
style: GoogleFonts.dmSans(
fontSize: 18.sp,
color: AppColor.charcoalColor,
@@ -52,78 +52,75 @@ class _AccountappState extends State<FAQScreen> {
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w),
child: ExpansionTileGroup(
spaceBetweenItem: 23,
toggleType: ToggleType.expandOnlyCurrent,
children: List.generate(
faList.length,
(index) => ExpansionTileItem(
isHasBottomBorder: true,
isHasLeftBorder: true,
isHasRightBorder: true,
boxShadow: [
BoxShadow(
color: AppColor.plainBlack.withOpacity(0.15),
spreadRadius: 2,
blurRadius: 10,
offset: const Offset(
0, 3), // changes position of shadow
),
],
isHasTopBorder: true,
collapsedBackgroundColor:
AppColor.portfolioCardBgColor,
borderRadius: BorderRadius.circular(10),
onExpansionChanged: (bool expanding) {
if (expanding) {
setState(() {
selectedTile = index;
});
} else {
setState(() {
selectedTile = -1;
});
}
},
backgroundColor: AppColor.portfolioCardBgColor,
childrenPadding: EdgeInsets.only(
left: 0.w,
right: 0.w,
bottom: 8.h,
top: 10.h),
initiallyExpanded: index == selectedTile,
isHasTrailing: false,
title: Text(
faList[index]['title']!,
maxLines: 3,
style: GoogleFonts.dmSans(
fontSize: 16.sp,
color: AppColor.otpTextColor,
fontWeight: FontWeight.w600),
spaceBetweenItem: 23,
toggleType: ToggleType.expandOnlyCurrent,
children: List.generate(
faList.length,
(index) => ExpansionTileItem(
isHasBottomBorder: true,
isHasLeftBorder: true,
isHasRightBorder: true,
boxShadow: [
BoxShadow(
color: AppColor.plainBlack.withOpacity(0.15),
spreadRadius: 2,
blurRadius: 10,
offset:
const Offset(0, 3), // changes position of shadow
),
],
isHasTopBorder: true,
collapsedBackgroundColor: AppColor.portfolioCardBgColor,
borderRadius: BorderRadius.circular(10),
onExpansionChanged: (bool expanding) {
if (expanding) {
setState(() {
selectedTile = index;
});
} else {
setState(() {
selectedTile = -1;
});
}
},
backgroundColor: AppColor.portfolioCardBgColor,
childrenPadding: EdgeInsets.only(
left: 0.w, right: 0.w, bottom: 8.h, top: 10.h),
initiallyExpanded: index == selectedTile,
isHasTrailing: false,
title: Text(
faList[index]['title']!,
maxLines: 3,
style: GoogleFonts.dmSans(
fontSize: 16.sp,
color: AppColor.otpTextColor,
fontWeight: FontWeight.w600),
),
children: <Widget>[
Container(
margin: const EdgeInsets.symmetric(horizontal: 5),
width: 1.sw,
// height: 109.h,
decoration: BoxDecoration(
color: AppColor.plainWhite,
borderRadius: BorderRadius.circular(10.r),
),
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: 12.w, vertical: 10.h),
child: Text(
faList[index]['answer']!,
style: GoogleFonts.dmSans(
fontSize: 16.sp,
color: AppColor.investPaymentTextColor,
),
children: <Widget>[
Container(
margin:
const EdgeInsets.symmetric(horizontal: 5),
width: 1.sw,
// height: 109.h,
decoration: BoxDecoration(
color: AppColor.plainWhite,
borderRadius: BorderRadius.circular(10.r),
),
child: Padding(
padding: EdgeInsets.symmetric(
horizontal: 12.w, vertical: 10.h),
child: Text(
faList[index]['answer']!,
style: GoogleFonts.dmSans(
fontSize: 16.sp,
color: AppColor.investPaymentTextColor,
),
),
),
)
],
))),
),
),
)
],
),
),
),
),
),
],

View File

@@ -1,4 +1,5 @@
import 'package:bloc/bloc.dart';
// ignore: depend_on_referenced_packages
import 'package:package_info_plus/package_info_plus.dart';
import 'app_version_event.dart';

View File

@@ -14,7 +14,7 @@ Widget buildPage(
context,
imageAsset: AppImages.firstWelcome,
title: AppText.welcomeTitle1Text,
description: AppText.weclomeDescription1Text,
description: AppText.welcomeDescription1Text,
);
case 1:
return buildOnboardingPage(
@@ -23,7 +23,7 @@ Widget buildPage(
context,
imageAsset: AppImages.secondWelcome,
title: AppText.welcomeTitle2Text,
description: AppText.weclomeDescription2Text,
description: AppText.welcomeDescription2Text,
);
case 2:
return buildOnboardingPage(
@@ -32,7 +32,7 @@ Widget buildPage(
context,
imageAsset: AppImages.thirdWelcome,
title: AppText.welcomeTitle3Text,
description: AppText.weclomeDescription3Text,
description: AppText.welcomeDescription3Text,
isLastPage: true,
);
default:

View File

@@ -7,8 +7,7 @@ import 'package:google_fonts/google_fonts.dart';
import 'package:tanami_app/core/routes/routes.dart';
import 'package:tanami_app/core/styles/app_color.dart';
import 'package:tanami_app/shared/components/toast_message.dart';
import '../../core/styles/app_images.dart';
import 'package:tanami_app/core/styles/app_images.dart';
class NoInternet extends StatelessWidget {
const NoInternet({super.key});
@@ -18,8 +17,9 @@ class NoInternet extends StatelessWidget {
return WillPopScope(
onWillPop: () => Future.value(false),
child: Scaffold(
backgroundColor: AppColor.plainWhite,
body: Column(children: [
backgroundColor: AppColor.plainWhite,
body: Column(
children: [
Center(
child: Container(
margin: const EdgeInsets.only(top: 100),
@@ -40,12 +40,13 @@ class NoInternet extends StatelessWidget {
Container(
margin: const EdgeInsets.symmetric(horizontal: 20),
child: Text(
"Internet Connection is Down!\n\nEnsure your internet's up and running.",
textAlign: TextAlign.center,
style: GoogleFonts.dmSans(
fontSize: 18.0,
fontWeight: FontWeight.w500,
)),
"Internet Connection is Down!\n\nEnsure your internet's up and running.",
textAlign: TextAlign.center,
style: GoogleFonts.dmSans(
fontSize: 18.0,
fontWeight: FontWeight.w500,
),
),
),
const SizedBox(
height: 30.0,
@@ -74,7 +75,9 @@ class NoInternet extends StatelessWidget {
child: Text(
"Try Again",
style: GoogleFonts.dmSans(
color: AppColor.plainWhite, fontSize: 20.sp),
color: AppColor.plainWhite,
fontSize: 20.sp,
),
),
),
),
@@ -84,7 +87,9 @@ class NoInternet extends StatelessWidget {
),
),
),
])),
],
),
),
);
}
}