matrix_sdk 0.32.0+1 matrix_sdk: ^0.32.0+1 copied to clipboard
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, useRoom.me.membership
-
Add
Rooms.enter
andRoom.join
to join rooms -
Add
Room.leave
method -
Add
PublicRooms
-
Add useful getts to
Member
likeisInvited
orhasJoined
-
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 inMemberTimeline.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
onHomeserver.login
orMyUser.fromStore
, everything will be handled for you and the SDK works the same.This only works on platforms with the Dart VM (not web).
-
Updater
s are now globally registered perMyUser
id
. This means for now only oneUpdater
perMyUser
is allowed.Updater
s are created when aMyUser
instance is retrieved viaHomeserver.login
orMyUser.fromStore
-
Add ability to specify what rooms to load from store when retrieving user
-
The
previousBatch
param fromRoom.copyWith
is removed (wasn't used) -
Add ability to override context in
MyUser.copyWith
andMyUser.merge
-
Updater
andHomeserver
are less coupled now -
When a
Context
is changed withcopyWith
, all child objects'context
s 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
toRequestUpdate
, 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 toMyUser
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
andcount
fromgetRooms
0.28.1 #
- Add
join
method toRooms
0.28.0 #
- Move power level helper methods to
Room
0.27.2 #
- Add power level helper methods to
Room
andPowerLevels
0.27.1 #
- Upgrade
url
dependency
0.27.0 #
- Rework pusher API
0.26.0 #
-
Make
sync
anObservable
Use
startSync
to start syncing.
0.25.1 #
- Add
isSyncing
property andstopSync
method - Update Dart FFI code
0.25.0 #
- Relicense to MPL-2.0
- Remove all individual state fields of
Room
and useRoomStateEvents
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
andgetSyncToken
(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 withEvent.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
toDevice
- Remove trailing slash from
.well-known
homeserver url - Set
setCurrentDevice
return type toFuture<void>
- Let
Username.toString
return its value - Save
Device
on login - Set
userId
of Device on login - Add
copyWith
method toDevice
- Add
Homserver.fromWellKnown
tests - Add
httpClient
param toHomeserver.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 toDurration
- Fix exceptions when total member count is unknown
- Add
Account
for the olm implementation - Rename
Id
toMatrixId
and letId
be genereic id - Add
Device
class (now used inHomeserver.login
) - Handle no specific power level events properly
- Add unit tests
0.21.1 #
- Fix example code
0.21.0 #
- Add
deviceId
anddeviceName
parameters tologin(..)
- Make the
store
parameter@required
atlogin(..)
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
containsnull
s
0.19.6 #
- Add
isSomeoneTyping
andisSomeoneElseTyping
properties toRoom
0.19.4 #
- Implement typing notifications
- Use
room.typingUsers
to see which users are typing - Use
room.setIsTyping
to notify that theLocalUser
is typing
- Use
- 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
anddartanalyzer
whether it's formatted and correct.
0.19.1 #
- Downgrade meta package dependency to 1.1.6
0.19.0 #
- Add
from
andcount
toStore.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 theTimeline
). -
Remove use of
Stream
sStorables
methods that returnedStream<T>
before will now return aFuture<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
fromStateEventContent
- Fix parsing of redaction of state events
- Add
upload
method toLocalUser
- Use
Stream<List<int>>
forupload
anddownload
method instead ofUint8List
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
beingnull
raising an exception
0.16.0 #
- Rename
upTo(..)
toget(..)
inStorables
- Merge
all(..)
in toget(..)
inStorables
- Rename
get(..)
togetStateOf(..)
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 indownload
methods The givenUrl
already is valid.
0.14.0 #
- Enforce URL validity
Use
Url.parse(..)
to parse aString
to anUri
, but which is guaranteed to be an URL, not just an URI (if parsing was successful, otherwise throws aFormatException
).
0.13.3 #
- Add
Homeserver.fromWellKnown
function Use this to create aHomeserver
based on.well-known
data.
0.13.2 #
- Set
_directUser
based onInviteEvent
too - Don't serialize
width
andheight
ifnull
- Add proper
toString
toMatrixException
0.13.1 #
- Implement
LeftRoom
- Change
Store
Room
methods to general names (getRooms(..)
instead ofgetJoinedRooms(..)
, etc.) - Set room name to null if set to empty string
- Remove
fromJson(..)
factory constructor fromRoom
- Remove
store
param fromRoom
- Make all
Room
parameters named
0.12.3 #
- Fix
remote
var being wrong type
0.12.2 #
- Add original json
body
toMatrixException
- Use
UnknownException
as defaultMatrixException
- Handle
null
room names correctly - Fix exception when a
Storables
has no remote items - Handle when
width
and/orheight
ofImageInfo
arenull
0.12.0 #
- Remove all
from
parameters
0.11.0 #
Changes from Mathieu Velten:
- Add
allowRemote
to option toupTo
- Add
to
parameter toupTo
- Remove
from
fromupTo
- 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
toAvatarChangeEvent
- Rename
AvatarChangeEvent
toRoomAvatarChangeEvent
- Rename
NameChangeEvent
toRoomNameChangeEvent
- 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 toMessageEventContent
0.4.10 #
- Add
transaction_id
param tosend
- Serialize
transaction_id
- Use
RoomEventArgs
inEvent.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 toStore
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 inStorables
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
andUser
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
andEvents
implementation generic - Deserialize other member events, add displayname
- Restructure event classes
- Implement
m.room.member
- Fix
events.state()
returningMessageEvent
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 inLocalUser
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
LocalUser
s - 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