You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
154 lines
5.5 KiB
154 lines
5.5 KiB
3 years ago
|
import 'package:country_list_pick/country_list_pick.dart';
|
||
|
import 'package:flutter/material.dart';
|
||
|
import 'package:provider/provider.dart';
|
||
|
import 'package:shared_preferences/shared_preferences.dart';
|
||
|
import 'package:teso/Classes/TesoUser.dart';
|
||
|
import 'package:teso/Pages/Sub_Pages/AccountSettings/changePassword.dart';
|
||
|
import 'package:teso/Pages/Sub_Pages/AccountSettings/genderPicker.dart';
|
||
|
import 'package:teso/providers/pageAnimations.dart';
|
||
|
import 'package:teso/providers/user_provider.dart';
|
||
|
|
||
|
class AccountSettings extends StatefulWidget {
|
||
|
@override
|
||
|
_AccountSettingsState createState() => _AccountSettingsState();
|
||
|
}
|
||
|
|
||
|
class _AccountSettingsState extends State<AccountSettings> {
|
||
|
bool show = false;
|
||
|
|
||
|
@override
|
||
|
void initState() {
|
||
|
SharedPreferences.getInstance().then((value) {
|
||
|
setState(() {
|
||
|
show = value.getBool("password");
|
||
|
});
|
||
|
});
|
||
|
super.initState();
|
||
|
}
|
||
|
|
||
|
@override
|
||
|
Widget build(BuildContext context) {
|
||
|
UserProvider userProvider = Provider.of<UserProvider>(context);
|
||
|
return Consumer<UserProvider>(
|
||
|
builder: (BuildContext context, UserProvider user, Widget child) {
|
||
|
return Container(
|
||
|
height: MediaQuery.of(context).size.height * 0.9,
|
||
|
child: SingleChildScrollView(
|
||
|
scrollDirection: Axis.vertical,
|
||
|
child: new Wrap(
|
||
|
children: <Widget>[
|
||
|
new Container(
|
||
|
margin: EdgeInsets.only(
|
||
|
left: 20.0,
|
||
|
top: 20.0,
|
||
|
bottom: 12.0,
|
||
|
),
|
||
|
child: Row(
|
||
|
children: [
|
||
|
Container(
|
||
|
child: InkWell(
|
||
|
onTap: () => Navigator.pop(context),
|
||
|
child: Icon(Icons.arrow_back_ios),
|
||
|
),
|
||
|
),
|
||
|
Expanded(
|
||
|
child: Container(
|
||
|
width: double.infinity,
|
||
|
child: Center(
|
||
|
child: Text(
|
||
|
"Account Settings",
|
||
|
style: TextStyle(
|
||
|
fontSize: 18.0,
|
||
|
),
|
||
|
),
|
||
|
),
|
||
|
),
|
||
|
),
|
||
|
],
|
||
|
)),
|
||
|
Padding(
|
||
|
padding: const EdgeInsets.symmetric(horizontal: 20.0),
|
||
|
child: Divider(),
|
||
|
),
|
||
|
new ListTile(
|
||
|
trailing: CountryListPick(
|
||
|
theme: CountryTheme(
|
||
|
isShowFlag: true, isShowCode: true, isShowTitle: true),
|
||
|
initialSelection: user.currentUser.country,
|
||
|
onChanged: (CountryCode code) {
|
||
|
TesoUser newuser = user.currentUser;
|
||
|
newuser.country = code.dialCode;
|
||
|
Provider.of<UserProvider>(context, listen: false)
|
||
|
.updateUser(newuser);
|
||
|
},
|
||
|
),
|
||
|
title: new Text('Country'),
|
||
|
),
|
||
|
new ListTile(
|
||
|
trailing: new Wrap(
|
||
|
spacing: 10,
|
||
|
children: [
|
||
|
new Text(
|
||
|
userProvider.currentUser.gender,
|
||
|
style: TextStyle(
|
||
|
fontSize: 16,
|
||
|
),
|
||
|
),
|
||
|
Icon(Icons.arrow_forward_ios)
|
||
|
],
|
||
|
),
|
||
|
title: new Text('Gender'),
|
||
|
onTap: () async {
|
||
|
int orientation = 5;
|
||
|
switch (userProvider.currentUser.gender) {
|
||
|
case "Male":
|
||
|
orientation = 0;
|
||
|
break;
|
||
|
case "Female":
|
||
|
orientation = 1;
|
||
|
break;
|
||
|
case "Other":
|
||
|
orientation = 2;
|
||
|
break;
|
||
|
}
|
||
|
orientation = await Navigator.push(
|
||
|
context,
|
||
|
PageTransition(
|
||
|
child: Gender(
|
||
|
value: orientation,
|
||
|
),
|
||
|
type: PageTransitionType.leftToRight,
|
||
|
),
|
||
|
);
|
||
|
TesoUser newuser = user.currentUser;
|
||
|
Provider.of<UserProvider>(context, listen: false)
|
||
|
.updateUser(newuser);
|
||
|
}),
|
||
|
Visibility(
|
||
|
visible: show,
|
||
|
child: new ListTile(
|
||
|
trailing: new Icon(Icons.arrow_forward_ios),
|
||
|
title: new Text('Change password'),
|
||
|
onTap: () => Navigator.push(
|
||
|
context,
|
||
|
PageTransition(
|
||
|
child: ChangePassword(),
|
||
|
type: PageTransitionType.leftToRight,
|
||
|
),
|
||
|
)),
|
||
|
),
|
||
|
// new ListTile(
|
||
|
// trailing: new Icon(Icons.arrow_forward_ios),
|
||
|
// title: new Text('Delete account'),
|
||
|
// subtitle: new Text(
|
||
|
// "Delete your account and account data not reversible"),
|
||
|
// onTap: () => {},
|
||
|
// ),
|
||
|
],
|
||
|
),
|
||
|
),
|
||
|
);
|
||
|
});
|
||
|
}
|
||
|
}
|