Merge "Deals with android:rotation attribute in layoutlib" into mnc-ub-dev

am: 7efb74d54a

* commit '7efb74d54a22d0c693ebddf5438815b65bc67616':
  Deals with android:rotation attribute in layoutlib
This commit is contained in:
Jerome Gaillard
2016-01-20 11:46:37 +00:00
committed by android-build-merger
2 changed files with 163 additions and 0 deletions

View File

@@ -19,6 +19,8 @@ package android.view;
import com.android.layoutlib.bridge.impl.DelegateManager;
import com.android.tools.layoutlib.annotations.LayoutlibDelegate;
import android.graphics.Matrix;
/**
* Delegate implementing the native methods of {@link RenderNode}
* <p/>
@@ -36,6 +38,14 @@ public class RenderNode_Delegate {
private float mLift;
private float mRotation;
private float mPivotX;
private float mPivotY;
private boolean mPivotExplicitelySet;
private int mLeft;
private int mRight;
private int mTop;
private int mBottom;
@SuppressWarnings("UnusedDeclaration")
private String mName;
@@ -69,4 +79,144 @@ public class RenderNode_Delegate {
}
return 0f;
}
@LayoutlibDelegate
/*package*/ static boolean nSetRotation(long renderNode, float rotation) {
RenderNode_Delegate delegate = sManager.getDelegate(renderNode);
if (delegate != null && delegate.mRotation != rotation) {
delegate.mRotation = rotation;
return true;
}
return false;
}
@LayoutlibDelegate
/*package*/ static float nGetRotation(long renderNode) {
RenderNode_Delegate delegate = sManager.getDelegate(renderNode);
if (delegate != null) {
return delegate.mRotation;
}
return 0f;
}
@LayoutlibDelegate
/*package*/ static void getMatrix(RenderNode renderNode, Matrix outMatrix) {
outMatrix.reset();
if (renderNode != null) {
outMatrix.preRotate(renderNode.getRotation(), renderNode.getPivotX(),
renderNode.getPivotY());
}
}
@LayoutlibDelegate
/*package*/ static boolean nSetLeft(long renderNode, int left) {
RenderNode_Delegate delegate = sManager.getDelegate(renderNode);
if (delegate != null && delegate.mLeft != left) {
delegate.mLeft = left;
return true;
}
return false;
}
@LayoutlibDelegate
/*package*/ static boolean nSetTop(long renderNode, int top) {
RenderNode_Delegate delegate = sManager.getDelegate(renderNode);
if (delegate != null && delegate.mTop != top) {
delegate.mTop = top;
return true;
}
return false;
}
@LayoutlibDelegate
/*package*/ static boolean nSetRight(long renderNode, int right) {
RenderNode_Delegate delegate = sManager.getDelegate(renderNode);
if (delegate != null && delegate.mRight != right) {
delegate.mRight = right;
return true;
}
return false;
}
@LayoutlibDelegate
/*package*/ static boolean nSetBottom(long renderNode, int bottom) {
RenderNode_Delegate delegate = sManager.getDelegate(renderNode);
if (delegate != null && delegate.mBottom != bottom) {
delegate.mBottom = bottom;
return true;
}
return false;
}
@LayoutlibDelegate
/*package*/ static boolean nSetLeftTopRightBottom(long renderNode, int left, int top, int right,
int bottom) {
RenderNode_Delegate delegate = sManager.getDelegate(renderNode);
if (delegate != null && (delegate.mLeft != left || delegate.mTop != top || delegate
.mRight != right || delegate.mBottom != bottom)) {
delegate.mLeft = left;
delegate.mTop = top;
delegate.mRight = right;
delegate.mBottom = bottom;
return true;
}
return false;
}
@LayoutlibDelegate
/*package*/ static boolean nIsPivotExplicitlySet(long renderNode) {
RenderNode_Delegate delegate = sManager.getDelegate(renderNode);
if (delegate != null) {
return delegate.mPivotExplicitelySet;
}
return false;
}
@LayoutlibDelegate
/*package*/ static boolean nSetPivotX(long renderNode, float pivotX) {
RenderNode_Delegate delegate = sManager.getDelegate(renderNode);
if (delegate != null && delegate.mPivotX != pivotX) {
delegate.mPivotX = pivotX;
delegate.mPivotExplicitelySet = true;
return true;
}
return false;
}
@LayoutlibDelegate
/*package*/ static float nGetPivotX(long renderNode) {
RenderNode_Delegate delegate = sManager.getDelegate(renderNode);
if (delegate != null) {
if (delegate.mPivotExplicitelySet) {
return delegate.mPivotX;
} else {
return (delegate.mRight - delegate.mLeft) / 2.0f;
}
}
return 0f;
}
@LayoutlibDelegate
/*package*/ static boolean nSetPivotY(long renderNode, float pivotY) {
RenderNode_Delegate delegate = sManager.getDelegate(renderNode);
if (delegate != null && delegate.mPivotY != pivotY) {
delegate.mPivotY = pivotY;
delegate.mPivotExplicitelySet = true;
return true;
}
return false;
}
@LayoutlibDelegate
/*package*/ static float nGetPivotY(long renderNode) {
RenderNode_Delegate delegate = sManager.getDelegate(renderNode);
if (delegate != null) {
if (delegate.mPivotExplicitelySet) {
return delegate.mPivotY;
} else {
return (delegate.mBottom - delegate.mTop) / 2.0f;
}
}
return 0f;
}
}

View File

@@ -192,6 +192,19 @@ public final class CreateInfo implements ICreateInfo {
"android.view.RenderNode#nDestroyRenderNode",
"android.view.RenderNode#nSetElevation",
"android.view.RenderNode#nGetElevation",
"android.view.RenderNode#nSetRotation",
"android.view.RenderNode#nGetRotation",
"android.view.RenderNode#getMatrix",
"android.view.RenderNode#nSetLeft",
"android.view.RenderNode#nSetTop",
"android.view.RenderNode#nSetRight",
"android.view.RenderNode#nSetBottom",
"android.view.RenderNode#nSetLeftTopRightBottom",
"android.view.RenderNode#nSetPivotX",
"android.view.RenderNode#nGetPivotX",
"android.view.RenderNode#nSetPivotY",
"android.view.RenderNode#nGetPivotY",
"android.view.RenderNode#nIsPivotExplicitlySet",
"android.view.ViewGroup#drawChild",
"android.widget.SimpleMonthView#getTitle",
"android.widget.SimpleMonthView#getDayOfWeekLabel",