summaryrefslogtreecommitdiff
path: root/WifiDialog/src
diff options
context:
space:
mode:
author Quang Anh Luong <qal@google.com> 2024-01-05 16:52:57 +0900
committer Quang Luong <qal@google.com> 2024-01-10 04:52:13 +0000
commitfd66c04cbb9a6cd80b487ab45873a226073f2428 (patch)
tree467440e4663bd817eebd971c6753fe6211fccc48 /WifiDialog/src
parentd53919e1e4057be97c2702e1b9a4cc79ce97357e (diff)
Dismiss dialogs in onStop()
Dismiss WifiDialog dialogs in onStop() to prevent ANRs when the activity is frozen but the dialog is still being shown with the screen off. Bug: 317837996 Test: `adb shell cmd wifi launch-dialog-simple -t` while screen is off, verify dialog appears when screen turns on. Change-Id: I8f55d4c81a4f0ab28d17865feceb370ec8e3a83d
Diffstat (limited to 'WifiDialog/src')
-rw-r--r--WifiDialog/src/com/android/wifi/dialog/WifiDialogActivity.java18
1 files changed, 8 insertions, 10 deletions
diff --git a/WifiDialog/src/com/android/wifi/dialog/WifiDialogActivity.java b/WifiDialog/src/com/android/wifi/dialog/WifiDialogActivity.java
index 198e07d532..479227009a 100644
--- a/WifiDialog/src/com/android/wifi/dialog/WifiDialogActivity.java
+++ b/WifiDialog/src/com/android/wifi/dialog/WifiDialogActivity.java
@@ -249,19 +249,17 @@ public class WifiDialogActivity extends Activity {
@Override
protected void onStop() {
super.onStop();
- if (!isChangingConfigurations()) {
- if (!BuildCompat.isAtLeastU()) {
- // Before U, we don't have INTERNAL_SYSTEM_WINDOW permission to always show at the
- // top, so close all dialogs when we're not visible anymore.
- for (int i = 0; i < mActiveDialogsPerId.size(); i++) {
- mActiveDialogsPerId.valueAt(i).cancel();
- }
+ if (!isChangingConfigurations() && !BuildCompat.isAtLeastU()) {
+ // Before U, we don't have INTERNAL_SYSTEM_WINDOW permission to always show at the
+ // top, so close all dialogs when we're not visible anymore (i.e. another app launches
+ // on top of us).
+ for (int i = 0; i < mActiveDialogsPerId.size(); i++) {
+ mActiveDialogsPerId.valueAt(i).cancel();
}
return;
}
- // If we're stopping due to a configuration change, dismiss all the dialogs without
- // removing it from mLaunchIntentsPerId to prevent window leaking. The dialogs will be
- // recreated from mLaunchIntentsPerId in onStart().
+ // Dismiss all the dialogs without removing it from mLaunchIntentsPerId to prevent window
+ // leaking. The dialogs will be recreated from mLaunchIntentsPerId in onStart().
for (int i = 0; i < mActiveDialogsPerId.size(); i++) {
Dialog dialog = mActiveDialogsPerId.valueAt(i);
// Set the dismiss listener to null to prevent removing the Intent from