From 19069f8dd95ba374d541b70acea8afcb6638ded3 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Tue, 9 Jan 2024 14:50:22 -0500 Subject: [PATCH 1/8] assert not null --- .../flutter/plugins/quickactionsexample/QuickActionsTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/quick_actions/quick_actions_android/example/android/app/src/androidTest/java/io/flutter/plugins/quickactionsexample/QuickActionsTest.java b/packages/quick_actions/quick_actions_android/example/android/app/src/androidTest/java/io/flutter/plugins/quickactionsexample/QuickActionsTest.java index f401f6f73975..601fba2ec39b 100644 --- a/packages/quick_actions/quick_actions_android/example/android/app/src/androidTest/java/io/flutter/plugins/quickactionsexample/QuickActionsTest.java +++ b/packages/quick_actions/quick_actions_android/example/android/app/src/androidTest/java/io/flutter/plugins/quickactionsexample/QuickActionsTest.java @@ -106,7 +106,8 @@ public void appShortcutLaunchActivityAfterStarting() { // Act context.startActivity(dynamicShortcutIntent); - device.wait(Until.hasObject(By.descContains(appReadySentinel)), 2000); + final Object o = device.wait(Until.hasObject(By.descContains(appReadySentinel)), 2000); + Assert.assertNotNull(o); AtomicReference currentActivity = new AtomicReference<>(); scenario.onActivity(currentActivity::set); From 2c8a42544ce49379225eb015d52b99107c9c9470 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Tue, 9 Jan 2024 14:51:39 -0500 Subject: [PATCH 2/8] unexclude/include --- script/configs/exclude_native_integration_android_emulator.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/script/configs/exclude_native_integration_android_emulator.yaml b/script/configs/exclude_native_integration_android_emulator.yaml index 3f9022028f64..38bd214755aa 100644 --- a/script/configs/exclude_native_integration_android_emulator.yaml +++ b/script/configs/exclude_native_integration_android_emulator.yaml @@ -1,3 +1,2 @@ # Incredibly flaky, see https://github.com/flutter/flutter/issues/141136 # TODO(stuartmorgan): Remove once the flake is fixed. -- quick_actions_android From 912e5b618db5266e0d6ad08d6eb289e09e3cc5f2 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Tue, 9 Jan 2024 15:06:23 -0500 Subject: [PATCH 3/8] temp change --- .../flutter/plugins/quickactionsexample/QuickActionsTest.java | 3 ++- .../configs/exclude_native_integration_android_emulator.yaml | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/quick_actions/quick_actions_android/example/android/app/src/androidTest/java/io/flutter/plugins/quickactionsexample/QuickActionsTest.java b/packages/quick_actions/quick_actions_android/example/android/app/src/androidTest/java/io/flutter/plugins/quickactionsexample/QuickActionsTest.java index 601fba2ec39b..8ad59ca41210 100644 --- a/packages/quick_actions/quick_actions_android/example/android/app/src/androidTest/java/io/flutter/plugins/quickactionsexample/QuickActionsTest.java +++ b/packages/quick_actions/quick_actions_android/example/android/app/src/androidTest/java/io/flutter/plugins/quickactionsexample/QuickActionsTest.java @@ -106,8 +106,9 @@ public void appShortcutLaunchActivityAfterStarting() { // Act context.startActivity(dynamicShortcutIntent); - final Object o = device.wait(Until.hasObject(By.descContains(appReadySentinel)), 2000); + final Boolean o = device.wait(Until.hasObject(By.descContains(appReadySentinel)), 2000); Assert.assertNotNull(o); + Assert.assertTrue(o); AtomicReference currentActivity = new AtomicReference<>(); scenario.onActivity(currentActivity::set); diff --git a/script/configs/exclude_native_integration_android_emulator.yaml b/script/configs/exclude_native_integration_android_emulator.yaml index 38bd214755aa..0ca274ae67d6 100644 --- a/script/configs/exclude_native_integration_android_emulator.yaml +++ b/script/configs/exclude_native_integration_android_emulator.yaml @@ -1,2 +1,3 @@ # Incredibly flaky, see https://github.com/flutter/flutter/issues/141136 # TODO(stuartmorgan): Remove once the flake is fixed. +- webview_flutter_android From 4923a93416960e8a923e20ac0e6e55f5a79d757b Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Tue, 9 Jan 2024 15:53:59 -0500 Subject: [PATCH 4/8] try clear system dialogs --- .../plugins/quickactionsexample/QuickActionsTest.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/quick_actions/quick_actions_android/example/android/app/src/androidTest/java/io/flutter/plugins/quickactionsexample/QuickActionsTest.java b/packages/quick_actions/quick_actions_android/example/android/app/src/androidTest/java/io/flutter/plugins/quickactionsexample/QuickActionsTest.java index 8ad59ca41210..af9cbff32a95 100644 --- a/packages/quick_actions/quick_actions_android/example/android/app/src/androidTest/java/io/flutter/plugins/quickactionsexample/QuickActionsTest.java +++ b/packages/quick_actions/quick_actions_android/example/android/app/src/androidTest/java/io/flutter/plugins/quickactionsexample/QuickActionsTest.java @@ -8,6 +8,7 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; +import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.pm.ShortcutInfo; @@ -102,13 +103,14 @@ public void appShortcutLaunchActivityAfterStarting() { Intent dynamicShortcutIntent = dynamicShortcut.getIntent(); AtomicReference initialActivity = new AtomicReference<>(); scenario.onActivity(initialActivity::set); + clearAnySystemDialog(initialActivity.get()); String appReadySentinel = " has launched"; // Act context.startActivity(dynamicShortcutIntent); final Boolean o = device.wait(Until.hasObject(By.descContains(appReadySentinel)), 2000); - Assert.assertNotNull(o); - Assert.assertTrue(o); + Assert.assertNotNull("check null", o); + Assert.assertTrue("check true", o); AtomicReference currentActivity = new AtomicReference<>(); scenario.onActivity(currentActivity::set); @@ -153,4 +155,9 @@ private ActivityScenario ensureAppRunToView() { scenario.moveToState(Lifecycle.State.STARTED); return scenario; } + + private void clearAnySystemDialog(Activity activity) { + final Intent closeDialog = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); + activity.sendBroadcast(closeDialog); + } } From 85189a9aec1f23d074e6506ff5a7470edade7265 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Tue, 9 Jan 2024 17:57:59 -0500 Subject: [PATCH 5/8] update to make good --- .ci/targets/android_platform_tests.yaml | 2 +- .../plugins/quickactionsexample/QuickActionsTest.java | 6 +++--- .../exclude_native_integration_android_emulator.yaml | 3 --- 3 files changed, 4 insertions(+), 7 deletions(-) delete mode 100644 script/configs/exclude_native_integration_android_emulator.yaml diff --git a/.ci/targets/android_platform_tests.yaml b/.ci/targets/android_platform_tests.yaml index a4adf3591e22..7e27f17d5819 100644 --- a/.ci/targets/android_platform_tests.yaml +++ b/.ci/targets/android_platform_tests.yaml @@ -21,7 +21,7 @@ tasks: args: ["native-test", "--android", "--no-integration", "--exclude=script/configs/exclude_native_unit_android.yaml,script/configs/still_requires_api_33_avd.yaml"] - name: native integration tests script: script/tool_runner.sh - args: ["native-test", "--android", "--no-unit", "--exclude=script/configs/exclude_native_integration_android_emulator.yaml,script/configs/still_requires_api_33_avd.yaml"] + args: ["native-test", "--android", "--no-unit", "--exclude=script/configs/still_requires_api_33_avd.yaml"] - name: drive examples script: script/tool_runner.sh args: ["drive-examples", "--android", "--exclude=script/configs/exclude_integration_android.yaml,script/configs/exclude_integration_android_emulator.yaml,script/configs/still_requires_api_33_avd.yaml"] diff --git a/packages/quick_actions/quick_actions_android/example/android/app/src/androidTest/java/io/flutter/plugins/quickactionsexample/QuickActionsTest.java b/packages/quick_actions/quick_actions_android/example/android/app/src/androidTest/java/io/flutter/plugins/quickactionsexample/QuickActionsTest.java index af9cbff32a95..aec496ef3bac 100644 --- a/packages/quick_actions/quick_actions_android/example/android/app/src/androidTest/java/io/flutter/plugins/quickactionsexample/QuickActionsTest.java +++ b/packages/quick_actions/quick_actions_android/example/android/app/src/androidTest/java/io/flutter/plugins/quickactionsexample/QuickActionsTest.java @@ -108,9 +108,7 @@ public void appShortcutLaunchActivityAfterStarting() { // Act context.startActivity(dynamicShortcutIntent); - final Boolean o = device.wait(Until.hasObject(By.descContains(appReadySentinel)), 2000); - Assert.assertNotNull("check null", o); - Assert.assertTrue("check true", o); + device.wait(Until.hasObject(By.descContains(appReadySentinel)), 2000); AtomicReference currentActivity = new AtomicReference<>(); scenario.onActivity(currentActivity::set); @@ -156,6 +154,8 @@ private ActivityScenario ensureAppRunToView() { return scenario; } + // Broadcast a request to clear a system dialog that blocks the Activity. + // See https://github.com/flutter/flutter/issues/140987 private void clearAnySystemDialog(Activity activity) { final Intent closeDialog = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); activity.sendBroadcast(closeDialog); diff --git a/script/configs/exclude_native_integration_android_emulator.yaml b/script/configs/exclude_native_integration_android_emulator.yaml deleted file mode 100644 index 0ca274ae67d6..000000000000 --- a/script/configs/exclude_native_integration_android_emulator.yaml +++ /dev/null @@ -1,3 +0,0 @@ -# Incredibly flaky, see https://github.com/flutter/flutter/issues/141136 -# TODO(stuartmorgan): Remove once the flake is fixed. -- webview_flutter_android From 27556b2019694bab5a110bc12c5627179a0301b8 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Tue, 9 Jan 2024 18:00:10 -0500 Subject: [PATCH 6/8] use context instead --- .../plugins/quickactionsexample/QuickActionsTest.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/quick_actions/quick_actions_android/example/android/app/src/androidTest/java/io/flutter/plugins/quickactionsexample/QuickActionsTest.java b/packages/quick_actions/quick_actions_android/example/android/app/src/androidTest/java/io/flutter/plugins/quickactionsexample/QuickActionsTest.java index aec496ef3bac..5e42d9a4cea3 100644 --- a/packages/quick_actions/quick_actions_android/example/android/app/src/androidTest/java/io/flutter/plugins/quickactionsexample/QuickActionsTest.java +++ b/packages/quick_actions/quick_actions_android/example/android/app/src/androidTest/java/io/flutter/plugins/quickactionsexample/QuickActionsTest.java @@ -103,7 +103,7 @@ public void appShortcutLaunchActivityAfterStarting() { Intent dynamicShortcutIntent = dynamicShortcut.getIntent(); AtomicReference initialActivity = new AtomicReference<>(); scenario.onActivity(initialActivity::set); - clearAnySystemDialog(initialActivity.get()); + clearAnySystemDialog(context); String appReadySentinel = " has launched"; // Act @@ -154,10 +154,10 @@ private ActivityScenario ensureAppRunToView() { return scenario; } - // Broadcast a request to clear a system dialog that blocks the Activity. + // Broadcast a request to clear any system dialog that blocks the application. // See https://github.com/flutter/flutter/issues/140987 - private void clearAnySystemDialog(Activity activity) { + private void clearAnySystemDialog(Context context) { final Intent closeDialog = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); - activity.sendBroadcast(closeDialog); + context.sendBroadcast(closeDialog); } } From c5359a09684c99d748b76b8abc6c0fb1db7b166a Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Tue, 9 Jan 2024 18:00:33 -0500 Subject: [PATCH 7/8] improve comment --- .../flutter/plugins/quickactionsexample/QuickActionsTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/quick_actions/quick_actions_android/example/android/app/src/androidTest/java/io/flutter/plugins/quickactionsexample/QuickActionsTest.java b/packages/quick_actions/quick_actions_android/example/android/app/src/androidTest/java/io/flutter/plugins/quickactionsexample/QuickActionsTest.java index 5e42d9a4cea3..616a7a433f94 100644 --- a/packages/quick_actions/quick_actions_android/example/android/app/src/androidTest/java/io/flutter/plugins/quickactionsexample/QuickActionsTest.java +++ b/packages/quick_actions/quick_actions_android/example/android/app/src/androidTest/java/io/flutter/plugins/quickactionsexample/QuickActionsTest.java @@ -154,8 +154,8 @@ private ActivityScenario ensureAppRunToView() { return scenario; } - // Broadcast a request to clear any system dialog that blocks the application. - // See https://github.com/flutter/flutter/issues/140987 + // Broadcast a request to clear any system dialog that blocks the application from obtaining + // focus. See https://github.com/flutter/flutter/issues/140987 private void clearAnySystemDialog(Context context) { final Intent closeDialog = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); context.sendBroadcast(closeDialog); From 847e9d0fd3e831bd2dfb70d5fb00cb09214d32b7 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 10 Jan 2024 14:47:32 -0500 Subject: [PATCH 8/8] formatting --- .../flutter/plugins/quickactionsexample/QuickActionsTest.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/quick_actions/quick_actions_android/example/android/app/src/androidTest/java/io/flutter/plugins/quickactionsexample/QuickActionsTest.java b/packages/quick_actions/quick_actions_android/example/android/app/src/androidTest/java/io/flutter/plugins/quickactionsexample/QuickActionsTest.java index 616a7a433f94..7d25cdfae1a9 100644 --- a/packages/quick_actions/quick_actions_android/example/android/app/src/androidTest/java/io/flutter/plugins/quickactionsexample/QuickActionsTest.java +++ b/packages/quick_actions/quick_actions_android/example/android/app/src/androidTest/java/io/flutter/plugins/quickactionsexample/QuickActionsTest.java @@ -8,7 +8,6 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; -import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.pm.ShortcutInfo; @@ -157,7 +156,6 @@ private ActivityScenario ensureAppRunToView() { // Broadcast a request to clear any system dialog that blocks the application from obtaining // focus. See https://github.com/flutter/flutter/issues/140987 private void clearAnySystemDialog(Context context) { - final Intent closeDialog = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); - context.sendBroadcast(closeDialog); + context.sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)); } }