together_mobile/lib/models/user_model.dart

91 lines
1.9 KiB
Dart
Raw Normal View History

2023-07-27 18:17:52 +08:00
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:together_mobile/utils/app_dir.dart';
class UserAccount extends ChangeNotifier {
String id = '';
String username = '';
String email = '';
2023-07-27 18:17:52 +08:00
void init(Map<String, dynamic> data) {
id = data['id']!;
username = data['username']!;
email = data['email']!;
}
void updateUsername(String newUsername) {
username = newUsername;
}
void updateEmail(String newEmail) {
email = newEmail;
}
2023-07-27 18:17:52 +08:00
void clean() {
id = '';
username = '';
email = '';
}
}
class UserProfile extends ChangeNotifier {
String nickname = '';
String gender = '';
String birthday = '';
String location = '';
String status = '';
String sign = '';
String avatar = '';
2023-07-27 18:17:52 +08:00
String baseAvatarPath = '';
bool isInitialised = false;
2023-07-27 18:17:52 +08:00
Future<void> init(Map<String, dynamic> json) async {
nickname = json['nickname'] ?? '';
birthday = json['birthday'] ?? '';
location = json['location'] ?? '';
status = json['status'] ?? '';
sign = json['sign'] ?? '';
avatar = json['avatar'] == null ? '' : await getAvatarPath(json['avatar']);
baseAvatarPath = await getAvatarDir();
gender = _genderEn2Cn(json['gender'] ?? '');
isInitialised = true;
}
void updateBasic(Map<String, String> newBasic) {
nickname = newBasic['nickname']!;
location = newBasic['location']!;
birthday = newBasic['birthday']!;
gender = newBasic['gender']!;
}
void updateSign(String newSign) {
sign = newSign;
}
void updateAvatar(String newAvatarPath) async {
avatar = newAvatarPath;
}
2023-07-27 18:17:52 +08:00
void clean() {
nickname = '';
gender = '';
birthday = '';
location = '';
status = '';
sign = '';
avatar = '';
baseAvatarPath = '';
isInitialised = false;
}
String _genderEn2Cn(String newGender) {
if (newGender.isEmpty) {
return newGender;
} else {
return newGender == 'man' ? '' : '';
}
}
}