Loading core/java/com/android/internal/widget/remotecompose/core/CoreDocument.java +44 −23 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import android.annotation.Nullable; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.widget.remotecompose.core.operations.BitmapData; import com.android.internal.widget.remotecompose.core.operations.ComponentValue; import com.android.internal.widget.remotecompose.core.operations.DataListFloat; import com.android.internal.widget.remotecompose.core.operations.DrawContent; import com.android.internal.widget.remotecompose.core.operations.FloatConstant; import com.android.internal.widget.remotecompose.core.operations.FloatExpression; Loading @@ -31,7 +32,6 @@ import com.android.internal.widget.remotecompose.core.operations.RootContentBeha import com.android.internal.widget.remotecompose.core.operations.ShaderData; import com.android.internal.widget.remotecompose.core.operations.TextData; import com.android.internal.widget.remotecompose.core.operations.Theme; import com.android.internal.widget.remotecompose.core.operations.Utils; import com.android.internal.widget.remotecompose.core.operations.layout.CanvasOperations; import com.android.internal.widget.remotecompose.core.operations.layout.Component; import com.android.internal.widget.remotecompose.core.operations.layout.Container; Loading Loading @@ -69,7 +69,7 @@ public class CoreDocument implements Serializable { public static final int PATCH_VERSION = 0; // Internal version level public static final int DOCUMENT_API_LEVEL = 5; public static final int DOCUMENT_API_LEVEL = 6; // We also keep a more fine-grained BUILD number, exposed as // ID_API_LEVEL = DOCUMENT_API_LEVEL + BUILD Loading Loading @@ -113,6 +113,7 @@ public class CoreDocument implements Serializable { private IntMap<Object> mDocProperties; boolean mFirstPaint = true; private boolean mIsUpdateDoc = false; /** Returns a version number that is monotonically increasing. */ public static int getDocumentApiLevel() { Loading Loading @@ -460,7 +461,8 @@ public class CoreDocument implements Serializable { HashMap<Integer, FloatConstant> fltData = new HashMap<Integer, FloatConstant>(); HashMap<Integer, IntegerConstant> intData = new HashMap<Integer, IntegerConstant>(); HashMap<Integer, LongConstant> longData = new HashMap<Integer, LongConstant>(); recursiveTreverse( HashMap<Integer, DataListFloat> floatListData = new HashMap<Integer, DataListFloat>(); recursiveTraverse( mOperations, (op) -> { if (op instanceof TextData) { Loading @@ -478,10 +480,13 @@ public class CoreDocument implements Serializable { } else if (op instanceof LongConstant) { LongConstant d = (LongConstant) op; longData.put(d.mId, d); } else if (op instanceof DataListFloat) { DataListFloat d = (DataListFloat) op; floatListData.put(d.mId, d); } }); recursiveTreverse( recursiveTraverse( delta.mOperations, (op) -> { if (op instanceof TextData) { Loading @@ -489,7 +494,6 @@ public class CoreDocument implements Serializable { TextData txtInDoc = txtData.get(t.mTextId); if (txtInDoc != null) { txtInDoc.update(t); Utils.log("update" + t.mText); txtInDoc.markDirty(); } } else if (op instanceof BitmapData) { Loading Loading @@ -520,6 +524,13 @@ public class CoreDocument implements Serializable { longInDoc.update(lc); longInDoc.markDirty(); } } else if (op instanceof DataListFloat) { DataListFloat lc = (DataListFloat) op; DataListFloat longInDoc = floatListData.get(lc.mId); if (longInDoc != null) { longInDoc.update(lc); longInDoc.markDirty(); } } }); } Loading @@ -528,10 +539,10 @@ public class CoreDocument implements Serializable { void visit(Operation op); } private void recursiveTreverse(ArrayList<Operation> mOperations, Visitor visitor) { private void recursiveTraverse(ArrayList<Operation> mOperations, Visitor visitor) { for (Operation op : mOperations) { if (op instanceof Container) { recursiveTreverse(((Component) op).mList, visitor); recursiveTraverse(((Container) op).getList(), visitor); } visitor.visit(op); } Loading Loading @@ -1216,29 +1227,23 @@ public class CoreDocument implements Serializable { * @return array of named variables or null */ public String[] getNamedVariables(int type) { int count = 0; for (Operation op : mOperations) { if (op instanceof NamedVariable) { NamedVariable n = (NamedVariable) op; if (n.mVarType == type) { count++; } } } if (count == 0) { return null; ArrayList<String> ret = new ArrayList<>(); getNamedVars(type, mOperations, ret); return ret.toArray(new String[0]); } String[] ret = new String[count]; int i = 0; for (Operation op : mOperations) { private void getNamedVars(int type, ArrayList<Operation> ops, ArrayList<String> list) { for (Operation op : ops) { if (op instanceof NamedVariable) { NamedVariable n = (NamedVariable) op; if (n.mVarType == type) { ret[i++] = n.mVarName; list.add(n.mVarName); } } if (op instanceof Container) { getNamedVars(type, ((Container) op).getList(), list); } } return ret; } ////////////////////////////////////////////////////////////////////////// Loading Loading @@ -1577,4 +1582,20 @@ public class CoreDocument implements Serializable { } } } /** * Set if this is an update doc * * @param isUpdateDoc */ public void setUpdateDoc(boolean isUpdateDoc) { mIsUpdateDoc = isUpdateDoc; } /** * @return if this is an update doc */ public boolean isUpdateDoc() { return mIsUpdateDoc; } } core/java/com/android/internal/widget/remotecompose/core/Operations.java +6 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import com.android.internal.widget.remotecompose.core.operations.BitmapFontData; import com.android.internal.widget.remotecompose.core.operations.ClickArea; import com.android.internal.widget.remotecompose.core.operations.ClipPath; import com.android.internal.widget.remotecompose.core.operations.ClipRect; import com.android.internal.widget.remotecompose.core.operations.ColorAttribute; import com.android.internal.widget.remotecompose.core.operations.ColorConstant; import com.android.internal.widget.remotecompose.core.operations.ColorExpression; import com.android.internal.widget.remotecompose.core.operations.ComponentValue; Loading Loading @@ -126,6 +127,7 @@ import com.android.internal.widget.remotecompose.core.operations.layout.modifier import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.PaddingModifierOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.RippleModifierOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.RoundedClipRectModifierOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.RunActionOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ScrollModifierOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ValueFloatChangeActionOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ValueFloatExpressionChangeActionOperation; Loading Loading @@ -233,6 +235,7 @@ public class Operations { public static final int HAPTIC_FEEDBACK = 177; public static final int CONDITIONAL_OPERATIONS = 178; public static final int DEBUG_MESSAGE = 179; public static final int ATTRIBUTE_COLOR = 180; ///////////////////////////////////////// ====================== Loading Loading @@ -287,6 +290,7 @@ public class Operations { public static final int HOST_ACTION = 209; public static final int HOST_METADATA_ACTION = 216; public static final int HOST_NAMED_ACTION = 210; public static final int RUN_ACTION = 236; public static final int VALUE_INTEGER_CHANGE_ACTION = 212; public static final int VALUE_STRING_CHANGE_ACTION = 213; Loading Loading @@ -393,6 +397,7 @@ public class Operations { map.put(CONTAINER_END, ContainerEnd::read); map.put(RUN_ACTION, RunActionOperation::read); map.put(HOST_ACTION, HostActionOperation::read); map.put(HOST_METADATA_ACTION, HostActionMetadataOperation::read); map.put(HOST_NAMED_ACTION, HostNamedActionOperation::read); Loading Loading @@ -446,6 +451,7 @@ public class Operations { map.put(HAPTIC_FEEDBACK, HapticFeedback::read); map.put(CONDITIONAL_OPERATIONS, ConditionalOperations::read); map.put(DEBUG_MESSAGE, DebugMessage::read); map.put(ATTRIBUTE_COLOR, ColorAttribute::read); // map.put(ACCESSIBILITY_CUSTOM_ACTION, CoreSemantics::read); } Loading core/java/com/android/internal/widget/remotecompose/core/PaintContext.java +5 −22 Original line number Diff line number Diff line Loading @@ -20,6 +20,8 @@ import android.annotation.Nullable; import com.android.internal.widget.remotecompose.core.operations.paint.PaintBundle; import java.util.HashMap; /** Specify an abstract paint context used by RemoteCompose commands to draw */ public abstract class PaintContext { public static final int TEXT_MEASURE_MONOSPACE_WIDTH = 0x01; Loading Loading @@ -481,28 +483,9 @@ public abstract class PaintContext { /** * Starts a graphics layer * * @param scaleX * @param scaleY * @param rotationX * @param rotationY * @param rotationZ * @param shadowElevation * @param transformOriginX * @param transformOriginY * @param alpha * @param renderEffectId */ public abstract void setGraphicsLayer( float scaleX, float scaleY, float rotationX, float rotationY, float rotationZ, float shadowElevation, float transformOriginX, float transformOriginY, float alpha, int renderEffectId); * @param attributes */ public abstract void setGraphicsLayer(@NonNull HashMap<Integer, Object> attributes); /** Ends a graphics layer */ public abstract void endGraphicsLayer(); Loading core/java/com/android/internal/widget/remotecompose/core/RemoteComposeBuffer.java +25 −49 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import com.android.internal.widget.remotecompose.core.operations.BitmapFontData; import com.android.internal.widget.remotecompose.core.operations.ClickArea; import com.android.internal.widget.remotecompose.core.operations.ClipPath; import com.android.internal.widget.remotecompose.core.operations.ClipRect; import com.android.internal.widget.remotecompose.core.operations.ColorAttribute; import com.android.internal.widget.remotecompose.core.operations.ColorConstant; import com.android.internal.widget.remotecompose.core.operations.ColorExpression; import com.android.internal.widget.remotecompose.core.operations.ComponentValue; Loading Loading @@ -116,6 +117,7 @@ import com.android.internal.widget.remotecompose.core.operations.layout.modifier import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.PaddingModifierOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.RippleModifierOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.RoundedClipRectModifierOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.RunActionOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ScrollModifierOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ZIndexModifierOperation; import com.android.internal.widget.remotecompose.core.operations.paint.PaintBundle; Loading @@ -132,6 +134,7 @@ import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; /** Provides an abstract buffer to encode/decode RemoteCompose operations */ public class RemoteComposeBuffer { Loading Loading @@ -2008,55 +2011,10 @@ public class RemoteComposeBuffer { /** * Add a graphics layer * * @param scaleX scale x * @param scaleY scale y * @param rotationX rotation in X * @param rotationY rotation in Y * @param rotationZ rotation in Z * @param shadowElevation shadow elevation * @param transformOriginX transform origin x * @param transformOriginY transform origin y * @param alpha alpha value * @param cameraDistance camera distance * @param blendMode blend mode * @param spotShadowColorId spot shadow color * @param ambientShadowColorId ambient shadow color * @param colorFilterId id of color filter * @param renderEffectId id of render effect */ public void addModifierGraphicsLayer( float scaleX, float scaleY, float rotationX, float rotationY, float rotationZ, float shadowElevation, float transformOriginX, float transformOriginY, float alpha, float cameraDistance, int blendMode, int spotShadowColorId, int ambientShadowColorId, int colorFilterId, int renderEffectId) { GraphicsLayerModifierOperation.apply( mBuffer, scaleX, scaleY, rotationX, rotationY, rotationZ, shadowElevation, transformOriginX, transformOriginY, alpha, cameraDistance, blendMode, spotShadowColorId, ambientShadowColorId, colorFilterId, renderEffectId); * @param attributes */ public void addModifierGraphicsLayer(HashMap<Integer, Object> attributes) { GraphicsLayerModifierOperation.apply(mBuffer, attributes); } /** Loading Loading @@ -2248,6 +2206,11 @@ public class RemoteComposeBuffer { CanvasOperations.apply(mBuffer); } /** Add container hosting actions */ public void addRunActionsStart() { RunActionOperation.apply(mBuffer); } /** * Add a component width value * Loading Loading @@ -2516,4 +2479,17 @@ public class RemoteComposeBuffer { public void addDebugMessage(int textId, float value, int flags) { DebugMessage.apply(mBuffer, textId, value, flags); } /** * Return a color attribute value on the given color * * @param baseColor * @param type type of attribute * @return */ public float getColorAttribute(int baseColor, short type) { int id = mRemoteComposeState.nextId(); ColorAttribute.apply(mBuffer, id, baseColor, type); return Utils.asNan(id); } } core/java/com/android/internal/widget/remotecompose/core/RemoteContext.java +5 −0 Original line number Diff line number Diff line Loading @@ -665,6 +665,8 @@ public abstract class RemoteContext { public static final int ID_EPOCH_SECOND = 32; public static final int ID_FONT_SIZE = 33; public static final float FLOAT_DENSITY = Utils.asNan(ID_DENSITY); /** CONTINUOUS_SEC is seconds from midnight looping every hour 0-3600 */ Loading Loading @@ -750,6 +752,9 @@ public abstract class RemoteContext { /** When was this player built */ public static final float FLOAT_API_LEVEL = Utils.asNan(ID_API_LEVEL); /** The default font size */ public static final float FLOAT_FONT_SIZE = Utils.asNan(ID_FONT_SIZE); /** The time in seconds since the epoch. */ public static final long INT_EPOCH_SECOND = ((long) ID_EPOCH_SECOND) + 0x100000000L; Loading Loading
core/java/com/android/internal/widget/remotecompose/core/CoreDocument.java +44 −23 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import android.annotation.Nullable; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.widget.remotecompose.core.operations.BitmapData; import com.android.internal.widget.remotecompose.core.operations.ComponentValue; import com.android.internal.widget.remotecompose.core.operations.DataListFloat; import com.android.internal.widget.remotecompose.core.operations.DrawContent; import com.android.internal.widget.remotecompose.core.operations.FloatConstant; import com.android.internal.widget.remotecompose.core.operations.FloatExpression; Loading @@ -31,7 +32,6 @@ import com.android.internal.widget.remotecompose.core.operations.RootContentBeha import com.android.internal.widget.remotecompose.core.operations.ShaderData; import com.android.internal.widget.remotecompose.core.operations.TextData; import com.android.internal.widget.remotecompose.core.operations.Theme; import com.android.internal.widget.remotecompose.core.operations.Utils; import com.android.internal.widget.remotecompose.core.operations.layout.CanvasOperations; import com.android.internal.widget.remotecompose.core.operations.layout.Component; import com.android.internal.widget.remotecompose.core.operations.layout.Container; Loading Loading @@ -69,7 +69,7 @@ public class CoreDocument implements Serializable { public static final int PATCH_VERSION = 0; // Internal version level public static final int DOCUMENT_API_LEVEL = 5; public static final int DOCUMENT_API_LEVEL = 6; // We also keep a more fine-grained BUILD number, exposed as // ID_API_LEVEL = DOCUMENT_API_LEVEL + BUILD Loading Loading @@ -113,6 +113,7 @@ public class CoreDocument implements Serializable { private IntMap<Object> mDocProperties; boolean mFirstPaint = true; private boolean mIsUpdateDoc = false; /** Returns a version number that is monotonically increasing. */ public static int getDocumentApiLevel() { Loading Loading @@ -460,7 +461,8 @@ public class CoreDocument implements Serializable { HashMap<Integer, FloatConstant> fltData = new HashMap<Integer, FloatConstant>(); HashMap<Integer, IntegerConstant> intData = new HashMap<Integer, IntegerConstant>(); HashMap<Integer, LongConstant> longData = new HashMap<Integer, LongConstant>(); recursiveTreverse( HashMap<Integer, DataListFloat> floatListData = new HashMap<Integer, DataListFloat>(); recursiveTraverse( mOperations, (op) -> { if (op instanceof TextData) { Loading @@ -478,10 +480,13 @@ public class CoreDocument implements Serializable { } else if (op instanceof LongConstant) { LongConstant d = (LongConstant) op; longData.put(d.mId, d); } else if (op instanceof DataListFloat) { DataListFloat d = (DataListFloat) op; floatListData.put(d.mId, d); } }); recursiveTreverse( recursiveTraverse( delta.mOperations, (op) -> { if (op instanceof TextData) { Loading @@ -489,7 +494,6 @@ public class CoreDocument implements Serializable { TextData txtInDoc = txtData.get(t.mTextId); if (txtInDoc != null) { txtInDoc.update(t); Utils.log("update" + t.mText); txtInDoc.markDirty(); } } else if (op instanceof BitmapData) { Loading Loading @@ -520,6 +524,13 @@ public class CoreDocument implements Serializable { longInDoc.update(lc); longInDoc.markDirty(); } } else if (op instanceof DataListFloat) { DataListFloat lc = (DataListFloat) op; DataListFloat longInDoc = floatListData.get(lc.mId); if (longInDoc != null) { longInDoc.update(lc); longInDoc.markDirty(); } } }); } Loading @@ -528,10 +539,10 @@ public class CoreDocument implements Serializable { void visit(Operation op); } private void recursiveTreverse(ArrayList<Operation> mOperations, Visitor visitor) { private void recursiveTraverse(ArrayList<Operation> mOperations, Visitor visitor) { for (Operation op : mOperations) { if (op instanceof Container) { recursiveTreverse(((Component) op).mList, visitor); recursiveTraverse(((Container) op).getList(), visitor); } visitor.visit(op); } Loading Loading @@ -1216,29 +1227,23 @@ public class CoreDocument implements Serializable { * @return array of named variables or null */ public String[] getNamedVariables(int type) { int count = 0; for (Operation op : mOperations) { if (op instanceof NamedVariable) { NamedVariable n = (NamedVariable) op; if (n.mVarType == type) { count++; } } } if (count == 0) { return null; ArrayList<String> ret = new ArrayList<>(); getNamedVars(type, mOperations, ret); return ret.toArray(new String[0]); } String[] ret = new String[count]; int i = 0; for (Operation op : mOperations) { private void getNamedVars(int type, ArrayList<Operation> ops, ArrayList<String> list) { for (Operation op : ops) { if (op instanceof NamedVariable) { NamedVariable n = (NamedVariable) op; if (n.mVarType == type) { ret[i++] = n.mVarName; list.add(n.mVarName); } } if (op instanceof Container) { getNamedVars(type, ((Container) op).getList(), list); } } return ret; } ////////////////////////////////////////////////////////////////////////// Loading Loading @@ -1577,4 +1582,20 @@ public class CoreDocument implements Serializable { } } } /** * Set if this is an update doc * * @param isUpdateDoc */ public void setUpdateDoc(boolean isUpdateDoc) { mIsUpdateDoc = isUpdateDoc; } /** * @return if this is an update doc */ public boolean isUpdateDoc() { return mIsUpdateDoc; } }
core/java/com/android/internal/widget/remotecompose/core/Operations.java +6 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import com.android.internal.widget.remotecompose.core.operations.BitmapFontData; import com.android.internal.widget.remotecompose.core.operations.ClickArea; import com.android.internal.widget.remotecompose.core.operations.ClipPath; import com.android.internal.widget.remotecompose.core.operations.ClipRect; import com.android.internal.widget.remotecompose.core.operations.ColorAttribute; import com.android.internal.widget.remotecompose.core.operations.ColorConstant; import com.android.internal.widget.remotecompose.core.operations.ColorExpression; import com.android.internal.widget.remotecompose.core.operations.ComponentValue; Loading Loading @@ -126,6 +127,7 @@ import com.android.internal.widget.remotecompose.core.operations.layout.modifier import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.PaddingModifierOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.RippleModifierOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.RoundedClipRectModifierOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.RunActionOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ScrollModifierOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ValueFloatChangeActionOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ValueFloatExpressionChangeActionOperation; Loading Loading @@ -233,6 +235,7 @@ public class Operations { public static final int HAPTIC_FEEDBACK = 177; public static final int CONDITIONAL_OPERATIONS = 178; public static final int DEBUG_MESSAGE = 179; public static final int ATTRIBUTE_COLOR = 180; ///////////////////////////////////////// ====================== Loading Loading @@ -287,6 +290,7 @@ public class Operations { public static final int HOST_ACTION = 209; public static final int HOST_METADATA_ACTION = 216; public static final int HOST_NAMED_ACTION = 210; public static final int RUN_ACTION = 236; public static final int VALUE_INTEGER_CHANGE_ACTION = 212; public static final int VALUE_STRING_CHANGE_ACTION = 213; Loading Loading @@ -393,6 +397,7 @@ public class Operations { map.put(CONTAINER_END, ContainerEnd::read); map.put(RUN_ACTION, RunActionOperation::read); map.put(HOST_ACTION, HostActionOperation::read); map.put(HOST_METADATA_ACTION, HostActionMetadataOperation::read); map.put(HOST_NAMED_ACTION, HostNamedActionOperation::read); Loading Loading @@ -446,6 +451,7 @@ public class Operations { map.put(HAPTIC_FEEDBACK, HapticFeedback::read); map.put(CONDITIONAL_OPERATIONS, ConditionalOperations::read); map.put(DEBUG_MESSAGE, DebugMessage::read); map.put(ATTRIBUTE_COLOR, ColorAttribute::read); // map.put(ACCESSIBILITY_CUSTOM_ACTION, CoreSemantics::read); } Loading
core/java/com/android/internal/widget/remotecompose/core/PaintContext.java +5 −22 Original line number Diff line number Diff line Loading @@ -20,6 +20,8 @@ import android.annotation.Nullable; import com.android.internal.widget.remotecompose.core.operations.paint.PaintBundle; import java.util.HashMap; /** Specify an abstract paint context used by RemoteCompose commands to draw */ public abstract class PaintContext { public static final int TEXT_MEASURE_MONOSPACE_WIDTH = 0x01; Loading Loading @@ -481,28 +483,9 @@ public abstract class PaintContext { /** * Starts a graphics layer * * @param scaleX * @param scaleY * @param rotationX * @param rotationY * @param rotationZ * @param shadowElevation * @param transformOriginX * @param transformOriginY * @param alpha * @param renderEffectId */ public abstract void setGraphicsLayer( float scaleX, float scaleY, float rotationX, float rotationY, float rotationZ, float shadowElevation, float transformOriginX, float transformOriginY, float alpha, int renderEffectId); * @param attributes */ public abstract void setGraphicsLayer(@NonNull HashMap<Integer, Object> attributes); /** Ends a graphics layer */ public abstract void endGraphicsLayer(); Loading
core/java/com/android/internal/widget/remotecompose/core/RemoteComposeBuffer.java +25 −49 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import com.android.internal.widget.remotecompose.core.operations.BitmapFontData; import com.android.internal.widget.remotecompose.core.operations.ClickArea; import com.android.internal.widget.remotecompose.core.operations.ClipPath; import com.android.internal.widget.remotecompose.core.operations.ClipRect; import com.android.internal.widget.remotecompose.core.operations.ColorAttribute; import com.android.internal.widget.remotecompose.core.operations.ColorConstant; import com.android.internal.widget.remotecompose.core.operations.ColorExpression; import com.android.internal.widget.remotecompose.core.operations.ComponentValue; Loading Loading @@ -116,6 +117,7 @@ import com.android.internal.widget.remotecompose.core.operations.layout.modifier import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.PaddingModifierOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.RippleModifierOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.RoundedClipRectModifierOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.RunActionOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ScrollModifierOperation; import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ZIndexModifierOperation; import com.android.internal.widget.remotecompose.core.operations.paint.PaintBundle; Loading @@ -132,6 +134,7 @@ import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; /** Provides an abstract buffer to encode/decode RemoteCompose operations */ public class RemoteComposeBuffer { Loading Loading @@ -2008,55 +2011,10 @@ public class RemoteComposeBuffer { /** * Add a graphics layer * * @param scaleX scale x * @param scaleY scale y * @param rotationX rotation in X * @param rotationY rotation in Y * @param rotationZ rotation in Z * @param shadowElevation shadow elevation * @param transformOriginX transform origin x * @param transformOriginY transform origin y * @param alpha alpha value * @param cameraDistance camera distance * @param blendMode blend mode * @param spotShadowColorId spot shadow color * @param ambientShadowColorId ambient shadow color * @param colorFilterId id of color filter * @param renderEffectId id of render effect */ public void addModifierGraphicsLayer( float scaleX, float scaleY, float rotationX, float rotationY, float rotationZ, float shadowElevation, float transformOriginX, float transformOriginY, float alpha, float cameraDistance, int blendMode, int spotShadowColorId, int ambientShadowColorId, int colorFilterId, int renderEffectId) { GraphicsLayerModifierOperation.apply( mBuffer, scaleX, scaleY, rotationX, rotationY, rotationZ, shadowElevation, transformOriginX, transformOriginY, alpha, cameraDistance, blendMode, spotShadowColorId, ambientShadowColorId, colorFilterId, renderEffectId); * @param attributes */ public void addModifierGraphicsLayer(HashMap<Integer, Object> attributes) { GraphicsLayerModifierOperation.apply(mBuffer, attributes); } /** Loading Loading @@ -2248,6 +2206,11 @@ public class RemoteComposeBuffer { CanvasOperations.apply(mBuffer); } /** Add container hosting actions */ public void addRunActionsStart() { RunActionOperation.apply(mBuffer); } /** * Add a component width value * Loading Loading @@ -2516,4 +2479,17 @@ public class RemoteComposeBuffer { public void addDebugMessage(int textId, float value, int flags) { DebugMessage.apply(mBuffer, textId, value, flags); } /** * Return a color attribute value on the given color * * @param baseColor * @param type type of attribute * @return */ public float getColorAttribute(int baseColor, short type) { int id = mRemoteComposeState.nextId(); ColorAttribute.apply(mBuffer, id, baseColor, type); return Utils.asNan(id); } }
core/java/com/android/internal/widget/remotecompose/core/RemoteContext.java +5 −0 Original line number Diff line number Diff line Loading @@ -665,6 +665,8 @@ public abstract class RemoteContext { public static final int ID_EPOCH_SECOND = 32; public static final int ID_FONT_SIZE = 33; public static final float FLOAT_DENSITY = Utils.asNan(ID_DENSITY); /** CONTINUOUS_SEC is seconds from midnight looping every hour 0-3600 */ Loading Loading @@ -750,6 +752,9 @@ public abstract class RemoteContext { /** When was this player built */ public static final float FLOAT_API_LEVEL = Utils.asNan(ID_API_LEVEL); /** The default font size */ public static final float FLOAT_FONT_SIZE = Utils.asNan(ID_FONT_SIZE); /** The time in seconds since the epoch. */ public static final long INT_EPOCH_SECOND = ((long) ID_EPOCH_SECOND) + 0x100000000L; Loading