Wala-Plus Independent Pre Login & Saved Login

wala_plus
Aamir Muhammad 3 weeks ago
parent c0497201b6
commit 9d7372ea4a

@ -18,11 +18,12 @@ class LoginApiClient {
factory LoginApiClient() => _instance;
Future<GetMobileLoginInfoListModel?> getMobileLoginInfoNEW(String deviceToken, String deviceType) async {
Future<GetMobileLoginInfoListModel?> getMobileLoginInfoNEW(String deviceToken, String deviceType, {int? memberType}) async {
String url = "${ApiConsts.erpRest}Mohemm_GetMobileLoginInfo_NEW";
Map<String, dynamic> postParams = {};
postParams["DeviceToken"] = deviceToken;
postParams["DeviceType"] = deviceType;
postParams["MemberType"] = memberType ?? ApiConsts.selectedMemberType.value;
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return (responseData.mohemmGetMobileLoginInfoList?.length ?? 0) > 0 ? (responseData.mohemmGetMobileLoginInfoList!.first) : null;
@ -30,7 +31,8 @@ class LoginApiClient {
}
Future<GenericResponseModel?> insertMobileLoginInfoNEW(
String email, int sessionId, String employeeName, int loginType, String mobileNumber, String userName, String deviceToken, String deviceType) async {
String email, int sessionId, String employeeName, int loginType, String mobileNumber, String userName, String deviceToken, String deviceType,
{int? memberType}) async {
String url = "${ApiConsts.erpRest}Mohemm_InsertMobileLoginInfo";
Map<String, dynamic> postParams = {
"MobileNumber": mobileNumber,
@ -41,7 +43,8 @@ class LoginApiClient {
"LoginType": loginType,
"EmployeeName": employeeName,
"P_SESSION_ID": sessionId,
"P_EMAIL_ADDRESS": email
"P_EMAIL_ADDRESS": email,
"MemberType": memberType ?? ApiConsts.selectedMemberType.value,
};
postParams["DeviceToken"] = deviceToken;
postParams["DeviceType"] = deviceType;

@ -91,11 +91,31 @@ class ApiConsts {
static String notificationCenterLoginServiceGUID = "D8BD5C76-4B50-4122-81D0-C3AA25DB08A2";
static String notificationCenterForgotPasswordServiceGUID = "5CCCC2C9-EEA0-4207-9BE9-EE1FBBFFE8D0";
static bool ISDependetLogin = false;
static MemberType selectedMemberType = MemberType.employee;
static bool get ISDependetLogin => selectedMemberType == MemberType.dependent;
static set ISDependetLogin(bool value) {
selectedMemberType = value ? MemberType.dependent : MemberType.employee;
}
static bool get isDependetLogin => ISDependetLogin;
static set isDependetLogin(bool value) => ISDependetLogin = value;
}
enum MemberType {
employee(1),
dependent(2);
final int value;
const MemberType(this.value);
bool get isEmployee => this == MemberType.employee;
bool get isDependent => this == MemberType.dependent;
static MemberType fromValue(int? value) {
if (value == 2) return MemberType.dependent;
return MemberType.employee;
}
}
class SharedPrefsConsts {
static String isRememberMe = "remember_me";
static String username = "username";

@ -76,6 +76,7 @@ class _DashboardScreenForDependetState extends State<DashboardScreenForDependet>
context,
AppState().isArabic(context) ? "هل أنت متأكد من تسجيل الخروج؟" : "Are you sure you want to log out?",
onTap: () {
ApiConsts.selectedMemberType = MemberType.employee;
ApiConsts.ISDependetLogin = false;
Navigator.pushNamedAndRemoveUntil(context, AppRoutes.login, (Route<dynamic> route) => false);
},

@ -74,6 +74,7 @@ class _LoginScreenState extends State<LoginScreen> {
@override
void initState() {
super.initState();
ApiConsts.selectedMemberType = MemberType.employee;
ApiConsts.ISDependetLogin = false;
// hmsApiAvailability = HmsApiAvailability();
// checkFirebaseToken();
@ -164,7 +165,15 @@ class _LoginScreenState extends State<LoginScreen> {
void checkLoginInfo() async {
try {
loginInfo = await LoginApiClient().getMobileLoginInfoNEW(AppState().getIsHuawei ? AppState().getHuaweiPushToken : firebaseToken ?? "", Platform.isAndroid ? "android" : "ios");
loginInfo = await LoginApiClient().getMobileLoginInfoNEW(
AppState().getIsHuawei ? AppState().getHuaweiPushToken : firebaseToken ?? "",
Platform.isAndroid ? "android" : "ios",
memberType: ApiConsts.selectedMemberType.value,
);
if (ApiConsts.selectedMemberType.isDependent) {
Utils.hideLoading(context);
return;
}
if (loginInfo == null) {
await checkPrefs();
_autoLogin = false;
@ -285,7 +294,19 @@ class _LoginScreenState extends State<LoginScreen> {
}
}
void _onTabChanged(MemberType type) {
if (ApiConsts.selectedMemberType != type) {
setState(() {
ApiConsts.selectedMemberType = type;
});
checkLoginInfo();
}
}
Widget _buildTabSwitcher() {
bool isEmployee = ApiConsts.selectedMemberType == MemberType.employee;
bool isAr = AppState().isArabic(context);
return Container(
height: 46,
decoration: BoxDecoration(
@ -298,9 +319,9 @@ class _LoginScreenState extends State<LoginScreen> {
Expanded(
child: Container(
decoration: BoxDecoration(
color: !ApiConsts.isDependetLogin ? Colors.white : Colors.transparent,
color: isEmployee ? Colors.white : Colors.transparent,
borderRadius: BorderRadius.circular(9),
boxShadow: !ApiConsts.isDependetLogin
boxShadow: isEmployee
? [
BoxShadow(
color: Colors.black.withOpacity(0.06),
@ -311,24 +332,20 @@ class _LoginScreenState extends State<LoginScreen> {
: null,
),
alignment: Alignment.center,
child: (AppState().isArabic(context) ? "المستخدم" : "Default User").toText14(
color: !ApiConsts.isDependetLogin ? MyColors.textMixColor : MyColors.grey70Color,
isBold: !ApiConsts.isDependetLogin,
child: (isAr ? "الموظف" : "Employee").toText14(
color: isEmployee ? MyColors.textMixColor : MyColors.grey70Color,
isBold: isEmployee,
),
).onPress(() {
if (ApiConsts.isDependetLogin) {
setState(() {
ApiConsts.isDependetLogin = false;
});
}
_onTabChanged(MemberType.employee);
}),
),
Expanded(
child: Container(
decoration: BoxDecoration(
color: ApiConsts.isDependetLogin ? Colors.white : Colors.transparent,
color: !isEmployee ? Colors.white : Colors.transparent,
borderRadius: BorderRadius.circular(9),
boxShadow: ApiConsts.isDependetLogin
boxShadow: !isEmployee
? [
BoxShadow(
color: Colors.black.withOpacity(0.06),
@ -339,16 +356,12 @@ class _LoginScreenState extends State<LoginScreen> {
: null,
),
alignment: Alignment.center,
child: (AppState().isArabic(context) ? "التابع" : "Dependent").toText14(
color: ApiConsts.isDependetLogin ? MyColors.textMixColor : MyColors.grey70Color,
isBold: ApiConsts.isDependetLogin,
child: (isAr ? "التابع" : "Dependent").toText14(
color: !isEmployee ? MyColors.textMixColor : MyColors.grey70Color,
isBold: !isEmployee,
),
).onPress(() {
if (!ApiConsts.isDependetLogin) {
setState(() {
ApiConsts.isDependetLogin = true;
});
}
_onTabChanged(MemberType.dependent);
}),
),
],
@ -607,7 +620,7 @@ class _LoginScreenState extends State<LoginScreen> {
LocaleKeys.login.tr().toText24(isBold: true),
LocaleKeys.pleaseEnterLoginDetails.tr().toText16(),
16.height,
if (!ApiConsts.isDependetLogin) ...[
if (ApiConsts.selectedMemberType == MemberType.employee) ...[
InputWidget(LocaleKeys.username.tr(), "123456", username),
12.height,
InputWidget(LocaleKeys.password.tr(), "xxxxxx", password, isTextIsPassword: true),

@ -10,6 +10,7 @@ import 'package:local_auth_android/local_auth_android.dart';
import 'package:mohem_flutter_app/api/login_api_client.dart';
import 'package:mohem_flutter_app/app_state/app_state.dart';
import 'package:mohem_flutter_app/classes/colors.dart';
import 'package:mohem_flutter_app/classes/consts.dart';
import 'package:mohem_flutter_app/classes/date_uitl.dart';
import 'package:mohem_flutter_app/classes/utils.dart';
import 'package:mohem_flutter_app/config/routes.dart';
@ -386,6 +387,7 @@ class _VerifyLastLoginScreenState extends State<VerifyLastLoginScreen> {
AppState().getUserName!,
AppState().getIsHuawei ? AppState().getHuaweiPushToken : mobileLoginInfoListModel!.deviceToken!,
Platform.isAndroid ? "android" : "ios",
memberType: MemberType.employee.value,
);
AppState().setMemberInformationListModel = genericResponseModel!.memberInformationList?.first;
AppState().setPrivilegeListModel = genericResponseModel!.privilegeList ?? [];

@ -650,7 +650,8 @@ class _VerifyLoginScreenState extends State<VerifyLoginScreen> {
AppState().memberLoginList?.pMOBILENUMBER ?? "",
AppState().getUserName!,
AppState().getIsHuawei ? AppState().getHuaweiPushToken : firebaseToken!,
Platform.isAndroid ? "android" : "ios");
Platform.isAndroid ? "android" : "ios",
memberType: MemberType.employee.value);
if (genericResponseModel?.errorMessage != null) {
Utils.showToast(genericResponseModel?.errorMessage ?? "");
} else {

Loading…
Cancel
Save