1 /* 2 * Copyright (C) 2023 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package com.android.internal.widget.remotecompose.core; 17 18 import android.annotation.NonNull; 19 20 import com.android.internal.widget.remotecompose.core.operations.BitmapData; 21 import com.android.internal.widget.remotecompose.core.operations.BitmapFontData; 22 import com.android.internal.widget.remotecompose.core.operations.ClickArea; 23 import com.android.internal.widget.remotecompose.core.operations.ClipPath; 24 import com.android.internal.widget.remotecompose.core.operations.ClipRect; 25 import com.android.internal.widget.remotecompose.core.operations.ColorAttribute; 26 import com.android.internal.widget.remotecompose.core.operations.ColorConstant; 27 import com.android.internal.widget.remotecompose.core.operations.ColorExpression; 28 import com.android.internal.widget.remotecompose.core.operations.ComponentValue; 29 import com.android.internal.widget.remotecompose.core.operations.ConditionalOperations; 30 import com.android.internal.widget.remotecompose.core.operations.DataListFloat; 31 import com.android.internal.widget.remotecompose.core.operations.DataListIds; 32 import com.android.internal.widget.remotecompose.core.operations.DataMapIds; 33 import com.android.internal.widget.remotecompose.core.operations.DataMapLookup; 34 import com.android.internal.widget.remotecompose.core.operations.DebugMessage; 35 import com.android.internal.widget.remotecompose.core.operations.DrawArc; 36 import com.android.internal.widget.remotecompose.core.operations.DrawBitmap; 37 import com.android.internal.widget.remotecompose.core.operations.DrawBitmapFontText; 38 import com.android.internal.widget.remotecompose.core.operations.DrawBitmapInt; 39 import com.android.internal.widget.remotecompose.core.operations.DrawBitmapScaled; 40 import com.android.internal.widget.remotecompose.core.operations.DrawCircle; 41 import com.android.internal.widget.remotecompose.core.operations.DrawContent; 42 import com.android.internal.widget.remotecompose.core.operations.DrawLine; 43 import com.android.internal.widget.remotecompose.core.operations.DrawOval; 44 import com.android.internal.widget.remotecompose.core.operations.DrawPath; 45 import com.android.internal.widget.remotecompose.core.operations.DrawRect; 46 import com.android.internal.widget.remotecompose.core.operations.DrawRoundRect; 47 import com.android.internal.widget.remotecompose.core.operations.DrawSector; 48 import com.android.internal.widget.remotecompose.core.operations.DrawText; 49 import com.android.internal.widget.remotecompose.core.operations.DrawTextAnchored; 50 import com.android.internal.widget.remotecompose.core.operations.DrawTextOnPath; 51 import com.android.internal.widget.remotecompose.core.operations.DrawTweenPath; 52 import com.android.internal.widget.remotecompose.core.operations.FloatConstant; 53 import com.android.internal.widget.remotecompose.core.operations.FloatExpression; 54 import com.android.internal.widget.remotecompose.core.operations.FloatFunctionCall; 55 import com.android.internal.widget.remotecompose.core.operations.FloatFunctionDefine; 56 import com.android.internal.widget.remotecompose.core.operations.HapticFeedback; 57 import com.android.internal.widget.remotecompose.core.operations.Header; 58 import com.android.internal.widget.remotecompose.core.operations.ImageAttribute; 59 import com.android.internal.widget.remotecompose.core.operations.IntegerExpression; 60 import com.android.internal.widget.remotecompose.core.operations.MatrixRestore; 61 import com.android.internal.widget.remotecompose.core.operations.MatrixRotate; 62 import com.android.internal.widget.remotecompose.core.operations.MatrixSave; 63 import com.android.internal.widget.remotecompose.core.operations.MatrixScale; 64 import com.android.internal.widget.remotecompose.core.operations.MatrixSkew; 65 import com.android.internal.widget.remotecompose.core.operations.MatrixTranslate; 66 import com.android.internal.widget.remotecompose.core.operations.NamedVariable; 67 import com.android.internal.widget.remotecompose.core.operations.PaintData; 68 import com.android.internal.widget.remotecompose.core.operations.ParticlesCreate; 69 import com.android.internal.widget.remotecompose.core.operations.ParticlesLoop; 70 import com.android.internal.widget.remotecompose.core.operations.PathAppend; 71 import com.android.internal.widget.remotecompose.core.operations.PathCombine; 72 import com.android.internal.widget.remotecompose.core.operations.PathCreate; 73 import com.android.internal.widget.remotecompose.core.operations.PathData; 74 import com.android.internal.widget.remotecompose.core.operations.PathTween; 75 import com.android.internal.widget.remotecompose.core.operations.RootContentBehavior; 76 import com.android.internal.widget.remotecompose.core.operations.RootContentDescription; 77 import com.android.internal.widget.remotecompose.core.operations.ShaderData; 78 import com.android.internal.widget.remotecompose.core.operations.TextAttribute; 79 import com.android.internal.widget.remotecompose.core.operations.TextData; 80 import com.android.internal.widget.remotecompose.core.operations.TextFromFloat; 81 import com.android.internal.widget.remotecompose.core.operations.TextLength; 82 import com.android.internal.widget.remotecompose.core.operations.TextLookup; 83 import com.android.internal.widget.remotecompose.core.operations.TextLookupInt; 84 import com.android.internal.widget.remotecompose.core.operations.TextMeasure; 85 import com.android.internal.widget.remotecompose.core.operations.TextMerge; 86 import com.android.internal.widget.remotecompose.core.operations.Theme; 87 import com.android.internal.widget.remotecompose.core.operations.TimeAttribute; 88 import com.android.internal.widget.remotecompose.core.operations.TouchExpression; 89 import com.android.internal.widget.remotecompose.core.operations.layout.CanvasContent; 90 import com.android.internal.widget.remotecompose.core.operations.layout.CanvasOperations; 91 import com.android.internal.widget.remotecompose.core.operations.layout.ClickModifierOperation; 92 import com.android.internal.widget.remotecompose.core.operations.layout.ComponentStart; 93 import com.android.internal.widget.remotecompose.core.operations.layout.ContainerEnd; 94 import com.android.internal.widget.remotecompose.core.operations.layout.ImpulseOperation; 95 import com.android.internal.widget.remotecompose.core.operations.layout.ImpulseProcess; 96 import com.android.internal.widget.remotecompose.core.operations.layout.LayoutComponentContent; 97 import com.android.internal.widget.remotecompose.core.operations.layout.LoopOperation; 98 import com.android.internal.widget.remotecompose.core.operations.layout.RootLayoutComponent; 99 import com.android.internal.widget.remotecompose.core.operations.layout.TouchCancelModifierOperation; 100 import com.android.internal.widget.remotecompose.core.operations.layout.TouchDownModifierOperation; 101 import com.android.internal.widget.remotecompose.core.operations.layout.TouchUpModifierOperation; 102 import com.android.internal.widget.remotecompose.core.operations.layout.animation.AnimationSpec; 103 import com.android.internal.widget.remotecompose.core.operations.layout.managers.BoxLayout; 104 import com.android.internal.widget.remotecompose.core.operations.layout.managers.CanvasLayout; 105 import com.android.internal.widget.remotecompose.core.operations.layout.managers.CollapsibleColumnLayout; 106 import com.android.internal.widget.remotecompose.core.operations.layout.managers.CollapsibleRowLayout; 107 import com.android.internal.widget.remotecompose.core.operations.layout.managers.ColumnLayout; 108 import com.android.internal.widget.remotecompose.core.operations.layout.managers.FitBoxLayout; 109 import com.android.internal.widget.remotecompose.core.operations.layout.managers.ImageLayout; 110 import com.android.internal.widget.remotecompose.core.operations.layout.managers.RowLayout; 111 import com.android.internal.widget.remotecompose.core.operations.layout.managers.StateLayout; 112 import com.android.internal.widget.remotecompose.core.operations.layout.managers.TextLayout; 113 import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.BackgroundModifierOperation; 114 import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.BorderModifierOperation; 115 import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ClipRectModifierOperation; 116 import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.CollapsiblePriorityModifierOperation; 117 import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ComponentVisibilityOperation; 118 import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.DrawContentOperation; 119 import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.GraphicsLayerModifierOperation; 120 import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.HeightInModifierOperation; 121 import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.HeightModifierOperation; 122 import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.HostActionMetadataOperation; 123 import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.HostActionOperation; 124 import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.HostNamedActionOperation; 125 import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.MarqueeModifierOperation; 126 import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.OffsetModifierOperation; 127 import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.PaddingModifierOperation; 128 import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.RippleModifierOperation; 129 import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.RoundedClipRectModifierOperation; 130 import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.RunActionOperation; 131 import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ScrollModifierOperation; 132 import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ValueFloatChangeActionOperation; 133 import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ValueFloatExpressionChangeActionOperation; 134 import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ValueIntegerChangeActionOperation; 135 import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ValueIntegerExpressionChangeActionOperation; 136 import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ValueStringChangeActionOperation; 137 import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.WidthInModifierOperation; 138 import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.WidthModifierOperation; 139 import com.android.internal.widget.remotecompose.core.operations.layout.modifiers.ZIndexModifierOperation; 140 import com.android.internal.widget.remotecompose.core.operations.utilities.IntMap; 141 import com.android.internal.widget.remotecompose.core.semantics.CoreSemantics; 142 import com.android.internal.widget.remotecompose.core.types.BooleanConstant; 143 import com.android.internal.widget.remotecompose.core.types.IntegerConstant; 144 import com.android.internal.widget.remotecompose.core.types.LongConstant; 145 146 /** List of operations supported in a RemoteCompose document */ 147 public class Operations { 148 149 //////////////////////////////////////// 150 // Protocol 151 //////////////////////////////////////// 152 public static final int HEADER = 0; 153 public static final int LOAD_BITMAP = 4; 154 public static final int THEME = 63; 155 public static final int CLICK_AREA = 64; 156 public static final int ROOT_CONTENT_BEHAVIOR = 65; 157 public static final int ROOT_CONTENT_DESCRIPTION = 103; 158 // TODO reorder before submitting 159 public static final int ACCESSIBILITY_SEMANTICS = 250; 160 // public static final int ACCESSIBILITY_CUSTOM_ACTION = 251; 161 162 //////////////////////////////////////// 163 // Draw commands 164 //////////////////////////////////////// 165 public static final int DRAW_BITMAP = 44; 166 public static final int DRAW_BITMAP_INT = 66; 167 public static final int DATA_BITMAP = 101; 168 public static final int DATA_SHADER = 45; 169 public static final int DATA_TEXT = 102; 170 public static final int DATA_BITMAP_FONT = 167; 171 172 ///////////////////////////// ===================== 173 public static final int CLIP_PATH = 38; 174 public static final int CLIP_RECT = 39; 175 public static final int PAINT_VALUES = 40; 176 public static final int DRAW_RECT = 42; 177 public static final int DRAW_BITMAP_FONT_TEXT_RUN = 48; 178 public static final int DRAW_TEXT_RUN = 43; 179 public static final int DRAW_CIRCLE = 46; 180 public static final int DRAW_LINE = 47; 181 public static final int DRAW_ROUND_RECT = 51; 182 public static final int DRAW_SECTOR = 52; 183 public static final int DRAW_TEXT_ON_PATH = 53; 184 public static final int DRAW_OVAL = 56; 185 public static final int DATA_PATH = 123; 186 public static final int DRAW_PATH = 124; 187 public static final int DRAW_TWEEN_PATH = 125; 188 public static final int DRAW_CONTENT = 139; 189 public static final int MATRIX_SCALE = 126; 190 public static final int MATRIX_TRANSLATE = 127; 191 public static final int MATRIX_SKEW = 128; 192 public static final int MATRIX_ROTATE = 129; 193 public static final int MATRIX_SAVE = 130; 194 public static final int MATRIX_RESTORE = 131; 195 public static final int MATRIX_SET = 132; 196 public static final int DATA_FLOAT = 80; 197 public static final int ANIMATED_FLOAT = 81; 198 public static final int DRAW_TEXT_ANCHOR = 133; 199 public static final int COLOR_EXPRESSIONS = 134; 200 public static final int TEXT_FROM_FLOAT = 135; 201 public static final int TEXT_MERGE = 136; 202 public static final int NAMED_VARIABLE = 137; 203 public static final int COLOR_CONSTANT = 138; 204 public static final int DATA_INT = 140; 205 public static final int DATA_BOOLEAN = 143; 206 public static final int INTEGER_EXPRESSION = 144; 207 public static final int ID_MAP = 145; 208 public static final int ID_LIST = 146; 209 public static final int FLOAT_LIST = 147; 210 public static final int DATA_LONG = 148; 211 public static final int DRAW_BITMAP_SCALED = 149; 212 public static final int TEXT_LOOKUP = 151; 213 public static final int DRAW_ARC = 152; 214 public static final int TEXT_LOOKUP_INT = 153; 215 public static final int DATA_MAP_LOOKUP = 154; 216 public static final int TEXT_MEASURE = 155; 217 public static final int TEXT_LENGTH = 156; 218 public static final int TOUCH_EXPRESSION = 157; 219 public static final int PATH_TWEEN = 158; 220 public static final int PATH_CREATE = 159; 221 public static final int PATH_ADD = 160; 222 public static final int PARTICLE_DEFINE = 161; 223 public static final int PARTICLE_PROCESS = 162; 224 public static final int PARTICLE_LOOP = 163; 225 public static final int IMPULSE_START = 164; 226 public static final int IMPULSE_PROCESS = 165; 227 public static final int FUNCTION_CALL = 166; 228 public static final int FUNCTION_DEFINE = 168; 229 public static final int ATTRIBUTE_TEXT = 170; 230 public static final int ATTRIBUTE_IMAGE = 171; 231 public static final int ATTRIBUTE_TIME = 172; 232 public static final int CANVAS_OPERATIONS = 173; 233 public static final int MODIFIER_DRAW_CONTENT = 174; 234 public static final int PATH_COMBINE = 175; 235 public static final int HAPTIC_FEEDBACK = 177; 236 public static final int CONDITIONAL_OPERATIONS = 178; 237 public static final int DEBUG_MESSAGE = 179; 238 public static final int ATTRIBUTE_COLOR = 180; 239 240 ///////////////////////////////////////// ====================== 241 242 //////////////////////////////////////// 243 // Layout commands 244 //////////////////////////////////////// 245 246 public static final int LAYOUT_ROOT = 200; 247 public static final int LAYOUT_CONTENT = 201; 248 public static final int LAYOUT_BOX = 202; 249 public static final int LAYOUT_FIT_BOX = 176; 250 public static final int LAYOUT_ROW = 203; 251 public static final int LAYOUT_COLLAPSIBLE_ROW = 230; 252 public static final int LAYOUT_COLUMN = 204; 253 public static final int LAYOUT_COLLAPSIBLE_COLUMN = 233; 254 public static final int LAYOUT_CANVAS = 205; 255 public static final int LAYOUT_CANVAS_CONTENT = 207; 256 public static final int LAYOUT_TEXT = 208; 257 public static final int LAYOUT_STATE = 217; 258 public static final int LAYOUT_IMAGE = 234; 259 260 public static final int COMPONENT_START = 2; 261 262 public static final int MODIFIER_WIDTH = 16; 263 public static final int MODIFIER_HEIGHT = 67; 264 public static final int MODIFIER_WIDTH_IN = 231; 265 public static final int MODIFIER_HEIGHT_IN = 232; 266 public static final int MODIFIER_COLLAPSIBLE_PRIORITY = 235; 267 public static final int MODIFIER_BACKGROUND = 55; 268 public static final int MODIFIER_BORDER = 107; 269 public static final int MODIFIER_PADDING = 58; 270 public static final int MODIFIER_CLIP_RECT = 108; 271 public static final int MODIFIER_ROUNDED_CLIP_RECT = 54; 272 273 public static final int MODIFIER_CLICK = 59; 274 public static final int MODIFIER_TOUCH_DOWN = 219; 275 public static final int MODIFIER_TOUCH_UP = 220; 276 public static final int MODIFIER_TOUCH_CANCEL = 225; 277 278 public static final int CONTAINER_END = 214; 279 280 public static final int MODIFIER_OFFSET = 221; 281 public static final int MODIFIER_ZINDEX = 223; 282 public static final int MODIFIER_GRAPHICS_LAYER = 224; 283 public static final int MODIFIER_SCROLL = 226; 284 public static final int MODIFIER_MARQUEE = 228; 285 public static final int MODIFIER_RIPPLE = 229; 286 287 public static final int LOOP_START = 215; 288 289 public static final int MODIFIER_VISIBILITY = 211; 290 public static final int HOST_ACTION = 209; 291 public static final int HOST_METADATA_ACTION = 216; 292 public static final int HOST_NAMED_ACTION = 210; 293 public static final int RUN_ACTION = 236; 294 295 public static final int VALUE_INTEGER_CHANGE_ACTION = 212; 296 public static final int VALUE_STRING_CHANGE_ACTION = 213; 297 public static final int VALUE_INTEGER_EXPRESSION_CHANGE_ACTION = 218; 298 public static final int VALUE_FLOAT_CHANGE_ACTION = 222; 299 public static final int VALUE_FLOAT_EXPRESSION_CHANGE_ACTION = 227; 300 301 public static final int ANIMATION_SPEC = 14; 302 303 public static final int COMPONENT_VALUE = 150; 304 305 @NonNull public static UniqueIntMap<CompanionOperation> map = new UniqueIntMap<>(); 306 307 static class UniqueIntMap<T> extends IntMap<T> { 308 @Override put(int key, @NonNull T value)309 public T put(int key, @NonNull T value) { 310 assert null == get(key) : "Opcode " + key + " already used in Operations !"; 311 return super.put(key, value); 312 } 313 } 314 315 static { map.put(HEADER, Header::read)316 map.put(HEADER, Header::read); map.put(DRAW_BITMAP_INT, DrawBitmapInt::read)317 map.put(DRAW_BITMAP_INT, DrawBitmapInt::read); map.put(DATA_BITMAP, BitmapData::read)318 map.put(DATA_BITMAP, BitmapData::read); map.put(DATA_BITMAP_FONT, BitmapFontData::read)319 map.put(DATA_BITMAP_FONT, BitmapFontData::read); map.put(DATA_TEXT, TextData::read)320 map.put(DATA_TEXT, TextData::read); map.put(THEME, Theme::read)321 map.put(THEME, Theme::read); map.put(CLICK_AREA, ClickArea::read)322 map.put(CLICK_AREA, ClickArea::read); map.put(ROOT_CONTENT_BEHAVIOR, RootContentBehavior::read)323 map.put(ROOT_CONTENT_BEHAVIOR, RootContentBehavior::read); map.put(ROOT_CONTENT_DESCRIPTION, RootContentDescription::read)324 map.put(ROOT_CONTENT_DESCRIPTION, RootContentDescription::read); 325 map.put(DRAW_SECTOR, DrawSector::read)326 map.put(DRAW_SECTOR, DrawSector::read); map.put(DRAW_BITMAP, DrawBitmap::read)327 map.put(DRAW_BITMAP, DrawBitmap::read); map.put(DRAW_CIRCLE, DrawCircle::read)328 map.put(DRAW_CIRCLE, DrawCircle::read); map.put(DRAW_LINE, DrawLine::read)329 map.put(DRAW_LINE, DrawLine::read); map.put(DRAW_OVAL, DrawOval::read)330 map.put(DRAW_OVAL, DrawOval::read); map.put(DRAW_PATH, DrawPath::read)331 map.put(DRAW_PATH, DrawPath::read); map.put(DRAW_RECT, DrawRect::read)332 map.put(DRAW_RECT, DrawRect::read); map.put(DRAW_ROUND_RECT, DrawRoundRect::read)333 map.put(DRAW_ROUND_RECT, DrawRoundRect::read); map.put(DRAW_TEXT_ON_PATH, DrawTextOnPath::read)334 map.put(DRAW_TEXT_ON_PATH, DrawTextOnPath::read); map.put(DRAW_TEXT_RUN, DrawText::read)335 map.put(DRAW_TEXT_RUN, DrawText::read); map.put(DRAW_BITMAP_FONT_TEXT_RUN, DrawBitmapFontText::read)336 map.put(DRAW_BITMAP_FONT_TEXT_RUN, DrawBitmapFontText::read); map.put(DRAW_TWEEN_PATH, DrawTweenPath::read)337 map.put(DRAW_TWEEN_PATH, DrawTweenPath::read); map.put(DATA_PATH, PathData::read)338 map.put(DATA_PATH, PathData::read); map.put(PAINT_VALUES, PaintData::read)339 map.put(PAINT_VALUES, PaintData::read); map.put(MATRIX_RESTORE, MatrixRestore::read)340 map.put(MATRIX_RESTORE, MatrixRestore::read); map.put(MATRIX_ROTATE, MatrixRotate::read)341 map.put(MATRIX_ROTATE, MatrixRotate::read); map.put(MATRIX_SAVE, MatrixSave::read)342 map.put(MATRIX_SAVE, MatrixSave::read); map.put(MATRIX_SCALE, MatrixScale::read)343 map.put(MATRIX_SCALE, MatrixScale::read); map.put(MATRIX_SKEW, MatrixSkew::read)344 map.put(MATRIX_SKEW, MatrixSkew::read); map.put(MATRIX_TRANSLATE, MatrixTranslate::read)345 map.put(MATRIX_TRANSLATE, MatrixTranslate::read); map.put(CLIP_PATH, ClipPath::read)346 map.put(CLIP_PATH, ClipPath::read); map.put(CLIP_RECT, ClipRect::read)347 map.put(CLIP_RECT, ClipRect::read); map.put(DATA_SHADER, ShaderData::read)348 map.put(DATA_SHADER, ShaderData::read); map.put(DATA_FLOAT, FloatConstant::read)349 map.put(DATA_FLOAT, FloatConstant::read); map.put(ANIMATED_FLOAT, FloatExpression::read)350 map.put(ANIMATED_FLOAT, FloatExpression::read); map.put(DRAW_TEXT_ANCHOR, DrawTextAnchored::read)351 map.put(DRAW_TEXT_ANCHOR, DrawTextAnchored::read); map.put(COLOR_EXPRESSIONS, ColorExpression::read)352 map.put(COLOR_EXPRESSIONS, ColorExpression::read); map.put(TEXT_FROM_FLOAT, TextFromFloat::read)353 map.put(TEXT_FROM_FLOAT, TextFromFloat::read); map.put(TEXT_MERGE, TextMerge::read)354 map.put(TEXT_MERGE, TextMerge::read); map.put(NAMED_VARIABLE, NamedVariable::read)355 map.put(NAMED_VARIABLE, NamedVariable::read); map.put(COLOR_CONSTANT, ColorConstant::read)356 map.put(COLOR_CONSTANT, ColorConstant::read); map.put(DATA_INT, IntegerConstant::read)357 map.put(DATA_INT, IntegerConstant::read); map.put(INTEGER_EXPRESSION, IntegerExpression::read)358 map.put(INTEGER_EXPRESSION, IntegerExpression::read); map.put(DATA_BOOLEAN, BooleanConstant::read)359 map.put(DATA_BOOLEAN, BooleanConstant::read); map.put(ID_MAP, DataMapIds::read)360 map.put(ID_MAP, DataMapIds::read); map.put(ID_LIST, DataListIds::read)361 map.put(ID_LIST, DataListIds::read); map.put(FLOAT_LIST, DataListFloat::read)362 map.put(FLOAT_LIST, DataListFloat::read); map.put(DATA_LONG, LongConstant::read)363 map.put(DATA_LONG, LongConstant::read); map.put(DRAW_BITMAP_SCALED, DrawBitmapScaled::read)364 map.put(DRAW_BITMAP_SCALED, DrawBitmapScaled::read); map.put(TEXT_LOOKUP, TextLookup::read)365 map.put(TEXT_LOOKUP, TextLookup::read); map.put(TEXT_LOOKUP_INT, TextLookupInt::read)366 map.put(TEXT_LOOKUP_INT, TextLookupInt::read); 367 map.put(LOOP_START, LoopOperation::read)368 map.put(LOOP_START, LoopOperation::read); 369 370 // Layout 371 map.put(COMPONENT_START, ComponentStart::read)372 map.put(COMPONENT_START, ComponentStart::read); map.put(ANIMATION_SPEC, AnimationSpec::read)373 map.put(ANIMATION_SPEC, AnimationSpec::read); 374 map.put(MODIFIER_WIDTH, WidthModifierOperation::read)375 map.put(MODIFIER_WIDTH, WidthModifierOperation::read); map.put(MODIFIER_HEIGHT, HeightModifierOperation::read)376 map.put(MODIFIER_HEIGHT, HeightModifierOperation::read); map.put(MODIFIER_WIDTH_IN, WidthInModifierOperation::read)377 map.put(MODIFIER_WIDTH_IN, WidthInModifierOperation::read); map.put(MODIFIER_HEIGHT_IN, HeightInModifierOperation::read)378 map.put(MODIFIER_HEIGHT_IN, HeightInModifierOperation::read); map.put(MODIFIER_COLLAPSIBLE_PRIORITY, CollapsiblePriorityModifierOperation::read)379 map.put(MODIFIER_COLLAPSIBLE_PRIORITY, CollapsiblePriorityModifierOperation::read); map.put(MODIFIER_PADDING, PaddingModifierOperation::read)380 map.put(MODIFIER_PADDING, PaddingModifierOperation::read); map.put(MODIFIER_BACKGROUND, BackgroundModifierOperation::read)381 map.put(MODIFIER_BACKGROUND, BackgroundModifierOperation::read); map.put(MODIFIER_BORDER, BorderModifierOperation::read)382 map.put(MODIFIER_BORDER, BorderModifierOperation::read); map.put(MODIFIER_ROUNDED_CLIP_RECT, RoundedClipRectModifierOperation::read)383 map.put(MODIFIER_ROUNDED_CLIP_RECT, RoundedClipRectModifierOperation::read); map.put(MODIFIER_CLIP_RECT, ClipRectModifierOperation::read)384 map.put(MODIFIER_CLIP_RECT, ClipRectModifierOperation::read); map.put(MODIFIER_CLICK, ClickModifierOperation::read)385 map.put(MODIFIER_CLICK, ClickModifierOperation::read); map.put(MODIFIER_TOUCH_DOWN, TouchDownModifierOperation::read)386 map.put(MODIFIER_TOUCH_DOWN, TouchDownModifierOperation::read); map.put(MODIFIER_TOUCH_UP, TouchUpModifierOperation::read)387 map.put(MODIFIER_TOUCH_UP, TouchUpModifierOperation::read); map.put(MODIFIER_TOUCH_CANCEL, TouchCancelModifierOperation::read)388 map.put(MODIFIER_TOUCH_CANCEL, TouchCancelModifierOperation::read); map.put(MODIFIER_VISIBILITY, ComponentVisibilityOperation::read)389 map.put(MODIFIER_VISIBILITY, ComponentVisibilityOperation::read); map.put(MODIFIER_OFFSET, OffsetModifierOperation::read)390 map.put(MODIFIER_OFFSET, OffsetModifierOperation::read); map.put(MODIFIER_ZINDEX, ZIndexModifierOperation::read)391 map.put(MODIFIER_ZINDEX, ZIndexModifierOperation::read); map.put(MODIFIER_GRAPHICS_LAYER, GraphicsLayerModifierOperation::read)392 map.put(MODIFIER_GRAPHICS_LAYER, GraphicsLayerModifierOperation::read); map.put(MODIFIER_SCROLL, ScrollModifierOperation::read)393 map.put(MODIFIER_SCROLL, ScrollModifierOperation::read); map.put(MODIFIER_MARQUEE, MarqueeModifierOperation::read)394 map.put(MODIFIER_MARQUEE, MarqueeModifierOperation::read); map.put(MODIFIER_RIPPLE, RippleModifierOperation::read)395 map.put(MODIFIER_RIPPLE, RippleModifierOperation::read); map.put(MODIFIER_DRAW_CONTENT, DrawContentOperation::read)396 map.put(MODIFIER_DRAW_CONTENT, DrawContentOperation::read); 397 map.put(CONTAINER_END, ContainerEnd::read)398 map.put(CONTAINER_END, ContainerEnd::read); 399 map.put(RUN_ACTION, RunActionOperation::read)400 map.put(RUN_ACTION, RunActionOperation::read); map.put(HOST_ACTION, HostActionOperation::read)401 map.put(HOST_ACTION, HostActionOperation::read); map.put(HOST_METADATA_ACTION, HostActionMetadataOperation::read)402 map.put(HOST_METADATA_ACTION, HostActionMetadataOperation::read); map.put(HOST_NAMED_ACTION, HostNamedActionOperation::read)403 map.put(HOST_NAMED_ACTION, HostNamedActionOperation::read); map.put(VALUE_INTEGER_CHANGE_ACTION, ValueIntegerChangeActionOperation::read)404 map.put(VALUE_INTEGER_CHANGE_ACTION, ValueIntegerChangeActionOperation::read); map.put( VALUE_INTEGER_EXPRESSION_CHANGE_ACTION, ValueIntegerExpressionChangeActionOperation::read)405 map.put( 406 VALUE_INTEGER_EXPRESSION_CHANGE_ACTION, 407 ValueIntegerExpressionChangeActionOperation::read); map.put(VALUE_STRING_CHANGE_ACTION, ValueStringChangeActionOperation::read)408 map.put(VALUE_STRING_CHANGE_ACTION, ValueStringChangeActionOperation::read); map.put(VALUE_FLOAT_CHANGE_ACTION, ValueFloatChangeActionOperation::read)409 map.put(VALUE_FLOAT_CHANGE_ACTION, ValueFloatChangeActionOperation::read); map.put( VALUE_FLOAT_EXPRESSION_CHANGE_ACTION, ValueFloatExpressionChangeActionOperation::read)410 map.put( 411 VALUE_FLOAT_EXPRESSION_CHANGE_ACTION, 412 ValueFloatExpressionChangeActionOperation::read); 413 map.put(LAYOUT_ROOT, RootLayoutComponent::read)414 map.put(LAYOUT_ROOT, RootLayoutComponent::read); map.put(LAYOUT_CONTENT, LayoutComponentContent::read)415 map.put(LAYOUT_CONTENT, LayoutComponentContent::read); map.put(LAYOUT_BOX, BoxLayout::read)416 map.put(LAYOUT_BOX, BoxLayout::read); map.put(LAYOUT_FIT_BOX, FitBoxLayout::read)417 map.put(LAYOUT_FIT_BOX, FitBoxLayout::read); map.put(LAYOUT_COLUMN, ColumnLayout::read)418 map.put(LAYOUT_COLUMN, ColumnLayout::read); map.put(LAYOUT_COLLAPSIBLE_COLUMN, CollapsibleColumnLayout::read)419 map.put(LAYOUT_COLLAPSIBLE_COLUMN, CollapsibleColumnLayout::read); map.put(LAYOUT_ROW, RowLayout::read)420 map.put(LAYOUT_ROW, RowLayout::read); map.put(LAYOUT_COLLAPSIBLE_ROW, CollapsibleRowLayout::read)421 map.put(LAYOUT_COLLAPSIBLE_ROW, CollapsibleRowLayout::read); map.put(LAYOUT_CANVAS, CanvasLayout::read)422 map.put(LAYOUT_CANVAS, CanvasLayout::read); map.put(LAYOUT_CANVAS_CONTENT, CanvasContent::read)423 map.put(LAYOUT_CANVAS_CONTENT, CanvasContent::read); map.put(LAYOUT_TEXT, TextLayout::read)424 map.put(LAYOUT_TEXT, TextLayout::read); map.put(LAYOUT_IMAGE, ImageLayout::read)425 map.put(LAYOUT_IMAGE, ImageLayout::read); map.put(LAYOUT_STATE, StateLayout::read)426 map.put(LAYOUT_STATE, StateLayout::read); map.put(DRAW_CONTENT, DrawContent::read)427 map.put(DRAW_CONTENT, DrawContent::read); 428 map.put(COMPONENT_VALUE, ComponentValue::read)429 map.put(COMPONENT_VALUE, ComponentValue::read); map.put(DRAW_ARC, DrawArc::read)430 map.put(DRAW_ARC, DrawArc::read); map.put(DATA_MAP_LOOKUP, DataMapLookup::read)431 map.put(DATA_MAP_LOOKUP, DataMapLookup::read); map.put(TEXT_MEASURE, TextMeasure::read)432 map.put(TEXT_MEASURE, TextMeasure::read); map.put(TEXT_LENGTH, TextLength::read)433 map.put(TEXT_LENGTH, TextLength::read); map.put(TOUCH_EXPRESSION, TouchExpression::read)434 map.put(TOUCH_EXPRESSION, TouchExpression::read); map.put(PATH_TWEEN, PathTween::read)435 map.put(PATH_TWEEN, PathTween::read); map.put(PATH_CREATE, PathCreate::read)436 map.put(PATH_CREATE, PathCreate::read); map.put(PATH_ADD, PathAppend::read)437 map.put(PATH_ADD, PathAppend::read); map.put(IMPULSE_START, ImpulseOperation::read)438 map.put(IMPULSE_START, ImpulseOperation::read); map.put(IMPULSE_PROCESS, ImpulseProcess::read)439 map.put(IMPULSE_PROCESS, ImpulseProcess::read); map.put(PARTICLE_DEFINE, ParticlesCreate::read)440 map.put(PARTICLE_DEFINE, ParticlesCreate::read); map.put(PARTICLE_LOOP, ParticlesLoop::read)441 map.put(PARTICLE_LOOP, ParticlesLoop::read); map.put(FUNCTION_CALL, FloatFunctionCall::read)442 map.put(FUNCTION_CALL, FloatFunctionCall::read); map.put(FUNCTION_DEFINE, FloatFunctionDefine::read)443 map.put(FUNCTION_DEFINE, FloatFunctionDefine::read); map.put(CANVAS_OPERATIONS, CanvasOperations::read)444 map.put(CANVAS_OPERATIONS, CanvasOperations::read); 445 map.put(ACCESSIBILITY_SEMANTICS, CoreSemantics::read)446 map.put(ACCESSIBILITY_SEMANTICS, CoreSemantics::read); map.put(ATTRIBUTE_IMAGE, ImageAttribute::read)447 map.put(ATTRIBUTE_IMAGE, ImageAttribute::read); map.put(ATTRIBUTE_TEXT, TextAttribute::read)448 map.put(ATTRIBUTE_TEXT, TextAttribute::read); map.put(ATTRIBUTE_TIME, TimeAttribute::read)449 map.put(ATTRIBUTE_TIME, TimeAttribute::read); map.put(PATH_COMBINE, PathCombine::read)450 map.put(PATH_COMBINE, PathCombine::read); map.put(HAPTIC_FEEDBACK, HapticFeedback::read)451 map.put(HAPTIC_FEEDBACK, HapticFeedback::read); map.put(CONDITIONAL_OPERATIONS, ConditionalOperations::read)452 map.put(CONDITIONAL_OPERATIONS, ConditionalOperations::read); map.put(DEBUG_MESSAGE, DebugMessage::read)453 map.put(DEBUG_MESSAGE, DebugMessage::read); map.put(ATTRIBUTE_COLOR, ColorAttribute::read)454 map.put(ATTRIBUTE_COLOR, ColorAttribute::read); 455 456 // map.put(ACCESSIBILITY_CUSTOM_ACTION, CoreSemantics::read); 457 } 458 } 459