Commit ed5df73e1406b0d42ebaef9d3c934cfa35cfa185

Authored by 常守达
1 parent dc2ea068

fix(login): 数数初始化

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