|
|
|
@ -1,12 +1,18 @@
|
|
|
|
|
import 'dart:ui';
|
|
|
|
|
|
|
|
|
|
import 'package:diplomaticquarterapp/config/size_config.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/core/service/AuthenticatedUserObject.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/models/Authentication/authenticated_user.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/models/Authentication/check_activation_code_response.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/models/FamilyFiles/GetAllSharedRecordByStatusResponse.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/pages/BookAppointment/widgets/BranchView.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/services/family_files/family_files_provider.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/uitl/utils.dart';
|
|
|
|
@ -21,6 +27,7 @@ import 'package:flutter/material.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/routes.dart';
|
|
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
|
|
|
|
|
|
class MyFamily extends StatefulWidget {
|
|
|
|
|
final bool isAppbarVisible;
|
|
|
|
@ -35,15 +42,23 @@ class _MyFamily extends State<MyFamily> with TickerProviderStateMixin {
|
|
|
|
|
var userID;
|
|
|
|
|
TabController _tabController;
|
|
|
|
|
int _tabIndex = 0;
|
|
|
|
|
AuthenticatedUserObject authenticatedUserObject =
|
|
|
|
|
locator<AuthenticatedUserObject>();
|
|
|
|
|
AppointmentRateViewModel appointmentRateViewModel =
|
|
|
|
|
locator<AppointmentRateViewModel>();
|
|
|
|
|
ProjectViewModel projectViewModel;
|
|
|
|
|
AuthenticatedUser user;
|
|
|
|
|
@override
|
|
|
|
|
void initState() {
|
|
|
|
|
_tabController = new TabController(length: 2, vsync: this, initialIndex: 0);
|
|
|
|
|
|
|
|
|
|
checkUserData();
|
|
|
|
|
super.initState();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool expandFlag = false;
|
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
|
projectViewModel = Provider.of(context);
|
|
|
|
|
|
|
|
|
|
return AppScaffold(
|
|
|
|
|
appBarTitle: TranslationBase.of(context).myFamilyFiles,
|
|
|
|
|
isShowAppBar: widget.isAppbarVisible,
|
|
|
|
@ -117,14 +132,14 @@ class _MyFamily extends State<MyFamily> with TickerProviderStateMixin {
|
|
|
|
|
body: Column(
|
|
|
|
|
children: <Widget>[
|
|
|
|
|
Expanded(
|
|
|
|
|
child: TabBarView(
|
|
|
|
|
child: (user != null && projectViewModel.isLogin) ? TabBarView(
|
|
|
|
|
physics: BouncingScrollPhysics(),
|
|
|
|
|
controller: _tabController,
|
|
|
|
|
children: [
|
|
|
|
|
myFamilyDetails(context),
|
|
|
|
|
myFamilyRequest(context)
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
) : Container(child:AppText('Loading..')),
|
|
|
|
|
)
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
@ -540,12 +555,14 @@ class _MyFamily extends State<MyFamily> with TickerProviderStateMixin {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<GetAllSharedRecordsByStatusResponse> getFamilyFiles() async {
|
|
|
|
|
if (await sharedPref.getObject(FAMILY_FILE) != null) {
|
|
|
|
|
// print(await sharedPref.getObject(FAMILY_FILE));
|
|
|
|
|
return Future.value(GetAllSharedRecordsByStatusResponse.fromJson(
|
|
|
|
|
await sharedPref.getObject(FAMILY_FILE)));
|
|
|
|
|
} else {
|
|
|
|
|
return familyFileProvider.getSharedRecordByStatus();
|
|
|
|
|
if (user != null) {
|
|
|
|
|
if (await sharedPref.getObject(FAMILY_FILE) != null) {
|
|
|
|
|
// print(await sharedPref.getObject(FAMILY_FILE));
|
|
|
|
|
return Future.value(GetAllSharedRecordsByStatusResponse.fromJson(
|
|
|
|
|
await sharedPref.getObject(FAMILY_FILE)));
|
|
|
|
|
} else {
|
|
|
|
|
return familyFileProvider.getSharedRecordByStatus();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -592,20 +609,55 @@ class _MyFamily extends State<MyFamily> with TickerProviderStateMixin {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
switchUser(user, context) {
|
|
|
|
|
GifLoaderDialogUtils.showMyDialog(context);
|
|
|
|
|
GifLoaderDialogUtils.showMyDialog(context);
|
|
|
|
|
// this
|
|
|
|
|
// .familyFileProvider
|
|
|
|
|
// .silentLoggin(user)
|
|
|
|
|
// .then((value) => loginAfter(value, context));
|
|
|
|
|
|
|
|
|
|
// Utils.showProgressDialog(context);
|
|
|
|
|
this
|
|
|
|
|
.familyFileProvider
|
|
|
|
|
.silentLoggin(user)
|
|
|
|
|
.then((value) => loginAfter(value, context));
|
|
|
|
|
.silentLoggin(user is AuthenticatedUser ? null : user,
|
|
|
|
|
mainUser: user is AuthenticatedUser)
|
|
|
|
|
.then((value) => loginAfter(value, context))
|
|
|
|
|
.catchError((err) {
|
|
|
|
|
print(err);
|
|
|
|
|
AppToast.showErrorToast(message: err);
|
|
|
|
|
Navigator.of(context).pop();
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
loginAfter(result, context) async{
|
|
|
|
|
GifLoaderDialogUtils.hideDialog(context);
|
|
|
|
|
var familyFile = await sharedPref.getObject(FAMILY_FILE);
|
|
|
|
|
// var familyFile = await sharedPref.getObject(FAMILY_FILE);
|
|
|
|
|
// var mainUser = await sharedPref.getObject(MAIN_USER);
|
|
|
|
|
// result = CheckActivationCode.fromJson(result);
|
|
|
|
|
// this.sharedPref.clear();
|
|
|
|
|
// this.sharedPref.setObject(FAMILY_FILE, familyFile);
|
|
|
|
|
// this.sharedPref.setObject(MAIN_USER, mainUser);
|
|
|
|
|
// result.list.isFamily = true;
|
|
|
|
|
// this.sharedPref.setObject(USER_PROFILE, result.list);
|
|
|
|
|
// this.sharedPref.setObject(LOGIN_TOKEN_ID, result.logInTokenID);
|
|
|
|
|
// this.sharedPref.setString(TOKEN, result.authenticationTokenID);
|
|
|
|
|
//
|
|
|
|
|
// authenticatedUserObject.isLogin = true;
|
|
|
|
|
// appointmentRateViewModel.isLogin = true;
|
|
|
|
|
// projectViewModel.isLogin = true;
|
|
|
|
|
// //this.checkIfUserAgreedBefore(result),
|
|
|
|
|
// Navigator.of(context).pushNamed(
|
|
|
|
|
// HOME,
|
|
|
|
|
// );
|
|
|
|
|
result = CheckActivationCode.fromJson(result);
|
|
|
|
|
var familyFile = await sharedPref.getObject(FAMILY_FILE);
|
|
|
|
|
var mainUser = await sharedPref.getObject(MAIN_USER);
|
|
|
|
|
this.sharedPref.clear();
|
|
|
|
|
this.sharedPref.setObject(FAMILY_FILE, familyFile);
|
|
|
|
|
if (mainUser["PatientID"] != result.list.patientID) {
|
|
|
|
|
result.list.isFamily = true;
|
|
|
|
|
}
|
|
|
|
|
this.sharedPref.setObject(MAIN_USER, mainUser);
|
|
|
|
|
this.sharedPref.setObject(USER_PROFILE, result.list);
|
|
|
|
|
this.sharedPref.setObject(FAMILY_FILE, familyFile);
|
|
|
|
|
this.sharedPref.setObject(LOGIN_TOKEN_ID, result.logInTokenID);
|
|
|
|
|
this.sharedPref.setString(TOKEN, result.authenticationTokenID);
|
|
|
|
|
//this.checkIfUserAgreedBefore(result),
|
|
|
|
@ -634,4 +686,17 @@ class _MyFamily extends State<MyFamily> with TickerProviderStateMixin {
|
|
|
|
|
refreshFamily(context)
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
checkUserData() async{
|
|
|
|
|
if (await this.sharedPref.getObject(USER_PROFILE) != null) {
|
|
|
|
|
var data = AuthenticatedUser.fromJson(
|
|
|
|
|
await this.sharedPref.getObject(USER_PROFILE));
|
|
|
|
|
|
|
|
|
|
var data2 = AuthenticatedUser.fromJson(
|
|
|
|
|
await this.sharedPref.getObject(MAIN_USER));
|
|
|
|
|
print(data2);
|
|
|
|
|
setState(() {
|
|
|
|
|
this.user = data;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|