Skip to content

Commit

Permalink
refactor: edit the event handler code
Browse files Browse the repository at this point in the history
  • Loading branch information
chopper985 committed Jan 7, 2025
1 parent fd5eab4 commit d1637ba
Show file tree
Hide file tree
Showing 6 changed files with 66 additions and 21 deletions.
12 changes: 6 additions & 6 deletions lib/core/websocket/socket_handler.dart
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ class SocketHandlerImpl extends SocketHandler {
final participantId = data['participantId'];
final content = data['transcription'];

WaterbusSdk.onSubtitle?.call(
WaterbusSdk.listener.onSubtitle?.call(
Subtitle(participant: participantId, content: content),
);
});
Expand Down Expand Up @@ -314,7 +314,7 @@ class SocketHandlerImpl extends SocketHandler {
final String dataDecrypted =
await EncryptAES().decryptAES256(cipherText: message.data);

WaterbusSdk.onMesssageChanged?.call(
WaterbusSdk.listener.onMesssageChanged?.call(
MessageSocketEvent(
event: MessageEventEnum.create,
message: message.copyWith(data: dataDecrypted),
Expand All @@ -330,7 +330,7 @@ class SocketHandlerImpl extends SocketHandler {
final String dataDecrypted =
await EncryptAES().decryptAES256(cipherText: message.data);

WaterbusSdk.onMesssageChanged?.call(
WaterbusSdk.listener.onMesssageChanged?.call(
MessageSocketEvent(
event: MessageEventEnum.update,
message: message.copyWith(data: dataDecrypted),
Expand All @@ -343,7 +343,7 @@ class SocketHandlerImpl extends SocketHandler {

final MessageModel message = MessageModel.fromMapSocket(data);

WaterbusSdk.onMesssageChanged?.call(
WaterbusSdk.listener.onMesssageChanged?.call(
MessageSocketEvent(event: MessageEventEnum.delete, message: message),
);
});
Expand All @@ -352,7 +352,7 @@ class SocketHandlerImpl extends SocketHandler {
if (data == null) return;
final Meeting meeting = Meeting.fromMapSocket(data['meeting']);

WaterbusSdk.onConversationChanged?.call(
WaterbusSdk.listener.onConversationChanged?.call(
ConversationSocketEvent(
event: ConversationEventEnum.newInvitaion,
conversation: meeting,
Expand All @@ -364,7 +364,7 @@ class SocketHandlerImpl extends SocketHandler {
if (data == null) return;
final Member member = Member.fromMapSocket(data);

WaterbusSdk.onConversationChanged?.call(
WaterbusSdk.listener.onConversationChanged?.call(
ConversationSocketEvent(
event: ConversationEventEnum.newMemberJoined,
member: member,
Expand Down
2 changes: 1 addition & 1 deletion lib/core/whiteboard/white_board.dart
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,6 @@ class WhiteBoardManagerIpml extends WhiteBoardManager {
Future<void> _emitWhiteBoard() async {
final props = [..._localPaints, ..._remotePaints];
props.sort((a, b) => a.createdAt.compareTo(b.createdAt));
WaterbusSdk.onDrawChanged?.call(props);
WaterbusSdk.listener.onDrawChanged?.call(props);
}
}
26 changes: 14 additions & 12 deletions lib/flutter_waterbus_sdk.dart
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import 'package:waterbus_sdk/types/models/draw_model.dart';
import 'package:waterbus_sdk/types/models/record_model.dart';
import 'package:waterbus_sdk/types/result.dart';
import 'package:waterbus_sdk/utils/callkit/callkit_listener.dart';
import 'package:waterbus_sdk/waterbus_event_listener.dart';
import 'package:waterbus_sdk/waterbus_sdk_interface.dart';

export 'types/index.dart';
Expand All @@ -25,37 +26,38 @@ class WaterbusSdk {
static String wsUrl = '';
static String apiKey = '';
static String privateMessageKey = '';
static Function(CallbackPayload)? onEventChanged;
static Function(VideoSenderStats)? onStatsChanged;
static Function(Subtitle)? onSubtitle;
static Function(MessageSocketEvent)? onMesssageChanged;
static Function(ConversationSocketEvent)? onConversationChanged;
static Function(List<DrawModel> drawList)? onDrawChanged;
static WaterBusEventListener listener = WaterBusEventListener();

set onMessageSocketChanged(Function(MessageSocketEvent) onMesssageChanged) {
WaterbusSdk.onMesssageChanged = onMesssageChanged;
WaterbusSdk.listener =
WaterbusSdk.listener.copyWith(onMesssageChanged: onMesssageChanged);
}

set onConversationSocketChanged(
Function(ConversationSocketEvent) onConversationChanged,
) {
WaterbusSdk.onConversationChanged = onConversationChanged;
WaterbusSdk.listener = WaterbusSdk.listener
.copyWith(onConversationChanged: onConversationChanged);
}

set onEventChangedRegister(Function(CallbackPayload) onEventChanged) {
WaterbusSdk.onEventChanged = onEventChanged;
WaterbusSdk.listener =
WaterbusSdk.listener.copyWith(onEventChanged: onEventChanged);
}

set setStatsChanged(Function(VideoSenderStats)? onStatsChanged) {
WaterbusSdk.onStatsChanged = onStatsChanged;
WaterbusSdk.listener =
WaterbusSdk.listener.copyWith(onStatsChanged: onStatsChanged);
}

set setOnSubtitle(Function(Subtitle)? onSubtitle) {
WaterbusSdk.onSubtitle = onSubtitle;
WaterbusSdk.listener =
WaterbusSdk.listener.copyWith(onSubtitle: onSubtitle);
}

set setOnDrawChanged(Function(List<DrawModel> drawList)? onDrawChanged) {
WaterbusSdk.onDrawChanged = onDrawChanged;
WaterbusSdk.listener =
WaterbusSdk.listener.copyWith(onDrawChanged: onDrawChanged);
}

Future<void> initializeApp({
Expand Down
2 changes: 1 addition & 1 deletion lib/stats/webrtc_video_stats.dart
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ class WebRTCVideoStats {
// Monitor latency & jitter
WaterbusLogger().log(vs.toString());

WaterbusSdk.onStatsChanged?.call(vs);
WaterbusSdk.listener.onStatsChanged?.call(vs);
}
final c = stats.firstWhereOrNull((element) => element.type == 'codec');
if (c != null) {
Expand Down
43 changes: 43 additions & 0 deletions lib/waterbus_event_listener.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import 'package:waterbus_sdk/types/models/callback_payload.dart';
import 'package:waterbus_sdk/types/models/conversation_socket_event.dart';
import 'package:waterbus_sdk/types/models/draw_model.dart';
import 'package:waterbus_sdk/types/models/message_socket_event.dart';
import 'package:waterbus_sdk/types/models/stats.dart';
import 'package:waterbus_sdk/types/models/subtitle.dart';

class WaterBusEventListener {
final Function(CallbackPayload)? onEventChanged;
final Function(VideoSenderStats)? onStatsChanged;
final Function(Subtitle)? onSubtitle;
final Function(MessageSocketEvent)? onMesssageChanged;
final Function(ConversationSocketEvent)? onConversationChanged;
final Function(List<DrawModel> drawList)? onDrawChanged;

WaterBusEventListener({
this.onEventChanged,
this.onStatsChanged,
this.onSubtitle,
this.onMesssageChanged,
this.onConversationChanged,
this.onDrawChanged,
});

WaterBusEventListener copyWith({
Function(CallbackPayload)? onEventChanged,
Function(VideoSenderStats)? onStatsChanged,
Function(Subtitle)? onSubtitle,
Function(MessageSocketEvent)? onMesssageChanged,
Function(ConversationSocketEvent)? onConversationChanged,
Function(List<DrawModel> drawList)? onDrawChanged,
}) {
return WaterBusEventListener(
onEventChanged: onEventChanged ?? this.onEventChanged,
onStatsChanged: onStatsChanged ?? this.onStatsChanged,
onSubtitle: onSubtitle ?? this.onSubtitle,
onMesssageChanged: onMesssageChanged ?? this.onMesssageChanged,
onConversationChanged:
onConversationChanged ?? this.onConversationChanged,
onDrawChanged: onDrawChanged ?? this.onDrawChanged,
);
}
}
2 changes: 1 addition & 1 deletion lib/waterbus_sdk_impl.dart
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ class SdkCore extends WaterbusSdkInterface {
_webSocket.establishConnection(forceConnection: true);

_rtcManager.notifyChanged.listen((event) {
WaterbusSdk.onEventChanged?.call(event);
WaterbusSdk.listener.onEventChanged?.call(event);
});
}

Expand Down

0 comments on commit d1637ba

Please sign in to comment.