Source code
package android.support.v4.view;
import android.os.Build.VERSION;
import android.view.ViewGroup.MarginLayoutParams;
public class MarginLayoutParamsCompat {
static final MarginLayoutParamsCompatImpl IMPL;
interface MarginLayoutParamsCompatImpl {
int getLayoutDirection(MarginLayoutParams marginLayoutParams);
int getMarginEnd(MarginLayoutParams marginLayoutParams);
int getMarginStart(MarginLayoutParams marginLayoutParams);
boolean isMarginRelative(MarginLayoutParams marginLayoutParams);
void resolveLayoutDirection(MarginLayoutParams marginLayoutParams, int i);
void setLayoutDirection(MarginLayoutParams marginLayoutParams, int i);
void setMarginEnd(MarginLayoutParams marginLayoutParams, int i);
void setMarginStart(MarginLayoutParams marginLayoutParams, int i);
}
static class MarginLayoutParamsCompatImplBase implements MarginLayoutParamsCompatImpl {
MarginLayoutParamsCompatImplBase() {
}
public int getMarginStart(MarginLayoutParams lp) {
return lp.leftMargin;
}
public int getMarginEnd(MarginLayoutParams lp) {
return lp.rightMargin;
}
public void setMarginStart(MarginLayoutParams lp, int marginStart) {
lp.leftMargin = marginStart;
}
public void setMarginEnd(MarginLayoutParams lp, int marginEnd) {
lp.rightMargin = marginEnd;
}
public boolean isMarginRelative(MarginLayoutParams lp) {
return false;
}
public int getLayoutDirection(MarginLayoutParams lp) {
return 0;
}
public void setLayoutDirection(MarginLayoutParams lp, int layoutDirection) {
}
public void resolveLayoutDirection(MarginLayoutParams lp, int layoutDirection) {
}
}
static class MarginLayoutParamsCompatImplJbMr1 implements MarginLayoutParamsCompatImpl {
MarginLayoutParamsCompatImplJbMr1() {
}
public int getMarginStart(MarginLayoutParams lp) {
return MarginLayoutParamsCompatJellybeanMr1.getMarginStart(lp);
}
public int getMarginEnd(MarginLayoutParams lp) {
return MarginLayoutParamsCompatJellybeanMr1.getMarginEnd(lp);
}
public void setMarginStart(MarginLayoutParams lp, int marginStart) {
MarginLayoutParamsCompatJellybeanMr1.setMarginStart(lp, marginStart);
}
public void setMarginEnd(MarginLayoutParams lp, int marginEnd) {
MarginLayoutParamsCompatJellybeanMr1.setMarginEnd(lp, marginEnd);
}
public boolean isMarginRelative(MarginLayoutParams lp) {
return MarginLayoutParamsCompatJellybeanMr1.isMarginRelative(lp);
}
public int getLayoutDirection(MarginLayoutParams lp) {
return MarginLayoutParamsCompatJellybeanMr1.getLayoutDirection(lp);
}
public void setLayoutDirection(MarginLayoutParams lp, int layoutDirection) {
MarginLayoutParamsCompatJellybeanMr1.setLayoutDirection(lp, layoutDirection);
}
public void resolveLayoutDirection(MarginLayoutParams lp, int layoutDirection) {
MarginLayoutParamsCompatJellybeanMr1.resolveLayoutDirection(lp, layoutDirection);
}
}
static {
if (VERSION.SDK_INT >= 17) {
IMPL = new MarginLayoutParamsCompatImplJbMr1();
} else {
IMPL = new MarginLayoutParamsCompatImplBase();
}
}
public static int getMarginStart(MarginLayoutParams lp) {
return IMPL.getMarginStart(lp);
}
public static int getMarginEnd(MarginLayoutParams lp) {
return IMPL.getMarginEnd(lp);
}
public static void setMarginStart(MarginLayoutParams lp, int marginStart) {
IMPL.setMarginStart(lp, marginStart);
}
public static void setMarginEnd(MarginLayoutParams lp, int marginEnd) {
IMPL.setMarginEnd(lp, marginEnd);
}
public static boolean isMarginRelative(MarginLayoutParams lp) {
return IMPL.isMarginRelative(lp);
}
public static int getLayoutDirection(MarginLayoutParams lp) {
return IMPL.getLayoutDirection(lp);
}
public static void setLayoutDirection(MarginLayoutParams lp, int layoutDirection) {
IMPL.setLayoutDirection(lp, layoutDirection);
}
public static void resolveLayoutDirection(MarginLayoutParams lp, int layoutDirection) {
IMPL.resolveLayoutDirection(lp, layoutDirection);
}
}