Skip to content

Commit 6b6de2e

Browse files
committed
chore: minor improvements
1 parent f75bd86 commit 6b6de2e

File tree

2 files changed

+71
-85
lines changed

2 files changed

+71
-85
lines changed

packages/stream_chat_flutter/lib/src/message_input/audio_recorder/audio_recorder_feedback.dart

Lines changed: 49 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -189,37 +189,72 @@ class AudioRecorderFeedbackWrapper extends AudioRecorderFeedback {
189189
final _FeedbackCallback? _onStop;
190190

191191
@override
192-
Future<void> onRecordStart(BuildContext context) {
193-
return _onStart?.call(context) ?? super.onRecordStart(context);
192+
Future<void> onRecordStart(BuildContext context) async {
193+
if (_onStart case final callback?) {
194+
if (!enableFeedback) return;
195+
return callback.call(context);
196+
}
197+
198+
return super.onRecordStart(context);
194199
}
195200

196201
@override
197-
Future<void> onRecordPause(BuildContext context) {
198-
return _onPause?.call(context) ?? super.onRecordPause(context);
202+
Future<void> onRecordPause(BuildContext context) async {
203+
if (_onPause case final callback?) {
204+
if (!enableFeedback) return;
205+
return callback.call(context);
206+
}
207+
208+
return super.onRecordPause(context);
199209
}
200210

201211
@override
202-
Future<void> onRecordFinish(BuildContext context) {
203-
return _onFinish?.call(context) ?? super.onRecordFinish(context);
212+
Future<void> onRecordFinish(BuildContext context) async {
213+
if (_onFinish case final callback?) {
214+
if (!enableFeedback) return;
215+
return callback.call(context);
216+
}
217+
218+
return super.onRecordFinish(context);
204219
}
205220

206221
@override
207-
Future<void> onRecordLock(BuildContext context) {
208-
return _onLock?.call(context) ?? super.onRecordLock(context);
222+
Future<void> onRecordLock(BuildContext context) async {
223+
if (_onLock case final callback?) {
224+
if (!enableFeedback) return;
225+
return callback.call(context);
226+
}
227+
228+
return super.onRecordLock(context);
209229
}
210230

211231
@override
212-
Future<void> onRecordCancel(BuildContext context) {
213-
return _onCancel?.call(context) ?? super.onRecordCancel(context);
232+
Future<void> onRecordCancel(BuildContext context) async {
233+
if (_onCancel case final callback?) {
234+
if (!enableFeedback) return;
235+
return callback.call(context);
236+
}
237+
238+
return super.onRecordCancel(context);
214239
}
215240

216241
@override
217-
Future<void> onRecordStartCancel(BuildContext context) {
218-
return _onStartCancel?.call(context) ?? super.onRecordStartCancel(context);
242+
Future<void> onRecordStartCancel(BuildContext context) async {
243+
if (_onStartCancel case final callback?) {
244+
if (!enableFeedback) return;
245+
return callback.call(context);
246+
}
247+
248+
return super.onRecordStartCancel(context);
219249
}
220250

221251
@override
222-
Future<void> onRecordStop(BuildContext context) {
223-
return _onStop?.call(context) ?? super.onRecordStop(context);
252+
Future<void> onRecordStop(BuildContext context) async {
253+
if (_onStop case final callback?) {
254+
if (!enableFeedback) return;
255+
return callback.call(context);
256+
}
257+
258+
return super.onRecordStop(context);
224259
}
225260
}

packages/stream_chat_flutter/test/src/message_input/audio_recorder/stream_audio_recorder_test.dart

Lines changed: 22 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -325,8 +325,8 @@ void main() {
325325
'calls feedback.onRecordStart when long pressed',
326326
(tester) async {
327327
var feedbackCalled = false;
328-
final customFeedback = _TestFeedback(
329-
onStart: () => feedbackCalled = true,
328+
final customFeedback = AudioRecorderFeedbackWrapper(
329+
onStart: (_) async => feedbackCalled = true,
330330
);
331331

332332
await tester.pumpWidget(
@@ -353,8 +353,8 @@ void main() {
353353
'calls feedback.onRecordFinish when long press is released',
354354
(tester) async {
355355
var feedbackCalled = false;
356-
final customFeedback = _TestFeedback(
357-
onFinish: () => feedbackCalled = true,
356+
final customFeedback = AudioRecorderFeedbackWrapper(
357+
onFinish: (_) async => feedbackCalled = true,
358358
);
359359

360360
await tester.pumpWidget(
@@ -381,8 +381,8 @@ void main() {
381381
(tester) async {
382382
const lockThreshold = 60.0;
383383
var feedbackCalled = false;
384-
final customFeedback = _TestFeedback(
385-
onLock: () => feedbackCalled = true,
384+
final customFeedback = AudioRecorderFeedbackWrapper(
385+
onLock: (_) async => feedbackCalled = true,
386386
);
387387

388388
await tester.pumpWidget(
@@ -410,8 +410,8 @@ void main() {
410410
(tester) async {
411411
const cancelThreshold = 60.0;
412412
var feedbackCalled = false;
413-
final customFeedback = _TestFeedback(
414-
onCancel: () => feedbackCalled = true,
413+
final customFeedback = AudioRecorderFeedbackWrapper(
414+
onCancel: (_) async => feedbackCalled = true,
415415
);
416416

417417
await tester.pumpWidget(
@@ -438,8 +438,8 @@ void main() {
438438
'calls feedback.onRecordStop when stop is tapped in locked state',
439439
(tester) async {
440440
var feedbackCalled = false;
441-
final customFeedback = _TestFeedback(
442-
onStop: () => feedbackCalled = true,
441+
final customFeedback = AudioRecorderFeedbackWrapper(
442+
onStop: (_) async => feedbackCalled = true,
443443
);
444444

445445
await tester.pumpWidget(
@@ -465,8 +465,8 @@ void main() {
465465
'calls feedback.onRecordCancel when delete is tapped in locked state',
466466
(tester) async {
467467
var feedbackCalled = false;
468-
final customFeedback = _TestFeedback(
469-
onCancel: () => feedbackCalled = true,
468+
final customFeedback = AudioRecorderFeedbackWrapper(
469+
onCancel: (_) async => feedbackCalled = true,
470470
);
471471

472472
await tester.pumpWidget(
@@ -492,8 +492,8 @@ void main() {
492492
'calls feedback.onRecordFinish when checkSend is tapped in locked state',
493493
(tester) async {
494494
var feedbackCalled = false;
495-
final customFeedback = _TestFeedback(
496-
onFinish: () => feedbackCalled = true,
495+
final customFeedback = AudioRecorderFeedbackWrapper(
496+
onFinish: (_) async => feedbackCalled = true,
497497
);
498498

499499
await tester.pumpWidget(
@@ -519,8 +519,8 @@ void main() {
519519
'calls feedback.onRecordCancel when delete is tapped in stopped state',
520520
(tester) async {
521521
var feedbackCalled = false;
522-
final customFeedback = _TestFeedback(
523-
onCancel: () => feedbackCalled = true,
522+
final customFeedback = AudioRecorderFeedbackWrapper(
523+
onCancel: (_) async => feedbackCalled = true,
524524
);
525525

526526
await tester.pumpWidget(
@@ -545,8 +545,8 @@ void main() {
545545
'calls feedback.onRecordFinish when checkSend is tapped in stopped state',
546546
(tester) async {
547547
var feedbackCalled = false;
548-
final customFeedback = _TestFeedback(
549-
onFinish: () => feedbackCalled = true,
548+
final customFeedback = AudioRecorderFeedbackWrapper(
549+
onFinish: (_) async => feedbackCalled = true,
550550
);
551551

552552
await tester.pumpWidget(
@@ -571,8 +571,8 @@ void main() {
571571
'calls feedback.onRecordStartCancel when long press is canceled',
572572
(tester) async {
573573
var feedbackCalled = false;
574-
final customFeedback = _TestFeedback(
575-
onStartCancel: () => feedbackCalled = true,
574+
final customFeedback = AudioRecorderFeedbackWrapper(
575+
onStartCancel: (_) async => feedbackCalled = true,
576576
);
577577

578578
await tester.pumpWidget(
@@ -599,9 +599,9 @@ void main() {
599599
'does not call feedback when disabled',
600600
(tester) async {
601601
var feedbackCalled = false;
602-
final customFeedback = _TestFeedback(
602+
final customFeedback = AudioRecorderFeedbackWrapper(
603603
enableFeedback: false,
604-
onStart: () => feedbackCalled = true,
604+
onStart: (_) async => feedbackCalled = true,
605605
);
606606

607607
await tester.pumpWidget(
@@ -717,52 +717,3 @@ Widget _wrapWithStreamChatApp(
717717
),
718718
);
719719
}
720-
721-
class _TestFeedback extends AudioRecorderFeedback {
722-
_TestFeedback({
723-
this.onStart,
724-
this.onFinish,
725-
this.onLock,
726-
this.onCancel,
727-
this.onStop,
728-
this.onStartCancel,
729-
super.enableFeedback = true,
730-
});
731-
732-
final VoidCallback? onStart;
733-
final VoidCallback? onFinish;
734-
final VoidCallback? onLock;
735-
final VoidCallback? onCancel;
736-
final VoidCallback? onStop;
737-
final VoidCallback? onStartCancel;
738-
739-
@override
740-
Future<void> onRecordStart(BuildContext context) async {
741-
if (enableFeedback) onStart?.call();
742-
}
743-
744-
@override
745-
Future<void> onRecordFinish(BuildContext context) async {
746-
if (enableFeedback) onFinish?.call();
747-
}
748-
749-
@override
750-
Future<void> onRecordLock(BuildContext context) async {
751-
if (enableFeedback) onLock?.call();
752-
}
753-
754-
@override
755-
Future<void> onRecordCancel(BuildContext context) async {
756-
if (enableFeedback) onCancel?.call();
757-
}
758-
759-
@override
760-
Future<void> onRecordStop(BuildContext context) async {
761-
if (enableFeedback) onStop?.call();
762-
}
763-
764-
@override
765-
Future<void> onRecordStartCancel(BuildContext context) async {
766-
if (enableFeedback) onStartCancel?.call();
767-
}
768-
}

0 commit comments

Comments
 (0)