Loading core/java/com/android/internal/widget/remotecompose/core/CoreDocument.java +32 −4 Original line number Diff line number Diff line Loading @@ -73,7 +73,7 @@ public class CoreDocument implements Serializable { // We also keep a more fine-grained BUILD number, exposed as // ID_API_LEVEL = DOCUMENT_API_LEVEL + BUILD static final float BUILD = 0.6f; static final float BUILD = 0.7f; private static final boolean UPDATE_VARIABLES_BEFORE_LAYOUT = false; Loading Loading @@ -842,18 +842,25 @@ public class CoreDocument implements Serializable { @NonNull private HashMap<Integer, Component> mComponentMap = new HashMap<Integer, Component>(); /** * Register all the operations recursively * * @param context * @param list */ private void registerVariables( @NonNull RemoteContext context, @NonNull ArrayList<Operation> list) { for (Operation op : list) { if (op instanceof VariableSupport) { ((VariableSupport) op).updateVariables(context); ((VariableSupport) op).registerListening(context); } if (op instanceof Component) { mComponentMap.put(((Component) op).getComponentId(), (Component) op); registerVariables(context, ((Component) op).getList()); ((Component) op).registerVariables(context); } if (op instanceof Container) { registerVariables(context, ((Container) op).getList()); } if (op instanceof ComponentValue) { ComponentValue v = (ComponentValue) op; Component component = mComponentMap.get(v.getComponentId()); Loading @@ -866,14 +873,34 @@ public class CoreDocument implements Serializable { if (op instanceof ComponentModifiers) { for (ModifierOperation modifier : ((ComponentModifiers) op).getList()) { if (modifier instanceof VariableSupport) { ((VariableSupport) modifier).updateVariables(context); ((VariableSupport) modifier).registerListening(context); } } } } } /** * Apply the operations recursively, for the original initialization pass with mode == DATA * * @param context * @param list */ private void applyOperations( @NonNull RemoteContext context, @NonNull ArrayList<Operation> list) { for (Operation op : list) { if (op instanceof VariableSupport) { ((VariableSupport) op).updateVariables(context); } if (op instanceof Component) { // for componentvalues... ((Component) op).updateVariables(context); } op.markNotDirty(); op.apply(context); context.incrementOpCount(); if (op instanceof Container) { applyOperations(context, ((Container) op).getList()); } } } Loading @@ -893,6 +920,7 @@ public class CoreDocument implements Serializable { mTimeVariables.updateTime(context); registerVariables(context, mOperations); applyOperations(context, mOperations); context.mMode = RemoteContext.ContextMode.UNSET; if (UPDATE_VARIABLES_BEFORE_LAYOUT) { Loading core/java/com/android/internal/widget/remotecompose/core/operations/FloatExpression.java +0 −1 Original line number Diff line number Diff line Loading @@ -149,7 +149,6 @@ public class FloatExpression extends Operation implements VariableSupport, Seria @Override public void apply(@NonNull RemoteContext context) { updateVariables(context); float t = context.getAnimationTime(); if (Float.isNaN(mLastChange)) { mLastChange = t; Loading core/java/com/android/internal/widget/remotecompose/core/operations/ParticlesCreate.java +14 −8 Original line number Diff line number Diff line Loading @@ -23,6 +23,8 @@ import android.annotation.NonNull; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintContext; import com.android.internal.widget.remotecompose.core.PaintOperation; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.VariableSupport; import com.android.internal.widget.remotecompose.core.WireBuffer; Loading @@ -30,6 +32,7 @@ import com.android.internal.widget.remotecompose.core.documentation.Documentatio import com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation; import com.android.internal.widget.remotecompose.core.operations.utilities.AnimatedFloatExpression; import com.android.internal.widget.remotecompose.core.operations.utilities.NanMap; import com.android.internal.widget.remotecompose.core.serialize.MapSerializer; import java.util.Arrays; import java.util.List; Loading @@ -38,7 +41,7 @@ import java.util.List; * This creates a particle system. which consist of id, particleCount, array of id's and equations * for constructing the particles */ public class ParticlesCreate extends Operation implements VariableSupport { public class ParticlesCreate extends PaintOperation implements VariableSupport { private static final int OP_CODE = Operations.PARTICLE_DEFINE; private static final String CLASS_NAME = "ParticlesCreate"; private final int mId; Loading Loading @@ -214,6 +217,13 @@ public class ParticlesCreate extends Operation implements VariableSupport { return indent + toString(); } @Override public void paint(@NonNull PaintContext context) { for (int i = 0; i < mParticles.length; i++) { initializeParticle(i); } } void initializeParticle(int pNo) { for (int j = 0; j < mParticles[pNo].length; j++) { for (int k = 0; k < mIndexeVars.length; k++) { Loading @@ -226,13 +236,6 @@ public class ParticlesCreate extends Operation implements VariableSupport { } } @Override public void apply(@NonNull RemoteContext context) { for (int i = 0; i < mParticles.length; i++) { initializeParticle(i); } } public float[][] getParticles() { return mParticles; } Loading @@ -244,4 +247,7 @@ public class ParticlesCreate extends Operation implements VariableSupport { public float[][] getEquations() { return mOutEquations; } @Override public void serialize(MapSerializer serializer) {} } core/java/com/android/internal/widget/remotecompose/core/operations/PathAppend.java +1 −1 Original line number Diff line number Diff line Loading @@ -258,6 +258,6 @@ public class PathAppend extends PaintOperation implements VariableSupport, Seria @Override public void serialize(MapSerializer serializer) { serializer.addType(CLASS_NAME).add("id", mInstanceId).add("path", pathString(mFloatPath)); serializer.addType(CLASS_NAME).add("id", mInstanceId).addPath("path", mFloatPath); } } core/java/com/android/internal/widget/remotecompose/core/operations/PathCreate.java +1 −1 Original line number Diff line number Diff line Loading @@ -242,6 +242,6 @@ public class PathCreate extends PaintOperation implements VariableSupport, Seria @Override public void serialize(MapSerializer serializer) { serializer.addType(CLASS_NAME).add("id", mInstanceId).add("path", pathString(mFloatPath)); serializer.addType(CLASS_NAME).add("id", mInstanceId).addPath("path", mFloatPath); } } Loading
core/java/com/android/internal/widget/remotecompose/core/CoreDocument.java +32 −4 Original line number Diff line number Diff line Loading @@ -73,7 +73,7 @@ public class CoreDocument implements Serializable { // We also keep a more fine-grained BUILD number, exposed as // ID_API_LEVEL = DOCUMENT_API_LEVEL + BUILD static final float BUILD = 0.6f; static final float BUILD = 0.7f; private static final boolean UPDATE_VARIABLES_BEFORE_LAYOUT = false; Loading Loading @@ -842,18 +842,25 @@ public class CoreDocument implements Serializable { @NonNull private HashMap<Integer, Component> mComponentMap = new HashMap<Integer, Component>(); /** * Register all the operations recursively * * @param context * @param list */ private void registerVariables( @NonNull RemoteContext context, @NonNull ArrayList<Operation> list) { for (Operation op : list) { if (op instanceof VariableSupport) { ((VariableSupport) op).updateVariables(context); ((VariableSupport) op).registerListening(context); } if (op instanceof Component) { mComponentMap.put(((Component) op).getComponentId(), (Component) op); registerVariables(context, ((Component) op).getList()); ((Component) op).registerVariables(context); } if (op instanceof Container) { registerVariables(context, ((Container) op).getList()); } if (op instanceof ComponentValue) { ComponentValue v = (ComponentValue) op; Component component = mComponentMap.get(v.getComponentId()); Loading @@ -866,14 +873,34 @@ public class CoreDocument implements Serializable { if (op instanceof ComponentModifiers) { for (ModifierOperation modifier : ((ComponentModifiers) op).getList()) { if (modifier instanceof VariableSupport) { ((VariableSupport) modifier).updateVariables(context); ((VariableSupport) modifier).registerListening(context); } } } } } /** * Apply the operations recursively, for the original initialization pass with mode == DATA * * @param context * @param list */ private void applyOperations( @NonNull RemoteContext context, @NonNull ArrayList<Operation> list) { for (Operation op : list) { if (op instanceof VariableSupport) { ((VariableSupport) op).updateVariables(context); } if (op instanceof Component) { // for componentvalues... ((Component) op).updateVariables(context); } op.markNotDirty(); op.apply(context); context.incrementOpCount(); if (op instanceof Container) { applyOperations(context, ((Container) op).getList()); } } } Loading @@ -893,6 +920,7 @@ public class CoreDocument implements Serializable { mTimeVariables.updateTime(context); registerVariables(context, mOperations); applyOperations(context, mOperations); context.mMode = RemoteContext.ContextMode.UNSET; if (UPDATE_VARIABLES_BEFORE_LAYOUT) { Loading
core/java/com/android/internal/widget/remotecompose/core/operations/FloatExpression.java +0 −1 Original line number Diff line number Diff line Loading @@ -149,7 +149,6 @@ public class FloatExpression extends Operation implements VariableSupport, Seria @Override public void apply(@NonNull RemoteContext context) { updateVariables(context); float t = context.getAnimationTime(); if (Float.isNaN(mLastChange)) { mLastChange = t; Loading
core/java/com/android/internal/widget/remotecompose/core/operations/ParticlesCreate.java +14 −8 Original line number Diff line number Diff line Loading @@ -23,6 +23,8 @@ import android.annotation.NonNull; import com.android.internal.widget.remotecompose.core.Operation; import com.android.internal.widget.remotecompose.core.Operations; import com.android.internal.widget.remotecompose.core.PaintContext; import com.android.internal.widget.remotecompose.core.PaintOperation; import com.android.internal.widget.remotecompose.core.RemoteContext; import com.android.internal.widget.remotecompose.core.VariableSupport; import com.android.internal.widget.remotecompose.core.WireBuffer; Loading @@ -30,6 +32,7 @@ import com.android.internal.widget.remotecompose.core.documentation.Documentatio import com.android.internal.widget.remotecompose.core.documentation.DocumentedOperation; import com.android.internal.widget.remotecompose.core.operations.utilities.AnimatedFloatExpression; import com.android.internal.widget.remotecompose.core.operations.utilities.NanMap; import com.android.internal.widget.remotecompose.core.serialize.MapSerializer; import java.util.Arrays; import java.util.List; Loading @@ -38,7 +41,7 @@ import java.util.List; * This creates a particle system. which consist of id, particleCount, array of id's and equations * for constructing the particles */ public class ParticlesCreate extends Operation implements VariableSupport { public class ParticlesCreate extends PaintOperation implements VariableSupport { private static final int OP_CODE = Operations.PARTICLE_DEFINE; private static final String CLASS_NAME = "ParticlesCreate"; private final int mId; Loading Loading @@ -214,6 +217,13 @@ public class ParticlesCreate extends Operation implements VariableSupport { return indent + toString(); } @Override public void paint(@NonNull PaintContext context) { for (int i = 0; i < mParticles.length; i++) { initializeParticle(i); } } void initializeParticle(int pNo) { for (int j = 0; j < mParticles[pNo].length; j++) { for (int k = 0; k < mIndexeVars.length; k++) { Loading @@ -226,13 +236,6 @@ public class ParticlesCreate extends Operation implements VariableSupport { } } @Override public void apply(@NonNull RemoteContext context) { for (int i = 0; i < mParticles.length; i++) { initializeParticle(i); } } public float[][] getParticles() { return mParticles; } Loading @@ -244,4 +247,7 @@ public class ParticlesCreate extends Operation implements VariableSupport { public float[][] getEquations() { return mOutEquations; } @Override public void serialize(MapSerializer serializer) {} }
core/java/com/android/internal/widget/remotecompose/core/operations/PathAppend.java +1 −1 Original line number Diff line number Diff line Loading @@ -258,6 +258,6 @@ public class PathAppend extends PaintOperation implements VariableSupport, Seria @Override public void serialize(MapSerializer serializer) { serializer.addType(CLASS_NAME).add("id", mInstanceId).add("path", pathString(mFloatPath)); serializer.addType(CLASS_NAME).add("id", mInstanceId).addPath("path", mFloatPath); } }
core/java/com/android/internal/widget/remotecompose/core/operations/PathCreate.java +1 −1 Original line number Diff line number Diff line Loading @@ -242,6 +242,6 @@ public class PathCreate extends PaintOperation implements VariableSupport, Seria @Override public void serialize(MapSerializer serializer) { serializer.addType(CLASS_NAME).add("id", mInstanceId).add("path", pathString(mFloatPath)); serializer.addType(CLASS_NAME).add("id", mInstanceId).addPath("path", mFloatPath); } }