Disallow overlays for ResolverActivity
Prevents non-system apps from placing a window over the app selection
screen.
Bug: 143559931
Test: Installed test app and attempted to overlay
Change-Id: Ied05088a5007e0f10cd3e1abd8d7da8ffeb3b674
Merged-In: Ied05088a5007e0f10cd3e1abd8d7da8ffeb3b674
(cherry picked from commit 34534e1fd2)
This commit is contained in:
committed by
Joshua Trask
parent
e3a263bb6d
commit
978809e428
@@ -19,6 +19,7 @@ package com.android.internal.app;
|
||||
import static android.Manifest.permission.INTERACT_ACROSS_PROFILES;
|
||||
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
|
||||
import static android.content.PermissionChecker.PID_UNKNOWN;
|
||||
import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
|
||||
|
||||
import android.annotation.Nullable;
|
||||
import android.annotation.StringRes;
|
||||
@@ -69,7 +70,9 @@ import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.ViewGroup.LayoutParams;
|
||||
import android.view.Window;
|
||||
import android.view.WindowInsets;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.AbsListView;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.Button;
|
||||
@@ -101,7 +104,6 @@ import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
|
||||
|
||||
/**
|
||||
* This activity is displayed when the system attempts to start an Intent for
|
||||
* which there is more than one matching activity, allowing the user to decide
|
||||
@@ -822,6 +824,8 @@ public class ResolverActivity extends Activity implements
|
||||
@Override
|
||||
protected void onStart() {
|
||||
super.onStart();
|
||||
|
||||
this.getWindow().addSystemFlags(SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
|
||||
if (shouldShowTabs()) {
|
||||
mWorkProfileStateReceiver = createWorkProfileStateReceiver();
|
||||
registerWorkProfileStateReceiver();
|
||||
@@ -849,6 +853,12 @@ public class ResolverActivity extends Activity implements
|
||||
@Override
|
||||
protected void onStop() {
|
||||
super.onStop();
|
||||
|
||||
final Window window = this.getWindow();
|
||||
final WindowManager.LayoutParams attrs = window.getAttributes();
|
||||
attrs.privateFlags &= ~SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
|
||||
window.setAttributes(attrs);
|
||||
|
||||
if (mRegistered) {
|
||||
mPersonalPackageMonitor.unregister();
|
||||
if (mWorkPackageMonitor != null) {
|
||||
|
||||
Reference in New Issue
Block a user