Jelajahi Sumber

[new]修复引力引擎问题

zk 4 bulan lalu
induk
melakukan
9e81c2a259
1 mengubah file dengan 19 tambahan dan 26 penghapusan
  1. 19 26
      lib/sdk/gravity/gravity_helper.dart

+ 19 - 26
lib/sdk/gravity/gravity_helper.dart

@@ -20,12 +20,15 @@ class GravityHelper {
   static const String tag = 'GravityHelper';
   static const String _keyCurrentDeviceId = "current_device_id";
   static const bool _isShowToast = false;
-  static CancelableFuture<bool>? _initFuture;
   static String? _currentClientId;
-
   static bool? _isFromPromote;
+  static bool isInit = false;
 
   static init() {
+    if (!isInit) {
+      return;
+    }
+    isInit = true;
     _initialize(false);
     _uploadClientId();
   }
@@ -44,17 +47,18 @@ class GravityHelper {
 
   static _initialize(bool refreshDeviceId,
       {GravitySuccessCallback? callback}) async {
-    _initFuture?.cancel();
-    _initFuture = AsyncUtil.retryWithExponentialBackoff<bool>(() async {
+    AsyncUtil.retryWithExponentialBackoff<bool>(() async {
       String deviceId = await _getDeviceId(refreshDeviceId);
       CancelableFuture<bool> initFuture = _gravityInitialize(deviceId);
-      _initFuture = initFuture;
       return await initFuture;
-    }, 5);
-    _initFuture?.then((isPromote) {
+    }, 5)
+        .then((isPromote) {
       _isFromPromote = isPromote;
       callback?.call();
     }).catchError((error) {
+      if (error is CancelledError) {
+        return;
+      }
       _initialize(refreshDeviceId, callback: callback);
     });
   }
@@ -64,7 +68,7 @@ class GravityHelper {
     String? currentDeviceId = _getCurrentDeviceId();
     if (currentDeviceId == null || refreshDeviceId) {
       MemberStatusResponse response =
-          await AccountRepository.getInstance().getMemberStatus();
+      await AccountRepository.getInstance().getMemberStatus();
       KVUtil.putString(_keyCurrentDeviceId, response.deviceId);
       return response.deviceId;
     }
@@ -78,11 +82,11 @@ class GravityHelper {
   static CancelableFuture<bool> _gravityInitialize(String deviceId) {
     return AsyncUtil.retryWithExponentialBackoff<bool>(() {
       return GravityEngine.initialize(
-              GravityConfig.gravityAppId,
-              GravityConfig.gravityAccessToken,
-              deviceId,
-              atmobPlatformInfo.channelName ?? '',
-              BuildConfig.isDebug)
+          GravityConfig.gravityAppId,
+          GravityConfig.gravityAccessToken,
+          deviceId,
+          atmobPlatformInfo.channelName ?? '',
+          BuildConfig.isDebug)
           .then((data) {
         _toast('gravity initialize success clientId:$deviceId');
         debugPrint('gravity initialize success clientId:$deviceId');
@@ -98,20 +102,9 @@ class GravityHelper {
     }
   }
 
-  static void onLogin() {
-    _clearCurrentDeviceId();
-    _initialize(true, callback: () {
-      if (_currentClientId != null) {
-        GravityEngine.login(_currentClientId!);
-      }
-    });
-  }
+  static void onLogin() {}
 
-  static void onLogout() async {
-    _currentClientId = null;
-    await GravityEngine.logout();
-    _initialize(false, callback: null);
-  }
+  static void onLogout() async {}
 
   static void _clearCurrentDeviceId() {
     KVUtil.putString(_keyCurrentDeviceId, null);