|
...
|
...
|
@@ -48,7 +48,17 @@ class LoginController extends GetxController { |
|
|
|
|
|
|
|
AppleSignInModel? appleSignInModel;
|
|
|
|
|
|
|
|
DateTime? _lastToggleTime;
|
|
|
|
|
|
|
|
Future<void> toggleTermsChecked() async {
|
|
|
|
// 防抖:300ms 内的重复调用直接忽略,防止积压的手势事件互相抵消勾选状态
|
|
|
|
final now = DateTime.now();
|
|
|
|
if (_lastToggleTime != null &&
|
|
|
|
now.difference(_lastToggleTime!) < const Duration(milliseconds: 300)) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
_lastToggleTime = now;
|
|
|
|
|
|
|
|
final newValue = !termsChecked.value;
|
|
|
|
termsChecked.value = newValue;
|
|
|
|
try {
|
|
...
|
...
|
@@ -56,6 +66,8 @@ class LoginController extends GetxController { |
|
|
|
await local.setTermsAgreed(newValue);
|
|
|
|
if (newValue) {
|
|
|
|
unawaited(() async {
|
|
|
|
// 等待 Flutter 完成当前帧渲染,让勾选图标先显示
|
|
|
|
await WidgetsBinding.instance.endOfFrame;
|
|
|
|
if (!_userStateService.sdksInitialized) {
|
|
|
|
await _userStateService.initializeSdks();
|
|
|
|
}
|
...
|
...
|
|