Commit ed5df73e1406b0d42ebaef9d3c934cfa35cfa185

Authored by 常守达
1 parent dc2ea068

fix(login): 数数初始化

@@ -335,9 +335,10 @@ class TodayController extends GetMaterialController { @@ -335,9 +335,10 @@ class TodayController extends GetMaterialController {
335 335
336 Future<void> onAuthorizeTap() async { 336 Future<void> onAuthorizeTap() async {
337 ta.track('click_doublefeel_today_status', properties: {'ita': '授权访问健康数据'}); 337 ta.track('click_doublefeel_today_status', properties: {'ita': '授权访问健康数据'});
338 - if (showHealthDataAuthCardStatus.value == 1 && hrvChartData.isNotEmpty) {  
339 - return;  
340 - } else if (showHealthDataAuthCardStatus.value == 0) { 338 + // if (showHealthDataAuthCardStatus.value == 1) {
  339 + // return;
  340 + // } else
  341 + if (showHealthDataAuthCardStatus.value == 0) {
341 await requestHealthAuthorization(isFromNoPermissionPage: true); 342 await requestHealthAuthorization(isFromNoPermissionPage: true);
342 checkHealthDataAuthCardVisible(); 343 checkHealthDataAuthCardVisible();
343 } else { 344 } else {
@@ -48,16 +48,12 @@ class LoginController extends GetxController { @@ -48,16 +48,12 @@ class LoginController extends GetxController {
48 48
49 AppleSignInModel? appleSignInModel; 49 AppleSignInModel? appleSignInModel;
50 50
51 - DateTime? _lastToggleTime; 51 + bool _isToggling = false;
52 52
53 - Future<void> toggleTermsChecked() async {  
54 - // 防抖:300ms 内的重复调用直接忽略,防止积压的手势事件互相抵消勾选状态  
55 - final now = DateTime.now();  
56 - if (_lastToggleTime != null &&  
57 - now.difference(_lastToggleTime!) < const Duration(milliseconds: 300)) {  
58 - return;  
59 - }  
60 - _lastToggleTime = now; 53 + void toggleTermsChecked() {
  54 + // 互斥锁:函数执行期间忽略所有重入调用(手势积压、快速连点)
  55 + if (_isToggling) return;
  56 + _isToggling = true;
61 57
62 final newValue = !termsChecked.value; 58 final newValue = !termsChecked.value;
63 termsChecked.value = newValue; 59 termsChecked.value = newValue;
@@ -71,6 +67,11 @@ class LoginController extends GetxController { @@ -71,6 +67,11 @@ class LoginController extends GetxController {
71 // ② SDK 初始化完全异步,不阻塞任何点击 67 // ② SDK 初始化完全异步,不阻塞任何点击
72 unawaited(_initSdksAndTrack()); 68 unawaited(_initSdksAndTrack());
73 } 69 }
  70 +
  71 + // 释放锁:推迟到下一帧,确保当前帧内积压的所有手势事件都已被忽略
  72 + WidgetsBinding.instance.addPostFrameCallback((_) {
  73 + _isToggling = false;
  74 + });
74 } 75 }
75 76
76 Future<void> _initSdksAndTrack() async { 77 Future<void> _initSdksAndTrack() async {
@@ -18,7 +18,7 @@ class ThinkingDataService { @@ -18,7 +18,7 @@ class ThinkingDataService {
18 ); 18 );
19 TDAnalytics.init( 19 TDAnalytics.init(
20 _environment.thinkingDataAppId, AppConst.thinkingDataServerUrl); 20 _environment.thinkingDataAppId, AppConst.thinkingDataServerUrl);
21 - TDAnalytics.calibrateTimeWithNtp('time.apple.com'); 21 + // TDAnalytics.calibrateTimeWithNtp('time.apple.com');
22 TDAnalytics.enableAutoTrack(TDAutoTrackEventType.APP_START | 22 TDAnalytics.enableAutoTrack(TDAutoTrackEventType.APP_START |
23 TDAutoTrackEventType.APP_END | 23 TDAutoTrackEventType.APP_END |
24 TDAutoTrackEventType.APP_INSTALL); 24 TDAutoTrackEventType.APP_INSTALL);