fix issues in login

merge-requests/117/head
Mohammad ALjammal 5 years ago
parent 69173e8c46
commit 0dad77bfa2

@ -1,4 +1,6 @@
import 'package:doctor_app_flutter/client/base_app_client.dart';
import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart';
import 'package:flutter/cupertino.dart';
import '../models/user_model.dart';
@ -14,8 +16,41 @@ const SEND_ACTIVATION_CODE_BY_OTP_NOTIFICATION_TYPE =
const MEMBER_CHECK_ACTIVATION_CODE_NEW =
'Sentry.svc/REST/MemberCheckActivationCode_New';
const GET_DOC_PROFILES = 'Doctors.svc/REST/GetDocProfiles';
DrAppSharedPreferances sharedPref = new DrAppSharedPreferances();
enum APP_STATUS { LOADING, UNAUTHENTICATED, AUTHENTICATED }
class AuthProvider with ChangeNotifier {
bool isLogin= false;
bool isLoading = true;
AuthProvider(){
getUserAuthentication();
}
void getUserAuthentication() async{
Map profile = await sharedPref.getObj(DOCTOR_PROFILE);
if(profile != null)
{
isLoading = false;
isLogin = true;
} else {
isLoading = false;
isLogin = false;
}
notifyListeners();
}
APP_STATUS get stutas {
if (isLoading) {
return APP_STATUS.LOADING;
} else{
if ( this.isLogin) {
return APP_STATUS.AUTHENTICATED;
} else {
return APP_STATUS.UNAUTHENTICATED;
}
}
}
Future<dynamic> login(UserModel userInfo) async {
try {
dynamic localRes;
@ -131,4 +166,6 @@ class AuthProvider with ChangeNotifier {
throw error;
}
}
}

@ -0,0 +1,38 @@
import 'package:doctor_app_flutter/providers/auth_provider.dart';
import 'package:doctor_app_flutter/screens/auth/login_screen.dart';
import 'package:doctor_app_flutter/widgets/shared/dr_app_circular_progress_Indeicator.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'landing_page.dart';
class RootPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
AuthProvider authProvider = Provider.of(context);
Widget buildRoot() {
switch (authProvider.stutas) {
case APP_STATUS.LOADING:
return Scaffold(
body: Center(
child: DrAppCircularProgressIndeicator(),
),
);
break;
case APP_STATUS.UNAUTHENTICATED:
return Loginsreen();
break;
case APP_STATUS.AUTHENTICATED:
return LandingPage();
break;
}
}
return AnimatedSwitcher(
duration: Duration(microseconds: 350),
child: buildRoot(),
);
}
}

@ -1,5 +1,6 @@
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/root_page.dart';
import 'package:doctor_app_flutter/screens/patients/profile/insurance_approvals_screen.dart';
import 'package:doctor_app_flutter/screens/patients/profile/patient_orders_screen.dart';
import 'package:doctor_app_flutter/screens/patients/profile/progress_note_screen.dart';
@ -38,7 +39,8 @@ import './screens/settings/settings_screen.dart';
import 'landing_page.dart';
import 'screens/doctor/doctor_reply_screen.dart';
const String INIT_ROUTE = LOGIN;
const String INIT_ROUTE = ROOT;
const String ROOT = 'root';
const String HOME = '/';
const String LOGIN = 'login';
const String PROFILE = 'profile';
@ -71,6 +73,7 @@ const String BODY_MEASUREMENTS = 'patients/body-measurements';
const String IN_PATIENT_PRESCRIPTIONS_DETAILS = 'patients/prescription-details';
var routes = {
ROOT: (_) => RootPage(),
HOME: (_) => LandingPage(),
LOGIN: (_) => Loginsreen(),
PROFILE: (_) => ProfileScreen(),

@ -335,7 +335,7 @@ class Helpers {
return localMsg;
}
clearSharedPref() async {
static clearSharedPref() async {
await sharedPref.clear();
}

@ -1,3 +1,4 @@
import 'package:doctor_app_flutter/util/helpers.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
@ -105,7 +106,8 @@ class _AppDrawerState extends State<AppDrawer> {
),
InkWell(
child: DrawerItem("lOGOUT", Icons.exit_to_app),
onTap: () {
onTap: () async {
await Helpers.clearSharedPref();
Navigator.pop(context);
Navigator.of(context).pushNamed(LOGIN);
},

Loading…
Cancel
Save