From 7997bc2fa07c5d38ff0b136e3a7de501fa1fd32a Mon Sep 17 00:00:00 2001 From: otsmr Date: Sat, 31 May 2025 16:22:53 +0200 Subject: [PATCH] use new logging system --- .../database/daos/media_downloads_dao.dart | 5 ++- lib/src/database/daos/media_uploads_dao.dart | 5 ++- lib/src/database/daos/messages_dao.dart | 4 +-- .../signal/connect_pre_key_store.dart | 3 +- lib/src/services/api/media_received.dart | 14 ++++----- lib/src/services/api/media_send.dart | 31 +++++++------------ lib/src/services/api/messages.dart | 8 ++--- lib/src/services/api/server_messages.dart | 14 +++------ lib/src/services/fcm.service.dart | 12 +++---- lib/src/services/notification.service.dart | 16 +++------- lib/src/utils/hive.dart | 4 +-- lib/src/utils/storage.dart | 4 +-- .../permissions_view.dart | 4 +-- .../camera_preview_controller_view.dart | 6 ++-- .../views/camera/share_image_editor_view.dart | 4 +-- lib/src/views/chats/media_viewer.view.dart | 6 ++-- lib/src/views/components/better_text.dart | 4 +-- lib/src/views/components/initialsavatar.dart | 4 +-- lib/src/views/register.view.dart | 4 +-- lib/src/views/settings/help/faq.view.dart | 8 ++--- .../subscription/additional_users.view.dart | 4 +-- .../subscription/subscription.view.dart | 4 +-- 22 files changed, 71 insertions(+), 97 deletions(-) diff --git a/lib/src/database/daos/media_downloads_dao.dart b/lib/src/database/daos/media_downloads_dao.dart index a078b16..defba0c 100644 --- a/lib/src/database/daos/media_downloads_dao.dart +++ b/lib/src/database/daos/media_downloads_dao.dart @@ -1,8 +1,8 @@ import 'dart:convert'; import 'package:drift/drift.dart'; -import 'package:logging/logging.dart'; import 'package:twonly/src/database/tables/media_download_table.dart'; import 'package:twonly/src/database/twonly_database.dart'; +import 'package:twonly/src/utils/log.dart'; part 'media_downloads_dao.g.dart'; @@ -21,8 +21,7 @@ class MediaDownloadsDao extends DatabaseAccessor try { return await into(mediaDownloads).insert(values); } catch (e) { - Logger("media_downloads_dao.dart") - .shout("Error while inserting media upload: $e"); + Log.error("Error while inserting media upload: $e"); return null; } } diff --git a/lib/src/database/daos/media_uploads_dao.dart b/lib/src/database/daos/media_uploads_dao.dart index 6e6fb11..f0b9ee1 100644 --- a/lib/src/database/daos/media_uploads_dao.dart +++ b/lib/src/database/daos/media_uploads_dao.dart @@ -1,7 +1,7 @@ import 'package:drift/drift.dart'; -import 'package:logging/logging.dart'; import 'package:twonly/src/database/tables/media_uploads_table.dart'; import 'package:twonly/src/database/twonly_database.dart'; +import 'package:twonly/src/utils/log.dart'; part 'media_uploads_dao.g.dart'; @@ -28,8 +28,7 @@ class MediaUploadsDao extends DatabaseAccessor try { return await into(mediaUploads).insert(values); } catch (e) { - Logger("media_uploads_dao.dart") - .shout("Error while inserting media upload: $e"); + Log.error("Error while inserting media upload: $e"); return null; } } diff --git a/lib/src/database/daos/messages_dao.dart b/lib/src/database/daos/messages_dao.dart index 60dbacf..f8d232c 100644 --- a/lib/src/database/daos/messages_dao.dart +++ b/lib/src/database/daos/messages_dao.dart @@ -1,8 +1,8 @@ import 'package:drift/drift.dart'; -import 'package:logging/logging.dart'; import 'package:twonly/src/database/tables/contacts_table.dart'; import 'package:twonly/src/database/tables/messages_table.dart'; import 'package:twonly/src/database/twonly_database.dart'; +import 'package:twonly/src/utils/log.dart'; part 'messages_dao.g.dart'; @@ -170,7 +170,7 @@ class MessagesDao extends DatabaseAccessor return await into(messages).insert(message); } catch (e) { - Logger("twonlyDatabase").shout("Error while inserting message: $e"); + Log.error("Error while inserting message: $e"); return null; } } diff --git a/lib/src/database/signal/connect_pre_key_store.dart b/lib/src/database/signal/connect_pre_key_store.dart index 3b9c538..2564d2a 100644 --- a/lib/src/database/signal/connect_pre_key_store.dart +++ b/lib/src/database/signal/connect_pre_key_store.dart @@ -1,5 +1,4 @@ import 'package:drift/drift.dart'; -import 'package:logging/logging.dart'; import 'package:twonly/globals.dart'; import 'package:libsignal_protocol_dart/libsignal_protocol_dart.dart'; import 'package:twonly/src/database/twonly_database.dart'; @@ -62,7 +61,7 @@ class ConnectPreKeyStore extends PreKeyStore { try { await twonlyDB.into(twonlyDB.signalPreKeyStores).insert(preKeyCompanion); } catch (e) { - Logger("pre_key_store").shout("$e"); + Log.error("$e"); } } } diff --git a/lib/src/services/api/media_received.dart b/lib/src/services/api/media_received.dart index 3683a0d..05542bb 100644 --- a/lib/src/services/api/media_received.dart +++ b/lib/src/services/api/media_received.dart @@ -12,7 +12,6 @@ import 'package:http/http.dart' as http; // import 'package:twonly/src/providers/api/api_utils.dart'; import 'package:twonly/src/services/api/media_send.dart'; import 'package:cryptography_plus/cryptography_plus.dart'; -import 'package:logging/logging.dart'; import 'package:twonly/src/model/protobuf/api/client_to_server.pb.dart' as client; import 'package:twonly/src/utils/log.dart'; @@ -82,7 +81,7 @@ Future startDownloadMedia(Message message, bool force) async { DateTime started = downloadStartedForMediaReceived[message.messageId]!; Duration elapsed = DateTime.now().difference(started); if (elapsed <= Duration(seconds: 60)) { - Logger("media_received.dart").shout("Download already started..."); + Log.error("Download already started..."); return; } } @@ -151,7 +150,7 @@ Future startDownloadMedia(Message message, bool force) async { downloaded += chunk.length; }, onDone: () async { if (r.statusCode != 200) { - Logger("media_received.dart").shout("Download error: $r"); + Log.error("Download error: $r"); await twonlyDB.messagesDao.updateMessageByMessageId( message.messageId, MessagesCompanion( @@ -184,8 +183,7 @@ Future handleEncryptedFile(Message msg, {Uint8List? encryptedBytesTmp}) async { encryptedBytesTmp ?? await readMediaFile(msg.messageId, "encrypted"); if (encryptedBytes == null) { - Logger("media_received.dart") - .shout("encrypted bytes are not found for ${msg.messageId}"); + Log.error("encrypted bytes are not found for ${msg.messageId}"); } MediaMessageContent content = @@ -213,7 +211,7 @@ Future handleEncryptedFile(Message msg, {Uint8List? encryptedBytesTmp}) async { await writeMediaFile(msg.messageId, "png", imageBytes); } catch (e) { - Logger("media_received.dart").info("Decryption error: $e"); + Log.error("Decryption error: $e"); await twonlyDB.messagesDao.updateMessageByMessageId( msg.messageId, MessagesCompanion( @@ -275,7 +273,7 @@ Future deleteMediaFile(int mediaId, String type) async { await file.delete(); } } catch (e) { - Logger("media_received.dart").shout("Error deleting: $e"); + Log.error("Error deleting: $e"); } } @@ -334,7 +332,7 @@ Future purgeMediaFiles(Directory directory) async { } } } catch (e) { - Logger("media_received.dart").shout("$e"); + Log.error("$e"); } } } diff --git a/lib/src/services/api/media_send.dart b/lib/src/services/api/media_send.dart index 7ebf844..e2257a0 100644 --- a/lib/src/services/api/media_send.dart +++ b/lib/src/services/api/media_send.dart @@ -7,7 +7,6 @@ import 'dart:typed_data'; import 'package:cryptography_plus/cryptography_plus.dart'; import 'package:drift/drift.dart'; import 'package:flutter_image_compress/flutter_image_compress.dart'; -import 'package:logging/logging.dart'; import 'package:mutex/mutex.dart'; import 'package:path/path.dart'; import 'package:path_provider/path_provider.dart'; @@ -22,6 +21,7 @@ import 'package:twonly/src/services/api/messages.dart'; import 'package:twonly/src/services/api/utils.dart'; import 'package:twonly/src/services/api/media_received.dart'; import 'package:twonly/src/services/notification.service.dart'; +import 'package:twonly/src/utils/log.dart'; import 'package:twonly/src/utils/misc.dart'; import 'package:twonly/src/utils/storage.dart'; import 'package:video_compress/video_compress.dart'; @@ -78,7 +78,7 @@ Future retryMediaUpload({int maxRetries = 3}) async { } await twonlyDB.mediaUploadsDao .deleteMediaUpload(mediaFile.mediaUploadId); - Logger("media_send.dart").shout( + Log.info( "upload can be removed, the finalized function was never called..."); continue; } @@ -123,7 +123,7 @@ Future addOrModifyImageToUpload( } await writeMediaFile(mediaUploadId, "png", imageBytesCompressed); } catch (e) { - Logger("media_send.dart").shout("$e"); + Log.error("$e"); // as a fall back use the original image await writeMediaFile(mediaUploadId, "png", imageBytes); imageBytesCompressed = imageBytes; @@ -203,12 +203,6 @@ Future encryptAndPreUploadMediaFiles( await handleNextMediaUploadSteps(mediaUploadId); } -Future cancelSendMediaFile(int mediaUploadId) async { - await twonlyDB.mediaUploadsDao.deleteMediaUpload(mediaUploadId); - - /// server should purge the uploads... when it did not receive a -} - Future finalizeUpload(int mediaUploadId, List contactIds, bool isRealTwonly, bool isVideo, bool mirrorVideo, int maxShowTime) async { MediaUploadMetadata metadata = MediaUploadMetadata(); @@ -251,8 +245,7 @@ Future finalizeUpload(int mediaUploadId, List contactIds, if (messageId != null) { messageIds.add(messageId); } else { - Logger("media_send.dart") - .shout("Error inserting media upload message in database."); + Log.error("Error inserting media upload message in database."); } } @@ -306,8 +299,7 @@ Future handleNextMediaUploadSteps(int mediaUploadId) async { // download tokens are known so send the media file to the receivers await handleNotifyReceiver(mediaUpload); } catch (e) { - Logger("media_send.dart") - .shout("Non recoverable error while sending media file: $e"); + Log.error("Non recoverable error while sending media file: $e"); await handleUploadError(mediaUpload); } return false; @@ -350,8 +342,7 @@ Future handleUploadDone(MediaUpload media) async { throw Exception("PlanLimitReached"); } } - Logger("media_send.dart") - .info("Upload done will be tried again when reconnected to server!"); + Log.error("Upload done will be tried again when reconnected to server!"); return false; } @@ -375,7 +366,7 @@ Future handleMediaUpload(int mediaUploadId) async { final storage = FlutterSecureStorage(); String? apiAuthToken = await storage.read(key: "api_auth_token"); if (apiAuthToken == null) { - Logger("media_send.dart").shout("api auth token not defined."); + Log.error("api auth token not defined."); return false; } @@ -402,7 +393,7 @@ Future handleMediaUpload(int mediaUploadId) async { if (response.statusCode == 200) { if (response.body.length != 64) { - Logger("media_send.dart").info("Got invalid upload token."); + Log.error("Got invalid upload token."); return false; } @@ -421,7 +412,7 @@ Future handleMediaUpload(int mediaUploadId) async { return true; } } catch (e) { - Logger("media_send.dart").shout("Exception during upload: $e"); + Log.error("Exception during upload: $e"); } return false; } @@ -527,11 +518,11 @@ Future compressVideoIfExists(int mediaUploadId) async { ); } } catch (e) { - Logger("media_send.dart").shout("Video compression: $e"); + Log.error("during video compression: $e"); } if (mediaInfo == null) { - Logger("media_send.dart").shout("Error compressing video."); + Log.error("could not compress video."); // as a fall back use the non compressed version await videoOriginalFile.copy(videoCompressedFile.path); await videoOriginalFile.delete(); diff --git a/lib/src/services/api/messages.dart b/lib/src/services/api/messages.dart index 872050b..ee19f92 100644 --- a/lib/src/services/api/messages.dart +++ b/lib/src/services/api/messages.dart @@ -2,7 +2,6 @@ import 'dart:convert'; import 'dart:math'; import 'package:drift/drift.dart'; import 'package:hive/hive.dart'; -import 'package:logging/logging.dart'; import 'package:mutex/mutex.dart'; import 'package:twonly/globals.dart'; import 'package:twonly/src/database/twonly_database.dart'; @@ -13,6 +12,7 @@ import 'package:twonly/src/services/api/utils.dart'; import 'package:twonly/src/services/signal/encryption.signal.dart'; import 'package:twonly/src/utils/hive.dart'; import 'package:twonly/src/services/notification.service.dart'; +import 'package:twonly/src/utils/log.dart'; import 'package:twonly/src/utils/storage.dart'; final lockSendingMessages = Mutex(); @@ -23,7 +23,7 @@ Future tryTransmitMessages() async { if (retransmit.isEmpty) return; - Logger("api.dart").info("try sending messages: ${retransmit.length}"); + Log.info("try sending messages: ${retransmit.length}"); Map failed = {}; @@ -102,7 +102,7 @@ Future> getAllMessagesForRetransmitting() async { try { retransmit = jsonDecode(retransmitJson); } catch (e) { - Logger("api.dart").shout("Could not decode the retransmit messages: $e"); + Log.error("Could not decode the retransmit messages: $e"); await box.delete("messages-to-retransmit"); } } @@ -140,7 +140,7 @@ Future<(String, RetransmitMessage)?> encryptMessage( Uint8List? bytes = await signalEncryptMessage(userId, msg); if (bytes == null) { - Logger("api.dart").shout("Error encryption message!"); + Log.error("Error encryption message!"); return null; } diff --git a/lib/src/services/api/server_messages.dart b/lib/src/services/api/server_messages.dart index f727d5b..11c907b 100644 --- a/lib/src/services/api/server_messages.dart +++ b/lib/src/services/api/server_messages.dart @@ -2,7 +2,6 @@ import 'dart:convert'; import 'package:drift/drift.dart'; import 'package:fixnum/fixnum.dart'; import 'package:libsignal_protocol_dart/libsignal_protocol_dart.dart'; -import 'package:logging/logging.dart'; import 'package:mutex/mutex.dart'; import 'package:twonly/globals.dart'; import 'package:twonly/src/database/twonly_database.dart'; @@ -20,6 +19,7 @@ import 'package:twonly/src/services/api/media_received.dart'; import 'package:twonly/src/services/notification.service.dart'; import 'package:twonly/src/services/signal/encryption.signal.dart'; import 'package:twonly/src/services/signal/identity.signal.dart'; +import 'package:twonly/src/utils/log.dart'; import 'package:twonly/src/utils/misc.dart'; final lockHandleServerMessage = Mutex(); @@ -36,8 +36,7 @@ Future handleServerMessage(server.ServerToClient msg) async { int fromUserId = msg.v0.newMessage.fromUserId.toInt(); response = await handleNewMessage(fromUserId, body); } else { - Logger("handleServerMessage") - .shout("Got a new message from the server: $msg"); + Log.error("Got a new message from the server: $msg"); response = client.Response()..error = ErrorCode.InternalError; } } catch (e) { @@ -55,8 +54,7 @@ Future handleServerMessage(server.ServerToClient msg) async { Future handleNewMessage(int fromUserId, Uint8List body) async { MessageJson? message = await signalDecryptMessage(fromUserId, body); if (message == null) { - Logger("server_messages") - .info("Got invalid cipher text from $fromUserId. Deleting it."); + Log.info("Got invalid cipher text from $fromUserId. Deleting it."); // Message is not valid, so server can delete it var ok = client.Response_Ok()..none = true; return client.Response()..ok = ok; @@ -154,11 +152,9 @@ Future handleNewMessage(int fromUserId, Uint8List body) async { message.kind != MessageKind.media && message.kind != MessageKind.storedMediaFile && message.kind != MessageKind.reopenedMedia) { - Logger("handleServerMessages") - .shout("Got unknown MessageKind $message"); + Log.error("Got unknown MessageKind $message"); } else if (message.content == null || message.messageId == null) { - Logger("handleServerMessages") - .shout("Content or messageid not defined $message"); + Log.error("Content or messageid not defined $message"); } else { final content = message.content!; diff --git a/lib/src/services/fcm.service.dart b/lib/src/services/fcm.service.dart index fafbb0b..288c5c2 100644 --- a/lib/src/services/fcm.service.dart +++ b/lib/src/services/fcm.service.dart @@ -1,7 +1,6 @@ import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; -import 'package:logging/logging.dart'; import 'package:twonly/globals.dart'; import 'package:twonly/app.dart'; import 'package:twonly/src/database/twonly_database.dart'; @@ -22,7 +21,7 @@ Future initFCMAfterAuthenticated() async { try { final fcmToken = await FirebaseMessaging.instance.getToken(); if (fcmToken == null) { - Logger("init_fcm_service").shout("Error getting fcmToken"); + Log.error("Error getting fcmToken"); return; } @@ -35,10 +34,10 @@ Future initFCMAfterAuthenticated() async { await apiService.updateFCMToken(fcmToken); await storage.write(key: "google_fcm", value: fcmToken); }).onError((err) { - // Logger("init_fcm_service").shout("Error getting fcmToken"); + Log.error("could not listen on token refresh"); }); } catch (e) { - Logger("fcm_service").shout("Error loading fcmToken: $e"); + Log.error("could not load fcm token: $e"); } } @@ -79,8 +78,7 @@ Future initFCMService() async { @pragma('vm:entry-point') Future _firebaseMessagingBackgroundHandler(RemoteMessage message) async { initLogger(); - Logger("firebase-background") - .info('Handling a background message: ${message.messageId}'); + Log.info('Handling a background message: ${message.messageId}'); twonlyDB = TwonlyDatabase(); await handleRemoteMessage(message); @@ -90,7 +88,7 @@ Future _firebaseMessagingBackgroundHandler(RemoteMessage message) async { Future handleRemoteMessage(RemoteMessage message) async { if (!Platform.isAndroid) { - Logger("firebase-notification").shout("Got message in Dart while on iOS"); + Log.error("Got message in Dart while on iOS"); } if (message.notification != null) { diff --git a/lib/src/services/notification.service.dart b/lib/src/services/notification.service.dart index b3dff9b..cecbb8b 100644 --- a/lib/src/services/notification.service.dart +++ b/lib/src/services/notification.service.dart @@ -8,7 +8,6 @@ import 'package:flutter/services.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:logging/logging.dart'; import 'package:path_provider/path_provider.dart'; import 'package:twonly/globals.dart'; import 'package:twonly/src/database/daos/contacts_dao.dart'; @@ -254,16 +253,14 @@ Future?> getPushData(int toUserId, PushKind kind) async { kind != PushKind.testNotification) { // this will be enforced after every app uses this system... :/ // return null; - Logger("notification_service").shout( - "Using insecure key as the receiver does not send a push key!"); + Log.error("Using insecure key as the receiver does not send a push key!"); } } else { try { key = pushKeys[toUserId]!.keys.last.key; keyId = pushKeys[toUserId]!.keys.last.id; } catch (e) { - Logger("notification_service") - .shout("No push notification key found for user $toUserId"); + Log.error("No push notification key found for user $toUserId"); return null; } } @@ -303,7 +300,6 @@ Future tryDecryptMessage( return PushKindExtension.fromString(plaintextString); } catch (e) { // this error is allowed to happen... - // Logger("notification-service").shout(e); return null; } } @@ -348,7 +344,7 @@ Future handlePushData(String pushDataJson) async { } } } catch (e) { - Logger("notification-service").shout(e); + Log.error(e); } } @@ -473,8 +469,7 @@ Future showLocalPushNotification( title = getContactDisplayName(user); body = getPushNotificationText(pushKind); if (body == "") { - Logger("localPushNotificationNewMessage") - .shout("No push notification type defined!"); + Log.error("No push notification type defined!"); } FilePathAndroidBitmap? styleInformation; @@ -513,8 +508,7 @@ Future showLocalPushNotificationWithoutUserId( body = getPushNotificationTextWithoutUserId(pushKind); if (body == "") { - Logger("localPushNotificationNewMessage") - .shout("No push notification type defined!"); + Log.error("No push notification type defined!"); } AndroidNotificationDetails androidNotificationDetails = diff --git a/lib/src/utils/hive.dart b/lib/src/utils/hive.dart index 053cf5f..dcf9788 100644 --- a/lib/src/utils/hive.dart +++ b/lib/src/utils/hive.dart @@ -1,9 +1,9 @@ import 'dart:convert'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:hive/hive.dart'; -import 'package:logging/logging.dart'; import 'package:path_provider/path_provider.dart'; import 'package:twonly/src/services/notification.service.dart'; +import 'package:twonly/src/utils/log.dart'; Future initMediaStorage() async { final storage = FlutterSecureStorage(); @@ -35,7 +35,7 @@ Future getMediaStorage() async { } catch (e) { await customLocalPushNotification("Secure Storage Error", "Settings > Apps > twonly > Storage and Cache > Press clear on both"); - Logger("hive.dart").shout(e); + Log.error(e); throw Exception(e); } } diff --git a/lib/src/utils/storage.dart b/lib/src/utils/storage.dart index 1cc2e8f..964d2c6 100644 --- a/lib/src/utils/storage.dart +++ b/lib/src/utils/storage.dart @@ -1,8 +1,8 @@ import 'dart:convert'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; -import 'package:logging/logging.dart'; import 'package:path_provider/path_provider.dart'; import 'package:twonly/src/model/json/userdata.dart'; +import 'package:twonly/src/utils/log.dart'; Future isUserCreated() async { UserData? user = await getUser(); @@ -23,7 +23,7 @@ Future getUser() async { final user = UserData.fromJson(userMap); return user; } catch (e) { - Logger("get_user").shout("Error getting user: $e"); + Log.error("Error getting user: $e"); return null; } } diff --git a/lib/src/views/camera/camera_preview_components/permissions_view.dart b/lib/src/views/camera/camera_preview_components/permissions_view.dart index 3d7b25b..fc307cd 100644 --- a/lib/src/views/camera/camera_preview_components/permissions_view.dart +++ b/lib/src/views/camera/camera_preview_components/permissions_view.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; -import 'package:logging/logging.dart'; import 'package:permission_handler/permission_handler.dart'; +import 'package:twonly/src/utils/log.dart'; class PermissionHandlerView extends StatefulWidget { const PermissionHandlerView({super.key, required this.onSuccess}); @@ -79,7 +79,7 @@ class PermissionHandlerViewState extends State { widget.onSuccess(); } } catch (e) { - Logger("permissions_view").shout(e); + Log.error(e); } }, ), diff --git a/lib/src/views/camera/camera_preview_controller_view.dart b/lib/src/views/camera/camera_preview_controller_view.dart index 6108978..d2a7c49 100644 --- a/lib/src/views/camera/camera_preview_controller_view.dart +++ b/lib/src/views/camera/camera_preview_controller_view.dart @@ -5,10 +5,10 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:image_picker/image_picker.dart'; -import 'package:logging/logging.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:screenshot/screenshot.dart'; import 'package:twonly/globals.dart'; +import 'package:twonly/src/utils/log.dart'; import 'package:twonly/src/views/camera/camera_preview_components/send_to.dart'; import 'package:twonly/src/views/camera/camera_preview_components/video_recording_time.dart'; import 'package:twonly/src/views/camera/camera_preview_components/zoom_selector.dart'; @@ -65,7 +65,7 @@ Future<(SelectedCameraDetails, CameraController)?> initializeCameraController( details.cameraLoaded = true; details.cameraId = sCameraId; }).catchError((Object e) { - Logger("camera_preview.dart").shout("$e"); + Log.error("$e"); }); return (details, cameraController); } @@ -429,7 +429,7 @@ class _CameraPreviewViewState extends State { } void _showCameraException(dynamic e) { - Logger("ui.camera").shout("$e"); + Log.error("$e"); try { if (context.mounted) { // ignore: use_build_context_synchronously diff --git a/lib/src/views/camera/share_image_editor_view.dart b/lib/src/views/camera/share_image_editor_view.dart index dcd3ffa..80e6e3f 100644 --- a/lib/src/views/camera/share_image_editor_view.dart +++ b/lib/src/views/camera/share_image_editor_view.dart @@ -3,10 +3,10 @@ import 'dart:io'; import 'dart:async'; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import 'package:logging/logging.dart'; import 'package:twonly/globals.dart'; import 'package:twonly/src/model/protobuf/api/error.pb.dart' show ErrorCode; import 'package:twonly/src/services/api/media_send.dart'; +import 'package:twonly/src/utils/log.dart'; import 'package:twonly/src/views/camera/camera_preview_components/save_to_gallery.dart'; import 'package:twonly/src/views/camera/image_editor/action_button.dart'; import 'package:twonly/src/views/components/alert_dialog.dart'; @@ -85,7 +85,7 @@ class _ShareImageEditorView extends State { videoController!.play(); setState(() {}); }).catchError((Object error) { - Logger("ui.share_image_editor").shout(error); + Log.error(error); }); } } diff --git a/lib/src/views/chats/media_viewer.view.dart b/lib/src/views/chats/media_viewer.view.dart index b6d3a8a..a2cabe3 100644 --- a/lib/src/views/chats/media_viewer.view.dart +++ b/lib/src/views/chats/media_viewer.view.dart @@ -4,11 +4,11 @@ import 'dart:io'; import 'package:drift/drift.dart' hide Column; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import 'package:logging/logging.dart'; import 'package:lottie/lottie.dart'; import 'package:no_screenshot/no_screenshot.dart'; import 'package:twonly/globals.dart'; import 'package:twonly/src/database/daos/contacts_dao.dart'; +import 'package:twonly/src/utils/log.dart'; import 'package:twonly/src/views/camera/share_image_editor_view.dart'; import 'package:twonly/src/views/components/animate_icon.dart'; import 'package:twonly/src/views/components/media_view_sizing.dart'; @@ -129,7 +129,7 @@ class _MediaViewerViewState extends State { await deleteMediaFile(allMediaFiles.first.messageId, "png"); } } catch (e) { - Logger("media_viewer_view.dart").shout("$e"); + Log.error("$e"); } } if (allMediaFiles.isEmpty || allMediaFiles.length == 1) { @@ -243,7 +243,7 @@ class _MediaViewerViewState extends State { videoPath = videoPathTmp.path; }); }).catchError((Object error) { - Logger("media_viewer_view.dart").shout(error); + Log.error(error); }); } } diff --git a/lib/src/views/components/better_text.dart b/lib/src/views/components/better_text.dart index 672a073..defa113 100644 --- a/lib/src/views/components/better_text.dart +++ b/lib/src/views/components/better_text.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/gestures.dart'; -import 'package:logging/logging.dart'; +import 'package:twonly/src/utils/log.dart'; import 'package:url_launcher/url_launcher.dart'; class BetterText extends StatelessWidget { @@ -38,7 +38,7 @@ class BetterText extends StatelessWidget { try { await launchUrl(lUrl); } catch (e) { - Logger("launchUrl").shout("Could not launch $e"); + Log.error("Could not launch $e"); } }, )); diff --git a/lib/src/views/components/initialsavatar.dart b/lib/src/views/components/initialsavatar.dart index 400830d..f263b7b 100644 --- a/lib/src/views/components/initialsavatar.dart +++ b/lib/src/views/components/initialsavatar.dart @@ -1,9 +1,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; -import 'package:logging/logging.dart'; import 'package:twonly/src/database/daos/contacts_dao.dart'; import 'package:twonly/src/database/twonly_database.dart'; import 'package:twonly/src/model/json/userdata.dart'; +import 'package:twonly/src/utils/log.dart'; class ContactAvatar extends StatelessWidget { final Contact? contact; @@ -48,7 +48,7 @@ class ContactAvatar extends StatelessWidget { child: SvgPicture.string( avatarSvg, errorBuilder: (context, error, stackTrace) { - Logger("ui.avater").shout("$error"); + Log.error("$error"); return Container(); }, ), diff --git a/lib/src/views/register.view.dart b/lib/src/views/register.view.dart index bb8dad3..54db0cd 100644 --- a/lib/src/views/register.view.dart +++ b/lib/src/views/register.view.dart @@ -1,11 +1,11 @@ import 'dart:async'; import 'dart:convert'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; -import 'package:logging/logging.dart'; import 'package:twonly/globals.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:twonly/src/services/signal/identity.signal.dart'; +import 'package:twonly/src/utils/log.dart'; import 'package:twonly/src/views/components/alert_dialog.dart'; import 'package:twonly/src/model/json/userdata.dart'; import 'package:twonly/src/utils/misc.dart'; @@ -42,7 +42,7 @@ class _RegisterViewState extends State { }); if (res.isSuccess) { - Logger("create_new_user").info("Got user_id ${res.value} from server"); + Log.info("Got user_id ${res.value} from server"); final userData = UserData( userId: res.value.userid.toInt(), username: username, diff --git a/lib/src/views/settings/help/faq.view.dart b/lib/src/views/settings/help/faq.view.dart index d3d2975..4f93f59 100644 --- a/lib/src/views/settings/help/faq.view.dart +++ b/lib/src/views/settings/help/faq.view.dart @@ -1,7 +1,7 @@ import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; -import 'package:logging/logging.dart'; +import 'package:twonly/src/utils/log.dart'; import 'package:twonly/src/utils/misc.dart'; import 'package:url_launcher/url_launcher.dart'; @@ -35,11 +35,11 @@ class _FaqViewState extends State { noInternet = false; }); } else { - Logger("faq.dart").shout("FAQ got ${response.statusCode}"); + Log.error("FAQ got ${response.statusCode}"); // throw Exception('Failed to load FAQ data'); } } catch (e) { - Logger("faq.dart").shout(e); + Log.error(e); setState(() { noInternet = true; }); @@ -101,7 +101,7 @@ class _FaqViewState extends State { try { await launchUrl(Uri.parse("$domain$path")); } catch (e) { - Logger("launchUrl").shout("Could not launch $e"); + Log.error("Could not launch $e"); } } } diff --git a/lib/src/views/settings/subscription/additional_users.view.dart b/lib/src/views/settings/subscription/additional_users.view.dart index 76c58fb..24b2807 100644 --- a/lib/src/views/settings/subscription/additional_users.view.dart +++ b/lib/src/views/settings/subscription/additional_users.view.dart @@ -3,11 +3,11 @@ import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import 'package:logging/logging.dart'; import 'package:twonly/globals.dart'; import 'package:twonly/src/database/daos/contacts_dao.dart'; import 'package:twonly/src/model/protobuf/api/server_to_client.pb.dart'; import 'package:twonly/src/services/api/utils.dart'; +import 'package:twonly/src/utils/log.dart'; import 'package:twonly/src/utils/misc.dart'; import 'package:twonly/src/utils/storage.dart'; import 'package:twonly/src/views/components/alert_dialog.dart'; @@ -28,7 +28,7 @@ Future?> loadAdditionalUserInvites() async { ballance = decoded.map((x) => Response_AddAccountsInvite.fromJson(x)).toList(); } catch (e) { - Logger("additional_users_view.dart").shout("from json: $e"); + Log.error("from json: $e"); } } return ballance; diff --git a/lib/src/views/settings/subscription/subscription.view.dart b/lib/src/views/settings/subscription/subscription.view.dart index a982aca..c00f912 100644 --- a/lib/src/views/settings/subscription/subscription.view.dart +++ b/lib/src/views/settings/subscription/subscription.view.dart @@ -2,7 +2,6 @@ import 'package:collection/collection.dart'; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:intl/intl.dart'; -import 'package:logging/logging.dart'; import 'package:provider/provider.dart'; import 'package:twonly/globals.dart'; import 'package:twonly/src/database/daos/contacts_dao.dart'; @@ -10,6 +9,7 @@ import 'package:twonly/src/database/twonly_database.dart'; import 'package:twonly/src/model/protobuf/api/error.pb.dart'; import 'package:twonly/src/model/protobuf/api/server_to_client.pb.dart'; import 'package:twonly/src/providers/connection.provider.dart'; +import 'package:twonly/src/utils/log.dart'; import 'package:twonly/src/utils/misc.dart'; import 'package:twonly/src/utils/storage.dart'; import 'package:twonly/src/views/components/better_list_title.dart'; @@ -49,7 +49,7 @@ Future loadPlanBallance() async { user.lastPlanBallance!, ); } catch (e) { - Logger("subscription_view.dart").shout("from json: $e"); + Log.error("from json: $e"); } } return ballance;