fix user authentication data

merge-update-with-lab-changes
Mohammad Aljmma 5 years ago
parent 7d2f1cf318
commit a077d87dd8

@ -12,9 +12,10 @@ class MedicalViewModel extends BaseViewModel {
_medicalService.appoitmentAllHistoryResultList; _medicalService.appoitmentAllHistoryResultList;
getAppointmentHistory() async { getAppointmentHistory() async {
var asd ="";
if (authenticatedUserObject.isLogin) { if (authenticatedUserObject.isLogin) {
setState(ViewState.Busy); setState(ViewState.Busy);
if (_medicalService.appoitmentAllHistoryResultList.length == 0) // if (_medicalService.appoitmentAllHistoryResultList.length == 0)
await _medicalService.getAppointmentHistory(); await _medicalService.getAppointmentHistory();
if (_medicalService.hasError) { if (_medicalService.hasError) {
error = _medicalService.error; error = _medicalService.error;

@ -18,6 +18,8 @@ class ProjectViewModel extends BaseViewModel {
bool isError = false; bool isError = false;
String error = ''; String error = '';
dynamic searchvalue; dynamic searchvalue;
bool isLogin = false;
dynamic get searchValue => searchvalue; dynamic get searchValue => searchvalue;

@ -1,10 +1,15 @@
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/service/AuthenticatedUserObject.dart'; import 'package:diplomaticquarterapp/core/service/AuthenticatedUserObject.dart';
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import '../../locator.dart'; import '../../locator.dart';
AppSharedPreferences sharedPref = AppSharedPreferences();
class BaseView<T extends BaseViewModel> extends StatefulWidget { class BaseView<T extends BaseViewModel> extends StatefulWidget {
final Widget Function(BuildContext context, T model, Widget child) builder; final Widget Function(BuildContext context, T model, Widget child) builder;
final Function(T) onModelReady; final Function(T) onModelReady;
@ -20,16 +25,25 @@ class BaseView<T extends BaseViewModel> extends StatefulWidget {
class _BaseViewState<T extends BaseViewModel> extends State<BaseView<T>> { class _BaseViewState<T extends BaseViewModel> extends State<BaseView<T>> {
T model = locator<T>(); T model = locator<T>();
AuthenticatedUserObject authenticatedUserObject = locator<AuthenticatedUserObject>(); AuthenticatedUserObject authenticatedUserObject =
locator<AuthenticatedUserObject>();
bool isLogin = false;
@override @override
void initState() { void initState() {
if (widget.onModelReady != null && authenticatedUserObject.isLogin) { //TODO fix it
//Provider.of<ProjectViewModel>(context, listen: false).isLogin;
if (widget.onModelReady != null && Provider.of<ProjectViewModel>(context, listen: false).isLogin) {
widget.onModelReady(model); widget.onModelReady(model);
} }
super.initState(); super.initState();
} }
getUser() async {
var userData = await sharedPref.getObject(USER_PROFILE);
this.isLogin = userData != null;
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return ChangeNotifierProvider<T>( return ChangeNotifierProvider<T>(

@ -40,7 +40,7 @@ class HomePage extends StatefulWidget {
} }
class _HomePageState extends State<HomePage> { class _HomePageState extends State<HomePage> {
var toDoProvider; ToDoCountProviderModel toDoProvider;
@override @override
void initState() { void initState() {

@ -2,6 +2,7 @@ import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/config/size_config.dart'; import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:diplomaticquarterapp/core/service/AuthenticatedUserObject.dart'; import 'package:diplomaticquarterapp/core/service/AuthenticatedUserObject.dart';
import 'package:diplomaticquarterapp/core/viewModels/appointment_rate_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/appointment_rate_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/locator.dart'; import 'package:diplomaticquarterapp/locator.dart';
import 'package:diplomaticquarterapp/models/Authentication/check_activation_code_response.dart'; import 'package:diplomaticquarterapp/models/Authentication/check_activation_code_response.dart';
import 'package:diplomaticquarterapp/models/Authentication/check_paitent_authentication_req.dart'; import 'package:diplomaticquarterapp/models/Authentication/check_paitent_authentication_req.dart';
@ -23,6 +24,7 @@ import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:smart_progress_bar/smart_progress_bar.dart'; import 'package:smart_progress_bar/smart_progress_bar.dart';
class Login extends StatefulWidget { class Login extends StatefulWidget {
@ -46,6 +48,8 @@ class _Login extends State<Login> {
AuthenticatedUserObject authenticatedUserObject = AuthenticatedUserObject authenticatedUserObject =
locator<AuthenticatedUserObject>(); locator<AuthenticatedUserObject>();
ProjectViewModel projectViewModel;
@override @override
void initState() { void initState() {
// getDeviceToken(); // getDeviceToken();
@ -60,6 +64,7 @@ class _Login extends State<Login> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
projectViewModel = Provider.of(context);
return AppScaffold( return AppScaffold(
appBarTitle: TranslationBase.of(context).login, appBarTitle: TranslationBase.of(context).login,
isShowAppBar: true, isShowAppBar: true,
@ -224,6 +229,7 @@ class _Login extends State<Login> {
// authenticatedUserObject.user = AuthenticatedUser.fromJson(result.list), // authenticatedUserObject.user = AuthenticatedUser.fromJson(result.list),
authenticatedUserObject.isLogin = true, authenticatedUserObject.isLogin = true,
appointmentRateViewModel.isLogin = true, appointmentRateViewModel.isLogin = true,
projectViewModel.isLogin = true,
appointmentRateViewModel appointmentRateViewModel
.getIsLastAppointmentRatedList() .getIsLastAppointmentRatedList()
.then((value) => { .then((value) => {

@ -61,7 +61,7 @@ class _MedicalProfilePageState extends State<MedicalProfilePage> {
width: double.infinity, width: double.infinity,
// color: Colors.black.withOpacity(0.0) // color: Colors.black.withOpacity(0.0)
), ),
if (model.authenticatedUserObject.isLogin) if (model.isLogin)
ListView.builder( ListView.builder(
itemBuilder: (context, index) => itemBuilder: (context, index) =>
TimeLineWidget( TimeLineWidget(
@ -81,6 +81,7 @@ class _MedicalProfilePageState extends State<MedicalProfilePage> {
padding: EdgeInsets.symmetric(vertical: 5.0), padding: EdgeInsets.symmetric(vertical: 5.0),
child: Column( child: Column(
children: <Widget>[ children: <Widget>[
if(model.isLogin)
Container( Container(
width: double.infinity, width: double.infinity,
height: 55, height: 55,
@ -323,7 +324,7 @@ class _MedicalProfilePageState extends State<MedicalProfilePage> {
) )
], ],
), ),
if (model.user != null) if (model.user != null && model.isLogin)
Positioned( Positioned(
top: 185, top: 185,
left: 20, left: 20,

@ -350,6 +350,8 @@ class _AppDrawerState extends State<AppDrawer> {
logout() async { logout() async {
authenticatedUserObject.logout(); authenticatedUserObject.logout();
projectProvider.isLogin = false;
await authenticatedUserObject.getUser();
await sharedPref.clear(); await sharedPref.clear();
this.user = null; this.user = null;
Navigator.of(context).pushNamed(HOME); Navigator.of(context).pushNamed(HOME);

@ -110,7 +110,7 @@ class AppScaffold extends StatelessWidget {
], ],
) )
: null, : null,
body: (!authenticatedUserObject.isLogin && isShowDecPage) body: (!Provider.of<ProjectViewModel>(context, listen: false).isLogin && isShowDecPage)
? NotAutPage( ? NotAutPage(
title: appBarTitle, title: appBarTitle,
description: description, description: description,

Loading…
Cancel
Save