Update: 2026-05-08 15:19:08
This commit is contained in:
@@ -2,16 +2,19 @@ import 'dart:developer' as developer;
|
|||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
|
|
||||||
class AppLogger {
|
class AppLogger {
|
||||||
|
/// Master toggle for logging. Set to false to disable all logs.
|
||||||
|
static bool isLoggingEnabled = kDebugMode;
|
||||||
|
|
||||||
/// Custom print function that only logs in debug mode.
|
/// Custom print function that only logs in debug mode.
|
||||||
static void print(String message, {String name = 'Musadaq'}) {
|
static void print(String message, {String name = 'Musadaq'}) {
|
||||||
if (kDebugMode) {
|
if (isLoggingEnabled) {
|
||||||
developer.log(message, name: name);
|
developer.log(message, name: name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Custom error logger
|
/// Custom error logger
|
||||||
static void error(String message, [dynamic error, StackTrace? stackTrace]) {
|
static void error(String message, [dynamic error, StackTrace? stackTrace]) {
|
||||||
if (kDebugMode) {
|
if (isLoggingEnabled) {
|
||||||
developer.log(message, name: 'Musadaq_Error', error: error, stackTrace: stackTrace);
|
developer.log(message, name: 'Musadaq_Error', error: error, stackTrace: stackTrace);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -170,8 +170,15 @@ class ScannerController extends GetxController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _startPolling(String batchId) {
|
void _startPolling(String batchId) {
|
||||||
// Check status every 2 seconds
|
bool firstPoll = true;
|
||||||
|
|
||||||
|
// Check status periodically
|
||||||
Future.doWhile(() async {
|
Future.doWhile(() async {
|
||||||
|
// Wait before checking
|
||||||
|
// First poll is after 8 seconds (AI takes time), subsequent are 5 seconds
|
||||||
|
await Future.delayed(Duration(seconds: firstPoll ? 8 : 5));
|
||||||
|
firstPoll = false;
|
||||||
|
|
||||||
// If we are no longer interested in this batch or it's done, stop polling
|
// If we are no longer interested in this batch or it's done, stop polling
|
||||||
if (currentBatchId.value != batchId || isBatchDone.value) return false;
|
if (currentBatchId.value != batchId || isBatchDone.value) return false;
|
||||||
|
|
||||||
@@ -204,7 +211,6 @@ class ScannerController extends GetxController {
|
|||||||
AppLogger.error('Polling error', e);
|
AppLogger.error('Polling error', e);
|
||||||
}
|
}
|
||||||
|
|
||||||
await Future.delayed(const Duration(seconds: 2));
|
|
||||||
return true; // Continue polling
|
return true; // Continue polling
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user