matrix_sdk 0.32.0+1 copy "matrix_sdk: ^0.32.0+1" to clipboard
matrix_sdk: ^0.32.0+1 copied to clipboard

discontinued
outdated

An SDK written in Dart to connect to Matrix, the federated communication protocol.

0.32.0 #

  • Databases are now deleted as a migration strategy

    This will be in effect until 1.0 (or a bit before). If needed, make a backup between every minor version bump.

  • All members necessary to render the timeline are now loaded from the store

  • Room.myMembership has been removed, use Room.me.membership

  • Add Rooms.enter and Room.join to join rooms

  • Add Room.leave method

  • Add PublicRooms

  • Add useful getts to Member like isInvited or hasJoined

  • Remove AliasesChangeEvent

  • Errors in the separate isolate are now added to the updates stream where possible, or thrown in the calling isolate

  • Fix profile API not working on servers where authorization is required

  • Add MyUser.hasSynced

  • Fix count not being nullable in MemberTimeline.load

  • More fixes and small changes!

0.31.0 #

  • Add the ability to defer all processing to a different isolate When you use isolated: true on Homeserver.login or MyUser.fromStore, everything will be handled for you and the SDK works the same.

    This only works on platforms with the Dart VM (not web).

  • Updaters are now globally registered per MyUser id. This means for now only one Updater per MyUser is allowed. Updaters are created when a MyUser instance is retrieved via Homeserver.login or MyUser.fromStore

  • Add ability to specify what rooms to load from store when retrieving user

  • The previousBatch param from Room.copyWith is removed (wasn't used)

  • Add ability to override context in MyUser.copyWith and MyUser.merge

  • Updater and Homeserver are less coupled now

  • When a Context is changed with copyWith, all child objects' contexts are also changed

  • Fix bug in read receipt parsing (thanks to Mathieu Velten!)

  • Sync errors are now pushed to the updates stream

  • Fix access token not being passed to logout API

  • Add type to RequestUpdate, so you can see which type of call the update was caused by

  • Moor has been updated

  • And other minor fixes!

0.30.0 #

The whole SDK has been refactored!

  • All data objects such as MyUser, Room, etc. are now immutable
  • Add MoorStore, which uses moor (thanks to Mathieu Velten for the idea and initial implementation!)
  • The SqfliteStore (was in a seperate package) is now deprecated
  • LocalUser has been renamed to MyUser

There are a lot more changes, see the README on how to use the SDK.

Some features previously present may not have been added yet again. They will be added in the future!

0.29.0 #

  • Remove from and count from getRooms

0.28.1 #

  • Add join method to Rooms

0.28.0 #

  • Move power level helper methods to Room

0.27.2 #

  • Add power level helper methods to Room and PowerLevels

0.27.1 #

  • Upgrade url dependency

0.27.0 #

  • Rework pusher API

0.26.0 #

  • Make sync an Observable

    Use startSync to start syncing.

0.25.1 #

  • Add isSyncing property and stopSync method
  • Update Dart FFI code

0.25.0 #

  • Relicense to MPL-2.0
  • Remove all individual state fields of Room and use RoomStateEvents to store state
  • Add getters for power levels to Room
  • Implement room aliases

0.24.3 #

  • Make sure that Members.count is and will never return null

0.24.2 #

  • Fix generated code being out of sync

0.24.1 #

  • Add LocalUser.setName method
  • Fix null exception for specific event power levels

0.24.0 #

  • Set profile info of local user on login

  • Use fewer methods for storing LocalUser

    There's just getLocalUser and getSyncToken (and equivalent setters).

  • Fix exception when serializing if duration is null

0.23.9 #

  • Fix audio message duration serialization

0.23.8 #

  • Handle an audio message without duration correctly
  • Handle a power levels event without specific event levels correctly
  • Fix homeserver test

0.23.7 #

  • Don't throw an exception by default

0.23.6 #

  • Make id optional in Device constructor

0.23.5 #

  • Copy the device ID returned from the login response

0.23.4 #

  • Let ImageMessageEvent be created with Event.fromContent

0.23.3 #

  • Use POST for read marker endpoint

0.23.2 #

  • Add Room.markRead method

0.23.1 #

  • Add notification count properties to inherited Room constructors

0.23.0 #

  • Add userId to Device
  • Remove trailing slash from .well-known homeserver url
  • Set setCurrentDevice return type to Future<void>
  • Let Username.toString return its value
  • Save Device on login
  • Set userId of Device on login
  • Add copyWith method to Device
  • Add Homserver.fromWellKnown tests
  • Add httpClient param to Homeserver.fromWellKnown for testing
  • Add libolm build script

0.22.1 #

  • Add notification count properties to Room
  • Parse power levels even if they're strings
  • Make sure duration milliseconds is an int
  • Change AudioInfo.duration type to Durration
  • Fix exceptions when total member count is unknown
  • Add Account for the olm implementation
  • Rename Id to MatrixId and let Id be genereic id
  • Add Device class (now used in Homeserver.login)
  • Handle no specific power level events properly
  • Add unit tests

0.21.1 #

  • Fix example code

0.21.0 #

  • Add deviceId and deviceName parameters to login(..)
  • Make the store parameter @required at login(..)

0.20.3 #

  • Don't check ephemeral events if not supplied

0.20.1 #

  • Fix User hash code implementation

0.20.0 #

  • Redo Members implementation

  • Members can now be retrieved remotely

  • Remove User.isIdenticalTo

    The == operator is now equivalent to the removed method.

0.19.8 #

  • Add Storables.isLastPossibleItem

    Used so that the timeline will not try to get events from store or remote when the RoomCreationEvent has been passed.

  • Add SyncState.dirtyRooms

  • Fix exception when typingUsers contains nulls

0.19.6 #

  • Add isSomeoneTyping and isSomeoneElseTyping properties to Room

0.19.4 #

  • Implement typing notifications
    • Use room.typingUsers to see which users are typing
    • Use room.setIsTyping to notify that the LocalUser is typing
  • Add PowerLevelsChangeEvent

0.19.3 #

  • Export TopicChangeEvent

0.19.2 #

  • Implement m.room.topic

  • Fix exception when room summary is null (thanks Mathieu!)

  • Format code with dartfmt

    For new merge requests, code is checked with dartfmt and dartanalyzer whether it's formatted and correct.

0.19.1 #

  • Downgrade meta package dependency to 1.1.6

0.19.0 #

  • Add from and count to Store.getMembers(..)
  • Use protected methods of Storables correctly
  • Let Storables.getFromMemory(..) be sync instead of async
  • Fix some issues with Members not returning anything

0.18.3 #

  • Add Members.count

    This is the actual amount of users in the room, not how many users are stored in memory or the store.

0.18.2 #

  • Add paginating functionality to Storables

    A new method has been added to Storables: paginate. This can be used to get a 'page' of items (like from the Timeline).

  • Remove use of Streams

    Storables methods that returned Stream<T> before will now return a Future<Iterable<T>>

  • Process state when fetching events remotely

    This means that the user states are now correctly set for remote messages!

  • Don't parse events with invalid user IDs

  • Add MemoryStore

Changes thanks to Mathieu:

  • Remote state_key from StateEventContent
  • Fix parsing of redaction of state events
  • Add upload method to LocalUser
  • Use Stream<List<int>> for upload and download method instead of Uint8List

0.17.3 #

  • Fix missing semicolon

0.17.2 #

  • Don't handle room upgrades without a replacement specified

0.17.1 #

  • Export RoomUpgradeEvent

0.17.0 #

  • Room.timeline(..) can now return message from a previous room if the room was upgraded, for a seamless timeline between upgrades
  • Restructuring of protected methods and other things in Storables
  • Handle mapping of Matrix types differently

0.16.3 #

  • Fix url FormatException not handled

0.16.2 #

  • Mark a room as non-direct if someone new joins

0.16.1 #

  • Fix upTo being null raising an exception

0.16.0 #

  • Rename upTo(..) to get(..) in Storables
  • Merge all(..) in to get(..) in Storables
  • Rename get(..) to getStateOf(..) Members
  • Don't process state events without a state_key

0.15.2 #

  • Use actual nulls when serializing urls

0.15.1 #

  • Don't check whether Url is valid in download methods The given Url already is valid.

0.15.0 #

  • Use url package for all URLs

0.14.0 #

  • Enforce URL validity Use Url.parse(..) to parse a String to an Uri, but which is guaranteed to be an URL, not just an URI (if parsing was successful, otherwise throws a FormatException).

0.13.3 #

  • Add Homeserver.fromWellKnown function Use this to create a Homeserver based on .well-known data.

0.13.2 #

  • Set _directUser based on InviteEvent too
  • Don't serialize width and height if null
  • Add proper toString to MatrixException

0.13.1 #

  • Implement LeftRoom
  • Change Store Room methods to general names (getRooms(..) instead of getJoinedRooms(..), etc.)
  • Set room name to null if set to empty string
  • Remove fromJson(..) factory constructor from Room
  • Remove store param from Room
  • Make all Room parameters named

0.12.3 #

  • Fix remote var being wrong type

0.12.2 #

  • Add original json body to MatrixException
  • Use UnknownException as default MatrixException
  • Handle null room names correctly
  • Fix exception when a Storables has no remote items
  • Handle when width and/or height of ImageInfo are null

0.12.0 #

  • Remove all from parameters

0.11.0 #

Changes from Mathieu Velten:

  • Add allowRemote to option to upTo
  • Add to parameter to upTo
  • Remove from from upTo
  • Add AudioMessageEvent

0.10.1 #

  • Add rooms.create method
  • Remove integration tests These will be replaced with proper unit tests in the future.

0.10.0 #

  • Rename AvatarUrlChangeEvent to AvatarChangeEvent
  • Rename AvatarChangeEvent to RoomAvatarChangeEvent
  • Rename NameChangeEvent to RoomNameChangeEvent
  • Add RoomCreationEvent
  • members.get() returns oldest user state if the given time (at) is lower than any known state.
  • Fix state not being processed properly if room was newly created. Now all processing of events is done in a single function.

0.4.12 #

  • Serialize replies

0.4.11 #

  • Add inReplyToId field to MessageEventContent

0.4.10 #

  • Add transaction_id param to send
  • Serialize transaction_id
  • Use RoomEventArgs in Event.fromJson

0.4.7 #

  • Add getUnsentEvents method to Store
  • Retry sending if failed

0.4.6 #

  • Get display name from prev_content as backup

0.4.5 #

  • Fix leave events not having a display name set

0.4.4 #

  • Pass a SyncState object in the sync stream

0.4.3 #

  • Add downloadThumbnail method

0.4.2 #

  • Fix sending test
  • Add formattedBody field to TextMessageEvent
  • Fix store required being non-null

0.4.1 #

  • Serialize display name of member change event

0.4.0 #

  • Implement local message echo

0.3.9 #

  • Serialize url and image info properly

0.3.8 #

  • Fix url not being serialized of image message

0.3.7 #

  • Add image information to image message event

0.3.6 #

  • Return null if image url is null

0.3.5 #

  • Implement m.image message event

0.3.2 #

  • Add delete() method to Store

0.3.1 #

  • Add ability to logout

0.3.0 #

  • Implement message sending
  • Move content fields to seperate classes

0.2.4 #

  • Don't pass dependency injection scope seperately
  • Don't silence dependency injection errors
  • Fix events sometimes being null

0.2.3 #

  • Implement fetching events from history
  • Use dependency injection (using Kiwi)
  • Simplify user assignment when creating events
  • Don't sort items when adding them
  • Implement upTo(count) method in Storables

0.2.2 #

  • Fix exception when handling avatar deletion

0.2.1 #

  • Add option to set user when creating event
  • Let display names also be set on subsequent syncs

0.2.0 #

  • Add Room and User reference to events
  • Save more efficiently
  • Remove print when using historical localpart
  • Add fullState param to sync api
  • Implement members
  • Change some field names
  • Add null checks to LocalUser.fromStore()

0.1.9 #

  • Remove idb_shim dependency
  • Make Rooms and Events implementation generic
  • Deserialize other member events, add displayname
  • Restructure event classes
  • Implement m.room.member
  • Fix events.state() returning MessageEvent stream

0.1.8 #

  • Cast specific event streams
  • Use room id as name if room name is null

0.1.7 #

  • Add avatar url to JoinedRoom constructor

0.1.6 #

  • Fix AvatarChangeEvent not being able to serialize

0.1.5 #

  • Implement m.room.avatar event
  • Add media download method

0.1.4 #

  • Add LocalUser.fromStore
  • Add ability to store homeserver and user id

0.1.3 #

  • Don't check whether Store is open in LocalUser constructor

0.1.2 #

  • Make Store per user
  • Remove IndexedDbStore

0.1.1 #

  • Export event(s)

0.1.0 #

  • Add basic event support
  • Use IndexedDB instead of Sembast store
  • Let store support multiple LocalUsers
  • Fix equality issues
  • Restructure tests, use a test room on matrix.org
  • Use dotenv for username and password in tests

0.0.7 #

  • Fix bug where sync would continously add duplicate rooms

0.0.6 #

  • Fix sync always being initial sync

0.0.5 #

  • Depend on a lower version of the meta package

0.0.4 #

  • Fix syncing without store throwing exception
  • Add missing meta dependency
  • Add example code
  • Remove unused imports
12
likes
0
pub points
49%
popularity

Publisher

verified publisherpattle.org

An SDK written in Dart to connect to Matrix, the federated communication protocol.

Repository
View/report issues

License

unknown (license)

Dependencies

async, chopper, collection, equatable, ffi, http, image, meta, mime, moor, moor_ffi, pedantic, synchronized

More

Packages that depend on matrix_sdk