Temporarily exclude Launcher from sandboxing; to be reverted once

bug is addressed.

Bug: 181219241
Test: Manual
Change-Id: I468104a853908c5649359084fa9d683e7f1ce532
This commit is contained in:
Naomi Musgrave
2021-03-01 18:38:47 +00:00
parent 93281edad3
commit 6574e37f7c

View File

@@ -24,9 +24,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;
@@ -45,11 +47,14 @@ import android.os.SystemClock;
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.
@@ -112,6 +117,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.
*/
@@ -1383,7 +1394,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;
}
}
/**