package io.fabianterhorst.fastlayout.converters; import java.util.ArrayList; import java.util.List; import io.fabianterhorst.fastlayout.annotations.Converter; /** * Created by fabianterhorst on 18.05.16. */ @Converter("RelativeLayout") public class RelativeLayoutConverter extends LayoutConverter { private List<String> relativeParameters = new ArrayList<String>() {{ add("android:layout_above"); add("android:layout_alignBaseline"); add("android:layout_alignParentBottom"); add("android:layout_alignEnd"); add("android:layout_alignBottom"); add("android:layout_alignLeft"); add("android:layout_alignRight"); add("android:layout_alignStart"); add("android:layout_alignTop"); add("android:layout_below"); add("android:layout_centerHorizontal"); add("android:layout_centerInParent"); add("android:layout_centerVertical"); add("android:layout_toEndOf"); add("android:layout_toLeftOf"); add("android:layout_toRightOf"); add("android:layout_toStartOf"); add("android:layout_alignParentEnd"); add("android:layout_alignParentLeft"); add("android:layout_alignParentRight"); add("android:layout_alignParentStart"); add("android:layout_alignParentTop"); }}; @Override public LayoutAttribute onConvertLayoutAttribute(String attributeStartValue, String attributeValue, String attributeName, boolean isString) { if(relativeParameters.contains(attributeName)) { return new LayoutAttribute(LayoutAttribute.Type.PARAM, "addRule(" + "RelativeLayout." + stringToConstant(attributeToName(attributeName.replace("_to", "_").replace("layout_", ""))).toUpperCase() + (!attributeValue.equals("true") && !attributeValue.equals("false") ? ", " + attributeValue : ", " + "RelativeLayout." + attributeValue.toUpperCase()) + ")"); } return null; } }