|
|
@ -124,6 +124,7 @@ class SettingsController extends GetxController { |
|
|
final buildNumber = ''.obs; |
|
|
final buildNumber = ''.obs; |
|
|
|
|
|
|
|
|
bool isCheckingUpdate = false; //状态锁,防止重复检查 |
|
|
bool isCheckingUpdate = false; //状态锁,防止重复检查 |
|
|
|
|
|
DateTime? lastCheckTime; // 添加上次检查时间记录 |
|
|
|
|
|
|
|
|
// 权限相关 |
|
|
// 权限相关 |
|
|
// 权限组,用于在UI中显示 |
|
|
// 权限组,用于在UI中显示 |
|
|
@ -479,8 +480,23 @@ class SettingsController extends GetxController { |
|
|
|
|
|
|
|
|
/// 手动检查版本更新 |
|
|
/// 手动检查版本更新 |
|
|
Future<void> checkForUpdate() async { |
|
|
Future<void> checkForUpdate() async { |
|
|
|
|
|
// 检查是否在2秒内重复调用 |
|
|
|
|
|
final now = DateTime.now(); |
|
|
|
|
|
if (lastCheckTime != null && now.difference(lastCheckTime!).inSeconds < 2) { |
|
|
|
|
|
// 在2秒内重复调用,直接返回 |
|
|
|
|
|
// Get.snackbar( |
|
|
|
|
|
// 'checkUpdate'.tr, |
|
|
|
|
|
// 'checkUpdateTooFrequent'.tr, // 检查更新过于频繁,请稍后再试 |
|
|
|
|
|
// snackPosition: SnackPosition.TOP, |
|
|
|
|
|
// backgroundColor: Colors.orange.withValues(alpha: 0.8), |
|
|
|
|
|
// colorText: Colors.white, |
|
|
|
|
|
// ); |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
if (isCheckingUpdate) return; |
|
|
if (isCheckingUpdate) return; |
|
|
isCheckingUpdate = true; |
|
|
isCheckingUpdate = true; |
|
|
|
|
|
lastCheckTime = now; // 记录本次检查时间 |
|
|
|
|
|
|
|
|
// 用于跟踪我们的对话框 |
|
|
// 用于跟踪我们的对话框 |
|
|
bool dialogShown = false; |
|
|
bool dialogShown = false; |
|
|
|