1 /* 2 * Copyright (C) 2021 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 androidx.constraintlayout.core.motion.utils; 17 18 /** 19 * Provides an interface to values used in KeyFrames and in 20 * Starting and Ending Widgets 21 */ 22 public interface TypedValues { 23 String S_CUSTOM = "CUSTOM"; 24 int BOOLEAN_MASK = 1; 25 int INT_MASK = 2; 26 int FLOAT_MASK = 4; 27 int STRING_MASK = 8; 28 29 /** 30 * Used to set integer values 31 * 32 * @return true if it accepted the value 33 */ setValue(int id, int value)34 boolean setValue(int id, int value); 35 36 /** 37 * Used to set float values 38 * 39 * @return true if it accepted the value 40 */ setValue(int id, float value)41 boolean setValue(int id, float value); 42 43 /** 44 * Used to set String values 45 * 46 * @return true if it accepted the value 47 */ setValue(int id, String value)48 boolean setValue(int id, String value); 49 50 /** 51 * Used to set boolean values 52 * 53 * @return true if it accepted the value 54 */ setValue(int id, boolean value)55 boolean setValue(int id, boolean value); 56 57 // @TODO: add description getId(String name)58 int getId(String name); 59 60 int TYPE_FRAME_POSITION = 100; 61 int TYPE_TARGET = 101; 62 63 interface AttributesType { 64 String NAME = "KeyAttributes"; 65 66 int TYPE_CURVE_FIT = 301; 67 int TYPE_VISIBILITY = 302; 68 int TYPE_ALPHA = 303; 69 int TYPE_TRANSLATION_X = 304; 70 int TYPE_TRANSLATION_Y = 305; 71 int TYPE_TRANSLATION_Z = 306; 72 int TYPE_ELEVATION = 307; 73 int TYPE_ROTATION_X = 308; 74 int TYPE_ROTATION_Y = 309; 75 int TYPE_ROTATION_Z = 310; 76 int TYPE_SCALE_X = 311; 77 int TYPE_SCALE_Y = 312; 78 int TYPE_PIVOT_X = 313; 79 int TYPE_PIVOT_Y = 314; 80 int TYPE_PROGRESS = 315; 81 int TYPE_PATH_ROTATE = 316; 82 int TYPE_EASING = 317; 83 int TYPE_PIVOT_TARGET = 318; 84 85 String S_CURVE_FIT = "curveFit"; 86 String S_VISIBILITY = "visibility"; 87 String S_ALPHA = "alpha"; 88 89 String S_TRANSLATION_X = "translationX"; 90 String S_TRANSLATION_Y = "translationY"; 91 String S_TRANSLATION_Z = "translationZ"; 92 String S_ELEVATION = "elevation"; 93 String S_ROTATION_X = "rotationX"; 94 String S_ROTATION_Y = "rotationY"; 95 String S_ROTATION_Z = "rotationZ"; 96 String S_SCALE_X = "scaleX"; 97 String S_SCALE_Y = "scaleY"; 98 String S_PIVOT_X = "pivotX"; 99 String S_PIVOT_Y = "pivotY"; 100 String S_PROGRESS = "progress"; 101 String S_PATH_ROTATE = "pathRotate"; 102 String S_EASING = "easing"; 103 String S_CUSTOM = "CUSTOM"; 104 String S_FRAME = "frame"; 105 String S_TARGET = "target"; 106 String S_PIVOT_TARGET = "pivotTarget"; 107 108 String[] KEY_WORDS = { 109 S_CURVE_FIT, 110 S_VISIBILITY, 111 S_ALPHA, 112 S_TRANSLATION_X, 113 S_TRANSLATION_Y, 114 S_TRANSLATION_Z, 115 S_ELEVATION, 116 S_ROTATION_X, 117 S_ROTATION_Y, 118 S_ROTATION_Z, 119 S_SCALE_X, 120 S_SCALE_Y, 121 S_PIVOT_X, 122 S_PIVOT_Y, 123 S_PROGRESS, 124 S_PATH_ROTATE, 125 S_EASING, 126 S_CUSTOM, 127 S_FRAME, 128 S_TARGET, 129 S_PIVOT_TARGET, 130 }; 131 132 /** 133 * Method to go from String names of values to id of the values 134 * IDs are use for efficiency 135 * 136 * @param name the name of the value 137 * @return the id of the vlalue or -1 if no value exist 138 */ getId(String name)139 static int getId(String name) { 140 switch (name) { 141 case S_CURVE_FIT: 142 return TYPE_CURVE_FIT; 143 case S_VISIBILITY: 144 return TYPE_VISIBILITY; 145 case S_ALPHA: 146 return TYPE_ALPHA; 147 case S_TRANSLATION_X: 148 return TYPE_TRANSLATION_X; 149 case S_TRANSLATION_Y: 150 return TYPE_TRANSLATION_Y; 151 case S_TRANSLATION_Z: 152 return TYPE_TRANSLATION_Z; 153 case S_ELEVATION: 154 return TYPE_ELEVATION; 155 case S_ROTATION_X: 156 return TYPE_ROTATION_X; 157 case S_ROTATION_Y: 158 return TYPE_ROTATION_Y; 159 case S_ROTATION_Z: 160 return TYPE_ROTATION_Z; 161 case S_SCALE_X: 162 return TYPE_SCALE_X; 163 case S_SCALE_Y: 164 return TYPE_SCALE_Y; 165 case S_PIVOT_X: 166 return TYPE_PIVOT_X; 167 case S_PIVOT_Y: 168 return TYPE_PIVOT_Y; 169 case S_PROGRESS: 170 return TYPE_PROGRESS; 171 case S_PATH_ROTATE: 172 return TYPE_PATH_ROTATE; 173 case S_EASING: 174 return TYPE_EASING; 175 case S_FRAME: 176 return TYPE_FRAME_POSITION; 177 case S_TARGET: 178 return TYPE_TARGET; 179 case S_PIVOT_TARGET: 180 return TYPE_PIVOT_TARGET; 181 } 182 return -1; 183 } 184 getType(int name)185 static int getType(int name) { 186 switch (name) { 187 case TYPE_CURVE_FIT: 188 case TYPE_VISIBILITY: 189 case TYPE_FRAME_POSITION: 190 return INT_MASK; 191 case TYPE_ALPHA: 192 case TYPE_TRANSLATION_X: 193 case TYPE_TRANSLATION_Y: 194 case TYPE_TRANSLATION_Z: 195 case TYPE_ELEVATION: 196 case TYPE_ROTATION_X: 197 case TYPE_ROTATION_Y: 198 case TYPE_ROTATION_Z: 199 case TYPE_SCALE_X: 200 case TYPE_SCALE_Y: 201 case TYPE_PIVOT_X: 202 case TYPE_PIVOT_Y: 203 case TYPE_PROGRESS: 204 case TYPE_PATH_ROTATE: 205 return FLOAT_MASK; 206 case TYPE_EASING: 207 case TYPE_TARGET: 208 case TYPE_PIVOT_TARGET: 209 return STRING_MASK; 210 } 211 return -1; 212 } 213 } 214 215 interface CycleType { 216 String NAME = "KeyCycle"; 217 int TYPE_CURVE_FIT = 401; 218 int TYPE_VISIBILITY = 402; 219 int TYPE_ALPHA = 403; 220 int TYPE_TRANSLATION_X = AttributesType.TYPE_TRANSLATION_X; 221 int TYPE_TRANSLATION_Y = AttributesType.TYPE_TRANSLATION_Y; 222 int TYPE_TRANSLATION_Z = AttributesType.TYPE_TRANSLATION_Z; 223 int TYPE_ELEVATION = AttributesType.TYPE_ELEVATION; 224 225 int TYPE_ROTATION_X = AttributesType.TYPE_ROTATION_X; 226 int TYPE_ROTATION_Y = AttributesType.TYPE_ROTATION_Y; 227 int TYPE_ROTATION_Z = AttributesType.TYPE_ROTATION_Z; 228 int TYPE_SCALE_X = AttributesType.TYPE_SCALE_X; 229 int TYPE_SCALE_Y = AttributesType.TYPE_SCALE_Y; 230 int TYPE_PIVOT_X = AttributesType.TYPE_PIVOT_X; 231 int TYPE_PIVOT_Y = AttributesType.TYPE_PIVOT_Y; 232 int TYPE_PROGRESS = AttributesType.TYPE_PROGRESS; 233 int TYPE_PATH_ROTATE = 416; 234 int TYPE_EASING = 420; 235 int TYPE_WAVE_SHAPE = 421; 236 int TYPE_CUSTOM_WAVE_SHAPE = 422; 237 int TYPE_WAVE_PERIOD = 423; 238 int TYPE_WAVE_OFFSET = 424; 239 int TYPE_WAVE_PHASE = 425; 240 241 String S_CURVE_FIT = "curveFit"; 242 String S_VISIBILITY = "visibility"; 243 String S_ALPHA = AttributesType.S_ALPHA; 244 String S_TRANSLATION_X = AttributesType.S_TRANSLATION_X; 245 String S_TRANSLATION_Y = AttributesType.S_TRANSLATION_Y; 246 String S_TRANSLATION_Z = AttributesType.S_TRANSLATION_Z; 247 String S_ELEVATION = AttributesType.S_ELEVATION; 248 String S_ROTATION_X = AttributesType.S_ROTATION_X; 249 String S_ROTATION_Y = AttributesType.S_ROTATION_Y; 250 String S_ROTATION_Z = AttributesType.S_ROTATION_Z; 251 String S_SCALE_X = AttributesType.S_SCALE_X; 252 String S_SCALE_Y = AttributesType.S_SCALE_Y; 253 String S_PIVOT_X = AttributesType.S_PIVOT_X; 254 String S_PIVOT_Y = AttributesType.S_PIVOT_Y; 255 String S_PROGRESS = AttributesType.S_PROGRESS; 256 257 String S_PATH_ROTATE = "pathRotate"; 258 String S_EASING = "easing"; 259 String S_WAVE_SHAPE = "waveShape"; 260 String S_CUSTOM_WAVE_SHAPE = "customWave"; 261 String S_WAVE_PERIOD = "period"; 262 String S_WAVE_OFFSET = "offset"; 263 String S_WAVE_PHASE = "phase"; 264 String[] KEY_WORDS = { 265 S_CURVE_FIT, 266 S_VISIBILITY, 267 S_ALPHA, 268 S_TRANSLATION_X, 269 S_TRANSLATION_Y, 270 S_TRANSLATION_Z, 271 S_ELEVATION, 272 S_ROTATION_X, 273 S_ROTATION_Y, 274 S_ROTATION_Z, 275 S_SCALE_X, 276 S_SCALE_Y, 277 S_PIVOT_X, 278 S_PIVOT_Y, 279 S_PROGRESS, 280 281 S_PATH_ROTATE, 282 S_EASING, 283 S_WAVE_SHAPE, 284 S_CUSTOM_WAVE_SHAPE, 285 S_WAVE_PERIOD, 286 S_WAVE_OFFSET, 287 S_WAVE_PHASE, 288 }; 289 290 /** 291 * Method to go from String names of values to id of the values 292 * IDs are use for efficiency 293 * 294 * @param name the name of the value 295 * @return the id of the vlalue or -1 if no value exist 296 */ getId(String name)297 static int getId(String name) { 298 switch (name) { 299 case S_CURVE_FIT: 300 return TYPE_CURVE_FIT; 301 case S_VISIBILITY: 302 return TYPE_VISIBILITY; 303 case S_ALPHA: 304 return TYPE_ALPHA; 305 case S_TRANSLATION_X: 306 return TYPE_TRANSLATION_X; 307 case S_TRANSLATION_Y: 308 return TYPE_TRANSLATION_Y; 309 case S_TRANSLATION_Z: 310 return TYPE_TRANSLATION_Z; 311 case S_ROTATION_X: 312 return TYPE_ROTATION_X; 313 case S_ROTATION_Y: 314 return TYPE_ROTATION_Y; 315 case S_ROTATION_Z: 316 return TYPE_ROTATION_Z; 317 case S_SCALE_X: 318 return TYPE_SCALE_X; 319 case S_SCALE_Y: 320 return TYPE_SCALE_Y; 321 case S_PIVOT_X: 322 return TYPE_PIVOT_X; 323 case S_PIVOT_Y: 324 return TYPE_PIVOT_Y; 325 case S_PROGRESS: 326 return TYPE_PROGRESS; 327 case S_PATH_ROTATE: 328 return TYPE_PATH_ROTATE; 329 case S_EASING: 330 return TYPE_EASING; 331 } 332 return -1; 333 } 334 getType(int name)335 static int getType(int name) { 336 switch (name) { 337 case TYPE_CURVE_FIT: 338 case TYPE_VISIBILITY: 339 case TYPE_FRAME_POSITION: 340 return INT_MASK; 341 case TYPE_ALPHA: 342 case TYPE_TRANSLATION_X: 343 case TYPE_TRANSLATION_Y: 344 case TYPE_TRANSLATION_Z: 345 case TYPE_ELEVATION: 346 case TYPE_ROTATION_X: 347 case TYPE_ROTATION_Y: 348 case TYPE_ROTATION_Z: 349 case TYPE_SCALE_X: 350 case TYPE_SCALE_Y: 351 case TYPE_PIVOT_X: 352 case TYPE_PIVOT_Y: 353 case TYPE_PROGRESS: 354 case TYPE_PATH_ROTATE: 355 case TYPE_WAVE_PERIOD: 356 case TYPE_WAVE_OFFSET: 357 case TYPE_WAVE_PHASE: 358 return FLOAT_MASK; 359 case TYPE_EASING: 360 case TYPE_TARGET: 361 case TYPE_WAVE_SHAPE: 362 return STRING_MASK; 363 } 364 return -1; 365 } 366 } 367 368 interface TriggerType { 369 String NAME = "KeyTrigger"; 370 String VIEW_TRANSITION_ON_CROSS = "viewTransitionOnCross"; 371 String VIEW_TRANSITION_ON_POSITIVE_CROSS = "viewTransitionOnPositiveCross"; 372 String VIEW_TRANSITION_ON_NEGATIVE_CROSS = "viewTransitionOnNegativeCross"; 373 String POST_LAYOUT = "postLayout"; 374 String TRIGGER_SLACK = "triggerSlack"; 375 String TRIGGER_COLLISION_VIEW = "triggerCollisionView"; 376 String TRIGGER_COLLISION_ID = "triggerCollisionId"; 377 String TRIGGER_ID = "triggerID"; 378 String POSITIVE_CROSS = "positiveCross"; 379 String NEGATIVE_CROSS = "negativeCross"; 380 String TRIGGER_RECEIVER = "triggerReceiver"; 381 String CROSS = "CROSS"; 382 String[] KEY_WORDS = { 383 VIEW_TRANSITION_ON_CROSS, 384 VIEW_TRANSITION_ON_POSITIVE_CROSS, 385 VIEW_TRANSITION_ON_NEGATIVE_CROSS, 386 POST_LAYOUT, 387 TRIGGER_SLACK, 388 TRIGGER_COLLISION_VIEW, 389 TRIGGER_COLLISION_ID, 390 TRIGGER_ID, 391 POSITIVE_CROSS, 392 NEGATIVE_CROSS, 393 TRIGGER_RECEIVER, 394 CROSS, 395 }; 396 int TYPE_VIEW_TRANSITION_ON_CROSS = 301; 397 int TYPE_VIEW_TRANSITION_ON_POSITIVE_CROSS = 302; 398 int TYPE_VIEW_TRANSITION_ON_NEGATIVE_CROSS = 303; 399 int TYPE_POST_LAYOUT = 304; 400 int TYPE_TRIGGER_SLACK = 305; 401 int TYPE_TRIGGER_COLLISION_VIEW = 306; 402 int TYPE_TRIGGER_COLLISION_ID = 307; 403 int TYPE_TRIGGER_ID = 308; 404 int TYPE_POSITIVE_CROSS = 309; 405 int TYPE_NEGATIVE_CROSS = 310; 406 int TYPE_TRIGGER_RECEIVER = 311; 407 int TYPE_CROSS = 312; 408 409 /** 410 * Method to go from String names of values to id of the values 411 * IDs are use for efficiency 412 * 413 * @param name the name of the value 414 * @return the id of the vlalue or -1 if no value exist 415 */ getId(String name)416 static int getId(String name) { 417 switch (name) { 418 case VIEW_TRANSITION_ON_CROSS: 419 return TYPE_VIEW_TRANSITION_ON_CROSS; 420 case VIEW_TRANSITION_ON_POSITIVE_CROSS: 421 return TYPE_VIEW_TRANSITION_ON_POSITIVE_CROSS; 422 case VIEW_TRANSITION_ON_NEGATIVE_CROSS: 423 return TYPE_VIEW_TRANSITION_ON_NEGATIVE_CROSS; 424 case POST_LAYOUT: 425 return TYPE_POST_LAYOUT; 426 case TRIGGER_SLACK: 427 return TYPE_TRIGGER_SLACK; 428 case TRIGGER_COLLISION_VIEW: 429 return TYPE_TRIGGER_COLLISION_VIEW; 430 case TRIGGER_COLLISION_ID: 431 return TYPE_TRIGGER_COLLISION_ID; 432 case TRIGGER_ID: 433 return TYPE_TRIGGER_ID; 434 case POSITIVE_CROSS: 435 return TYPE_POSITIVE_CROSS; 436 case NEGATIVE_CROSS: 437 return TYPE_NEGATIVE_CROSS; 438 case TRIGGER_RECEIVER: 439 return TYPE_TRIGGER_RECEIVER; 440 case CROSS: 441 return TYPE_CROSS; 442 } 443 return -1; 444 } 445 } 446 447 interface PositionType { 448 String NAME = "KeyPosition"; 449 String S_TRANSITION_EASING = "transitionEasing"; 450 String S_DRAWPATH = "drawPath"; 451 String S_PERCENT_WIDTH = "percentWidth"; 452 String S_PERCENT_HEIGHT = "percentHeight"; 453 String S_SIZE_PERCENT = "sizePercent"; 454 String S_PERCENT_X = "percentX"; 455 String S_PERCENT_Y = "percentY"; 456 457 int TYPE_TRANSITION_EASING = 501; 458 int TYPE_DRAWPATH = 502; 459 int TYPE_PERCENT_WIDTH = 503; 460 int TYPE_PERCENT_HEIGHT = 504; 461 int TYPE_SIZE_PERCENT = 505; 462 int TYPE_PERCENT_X = 506; 463 int TYPE_PERCENT_Y = 507; 464 int TYPE_CURVE_FIT = 508; 465 int TYPE_PATH_MOTION_ARC = 509; 466 int TYPE_POSITION_TYPE = 510; 467 String[] KEY_WORDS = { 468 S_TRANSITION_EASING, 469 S_DRAWPATH, 470 S_PERCENT_WIDTH, 471 S_PERCENT_HEIGHT, 472 S_SIZE_PERCENT, 473 S_PERCENT_X, 474 S_PERCENT_Y, 475 }; 476 477 /** 478 * Method to go from String names of values to id of the values 479 * IDs are use for efficiency 480 * 481 * @param name the name of the value 482 * @return the id of the vlalue or -1 if no value exist 483 */ getId(String name)484 static int getId(String name) { 485 switch (name) { 486 case S_TRANSITION_EASING: 487 return PositionType.TYPE_TRANSITION_EASING; 488 case S_DRAWPATH: 489 return PositionType.TYPE_DRAWPATH; 490 case S_PERCENT_WIDTH: 491 return PositionType.TYPE_PERCENT_WIDTH; 492 case S_PERCENT_HEIGHT: 493 return PositionType.TYPE_PERCENT_HEIGHT; 494 case S_SIZE_PERCENT: 495 return PositionType.TYPE_SIZE_PERCENT; 496 case S_PERCENT_X: 497 return PositionType.TYPE_PERCENT_X; 498 case S_PERCENT_Y: 499 return PositionType.TYPE_PERCENT_Y; 500 } 501 return -1; 502 } 503 getType(int name)504 static int getType(int name) { 505 switch (name) { 506 case TYPE_CURVE_FIT: 507 case TYPE_FRAME_POSITION: 508 return INT_MASK; 509 case TYPE_PERCENT_WIDTH: 510 case TYPE_PERCENT_HEIGHT: 511 case TYPE_SIZE_PERCENT: 512 case TYPE_PERCENT_X: 513 case TYPE_PERCENT_Y: 514 return FLOAT_MASK; 515 case TYPE_TRANSITION_EASING: 516 case TYPE_TARGET: 517 case TYPE_DRAWPATH: 518 return STRING_MASK; 519 } 520 return -1; 521 } 522 523 524 } 525 526 interface MotionType { 527 String NAME = "Motion"; 528 529 String S_STAGGER = "Stagger"; 530 String S_PATH_ROTATE = "PathRotate"; 531 String S_QUANTIZE_MOTION_PHASE = "QuantizeMotionPhase"; 532 String S_EASING = "TransitionEasing"; 533 String S_QUANTIZE_INTERPOLATOR = "QuantizeInterpolator"; 534 String S_ANIMATE_RELATIVE_TO = "AnimateRelativeTo"; 535 String S_ANIMATE_CIRCLEANGLE_TO = "AnimateCircleAngleTo"; 536 String S_PATHMOTION_ARC = "PathMotionArc"; 537 String S_DRAW_PATH = "DrawPath"; 538 String S_POLAR_RELATIVETO = "PolarRelativeTo"; 539 String S_QUANTIZE_MOTIONSTEPS = "QuantizeMotionSteps"; 540 String S_QUANTIZE_INTERPOLATOR_TYPE = "QuantizeInterpolatorType"; 541 String S_QUANTIZE_INTERPOLATOR_ID = "QuantizeInterpolatorID"; 542 String[] KEY_WORDS = { 543 S_STAGGER, 544 S_PATH_ROTATE, 545 S_QUANTIZE_MOTION_PHASE, 546 S_EASING, 547 S_QUANTIZE_INTERPOLATOR, 548 S_ANIMATE_RELATIVE_TO, 549 S_ANIMATE_CIRCLEANGLE_TO, 550 S_PATHMOTION_ARC, 551 S_DRAW_PATH, 552 S_POLAR_RELATIVETO, 553 S_QUANTIZE_MOTIONSTEPS, 554 S_QUANTIZE_INTERPOLATOR_TYPE, 555 S_QUANTIZE_INTERPOLATOR_ID, 556 }; 557 int TYPE_STAGGER = 600; 558 int TYPE_PATH_ROTATE = 601; 559 int TYPE_QUANTIZE_MOTION_PHASE = 602; 560 int TYPE_EASING = 603; 561 int TYPE_QUANTIZE_INTERPOLATOR = 604; 562 int TYPE_ANIMATE_RELATIVE_TO = 605; 563 int TYPE_ANIMATE_CIRCLEANGLE_TO = 606; 564 int TYPE_PATHMOTION_ARC = 607; 565 int TYPE_DRAW_PATH = 608; 566 int TYPE_POLAR_RELATIVETO = 609; 567 int TYPE_QUANTIZE_MOTIONSTEPS = 610; 568 int TYPE_QUANTIZE_INTERPOLATOR_TYPE = 611; 569 int TYPE_QUANTIZE_INTERPOLATOR_ID = 612; 570 571 /** 572 * Method to go from String names of values to id of the values 573 * IDs are use for efficiency 574 * 575 * @param name the name of the value 576 * @return the id of the vlalue or -1 if no value exist 577 */ getId(String name)578 static int getId(String name) { 579 switch (name) { 580 case S_STAGGER: 581 return TYPE_STAGGER; 582 case S_PATH_ROTATE: 583 return TYPE_PATH_ROTATE; 584 case S_QUANTIZE_MOTION_PHASE: 585 return TYPE_QUANTIZE_MOTION_PHASE; 586 case S_EASING: 587 return TYPE_EASING; 588 case S_QUANTIZE_INTERPOLATOR: 589 return TYPE_QUANTIZE_INTERPOLATOR; 590 case S_ANIMATE_RELATIVE_TO: 591 return TYPE_ANIMATE_RELATIVE_TO; 592 case S_ANIMATE_CIRCLEANGLE_TO: 593 return TYPE_ANIMATE_CIRCLEANGLE_TO; 594 case S_PATHMOTION_ARC: 595 return TYPE_PATHMOTION_ARC; 596 case S_DRAW_PATH: 597 return TYPE_DRAW_PATH; 598 case S_POLAR_RELATIVETO: 599 return TYPE_POLAR_RELATIVETO; 600 case S_QUANTIZE_MOTIONSTEPS: 601 return TYPE_QUANTIZE_MOTIONSTEPS; 602 case S_QUANTIZE_INTERPOLATOR_TYPE: 603 return TYPE_QUANTIZE_INTERPOLATOR_TYPE; 604 case S_QUANTIZE_INTERPOLATOR_ID: 605 return TYPE_QUANTIZE_INTERPOLATOR_ID; 606 } 607 return -1; 608 } 609 610 } 611 612 interface Custom { 613 String NAME = "Custom"; 614 String S_INT = "integer"; 615 String S_FLOAT = "float"; 616 String S_COLOR = "color"; 617 String S_STRING = "string"; 618 String S_BOOLEAN = "boolean"; 619 String S_DIMENSION = "dimension"; 620 String S_REFERENCE = "reference"; 621 String[] KEY_WORDS = { 622 S_FLOAT, 623 S_COLOR, 624 S_STRING, 625 S_BOOLEAN, 626 S_DIMENSION, 627 S_REFERENCE, 628 }; 629 int TYPE_INT = 900; 630 int TYPE_FLOAT = 901; 631 int TYPE_COLOR = 902; 632 int TYPE_STRING = 903; 633 int TYPE_BOOLEAN = 904; 634 int TYPE_DIMENSION = 905; 635 int TYPE_REFERENCE = 906; 636 637 /** 638 * Method to go from String names of values to id of the values 639 * IDs are use for efficiency 640 * 641 * @param name the name of the value 642 * @return the id of the vlalue or -1 if no value exist 643 */ getId(String name)644 static int getId(String name) { 645 switch (name) { 646 case S_INT: 647 return TYPE_INT; 648 case S_FLOAT: 649 return TYPE_FLOAT; 650 case S_COLOR: 651 return TYPE_COLOR; 652 case S_STRING: 653 return TYPE_STRING; 654 case S_BOOLEAN: 655 return TYPE_BOOLEAN; 656 case S_DIMENSION: 657 return TYPE_DIMENSION; 658 case S_REFERENCE: 659 return TYPE_REFERENCE; 660 } 661 return -1; 662 } 663 } 664 665 interface MotionScene { 666 String NAME = "MotionScene"; 667 String S_DEFAULT_DURATION = "defaultDuration"; 668 String S_LAYOUT_DURING_TRANSITION = "layoutDuringTransition"; 669 int TYPE_DEFAULT_DURATION = 600; 670 int TYPE_LAYOUT_DURING_TRANSITION = 601; 671 672 String[] KEY_WORDS = { 673 S_DEFAULT_DURATION, 674 S_LAYOUT_DURING_TRANSITION, 675 }; 676 getType(int name)677 static int getType(int name) { 678 switch (name) { 679 case TYPE_DEFAULT_DURATION: 680 return INT_MASK; 681 case TYPE_LAYOUT_DURING_TRANSITION: 682 return BOOLEAN_MASK; 683 } 684 return -1; 685 } 686 687 /** 688 * Method to go from String names of values to id of the values 689 * IDs are use for efficiency 690 * 691 * @param name the name of the value 692 * @return the id of the vlalue or -1 if no value exist 693 */ getId(String name)694 static int getId(String name) { 695 switch (name) { 696 case S_DEFAULT_DURATION: 697 return TYPE_DEFAULT_DURATION; 698 case S_LAYOUT_DURING_TRANSITION: 699 return TYPE_LAYOUT_DURING_TRANSITION; 700 } 701 return -1; 702 } 703 } 704 705 interface TransitionType { 706 String NAME = "Transitions"; 707 String S_DURATION = "duration"; 708 String S_FROM = "from"; 709 String S_TO = "to"; 710 String S_PATH_MOTION_ARC = "pathMotionArc"; 711 String S_AUTO_TRANSITION = "autoTransition"; 712 String S_INTERPOLATOR = "motionInterpolator"; 713 String S_STAGGERED = "staggered"; 714 String S_TRANSITION_FLAGS = "transitionFlags"; 715 716 int TYPE_DURATION = 700; 717 int TYPE_FROM = 701; 718 int TYPE_TO = 702; 719 int TYPE_PATH_MOTION_ARC = PositionType.TYPE_PATH_MOTION_ARC; 720 int TYPE_AUTO_TRANSITION = 704; 721 int TYPE_INTERPOLATOR = 705; 722 int TYPE_STAGGERED = 706; 723 int TYPE_TRANSITION_FLAGS = 707; 724 725 726 String[] KEY_WORDS = { 727 S_DURATION, 728 S_FROM, 729 S_TO, 730 S_PATH_MOTION_ARC, 731 S_AUTO_TRANSITION, 732 S_INTERPOLATOR, 733 S_STAGGERED, 734 S_FROM, 735 S_TRANSITION_FLAGS, 736 }; 737 getType(int name)738 static int getType(int name) { 739 switch (name) { 740 case TYPE_DURATION: 741 case TYPE_PATH_MOTION_ARC: 742 return INT_MASK; 743 case TYPE_FROM: 744 case TYPE_TO: 745 case TYPE_INTERPOLATOR: 746 case TYPE_TRANSITION_FLAGS: 747 return STRING_MASK; 748 749 case TYPE_STAGGERED: 750 return FLOAT_MASK; 751 } 752 return -1; 753 } 754 755 /** 756 * Method to go from String names of values to id of the values 757 * IDs are use for efficiency 758 * 759 * @param name the name of the value 760 * @return the id of the vlalue or -1 if no value exist 761 */ getId(String name)762 static int getId(String name) { 763 switch (name) { 764 case S_DURATION: 765 return TYPE_DURATION; 766 case S_FROM: 767 return TYPE_FROM; 768 case S_TO: 769 return TYPE_TO; 770 case S_PATH_MOTION_ARC: 771 return TYPE_PATH_MOTION_ARC; 772 case S_AUTO_TRANSITION: 773 return TYPE_AUTO_TRANSITION; 774 case S_INTERPOLATOR: 775 return TYPE_INTERPOLATOR; 776 case S_STAGGERED: 777 return TYPE_STAGGERED; 778 case S_TRANSITION_FLAGS: 779 return TYPE_TRANSITION_FLAGS; 780 } 781 return -1; 782 } 783 } 784 785 interface OnSwipe { 786 String DRAG_SCALE = "dragscale"; 787 String DRAG_THRESHOLD = "dragthreshold"; 788 789 String MAX_VELOCITY = "maxvelocity"; 790 String MAX_ACCELERATION = "maxacceleration"; 791 String SPRING_MASS = "springmass"; 792 String SPRING_STIFFNESS = "springstiffness"; 793 String SPRING_DAMPING = "springdamping"; 794 String SPRINGS_TOP_THRESHOLD = "springstopthreshold"; 795 796 String DRAG_DIRECTION = "dragdirection"; 797 String TOUCH_ANCHOR_ID = "touchanchorid"; 798 String TOUCH_ANCHOR_SIDE = "touchanchorside"; 799 String ROTATION_CENTER_ID = "rotationcenterid"; 800 String TOUCH_REGION_ID = "touchregionid"; 801 String LIMIT_BOUNDS_TO = "limitboundsto"; 802 803 String MOVE_WHEN_SCROLLAT_TOP = "movewhenscrollattop"; 804 String ON_TOUCH_UP = "ontouchup"; 805 String[] ON_TOUCH_UP_ENUM = {"autoComplete", 806 "autoCompleteToStart", 807 "autoCompleteToEnd", 808 "stop", 809 "decelerate", 810 "decelerateAndComplete", 811 "neverCompleteToStart", 812 "neverCompleteToEnd"}; 813 814 815 String SPRING_BOUNDARY = "springboundary"; 816 String[] SPRING_BOUNDARY_ENUM = {"overshoot", 817 "bounceStart", 818 "bounceEnd", 819 "bounceBoth"}; 820 821 String AUTOCOMPLETE_MODE = "autocompletemode"; 822 String[] AUTOCOMPLETE_MODE_ENUM = { 823 "continuousVelocity", 824 "spring"}; 825 826 String NESTED_SCROLL_FLAGS = "nestedscrollflags"; 827 String[] NESTED_SCROLL_FLAGS_ENUM = {"none", 828 "disablePostScroll", 829 "disableScroll", 830 "supportScrollUp"}; 831 832 } 833 834 } 835