|
|
|
|
@ -1,3 +1,4 @@
|
|
|
|
|
import 'package:doctor_app_flutter/providers/projects_provider.dart';
|
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
import 'package:flutter/rendering.dart';
|
|
|
|
|
import 'package:flutter/services.dart';
|
|
|
|
|
@ -23,6 +24,7 @@ class _LoginFormState extends State<LoginForm> {
|
|
|
|
|
final loginFormKey = GlobalKey<FormState>();
|
|
|
|
|
String _platformImei = 'Unknown';
|
|
|
|
|
String uniqueId = "Unknown";
|
|
|
|
|
var projectsList = [];
|
|
|
|
|
|
|
|
|
|
var userInfo = UserModel(
|
|
|
|
|
UserID: '',
|
|
|
|
|
@ -42,6 +44,9 @@ class _LoginFormState extends State<LoginForm> {
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
|
if (projectsList.length == 0) {
|
|
|
|
|
getProjectsList();
|
|
|
|
|
}
|
|
|
|
|
AuthProvider authProv = Provider.of<AuthProvider>(context);
|
|
|
|
|
|
|
|
|
|
return LayoutBuilder(builder: (ctx, constraints) {
|
|
|
|
|
@ -121,31 +126,60 @@ class _LoginFormState extends State<LoginForm> {
|
|
|
|
|
SizedBox(
|
|
|
|
|
height: 20,
|
|
|
|
|
),
|
|
|
|
|
TextFormField(
|
|
|
|
|
decoration: InputDecoration(
|
|
|
|
|
prefixIcon: Image.asset('assets/images/hospital_icon.png'),
|
|
|
|
|
hintText: 'Select Project',
|
|
|
|
|
hintStyle: TextStyle(
|
|
|
|
|
fontSize:
|
|
|
|
|
isSmallScreen ? 14 : constraints.maxWidth * 0.024),
|
|
|
|
|
enabledBorder: OutlineInputBorder(
|
|
|
|
|
borderRadius: BorderRadius.all(Radius.circular(20)),
|
|
|
|
|
borderSide: BorderSide(color: Hexcolor('#CCCCCC')),
|
|
|
|
|
),
|
|
|
|
|
focusedBorder: OutlineInputBorder(
|
|
|
|
|
borderRadius: BorderRadius.all(Radius.circular(10.0)),
|
|
|
|
|
borderSide:
|
|
|
|
|
BorderSide(color: Theme.of(context).primaryColor),
|
|
|
|
|
)
|
|
|
|
|
//BorderRadius.all(Radius.circular(20));
|
|
|
|
|
),
|
|
|
|
|
validator: (value) {
|
|
|
|
|
if (value.isEmpty) {
|
|
|
|
|
return 'Please enter some text';
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
},
|
|
|
|
|
// TextFormField(
|
|
|
|
|
// decoration: InputDecoration(
|
|
|
|
|
// prefixIcon: Image.asset('assets/images/hospital_icon.png'),
|
|
|
|
|
// hintText: 'Select Project',
|
|
|
|
|
// hintStyle: TextStyle(
|
|
|
|
|
// fontSize:
|
|
|
|
|
// isSmallScreen ? 14 : constraints.maxWidth * 0.024),
|
|
|
|
|
// enabledBorder: OutlineInputBorder(
|
|
|
|
|
// borderRadius: BorderRadius.all(Radius.circular(20)),
|
|
|
|
|
// borderSide: BorderSide(color: Hexcolor('#CCCCCC')),
|
|
|
|
|
// ),
|
|
|
|
|
// focusedBorder: OutlineInputBorder(
|
|
|
|
|
// borderRadius: BorderRadius.all(Radius.circular(10.0)),
|
|
|
|
|
// borderSide:
|
|
|
|
|
// BorderSide(color: Theme.of(context).primaryColor),
|
|
|
|
|
// )
|
|
|
|
|
// //BorderRadius.all(Radius.circular(20));
|
|
|
|
|
// ),
|
|
|
|
|
// validator: (value) {
|
|
|
|
|
// if (value.isEmpty) {
|
|
|
|
|
// return 'Please enter some text';
|
|
|
|
|
// }
|
|
|
|
|
// return null;
|
|
|
|
|
// },
|
|
|
|
|
// ),
|
|
|
|
|
//
|
|
|
|
|
Container(
|
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
|
|
|
|
|
|
borderRadius: BorderRadius.all(Radius.circular(10.0)),
|
|
|
|
|
// border: Border.all(color: Theme.of(context).primaryColor),
|
|
|
|
|
),
|
|
|
|
|
width: double.infinity,
|
|
|
|
|
child: DropdownButton(
|
|
|
|
|
value: userInfo.ProjectID,
|
|
|
|
|
iconSize: 24,
|
|
|
|
|
elevation: 16,
|
|
|
|
|
selectedItemBuilder: (BuildContext context) {
|
|
|
|
|
return projectsList.map((item) {
|
|
|
|
|
return Text(item['Desciption']);
|
|
|
|
|
}).toList();
|
|
|
|
|
},
|
|
|
|
|
items: projectsList.map((item) {
|
|
|
|
|
return DropdownMenuItem(
|
|
|
|
|
child: Text('${item['Desciption']}'),
|
|
|
|
|
value: item['ID'],
|
|
|
|
|
);
|
|
|
|
|
}).toList(),
|
|
|
|
|
onChanged: (val) {
|
|
|
|
|
userInfo.ProjectID = val;
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
|
|
|
|
|
SizedBox(
|
|
|
|
|
height: 20,
|
|
|
|
|
),
|
|
|
|
|
@ -209,7 +243,6 @@ class _LoginFormState extends State<LoginForm> {
|
|
|
|
|
loginFormKey.currentState.validate();
|
|
|
|
|
loginFormKey.currentState.save();
|
|
|
|
|
authProv.login(userInfo).then((res) {
|
|
|
|
|
print(res['MobileNumber']);
|
|
|
|
|
if (res['MessageStatus'] == 1) {
|
|
|
|
|
insertDeviceImei(res, authProv);
|
|
|
|
|
// call insert imei
|
|
|
|
|
@ -218,7 +251,6 @@ class _LoginFormState extends State<LoginForm> {
|
|
|
|
|
} else {
|
|
|
|
|
// handel error
|
|
|
|
|
}
|
|
|
|
|
print(_platformImei + '_platformImei0');
|
|
|
|
|
Navigator.of(context).pushNamed(HOME);
|
|
|
|
|
}).catchError((err) {
|
|
|
|
|
print('$err');
|
|
|
|
|
@ -237,11 +269,13 @@ class _LoginFormState extends State<LoginForm> {
|
|
|
|
|
"DoctorTitle": "Mr.",
|
|
|
|
|
"ClinicName": "MED",
|
|
|
|
|
"ProjectName": "",
|
|
|
|
|
"DoctorImageURL": "UNKNOWN"
|
|
|
|
|
"DoctorImageURL": "UNKNOWN",
|
|
|
|
|
"LogInTokenID": res['LogInTokenID'],
|
|
|
|
|
"VersionID": 1.2
|
|
|
|
|
};
|
|
|
|
|
authProv.insertDeviceImei(imeiInfo).then((res) {
|
|
|
|
|
if (res['MessageStatus'] == 1) {
|
|
|
|
|
setSharedPref('platformImei',_platformImei);
|
|
|
|
|
setSharedPref('platformImei', _platformImei);
|
|
|
|
|
// save imei on shared preferance
|
|
|
|
|
} else {
|
|
|
|
|
// handel error
|
|
|
|
|
@ -278,10 +312,24 @@ class _LoginFormState extends State<LoginForm> {
|
|
|
|
|
Future<void> setSharedPref(key, value) async {
|
|
|
|
|
Future<SharedPreferences> _prefs = SharedPreferences.getInstance();
|
|
|
|
|
final SharedPreferences prefs = await _prefs;
|
|
|
|
|
print(key);
|
|
|
|
|
print(value);
|
|
|
|
|
|
|
|
|
|
prefs.setInt(key, value).then((bool success) {
|
|
|
|
|
return;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getProjectsList() {
|
|
|
|
|
ProjectsProvider projectsProv = Provider.of<ProjectsProvider>(context);
|
|
|
|
|
projectsProv.getProjectsList().then((res) {
|
|
|
|
|
if (res['MessageStatus'] == 1) {
|
|
|
|
|
setState(() {
|
|
|
|
|
projectsList = res['ListProject'];
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
// handel error
|
|
|
|
|
}
|
|
|
|
|
}).catchError((err) {
|
|
|
|
|
print(err);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|