diff options
author | 2014-10-01 18:11:18 +0000 | |
---|---|---|
committer | 2014-10-01 18:11:18 +0000 | |
commit | 908c748096d855d47da2f5e20fd4d9d31d1e603c (patch) | |
tree | 8031415a8deef274fa5bc89ba5c9744d6378889b | |
parent | 5069dd69898bd0d9c69ba2bbd37239ec8d1c9dc6 (diff) |
Revert "Fix issue with using locally defined attrs in a shared lib"
This reverts commit 5069dd69898bd0d9c69ba2bbd37239ec8d1c9dc6.
The reverted commit caused issues loading resources supplied by static libraries.
Bug 17748356
Change-Id: I860a4f31451ee7c03c02974826472a67226b029f
-rw-r--r-- | core/jni/android_util_AssetManager.cpp | 27 | ||||
-rw-r--r-- | libs/androidfw/ResourceTypes.cpp | 6 | ||||
-rw-r--r-- | tests/SharedLibrary/lib/res/layout/main.xml | 26 | ||||
-rw-r--r-- | tests/SharedLibrary/lib/res/values/strings.xml | 1 | ||||
-rw-r--r-- | tests/SharedLibrary/lib/src/com/google/android/test/shared_library/ActivityMain.java | 6 |
5 files changed, 10 insertions, 56 deletions
diff --git a/core/jni/android_util_AssetManager.cpp b/core/jni/android_util_AssetManager.cpp index 8753660e835d..4859ee6fb796 100644 --- a/core/jni/android_util_AssetManager.cpp +++ b/core/jni/android_util_AssetManager.cpp @@ -1324,21 +1324,7 @@ static jboolean android_content_AssetManager_applyStyle(JNIEnv* env, jobject cla config.density = 0; // Skip through XML attributes until the end or the next possible match. - // We make two assumptions about the order of attributes: - // 1) Among attributes with the same package ID, the attributes are - // sorted by increasing resource ID. - // 2) Groups of attributes with the same package ID are in the same - // order. - // 3) The same sorting is applied to the input attributes as is - // to the attributes in the XML. - // - // ex: 02010000, 02010001, 010100f4, 010100f5 - // - // The total order of attributes (including package ID) can not be linear - // as shared libraries get assigned dynamic package IDs at runtime, which - // may break the sort order established at build time. - while (ix < NX && (Res_GETPACKAGE(curIdent) != Res_GETPACKAGE(curXmlAttr) || - curIdent > curXmlAttr)) { + while (ix < NX && curIdent > curXmlAttr) { ix++; curXmlAttr = xmlParser->getAttributeNameResID(ix); } @@ -1353,9 +1339,7 @@ static jboolean android_content_AssetManager_applyStyle(JNIEnv* env, jobject cla } // Skip through the style values until the end or the next possible match. - while (styleEnt < endStyleEnt && - (Res_GETPACKAGE(curIdent) != Res_GETPACKAGE(styleEnt->map.name.ident) || - curIdent > styleEnt->map.name.ident)) { + while (styleEnt < endStyleEnt && curIdent > styleEnt->map.name.ident) { styleEnt++; } // Retrieve the current style attribute if it matches, and step to next. @@ -1371,9 +1355,7 @@ static jboolean android_content_AssetManager_applyStyle(JNIEnv* env, jobject cla } // Skip through the default style values until the end or the next possible match. - while (defStyleEnt < endDefStyleEnt && - (Res_GETPACKAGE(curIdent) != Res_GETPACKAGE(defStyleEnt->map.name.ident) || - curIdent > defStyleEnt->map.name.ident)) { + while (defStyleEnt < endDefStyleEnt && curIdent > defStyleEnt->map.name.ident) { defStyleEnt++; } // Retrieve the current default style attribute if it matches, and step to next. @@ -1535,8 +1517,7 @@ static jboolean android_content_AssetManager_retrieveAttributes(JNIEnv* env, job config.density = 0; // Skip through XML attributes until the end or the next possible match. - while (ix < NX && (Res_GETPACKAGE(curIdent) != Res_GETPACKAGE(curXmlAttr) || - curIdent > curXmlAttr)) { + while (ix < NX && curIdent > curXmlAttr) { ix++; curXmlAttr = xmlParser->getAttributeNameResID(ix); } diff --git a/libs/androidfw/ResourceTypes.cpp b/libs/androidfw/ResourceTypes.cpp index 61a767cc0c4f..8cef13765cc2 100644 --- a/libs/androidfw/ResourceTypes.cpp +++ b/libs/androidfw/ResourceTypes.cpp @@ -1185,11 +1185,7 @@ uint32_t ResXMLParser::getAttributeNameResID(size_t idx) const { int32_t id = getAttributeNameID(idx); if (id >= 0 && (size_t)id < mTree.mNumResIds) { - uint32_t resId = dtohl(mTree.mResIds[id]); - if (mTree.mDynamicRefTable == NULL || - mTree.mDynamicRefTable->lookupResourceId(&resId) == NO_ERROR) { - return resId; - } + return dtohl(mTree.mResIds[id]); } return 0; } diff --git a/tests/SharedLibrary/lib/res/layout/main.xml b/tests/SharedLibrary/lib/res/layout/main.xml deleted file mode 100644 index df0204d90d4c..000000000000 --- a/tests/SharedLibrary/lib/res/layout/main.xml +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> - -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:orientation="vertical"> - - <TextView - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:text="@string/sample_layout"/> - - <com.google.android.test.shared_library.AddressView xmlns:address="http://schemas.android.com/apk/res-auto" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_weight="1" - android:background="#03a9f4" - address:name="Librarian L" - address:streetNumber="21" - address:streetName="Android Lane" - address:city="AndroidVille" - address:state="OS" - address:zip="12345" - address:country="Mobile"/> - -</LinearLayout> diff --git a/tests/SharedLibrary/lib/res/values/strings.xml b/tests/SharedLibrary/lib/res/values/strings.xml index 9beccd961d79..6827f936ceea 100644 --- a/tests/SharedLibrary/lib/res/values/strings.xml +++ b/tests/SharedLibrary/lib/res/values/strings.xml @@ -28,5 +28,4 @@ </string-array> <string name="racoon">Racoon</string> - <string name="sample_layout">This is an example of a layout this library provides.</string> </resources> diff --git a/tests/SharedLibrary/lib/src/com/google/android/test/shared_library/ActivityMain.java b/tests/SharedLibrary/lib/src/com/google/android/test/shared_library/ActivityMain.java index 4b4893ce0427..895acedb1e7f 100644 --- a/tests/SharedLibrary/lib/src/com/google/android/test/shared_library/ActivityMain.java +++ b/tests/SharedLibrary/lib/src/com/google/android/test/shared_library/ActivityMain.java @@ -18,11 +18,15 @@ package com.google.android.test.shared_library; import android.app.Activity; import android.os.Bundle; +import android.widget.TextView; public class ActivityMain extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setContentView(R.layout.main); + + TextView content = new TextView(this); + content.setText("Dummy main entry for this apk; not really needed..."); + setContentView(content); } } |