From c0c110fe7e88874d1b3f24f984fe605e4c926a53 Mon Sep 17 00:00:00 2001 From: 21pages Date: Mon, 25 Mar 2024 20:38:26 +0800 Subject: [PATCH] opt pull ab (#7509) * get ab settings only on new mode * avoid pull dummpy current ab if list not initialized Signed-off-by: 21pages --- flutter/lib/models/ab_model.dart | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/flutter/lib/models/ab_model.dart b/flutter/lib/models/ab_model.dart index 3ba0bd149..ac836a189 100644 --- a/flutter/lib/models/ab_model.dart +++ b/flutter/lib/models/ab_model.dart @@ -114,17 +114,23 @@ class AbModel { debugPrint("pullAb, force: $force, quiet: $quiet"); if (!gFFI.userModel.isLogin) return; if (force == null && listInitialized && current.initialized) return; + try { + if (!_modeTested) { + // Get personal address book guid + _personalAbGuid = null; + await _getPersonalAbGuid(); + // Determine legacy mode based on whether _personalAbGuid is null + legacyMode.value = _personalAbGuid == null; + _modeTested = true; + if (!legacyMode.value) { + await _getAbSettings(); + } + } + } catch (e) { + debugPrint("test ab mode error: $e"); + } if (!listInitialized || force == ForcePullAb.listAndCurrent) { try { - if (!_modeTested) { - // Get personal address book guid - _personalAbGuid = null; - await _getPersonalAbGuid(); - await _getAbSettings(); - // Determine legacy mode based on whether _personalAbGuid is null - legacyMode.value = _personalAbGuid == null; - _modeTested = true; - } if (_personalAbGuid != null) { debugPrint("pull ab list"); List abProfiles = List.empty(growable: true); @@ -175,7 +181,8 @@ class AbModel { } catch (e) { debugPrint("pull ab list error: $e"); } - } else if (!current.initialized || force == ForcePullAb.current) { + } else if (listInitialized && + (!current.initialized || force == ForcePullAb.current)) { try { await current.pullAb(quiet: quiet); } catch (e) {