From 266005c5b12d2aad515c3c492b3eb853f36a2a41 Mon Sep 17 00:00:00 2001 From: Seungsoo Lee Date: Wed, 5 Aug 2026 15:35:08 +0900 Subject: [PATCH] [tizen_app_control] Fix potential race issue Subscribe to `onAppControl` before calling `sendLaunchRequest()` to avoid a potential race where broadcast-stream events could be missed. --- .../integration_test/tizen_app_control_test.dart | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/tizen_app_control/example/integration_test/tizen_app_control_test.dart b/packages/tizen_app_control/example/integration_test/tizen_app_control_test.dart index 478838be1..e9435a9f8 100644 --- a/packages/tizen_app_control/example/integration_test/tizen_app_control_test.dart +++ b/packages/tizen_app_control/example/integration_test/tizen_app_control_test.dart @@ -39,9 +39,11 @@ void main() { appId: kAppId, operation: 'operation_1', ); + final Future receivedFuture = + AppControl.onAppControl.first; await request.sendLaunchRequest(); - final ReceivedAppControl received = await AppControl.onAppControl.first; + final ReceivedAppControl received = await receivedFuture; expect(received.appId, kAppId); expect(received.operation, 'operation_1'); expect(received.uri, isNull); @@ -60,9 +62,11 @@ void main() { uri: 'myapp://test/path', mime: 'text/plain', ); + final Future receivedFuture = + AppControl.onAppControl.first; await request.sendLaunchRequest(); - final ReceivedAppControl received = await AppControl.onAppControl.first; + final ReceivedAppControl received = await receivedFuture; expect(received.uri, 'myapp://test/path'); expect(received.mime, 'text/plain'); }, timeout: kTimeout); @@ -76,9 +80,11 @@ void main() { 'INTEGER_DATA': 1, }, ); + final Future receivedFuture = + AppControl.onAppControl.first; await request.sendLaunchRequest(); - final ReceivedAppControl received = await AppControl.onAppControl.first; + final ReceivedAppControl received = await receivedFuture; expect(received.extraData.length, 2); expect(received.extraData['STRING_DATA'], 'string'); expect(received.extraData['STRING_LIST_DATA'], ['string', 'list']);