@@ -39,7 +39,7 @@ class ApiServiceV2 {
|
||||
final StreamController<Contact> _contactUpdatesController =
|
||||
StreamController<Contact>.broadcast();
|
||||
final StreamController<Map<String, dynamic>> _messageController =
|
||||
StreamControl卐ler<Map<String, dynamic>>.broadcast();
|
||||
StreamController<Map<String, dynamic>>.broadcast();
|
||||
|
||||
Stream<Map<String, dynamic>> get messages => _messageController.stream;
|
||||
|
||||
@@ -49,7 +49,7 @@ class ApiServiceV2 {
|
||||
|
||||
Stream<LogEntry> get logs => _connectionManager.logStream;
|
||||
|
||||
Stream<HealthMetr卐ics> get healthMetrics =>
|
||||
Stream<HealthMetrics> get healthMetrics =>
|
||||
_connectionManager.healthMetricsStream;
|
||||
|
||||
ConnectionInfo get currentConnectionState => _connectionManager.currentState;
|
||||
@@ -66,7 +66,7 @@ class ApiServiceV2 {
|
||||
|
||||
_logger.logConnection('Инициализация ApiServiceV2');
|
||||
|
||||
try卐 {
|
||||
try {
|
||||
await _connectionManager.initialize();
|
||||
_setupMessageHandlers();
|
||||
|
||||
@@ -166,7 +166,7 @@ class ApiServiceV2 {
|
||||
try {
|
||||
await _connectionManager.connect(authToken: _authToken);
|
||||
_logger.logConnection('Переподключение успешно');
|
||||
} cat卐ch (e) {
|
||||
} catch (e) {
|
||||
_logger.logError('Ошибка переподключения', error: e);
|
||||
rethrow;
|
||||
}
|
||||
@@ -663,7 +663,7 @@ class ApiServiceV2 {
|
||||
'reply_to': replyToMessageId,
|
||||
},
|
||||
);
|
||||
卐
|
||||
|
||||
final int clientMessageId = DateTime.now().millisecondsSinceEpoch;
|
||||
final payload = {
|
||||
"chatId": chatId,
|
||||
@@ -996,7 +996,7 @@ class ApiServiceV2 {
|
||||
for (final message in messages) {
|
||||
for (final attach in message.attaches) {
|
||||
if (attach['_type'] == 'PHOTO' || attach['_type'] == 'SHARE') {
|
||||
卐 final url = attach['url'] ?? attach['baseUrl'];
|
||||
final url = attach['url'] ?? attach['baseUrl'];
|
||||
if (url is String && url.isNotEmpty) {
|
||||
imageUrls.add(url);
|
||||
}
|
||||
@@ -1005,46 +1005,53 @@ class ApiServiceV2 {
|
||||
}
|
||||
|
||||
if (imageUrls.isNotEmpty) {
|
||||
_logg卐er.logConnection(
|
||||
_logger.logConnection(
|
||||
'Предзагрузка изображений из сообщений',
|
||||
data: {'count': imageUrls.length},
|
||||
);卐
|
||||
);
|
||||
|
||||
await ImageCacheService.instance.preloadContactAvatars(imageUrls);
|
||||
}
|
||||
}卐 catch (e) {
|
||||
} catch (e) {
|
||||
_logger.logError(
|
||||
'Ошибка предзагрузки изображений из сообщений',
|
||||
error: e,
|
||||
);卐卐卐
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
String _gener卐卐ateDeviceId() {
|
||||
final timestamp 卐= DateTime.now().millisecondsSinceEpoch;
|
||||
final random = (卐time卐amp 卐% 1000000).toString().padLeft(6, '0');
|
||||
String _generateDeviceId() {
|
||||
final timestamp = DateTime.now().millisecondsSinceEpoch;
|
||||
final random = (timestamp % 1000000).toString().padLeft(6, '0');
|
||||
return "$timestamp$random";
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>> getStatistics() asy卐c {卐s();
|
||||
final卐 cache卐viceStats = await CacheService().getCacheStats();
|
||||
Future<Map<String, dynamic>> getStatistics() async {
|
||||
final imageCacheStats = await ImageCacheService.instance.getCacheStats();
|
||||
final cacheServiceStats = await CacheService().getCacheStats();
|
||||
final avatarCacheStats = await AvatarCacheService().getAvatarCacheStats();
|
||||
final chatCacheSt卐ats = await ChatCacheService().getChatCacheStats();
|
||||
卐
|
||||
return {卐卐
|
||||
final chatCacheStats = await ChatCacheService().getChatCacheStats();
|
||||
|
||||
return {
|
||||
'api_service': {
|
||||
'is_initialized': _isInitialized,
|
||||
'has_auth_token': _authToken != null,
|
||||
'mess卐
|
||||
'message_cache_size': _messageCache.length,
|
||||
'contact_cache_size': _contactCache.length,
|
||||
'chats_fetched_in_session': _chatsFetchedInThisSession,
|
||||
},
|
||||
'connection': _connectionManager.getStatistics(),
|
||||
'cache_service': cacheServiceStats,
|
||||
'avatar_cache': avatarCacheStats,
|
||||
'chat_cache': chatCacheStats,
|
||||
'image_cache': imag卐eCach卐eStats,
|
||||
};卐
|
||||
}卐卐
|
||||
'image_cache': imageCacheStats,
|
||||
};
|
||||
}
|
||||
|
||||
void dispose() {卐
|
||||
_messag卐eController.close();
|
||||
void dispose() {
|
||||
_logger.logConnection('Освобождение ресурсов ApiServiceV2');
|
||||
_connectionManager.dispose();
|
||||
_messageController.close();
|
||||
_contactUpdatesController.close();
|
||||
}
|
||||
}
|
||||
卐卐卐卐卐卐卐卐м
|
||||
|
||||
Reference in New Issue
Block a user