Skip to content

Commit 8910e58

Browse files
committed
Merge branch 'master' into prod
2 parents 3a8e8cc + 7b12d22 commit 8910e58

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+1387
-1173
lines changed

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,14 @@
1+
## 0.0.3
2+
3+
* BREAKING CHANGE: Update Callkit Models & Enums with `CK` prefix
4+
* Fix: notifications not always showing [js_notifications #6af62f](https://github.com/cybex-dev/js_notifications/commit/6af62f54b8924bc9d41c88d714efb43b9dd86138)
5+
* Update: call state disconnect reponses
6+
* Fix: calls remaining in `CallManager` after call ends
7+
* Fix: duplicate plugin instances
8+
* Refactor & rework managers & plugin
9+
* Add notification icon support
10+
* Update docs
11+
112
## 0.0.2+1
213

314
* Add browser permission check

TODO.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,10 @@
1111
* Incoming
1212
* Ringing
1313
* Disconnecting
14-
* AudioManager
14+
* AudioManager
15+
* Notifications
16+
* Mobile
17+
* Enable mobile mode preventing constant notification updates
18+
* Desktop
19+
* Vibration
20+
* Customize vibration setting for notifications (including mobile mode)

example/lib/main.dart

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,24 @@ class _MyAppState extends State<MyApp> {
2626
// ignore: avoid_print
2727
print("onCallActionHandler: $uuid, $action, $source");
2828
if (action == CKCallAction.answer) {
29-
webCallkitPlugin.updateCallStatus(uuid, callStatus: CallState.active);
29+
webCallkitPlugin.updateCallStatus(uuid, callStatus: CKCallState.active);
3030
} else if (action == CKCallAction.decline) {
31-
webCallkitPlugin.reportCallDisconnected(uuid,
32-
response: DisconnectResponse.declined);
31+
webCallkitPlugin.reportCallDisconnected(uuid, response: CKDisconnectResponse.declined);
32+
} else if (action == CKCallAction.hangUp) {
33+
final call = webCallkitPlugin.getCall(uuid);
34+
if (call != null) {
35+
switch (call.state) {
36+
case CKCallState.ringing:
37+
webCallkitPlugin.reportCallDisconnected(uuid, response: CKDisconnectResponse.declined);
38+
break;
39+
case CKCallState.dialing:
40+
webCallkitPlugin.reportCallDisconnected(uuid, response: CKDisconnectResponse.canceled);
41+
break;
42+
default:
43+
webCallkitPlugin.reportCallDisconnected(uuid, response: CKDisconnectResponse.local);
44+
break;
45+
}
46+
}
3347
}
3448
});
3549
webCallkitPlugin.setOnCallEventListener((event, source) {
@@ -42,8 +56,9 @@ class _MyAppState extends State<MyApp> {
4256
});
4357
webCallkitPlugin.setOnDisconnectListener((uuid, response, source) {
4458
// ignore: avoid_print
45-
webCallkitPlugin.reportCallDisconnected(uuid, response: response);
46-
// webCallkitPlugin.updateCallStatus(uuid, callStatus: CallState.disconnected);
59+
print("onDisconnectListener: $uuid, $response, $source");
60+
// webCallkitPlugin.reportCallDisconnected(uuid, response: response);
61+
// webCallkitPlugin.updateCallStatus(uuid, callStatus: CKCallState.disconnected);
4762
});
4863
webCallkitPlugin.setOnDismissedListener((uuid, source) {
4964
final call = webCallkitPlugin.getCall(uuid);
@@ -53,7 +68,7 @@ class _MyAppState extends State<MyApp> {
5368
});
5469
// webCallkitPlugin.setOnActionAnswered((uuid, call, source) {
5570
// printDebug("onActionAnswered: $uuid, $call, $source");
56-
// webCallkitPlugin.updateCallStatus(uuid, callStatus: CallState.active);
71+
// webCallkitPlugin.updateCallStatus(uuid, callStatus: CKCallState.active);
5772
// });
5873
// webCallkitPlugin.setOnActionHangup((uuid, call, source, response) {
5974
// printDebug("onActionHangup: $uuid, $call, $source, $response");

example/lib/screens/advanced/advanced_screen.dart

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ class _ContentState extends State<_Content> {
6565

6666
@override
6767
Widget build(BuildContext context) {
68-
final capabilities = CallKitCapability.values.map((e) {
68+
final capabilities = CKCapability.values.map((e) {
6969
return Padding(
7070
padding: const EdgeInsets.all(4.0),
7171
child: ElevatedButton(
@@ -92,7 +92,7 @@ class _ContentState extends State<_Content> {
9292
),
9393
);
9494
});
95-
final callTypes = CallType.values.map((e) {
95+
final callTypes = CKCallType.values.map((e) {
9696
return Padding(
9797
padding: const EdgeInsets.all(4.0),
9898
child: ElevatedButton(
@@ -108,7 +108,7 @@ class _ContentState extends State<_Content> {
108108
),
109109
);
110110
});
111-
final callStates = CallState.values.map((e) {
111+
final callStates = CKCallState.values.map((e) {
112112
return Padding(
113113
padding: const EdgeInsets.all(4.0),
114114
child: ElevatedButton(
@@ -143,7 +143,7 @@ class _ContentState extends State<_Content> {
143143
uuid: callId,
144144
handle: name,
145145
capabilities: {
146-
CallKitCapability.hold,
146+
CKCapability.hold,
147147
},
148148
);
149149
},
@@ -172,7 +172,7 @@ class _ContentState extends State<_Content> {
172172
uuid: callId,
173173
handle: name,
174174
capabilities: {
175-
CallKitCapability.supportHold,
175+
CKCapability.supportHold,
176176
},
177177
);
178178
},
@@ -186,7 +186,7 @@ class _ContentState extends State<_Content> {
186186
onPressed: _hasCall
187187
? () async {
188188
await webCallkitPlugin.reportCallDisconnected(callId,
189-
response: DisconnectResponse.local);
189+
response: CKDisconnectResponse.local);
190190
}
191191
: null,
192192
label: const Text('Report Call Disconnected'),
@@ -213,7 +213,7 @@ class _ContentState extends State<_Content> {
213213
return;
214214
}
215215
final attr =
216-
call.attributes.addWith(CallAttributes.hold);
216+
call.attributes.addWith(CKCallAttributes.hold);
217217
await webCallkitPlugin.updateCallAttributes(callId,
218218
attributes: attr);
219219
}
@@ -235,7 +235,7 @@ class _ContentState extends State<_Content> {
235235
return;
236236
}
237237
final attr =
238-
call.attributes.removeWith(CallAttributes.hold);
238+
call.attributes.removeWith(CKCallAttributes.hold);
239239
await webCallkitPlugin.updateCallAttributes(callId,
240240
attributes: attr);
241241
}
@@ -263,7 +263,7 @@ class _ContentState extends State<_Content> {
263263
return;
264264
}
265265
final attr =
266-
call.attributes.addWith(CallAttributes.mute);
266+
call.attributes.addWith(CKCallAttributes.mute);
267267
await webCallkitPlugin.updateCallAttributes(callId,
268268
attributes: attr);
269269
}
@@ -283,7 +283,7 @@ class _ContentState extends State<_Content> {
283283
return;
284284
}
285285
final attr =
286-
call.attributes.removeWith(CallAttributes.mute);
286+
call.attributes.removeWith(CKCallAttributes.mute);
287287
await webCallkitPlugin.updateCallAttributes(callId,
288288
attributes: attr);
289289
}

example/lib/screens/custom/custom_screen.dart

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ class _CustomCallCardState extends State<_CustomCallCard> {
101101
const Divider(height: 24,),
102102

103103
// Hold/resume call
104-
_DisconnectResponses(callId: callId),
104+
_CKDisconnectResponses(callId: callId),
105105
const SizedBox(height: 16),
106106

107107
// Hold/resume call
@@ -113,7 +113,7 @@ class _CustomCallCardState extends State<_CustomCallCard> {
113113
const SizedBox(height: 16),
114114

115115
// Set specific state of call
116-
_CallStateSelector(callId: callId),
116+
_CKCallStateSelector(callId: callId),
117117
const SizedBox(height: 16),
118118

119119
// Set specific type of call
@@ -177,7 +177,7 @@ class _CallCapabilities extends StatelessWidget {
177177
const SizedBox(height: 8),
178178
Row(
179179
mainAxisAlignment: MainAxisAlignment.center,
180-
children: CallKitCapability.values.map((e) {
180+
children: CKCapability.values.map((e) {
181181
final enabled = call?.capabilities.contains(e) ?? false;
182182
return Padding(
183183
padding: const EdgeInsets.all(4.0),
@@ -219,7 +219,7 @@ class _CallTypeSelector extends StatelessWidget {
219219
const SizedBox(height: 8),
220220
Row(
221221
mainAxisAlignment: MainAxisAlignment.center,
222-
children: CallType.values.map((e) {
222+
children: CKCallType.values.map((e) {
223223
return Padding(
224224
padding: const EdgeInsets.all(4.0),
225225
child: ElevatedButton(
@@ -237,11 +237,11 @@ class _CallTypeSelector extends StatelessWidget {
237237
}
238238
}
239239

240-
class _CallStateSelector extends StatelessWidget {
240+
class _CKCallStateSelector extends StatelessWidget {
241241
final String callId;
242242

243243
// ignore: unused_element
244-
const _CallStateSelector({super.key, required this.callId});
244+
const _CKCallStateSelector({super.key, required this.callId});
245245

246246
@override
247247
Widget build(BuildContext context) {
@@ -252,7 +252,7 @@ class _CallStateSelector extends StatelessWidget {
252252
const SizedBox(height: 8),
253253
Row(
254254
mainAxisAlignment: MainAxisAlignment.center,
255-
children: CallState.values.map((e) {
255+
children: CKCallState.values.map((e) {
256256
return Padding(
257257
padding: const EdgeInsets.all(4.0),
258258
child: ElevatedButton(
@@ -293,7 +293,7 @@ class _CallMuteSelector extends StatelessWidget {
293293
if (call == null) {
294294
return;
295295
}
296-
final attr = call.attributes.addWith(CallAttributes.mute);
296+
final attr = call.attributes.addWith(CKCallAttributes.mute);
297297
await webCallkitPlugin.updateCallAttributes(callId, attributes: attr);
298298
},
299299
child: const Text("Mute"),
@@ -306,7 +306,7 @@ class _CallMuteSelector extends StatelessWidget {
306306
if (call == null) {
307307
return;
308308
}
309-
final attr = call.attributes.removeWith(CallAttributes.mute);
309+
final attr = call.attributes.removeWith(CKCallAttributes.mute);
310310
await webCallkitPlugin.updateCallAttributes(callId, attributes: attr);
311311
},
312312
child: const Text("Unmute"),
@@ -341,7 +341,7 @@ class _CallHoldSelector extends StatelessWidget {
341341
if (call == null) {
342342
return;
343343
}
344-
final attr = call.attributes.addWith(CallAttributes.hold);
344+
final attr = call.attributes.addWith(CKCallAttributes.hold);
345345
webCallkitPlugin.updateCallAttributes(callId, attributes: attr);
346346
},
347347
child: const Text("Hold"),
@@ -354,7 +354,7 @@ class _CallHoldSelector extends StatelessWidget {
354354
if (call == null) {
355355
return;
356356
}
357-
final attr = call.attributes.removeWith(CallAttributes.hold);
357+
final attr = call.attributes.removeWith(CKCallAttributes.hold);
358358
webCallkitPlugin.updateCallAttributes(callId, attributes: attr);
359359
},
360360
child: const Text("Resume"),
@@ -420,11 +420,11 @@ class _CallActionButtons extends StatelessWidget {
420420
}
421421
}
422422

423-
class _DisconnectResponses extends StatelessWidget {
423+
class _CKDisconnectResponses extends StatelessWidget {
424424
final String callId;
425425

426426
// ignore: unused_element
427-
const _DisconnectResponses({super.key, required this.callId});
427+
const _CKDisconnectResponses({super.key, required this.callId});
428428

429429
@override
430430
Widget build(BuildContext context) {
@@ -435,7 +435,7 @@ class _DisconnectResponses extends StatelessWidget {
435435
const SizedBox(height: 8),
436436
Row(
437437
mainAxisAlignment: MainAxisAlignment.center,
438-
children: DisconnectResponse.values.map((e) {
438+
children: CKDisconnectResponse.values.map((e) {
439439
return Padding(
440440
padding: const EdgeInsets.symmetric(horizontal: 4.0),
441441
child: ElevatedButton(

example/lib/screens/simple/simple_screen.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ class _ContentState extends State<_Content> {
6767
await webCallkitPlugin.reportIncomingCall(
6868
uuid: callId,
6969
handle: name,
70-
stateOverride: CallState.ringing,
70+
stateOverride: CKCallState.ringing,
7171
);
7272

7373
if (_cancelAfter) {
@@ -76,7 +76,7 @@ class _ContentState extends State<_Content> {
7676
Duration(seconds: seconds),
7777
() {
7878
webCallkitPlugin.reportCallDisconnected(callId,
79-
response: DisconnectResponse.local);
79+
response: CKDisconnectResponse.local);
8080
},
8181
);
8282
}
@@ -87,7 +87,7 @@ class _ContentState extends State<_Content> {
8787
ElevatedButton(
8888
onPressed: () async {
8989
await webCallkitPlugin.reportCallDisconnected(callId,
90-
response: DisconnectResponse.local);
90+
response: CKDisconnectResponse.local);
9191
},
9292
child: const Text('Report Call Disconnected'),
9393
),

example/lib/widgets/call_hold_action.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ class CallHoldAction extends StatelessWidget {
1818
label: Text(text),
1919
onPressed: () {
2020
final attr = call.isHolding
21-
? call.attributes.removeWith(CallAttributes.hold)
22-
: call.attributes.addWith(CallAttributes.hold);
21+
? call.attributes.removeWith(CKCallAttributes.hold)
22+
: call.attributes.addWith(CKCallAttributes.hold);
2323
final webCallkitPlugin = WebCallkit.instance;
2424
webCallkitPlugin.updateCallAttributes(call.uuid, attributes: attr);
2525
},

example/lib/widgets/call_state_action.dart

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,32 @@
11
import 'package:flutter/material.dart';
22
import 'package:web_callkit/web_callkit.dart';
33

4-
class CallStateAction extends StatelessWidget {
4+
class CKCallStateAction extends StatelessWidget {
55
final String uuid;
6-
final CallState state;
6+
final CKCallState state;
77

8-
const CallStateAction({super.key, required this.uuid, required this.state});
8+
const CKCallStateAction({super.key, required this.uuid, required this.state});
99

10-
factory CallStateAction.init(String uuid) =>
11-
CallStateAction(uuid: uuid, state: CallState.initiated);
10+
factory CKCallStateAction.init(String uuid) =>
11+
CKCallStateAction(uuid: uuid, state: CKCallState.initiated);
1212

13-
factory CallStateAction.ringing(String uuid) =>
14-
CallStateAction(uuid: uuid, state: CallState.ringing);
13+
factory CKCallStateAction.ringing(String uuid) =>
14+
CKCallStateAction(uuid: uuid, state: CKCallState.ringing);
1515

16-
factory CallStateAction.dialing(String uuid) =>
17-
CallStateAction(uuid: uuid, state: CallState.dialing);
16+
factory CKCallStateAction.dialing(String uuid) =>
17+
CKCallStateAction(uuid: uuid, state: CKCallState.dialing);
1818

19-
factory CallStateAction.active(String uuid) =>
20-
CallStateAction(uuid: uuid, state: CallState.active);
19+
factory CKCallStateAction.active(String uuid) =>
20+
CKCallStateAction(uuid: uuid, state: CKCallState.active);
2121

22-
factory CallStateAction.reconnecting(String uuid) =>
23-
CallStateAction(uuid: uuid, state: CallState.reconnecting);
22+
factory CKCallStateAction.reconnecting(String uuid) =>
23+
CKCallStateAction(uuid: uuid, state: CKCallState.reconnecting);
2424

25-
factory CallStateAction.disconnecting(String uuid) =>
26-
CallStateAction(uuid: uuid, state: CallState.disconnecting);
25+
factory CKCallStateAction.disconnecting(String uuid) =>
26+
CKCallStateAction(uuid: uuid, state: CKCallState.disconnecting);
2727

28-
factory CallStateAction.disconnected(String uuid) =>
29-
CallStateAction(uuid: uuid, state: CallState.disconnected);
28+
factory CKCallStateAction.disconnected(String uuid) =>
29+
CKCallStateAction(uuid: uuid, state: CKCallState.disconnected);
3030

3131
@override
3232
Widget build(BuildContext context) {

example/lib/widgets/call_type_selector.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ class CallTypeSelector extends StatelessWidget {
99
@override
1010
Widget build(BuildContext context) {
1111
final isAudio = call.isAudioOnly;
12-
final newType = isAudio ? CallType.video : CallType.audio;
12+
final newType = isAudio ? CKCallType.video : CKCallType.audio;
1313
final icon = switch (newType) {
14-
CallType.audio => const Icon(Icons.mic),
15-
CallType.video => const Icon(Icons.videocam),
16-
CallType.screenShare => const Icon(Icons.screen_share),
14+
CKCallType.audio => const Icon(Icons.mic),
15+
CKCallType.video => const Icon(Icons.videocam),
16+
CKCallType.screenShare => const Icon(Icons.screen_share),
1717
};
1818
return TextButton.icon(
1919
style: ButtonStyle(

0 commit comments

Comments
 (0)