Merge branch 'mohammad' into 'development'

Mohammad

See merge request Cloud_Solution/doctor_app_flutter!117
merge-requests/118/head
Mohammad Aljammal 6 years ago
commit 7be7d715fe

@ -11,6 +11,7 @@ import './providers/auth_provider.dart';
import './providers/patients_provider.dart';
import './providers/hospital_provider.dart';
import './routes.dart';
import 'config/config.dart';
void main() => runApp(MyApp());
@ -18,6 +19,7 @@ class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
AppGlobal.CONTEX = context;
return LayoutBuilder(
builder: (context, constraints) {
return OrientationBuilder(builder: (context, orientation) {

@ -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 'config/config.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();
}

@ -37,8 +37,8 @@ class _LoginFormState extends State<LoginForm> {
String uniqueId = "Unknown";
var projectsList = [];
bool _isInit = true;
FocusNode focusPass;
FocusNode focusProject;
FocusNode focusPass = FocusNode();
FocusNode focusProject = FocusNode();
var userInfo = UserModel(
UserID: '',
@ -72,8 +72,7 @@ class _LoginFormState extends State<LoginForm> {
@override
Widget build(BuildContext context) {
final focusPass = FocusNode();
final focusProject = FocusNode();
AuthProvider authProv = Provider.of<AuthProvider>(context);
@ -100,7 +99,7 @@ class _LoginFormState extends State<LoginForm> {
userInfo.UserID = value.trim();
},
onFieldSubmitted: (_) {
FocusScope.of(context).nextFocus();
focusPass.nextFocus();
},
autofocus: false,
),
@ -121,7 +120,7 @@ class _LoginFormState extends State<LoginForm> {
userInfo.Password = value;
},
onFieldSubmitted: (_) {
FocusScope.of(context).nextFocus();
focusPass.nextFocus();
helpers.showCupertinoPicker(
context, projectsList, 'Name', onSelectProject);
},

@ -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);
},

@ -1,3 +1,4 @@
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/routes.dart';
import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
@ -13,6 +14,7 @@ class AppScaffold extends StatelessWidget {
@override
Widget build(BuildContext context) {
AppGlobal.CONTEX = context;
return Scaffold(
backgroundColor: Hexcolor('#F5F5F5'),
appBar: appBarTitle != ''

Loading…
Cancel
Save