From 8327000a0cce5e47226372e0e25c1e6faec497e7 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 12 一月 2022 16:56:43 +0800
Subject: [PATCH] 推送功能完善

---
 lib/utils/user_util.dart |   44 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 44 insertions(+), 0 deletions(-)

diff --git a/lib/utils/user_util.dart b/lib/utils/user_util.dart
index 8843036..76fceeb 100644
--- a/lib/utils/user_util.dart
+++ b/lib/utils/user_util.dart
@@ -1,12 +1,20 @@
+import 'dart:async';
 import 'dart:convert';
 import 'dart:ui';
 
 import 'package:flutter/cupertino.dart';
 import 'package:flutter/services.dart';
 import 'package:fluwx_no_pay/fluwx_no_pay.dart' as fluwx;
+import 'package:locations/api/http.dart';
 import 'package:locations/model/user/user_info.dart';
+import 'package:locations/utils/event_bus_util.dart';
+import 'package:locations/utils/location_util.dart';
 import 'package:locations/utils/string_util.dart';
 import 'package:shared_preferences/shared_preferences.dart';
+
+import 'push_util.dart';
+
+Timer? locationTimer;
 
 class UserUtil {
   static const _loginMessageChannel =
@@ -58,6 +66,36 @@
     }
   }
 
+  static Future updateUserInfo(BuildContext context) async {
+    int? uid = await getUid();
+    if (uid == null) {
+      return;
+    }
+
+    Map<String, dynamic>? result = await UserApiUtil.getUserInfo(context, uid);
+    var code = result!["code"];
+    if (code == 0) {
+      UserInfo user = UserInfo.fromJson(result["data"]);
+      //淇濆瓨鐢ㄦ埛淇℃伅
+      UserUtil.setUserInfo(user);
+      //鏄惁鍚姩瀹氫綅
+
+      locationTimer ??= Timer(Duration(seconds: 30), () {
+        //鍒ゆ柇鏄惁宸茬粡鐧诲綍
+        getUid().then((value) {
+          if (value == null) {
+            return;
+          }
+          if (user.needAlwaysLocation!) {
+            LocationUtil.startLocation(30, (state, map) {});
+          }
+        });
+      });
+    } else if (code == 80001 || code == 80002) {
+      await logout();
+    }
+  }
+
   static Future<int?> getUid() async {
     UserInfo? user = await getUserInfo();
     if (user != null) {
@@ -73,6 +111,12 @@
 
   //閫�鍑虹櫥褰�
   static logout() async {
+    await _logout();
+    await PushUtil.removeAlias();
+    eventBus.fire(LoginEventBus(false));
+  }
+
+  static _logout() async {
     SharedPreferences prefs = await SharedPreferences.getInstance();
     prefs.remove("user_info");
   }

--
Gitblit v1.8.0