Merge "Revert "Allow theme attributes in <include> tag, fix <tag> context""

This commit is contained in:
Alan Viverette
2014-12-17 18:56:49 +00:00
committed by Android (Google) Code Review
2 changed files with 11 additions and 28 deletions

View File

@@ -837,7 +837,7 @@ public abstract class LayoutInflater {
throws XmlPullParserException, IOException {
int type;
final TypedArray ta = view.getContext().obtainStyledAttributes(
final TypedArray ta = mContext.obtainStyledAttributes(
attrs, com.android.internal.R.styleable.ViewTag);
final int key = ta.getResourceId(com.android.internal.R.styleable.ViewTag_id, 0);
final CharSequence value = ta.getText(com.android.internal.R.styleable.ViewTag_value);
@@ -856,26 +856,7 @@ public abstract class LayoutInflater {
int type;
if (parent instanceof ViewGroup) {
Context context = inheritContext ? parent.getContext() : mContext;
// Apply a theme wrapper, if requested.
final TypedArray ta = context.obtainStyledAttributes(attrs, ATTRS_THEME);
final int themeResId = ta.getResourceId(0, 0);
if (themeResId != 0) {
context = new ContextThemeWrapper(context, themeResId);
}
ta.recycle();
final TypedArray a = context.obtainStyledAttributes(
attrs, com.android.internal.R.styleable.Include);
final int layout = a.getResourceId(
com.android.internal.R.styleable.Include_layout, 0);
final int id = a.getResourceId(
com.android.internal.R.styleable.Include_id, View.NO_ID);
final int visibility = a.getInt(
com.android.internal.R.styleable.Include_visibility, -1);
a.recycle();
final int layout = attrs.getAttributeResourceValue(null, "layout", 0);
if (layout == 0) {
final String value = attrs.getAttributeValue(null, "layout");
if (value == null) {
@@ -934,6 +915,15 @@ public abstract class LayoutInflater {
// Inflate all children.
rInflate(childParser, view, childAttrs, true, true);
// Attempt to override the included layout's android:id with the
// one set on the <include /> tag itself.
TypedArray a = mContext.obtainStyledAttributes(attrs,
com.android.internal.R.styleable.View, 0, 0);
int id = a.getResourceId(com.android.internal.R.styleable.View_id, View.NO_ID);
// While we're at it, let's try to override android:visibility.
int visibility = a.getInt(com.android.internal.R.styleable.View_visibility, -1);
a.recycle();
if (id != View.NO_ID) {
view.setId(id);
}

View File

@@ -2624,13 +2624,6 @@
<attr name="value" />
</declare-styleable>
<!-- Attributes that can be assigned to an &lt;include&gt; tag. -->
<declare-styleable name="Include">
<attr name="id" />
<attr name="layout" />
<attr name="visibility" />
</declare-styleable>
<!-- Attributes that can be used with a {@link android.view.ViewGroup} or any
of its subclasses. Also see {@link #ViewGroup_Layout} for
attributes that this class processes in its children. -->