Memory Leak Fixes: - Add max pending requests limit (100) to prevent unbounded growth - Cancel pending requests in _reconnect() before reconnecting - Track ImageStream listeners in expandable_player for proper cleanup - Add cleanup in dispose() for active image stream listeners Database Performance: - Add batchCacheItems() method using drift batch API - Chunk batches at 500 items to avoid SQLite limits - Refactor sync_service to use batch inserts (~10x faster) - Add BatchCacheItem data class for type-safe batch operations Race Condition Fix: - Make connection guard check-and-set atomic - Create completer before check to close race window WCAG Accessibility: - Mark ButtonSizes.sm/md as @Deprecated (below 44x44 minimum) - Add ButtonSizes.minAccessible constant (48x48) - Add clear documentation on WCAG Level AA/AAA requirements Provider Decomposition (partial): - Extract SleepTimerProvider with callback pattern - Extract ConnectionProvider skeleton for future integration - Prepare facade pattern for backward compatibility Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
17 lines
512 B
Dart
17 lines
512 B
Dart
/// Network constants for ports and URLs
|
|
class NetworkConstants {
|
|
NetworkConstants._();
|
|
|
|
/// Default Music Assistant WebSocket port (used for non-proxied connections)
|
|
static const int defaultWsPort = 8095;
|
|
|
|
/// Default HTTPS port (implicit, not usually specified in URLs)
|
|
static const int defaultHttpsPort = 443;
|
|
|
|
/// Default HTTP port
|
|
static const int defaultHttpPort = 80;
|
|
|
|
/// Maximum number of pending WebSocket requests to prevent memory leaks
|
|
static const int maxPendingRequests = 100;
|
|
}
|