summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Sumedh Sen <sumedhsen@google.com> 2024-12-12 14:29:31 -0800
committer Sumedh Sen <sumedhsen@google.com> 2024-12-12 14:34:12 -0800
commitb1612955cb7fb2f69f1e04d437bb7fabd411ff7c (patch)
tree65f7a58437056b112ca33805d221d992f735c4dc
parentbd7cd39106eb72b7c5bcec45f02e0500bf620b9a (diff)
Prevent showing overlays when unarchiving
When unarchiving an app: - Hide non-system overlays - Disable the restore button when another window is being shown on top of Pia Bug: 370958259 Test: atest CtsPackageUninstallTestCases:ArchiveTest Flag: EXEMPT.Bug fix only Change-Id: If750c0a613136f3ad3040c544bd70ab428fe5ef2
-rw-r--r--packages/PackageInstaller/src/com/android/packageinstaller/UnarchiveActivity.java3
-rw-r--r--packages/PackageInstaller/src/com/android/packageinstaller/UnarchiveFragment.java31
2 files changed, 33 insertions, 1 deletions
diff --git a/packages/PackageInstaller/src/com/android/packageinstaller/UnarchiveActivity.java b/packages/PackageInstaller/src/com/android/packageinstaller/UnarchiveActivity.java
index b20117d78230..c99d37bb6ce6 100644
--- a/packages/PackageInstaller/src/com/android/packageinstaller/UnarchiveActivity.java
+++ b/packages/PackageInstaller/src/com/android/packageinstaller/UnarchiveActivity.java
@@ -19,6 +19,7 @@ package com.android.packageinstaller;
import static android.Manifest.permission;
import static android.content.pm.PackageManager.GET_PERMISSIONS;
import static android.content.pm.PackageManager.MATCH_ARCHIVED_PACKAGES;
+import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
import android.app.Activity;
import android.app.DialogFragment;
@@ -53,6 +54,8 @@ public class UnarchiveActivity extends Activity {
@Override
public void onCreate(Bundle icicle) {
+ getWindow().addSystemFlags(SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
+
super.onCreate(null);
int callingUid = getLaunchedFromUid();
diff --git a/packages/PackageInstaller/src/com/android/packageinstaller/UnarchiveFragment.java b/packages/PackageInstaller/src/com/android/packageinstaller/UnarchiveFragment.java
index 42dd382b98bc..fbb0fa4d6a57 100644
--- a/packages/PackageInstaller/src/com/android/packageinstaller/UnarchiveFragment.java
+++ b/packages/PackageInstaller/src/com/android/packageinstaller/UnarchiveFragment.java
@@ -21,10 +21,14 @@ import android.app.Dialog;
import android.app.DialogFragment;
import android.content.DialogInterface;
import android.os.Bundle;
+import android.widget.Button;
public class UnarchiveFragment extends DialogFragment implements
DialogInterface.OnClickListener {
+ private Dialog mDialog;
+ private Button mRestoreButton;
+
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
String appTitle = getArguments().getString(UnarchiveActivity.APP_TITLE);
@@ -40,7 +44,32 @@ public class UnarchiveFragment extends DialogFragment implements
dialogBuilder.setPositiveButton(R.string.restore, this);
dialogBuilder.setNegativeButton(android.R.string.cancel, this);
- return dialogBuilder.create();
+ mDialog = dialogBuilder.create();
+ return mDialog;
+ }
+
+ @Override
+ public void onStart() {
+ super.onStart();
+ if (mDialog != null) {
+ mRestoreButton = ((AlertDialog) mDialog).getButton(DialogInterface.BUTTON_POSITIVE);
+ }
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ if (mRestoreButton != null) {
+ mRestoreButton.setEnabled(false);
+ }
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ if (mRestoreButton != null) {
+ mRestoreButton.setEnabled(true);
+ }
}
@Override