From cd94cf62a89e87dcc6fe7aa5c737f7dfc0df07c9 Mon Sep 17 00:00:00 2001 From: td Date: Mon, 25 Mar 2024 17:22:05 +0530 Subject: [PATCH] chore: merge api_lite and dart sdk --- lib/fake_matrix_api.dart | 6 +- lib/matrix.dart | 2 +- lib/matrix_api_lite.dart | 86 +++++++++---------- lib/matrix_api_lite/generated/api.dart | 24 +++--- lib/matrix_api_lite/generated/internal.dart | 2 +- lib/matrix_api_lite/generated/model.dart | 54 +++++++++--- lib/matrix_api_lite/matrix_api.dart | 12 ++- .../model/auth/authentication_identifier.dart | 8 +- .../model/auth/authentication_password.dart | 15 ++-- .../auth/authentication_phone_identifier.dart | 8 +- .../model/auth/authentication_recaptcha.dart | 8 +- ...authentication_third_party_identifier.dart | 8 +- .../auth/authentication_three_pid_creds.dart | 8 +- .../model/auth/authentication_token.dart | 11 ++- .../auth/authentication_user_identifier.dart | 8 +- lib/matrix_api_lite/model/basic_event.dart | 2 +- .../model/basic_event_with_sender.dart | 11 +-- .../model/basic_room_event.dart | 15 ++-- lib/matrix_api_lite/model/children_state.dart | 20 ++--- lib/matrix_api_lite/model/event_types.dart | 2 + .../events/forwarded_room_key_content.dart | 10 +-- .../model/events/image_pack_content.dart | 6 +- .../model/events/olm_plaintext_payload.dart | 2 +- .../model/events/room_encrypted_content.dart | 5 +- .../model/events/room_encryption_content.dart | 4 +- .../model/events/room_key_content.dart | 4 +- .../events/room_key_request_content.dart | 4 +- .../secret_storage_default_key_content.dart | 4 +- .../events/secret_storage_key_content.dart | 4 +- .../model/events/tombstone_content.dart | 4 +- lib/matrix_api_lite/model/matrix_event.dart | 22 ++--- .../model/matrix_exception.dart | 4 +- lib/matrix_api_lite/model/matrix_keys.dart | 10 +-- lib/matrix_api_lite/model/message_types.dart | 2 + lib/matrix_api_lite/model/presence.dart | 8 +- .../model/presence_content.dart | 2 +- lib/matrix_api_lite/model/room_keys_keys.dart | 2 +- .../model/stripped_state_event.dart | 15 ++-- lib/matrix_api_lite/model/sync_update.dart | 2 +- lib/matrix_api_lite/utils/logs.dart | 3 +- .../utils/print_logs_native.dart | 2 +- lib/matrix_api_lite/utils/print_logs_web.dart | 2 +- .../utils/try_get_map_extension.dart | 2 +- lib/matrix_api_lite/values.dart | 6 +- .../msc_3814_dehydrated_devices/api.dart | 3 +- .../model/dehydrated_device.dart | 2 +- lib/src/database/indexeddb_box.dart | 10 +-- lib/src/database/matrix_sdk_database.dart | 5 +- lib/src/database/sqflite_box.dart | 10 +-- lib/src/utils/image_pack_extension.dart | 2 +- lib/src/utils/marked_unread.dart | 2 +- lib/src/utils/space_child.dart | 3 +- lib/src/voip/call.dart | 21 ++--- lib/src/voip/group_call.dart | 4 +- lib/src/voip/voip.dart | 1 + pubspec.yaml | 4 +- test/box_test.dart | 5 +- .../try_get_map_extension_test.dart | 3 +- 58 files changed, 268 insertions(+), 246 deletions(-) diff --git a/lib/fake_matrix_api.dart b/lib/fake_matrix_api.dart index 006d0862..6017f3b0 100644 --- a/lib/fake_matrix_api.dart +++ b/lib/fake_matrix_api.dart @@ -28,7 +28,7 @@ import 'dart:math'; import 'package:http/http.dart'; import 'package:http/testing.dart'; -import 'package:matrix_api_lite/matrix_api_lite.dart'; +import 'package:matrix/matrix_api_lite.dart'; Map decodeJson(dynamic data) { if (data is String) { @@ -1947,9 +1947,9 @@ class FakeMatrixApi extends MockClient { 'total_room_count_estimate': 115 }, '/client/v3/keys/claim': (dynamic req) { - final request = decodeJson(req)["one_time_keys"]; + final request = decodeJson(req)['one_time_keys']; final keys = (request is Map) - ? request["one_time_keys"] as Map? + ? request['one_time_keys'] as Map? : null; return { 'failures': {}, diff --git a/lib/matrix.dart b/lib/matrix.dart index 085ad6ac..8268a0d6 100644 --- a/lib/matrix.dart +++ b/lib/matrix.dart @@ -19,7 +19,7 @@ /// Matrix SDK written in pure Dart. library matrix; -export 'package:matrix_api_lite/matrix_api_lite.dart'; +export 'matrix_api_lite.dart'; export 'src/client.dart'; export 'src/database/database_api.dart'; diff --git a/lib/matrix_api_lite.dart b/lib/matrix_api_lite.dart index 77a4e4e0..4dcfbf1f 100644 --- a/lib/matrix_api_lite.dart +++ b/lib/matrix_api_lite.dart @@ -23,46 +23,46 @@ library matrix_api_lite; -export 'src/generated/model.dart'; -export 'src/matrix_api.dart'; -export 'src/model/algorithm_types.dart'; -export 'src/model/auth/authentication_data.dart'; -export 'src/model/auth/authentication_identifier.dart'; -export 'src/model/auth/authentication_password.dart'; -export 'src/model/auth/authentication_phone_identifier.dart'; -export 'src/model/auth/authentication_recaptcha.dart'; -export 'src/model/auth/authentication_third_party_identifier.dart'; -export 'src/model/auth/authentication_three_pid_creds.dart'; -export 'src/model/auth/authentication_token.dart'; -export 'src/model/auth/authentication_types.dart'; -export 'src/model/auth/authentication_user_identifier.dart'; -export 'src/model/basic_event.dart'; -export 'src/model/basic_event_with_sender.dart'; -export 'src/model/basic_room_event.dart'; -export 'src/model/event_types.dart'; -export 'src/model/events/forwarded_room_key_content.dart'; -export 'src/model/events/image_pack_content.dart'; -export 'src/model/events/olm_plaintext_payload.dart'; -export 'src/model/events/room_encrypted_content.dart'; -export 'src/model/events/room_encryption_content.dart'; -export 'src/model/events/room_key_content.dart'; -export 'src/model/events/room_key_request_content.dart'; -export 'src/model/events/secret_storage_default_key_content.dart'; -export 'src/model/events/secret_storage_key_content.dart'; -export 'src/model/events/tombstone_content.dart'; -export 'src/model/matrix_connection_exception.dart'; -export 'src/model/matrix_event.dart'; -export 'src/model/matrix_exception.dart'; -export 'src/model/matrix_keys.dart'; -export 'src/model/message_types.dart'; -export 'src/model/presence.dart'; -export 'src/model/presence_content.dart'; -export 'src/model/room_creation_types.dart'; -export 'src/model/room_summary.dart'; -export 'src/model/stripped_state_event.dart'; -export 'src/model/sync_update.dart'; -export 'src/utils/filter_map_extension.dart'; -export 'src/utils/logs.dart'; -export 'src/utils/map_copy_extension.dart'; -export 'src/utils/try_get_map_extension.dart'; -export 'src/values.dart'; +export 'matrix_api_lite/generated/model.dart'; +export 'matrix_api_lite/matrix_api.dart'; +export 'matrix_api_lite/model/algorithm_types.dart'; +export 'matrix_api_lite/model/auth/authentication_data.dart'; +export 'matrix_api_lite/model/auth/authentication_identifier.dart'; +export 'matrix_api_lite/model/auth/authentication_password.dart'; +export 'matrix_api_lite/model/auth/authentication_phone_identifier.dart'; +export 'matrix_api_lite/model/auth/authentication_recaptcha.dart'; +export 'matrix_api_lite/model/auth/authentication_third_party_identifier.dart'; +export 'matrix_api_lite/model/auth/authentication_three_pid_creds.dart'; +export 'matrix_api_lite/model/auth/authentication_token.dart'; +export 'matrix_api_lite/model/auth/authentication_types.dart'; +export 'matrix_api_lite/model/auth/authentication_user_identifier.dart'; +export 'matrix_api_lite/model/basic_event.dart'; +export 'matrix_api_lite/model/basic_event_with_sender.dart'; +export 'matrix_api_lite/model/basic_room_event.dart'; +export 'matrix_api_lite/model/event_types.dart'; +export 'matrix_api_lite/model/events/forwarded_room_key_content.dart'; +export 'matrix_api_lite/model/events/image_pack_content.dart'; +export 'matrix_api_lite/model/events/olm_plaintext_payload.dart'; +export 'matrix_api_lite/model/events/room_encrypted_content.dart'; +export 'matrix_api_lite/model/events/room_encryption_content.dart'; +export 'matrix_api_lite/model/events/room_key_content.dart'; +export 'matrix_api_lite/model/events/room_key_request_content.dart'; +export 'matrix_api_lite/model/events/secret_storage_default_key_content.dart'; +export 'matrix_api_lite/model/events/secret_storage_key_content.dart'; +export 'matrix_api_lite/model/events/tombstone_content.dart'; +export 'matrix_api_lite/model/matrix_connection_exception.dart'; +export 'matrix_api_lite/model/matrix_event.dart'; +export 'matrix_api_lite/model/matrix_exception.dart'; +export 'matrix_api_lite/model/matrix_keys.dart'; +export 'matrix_api_lite/model/message_types.dart'; +export 'matrix_api_lite/model/presence.dart'; +export 'matrix_api_lite/model/presence_content.dart'; +export 'matrix_api_lite/model/room_creation_types.dart'; +export 'matrix_api_lite/model/room_summary.dart'; +export 'matrix_api_lite/model/stripped_state_event.dart'; +export 'matrix_api_lite/model/sync_update.dart'; +export 'matrix_api_lite/utils/filter_map_extension.dart'; +export 'matrix_api_lite/utils/logs.dart'; +export 'matrix_api_lite/utils/map_copy_extension.dart'; +export 'matrix_api_lite/utils/try_get_map_extension.dart'; +export 'matrix_api_lite/values.dart'; diff --git a/lib/matrix_api_lite/generated/api.dart b/lib/matrix_api_lite/generated/api.dart index 77390b0f..062af4fb 100644 --- a/lib/matrix_api_lite/generated/api.dart +++ b/lib/matrix_api_lite/generated/api.dart @@ -3,16 +3,14 @@ import 'dart:typed_data'; import 'package:http/http.dart'; -import '../model/auth/authentication_data.dart'; -import '../model/auth/authentication_identifier.dart'; -import '../model/auth/authentication_types.dart'; -import '../model/children_state.dart'; -import '../model/matrix_event.dart'; -import '../model/matrix_keys.dart'; -import '../model/sync_update.dart'; -import 'fixed_model.dart'; -import 'internal.dart'; -import 'model.dart'; +import 'package:matrix/matrix_api_lite/generated/fixed_model.dart'; +import 'package:matrix/matrix_api_lite/generated/internal.dart'; +import 'package:matrix/matrix_api_lite/generated/model.dart'; +import 'package:matrix/matrix_api_lite/model/auth/authentication_data.dart'; +import 'package:matrix/matrix_api_lite/model/auth/authentication_identifier.dart'; +import 'package:matrix/matrix_api_lite/model/matrix_event.dart'; +import 'package:matrix/matrix_api_lite/model/matrix_keys.dart'; +import 'package:matrix/matrix_api_lite/model/sync_update.dart'; class Api { Client httpClient; @@ -446,7 +444,7 @@ class Api { /// verification will happen without the client's involvement /// provided the homeserver advertises this specification version /// in the `/versions` response (ie: r0.5.0). - @deprecated + @Deprecated('message') Future post3PIDs(ThreePidCredentials threePidCreds) async { final requestUri = Uri(path: '_matrix/client/v3/account/3pid'); final request = Request('POST', baseUri!.resolveUri(requestUri)); @@ -1491,7 +1489,7 @@ class Api { /// request to this API or from the initial sync API. /// /// [timeout] The maximum time in milliseconds to wait for an event. - @deprecated + @Deprecated('message') Future getEvents({String? from, int? timeout}) async { final requestUri = Uri(path: '_matrix/client/v3/events', queryParameters: { if (from != null) 'from': from, @@ -1550,7 +1548,7 @@ class Api { /// or the [/rooms/{roomId}/context/{eventId](https://spec.matrix.org/unstable/client-server-api/#get_matrixclientv3roomsroomidcontexteventid) API. /// /// [eventId] The event ID to get. - @deprecated + @Deprecated('message') Future getOneEvent(String eventId) async { final requestUri = Uri(path: '_matrix/client/v3/events/${Uri.encodeComponent(eventId)}'); diff --git a/lib/matrix_api_lite/generated/internal.dart b/lib/matrix_api_lite/generated/internal.dart index 48d80d0c..9a15e635 100644 --- a/lib/matrix_api_lite/generated/internal.dart +++ b/lib/matrix_api_lite/generated/internal.dart @@ -1,4 +1,4 @@ -import 'fixed_model.dart'; +import 'package:matrix/matrix_api_lite/generated/fixed_model.dart'; void ignore(Object? input) {} FileResponse ignoreFile(dynamic input) { diff --git a/lib/matrix_api_lite/generated/model.dart b/lib/matrix_api_lite/generated/model.dart index 3ab82f75..c2c95bbe 100644 --- a/lib/matrix_api_lite/generated/model.dart +++ b/lib/matrix_api_lite/generated/model.dart @@ -1,13 +1,8 @@ import 'package:enhanced_enum/enhanced_enum.dart'; -import '../model/auth/authentication_data.dart'; -import '../model/auth/authentication_identifier.dart'; -import '../model/auth/authentication_types.dart'; -import '../model/children_state.dart'; -import '../model/matrix_event.dart'; -import '../model/matrix_keys.dart'; -import '../model/sync_update.dart'; -import 'internal.dart'; +import 'package:matrix/matrix_api_lite/model/children_state.dart'; +import 'package:matrix/matrix_api_lite/model/matrix_event.dart'; +import 'package:matrix/matrix_api_lite/model/matrix_keys.dart'; part 'model.g.dart'; @@ -237,6 +232,7 @@ class SpaceRoomsChunk implements PublicRoomsChunk, ChildRoomsChunk { childrenState = (json['children_state'] as List) .map((v) => ChildrenState.fromJson(v as Map)) .toList(); + @override Map toJson() { final avatarUrl = this.avatarUrl; final canonicalAlias = this.canonicalAlias; @@ -260,42 +256,53 @@ class SpaceRoomsChunk implements PublicRoomsChunk, ChildRoomsChunk { } /// The URL for the room's avatar, if one is set. + @override Uri? avatarUrl; /// The canonical alias of the room, if any. + @override String? canonicalAlias; /// Whether guest users may join the room and participate in it. /// If they can, they will be subject to ordinary power level /// rules like any other user. + @override bool guestCanJoin; /// The room's join rule. When not present, the room is assumed to /// be `public`. + @override String? joinRule; /// The name of the room, if any. + @override String? name; /// The number of members joined to the room. + @override int numJoinedMembers; /// The ID of the room. + @override String roomId; /// The `type` of room (from [`m.room.create`](https://spec.matrix.org/unstable/client-server-api/#mroomcreate)), if any. + @override String? roomType; /// The topic of the room, if any. + @override String? topic; /// Whether the room may be viewed by guest users without joining. + @override bool worldReadable; /// The [`m.space.child`](#mspacechild) events of the space-room, represented /// as [Stripped State Events](#stripped-state) with an added `origin_server_ts` key. /// /// If the room is not a space-room, this should be empty. + @override List childrenState; } @@ -1789,7 +1796,7 @@ class PusherData { url = ((v) => v != null ? Uri.parse(v as String) : null)(json['url']), additionalProperties = Map.fromEntries(json.entries .where((e) => !['format', 'url'].contains(e.key)) - .map((e) => MapEntry(e.key, e.value as Object?))); + .map((e) => MapEntry(e.key, e.value))); Map toJson() { final format = this.format; final url = this.url; @@ -1861,6 +1868,7 @@ class Pusher implements PusherId { lang = json['lang'] as String, profileTag = ((v) => v != null ? v as String : null)(json['profile_tag']); + @override Map toJson() { final profileTag = this.profileTag; return { @@ -1877,11 +1885,13 @@ class Pusher implements PusherId { /// This is a reverse-DNS style identifier for the application. /// Max length, 64 chars. + @override String appId; /// This is a unique identifier for this pusher. See `/set` for /// more detail. /// Max length, 512 bytes. + @override String pushkey; /// A string that will allow the user to identify what application @@ -2845,6 +2855,7 @@ class SearchFilter implements EventFilter, RoomEventFilter { : null)(json['rooms']), unreadThreadNotifications = ((v) => v != null ? v as bool : null)(json['unread_thread_notifications']); + @override Map toJson() { final limit = this.limit; final notSenders = this.notSenders; @@ -2875,21 +2886,27 @@ class SearchFilter implements EventFilter, RoomEventFilter { } /// The maximum number of events to return. + @override int? limit; /// A list of sender IDs to exclude. If this list is absent then no senders are excluded. A matching sender will be excluded even if it is listed in the `'senders'` filter. + @override List? notSenders; /// A list of event types to exclude. If this list is absent then no event types are excluded. A matching type will be excluded even if it is listed in the `'types'` filter. A '*' can be used as a wildcard to match any sequence of characters. + @override List? notTypes; /// A list of senders IDs to include. If this list is absent then all senders are included. + @override List? senders; /// A list of event types to include. If this list is absent then all event types are included. A `'*'` can be used as a wildcard to match any sequence of characters. + @override List? types; /// If `true`, includes only events with a `url` key in their content. If `false`, excludes those events. If omitted, `url` key is not considered for filtering. + @override bool? containsUrl; /// If `true`, sends all membership events for all events, even if they have already @@ -2897,21 +2914,26 @@ class SearchFilter implements EventFilter, RoomEventFilter { /// apply unless `lazy_load_members` is `true`. See /// [Lazy-loading room members](https://spec.matrix.org/unstable/client-server-api/#lazy-loading-room-members) /// for more information. Defaults to `false`. + @override bool? includeRedundantMembers; /// If `true`, enables lazy-loading of membership events. See /// [Lazy-loading room members](https://spec.matrix.org/unstable/client-server-api/#lazy-loading-room-members) /// for more information. Defaults to `false`. + @override bool? lazyLoadMembers; /// A list of room IDs to exclude. If this list is absent then no rooms are excluded. A matching room will be excluded even if it is listed in the `'rooms'` filter. + @override List? notRooms; /// A list of room IDs to include. If this list is absent then all rooms are included. + @override List? rooms; /// If `true`, enables per-[thread](https://spec.matrix.org/unstable/client-server-api/#threading) notification /// counts. Only applies to the `/sync` endpoint. Defaults to `false`. + @override bool? unreadThreadNotifications; } @@ -3630,6 +3652,7 @@ class StateFilter implements EventFilter, RoomEventFilter { : null)(json['rooms']), unreadThreadNotifications = ((v) => v != null ? v as bool : null)(json['unread_thread_notifications']); + @override Map toJson() { final limit = this.limit; final notSenders = this.notSenders; @@ -3660,21 +3683,27 @@ class StateFilter implements EventFilter, RoomEventFilter { } /// The maximum number of events to return. + @override int? limit; /// A list of sender IDs to exclude. If this list is absent then no senders are excluded. A matching sender will be excluded even if it is listed in the `'senders'` filter. + @override List? notSenders; /// A list of event types to exclude. If this list is absent then no event types are excluded. A matching type will be excluded even if it is listed in the `'types'` filter. A '*' can be used as a wildcard to match any sequence of characters. + @override List? notTypes; /// A list of senders IDs to include. If this list is absent then all senders are included. + @override List? senders; /// A list of event types to include. If this list is absent then all event types are included. A `'*'` can be used as a wildcard to match any sequence of characters. + @override List? types; /// If `true`, includes only events with a `url` key in their content. If `false`, excludes those events. If omitted, `url` key is not considered for filtering. + @override bool? containsUrl; /// If `true`, sends all membership events for all events, even if they have already @@ -3682,21 +3711,26 @@ class StateFilter implements EventFilter, RoomEventFilter { /// apply unless `lazy_load_members` is `true`. See /// [Lazy-loading room members](https://spec.matrix.org/unstable/client-server-api/#lazy-loading-room-members) /// for more information. Defaults to `false`. + @override bool? includeRedundantMembers; /// If `true`, enables lazy-loading of membership events. See /// [Lazy-loading room members](https://spec.matrix.org/unstable/client-server-api/#lazy-loading-room-members) /// for more information. Defaults to `false`. + @override bool? lazyLoadMembers; /// A list of room IDs to exclude. If this list is absent then no rooms are excluded. A matching room will be excluded even if it is listed in the `'rooms'` filter. + @override List? notRooms; /// A list of room IDs to include. If this list is absent then all rooms are included. + @override List? rooms; /// If `true`, enables per-[thread](https://spec.matrix.org/unstable/client-server-api/#threading) notification /// counts. Only applies to the `/sync` endpoint. Defaults to `false`. + @override bool? unreadThreadNotifications; } @@ -3886,7 +3920,7 @@ class Tag { ((v) => v != null ? (v as num).toDouble() : null)(json['order']), additionalProperties = Map.fromEntries(json.entries .where((e) => !['order'].contains(e.key)) - .map((e) => MapEntry(e.key, e.value as Object?))); + .map((e) => MapEntry(e.key, e.value))); Map toJson() { final order = this.order; return { diff --git a/lib/matrix_api_lite/matrix_api.dart b/lib/matrix_api_lite/matrix_api.dart index 605b4932..b9434ae4 100644 --- a/lib/matrix_api_lite/matrix_api.dart +++ b/lib/matrix_api_lite/matrix_api.dart @@ -27,9 +27,10 @@ import 'dart:typed_data'; import 'package:http/http.dart' as http; -import '../matrix_api_lite.dart'; -import 'generated/api.dart'; +import 'package:matrix/matrix_api_lite.dart'; +import 'package:matrix/matrix_api_lite/generated/api.dart'; +// ignore: constant_identifier_names enum RequestType { GET, POST, PUT, DELETE } class MatrixApi extends Api { @@ -58,11 +59,8 @@ class MatrixApi extends Api { MatrixApi({ Uri? homeserver, String? accessToken, - http.Client? httpClient, - }) : super( - httpClient: httpClient, - baseUri: homeserver, - bearerToken: accessToken); + super.httpClient, + }) : super(baseUri: homeserver, bearerToken: accessToken); /// Used for all Matrix json requests using the [c2s API](https://matrix.org/docs/spec/client_server/r0.6.0.html). /// diff --git a/lib/matrix_api_lite/model/auth/authentication_identifier.dart b/lib/matrix_api_lite/model/auth/authentication_identifier.dart index 06ead12d..974438a7 100644 --- a/lib/matrix_api_lite/model/auth/authentication_identifier.dart +++ b/lib/matrix_api_lite/model/auth/authentication_identifier.dart @@ -21,10 +21,10 @@ * SOFTWARE. */ -import 'authentication_phone_identifier.dart'; -import 'authentication_third_party_identifier.dart'; -import 'authentication_types.dart'; -import 'authentication_user_identifier.dart'; +import 'package:matrix/matrix_api_lite/model/auth/authentication_phone_identifier.dart'; +import 'package:matrix/matrix_api_lite/model/auth/authentication_third_party_identifier.dart'; +import 'package:matrix/matrix_api_lite/model/auth/authentication_types.dart'; +import 'package:matrix/matrix_api_lite/model/auth/authentication_user_identifier.dart'; class AuthenticationIdentifier { String type; diff --git a/lib/matrix_api_lite/model/auth/authentication_password.dart b/lib/matrix_api_lite/model/auth/authentication_password.dart index a9033445..f2d3bce0 100644 --- a/lib/matrix_api_lite/model/auth/authentication_password.dart +++ b/lib/matrix_api_lite/model/auth/authentication_password.dart @@ -21,10 +21,10 @@ * SOFTWARE. */ -import 'authentication_data.dart'; -import 'authentication_identifier.dart'; -import 'authentication_types.dart'; -import 'authentication_user_identifier.dart'; +import 'package:matrix/matrix_api_lite/model/auth/authentication_data.dart'; +import 'package:matrix/matrix_api_lite/model/auth/authentication_identifier.dart'; +import 'package:matrix/matrix_api_lite/model/auth/authentication_types.dart'; +import 'package:matrix/matrix_api_lite/model/auth/authentication_user_identifier.dart'; class AuthenticationPassword extends AuthenticationData { String password; @@ -34,17 +34,16 @@ class AuthenticationPassword extends AuthenticationData { AuthenticationIdentifier identifier; AuthenticationPassword( - {String? session, required this.password, required this.identifier}) + {super.session, required this.password, required this.identifier}) : super( type: AuthenticationTypes.password, - session: session, ); - AuthenticationPassword.fromJson(Map json) + AuthenticationPassword.fromJson(super.json) : password = json['password'] as String, identifier = AuthenticationIdentifier.subFromJson( json['identifier'] as Map), - super.fromJson(json); + super.fromJson(); @override Map toJson() { diff --git a/lib/matrix_api_lite/model/auth/authentication_phone_identifier.dart b/lib/matrix_api_lite/model/auth/authentication_phone_identifier.dart index e12b510e..fd8c5caa 100644 --- a/lib/matrix_api_lite/model/auth/authentication_phone_identifier.dart +++ b/lib/matrix_api_lite/model/auth/authentication_phone_identifier.dart @@ -21,8 +21,8 @@ * SOFTWARE. */ -import 'authentication_identifier.dart'; -import 'authentication_types.dart'; +import 'package:matrix/matrix_api_lite/model/auth/authentication_identifier.dart'; +import 'package:matrix/matrix_api_lite/model/auth/authentication_types.dart'; class AuthenticationPhoneIdentifier extends AuthenticationIdentifier { String country; @@ -31,10 +31,10 @@ class AuthenticationPhoneIdentifier extends AuthenticationIdentifier { AuthenticationPhoneIdentifier({required this.country, required this.phone}) : super(type: AuthenticationIdentifierTypes.phone); - AuthenticationPhoneIdentifier.fromJson(Map json) + AuthenticationPhoneIdentifier.fromJson(super.json) : country = json['country'] as String, phone = json['phone'] as String, - super.fromJson(json); + super.fromJson(); @override Map toJson() { diff --git a/lib/matrix_api_lite/model/auth/authentication_recaptcha.dart b/lib/matrix_api_lite/model/auth/authentication_recaptcha.dart index 33009b31..e5d8f415 100644 --- a/lib/matrix_api_lite/model/auth/authentication_recaptcha.dart +++ b/lib/matrix_api_lite/model/auth/authentication_recaptcha.dart @@ -21,8 +21,8 @@ * SOFTWARE. */ -import 'authentication_data.dart'; -import 'authentication_types.dart'; +import 'package:matrix/matrix_api_lite/model/auth/authentication_data.dart'; +import 'package:matrix/matrix_api_lite/model/auth/authentication_types.dart'; class AuthenticationRecaptcha extends AuthenticationData { String response; @@ -33,9 +33,9 @@ class AuthenticationRecaptcha extends AuthenticationData { session: session, ); - AuthenticationRecaptcha.fromJson(Map json) + AuthenticationRecaptcha.fromJson(super.json) : response = json['response'] as String, - super.fromJson(json); + super.fromJson(); @override Map toJson() { diff --git a/lib/matrix_api_lite/model/auth/authentication_third_party_identifier.dart b/lib/matrix_api_lite/model/auth/authentication_third_party_identifier.dart index 55bc8c40..b90b1844 100644 --- a/lib/matrix_api_lite/model/auth/authentication_third_party_identifier.dart +++ b/lib/matrix_api_lite/model/auth/authentication_third_party_identifier.dart @@ -21,8 +21,8 @@ * SOFTWARE. */ -import 'authentication_identifier.dart'; -import 'authentication_types.dart'; +import 'package:matrix/matrix_api_lite/model/auth/authentication_identifier.dart'; +import 'package:matrix/matrix_api_lite/model/auth/authentication_types.dart'; class AuthenticationThirdPartyIdentifier extends AuthenticationIdentifier { String medium; @@ -32,10 +32,10 @@ class AuthenticationThirdPartyIdentifier extends AuthenticationIdentifier { {required this.medium, required this.address}) : super(type: AuthenticationIdentifierTypes.thirdParty); - AuthenticationThirdPartyIdentifier.fromJson(Map json) + AuthenticationThirdPartyIdentifier.fromJson(super.json) : medium = json['medium'] as String, address = json['address'] as String, - super.fromJson(json); + super.fromJson(); @override Map toJson() { diff --git a/lib/matrix_api_lite/model/auth/authentication_three_pid_creds.dart b/lib/matrix_api_lite/model/auth/authentication_three_pid_creds.dart index 89e5784a..0076e604 100644 --- a/lib/matrix_api_lite/model/auth/authentication_three_pid_creds.dart +++ b/lib/matrix_api_lite/model/auth/authentication_three_pid_creds.dart @@ -21,7 +21,7 @@ * SOFTWARE. */ -import 'authentication_data.dart'; +import 'package:matrix/matrix_api_lite/model/auth/authentication_data.dart'; /// For email based identity: /// https://matrix.org/docs/spec/client_server/r0.6.1#email-based-identity-homeserver @@ -31,11 +31,7 @@ class AuthenticationThreePidCreds extends AuthenticationData { late ThreepidCreds threepidCreds; AuthenticationThreePidCreds( - {String? session, required String type, required this.threepidCreds}) - : super( - type: type, - session: session, - ); + {super.session, required String super.type, required this.threepidCreds}); AuthenticationThreePidCreds.fromJson(Map json) : super.fromJson(json) { diff --git a/lib/matrix_api_lite/model/auth/authentication_token.dart b/lib/matrix_api_lite/model/auth/authentication_token.dart index fc375f5d..6bf4bda6 100644 --- a/lib/matrix_api_lite/model/auth/authentication_token.dart +++ b/lib/matrix_api_lite/model/auth/authentication_token.dart @@ -21,8 +21,8 @@ * SOFTWARE. */ -import 'authentication_data.dart'; -import 'authentication_types.dart'; +import 'package:matrix/matrix_api_lite/model/auth/authentication_data.dart'; +import 'package:matrix/matrix_api_lite/model/auth/authentication_types.dart'; class AuthenticationToken extends AuthenticationData { String token; @@ -30,16 +30,15 @@ class AuthenticationToken extends AuthenticationData { /// removed in the unstable version of the spec String? txnId; - AuthenticationToken({String? session, required this.token, this.txnId}) + AuthenticationToken({super.session, required this.token, this.txnId}) : super( type: AuthenticationTypes.token, - session: session, ); - AuthenticationToken.fromJson(Map json) + AuthenticationToken.fromJson(super.json) : token = json['token'] as String, txnId = json['txn_id'] as String?, - super.fromJson(json); + super.fromJson(); @override Map toJson() { diff --git a/lib/matrix_api_lite/model/auth/authentication_user_identifier.dart b/lib/matrix_api_lite/model/auth/authentication_user_identifier.dart index 232cafe6..1653bfa0 100644 --- a/lib/matrix_api_lite/model/auth/authentication_user_identifier.dart +++ b/lib/matrix_api_lite/model/auth/authentication_user_identifier.dart @@ -21,8 +21,8 @@ * SOFTWARE. */ -import 'authentication_identifier.dart'; -import 'authentication_types.dart'; +import 'package:matrix/matrix_api_lite/model/auth/authentication_identifier.dart'; +import 'package:matrix/matrix_api_lite/model/auth/authentication_types.dart'; class AuthenticationUserIdentifier extends AuthenticationIdentifier { String user; @@ -30,9 +30,9 @@ class AuthenticationUserIdentifier extends AuthenticationIdentifier { AuthenticationUserIdentifier({required this.user}) : super(type: AuthenticationIdentifierTypes.userId); - AuthenticationUserIdentifier.fromJson(Map json) + AuthenticationUserIdentifier.fromJson(super.json) : user = json['user'] as String, - super.fromJson(json); + super.fromJson(); @override Map toJson() { diff --git a/lib/matrix_api_lite/model/basic_event.dart b/lib/matrix_api_lite/model/basic_event.dart index 9700fc02..6fd1c5c4 100644 --- a/lib/matrix_api_lite/model/basic_event.dart +++ b/lib/matrix_api_lite/model/basic_event.dart @@ -21,7 +21,7 @@ * SOFTWARE. */ -import '../utils/map_copy_extension.dart'; +import 'package:matrix/matrix_api_lite/utils/map_copy_extension.dart'; class BasicEvent { String type; diff --git a/lib/matrix_api_lite/model/basic_event_with_sender.dart b/lib/matrix_api_lite/model/basic_event_with_sender.dart index 7da96bf8..36022802 100644 --- a/lib/matrix_api_lite/model/basic_event_with_sender.dart +++ b/lib/matrix_api_lite/model/basic_event_with_sender.dart @@ -21,20 +21,17 @@ * SOFTWARE. */ -import 'basic_event.dart'; +import 'package:matrix/matrix_api_lite/model/basic_event.dart'; class BasicEventWithSender extends BasicEvent { String senderId; BasicEventWithSender( - {required String type, - required Map content, - required this.senderId}) - : super(type: type, content: content); + {required super.type, required super.content, required this.senderId}); - BasicEventWithSender.fromJson(Map json) + BasicEventWithSender.fromJson(super.json) : senderId = json['sender'] as String, - super.fromJson(json); + super.fromJson(); @override Map toJson() { diff --git a/lib/matrix_api_lite/model/basic_room_event.dart b/lib/matrix_api_lite/model/basic_room_event.dart index 97f242ea..7cfad8d6 100644 --- a/lib/matrix_api_lite/model/basic_room_event.dart +++ b/lib/matrix_api_lite/model/basic_room_event.dart @@ -21,23 +21,20 @@ * SOFTWARE. */ -import 'basic_event.dart'; +import 'package:matrix/matrix_api_lite/model/basic_event.dart'; class BasicRoomEvent extends BasicEvent { String? roomId; BasicRoomEvent({ this.roomId, - required Map content, - required String type, - }) : super( - content: content, - type: type, - ); + required super.content, + required super.type, + }); - BasicRoomEvent.fromJson(Map json) + BasicRoomEvent.fromJson(super.json) : roomId = json['room_id'] as String?, - super.fromJson(json); + super.fromJson(); @override Map toJson() { diff --git a/lib/matrix_api_lite/model/children_state.dart b/lib/matrix_api_lite/model/children_state.dart index f5ae40de..5d993baf 100644 --- a/lib/matrix_api_lite/model/children_state.dart +++ b/lib/matrix_api_lite/model/children_state.dart @@ -21,27 +21,23 @@ * SOFTWARE. */ -import 'stripped_state_event.dart'; +import 'package:matrix/matrix_api_lite/model/stripped_state_event.dart'; class ChildrenState extends StrippedStateEvent { DateTime originServerTs; ChildrenState({ - required String type, - required Map content, - required String senderId, - required String stateKey, + required super.type, + required super.content, + required super.senderId, + required String super.stateKey, required this.originServerTs, - }) : super( - type: type, - content: content, - senderId: senderId, - stateKey: stateKey); + }); - ChildrenState.fromJson(Map json) + ChildrenState.fromJson(super.json) : originServerTs = DateTime.fromMillisecondsSinceEpoch( json['origin_server_ts'] as int), - super.fromJson(json); + super.fromJson(); @override Map toJson() { diff --git a/lib/matrix_api_lite/model/event_types.dart b/lib/matrix_api_lite/model/event_types.dart index 700a1882..daa008b6 100644 --- a/lib/matrix_api_lite/model/event_types.dart +++ b/lib/matrix_api_lite/model/event_types.dart @@ -1,3 +1,5 @@ +// ignore_for_file: constant_identifier_names + /* MIT License * * Copyright (C) 2019, 2020, 2021 Famedly GmbH diff --git a/lib/matrix_api_lite/model/events/forwarded_room_key_content.dart b/lib/matrix_api_lite/model/events/forwarded_room_key_content.dart index 8fbf4311..bd5bd17d 100644 --- a/lib/matrix_api_lite/model/events/forwarded_room_key_content.dart +++ b/lib/matrix_api_lite/model/events/forwarded_room_key_content.dart @@ -21,9 +21,9 @@ * SOFTWARE. */ -import '../../utils/try_get_map_extension.dart'; -import '../basic_event.dart'; -import 'room_key_content.dart'; +import 'package:matrix/matrix_api_lite/model/basic_event.dart'; +import 'package:matrix/matrix_api_lite/model/events/room_key_content.dart'; +import 'package:matrix/matrix_api_lite/utils/try_get_map_extension.dart'; extension ForwardedRoomKeyContentBasicEventExtension on BasicEvent { ForwardedRoomKeyContent get parsedForwardedRoomKeyContent => @@ -35,14 +35,14 @@ class ForwardedRoomKeyContent extends RoomKeyContent { String senderClaimedEd25519Key; List forwardingCurve25519KeyChain; - ForwardedRoomKeyContent.fromJson(Map json) + ForwardedRoomKeyContent.fromJson(super.json) : senderKey = json.tryGet('sender_key', TryGet.required) ?? '', senderClaimedEd25519Key = json.tryGet('sender_claimed_ed25519_key', TryGet.required) ?? '', forwardingCurve25519KeyChain = json.tryGetList( 'forwarding_curve25519_key_chain', TryGet.required) ?? [], - super.fromJson(json); + super.fromJson(); @override Map toJson() { diff --git a/lib/matrix_api_lite/model/events/image_pack_content.dart b/lib/matrix_api_lite/model/events/image_pack_content.dart index ff465df2..60be7c82 100644 --- a/lib/matrix_api_lite/model/events/image_pack_content.dart +++ b/lib/matrix_api_lite/model/events/image_pack_content.dart @@ -21,9 +21,9 @@ * SOFTWARE. */ -import '../../utils/filter_map_extension.dart'; -import '../../utils/try_get_map_extension.dart'; -import '../basic_event.dart'; +import 'package:matrix/matrix_api_lite/model/basic_event.dart'; +import 'package:matrix/matrix_api_lite/utils/filter_map_extension.dart'; +import 'package:matrix/matrix_api_lite/utils/try_get_map_extension.dart'; extension ImagePackContentBasicEventExtension on BasicEvent { ImagePackContent get parsedImagePackContent => diff --git a/lib/matrix_api_lite/model/events/olm_plaintext_payload.dart b/lib/matrix_api_lite/model/events/olm_plaintext_payload.dart index 11ec26c7..ef4f2acf 100644 --- a/lib/matrix_api_lite/model/events/olm_plaintext_payload.dart +++ b/lib/matrix_api_lite/model/events/olm_plaintext_payload.dart @@ -21,7 +21,7 @@ * SOFTWARE. */ -import '../../utils/try_get_map_extension.dart'; +import 'package:matrix/matrix_api_lite/utils/try_get_map_extension.dart'; class OlmPlaintextPayload { String? type; diff --git a/lib/matrix_api_lite/model/events/room_encrypted_content.dart b/lib/matrix_api_lite/model/events/room_encrypted_content.dart index c92ed261..60ee27ed 100644 --- a/lib/matrix_api_lite/model/events/room_encrypted_content.dart +++ b/lib/matrix_api_lite/model/events/room_encrypted_content.dart @@ -21,10 +21,7 @@ * SOFTWARE. */ -import 'package:matrix_api_lite/src/utils/logs.dart'; -import '../../utils/filter_map_extension.dart'; -import '../../utils/try_get_map_extension.dart'; -import '../basic_event.dart'; +import 'package:matrix/matrix_api_lite.dart'; extension RoomEncryptedContentBasicEventExtension on BasicEvent { RoomEncryptedContent get parsedRoomEncryptedContent => diff --git a/lib/matrix_api_lite/model/events/room_encryption_content.dart b/lib/matrix_api_lite/model/events/room_encryption_content.dart index 15ed3763..d66bf9cf 100644 --- a/lib/matrix_api_lite/model/events/room_encryption_content.dart +++ b/lib/matrix_api_lite/model/events/room_encryption_content.dart @@ -21,8 +21,8 @@ * SOFTWARE. */ -import '../../utils/try_get_map_extension.dart'; -import '../basic_event.dart'; +import 'package:matrix/matrix_api_lite/model/basic_event.dart'; +import 'package:matrix/matrix_api_lite/utils/try_get_map_extension.dart'; extension RoomEncryptionContentBasicEventExtension on BasicEvent { RoomEncryptionContent get parsedRoomEncryptionContent => diff --git a/lib/matrix_api_lite/model/events/room_key_content.dart b/lib/matrix_api_lite/model/events/room_key_content.dart index a710523b..41f1d314 100644 --- a/lib/matrix_api_lite/model/events/room_key_content.dart +++ b/lib/matrix_api_lite/model/events/room_key_content.dart @@ -21,8 +21,8 @@ * SOFTWARE. */ -import '../../utils/try_get_map_extension.dart'; -import '../basic_event.dart'; +import 'package:matrix/matrix_api_lite/model/basic_event.dart'; +import 'package:matrix/matrix_api_lite/utils/try_get_map_extension.dart'; extension RoomKeyContentBasicEventExtension on BasicEvent { RoomKeyContent get parsedRoomKeyContent => RoomKeyContent.fromJson(content); diff --git a/lib/matrix_api_lite/model/events/room_key_request_content.dart b/lib/matrix_api_lite/model/events/room_key_request_content.dart index ec6162d4..f9d3052b 100644 --- a/lib/matrix_api_lite/model/events/room_key_request_content.dart +++ b/lib/matrix_api_lite/model/events/room_key_request_content.dart @@ -21,8 +21,8 @@ * SOFTWARE. */ -import '../../utils/try_get_map_extension.dart'; -import '../basic_event.dart'; +import 'package:matrix/matrix_api_lite/model/basic_event.dart'; +import 'package:matrix/matrix_api_lite/utils/try_get_map_extension.dart'; extension RoomKeyRequestContentBasicEventExtension on BasicEvent { RoomKeyRequestContent get parsedRoomKeyRequestContent => diff --git a/lib/matrix_api_lite/model/events/secret_storage_default_key_content.dart b/lib/matrix_api_lite/model/events/secret_storage_default_key_content.dart index 7623bcdd..117bac3d 100644 --- a/lib/matrix_api_lite/model/events/secret_storage_default_key_content.dart +++ b/lib/matrix_api_lite/model/events/secret_storage_default_key_content.dart @@ -21,8 +21,8 @@ * SOFTWARE. */ -import '../../utils/try_get_map_extension.dart'; -import '../basic_event.dart'; +import 'package:matrix/matrix_api_lite/model/basic_event.dart'; +import 'package:matrix/matrix_api_lite/utils/try_get_map_extension.dart'; extension SecretStorageDefaultKeyContentBasicEventExtension on BasicEvent { SecretStorageDefaultKeyContent get parsedSecretStorageDefaultKeyContent => diff --git a/lib/matrix_api_lite/model/events/secret_storage_key_content.dart b/lib/matrix_api_lite/model/events/secret_storage_key_content.dart index 42019615..21f8d895 100644 --- a/lib/matrix_api_lite/model/events/secret_storage_key_content.dart +++ b/lib/matrix_api_lite/model/events/secret_storage_key_content.dart @@ -21,8 +21,8 @@ * SOFTWARE. */ -import '../../utils/try_get_map_extension.dart'; -import '../basic_event.dart'; +import 'package:matrix/matrix_api_lite/model/basic_event.dart'; +import 'package:matrix/matrix_api_lite/utils/try_get_map_extension.dart'; extension SecretStorageKeyContentBasicEventExtension on BasicEvent { SecretStorageKeyContent get parsedSecretStorageKeyContent => diff --git a/lib/matrix_api_lite/model/events/tombstone_content.dart b/lib/matrix_api_lite/model/events/tombstone_content.dart index b3dccbec..d5e9e946 100644 --- a/lib/matrix_api_lite/model/events/tombstone_content.dart +++ b/lib/matrix_api_lite/model/events/tombstone_content.dart @@ -21,8 +21,8 @@ * SOFTWARE. */ -import '../../utils/try_get_map_extension.dart'; -import '../basic_event.dart'; +import 'package:matrix/matrix_api_lite/model/basic_event.dart'; +import 'package:matrix/matrix_api_lite/utils/try_get_map_extension.dart'; extension TombstoneContentBasicEventExtension on BasicEvent { TombstoneContent get parsedTombstoneContent => diff --git a/lib/matrix_api_lite/model/matrix_event.dart b/lib/matrix_api_lite/model/matrix_event.dart index 6d3c6cc9..d096d0a1 100644 --- a/lib/matrix_api_lite/model/matrix_event.dart +++ b/lib/matrix_api_lite/model/matrix_event.dart @@ -21,8 +21,8 @@ * SOFTWARE. */ -import '../utils/map_copy_extension.dart'; -import 'stripped_state_event.dart'; +import 'package:matrix/matrix_api_lite/model/stripped_state_event.dart'; +import 'package:matrix/matrix_api_lite/utils/map_copy_extension.dart'; class MatrixEvent extends StrippedStateEvent { String eventId; @@ -33,23 +33,19 @@ class MatrixEvent extends StrippedStateEvent { String? redacts; MatrixEvent({ - required String type, - required Map content, - required String senderId, - String? stateKey, + required super.type, + required super.content, + required super.senderId, + super.stateKey, required this.eventId, this.roomId, required this.originServerTs, this.unsigned, this.prevContent, this.redacts, - }) : super( - type: type, - content: content, - senderId: senderId, - stateKey: stateKey); + }); - MatrixEvent.fromJson(Map json) + MatrixEvent.fromJson(super.json) : eventId = json['event_id'] as String, roomId = json['room_id'] as String?, originServerTs = DateTime.fromMillisecondsSinceEpoch( @@ -57,7 +53,7 @@ class MatrixEvent extends StrippedStateEvent { unsigned = (json['unsigned'] as Map?)?.copy(), prevContent = (json['prev_content'] as Map?)?.copy(), redacts = json['redacts'] as String?, - super.fromJson(json); + super.fromJson(); @override Map toJson() { diff --git a/lib/matrix_api_lite/model/matrix_exception.dart b/lib/matrix_api_lite/model/matrix_exception.dart index 1c10b55c..3a4ea02a 100644 --- a/lib/matrix_api_lite/model/matrix_exception.dart +++ b/lib/matrix_api_lite/model/matrix_exception.dart @@ -1,3 +1,5 @@ +// ignore_for_file: constant_identifier_names + /* MIT License * * Copyright (C) 2019, 2020, 2021 Famedly GmbH @@ -25,7 +27,7 @@ import 'dart:convert'; import 'package:http/http.dart' as http; -import 'package:matrix_api_lite/matrix_api_lite.dart'; +import 'package:matrix/matrix_api_lite.dart'; enum MatrixError { M_UNKNOWN, diff --git a/lib/matrix_api_lite/model/matrix_keys.dart b/lib/matrix_api_lite/model/matrix_keys.dart index d6a8fde8..a3a53121 100644 --- a/lib/matrix_api_lite/model/matrix_keys.dart +++ b/lib/matrix_api_lite/model/matrix_keys.dart @@ -21,7 +21,7 @@ * SOFTWARE. */ -import 'package:matrix_api_lite/matrix_api_lite.dart'; +import 'package:matrix/matrix_api_lite.dart'; abstract class MatrixSignableKey { String userId; @@ -94,9 +94,9 @@ class MatrixCrossSigningKey extends MatrixSignableKey { String? get identifier => keys.values.first; @override - MatrixCrossSigningKey.fromJson(Map json) + MatrixCrossSigningKey.fromJson(super.json) : usage = json.tryGetList('usage') ?? [], - super.fromJson(json); + super.fromJson(); @override Map toJson() { @@ -126,10 +126,10 @@ class MatrixDeviceKeys extends MatrixSignableKey { String? get identifier => deviceId; @override - MatrixDeviceKeys.fromJson(Map json) + MatrixDeviceKeys.fromJson(super.json) : algorithms = json.tryGetList('algorithms') ?? [], deviceId = json['device_id'] as String, - super.fromJson(json); + super.fromJson(); @override Map toJson() { diff --git a/lib/matrix_api_lite/model/message_types.dart b/lib/matrix_api_lite/model/message_types.dart index d6745350..3903c41a 100644 --- a/lib/matrix_api_lite/model/message_types.dart +++ b/lib/matrix_api_lite/model/message_types.dart @@ -1,3 +1,5 @@ +// ignore_for_file: constant_identifier_names + /* MIT License * * Copyright (C) 2019, 2020, 2021 Famedly GmbH diff --git a/lib/matrix_api_lite/model/presence.dart b/lib/matrix_api_lite/model/presence.dart index 90e42cc5..86c6f9b2 100644 --- a/lib/matrix_api_lite/model/presence.dart +++ b/lib/matrix_api_lite/model/presence.dart @@ -21,14 +21,14 @@ * SOFTWARE. */ -import 'basic_event_with_sender.dart'; -import 'presence_content.dart'; +import 'package:matrix/matrix_api_lite/model/basic_event_with_sender.dart'; +import 'package:matrix/matrix_api_lite/model/presence_content.dart'; class Presence extends BasicEventWithSender { PresenceContent presence; - Presence.fromJson(Map json) + Presence.fromJson(super.json) : presence = PresenceContent.fromJson(json['content'] as Map), - super.fromJson(json); + super.fromJson(); } diff --git a/lib/matrix_api_lite/model/presence_content.dart b/lib/matrix_api_lite/model/presence_content.dart index 25665960..2e5f9b70 100644 --- a/lib/matrix_api_lite/model/presence_content.dart +++ b/lib/matrix_api_lite/model/presence_content.dart @@ -21,7 +21,7 @@ * SOFTWARE. */ -import 'package:matrix_api_lite/matrix_api_lite.dart'; +import 'package:matrix/matrix_api_lite.dart'; class PresenceContent { PresenceType presence; diff --git a/lib/matrix_api_lite/model/room_keys_keys.dart b/lib/matrix_api_lite/model/room_keys_keys.dart index 6a3762ef..f670eda6 100644 --- a/lib/matrix_api_lite/model/room_keys_keys.dart +++ b/lib/matrix_api_lite/model/room_keys_keys.dart @@ -21,7 +21,7 @@ * SOFTWARE. */ -import 'package:matrix_api_lite/matrix_api_lite.dart'; +import 'package:matrix/matrix_api_lite.dart'; class RoomKeysSingleKey { int firstMessageIndex; diff --git a/lib/matrix_api_lite/model/stripped_state_event.dart b/lib/matrix_api_lite/model/stripped_state_event.dart index dd78184d..5c0a991b 100644 --- a/lib/matrix_api_lite/model/stripped_state_event.dart +++ b/lib/matrix_api_lite/model/stripped_state_event.dart @@ -21,21 +21,20 @@ * SOFTWARE. */ -import 'package:matrix_api_lite/matrix_api_lite.dart'; +import 'package:matrix/matrix_api_lite.dart'; class StrippedStateEvent extends BasicEventWithSender { String? stateKey; StrippedStateEvent( - {required String type, - required Map content, - required String senderId, - this.stateKey}) - : super(type: type, content: content, senderId: senderId); + {required super.type, + required super.content, + required super.senderId, + this.stateKey}); - StrippedStateEvent.fromJson(Map json) + StrippedStateEvent.fromJson(super.json) : stateKey = json.tryGet('state_key'), - super.fromJson(json); + super.fromJson(); @override Map toJson() { diff --git a/lib/matrix_api_lite/model/sync_update.dart b/lib/matrix_api_lite/model/sync_update.dart index 806c9c52..25ff2266 100644 --- a/lib/matrix_api_lite/model/sync_update.dart +++ b/lib/matrix_api_lite/model/sync_update.dart @@ -21,7 +21,7 @@ * SOFTWARE. */ -import 'package:matrix_api_lite/matrix_api_lite.dart'; +import 'package:matrix/matrix_api_lite.dart'; class SyncUpdate { String nextBatch; diff --git a/lib/matrix_api_lite/utils/logs.dart b/lib/matrix_api_lite/utils/logs.dart index 628e6d55..495194cd 100644 --- a/lib/matrix_api_lite/utils/logs.dart +++ b/lib/matrix_api_lite/utils/logs.dart @@ -21,7 +21,8 @@ * SOFTWARE. */ -import 'print_logs_native.dart' if (dart.library.html) 'print_logs_web.dart'; +import 'package:matrix/matrix_api_lite/utils/print_logs_native.dart' + if (dart.library.html) 'print_logs_web.dart'; enum Level { wtf, diff --git a/lib/matrix_api_lite/utils/print_logs_native.dart b/lib/matrix_api_lite/utils/print_logs_native.dart index 7b8f5314..9f707655 100644 --- a/lib/matrix_api_lite/utils/print_logs_native.dart +++ b/lib/matrix_api_lite/utils/print_logs_native.dart @@ -1,4 +1,4 @@ -import 'package:matrix_api_lite/matrix_api_lite.dart'; +import 'package:matrix/matrix_api_lite.dart'; extension PrintLogs on LogEvent { void printOut() { diff --git a/lib/matrix_api_lite/utils/print_logs_web.dart b/lib/matrix_api_lite/utils/print_logs_web.dart index f13f0311..b24ffd4b 100644 --- a/lib/matrix_api_lite/utils/print_logs_web.dart +++ b/lib/matrix_api_lite/utils/print_logs_web.dart @@ -1,6 +1,6 @@ import 'dart:html'; -import 'package:matrix_api_lite/matrix_api_lite.dart'; +import 'package:matrix/matrix_api_lite.dart'; extension PrintLogs on LogEvent { void printOut() { diff --git a/lib/matrix_api_lite/utils/try_get_map_extension.dart b/lib/matrix_api_lite/utils/try_get_map_extension.dart index 5a9cf7a8..68aef66b 100644 --- a/lib/matrix_api_lite/utils/try_get_map_extension.dart +++ b/lib/matrix_api_lite/utils/try_get_map_extension.dart @@ -23,7 +23,7 @@ import 'dart:core'; -import 'logs.dart'; +import 'package:matrix/matrix_api_lite/utils/logs.dart'; abstract class TryGet { void call(String key, Type expected, Type actual); diff --git a/lib/matrix_api_lite/values.dart b/lib/matrix_api_lite/values.dart index aa4f66ac..032e3dba 100644 --- a/lib/matrix_api_lite/values.dart +++ b/lib/matrix_api_lite/values.dart @@ -15,7 +15,7 @@ class TagType { static final lowPriority = 'm.lowpriority'; static final serverNotice = 'm.server_notice'; - static bool isValid(String tag) => tag.startsWith('m.') - ? [favourite, lowPriority, serverNotice].contains(tag) - : true; + static bool isValid(String tag) => + !tag.startsWith('m.') || + [favourite, lowPriority, serverNotice].contains(tag); } diff --git a/lib/msc_extensions/msc_3814_dehydrated_devices/api.dart b/lib/msc_extensions/msc_3814_dehydrated_devices/api.dart index a36bada1..4534b435 100644 --- a/lib/msc_extensions/msc_3814_dehydrated_devices/api.dart +++ b/lib/msc_extensions/msc_3814_dehydrated_devices/api.dart @@ -21,8 +21,7 @@ * SOFTWARE. */ -import 'package:matrix_api_lite/matrix_api_lite.dart'; - +import 'package:matrix/matrix_api_lite.dart'; import 'package:matrix/msc_extensions/msc_3814_dehydrated_devices/model/dehydrated_device.dart'; import 'package:matrix/msc_extensions/msc_3814_dehydrated_devices/model/dehydrated_device_events.dart'; diff --git a/lib/msc_extensions/msc_3814_dehydrated_devices/model/dehydrated_device.dart b/lib/msc_extensions/msc_3814_dehydrated_devices/model/dehydrated_device.dart index c4a8d0c5..dc27df77 100644 --- a/lib/msc_extensions/msc_3814_dehydrated_devices/model/dehydrated_device.dart +++ b/lib/msc_extensions/msc_3814_dehydrated_devices/model/dehydrated_device.dart @@ -21,7 +21,7 @@ * SOFTWARE. */ -import 'package:matrix_api_lite/matrix_api_lite.dart'; +import 'package:matrix/matrix_api_lite.dart'; class DehydratedDevice { String deviceId; diff --git a/lib/src/database/indexeddb_box.dart b/lib/src/database/indexeddb_box.dart index fe869f15..a5f56571 100644 --- a/lib/src/database/indexeddb_box.dart +++ b/lib/src/database/indexeddb_box.dart @@ -9,10 +9,9 @@ import 'package:matrix/src/database/zone_transaction_mixin.dart'; class BoxCollection with ZoneTransactionMixin { final Database _db; final Set boxNames; - final String _name; - final IdbFactory _idbFactory; + final String name; - BoxCollection(this._db, this.boxNames, this._name, this._idbFactory); + BoxCollection(this._db, this.boxNames, this.name); static Future open( String name, @@ -29,7 +28,7 @@ class BoxCollection with ZoneTransactionMixin { db.createObjectStore(name, autoIncrement: true); } }); - return BoxCollection(db, boxNames, name, idbFactory); + return BoxCollection(db, boxNames, name); } Box openBox(String name) { @@ -81,7 +80,8 @@ class BoxCollection with ZoneTransactionMixin { return _db.close(); } - Future delete() => _idbFactory.deleteDatabase(_name); + static Future delete(String path, [IdbFactory? factory]) => + (factory ?? window.indexedDB!).deleteDatabase(path); } class Box { diff --git a/lib/src/database/matrix_sdk_database.dart b/lib/src/database/matrix_sdk_database.dart index 8e39bdca..89a89575 100644 --- a/lib/src/database/matrix_sdk_database.dart +++ b/lib/src/database/matrix_sdk_database.dart @@ -1594,5 +1594,8 @@ class MatrixSdkDatabase extends DatabaseApi { } @override - Future delete() => _collection.delete(); + Future delete() => BoxCollection.delete( + name, + sqfliteFactory ?? idbFactory, + ); } diff --git a/lib/src/database/sqflite_box.dart b/lib/src/database/sqflite_box.dart index 459be4a7..61c10ad8 100644 --- a/lib/src/database/sqflite_box.dart +++ b/lib/src/database/sqflite_box.dart @@ -10,9 +10,9 @@ import 'package:matrix/src/database/zone_transaction_mixin.dart'; class BoxCollection with ZoneTransactionMixin { final Database _db; final Set boxNames; - final DatabaseFactory? _factory; + final String name; - BoxCollection(this._db, this.boxNames, this._factory); + BoxCollection(this._db, this.boxNames, this.name); static Future open( String name, @@ -32,7 +32,7 @@ class BoxCollection with ZoneTransactionMixin { batch.execute('CREATE INDEX IF NOT EXISTS k_index ON $name (k)'); } await batch.commit(noResult: true); - return BoxCollection(sqfliteDatabase, boxNames, sqfliteFactory); + return BoxCollection(sqfliteDatabase, boxNames, name); } Box openBox(String name) { @@ -67,8 +67,8 @@ class BoxCollection with ZoneTransactionMixin { Future close() => _db.close(); - Future delete() => - (_factory ?? databaseFactory).deleteDatabase(_db.path); + static Future delete(String path, [DatabaseFactory? factory]) => + (factory ?? databaseFactory).deleteDatabase(path); } class Box { diff --git a/lib/src/utils/image_pack_extension.dart b/lib/src/utils/image_pack_extension.dart index d2db19e3..03525e71 100644 --- a/lib/src/utils/image_pack_extension.dart +++ b/lib/src/utils/image_pack_extension.dart @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -import 'package:matrix_api_lite/matrix_api_lite.dart'; import 'package:slugify/slugify.dart'; +import 'package:matrix/matrix_api_lite.dart'; import 'package:matrix/src/room.dart'; extension ImagePackRoomExtension on Room { diff --git a/lib/src/utils/marked_unread.dart b/lib/src/utils/marked_unread.dart index 553eb071..8e822972 100644 --- a/lib/src/utils/marked_unread.dart +++ b/lib/src/utils/marked_unread.dart @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -import 'package:matrix_api_lite/matrix_api_lite.dart'; +import 'package:matrix/matrix_api_lite.dart'; mixin EventType { static const String markedUnread = 'com.famedly.marked_unread'; diff --git a/lib/src/utils/space_child.dart b/lib/src/utils/space_child.dart index 38c32270..ec5acb41 100644 --- a/lib/src/utils/space_child.dart +++ b/lib/src/utils/space_child.dart @@ -16,8 +16,7 @@ * along with this program. If not, see . */ -import 'package:matrix_api_lite/matrix_api_lite.dart'; - +import 'package:matrix/matrix_api_lite.dart'; import 'package:matrix/src/event.dart'; class SpaceChild { diff --git a/lib/src/voip/call.dart b/lib/src/voip/call.dart index fd10290d..12815de3 100644 --- a/lib/src/voip/call.dart +++ b/lib/src/voip/call.dart @@ -525,7 +525,7 @@ class CallSession { Logs().v('[VOIP] Call invite has expired. Hanging up.'); hangupParty = CallParty.kRemote; // effectively fireCallEvent(CallEvent.kHangup); - hangup(CallErrorCode.InviteTimeout); + hangup(reason: CallErrorCode.InviteTimeout); } ringingTimer?.cancel(); ringingTimer = null; @@ -550,7 +550,7 @@ class CallSession { successor = newCall; onCallReplaced.add(newCall); // ignore: unawaited_futures - hangup(CallErrorCode.Replaced, true); + hangup(reason: CallErrorCode.Replaced); } Future sendAnswer(RTCSessionDescription answer) async { @@ -1164,7 +1164,7 @@ class CallSession { if (state != CallState.kRinging && state != CallState.kFledgling) { Logs().e( '[VOIP] Call must be in \'ringing|fledgling\' state to reject! (current state was: ${state.toString()}) Calling hangup instead'); - await hangup(reason, shouldEmit); + await hangup(reason: reason, shouldEmit: shouldEmit); return; } Logs().d('[VOIP] Rejecting call: $callId'); @@ -1174,7 +1174,7 @@ class CallSession { } } - Future hangup([String? reason, bool shouldEmit = true]) async { + Future hangup({String? reason, bool shouldEmit = true}) async { await terminate( CallParty.kLocal, reason ?? CallErrorCode.UserHangup, shouldEmit); @@ -1303,8 +1303,9 @@ class CallSession { capabilities: callCapabilities, metadata: metadata); // just incase we ended the call but already sent the invite + // raraley happens during glares if (state == CallState.kEnded) { - await hangup(CallErrorCode.Replaced, false); + await hangup(reason: CallErrorCode.Replaced); return; } inviteOrAnswerSent = true; @@ -1318,7 +1319,7 @@ class CallSession { inviteTimer = Timer(CallTimeouts.callInviteLifetime, () { if (state == CallState.kInviteSent) { - hangup(CallErrorCode.InviteTimeout); + hangup(reason: CallErrorCode.InviteTimeout); } inviteTimer?.cancel(); inviteTimer = null; @@ -1404,7 +1405,7 @@ class CallSession { await updateMuteStatus(); missedCall = false; } else if (state == RTCIceConnectionState.RTCIceConnectionStateFailed) { - await hangup(CallErrorCode.IceFailed, false); + await hangup(reason: CallErrorCode.IceFailed); } }; } catch (e) { @@ -1614,7 +1615,7 @@ class CallSession { 'Failed to send candidates on attempt $candidateSendTries Giving up on this call.'); lastError = CallError(CallErrorCode.SignallingFailed, 'Signalling failed', e); - await hangup(CallErrorCode.SignallingFailed, true); + await hangup(reason: CallErrorCode.SignallingFailed); return; } @@ -1655,7 +1656,7 @@ class CallSession { fireCallEvent(CallEvent.kError); lastError = CallError( CallErrorCode.LocalOfferFailed, 'Failed to get local offer!', err); - await terminate(CallParty.kLocal, CallErrorCode.LocalOfferFailed, false); + await terminate(CallParty.kLocal, CallErrorCode.LocalOfferFailed, true); } Future _getUserMediaFailed(dynamic err) async { @@ -1666,7 +1667,7 @@ class CallSession { CallErrorCode.NoUserMedia, 'Couldn\'t start capturing media! Is your microphone set up and does this app have permission?', err); - await terminate(CallParty.kLocal, CallErrorCode.NoUserMedia, false); + await terminate(CallParty.kLocal, CallErrorCode.NoUserMedia, true); } } diff --git a/lib/src/voip/group_call.dart b/lib/src/voip/group_call.dart index 44f364bb..b0c42275 100644 --- a/lib/src/voip/group_call.dart +++ b/lib/src/voip/group_call.dart @@ -1029,7 +1029,9 @@ class GroupCall { } if (call.state != CallState.kEnded) { - await call.hangup(hangupReason, false); + // no need to emit individual handleCallEnded on group calls + // also prevents a loop of hangup and onCallHangupNotifierForGroupCalls + await call.hangup(reason: hangupReason, shouldEmit: false); } final usermediaStream = getUserMediaStreamByUserId(opponentMemberId); diff --git a/lib/src/voip/voip.dart b/lib/src/voip/voip.dart index c099815b..931449a9 100644 --- a/lib/src/voip/voip.dart +++ b/lib/src/voip/voip.dart @@ -244,6 +244,7 @@ class VoIP { (confId == null || confId != currentGroupCID)) { Logs().v( '[VOIP] onCallInvite: Unable to handle new calls, maybe user is busy.'); + // no need to emit here because handleNewCall was never triggered yet await newCall.reject(reason: CallErrorCode.UserBusy, shouldEmit: false); await delegate.handleMissedCall(newCall); return; diff --git a/pubspec.yaml b/pubspec.yaml index c70224bc..5b9bc36e 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -15,6 +15,7 @@ dependencies: canonical_json: ^1.1.0 collection: ^1.15.0 crypto: ^3.0.0 + enhanced_enum: ^0.2.4 ffi: ^2.0.0 hive: ^2.2.3 html: ^0.15.0 @@ -23,7 +24,6 @@ dependencies: image: ^4.0.15 js: ^0.6.3 markdown: ^7.1.1 - matrix_api_lite: ^1.7.0 mime: ^1.0.0 olm: ^2.0.2 random_string: ^2.3.1 @@ -35,7 +35,9 @@ dependencies: webrtc_interface: ^1.0.13 dev_dependencies: + build_runner: ^2.4.8 coverage: ">=0.15.0 <2.0.0" + enhanced_enum_generator: ^0.2.4 file: ">=6.1.1 <8.0.0" import_sorter: ^4.6.0 lints: ^3.0.0 diff --git a/test/box_test.dart b/test/box_test.dart index 5b66514d..e5d352ef 100644 --- a/test/box_test.dart +++ b/test/box_test.dart @@ -9,8 +9,9 @@ void main() { const Set boxNames = {'cats', 'dogs'}; const data = {'name': 'Fluffy', 'age': 2}; const data2 = {'name': 'Loki', 'age': 4}; + late Database db; setUp(() async { - final db = await databaseFactoryFfi.openDatabase(':memory:'); + db = await databaseFactoryFfi.openDatabase(':memory:'); collection = await BoxCollection.open( 'testbox', boxNames, @@ -91,7 +92,7 @@ void main() { }); test('Box.delete', () async { - await collection.delete(); + await BoxCollection.delete(db.path, databaseFactoryFfi); }); }); } diff --git a/test/matrix_api/try_get_map_extension_test.dart b/test/matrix_api/try_get_map_extension_test.dart index 886700e3..dc5f7843 100644 --- a/test/matrix_api/try_get_map_extension_test.dart +++ b/test/matrix_api/try_get_map_extension_test.dart @@ -16,9 +16,10 @@ * along with this program. If not, see . */ -import 'package:matrix_api_lite/matrix_api_lite.dart'; import 'package:test/test.dart'; +import 'package:matrix/matrix_api_lite.dart'; + void main() { group('Try-get-map-extension', () { test('it should work', () {