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

Commit 25aa4eda authored by Eric Holk's avatar Eric Holk
Browse files

[layout precompilation] Add testing hook for precompiled layouts

We want to be able to control at a fine grained level whether precompiled
layouts are enabled so we can compare inflation results with and without. This
changes adds a @TestApi method that supports this.

Bug: 111895153
Change-Id: Ib6b62d79a9ca7aefefff8639752aa5838e491038
parent 3e8a69cd
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -2366,6 +2366,10 @@ package android.view {
    method public boolean isSystemGroup();
  }

  public abstract class LayoutInflater {
    method public void setPrecompiledLayoutsEnabledForTesting(boolean);
  }

  public final class MotionEvent extends android.view.InputEvent implements android.os.Parcelable {
    method public void setActionButton(int);
    method public void setButtonState(int);
+20 −3
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.annotation.LayoutRes;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemService;
import android.annotation.TestApi;
import android.annotation.UnsupportedAppUsage;
import android.content.Context;
import android.content.pm.ApplicationInfo;
@@ -399,10 +400,15 @@ public abstract class LayoutInflater {
    }

    private void initPrecompiledViews() {
        // Check if precompiled layouts are enabled by a system property.
        mUseCompiledView =
            SystemProperties.getBoolean(USE_PRECOMPILED_LAYOUT_SYSTEM_PROPERTY, false);
        initPrecompiledViews(
                SystemProperties.getBoolean(USE_PRECOMPILED_LAYOUT_SYSTEM_PROPERTY, false));
    }

    private void initPrecompiledViews(boolean enablePrecompiledViews) {
        mUseCompiledView = enablePrecompiledViews;

        if (!mUseCompiledView) {
            mPrecompiledClassLoader = null;
            return;
        }

@@ -431,6 +437,17 @@ public abstract class LayoutInflater {
            }
            mUseCompiledView = false;
        }
        if (!mUseCompiledView) {
            mPrecompiledClassLoader = null;
        }
    }

    /**
     * @hide for use by CTS tests
     */
    @TestApi
    public void setPrecompiledLayoutsEnabledForTesting(boolean enablePrecompiledLayouts) {
        initPrecompiledViews(enablePrecompiledLayouts);
    }

    /**