Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 23f427c2 authored by Naomi Musgrave's avatar Naomi Musgrave Committed by Automerger Merge Worker
Browse files

Merge "Revert "Revert "Temporarily exclude Launcher from sandboxing; to be...

Merge "Revert "Revert "Temporarily exclude Launcher from sandboxing; to be reverted once""" into sc-v2-dev am: faac561d am: d80c1a08

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15036278

Change-Id: Ia52ff17a2cea1499cb525f9ba4b61f3bf836fd74
parents 5d61d3b5 d80c1a08
Loading
Loading
Loading
Loading
+41 −1
Original line number Diff line number Diff line
@@ -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;
        }
    }

    /**