Showing
3 changed files
with
15 additions
and
13 deletions
| @@ -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); |
-
Please register or login to post a comment