Merge remote-tracking branch 'origin/main_design2.1_swipe_and_update_password' into main_design2.1_swipe_and_update_password

# Conflicts:
#	lib/new_views/forget_password_module/forget_passwod_verify_otp.dart
#	lib/new_views/pages/land_page/land_page.dart
#	lib/new_views/pages/login_page.dart
#	lib/new_views/swipe_module/swipe_success_view.dart
main_design2.1
WaseemAbbasi22 1 year ago
commit f6e2ef676c

@ -1,7 +1,7 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:test_sa/new_views/swipe_module/dialoge/confirm_dialog.dart';
import '../controllers/providers/settings/setting_provider.dart'; import '../controllers/providers/settings/setting_provider.dart';
@ -13,4 +13,12 @@ extension BuildContextExtension on BuildContext {
bool get isDark => Provider.of<SettingProvider>(this).theme == "dark"; bool get isDark => Provider.of<SettingProvider>(this).theme == "dark";
bool get isAr => Provider.of<SettingProvider>(this).language == "ar"; bool get isAr => Provider.of<SettingProvider>(this).language == "ar";
void showConfirmDialog(String message, {String title, VoidCallback onTap}) => showDialog(
context: this,
builder: (BuildContext cxt) => ConfirmDialog(
message: message,
onTap: onTap,
),
);
} }

@ -98,11 +98,10 @@ class _ForgetPasswordVerifyOtpViewState extends State<ForgetPasswordVerifyOtpVie
), ),
), ),
onCompleted: (pin) { onCompleted: (pin) {
setState(() { // setState(() {
otp = pin; otp = pin;
}); //});
verifyOtp(); verifyOtp();
}, },
), ),
), ),
@ -128,7 +127,7 @@ class _ForgetPasswordVerifyOtpViewState extends State<ForgetPasswordVerifyOtpVie
child: Text( child: Text(
'Resend', 'Resend',
style: TextStyle( style: TextStyle(
color: _remainingSeconds == 0 ? AppColor.primary40 : AppColor.white10, color: _remainingSeconds == 0 ? AppColor.blueStatus(context) : AppColor.white10,
fontWeight: FontWeight.w500, fontWeight: FontWeight.w500,
fontSize: 16.toScreenWidth, fontSize: 16.toScreenWidth,
decorationColor: AppColor.primary30, decorationColor: AppColor.primary30,
@ -138,8 +137,6 @@ class _ForgetPasswordVerifyOtpViewState extends State<ForgetPasswordVerifyOtpVie
), ),
7.width, 7.width,
'$minutes:$seconds'.bodyText(context).custom(color: AppColor.neutral10), '$minutes:$seconds'.bodyText(context).custom(color: AppColor.neutral10),
], ],
), ),
], ],
@ -148,7 +145,7 @@ class _ForgetPasswordVerifyOtpViewState extends State<ForgetPasswordVerifyOtpVie
AppFilledButton( AppFilledButton(
label: context.translation.verify, label: context.translation.verify,
maxWidth: true, maxWidth: true,
onPressed:verifyOtp, onPressed: verifyOtp,
), ),
], ],
).paddingOnly(start: 20, end: 20, bottom: 16), ).paddingOnly(start: 20, end: 20, bottom: 16),
@ -168,7 +165,3 @@ class _ForgetPasswordVerifyOtpViewState extends State<ForgetPasswordVerifyOtpVie
} }
} }
} }

@ -5,13 +5,13 @@ import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/new_views/forget_password_module/models/general_response_model.dart';
import 'package:test_sa/new_views/forget_password_module/models/update_password.dart';
import 'package:test_sa/new_views/app_style/app_color.dart'; import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/new_views/common_widgets/app_filled_button.dart'; import 'package:test_sa/new_views/common_widgets/app_filled_button.dart';
import 'package:test_sa/new_views/common_widgets/app_text_form_field.dart'; import 'package:test_sa/new_views/common_widgets/app_text_form_field.dart';
import 'package:test_sa/new_views/common_widgets/default_app_bar.dart'; import 'package:test_sa/new_views/forget_password_module/models/general_response_model.dart';
import 'package:test_sa/new_views/forget_password_module/models/update_password.dart';
import 'package:test_sa/new_views/pages/login_page.dart'; import 'package:test_sa/new_views/pages/login_page.dart';
import '../../controllers/providers/api/user_provider.dart'; import '../../controllers/providers/api/user_provider.dart';
import '../../controllers/validator/validator.dart'; import '../../controllers/validator/validator.dart';
@ -26,8 +26,8 @@ class ResetPasswordView extends StatefulWidget {
class _ResetPasswordViewState extends State<ResetPasswordView> { class _ResetPasswordViewState extends State<ResetPasswordView> {
UserProvider _userProvider; UserProvider _userProvider;
bool _passwordVisible =false; bool _passwordVisible = false;
bool _confirmPasswordVisible =false; bool _confirmPasswordVisible = false;
final GlobalKey<FormState> _formKey = GlobalKey<FormState>(); final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
@ -44,11 +44,9 @@ class _ResetPasswordViewState extends State<ResetPasswordView> {
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
context.translation.resetPassword.heading2(context).custom(color: AppColor.neutral80, fontWeight: FontWeight.w500), context.translation.resetPassword.heading2(context).custom(color: AppColor.neutral80, fontWeight: FontWeight.w500),
8.height, 8.height,
context.translation.pleaseEnterTheNewPassword.bodyText2(context).custom(color: AppColor.white20, fontWeight: FontWeight.w500), context.translation.pleaseEnterTheNewPassword.bodyText2(context).custom(color: AppColor.white20, fontWeight: FontWeight.w500),
32.height, 32.height,
AppTextFormField( AppTextFormField(
initialValue: _userProvider.newPassword, initialValue: _userProvider.newPassword,
@ -59,9 +57,7 @@ class _ResetPasswordViewState extends State<ResetPasswordView> {
suffixIcon: IconButton( suffixIcon: IconButton(
icon: Icon( icon: Icon(
// Based on passwordVisible state choose the icon // Based on passwordVisible state choose the icon
_passwordVisible _passwordVisible ? Icons.visibility : Icons.visibility_off,
? Icons.visibility
: Icons.visibility_off,
color: context.isDark ? AppColor.neutral10 : AppColor.neutral20, color: context.isDark ? AppColor.neutral10 : AppColor.neutral20,
), ),
onPressed: () { onPressed: () {
@ -92,9 +88,7 @@ class _ResetPasswordViewState extends State<ResetPasswordView> {
suffixIcon: IconButton( suffixIcon: IconButton(
icon: Icon( icon: Icon(
// Based on passwordVisible state choose the icon // Based on passwordVisible state choose the icon
_confirmPasswordVisible _confirmPasswordVisible ? Icons.visibility : Icons.visibility_off,
? Icons.visibility
: Icons.visibility_off,
color: context.isDark ? AppColor.neutral10 : AppColor.neutral20, color: context.isDark ? AppColor.neutral10 : AppColor.neutral20,
), ),
onPressed: () { onPressed: () {
@ -110,7 +104,6 @@ class _ResetPasswordViewState extends State<ResetPasswordView> {
], ],
), ),
).center.expanded, ).center.expanded,
], ],
).paddingOnly(start: 16, end: 16, bottom: 24, top: 24), ).paddingOnly(start: 16, end: 16, bottom: 24, top: 24),
), ),
@ -127,8 +120,8 @@ class _ResetPasswordViewState extends State<ResetPasswordView> {
password: _userProvider.newPassword, confirmPassword: _userProvider.confirmPassword, userId: _userProvider.verifyOtpModel.userId, token: _userProvider.verifyOtpModel.token); password: _userProvider.newPassword, confirmPassword: _userProvider.confirmPassword, userId: _userProvider.verifyOtpModel.userId, token: _userProvider.verifyOtpModel.token);
GeneralResponseModel generalResponseModel = await _userProvider.updateNewPassword(context: context, updatePasswordModel: updatePasswordModel); GeneralResponseModel generalResponseModel = await _userProvider.updateNewPassword(context: context, updatePasswordModel: updatePasswordModel);
if (generalResponseModel.isSuccess) { if (generalResponseModel.isSuccess) {
_userProvider.newPassword=''; _userProvider.newPassword = '';
_userProvider.confirmPassword=''; _userProvider.confirmPassword = '';
Navigator.of(context).pushNamedAndRemoveUntil(LoginPage.routeName, (routes) => true); Navigator.of(context).pushNamedAndRemoveUntil(LoginPage.routeName, (routes) => true);
} }
} }

@ -1,5 +1,4 @@
import 'dart:io'; import 'dart:io';
import 'dart:ui';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:nfc_manager/nfc_manager.dart'; import 'package:nfc_manager/nfc_manager.dart';
@ -178,15 +177,6 @@ class _LandPageState extends State<LandPage> {
}, },
), ),
), ),
Visibility(
visible: !userProvider.isUserConfirmSwipe && userProvider.user != null && !userProvider.user.employeeIsHMG,
child: BackdropFilter(
filter: ImageFilter.blur(sigmaX: 5, sigmaY: 5),
child: Container(
color: Colors.black.withOpacity(0.2), // Optional tint effect
),
),
),
if (userProvider.user != null && !userProvider.user.employeeIsHMG) if (userProvider.user != null && !userProvider.user.employeeIsHMG)
Positioned( Positioned(
right: _userProvider.user.type == UsersTypes.engineer ? 20.toScreenWidth : null, right: _userProvider.user.type == UsersTypes.engineer ? 20.toScreenWidth : null,

@ -8,10 +8,10 @@ import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/new_views/forget_password_module/models/general_response_model.dart';
import 'package:test_sa/new_views/app_style/app_color.dart'; import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/new_views/pages/land_page/land_page.dart';
import 'package:test_sa/new_views/forget_password_module/forget_passwod_verify_otp.dart'; import 'package:test_sa/new_views/forget_password_module/forget_passwod_verify_otp.dart';
import 'package:test_sa/new_views/forget_password_module/models/general_response_model.dart';
import 'package:test_sa/new_views/pages/land_page/land_page.dart';
import '../../controllers/providers/api/user_provider.dart'; import '../../controllers/providers/api/user_provider.dart';
import '../../controllers/providers/settings/setting_provider.dart'; import '../../controllers/providers/settings/setting_provider.dart';
@ -91,9 +91,7 @@ class _LoginPageState extends State<LoginPage> {
suffixIcon: IconButton( suffixIcon: IconButton(
icon: Icon( icon: Icon(
// Based on passwordVisible state choose the icon // Based on passwordVisible state choose the icon
_passwordVisible _passwordVisible ? Icons.visibility : Icons.visibility_off,
? Icons.visibility
: Icons.visibility_off,
color: context.isDark ? AppColor.neutral10 : AppColor.neutral20, color: context.isDark ? AppColor.neutral10 : AppColor.neutral20,
), ),
onPressed: () { onPressed: () {

@ -16,7 +16,6 @@ class ConfirmDialog extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
print('message i got is $message');
return Dialog( return Dialog(
backgroundColor: Colors.white, backgroundColor: Colors.white,
shape: const RoundedRectangleBorder(), shape: const RoundedRectangleBorder(),

File diff suppressed because it is too large Load Diff

@ -170,21 +170,14 @@ class SwipeGeneralUtils {
static void confirmDialog(cxt, String message, {VoidCallback onTap}) { static void confirmDialog(cxt, String message, {VoidCallback onTap}) {
showDialog( showDialog(
context: cxt, context: cxt,
builder: (BuildContext cxt) => ConfirmDialog( builder: (BuildContext cxt) => ConfirmDialog(message: message, onTap: onTap),
message: message,
onTap: onTap,
),
); );
} }
static void showErrorDialog({String message, @required BuildContext context}) { static void showErrorDialog({String message, @required BuildContext context}) {
showDialog( showDialog(
context: context, context: context,
builder: (context) => ConfirmDialog( builder: (context) => ConfirmDialog(message: message, title: 'Error', onTap: () => Navigator.pop(context)),
message: message,
title: 'Error',
onTap: () => Navigator.pop(context),
),
); );
} }
@ -399,8 +392,6 @@ class SwipeGeneralUtils {
// } // }
} }
// general methods......
static void handleSwipeOperation({@required SwipeTypeEnum swipeType, double lat, double lang, BuildContext context}) { static void handleSwipeOperation({@required SwipeTypeEnum swipeType, double lat, double lang, BuildContext context}) {
switch (swipeType) { switch (swipeType) {
case SwipeTypeEnum.NFC: case SwipeTypeEnum.NFC:
@ -448,7 +439,7 @@ class SwipeGeneralUtils {
if (swipeResponse.isSuccess) { if (swipeResponse.isSuccess) {
hideLoading(context); hideLoading(context);
showSuccessDialog(context: context); Navigator.pushNamed(context, SwipeSuccessView.routeName);
} else { } else {
hideLoading(context); hideLoading(context);
showDialog( showDialog(
@ -513,7 +504,7 @@ class SwipeGeneralUtils {
if (swipeResponse.isSuccess) { if (swipeResponse.isSuccess) {
hideLoading(context); hideLoading(context);
showSuccessDialog(context: context, fromDashBoard: true); Navigator.pushNamed(context, SwipeSuccessView.routeName);
} else { } else {
hideLoading(context); hideLoading(context);
showErrorDialog(message: swipeResponse.message ?? "Unexpected error occurred", context: context); showErrorDialog(message: swipeResponse.message ?? "Unexpected error occurred", context: context);
@ -525,11 +516,7 @@ class SwipeGeneralUtils {
} }
} }
static void handleSwipe({ static void handleSwipe({SwipeTypeEnum swipeType, @required bool isEnable, @required BuildContext context}) async {
SwipeTypeEnum swipeType,
@required bool isEnable,
@required BuildContext context,
}) async {
if (!(await isGoogleServicesAvailable())) { if (!(await isGoogleServicesAvailable())) {
checkHuaweiLocationPermission(attendanceType: swipeType, context: context); checkHuaweiLocationPermission(attendanceType: swipeType, context: context);
} else { } else {
@ -606,10 +593,10 @@ class SwipeGeneralUtils {
return availableMethods; return availableMethods;
} }
static Future<void> showSwipeTypeBottomSheetSheet({@required BuildContext context, @required bool isNfcSupported}) { static void showSwipeTypeBottomSheetSheet({@required BuildContext context, @required bool isNfcSupported}) {
UserProvider _userProvider = Provider.of<UserProvider>(context, listen: false); UserProvider _userProvider = Provider.of<UserProvider>(context, listen: false);
return showModalBottomSheet( showModalBottomSheet(
context: context, context: context,
shape: const RoundedRectangleBorder( shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.vertical( borderRadius: BorderRadius.vertical(
@ -636,16 +623,6 @@ class SwipeGeneralUtils {
); );
} }
static void showSuccessDialog({@required BuildContext context, bool fromDashBoard}) {
Navigator.pushReplacementNamed(context, SwipeSuccessView.routeName);
// showMDialog(
// context,
// backgroundColor: Colors.transparent,
// isDismissable: true,
// child: SuccessDialog(fromDashBoard),
// );
}
static void readNFc({Function(String) onRead}) { static void readNFc({Function(String) onRead}) {
NfcManager.instance.startSession(onDiscovered: (NfcTag tag) async { NfcManager.instance.startSession(onDiscovered: (NfcTag tag) async {
MifareUltralight f; MifareUltralight f;

Loading…
Cancel
Save