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

Commit 8596dd12 authored by Andrei Onea's avatar Andrei Onea
Browse files

Add null checks for ConcurrentHashmap queries

Ensure all queries done in CompatChange are only done for non-null
package names.
The previous change broke several tests.

Bug: 200155796
Test: atest com.android.server.wm.DisplayAreaTest#testGetOrientation
Change-Id: I7fc9ccb45987e03f6f172a077303c25d5ae1ccf3
parent 50c01b22
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -183,14 +183,15 @@ public final class CompatChange extends CompatibilityChangeInfo {
     */
    synchronized boolean recheckOverride(String packageName, OverrideAllowedState allowedState,
            @Nullable Long versionCode) {
        if (packageName == null) {
            return false;
        }
        boolean allowed = (allowedState.state == OverrideAllowedState.ALLOWED);

        // If the app is not installed or no longer has raw overrides, evaluate to false
        if (versionCode == null || !mRawOverrides.containsKey(packageName) || !allowed) {
            removePackageOverrideInternal(packageName);
            return false;
        }

        // Evaluate the override based on its version
        int overrideValue = mRawOverrides.get(packageName).evaluate(versionCode);
        switch (overrideValue) {
@@ -266,6 +267,9 @@ public final class CompatChange extends CompatibilityChangeInfo {
     * @return {@code true} if the change should be enabled for the package.
     */
    boolean willBeEnabled(String packageName) {
        if (packageName == null) {
            return defaultValue();
        }
        final PackageOverride override = mRawOverrides.get(packageName);
        if (override != null) {
            switch (override.evaluateForAllVersions()) {