-
Notifications
You must be signed in to change notification settings - Fork 15
/
profile_page_viewmodel.dart
52 lines (46 loc) · 1.42 KB
/
profile_page_viewmodel.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import 'package:attendance/BackEnd/user.dart';
import 'package:attendance/ProfilePage/profile_page.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
// @todo #26 add country field.
// @todo #26 show error below the entry field if failed to
// set the value to the user object.
abstract class ProfilePageViewModel extends State<ProfilePage> {
FirebaseAuth auth = FirebaseAuth.instance;
FirebaseUser mUser;
String imageUrl = "";
String name = "";
TextEditingController nativeNameController = TextEditingController();
TextEditingController phoneNumberController = TextEditingController();
ProfilePageViewModel() {
auth.currentUser().then((FirebaseUser user) {
mUser = user;
setState(() {
if (mUser.displayName != null) {
name = mUser.displayName;
}
if (mUser.photoUrl != null) {
imageUrl = mUser.photoUrl;
}
});
});
}
@override
void initState() {
super.initState();
nativeNameController.addListener(_updateNativeName);
phoneNumberController.addListener(_updatephoneNumber);
}
@override
void dispose() {
super.dispose();
nativeNameController.dispose();
phoneNumberController.dispose();
}
void _updateNativeName() {
User.instance().rename(nativeNameController.text);
}
void _updatephoneNumber() {
User.instance().changePhone(phoneNumberController.text);
}
}