summaryrefslogtreecommitdiff
path: root/core/java/android/widget/RelativeLayout.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/widget/RelativeLayout.java')
-rw-r--r--core/java/android/widget/RelativeLayout.java144
1 files changed, 143 insertions, 1 deletions
diff --git a/core/java/android/widget/RelativeLayout.java b/core/java/android/widget/RelativeLayout.java
index 8ee31e212cbf..37bed6538a26 100644
--- a/core/java/android/widget/RelativeLayout.java
+++ b/core/java/android/widget/RelativeLayout.java
@@ -35,6 +35,9 @@ import android.view.ViewGroup;
import android.view.ViewHierarchyEncoder;
import android.view.accessibility.AccessibilityEvent;
import android.view.inspector.InspectableProperty;
+import android.view.inspector.InspectionCompanion;
+import android.view.inspector.PropertyMapper;
+import android.view.inspector.PropertyReader;
import android.widget.RemoteViews.RemoteView;
import com.android.internal.R;
@@ -1286,7 +1289,6 @@ public class RelativeLayout extends ViewGroup {
* the anchor's visibility is GONE.
*/
@ViewDebug.ExportedProperty(category = "layout")
- @InspectableProperty(name = "layout_alignWithParentIfMissing")
public boolean alignWithParent;
public LayoutParams(Context c, AttributeSet attrs) {
@@ -1723,6 +1725,146 @@ public class RelativeLayout extends ViewGroup {
super.encodeProperties(encoder);
encoder.addProperty("layout:alignWithParent", alignWithParent);
}
+
+ /** @hide */
+ public static final class InspectionCompanion
+ implements android.view.inspector.InspectionCompanion<LayoutParams> {
+ private boolean mPropertiesMapped;
+
+ private int mAboveId;
+ private int mAlignBaselineId;
+ private int mAlignBottomId;
+ private int mAlignEndId;
+ private int mAlignLeftId;
+ private int mAlignParentBottomId;
+ private int mAlignParentEndId;
+ private int mAlignParentLeftId;
+ private int mAlignParentRightId;
+ private int mAlignParentStartId;
+ private int mAlignParentTopId;
+ private int mAlignRightId;
+ private int mAlignStartId;
+ private int mAlignTopId;
+ private int mAlignWithParentIfMissingId;
+ private int mBelowId;
+ private int mCenterHorizontalId;
+ private int mCenterInParentId;
+ private int mCenterVerticalId;
+ private int mToEndOfId;
+ private int mToLeftOfId;
+ private int mToRightOfId;
+ private int mToStartOfId;
+
+ @Override
+ public void mapProperties(@NonNull PropertyMapper propertyMapper) {
+ mPropertiesMapped = true;
+
+ mAboveId = propertyMapper.mapResourceId("layout_above", R.attr.layout_above);
+
+ mAlignBaselineId = propertyMapper.mapResourceId(
+ "layout_alignBaseline", R.attr.layout_alignBaseline);
+
+ mAlignBottomId = propertyMapper.mapResourceId(
+ "layout_alignBottom", R.attr.layout_alignBottom);
+
+ mAlignEndId = propertyMapper.mapResourceId(
+ "layout_alignEnd", R.attr.layout_alignEnd);
+
+ mAlignLeftId = propertyMapper.mapResourceId(
+ "layout_alignLeft", R.attr.layout_alignLeft);
+
+ mAlignParentBottomId = propertyMapper.mapBoolean(
+ "layout_alignParentBottom", R.attr.layout_alignParentBottom);
+
+ mAlignParentEndId = propertyMapper.mapBoolean(
+ "layout_alignParentEnd", R.attr.layout_alignParentEnd);
+
+ mAlignParentLeftId = propertyMapper.mapBoolean(
+ "layout_alignParentLeft", R.attr.layout_alignParentLeft);
+
+ mAlignParentRightId = propertyMapper.mapBoolean(
+ "layout_alignParentRight", R.attr.layout_alignParentRight);
+
+ mAlignParentStartId = propertyMapper.mapBoolean(
+ "layout_alignParentStart", R.attr.layout_alignParentStart);
+
+ mAlignParentTopId = propertyMapper.mapBoolean(
+ "layout_alignParentTop", R.attr.layout_alignParentTop);
+
+ mAlignRightId = propertyMapper.mapResourceId(
+ "layout_alignRight", R.attr.layout_alignRight);
+
+ mAlignStartId = propertyMapper.mapResourceId(
+ "layout_alignStart", R.attr.layout_alignStart);
+
+ mAlignTopId = propertyMapper.mapResourceId(
+ "layout_alignTop", R.attr.layout_alignTop);
+
+ mAlignWithParentIfMissingId = propertyMapper.mapBoolean(
+ "layout_alignWithParentIfMissing",
+ R.attr.layout_alignWithParentIfMissing);
+
+ mBelowId = propertyMapper.mapResourceId("layout_below", R.attr.layout_below);
+
+ mCenterHorizontalId = propertyMapper.mapBoolean(
+ "layout_centerHorizontal", R.attr.layout_centerHorizontal);
+
+ mCenterInParentId = propertyMapper.mapBoolean(
+ "layout_centerInParent", R.attr.layout_centerInParent);
+
+ mCenterVerticalId = propertyMapper.mapBoolean(
+ "layout_centerVertical", R.attr.layout_centerVertical);
+
+ mToEndOfId = propertyMapper.mapResourceId(
+ "layout_toEndOf", R.attr.layout_toEndOf);
+
+ mToLeftOfId = propertyMapper.mapResourceId(
+ "layout_toLeftOf", R.attr.layout_toLeftOf);
+
+ mToRightOfId = propertyMapper.mapResourceId(
+ "layout_toRightOf", R.attr.layout_toRightOf);
+
+ mToStartOfId = propertyMapper.mapResourceId(
+ "layout_toStartOf", R.attr.layout_toStartOf);
+ }
+
+ @Override
+ public void readProperties(
+ @NonNull LayoutParams node,
+ @NonNull PropertyReader propertyReader
+ ) {
+ if (!mPropertiesMapped) {
+ throw new UninitializedPropertyMapException();
+ }
+
+ final int[] rules = node.getRules();
+
+ propertyReader.readResourceId(mAboveId, rules[ABOVE]);
+ propertyReader.readResourceId(mAlignBaselineId, rules[ALIGN_BASELINE]);
+ propertyReader.readResourceId(mAlignBottomId, rules[ALIGN_BOTTOM]);
+ propertyReader.readResourceId(mAlignEndId, rules[ALIGN_END]);
+ propertyReader.readResourceId(mAlignLeftId, rules[ALIGN_LEFT]);
+ propertyReader.readBoolean(
+ mAlignParentBottomId, rules[ALIGN_PARENT_BOTTOM] == TRUE);
+ propertyReader.readBoolean(mAlignParentEndId, rules[ALIGN_PARENT_END] == TRUE);
+ propertyReader.readBoolean(mAlignParentLeftId, rules[ALIGN_PARENT_LEFT] == TRUE);
+ propertyReader.readBoolean(mAlignParentRightId, rules[ALIGN_PARENT_RIGHT] == TRUE);
+ propertyReader.readBoolean(mAlignParentStartId, rules[ALIGN_PARENT_START] == TRUE);
+ propertyReader.readBoolean(mAlignParentTopId, rules[ALIGN_PARENT_TOP] == TRUE);
+ propertyReader.readResourceId(mAlignRightId, rules[ALIGN_RIGHT]);
+ propertyReader.readResourceId(mAlignStartId, rules[ALIGN_START]);
+ propertyReader.readResourceId(mAlignTopId, rules[ALIGN_TOP]);
+ propertyReader.readBoolean(mAlignWithParentIfMissingId, node.alignWithParent);
+ propertyReader.readResourceId(mBelowId, rules[BELOW]);
+ propertyReader.readBoolean(mCenterHorizontalId, rules[CENTER_HORIZONTAL] == TRUE);
+ propertyReader.readBoolean(mCenterInParentId, rules[CENTER_IN_PARENT] == TRUE);
+ propertyReader.readBoolean(mCenterVerticalId, rules[CENTER_VERTICAL] == TRUE);
+ propertyReader.readResourceId(mToEndOfId, rules[END_OF]);
+ propertyReader.readResourceId(mToLeftOfId, rules[LEFT_OF]);
+ propertyReader.readResourceId(mToRightOfId, rules[RIGHT_OF]);
+ propertyReader.readResourceId(mToStartOfId, rules[START_OF]);
+ }
+ }
}
private static class DependencyGraph {