feat(debug): Удалить Talker (#2)

Co-authored-by: petrovyuri <y.petrov@friflex.com>
This commit is contained in:
Yuri Petrov
2025-02-04 10:18:41 +03:00
committed by GitHub
parent 40fc2209a4
commit 933c1a0f0f
17 changed files with 165 additions and 378 deletions

View File

@@ -1,60 +0,0 @@
import 'package:flutter/material.dart';
import 'package:friflex_starter/features/debug/i_debug_service.dart';
import 'package:talker_bloc_logger/talker_bloc_logger.dart';
import 'package:talker_dio_logger/talker_dio_logger_interceptor.dart';
import 'package:talker_flutter/talker_flutter.dart';
/// Класс реализации интерфейса дебаг сервиса
class AppDebugService implements IDebugService {
/// Наименование сервиса
static const name = 'GmsDebugService';
final Talker _talker = TalkerFlutter.init();
@override
TalkerBlocObserver createBlocObserver() =>
TalkerBlocObserver(talker: _talker);
@override
TalkerDioLogger createHttpInterceptor() => TalkerDioLogger(talker: _talker);
@override
TalkerRouteObserver createRouterObserver() => TalkerRouteObserver(_talker);
@override
void error(String msg, [Object? exception, StackTrace? stackTrace]) {
_talker.error(msg, exception, stackTrace);
}
@override
void handleError(Object error, [StackTrace? stackTrace, String? message]) {
_talker.handle(error, stackTrace, message);
}
@override
void info(String message) {
_talker.info(message);
}
@override
void log(String message) {
_talker.log(message);
}
@override
void warning(String message) {
_talker.warning(message);
}
@override
Future<T?> openDebugScreen<T>(
BuildContext context, {
bool useRootNavigator = false,
}) {
return Navigator.of(context).push<T>(
MaterialPageRoute(
builder: (context) => TalkerScreen(talker: _talker),
),
);
}
}

View File

@@ -31,7 +31,7 @@ class DebugScreen extends StatelessWidget {
onPressed: () async {
await context.di.debugService.openDebugScreen(context);
},
child: const Text('Вызывать Talker'),
child: const Text('Вызывать Экран отладки'),
),
],
),

View File

@@ -0,0 +1,66 @@
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:friflex_starter/features/debug/i_debug_service.dart';
/// Класс реализации интерфейса Debug сервиса
class DebugService implements IDebugService {
/// Наименование сервиса
static const name = 'DebugService';
@override
void logDebug(Object message, {Object? logLevel, Map<String, dynamic>? args}) {
if (kDebugMode) {
print('Message: $message');
}
/// Реализация логики
}
@override
void logError(
Object message, {
Object? error,
Object? logLevel,
Map<String, dynamic>? args,
StackTrace? stackTrace,
}) {
final logMessage = message is Function ? Function.apply(message, []) as Object : message;
if (kDebugMode) {
print('Message: $logMessage');
print('Error: $error');
print('StackTrace: $stackTrace');
}
/// Реализация логики
}
@override
void log(Object message, {Object? logLevel, Map<String, dynamic>? args}) {
final logMessage = message is Function ? Function.apply(message, []) as Object : message;
if (kDebugMode) {
print('Message: $logMessage');
}
/// Реализация логики
}
@override
void logWarning(Object message, {Object? logLevel, Map<String, dynamic>? args}) {
final logMessage = message is Function ? Function.apply(message, []) as Object : message;
if (kDebugMode) {
print('Message: $logMessage');
}
/// Реализация логики
}
@override
Future<T?> openDebugScreen<T>(BuildContext context, {bool useRootNavigator = false}) {
if (kDebugMode) {
print('Переход на страницу отладки');
}
/// Реализация логики
return Future.value();
}
}

View File

@@ -2,51 +2,37 @@ import 'package:flutter/material.dart';
/// Интерфейс для сервиса отладки
abstract interface class IDebugService {
/// Наименование сервиса
static const name = 'IDebugService';
/// Метод для создания обработчика для BLoC
Object createBlocObserver();
/// Метод для логирования сообщений
void log(
Object message, {
Object logLevel,
Map<String, dynamic>? args,
});
/// Метод для создания обработчика для роутера
NavigatorObserver createRouterObserver();
/// Метод для логирования предупреждений
void logWarning(
Object message, {
Object logLevel,
Map<String, dynamic>? args,
});
/// Метод для создания обработчика для http-клиентов
Object createHttpInterceptor();
/// Метод для логгирования предупреждений
///
/// Принимает:
/// - [message] - сообщение для логгирования в формате [String]
void warning(String message);
/// Метод для логгирования ошибок
///
/// Принимает:
/// - [message] - сообщение для логгирования в формате [String]
/// - [exception] - исключение
/// - [stackTrace] - стек вызова
void error(String message, [Object? exception, StackTrace? stackTrace]);
/// Метод для логирования ошибок
void logError(
Object message, {
Object error,
StackTrace? stackTrace,
Object logLevel,
Map<String, dynamic>? args,
});
/// Метод для обработки ошибок
///
/// Принимает:
/// - [error] - исключение
/// - [stackTrace] - стек вызова
/// - [message] - сообщение для логгирования в формате [String]
void handleError(Object error, [StackTrace? stackTrace, String? message]);
/// Метод для логгирования информативных сообщений
///
/// Принимает:
/// - [message] - сообщение для логгирования в формате [String]
void info(String message);
/// Метод для логгирования сообщений
///
/// Принимает:
/// - [message] - сообщение для логгирования в формате [String]
void log(String message);
void logDebug(
Object message, {
Object logLevel,
Map<String, dynamic>? args,
});
/// Метод для открытия окна отладки
///