diff --git a/lib/screens/message_thread_screen.dart b/lib/screens/message_thread_screen.dart index 011dc3a..57dac33 100644 --- a/lib/screens/message_thread_screen.dart +++ b/lib/screens/message_thread_screen.dart @@ -47,8 +47,9 @@ class _MessageThreadScreenState extends State { ) { return result.fold( onSuccess: (thread) { - final yourId = getIt().currentId; - final yourAvatarUrl = getIt().currentAvatarUrl; + final yourId = getIt().currentClient.credentials.userId; + final yourAvatarUrl = + getIt().currentClient.credentials.avatar; final participants = Map.fromEntries(thread.participants.map((p) => MapEntry(p.id, p))); return Center( diff --git a/lib/screens/user_profile_screen.dart b/lib/screens/user_profile_screen.dart index cdee5be..9b47ca7 100644 --- a/lib/screens/user_profile_screen.dart +++ b/lib/screens/user_profile_screen.dart @@ -42,7 +42,8 @@ class _UserProfileScreenState extends State { Widget build(BuildContext context) { final manager = context.watch(); final body = manager.getById(widget.userId).fold(onSuccess: (profile) { - final notMyProfile = getIt().currentId != profile.id; + final notMyProfile = + getIt().currentClient.credentials.userId != profile.id; return RefreshIndicator( onRefresh: () async { diff --git a/lib/serializers/friendica/direct_message_friendica_extensions.dart b/lib/serializers/friendica/direct_message_friendica_extensions.dart index e40b64f..7fbcb0c 100644 --- a/lib/serializers/friendica/direct_message_friendica_extensions.dart +++ b/lib/serializers/friendica/direct_message_friendica_extensions.dart @@ -41,14 +41,14 @@ extension DirectMessageFriendicaExtension on DirectMessage { final String parentUri = json['friendica_parent_uri']; final cm = getIt(); - if (getIt().currentId != senderId) { + if (getIt().currentClient.credentials.userId != senderId) { final s = ConnectionFriendicaExtensions.fromJson(json['sender']); if (cm.getById(s.id).isFailure) { cm.addConnection(s); } } - if (getIt().currentId != recipientId) { + if (getIt().currentClient.credentials.userId != recipientId) { final r = ConnectionFriendicaExtensions.fromJson(json['recipient']); if (cm.getById(r.id).isFailure) { cm.addConnection(r); diff --git a/lib/serializers/mastodon/connection_mastodon_extensions.dart b/lib/serializers/mastodon/connection_mastodon_extensions.dart index 5a58294..87404e6 100644 --- a/lib/serializers/mastodon/connection_mastodon_extensions.dart +++ b/lib/serializers/mastodon/connection_mastodon_extensions.dart @@ -20,7 +20,7 @@ extension ConnectionMastodonExtensions on Connection { if (handleFromJson.contains('@')) { handle = handleFromJson; } else { - final server = getIt().currentServer; + final server = getIt().currentClient.serverName; handle = '$handleFromJson@$server'; } diff --git a/lib/services/auth_service.dart b/lib/services/auth_service.dart index 10ec5b8..3c921d3 100644 --- a/lib/services/auth_service.dart +++ b/lib/services/auth_service.dart @@ -16,15 +16,7 @@ class AuthService extends ChangeNotifier { bool get loggedIn => _loggedIn && _friendicaClient != null; FriendicaClient get currentClient => _friendicaClient!; - - String get currentId => _friendicaClient?.credentials.userId ?? ''; - - String get currentHandle => _friendicaClient?.credentials.handle ?? ''; - - String get currentServer => _friendicaClient?.credentials.serverName ?? ''; - - String get currentAvatarUrl => _friendicaClient?.credentials.avatar ?? ''; - + Future getStoredLoginState() async { final prefs = await SharedPreferences.getInstance(); return prefs.getBool('logged-in') ?? false; diff --git a/lib/services/entry_manager_service.dart b/lib/services/entry_manager_service.dart index 90460be..a4cb8aa 100644 --- a/lib/services/entry_manager_service.dart +++ b/lib/services/entry_manager_service.dart @@ -43,7 +43,7 @@ class EntryManagerService extends ChangeNotifier { Result getPostTreeEntryBy(String id) { _logger.finest('Getting post: $id'); - final auth = getIt(); + final currentId = getIt().currentClient.credentials.userId; final postNode = _getPostRootNode(id); if (postNode == null) { return Result.error(ExecError( @@ -52,7 +52,7 @@ class EntryManagerService extends ChangeNotifier { )); } - return Result.ok(_nodeToTreeItem(postNode, auth.currentId)); + return Result.ok(_nodeToTreeItem(postNode, currentId)); } Result getEntryById(String id) { @@ -78,7 +78,8 @@ class EntryManagerService extends ChangeNotifier { return Result.ok(true); } - FutureResult createNewStatus(String text, { + FutureResult createNewStatus( + String text, { String spoilerText = '', String inReplyToId = '', required NewEntryMediaItems mediaItems, @@ -107,11 +108,10 @@ class EntryManagerService extends ChangeNotifier { } final uploadResult = - await MediaUploadAttachmentHelper.getUploadableImageBytes( + await MediaUploadAttachmentHelper.getUploadableImageBytes( item.localFilePath, ).andThenAsync( - (imageBytes) async => - await client.uploadFileAsAttachment( + (imageBytes) async => await client.uploadFileAsAttachment( bytes: imageBytes, album: mediaItems.albumName, description: item.description, @@ -129,10 +129,10 @@ class EntryManagerService extends ChangeNotifier { final result = await client .createNewStatus( - text: text, - spoilerText: spoilerText, - inReplyToId: inReplyToId, - mediaIds: mediaIds) + text: text, + spoilerText: spoilerText, + inReplyToId: inReplyToId, + mediaIds: mediaIds) .andThenSuccessAsync((item) async { await processNewItems([item], client.credentials.username, null); return item; @@ -153,7 +153,7 @@ class EntryManagerService extends ChangeNotifier { _logger.finest('${status.id} status created'); return true; }).mapError( - (error) { + (error) { _logger.finest('Error creating post: $error'); return ExecError( type: ErrorType.localError, @@ -183,9 +183,7 @@ class EntryManagerService extends ChangeNotifier { final updatedPosts = await processNewItems( itemsResult.value, client.credentials.userId, client); _logger.finest(() { - final postCount = _entries.values - .where((e) => e.parentId.isEmpty) - .length; + final postCount = _entries.values.where((e) => e.parentId.isEmpty).length; final commentCount = _entries.length - postCount; final orphanCount = _entries.values .where( @@ -196,9 +194,11 @@ class EntryManagerService extends ChangeNotifier { return Result.ok(updatedPosts); } - Future> processNewItems(List items, - String currentId, - FriendicaClient? client,) async { + Future> processNewItems( + List items, + String currentId, + FriendicaClient? client, + ) async { items.sort((i1, i2) => int.parse(i1.id).compareTo(int.parse(i2.id))); final allSeenItems = [...items]; for (final item in items) { @@ -225,9 +225,7 @@ class EntryManagerService extends ChangeNotifier { await client ?.getPostOrComment(o.id, fullContext: true) .andThenSuccessAsync((items) async { - final parentPostId = items - .firstWhere((e) => e.parentId.isEmpty) - .id; + final parentPostId = items.firstWhere((e) => e.parentId.isEmpty).id; _parentPostIds[o.id] = parentPostId; allSeenItems.addAll(items); for (final item in items) { @@ -255,7 +253,7 @@ class EntryManagerService extends ChangeNotifier { for (final item in seenItemsCopy) { if (item.parentId.isEmpty) { final postNode = - _postNodes.putIfAbsent(item.id, () => _Node(item.id)); + _postNodes.putIfAbsent(item.id, () => _Node(item.id)); postNodesToReturn.add(postNode); allSeenItems.remove(item); } else { @@ -297,9 +295,7 @@ class EntryManagerService extends ChangeNotifier { .toList(); _logger.finest( - 'Completed processing new items ${client == null - ? 'sub level' - : 'top level'}'); + 'Completed processing new items ${client == null ? 'sub level' : 'top level'}'); return updatedPosts; } @@ -308,11 +304,10 @@ class EntryManagerService extends ChangeNotifier { final client = getIt().currentClient; final result = await client .getPostOrComment(id, fullContext: false) - .andThenAsync((rootItems) async => - await client - .getPostOrComment(id, fullContext: true) - .andThenSuccessAsync( - (contextItems) async => [...rootItems, ...contextItems])) + .andThenAsync((rootItems) async => await client + .getPostOrComment(id, fullContext: true) + .andThenSuccessAsync( + (contextItems) async => [...rootItems, ...contextItems])) .andThenSuccessAsync((items) async { await processNewItems(items, client.credentials.username, null); }); @@ -321,7 +316,7 @@ class EntryManagerService extends ChangeNotifier { _logger.finest('$id post updated'); return _nodeToTreeItem(_getPostRootNode(id)!, client.credentials.userId); }).mapError( - (error) { + (error) { _logger.finest('$id error updating: $error'); return ExecError( type: ErrorType.localError, @@ -335,7 +330,7 @@ class EntryManagerService extends ChangeNotifier { _logger.finest('Resharing post: $id'); final client = getIt().currentClient; final result = - await client.resharePost(id).andThenSuccessAsync((item) async { + await client.resharePost(id).andThenSuccessAsync((item) async { await processNewItems([item], client.credentials.username, null); }); @@ -343,7 +338,7 @@ class EntryManagerService extends ChangeNotifier { _logger.finest('$id post updated after reshare'); return _nodeToTreeItem(_postNodes[id]!, client.credentials.userId); }).mapError( - (error) { + (error) { _logger.finest('$id error updating: $error'); return ExecError( type: ErrorType.localError, @@ -355,11 +350,9 @@ class EntryManagerService extends ChangeNotifier { FutureResult unResharePost(String id) async { _logger.finest('Unresharing post: $id'); - final client = getIt() - .currentClient; - final result = await client - .unResharePost(id) - .andThenSuccessAsync((item) async { + final client = getIt().currentClient; + final result = + await client.unResharePost(id).andThenSuccessAsync((item) async { await processNewItems([item], client.credentials.username, null); }); @@ -373,12 +366,10 @@ class EntryManagerService extends ChangeNotifier { return Result.ok(true); } - FutureResult toggleFavorited(String id, - bool newStatus) async { - final client = getIt() - .currentClient; - final result = await client - .changeFavoriteStatus(id, newStatus); + FutureResult toggleFavorited( + String id, bool newStatus) async { + final client = getIt().currentClient; + final result = await client.changeFavoriteStatus(id, newStatus); if (result.isFailure) { return result.errorCast(); } @@ -467,7 +458,7 @@ class _Node { @override bool operator ==(Object other) => identical(this, other) || - other is _Node && runtimeType == other.runtimeType && id == other.id; + other is _Node && runtimeType == other.runtimeType && id == other.id; @override int get hashCode => id.hashCode; diff --git a/lib/services/notifications_manager.dart b/lib/services/notifications_manager.dart index f6e74c9..b916276 100644 --- a/lib/services/notifications_manager.dart +++ b/lib/services/notifications_manager.dart @@ -151,7 +151,7 @@ class NotificationsManager extends ChangeNotifier { } List buildUnreadMessageNotifications() { - final myId = getIt().currentId; + final myId = getIt().currentClient.credentials.userId; final result = getIt().getThreads(unreadyOnly: true).map((t) { final fromAccount = t.participants.firstWhere((p) => p.id != myId);