12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- import 'dart:convert';
- import 'dart:typed_data';
- import 'package:flutter/material.dart';
- import 'package:flutter_habit/common/LocalData.dart';
- import 'package:flutter_habit/pages/home_page.dart';
- class UserProvider extends ChangeNotifier {
- String? token;
- int? uid;
- String? email;
- String? userName;
- String? gender;
- String? birthday;
- Uint8List? photo;
- int? coins;
- void init() {
- load();
- debugPrint("""init AccountProvider to:
- token = $token
- uid = $uid
- email = $email
- userName = $userName
- gender = $gender
- birthday = $birthday
- photo = ${photo != null ? "notNull" : "null"}
- coins = $coins""");
- }
- void store() {
- LocalData.getInstance()!.setString("token", token!);
- LocalData.getInstance()!.setInt("uid", uid!);
- LocalData.getInstance()!.setString("email", email!);
- LocalData.getInstance()!.setString("userName", userName!);
- LocalData.getInstance()!.setString("gender", gender!);
- LocalData.getInstance()!.setString("birthday", birthday!);
- LocalData.getInstance()!.setString(
- "photo", photo == null ? null : Base64Encoder().convert(photo!));
- LocalData.getInstance()!.setInt("coins", coins!);
- }
- void load() {
- token = LocalData.getInstance()!.getString("token");
- uid = LocalData.getInstance()!.getInt("uid");
- email = LocalData.getInstance()!.getString("email");
- userName = LocalData.getInstance()!.getString("userName");
- gender = LocalData.getInstance()!.getString("gender");
- birthday = LocalData.getInstance()!.getString("birthday");
- String? listString = LocalData.getInstance()!.getString("photo");
- if (listString == null) {
- photo = null;
- } else {
- photo = Base64Decoder().convert(listString);
- }
- coins = LocalData.getInstance()!.getInt("coins");
- }
- Future<void> cleanDataAndBackToHome(BuildContext context) async {
- token = null;
- uid = null;
- // email = null;
- userName = null;
- gender = null;
- birthday = null;
- photo = null;
- coins = null;
- store();
- await Navigator.of(context).pushAndRemoveUntil(
- MaterialPageRoute(builder: (context) => HomePage()),
- (route) => route == null,
- );
- refresh();
- }
- void refresh() {
- store();
- notifyListeners();
- }
- }
|