Revert "Revert "Temporarily exclude Launcher from sandboxing; to be reverted once""

This reverts commit 202e35b7cf.

Reason for revert: Breaks Launcher tests (b/191395224, http://go/forrest-run/L01400000924167319)
Bug: 191395224
Bug: 191492708
Bug: 191488971
Change-Id: I325a024daed9cf643f7cd2cb9a536637c13262fa
This commit is contained in:
Paul Hobbs
2021-06-19 17:10:48 +00:00
committed by Naomi Musgrave
parent 202e35b7cf
commit 5824b89763

View File

@@ -25,9 +25,11 @@ import android.annotation.Nullable;
import android.annotation.RequiresPermission;
import android.annotation.SuppressLint;
import android.annotation.TestApi;
import android.app.ActivityThread;
import android.app.KeyguardManager;
import android.app.WindowConfiguration;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.ComponentName;
import android.content.res.CompatibilityInfo;
import android.content.res.Configuration;
import android.content.res.Resources;
@@ -48,11 +50,14 @@ import android.util.ArraySet;
import android.util.DisplayMetrics;
import android.util.Log;
import com.android.internal.R;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
/**
* Provides information about the size and density of a logical display.
@@ -116,6 +121,12 @@ public final class Display {
*/
private boolean mMayAdjustByFixedRotation;
/**
* Cache if the application is the recents component.
* TODO(b/179308296) Remove once Launcher addresses issue
*/
private Optional<Boolean> mIsRecentsComponent = Optional.empty();
/**
* The default Display id, which is the id of the primary display assuming there is one.
*/
@@ -1452,7 +1463,36 @@ public final class Display {
return false;
}
final Configuration config = mResources.getConfiguration();
return config != null && !config.windowConfiguration.getMaxBounds().isEmpty();
// TODO(b/179308296) Temporarily exclude Launcher from being given max bounds, by checking
// if the caller is the recents component.
return config != null && !config.windowConfiguration.getMaxBounds().isEmpty()
&& !isRecentsComponent();
}
/**
* Returns {@code true} when the calling package is the recents component.
* TODO(b/179308296) Remove once Launcher addresses issue
*/
boolean isRecentsComponent() {
if (mIsRecentsComponent.isPresent()) {
return mIsRecentsComponent.get();
}
if (mResources == null) {
return false;
}
try {
String recentsComponent = mResources.getString(R.string.config_recentsComponentName);
if (recentsComponent == null) {
return false;
}
String recentsPackage = ComponentName.unflattenFromString(recentsComponent)
.getPackageName();
mIsRecentsComponent = Optional.of(recentsPackage != null
&& recentsPackage.equals(ActivityThread.currentPackageName()));
return mIsRecentsComponent.get();
} catch (Resources.NotFoundException e) {
return false;
}
}
/**