aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJerome Gaillard <jgaillard@google.com>2022-02-11 18:24:19 +0000
committerCherrypicker Worker <android-build-cherrypicker-worker@google.com>2022-02-16 13:01:39 +0000
commit0d0cd11b3f8eb4aee87d5487a4b0f9cd6d154a9d (patch)
treed1a0e56a360723c4be43428d2df7db994ccfa5af
parenta776fbce5390caac9a0cb67940ddc5cdcf4d6eed (diff)
downloadlayoutlib-0d0cd11b3f8eb4aee87d5487a4b0f9cd6d154a9d.tar.gz
Use new LayoutlibCallback.getResourcePackage method
In Resources_Delegate, when looking for the resource package name, use LayoutlibCallback.getResourcePackage instead of Context.getPackageName. Bug: N/A Test: layoutlib tests updated Change-Id: Ife2c82820accac6345dbc34bdcd81b7cfa508d25 (cherry picked from commit 2d55a7614e54c7029064fa5959d899ac76400edf) Merged-In:Ife2c82820accac6345dbc34bdcd81b7cfa508d25
-rw-r--r--bridge/src/android/content/res/Resources_Delegate.java4
-rw-r--r--bridge/tests/src/com/android/layoutlib/bridge/intensive/setup/LayoutLibTestCallback.java5
-rw-r--r--remote/client/src/com/android/layoutlib/bridge/remote/client/adapters/RemoteLayoutlibCallbackAdapter.java5
-rw-r--r--remote/common/src/com/android/layout/remote/api/RemoteLayoutlibCallback.java2
-rw-r--r--remote/server/src/com/android/layoutlib/bridge/remote/server/adapters/RemoteLayoutlibCallbackAdapter.java9
5 files changed, 23 insertions, 2 deletions
diff --git a/bridge/src/android/content/res/Resources_Delegate.java b/bridge/src/android/content/res/Resources_Delegate.java
index 1102eb79f9..f453aecce2 100644
--- a/bridge/src/android/content/res/Resources_Delegate.java
+++ b/bridge/src/android/content/res/Resources_Delegate.java
@@ -787,7 +787,7 @@ public class Resources_Delegate {
private static String getPackageName(ResourceReference resourceInfo, Resources resources) {
String packageName = resourceInfo.getNamespace().getPackageName();
if (packageName == null) {
- packageName = getContext(resources).getPackageName();
+ packageName = getLayoutlibCallback(resources).getResourcePackage();
if (packageName == null) {
packageName = APP_PREFIX;
}
@@ -1114,7 +1114,7 @@ public class Resources_Delegate {
return Bridge.getResourceId(url.type, url.name);
}
- if (getContext(resources).getPackageName().equals(url.namespace)) {
+ if (getLayoutlibCallback(resources).getResourcePackage().equals(url.namespace)) {
return getLayoutlibCallback(resources).getOrGenerateResourceId(
new ResourceReference(ResourceNamespace.RES_AUTO, url.type, url.name));
}
diff --git a/bridge/tests/src/com/android/layoutlib/bridge/intensive/setup/LayoutLibTestCallback.java b/bridge/tests/src/com/android/layoutlib/bridge/intensive/setup/LayoutLibTestCallback.java
index 9faa0a64ae..4b9813a9b6 100644
--- a/bridge/tests/src/com/android/layoutlib/bridge/intensive/setup/LayoutLibTestCallback.java
+++ b/bridge/tests/src/com/android/layoutlib/bridge/intensive/setup/LayoutLibTestCallback.java
@@ -188,6 +188,11 @@ public class LayoutLibTestCallback extends LayoutlibCallback {
}
@Override
+ public String getResourcePackage() {
+ return PACKAGE_NAME;
+ }
+
+ @Override
public Class<?> findClass(String name) throws ClassNotFoundException {
return mModuleClassLoader.loadClass(name);
}
diff --git a/remote/client/src/com/android/layoutlib/bridge/remote/client/adapters/RemoteLayoutlibCallbackAdapter.java b/remote/client/src/com/android/layoutlib/bridge/remote/client/adapters/RemoteLayoutlibCallbackAdapter.java
index 01efd1224d..06fa6b26bf 100644
--- a/remote/client/src/com/android/layoutlib/bridge/remote/client/adapters/RemoteLayoutlibCallbackAdapter.java
+++ b/remote/client/src/com/android/layoutlib/bridge/remote/client/adapters/RemoteLayoutlibCallbackAdapter.java
@@ -102,6 +102,11 @@ public class RemoteLayoutlibCallbackAdapter implements RemoteLayoutlibCallback {
return mDelegate.getFlag(key);
}
+ @Override
+ public String getResourcePackage() throws RemoteException {
+ return mDelegate.getResourcePackage();
+ }
+
@Nullable
@Override
public Path findClassPath(String name) {
diff --git a/remote/common/src/com/android/layout/remote/api/RemoteLayoutlibCallback.java b/remote/common/src/com/android/layout/remote/api/RemoteLayoutlibCallback.java
index d68934ae65..ccf1feeb4e 100644
--- a/remote/common/src/com/android/layout/remote/api/RemoteLayoutlibCallback.java
+++ b/remote/common/src/com/android/layout/remote/api/RemoteLayoutlibCallback.java
@@ -52,6 +52,8 @@ public interface RemoteLayoutlibCallback extends Remote {
<T> T getFlag(Key<T> key) throws RemoteException;
+ String getResourcePackage() throws RemoteException;
+
Path findClassPath(String name) throws RemoteException;
RemoteXmlPullParser createXmlParserForPsiFile(String fileName) throws RemoteException;
diff --git a/remote/server/src/com/android/layoutlib/bridge/remote/server/adapters/RemoteLayoutlibCallbackAdapter.java b/remote/server/src/com/android/layoutlib/bridge/remote/server/adapters/RemoteLayoutlibCallbackAdapter.java
index 719de4dcd3..cba8a472ef 100644
--- a/remote/server/src/com/android/layoutlib/bridge/remote/server/adapters/RemoteLayoutlibCallbackAdapter.java
+++ b/remote/server/src/com/android/layoutlib/bridge/remote/server/adapters/RemoteLayoutlibCallbackAdapter.java
@@ -218,6 +218,15 @@ public class RemoteLayoutlibCallbackAdapter extends LayoutlibCallback {
}
@Override
+ public String getResourcePackage() {
+ try {
+ return mDelegate.getResourcePackage();
+ } catch (RemoteException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ @Override
public Class<?> findClass(String name) throws ClassNotFoundException {
return mPathClassLoader.loadClass(name);
}