sdn library
SDN SDK written in pure Dart.
Classes
- AlgorithmTypes
- ApperviceSignResponse
- ArchivedRoom
- AssertedIdentity
- MSC3086: Asserted identity on VoIP calls https://github.com/sdn-org/sdn-doc/pull/3086
- AuthenticationData
- AuthenticationFlow
- For each endpoint, a server offers one or more 'flows' that the client can use to authenticate itself. Each flow comprises a series of stages
- AuthenticationIdentifier
- AuthenticationIdentifierTypes
- AuthenticationPassword
- AuthenticationPhoneIdentifier
- AuthenticationRecaptcha
- AuthenticationThirdPartyIdentifier
- AuthenticationThreePidCreds
- For email based identity: https://sdn.org/docs/spec/client_server/r0.6.1#email-based-identity-node Or phone number based identity: https://sdn.org/docs/spec/client_server/r0.6.1#phone-number-msisdn-based-identity-node
- AuthenticationToken
- AuthenticationTypes
- AuthenticationUserIdentifier
- BasicEvent
- BasicEventWithSender
- BasicRoomEvent
- CachedPresence
- CallCapabilities
- https://github.com/sdn-org/sdn-doc/blob/dbkr/msc2747/proposals/2747-voip-call-transfer.md#capability-advertisment https://github.com/sdn-org/sdn-doc/blob/dbkr/msc2746/proposals/2746-reliable-voip.md#add-dtmf
- CallErrorCode
- CallOptions
- Initialization parameters of the call session.
- CallReplaces
- MSC2747: VoIP call transfers https://github.com/sdn-org/sdn-doc/pull/2747
- CallReplacesTarget
- CallSession
- A call session object
- Capabilities
- Categories
- ChangePasswordCapability
- ChildRoomsChunk
- CiphertextInfo
- ClaimKeysResponse
- Client
- Represents a SDN client to communicate with a SDN node and is the entry point for this SDK.
- ClientPublicKey
- CommandArgs
- ConnectionInfo
- ConnectionTester
- CrossSigningKey
- CuteEventContent
- DatabaseApi
- Device
- A client device
- DeviceInfo
- DeviceKeys
- DeviceKeysList
- DeviceListsUpdate
- DiscoveryInformation
- Used by clients to determine the node, identity server, and other optional components they should be interacting with.
- EncryptedFile
- EvaluatedPushRuleAction
- Event
- All data exchanged over SDN is expressed as an "event". Typically each client action (e.g. sending a message) correlates with exactly one event.
- EventContext
- The events and state surrounding the requested event.
- EventFilter
- EventTypes
- EventUpdate
- Represents a new event (e.g. a message in a room) or an update for an already known event.
- FamedlySdkHiveDatabase
-
This is a basic database for the SDN SDK using the hive store. You need
to make sure that you perform
Hive.init()
orHive.flutterInit()
before you use this. - FieldType
- Definition of valid values for a field.
- Filter
- FixedTimeoutHttpClient
- ForwardedRoomKeyContent
- GetEventByTimestampResponse
- GetEventsResponse
- GetKeysChangesResponse
- GetNotificationsResponse
- GetPresenceResponse
- GetPublicRoomsResponse
- A list of the rooms on the server.
- GetRelatingEventsResponse
- GetRelatingEventsWithRelTypeAndEventTypeResponse
- GetRelatingEventsWithRelTypeResponse
- GetRoomEventsResponse
- A list of messages with a new token to request more.
- GetRoomIdByAliasResponse
- GetRoomKeysVersionCurrentResponse
- GetRoomKeysVersionResponse
- GetSpaceHierarchyResponse
- GetThreadRootsResponse
- GetUrlPreviewResponse
- GetVersionsResponse
- Group
- Configuration for group.
- GroupCall
- GroupCallErrorCode
- GroupCallEvent
- GroupCallIntent
- TODO(@duan): Need to add voice activity detection mechanism const int SPEAKING_THRESHOLD = -60; // dB
- GroupCallState
- GroupCallTerminationReason
- GroupCallType
- Groupings
- GroupValue
- The results for a particular group value.
- HiveCollectionsDatabase
- This database does not support file caching!
- ICallHandlers
- IdentityServerInformation
- IGroupCallRoomMemberCallState
- IGroupCallRoomMemberDevice
- IGroupCallRoomMemberFeed
- IGroupCallRoomMemberState
- ImagePackContent
- ImagePackImageContent
- ImagePackPackContent
- IncludeEventContext
- Invite3pid
- InvitedRoomUpdate
- ISendEventResponse
- JoinedRoomUpdate
- KeyBackupData
- The key data
- LatestReceiptState
- LatestReceiptStateData
- LatestReceiptStateForTimeline
- LeftRoomUpdate
- Location
- LogEvent
- LoginFlow
- LoginResponse
- Logs
- MessageTypes
- MultiKey
- NativeImplementations
- provides native implementations for demanding arithmetic operations in order to prevent the UI from blocking
- NativeImplementationsDummy
- NativeImplementationsIsolate
-
a NativeImplementations based on Flutter's
compute
function - NativeImplementationsWebWorker
- NodeInformation
- NodeSummary
- Notification
- OlmPlaintextPayload
- OpenIdCredentials
- PassphraseInfo
- PeekEventsResponse
- Presence
- PresenceContent
- Profile
- ProfileInformation
- Protocol
- ProtocolInstance
- PublicRoomQueryFilter
- PublicRoomsChunk
- PushCondition
- Pusher
- PusherData
- PusherId
- PushNotification
- Push Notification object from https://spec.sdn.org/v1.2/push-gateway-api/
- PushNotificationCounts
- PushNotificationDevice
- PushRule
- PushRuleAction
- PushruleEvaluator
- PushRuleSet
- QueryKeysResponse
- QueryPublicRoomsResponse
- A list of the rooms on the server.
- Receipt
- Represents a receipt. This user has read an event at the given time.
- ReceiptData
- ReceiptEventContent
- RefreshResponse
- RegisterResponse
- RelationshipTypes
- RequestedKeyInfo
- RequestTokenResponse
- Result
- The result object.
- ResultCategories
- ResultRoomEvents
- Room
- Represents a SDN room.
- RoomCreationTypes
- RoomEncryptedContent
- RoomEncryptionContent
- RoomEventFilter
- RoomEventsCriteria
- RoomFilter
- RoomKeyBackup
- The backed up keys for a room.
- RoomKeyContent
- RoomKeyRequestContent
- RoomKeys
- RoomKeysUpdateResponse
- RoomMember
- RoomSummary
- RoomsUpdate
- RoomVersionsCapability
- SdkError
- SDNApi
- SDNAudioFile
- SDNCrossSigningKey
- SDNDefaultLocalizations
- SDNDeviceKeys
- SDNDIDListResponse
- SDNDIDLoginResponse
- SDNEvent
- SDNFile
- SDNIdentifierStringExtensionResults
- SDNImageFile
- SDNImageFileResizeArguments
- SDNImageFileResizedResponse
- SDNLocalizations
- SDNLoginResponse
- SDNRoomPermissionCheckResponse
- SDNSignableKey
- SDNVideoFile
- SDNWidget
- SDPStreamMetadata
- SDPStreamMetadataPurpose
- SDPStreamPurpose
- MSC3077: Support for multi-stream VoIP https://github.com/sdn-org/sdn-doc/pull/3077
- SearchFilter
- SearchResults
- SearchResultsEventContext
- SearchUserDirectoryResponse
- SecretStorageDefaultKeyContent
- SecretStorageKeyContent
- ServerConfig
- SessionInfo
- SignableKey
- SimpleSignableKey
- SpaceRoomsChunk
- StateEvent
- StateFilter
- StrippedStateEvent
- SyncRoomUpdate
- SyncStatusUpdate
- SyncUpdate
- Tag
- TagType
- ThirdPartyIdentifier
- ThirdPartySigned
-
A signature of an
m.third_party_invite
token to prove that this user owns a third party identity which has been invited to the room. - ThirdPartyUser
- ThreePidCredentials
- ThreepidCreds
- Timeline
-
Represents the timeline of a room. The callback onUpdate will be triggered
automatically. The initial
event list will be retreived when created by the
room.getTimeline()
method. - TimelineUpdate
- TimeoutHttpClient
- Http Client that enforces a timeout on requests. Timeout calculation is done in a subclass.
- Timeouts
- ToDeviceEvent
- ToDeviceEventDecryptionError
- TokenOwnerInfo
- TombstoneContent
- TryGet
- TupleKey
- TurnServerCredentials
- Tweaks
-
UiaRequest<
T> - Wrapper to handle User interactive authentication requests
- UnreadNotificationCounts
- User
- Represents a SDN User which may be a participant in a SDN Room.
- UserProfile
- VoIP
- WebRTCDelegate
- Delegate WebRTC basic functionality.
- WhoIsInfo
- WrappedMediaStream
- Wrapped MediaStream, used to adapt Widget to display
Enums
- AccountKind
- BackupAlgorithm
- CallDirection
- CallEvent
- CallParty
- CallState
- CallType
- CreateRoomPreset
- Direction
- EncryptionHealthState
- EventFormat
- EventStatus
- Defines event status:
- EventUpdateType
- FileSendingStatus
- GroupKey
- GuestAccess
- HistoryVisibility
- IdServerUnbindResult
- ImagePackUsage
- Include
- JoinRules
- KeyKind
- Level
- LoginState
- LoginType
- Membership
- Method
- PresenceType
- PushRuleKind
- PushRuleState
- ReceiptType
- RequestType
- RoomVersionAvailable
- The stability of the room version.
- SDNError
- SearchOrder
- SyncStatus
- ThirdPartyIdentifierMedium
- ThumbnailMethod
- UiaRequestState
- UserVerifiedStatus
- Visibility
Extensions
- AccountKindEnhancedEnum on AccountKind
-
AccountKindFromStringExtension
on Iterable<
AccountKind> - BackupAlgorithmEnhancedEnum on BackupAlgorithm
-
BackupAlgorithmFromStringExtension
on Iterable<
BackupAlgorithm> - CommandsClientExtension on Client
- CreateRoomPresetEnhancedEnum on CreateRoomPreset
-
CreateRoomPresetFromStringExtension
on Iterable<
CreateRoomPreset> - DehydratedDeviceHandler on Client
- DirectionEnhancedEnum on Direction
-
DirectionFromStringExtension
on Iterable<
Direction> - EventFormatEnhancedEnum on EventFormat
-
EventFormatFromStringExtension
on Iterable<
EventFormat> - EventStatusExtension on EventStatus
-
FilterMap
on Map<
K, V> - ForwardedRoomKeyContentBasicEventExtension on BasicEvent
- FromHiveKeyExtension on String
- GroupCallUtils on Room
- GroupKeyEnhancedEnum on GroupKey
-
GroupKeyFromStringExtension
on Iterable<
GroupKey> - GuestAccessDisplayString on GuestAccess
- HistoryVisibilityDisplayString on HistoryVisibility
- HiveKeyExtension on String
- IdServerUnbindResultEnhancedEnum on IdServerUnbindResult
-
IdServerUnbindResultFromStringExtension
on Iterable<
IdServerUnbindResult> - ImagePackContentBasicEventExtension on BasicEvent
- ImagePackRoomExtension on Room
- IncludeEnhancedEnum on Include
-
IncludeFromStringExtension
on Iterable<
Include> - JoinRulesDisplayString on JoinRules
- KeyKindEnhancedEnum on KeyKind
-
KeyKindFromStringExtension
on Iterable<
KeyKind> - LoginTypeEnhancedEnum on LoginType
-
LoginTypeFromStringExtension
on Iterable<
LoginType> -
MapCopyExtension
on Map<
String, Object?> - MembershipEnhancedEnum on Membership
-
MembershipFromStringExtension
on Iterable<
Membership> - MethodEnhancedEnum on Method
-
MethodFromStringExtension
on Iterable<
Method> - MxcUriExtension on Uri
- PresenceTypeEnhancedEnum on PresenceType
-
PresenceTypeFromStringExtension
on Iterable<
PresenceType> - PushRuleKindEnhancedEnum on PushRuleKind
-
PushRuleKindFromStringExtension
on Iterable<
PushRuleKind> - ReceiptTypeEnhancedEnum on ReceiptType
-
ReceiptTypeFromStringExtension
on Iterable<
ReceiptType> - RecentEmojiExtension on Client
- Syncs recent emojis in account data
- RoomEncryptedContentBasicEventExtension on BasicEvent
- RoomEncryptionContentBasicEventExtension on BasicEvent
- RoomKeyContentBasicEventExtension on BasicEvent
- RoomKeyRequestContentBasicEventExtension on BasicEvent
- RoomVersionAvailableEnhancedEnum on RoomVersionAvailable
-
RoomVersionAvailableFromStringExtension
on Iterable<
RoomVersionAvailable> - RTCIceCandidateExt on RTCIceCandidate
- SDNIdExtension on String
- SDNWidgets on Room
- SearchOrderEnhancedEnum on SearchOrder
-
SearchOrderFromStringExtension
on Iterable<
SearchOrder> - SecretStorageDefaultKeyContentBasicEventExtension on BasicEvent
- SecretStorageKeyContentBasicEventExtension on BasicEvent
- SyncUpdateFilters on SyncUpdate
-
This extension adds easy-to-use filters for the sync update, meant to be used on the
client.onSync
stream, e.g.client.onSync.stream.where((s) => s.hasRoomUpdate)
. Multiple filters can easily be combind with boolean logic:client.onSync.stream.where((s) => s.hasRoomUpdate || s.hasPresenceUpdate)
- ThirdPartyIdentifierMediumEnhancedEnum on ThirdPartyIdentifierMedium
-
ThirdPartyIdentifierMediumFromStringExtension
on Iterable<
ThirdPartyIdentifierMedium> - TombstoneContentBasicEventExtension on BasicEvent
- ToSDNFile on EncryptedFile
- TrailingSlash on Uri
-
TryGetMapExtension
on Map<
String, Object?> - UiaLogin on Client
- VisibilityEnhancedEnum on Visibility
-
VisibilityFromStringExtension
on Iterable<
Visibility>
Constants
- emptyRoomName → const String
- fileSendingStatusKey → const String
- maxLength → const int
- messageSendingStatusKey → const String
- sdpStreamMetadataKey → const String
-
validSigils
→ const Set<
String> - voipProtoVersion → const String
- https://github.com/sdn-org/sdn-doc/pull/2746 version 1
Functions
-
convertToJson(
Map map) → Map< String, dynamic> -
Hive always gives back an
_InternalLinkedHasMap<dynamic, dynamic>
. This creates a deep copy of the json and makes sure that the format is alwaysMap<String, dynamic>
. -
copyMap(
Map map) → Map< String, dynamic> -
The store always gives back an
_InternalLinkedHasMap<dynamic, dynamic>
. This creates a deep copy of the json and makes sure that the format is alwaysMap<String, dynamic>
. -
decryptFileImplementation(
EncryptedFile input) → Future< Uint8List?> - you would likely want to use NativeImplementations and Client.nativeImplementations instead
-
encryptFile(
Uint8List input) → Future< EncryptedFile> -
eventStatusFromInt(
int intValue) → EventStatus -
Returns
EventStatusEnum
value fromintValue
. -
genCallID(
) → String -
hasAudioDevice(
) → Future< bool> -
hasVideoDevice(
) → Future< bool> -
imagePackUsageFromJson(
List< String> ? json) → List<ImagePackUsage> ? -
imagePackUsageToJson(
List< ImagePackUsage> ? usage, List<String> ? prevUsage) → List<String> -
latestEventStatus(
EventStatus status1, EventStatus status2) → EventStatus - Takes two EventStatus values and returns the one with higher (better in terms of message sending) status.
-
replaceStream(
StreamedResponse base, Stream< List< stream) → StreamedResponseint> > -
roomAliasFromRoomName(
String roomName) → String -
setTracksEnabled(
List< MediaStreamTrack> tracks, bool enabled) → void -
startWebWorker(
) → Future< void> - CAUTION: THIS FILE NEEDS TO BE MANUALLY COMPILED
-
stopMediaStream(
MediaStream? stream) → Future< void>
Typedefs
- RoomSorter = int Function(Room a, Room b)
-
WebWorkerStackTraceCallback
= FutureOr<
StackTrace> Function(String obfuscatedStackTrace) - converts a stringifyed, obfuscated StackTrace into a StackTrace
Exceptions / Errors
- BadServerLoginTypesException
- BadServerVersionsException
- CallError
- FileTooBigSDNException
- GroupCallError
- SDNConnectionException
- SDNException
- Represents a special response from the Node for errors.
- WebWorkerError