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.
108 lines
3.2 KiB
108 lines
3.2 KiB
3 years ago
|
import 'package:flutter/material.dart';
|
||
|
import 'package:shared_preferences/shared_preferences.dart';
|
||
|
import 'package:teso/util/consts.dart';
|
||
|
import 'package:teso/providers/user_provider.dart';
|
||
|
import 'package:provider/provider.dart';
|
||
|
|
||
|
class Gender extends StatefulWidget {
|
||
|
final int value;
|
||
|
|
||
|
const Gender({Key key, this.value}) : super(key: key);
|
||
|
@override
|
||
|
_GenderState createState() => _GenderState(value: this.value);
|
||
|
}
|
||
|
|
||
|
class _GenderState extends State<Gender> {
|
||
|
int value;
|
||
|
_GenderState({this.value});
|
||
|
List<String> genders = ["Male", "Female", "Other"];
|
||
|
bool light = true;
|
||
|
|
||
|
@override
|
||
|
void initState() {
|
||
|
SharedPreferences.getInstance().then((prefs) {
|
||
|
setState(() {
|
||
|
light = prefs.getString("theme") == "dark" ? false : true;
|
||
|
});
|
||
|
});
|
||
|
super.initState();
|
||
|
}
|
||
|
|
||
|
@override
|
||
|
Widget build(BuildContext context) {
|
||
|
return Scaffold(
|
||
|
appBar: AppBar(
|
||
|
title: Text("Gender"),
|
||
|
leading: IconButton(
|
||
|
icon: Icon(Icons.arrow_back_ios),
|
||
|
onPressed: () {
|
||
|
Navigator.of(context).pop();
|
||
|
},
|
||
|
),
|
||
|
actions: <Widget>[
|
||
|
new Container(
|
||
|
margin: EdgeInsets.symmetric(vertical: 0.0, horizontal: 20),
|
||
|
child: new Center(
|
||
|
child: ElevatedButton(
|
||
|
style: ElevatedButton.styleFrom(
|
||
|
primary: Theme.of(context).colorScheme.secondary,
|
||
|
shape: RoundedRectangleBorder(
|
||
|
borderRadius: BorderRadius.all(
|
||
|
Radius.circular(25.0),
|
||
|
),
|
||
|
),
|
||
|
),
|
||
|
onPressed: () {
|
||
|
Provider.of<UserProvider>(context, listen: false)
|
||
|
.currentUser
|
||
|
.gender = genders[value];
|
||
|
Navigator.of(context).pop(value);
|
||
|
},
|
||
|
child: Text("Done"),
|
||
|
),
|
||
|
),
|
||
|
)
|
||
|
],
|
||
|
),
|
||
|
body: Container(
|
||
|
child: Column(
|
||
|
children: <Widget>[
|
||
|
for (int i = 0; i < genders.length; i++)
|
||
|
Column(
|
||
|
children: [
|
||
|
ListTile(
|
||
|
title: Text(
|
||
|
genders[i],
|
||
|
style: Theme.of(context).textTheme.subtitle1.copyWith(
|
||
|
color: light
|
||
|
? i == 3
|
||
|
? Colors.black38
|
||
|
: Colors.black
|
||
|
: i == 3
|
||
|
? Colors.white10
|
||
|
: Colors.white,
|
||
|
),
|
||
|
),
|
||
|
trailing: Radio(
|
||
|
value: i,
|
||
|
groupValue: value,
|
||
|
activeColor: accentMain,
|
||
|
onChanged: i == 3
|
||
|
? null
|
||
|
: (int _value) {
|
||
|
setState(() {
|
||
|
value = _value;
|
||
|
});
|
||
|
},
|
||
|
),
|
||
|
),
|
||
|
Divider(),
|
||
|
],
|
||
|
),
|
||
|
],
|
||
|
),
|
||
|
),
|
||
|
);
|
||
|
}
|
||
|
}
|