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:
@@ -19,6 +19,8 @@ package android.view;
|
|||||||
import com.android.layoutlib.bridge.impl.DelegateManager;
|
import com.android.layoutlib.bridge.impl.DelegateManager;
|
||||||
import com.android.tools.layoutlib.annotations.LayoutlibDelegate;
|
import com.android.tools.layoutlib.annotations.LayoutlibDelegate;
|
||||||
|
|
||||||
|
import android.graphics.Matrix;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delegate implementing the native methods of {@link RenderNode}
|
* Delegate implementing the native methods of {@link RenderNode}
|
||||||
* <p/>
|
* <p/>
|
||||||
@@ -36,6 +38,14 @@ public class RenderNode_Delegate {
|
|||||||
|
|
||||||
|
|
||||||
private float mLift;
|
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")
|
@SuppressWarnings("UnusedDeclaration")
|
||||||
private String mName;
|
private String mName;
|
||||||
|
|
||||||
@@ -69,4 +79,144 @@ public class RenderNode_Delegate {
|
|||||||
}
|
}
|
||||||
return 0f;
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -192,6 +192,19 @@ public final class CreateInfo implements ICreateInfo {
|
|||||||
"android.view.RenderNode#nDestroyRenderNode",
|
"android.view.RenderNode#nDestroyRenderNode",
|
||||||
"android.view.RenderNode#nSetElevation",
|
"android.view.RenderNode#nSetElevation",
|
||||||
"android.view.RenderNode#nGetElevation",
|
"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.view.ViewGroup#drawChild",
|
||||||
"android.widget.SimpleMonthView#getTitle",
|
"android.widget.SimpleMonthView#getTitle",
|
||||||
"android.widget.SimpleMonthView#getDayOfWeekLabel",
|
"android.widget.SimpleMonthView#getDayOfWeekLabel",
|
||||||
|
|||||||
Reference in New Issue
Block a user