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

Skip to content
Snippets Groups Projects
Commit 86076a7c authored by Mathieu Chartier's avatar Mathieu Chartier
Browse files

Add view inflation device config property

Added runtime namespace and corresponding device config property. If
the property is enabled, it overrides the system property.

Bug: 123524494
Bug: 111895153

Test: manual
Change-Id: I97f094e3a8471b72255b27fd0f10160040d49175
parent 12d08fd3
No related branches found
No related tags found
No related merge requests found
...@@ -5763,6 +5763,11 @@ package android.provider { ...@@ -5763,6 +5763,11 @@ package android.provider {
field public static final String PROPERTY_PERMISSIONS_HUB_ENABLED = "permissions_hub_enabled"; field public static final String PROPERTY_PERMISSIONS_HUB_ENABLED = "permissions_hub_enabled";
} }
   
public static interface DeviceConfig.Runtime {
field public static final String NAMESPACE = "runtime";
field public static final String USE_PRECOMPILED_LAYOUT = "view.precompiled_layout_enabled";
}
public static interface DeviceConfig.RuntimeNative { public static interface DeviceConfig.RuntimeNative {
field public static final String NAMESPACE = "runtime_native"; field public static final String NAMESPACE = "runtime_native";
} }
......
...@@ -149,6 +149,21 @@ public final class DeviceConfig { ...@@ -149,6 +149,21 @@ public final class DeviceConfig {
String GENERATE_ACTIONS = "generate_actions"; String GENERATE_ACTIONS = "generate_actions";
} }
/**
* Namespace for all runtime related features.
*
* @hide
*/
@SystemApi
public interface Runtime {
String NAMESPACE = "runtime";
/**
* Whether or not we use the precompiled layout.
*/
String USE_PRECOMPILED_LAYOUT = "view.precompiled_layout_enabled";
}
/** /**
* Namespace for all runtime native related features. * Namespace for all runtime native related features.
* *
......
...@@ -33,6 +33,8 @@ import android.os.Handler; ...@@ -33,6 +33,8 @@ import android.os.Handler;
import android.os.Message; import android.os.Message;
import android.os.SystemProperties; import android.os.SystemProperties;
import android.os.Trace; import android.os.Trace;
import android.provider.DeviceConfig;
import android.text.TextUtils;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.util.Log; import android.util.Log;
import android.util.TypedValue; import android.util.TypedValue;
...@@ -42,13 +44,14 @@ import android.widget.FrameLayout; ...@@ -42,13 +44,14 @@ import android.widget.FrameLayout;
import com.android.internal.R; import com.android.internal.R;
import dalvik.system.PathClassLoader; import dalvik.system.PathClassLoader;
import java.io.File;
import java.lang.reflect.Method;
import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlPullParserException;
import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.lang.reflect.Constructor; import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.HashMap; import java.util.HashMap;
/** /**
...@@ -78,8 +81,6 @@ public abstract class LayoutInflater { ...@@ -78,8 +81,6 @@ public abstract class LayoutInflater {
private static final String TAG = LayoutInflater.class.getSimpleName(); private static final String TAG = LayoutInflater.class.getSimpleName();
private static final boolean DEBUG = false; private static final boolean DEBUG = false;
private static final String USE_PRECOMPILED_LAYOUT_SYSTEM_PROPERTY
= "view.precompiled_layout_enabled";
private static final String COMPILED_VIEW_DEX_FILE_NAME = "/compiled_view.dex"; private static final String COMPILED_VIEW_DEX_FILE_NAME = "/compiled_view.dex";
/** Empty stack trace used to avoid log spam in re-throw exceptions. */ /** Empty stack trace used to avoid log spam in re-throw exceptions. */
...@@ -400,8 +401,19 @@ public abstract class LayoutInflater { ...@@ -400,8 +401,19 @@ public abstract class LayoutInflater {
} }
private void initPrecompiledViews() { private void initPrecompiledViews() {
initPrecompiledViews( // Use the device config if enabled, otherwise default to the system property.
SystemProperties.getBoolean(USE_PRECOMPILED_LAYOUT_SYSTEM_PROPERTY, false)); String usePrecompiledLayout = DeviceConfig.getProperty(
DeviceConfig.Runtime.NAMESPACE,
DeviceConfig.Runtime.USE_PRECOMPILED_LAYOUT);
boolean enabled = false;
if (TextUtils.isEmpty(usePrecompiledLayout)) {
enabled = SystemProperties.getBoolean(
DeviceConfig.Runtime.USE_PRECOMPILED_LAYOUT,
false);
} else {
enabled = Boolean.parseBoolean(usePrecompiledLayout);
}
initPrecompiledViews(enabled);
} }
private void initPrecompiledViews(boolean enablePrecompiledViews) { private void initPrecompiledViews(boolean enablePrecompiledViews) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment