summaryrefslogtreecommitdiff
path: root/chromium/java/com
diff options
context:
space:
mode:
authorTorne (Richard Coles) <torne@google.com>2014-09-18 13:59:18 +0100
committerIgnacio Solla Paula <igsolla@google.com>2014-10-03 15:41:06 +0000
commit80ea4ead5bdf2a86aa63f70c6afeebbd5c0ec6d6 (patch)
tree4d1c97ba132204e68b52b8f3b58481aff7862352 /chromium/java/com
parent84e387193b55f94d61a9544ccfbe3c79e5e23f25 (diff)
downloadwebview-80ea4ead5bdf2a86aa63f70c6afeebbd5c0ec6d6.tar.gz
Cherry-pick: Fix resource rewriting in apps with other shared libs.
The resource rewriter was inadvertantly rewriting the resources for the first shared library it found in the current application whether that was the WebView or not due to a copy and paste oversight. Actually check the name of the package before rewriting its resources. This is the name of the package as the R class sees it, which is always com.android.webview even when the manifest package name has been changed. Also remove unused imports. BUG=17539974 Change-Id: I6c35451748ee9c32011b9a8b885f7c9b0b2e915d
Diffstat (limited to 'chromium/java/com')
-rw-r--r--chromium/java/com/android/webview/chromium/ResourceRewriter.java30
1 files changed, 15 insertions, 15 deletions
diff --git a/chromium/java/com/android/webview/chromium/ResourceRewriter.java b/chromium/java/com/android/webview/chromium/ResourceRewriter.java
index 99fa46f..683277a 100644
--- a/chromium/java/com/android/webview/chromium/ResourceRewriter.java
+++ b/chromium/java/com/android/webview/chromium/ResourceRewriter.java
@@ -19,9 +19,6 @@ package com.android.webview.chromium;
import android.content.Context;
import android.util.SparseArray;
-import java.lang.reflect.Field;
-import java.lang.reflect.Modifier;
-
/**
* Helper class used to fix up resource ids.
* This is mostly a copy of the code in frameworks/base/core/java/android/app/LoadedApk.java.
@@ -31,25 +28,28 @@ import java.lang.reflect.Modifier;
class ResourceRewriter {
public static void rewriteRValues(Context ctx) {
- // Rewrite the R 'constants' for all library apks.
+ // Rewrite the R 'constants' for the WebView library apk.
SparseArray<String> packageIdentifiers = ctx.getResources().getAssets()
.getAssignedPackageIdentifiers();
final int N = packageIdentifiers.size();
for (int i = 0; i < N; i++) {
- final int id = packageIdentifiers.keyAt(i);
- if (id == 0x01 || id == 0x7f) {
- continue;
- }
+ final String name = packageIdentifiers.valueAt(i);
- // TODO: We should use jarjar to remove the redundant R classes here, but due
- // to a bug in jarjar it's not possible to rename classes with '$' in their name.
- // See b/15684775.
- com.android.webview.chromium.R.onResourcesLoaded(id);
- org.chromium.ui.R.onResourcesLoaded(id);
- org.chromium.content.R.onResourcesLoaded(id);
+ // The resources are always called com.android.webview even if the manifest has had the
+ // package renamed.
+ if ("com.android.webview".equals(name)) {
+ final int id = packageIdentifiers.keyAt(i);
- break;
+ // TODO: We should use jarjar to remove the redundant R classes here, but due
+ // to a bug in jarjar it's not possible to rename classes with '$' in their name.
+ // See b/15684775.
+ com.android.webview.chromium.R.onResourcesLoaded(id);
+ org.chromium.ui.R.onResourcesLoaded(id);
+ org.chromium.content.R.onResourcesLoaded(id);
+
+ break;
+ }
}
}
}