Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dc3414db authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Update to ToT RemoteCompose" into main

parents b66fa5ec 514fba16
Loading
Loading
Loading
Loading
+32 −4
Original line number Diff line number Diff line
@@ -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;

@@ -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());
@@ -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());
            }
        }
    }

@@ -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) {
+0 −1
Original line number Diff line number Diff line
@@ -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;
+14 −8
Original line number Diff line number Diff line
@@ -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;
@@ -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;
@@ -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;
@@ -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++) {
@@ -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;
    }
@@ -244,4 +247,7 @@ public class ParticlesCreate extends Operation implements VariableSupport {
    public float[][] getEquations() {
        return mOutEquations;
    }

    @Override
    public void serialize(MapSerializer serializer) {}
}
+1 −1
Original line number Diff line number Diff line
@@ -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);
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -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