From 5e92c95d847a68178cf6099c801f82dcb7e4fa47 Mon Sep 17 00:00:00 2001 From: Alan Viverette Date: Fri, 9 May 2014 13:03:12 -0700 Subject: [PATCH] Animated state transition drawable Change-Id: I6c795d55cd7ab9163fdd6fe6ce3771bbd7015d62 --- api/current.txt | 9 + .../btn_check_anim_00000_qntm_alpha.png | Bin 0 -> 211 bytes .../btn_check_anim_00001_qntm_alpha.png | Bin 0 -> 227 bytes .../btn_check_anim_00002_qntm_alpha.png | Bin 0 -> 219 bytes .../btn_check_anim_00003_qntm_alpha.png | Bin 0 -> 206 bytes .../btn_check_anim_00004_qntm_alpha.png | Bin 0 -> 169 bytes .../btn_check_anim_00005_qntm_alpha.png | Bin 0 -> 174 bytes .../btn_check_anim_00006_qntm_alpha.png | Bin 0 -> 227 bytes .../btn_check_anim_00007_qntm_alpha.png | Bin 0 -> 225 bytes .../btn_check_anim_00008_qntm_alpha.png | Bin 0 -> 300 bytes .../btn_check_anim_00009_qntm_alpha.png | Bin 0 -> 353 bytes .../btn_check_anim_00010_qntm_alpha.png | Bin 0 -> 355 bytes .../btn_check_anim_00011_qntm_alpha.png | Bin 0 -> 364 bytes .../btn_check_anim_00012_qntm_alpha.png | Bin 0 -> 373 bytes .../btn_check_anim_00013_qntm_alpha.png | Bin 0 -> 365 bytes .../btn_check_anim_00014_qntm_alpha.png | Bin 0 -> 355 bytes .../btn_check_anim_00015_qntm_alpha.png | Bin 0 -> 338 bytes .../btn_radio_anim_00000_qntm_alpha.png | Bin 0 -> 541 bytes .../btn_radio_anim_00001_qntm_alpha.png | Bin 0 -> 523 bytes .../btn_radio_anim_00002_qntm_alpha.png | Bin 0 -> 428 bytes .../btn_radio_anim_00003_qntm_alpha.png | Bin 0 -> 383 bytes .../btn_radio_anim_00004_qntm_alpha.png | Bin 0 -> 533 bytes .../btn_radio_anim_00005_qntm_alpha.png | Bin 0 -> 640 bytes .../btn_radio_anim_00006_qntm_alpha.png | Bin 0 -> 649 bytes .../btn_radio_anim_00007_qntm_alpha.png | Bin 0 -> 694 bytes .../btn_radio_anim_00008_qntm_alpha.png | Bin 0 -> 706 bytes .../btn_radio_anim_00009_qntm_alpha.png | Bin 0 -> 648 bytes .../btn_radio_anim_00010_qntm_alpha.png | Bin 0 -> 684 bytes .../btn_radio_anim_00011_qntm_alpha.png | Bin 0 -> 678 bytes .../btn_radio_anim_00012_qntm_alpha.png | Bin 0 -> 677 bytes .../btn_radio_anim_00013_qntm_alpha.png | Bin 0 -> 649 bytes .../btn_radio_anim_00014_qntm_alpha.png | Bin 0 -> 657 bytes .../btn_radio_anim_00015_qntm_alpha.png | Bin 0 -> 666 bytes .../btn_check_anim_00000_qntm_alpha.png | Bin 0 -> 127 bytes .../btn_check_anim_00001_qntm_alpha.png | Bin 0 -> 138 bytes .../btn_check_anim_00002_qntm_alpha.png | Bin 0 -> 155 bytes .../btn_check_anim_00003_qntm_alpha.png | Bin 0 -> 134 bytes .../btn_check_anim_00004_qntm_alpha.png | Bin 0 -> 134 bytes .../btn_check_anim_00005_qntm_alpha.png | Bin 0 -> 123 bytes .../btn_check_anim_00006_qntm_alpha.png | Bin 0 -> 143 bytes .../btn_check_anim_00007_qntm_alpha.png | Bin 0 -> 159 bytes .../btn_check_anim_00008_qntm_alpha.png | Bin 0 -> 184 bytes .../btn_check_anim_00009_qntm_alpha.png | Bin 0 -> 184 bytes .../btn_check_anim_00010_qntm_alpha.png | Bin 0 -> 191 bytes .../btn_check_anim_00011_qntm_alpha.png | Bin 0 -> 197 bytes .../btn_check_anim_00012_qntm_alpha.png | Bin 0 -> 197 bytes .../btn_check_anim_00013_qntm_alpha.png | Bin 0 -> 194 bytes .../btn_check_anim_00014_qntm_alpha.png | Bin 0 -> 192 bytes .../btn_check_anim_00015_qntm_alpha.png | Bin 0 -> 189 bytes .../btn_radio_anim_00000_qntm_alpha.png | Bin 0 -> 253 bytes .../btn_radio_anim_00001_qntm_alpha.png | Bin 0 -> 240 bytes .../btn_radio_anim_00002_qntm_alpha.png | Bin 0 -> 202 bytes .../btn_radio_anim_00003_qntm_alpha.png | Bin 0 -> 207 bytes .../btn_radio_anim_00004_qntm_alpha.png | Bin 0 -> 263 bytes .../btn_radio_anim_00005_qntm_alpha.png | Bin 0 -> 260 bytes .../btn_radio_anim_00006_qntm_alpha.png | Bin 0 -> 278 bytes .../btn_radio_anim_00007_qntm_alpha.png | Bin 0 -> 287 bytes .../btn_radio_anim_00008_qntm_alpha.png | Bin 0 -> 295 bytes .../btn_radio_anim_00009_qntm_alpha.png | Bin 0 -> 285 bytes .../btn_radio_anim_00010_qntm_alpha.png | Bin 0 -> 292 bytes .../btn_radio_anim_00011_qntm_alpha.png | Bin 0 -> 293 bytes .../btn_radio_anim_00012_qntm_alpha.png | Bin 0 -> 281 bytes .../btn_radio_anim_00013_qntm_alpha.png | Bin 0 -> 283 bytes .../btn_radio_anim_00014_qntm_alpha.png | Bin 0 -> 285 bytes .../btn_radio_anim_00015_qntm_alpha.png | Bin 0 -> 283 bytes .../btn_check_anim_00000_qntm_alpha.png | Bin 0 -> 186 bytes .../btn_check_anim_00001_qntm_alpha.png | Bin 0 -> 206 bytes .../btn_check_anim_00002_qntm_alpha.png | Bin 0 -> 220 bytes .../btn_check_anim_00003_qntm_alpha.png | Bin 0 -> 201 bytes .../btn_check_anim_00004_qntm_alpha.png | Bin 0 -> 178 bytes .../btn_check_anim_00005_qntm_alpha.png | Bin 0 -> 177 bytes .../btn_check_anim_00006_qntm_alpha.png | Bin 0 -> 228 bytes .../btn_check_anim_00007_qntm_alpha.png | Bin 0 -> 233 bytes .../btn_check_anim_00008_qntm_alpha.png | Bin 0 -> 272 bytes .../btn_check_anim_00009_qntm_alpha.png | Bin 0 -> 308 bytes .../btn_check_anim_00010_qntm_alpha.png | Bin 0 -> 305 bytes .../btn_check_anim_00011_qntm_alpha.png | Bin 0 -> 326 bytes .../btn_check_anim_00012_qntm_alpha.png | Bin 0 -> 325 bytes .../btn_check_anim_00013_qntm_alpha.png | Bin 0 -> 313 bytes .../btn_check_anim_00014_qntm_alpha.png | Bin 0 -> 310 bytes .../btn_check_anim_00015_qntm_alpha.png | Bin 0 -> 300 bytes .../btn_radio_anim_00000_qntm_alpha.png | Bin 0 -> 474 bytes .../btn_radio_anim_00001_qntm_alpha.png | Bin 0 -> 433 bytes .../btn_radio_anim_00002_qntm_alpha.png | Bin 0 -> 359 bytes .../btn_radio_anim_00003_qntm_alpha.png | Bin 0 -> 353 bytes .../btn_radio_anim_00004_qntm_alpha.png | Bin 0 -> 488 bytes .../btn_radio_anim_00005_qntm_alpha.png | Bin 0 -> 507 bytes .../btn_radio_anim_00006_qntm_alpha.png | Bin 0 -> 547 bytes .../btn_radio_anim_00007_qntm_alpha.png | Bin 0 -> 523 bytes .../btn_radio_anim_00008_qntm_alpha.png | Bin 0 -> 560 bytes .../btn_radio_anim_00009_qntm_alpha.png | Bin 0 -> 550 bytes .../btn_radio_anim_00010_qntm_alpha.png | Bin 0 -> 556 bytes .../btn_radio_anim_00011_qntm_alpha.png | Bin 0 -> 558 bytes .../btn_radio_anim_00012_qntm_alpha.png | Bin 0 -> 566 bytes .../btn_radio_anim_00013_qntm_alpha.png | Bin 0 -> 571 bytes .../btn_radio_anim_00014_qntm_alpha.png | Bin 0 -> 561 bytes .../btn_radio_anim_00015_qntm_alpha.png | Bin 0 -> 555 bytes .../btn_check_anim_00000_qntm_alpha.png | Bin 0 -> 513 bytes .../btn_check_anim_00001_qntm_alpha.png | Bin 0 -> 565 bytes .../btn_check_anim_00002_qntm_alpha.png | Bin 0 -> 605 bytes .../btn_check_anim_00003_qntm_alpha.png | Bin 0 -> 536 bytes .../btn_check_anim_00004_qntm_alpha.png | Bin 0 -> 436 bytes .../btn_check_anim_00005_qntm_alpha.png | Bin 0 -> 403 bytes .../btn_check_anim_00006_qntm_alpha.png | Bin 0 -> 593 bytes .../btn_check_anim_00007_qntm_alpha.png | Bin 0 -> 613 bytes .../btn_check_anim_00008_qntm_alpha.png | Bin 0 -> 757 bytes .../btn_check_anim_00009_qntm_alpha.png | Bin 0 -> 826 bytes .../btn_check_anim_00010_qntm_alpha.png | Bin 0 -> 832 bytes .../btn_check_anim_00011_qntm_alpha.png | Bin 0 -> 890 bytes .../btn_check_anim_00012_qntm_alpha.png | Bin 0 -> 886 bytes .../btn_check_anim_00013_qntm_alpha.png | Bin 0 -> 886 bytes .../btn_check_anim_00014_qntm_alpha.png | Bin 0 -> 838 bytes .../btn_check_anim_00015_qntm_alpha.png | Bin 0 -> 808 bytes .../btn_radio_anim_00000_qntm_alpha.png | Bin 0 -> 1821 bytes .../btn_radio_anim_00001_qntm_alpha.png | Bin 0 -> 1636 bytes .../btn_radio_anim_00002_qntm_alpha.png | Bin 0 -> 1227 bytes .../btn_radio_anim_00003_qntm_alpha.png | Bin 0 -> 1139 bytes .../btn_radio_anim_00004_qntm_alpha.png | Bin 0 -> 1700 bytes .../btn_radio_anim_00005_qntm_alpha.png | Bin 0 -> 2050 bytes .../btn_radio_anim_00006_qntm_alpha.png | Bin 0 -> 2205 bytes .../btn_radio_anim_00007_qntm_alpha.png | Bin 0 -> 2185 bytes .../btn_radio_anim_00008_qntm_alpha.png | Bin 0 -> 2193 bytes .../btn_radio_anim_00009_qntm_alpha.png | Bin 0 -> 2285 bytes .../btn_radio_anim_00010_qntm_alpha.png | Bin 0 -> 2233 bytes .../btn_radio_anim_00011_qntm_alpha.png | Bin 0 -> 2255 bytes .../btn_radio_anim_00012_qntm_alpha.png | Bin 0 -> 2280 bytes .../btn_radio_anim_00013_qntm_alpha.png | Bin 0 -> 2280 bytes .../btn_radio_anim_00014_qntm_alpha.png | Bin 0 -> 2274 bytes .../btn_radio_anim_00015_qntm_alpha.png | Bin 0 -> 2181 bytes .../res/drawable/btn_check_quantum_anim.xml | 106 +++- .../res/drawable/btn_radio_quantum_anim.xml | 104 ++++ core/res/res/values/attrs.xml | 52 ++ core/res/res/values/public.xml | 3 + core/res/res/values/themes_quantum.xml | 8 +- .../drawable/AnimatedStateListDrawable.java | 524 ++++++++++++++++++ .../graphics/drawable/AnimationDrawable.java | 2 +- .../android/graphics/drawable/Drawable.java | 2 + .../graphics/drawable/DrawableContainer.java | 10 + .../graphics/drawable/StateListDrawable.java | 31 +- 139 files changed, 822 insertions(+), 29 deletions(-) create mode 100644 core/res/res/drawable-hdpi/btn_check_anim_00000_qntm_alpha.png create mode 100644 core/res/res/drawable-hdpi/btn_check_anim_00001_qntm_alpha.png create mode 100644 core/res/res/drawable-hdpi/btn_check_anim_00002_qntm_alpha.png create mode 100644 core/res/res/drawable-hdpi/btn_check_anim_00003_qntm_alpha.png create mode 100644 core/res/res/drawable-hdpi/btn_check_anim_00004_qntm_alpha.png create mode 100644 core/res/res/drawable-hdpi/btn_check_anim_00005_qntm_alpha.png create mode 100644 core/res/res/drawable-hdpi/btn_check_anim_00006_qntm_alpha.png create mode 100644 core/res/res/drawable-hdpi/btn_check_anim_00007_qntm_alpha.png create mode 100644 core/res/res/drawable-hdpi/btn_check_anim_00008_qntm_alpha.png create mode 100644 core/res/res/drawable-hdpi/btn_check_anim_00009_qntm_alpha.png create mode 100644 core/res/res/drawable-hdpi/btn_check_anim_00010_qntm_alpha.png create mode 100644 core/res/res/drawable-hdpi/btn_check_anim_00011_qntm_alpha.png create mode 100644 core/res/res/drawable-hdpi/btn_check_anim_00012_qntm_alpha.png create mode 100644 core/res/res/drawable-hdpi/btn_check_anim_00013_qntm_alpha.png create mode 100644 core/res/res/drawable-hdpi/btn_check_anim_00014_qntm_alpha.png create mode 100644 core/res/res/drawable-hdpi/btn_check_anim_00015_qntm_alpha.png create mode 100644 core/res/res/drawable-hdpi/btn_radio_anim_00000_qntm_alpha.png create mode 100644 core/res/res/drawable-hdpi/btn_radio_anim_00001_qntm_alpha.png create mode 100644 core/res/res/drawable-hdpi/btn_radio_anim_00002_qntm_alpha.png create mode 100644 core/res/res/drawable-hdpi/btn_radio_anim_00003_qntm_alpha.png create mode 100644 core/res/res/drawable-hdpi/btn_radio_anim_00004_qntm_alpha.png create mode 100644 core/res/res/drawable-hdpi/btn_radio_anim_00005_qntm_alpha.png create mode 100644 core/res/res/drawable-hdpi/btn_radio_anim_00006_qntm_alpha.png create mode 100644 core/res/res/drawable-hdpi/btn_radio_anim_00007_qntm_alpha.png create mode 100644 core/res/res/drawable-hdpi/btn_radio_anim_00008_qntm_alpha.png create mode 100644 core/res/res/drawable-hdpi/btn_radio_anim_00009_qntm_alpha.png create mode 100644 core/res/res/drawable-hdpi/btn_radio_anim_00010_qntm_alpha.png create mode 100644 core/res/res/drawable-hdpi/btn_radio_anim_00011_qntm_alpha.png create mode 100644 core/res/res/drawable-hdpi/btn_radio_anim_00012_qntm_alpha.png create mode 100644 core/res/res/drawable-hdpi/btn_radio_anim_00013_qntm_alpha.png create mode 100644 core/res/res/drawable-hdpi/btn_radio_anim_00014_qntm_alpha.png create mode 100644 core/res/res/drawable-hdpi/btn_radio_anim_00015_qntm_alpha.png create mode 100644 core/res/res/drawable-mdpi/btn_check_anim_00000_qntm_alpha.png create mode 100644 core/res/res/drawable-mdpi/btn_check_anim_00001_qntm_alpha.png create mode 100644 core/res/res/drawable-mdpi/btn_check_anim_00002_qntm_alpha.png create mode 100644 core/res/res/drawable-mdpi/btn_check_anim_00003_qntm_alpha.png create mode 100644 core/res/res/drawable-mdpi/btn_check_anim_00004_qntm_alpha.png create mode 100644 core/res/res/drawable-mdpi/btn_check_anim_00005_qntm_alpha.png create mode 100644 core/res/res/drawable-mdpi/btn_check_anim_00006_qntm_alpha.png create mode 100644 core/res/res/drawable-mdpi/btn_check_anim_00007_qntm_alpha.png create mode 100644 core/res/res/drawable-mdpi/btn_check_anim_00008_qntm_alpha.png create mode 100644 core/res/res/drawable-mdpi/btn_check_anim_00009_qntm_alpha.png create mode 100644 core/res/res/drawable-mdpi/btn_check_anim_00010_qntm_alpha.png create mode 100644 core/res/res/drawable-mdpi/btn_check_anim_00011_qntm_alpha.png create mode 100644 core/res/res/drawable-mdpi/btn_check_anim_00012_qntm_alpha.png create mode 100644 core/res/res/drawable-mdpi/btn_check_anim_00013_qntm_alpha.png create mode 100644 core/res/res/drawable-mdpi/btn_check_anim_00014_qntm_alpha.png create mode 100644 core/res/res/drawable-mdpi/btn_check_anim_00015_qntm_alpha.png create mode 100644 core/res/res/drawable-mdpi/btn_radio_anim_00000_qntm_alpha.png create mode 100644 core/res/res/drawable-mdpi/btn_radio_anim_00001_qntm_alpha.png create mode 100644 core/res/res/drawable-mdpi/btn_radio_anim_00002_qntm_alpha.png create mode 100644 core/res/res/drawable-mdpi/btn_radio_anim_00003_qntm_alpha.png create mode 100644 core/res/res/drawable-mdpi/btn_radio_anim_00004_qntm_alpha.png create mode 100644 core/res/res/drawable-mdpi/btn_radio_anim_00005_qntm_alpha.png create mode 100644 core/res/res/drawable-mdpi/btn_radio_anim_00006_qntm_alpha.png create mode 100644 core/res/res/drawable-mdpi/btn_radio_anim_00007_qntm_alpha.png create mode 100644 core/res/res/drawable-mdpi/btn_radio_anim_00008_qntm_alpha.png create mode 100644 core/res/res/drawable-mdpi/btn_radio_anim_00009_qntm_alpha.png create mode 100644 core/res/res/drawable-mdpi/btn_radio_anim_00010_qntm_alpha.png create mode 100644 core/res/res/drawable-mdpi/btn_radio_anim_00011_qntm_alpha.png create mode 100644 core/res/res/drawable-mdpi/btn_radio_anim_00012_qntm_alpha.png create mode 100644 core/res/res/drawable-mdpi/btn_radio_anim_00013_qntm_alpha.png create mode 100644 core/res/res/drawable-mdpi/btn_radio_anim_00014_qntm_alpha.png create mode 100644 core/res/res/drawable-mdpi/btn_radio_anim_00015_qntm_alpha.png create mode 100644 core/res/res/drawable-xhdpi/btn_check_anim_00000_qntm_alpha.png create mode 100644 core/res/res/drawable-xhdpi/btn_check_anim_00001_qntm_alpha.png create mode 100644 core/res/res/drawable-xhdpi/btn_check_anim_00002_qntm_alpha.png create mode 100644 core/res/res/drawable-xhdpi/btn_check_anim_00003_qntm_alpha.png create mode 100644 core/res/res/drawable-xhdpi/btn_check_anim_00004_qntm_alpha.png create mode 100644 core/res/res/drawable-xhdpi/btn_check_anim_00005_qntm_alpha.png create mode 100644 core/res/res/drawable-xhdpi/btn_check_anim_00006_qntm_alpha.png create mode 100644 core/res/res/drawable-xhdpi/btn_check_anim_00007_qntm_alpha.png create mode 100644 core/res/res/drawable-xhdpi/btn_check_anim_00008_qntm_alpha.png create mode 100644 core/res/res/drawable-xhdpi/btn_check_anim_00009_qntm_alpha.png create mode 100644 core/res/res/drawable-xhdpi/btn_check_anim_00010_qntm_alpha.png create mode 100644 core/res/res/drawable-xhdpi/btn_check_anim_00011_qntm_alpha.png create mode 100644 core/res/res/drawable-xhdpi/btn_check_anim_00012_qntm_alpha.png create mode 100644 core/res/res/drawable-xhdpi/btn_check_anim_00013_qntm_alpha.png create mode 100644 core/res/res/drawable-xhdpi/btn_check_anim_00014_qntm_alpha.png create mode 100644 core/res/res/drawable-xhdpi/btn_check_anim_00015_qntm_alpha.png create mode 100644 core/res/res/drawable-xhdpi/btn_radio_anim_00000_qntm_alpha.png create mode 100644 core/res/res/drawable-xhdpi/btn_radio_anim_00001_qntm_alpha.png create mode 100644 core/res/res/drawable-xhdpi/btn_radio_anim_00002_qntm_alpha.png create mode 100644 core/res/res/drawable-xhdpi/btn_radio_anim_00003_qntm_alpha.png create mode 100644 core/res/res/drawable-xhdpi/btn_radio_anim_00004_qntm_alpha.png create mode 100644 core/res/res/drawable-xhdpi/btn_radio_anim_00005_qntm_alpha.png create mode 100644 core/res/res/drawable-xhdpi/btn_radio_anim_00006_qntm_alpha.png create mode 100644 core/res/res/drawable-xhdpi/btn_radio_anim_00007_qntm_alpha.png create mode 100644 core/res/res/drawable-xhdpi/btn_radio_anim_00008_qntm_alpha.png create mode 100644 core/res/res/drawable-xhdpi/btn_radio_anim_00009_qntm_alpha.png create mode 100644 core/res/res/drawable-xhdpi/btn_radio_anim_00010_qntm_alpha.png create mode 100644 core/res/res/drawable-xhdpi/btn_radio_anim_00011_qntm_alpha.png create mode 100644 core/res/res/drawable-xhdpi/btn_radio_anim_00012_qntm_alpha.png create mode 100644 core/res/res/drawable-xhdpi/btn_radio_anim_00013_qntm_alpha.png create mode 100644 core/res/res/drawable-xhdpi/btn_radio_anim_00014_qntm_alpha.png create mode 100644 core/res/res/drawable-xhdpi/btn_radio_anim_00015_qntm_alpha.png create mode 100644 core/res/res/drawable-xxhdpi/btn_check_anim_00000_qntm_alpha.png create mode 100644 core/res/res/drawable-xxhdpi/btn_check_anim_00001_qntm_alpha.png create mode 100644 core/res/res/drawable-xxhdpi/btn_check_anim_00002_qntm_alpha.png create mode 100644 core/res/res/drawable-xxhdpi/btn_check_anim_00003_qntm_alpha.png create mode 100644 core/res/res/drawable-xxhdpi/btn_check_anim_00004_qntm_alpha.png create mode 100644 core/res/res/drawable-xxhdpi/btn_check_anim_00005_qntm_alpha.png create mode 100644 core/res/res/drawable-xxhdpi/btn_check_anim_00006_qntm_alpha.png create mode 100644 core/res/res/drawable-xxhdpi/btn_check_anim_00007_qntm_alpha.png create mode 100644 core/res/res/drawable-xxhdpi/btn_check_anim_00008_qntm_alpha.png create mode 100644 core/res/res/drawable-xxhdpi/btn_check_anim_00009_qntm_alpha.png create mode 100644 core/res/res/drawable-xxhdpi/btn_check_anim_00010_qntm_alpha.png create mode 100644 core/res/res/drawable-xxhdpi/btn_check_anim_00011_qntm_alpha.png create mode 100644 core/res/res/drawable-xxhdpi/btn_check_anim_00012_qntm_alpha.png create mode 100644 core/res/res/drawable-xxhdpi/btn_check_anim_00013_qntm_alpha.png create mode 100644 core/res/res/drawable-xxhdpi/btn_check_anim_00014_qntm_alpha.png create mode 100644 core/res/res/drawable-xxhdpi/btn_check_anim_00015_qntm_alpha.png create mode 100644 core/res/res/drawable-xxhdpi/btn_radio_anim_00000_qntm_alpha.png create mode 100644 core/res/res/drawable-xxhdpi/btn_radio_anim_00001_qntm_alpha.png create mode 100644 core/res/res/drawable-xxhdpi/btn_radio_anim_00002_qntm_alpha.png create mode 100644 core/res/res/drawable-xxhdpi/btn_radio_anim_00003_qntm_alpha.png create mode 100644 core/res/res/drawable-xxhdpi/btn_radio_anim_00004_qntm_alpha.png create mode 100644 core/res/res/drawable-xxhdpi/btn_radio_anim_00005_qntm_alpha.png create mode 100644 core/res/res/drawable-xxhdpi/btn_radio_anim_00006_qntm_alpha.png create mode 100644 core/res/res/drawable-xxhdpi/btn_radio_anim_00007_qntm_alpha.png create mode 100644 core/res/res/drawable-xxhdpi/btn_radio_anim_00008_qntm_alpha.png create mode 100644 core/res/res/drawable-xxhdpi/btn_radio_anim_00009_qntm_alpha.png create mode 100644 core/res/res/drawable-xxhdpi/btn_radio_anim_00010_qntm_alpha.png create mode 100644 core/res/res/drawable-xxhdpi/btn_radio_anim_00011_qntm_alpha.png create mode 100644 core/res/res/drawable-xxhdpi/btn_radio_anim_00012_qntm_alpha.png create mode 100644 core/res/res/drawable-xxhdpi/btn_radio_anim_00013_qntm_alpha.png create mode 100644 core/res/res/drawable-xxhdpi/btn_radio_anim_00014_qntm_alpha.png create mode 100644 core/res/res/drawable-xxhdpi/btn_radio_anim_00015_qntm_alpha.png create mode 100644 core/res/res/drawable/btn_radio_quantum_anim.xml create mode 100644 graphics/java/android/graphics/drawable/AnimatedStateListDrawable.java diff --git a/api/current.txt b/api/current.txt index d90116fca2cf5..ea27c9236307d 100644 --- a/api/current.txt +++ b/api/current.txt @@ -567,6 +567,7 @@ package android { field public static final int freezesText = 16843116; // 0x101016c field public static final int fromAlpha = 16843210; // 0x10101ca field public static final int fromDegrees = 16843187; // 0x10101b3 + field public static final int fromId = 16843856; // 0x1010450 field public static final int fromScene = 16843741; // 0x10103dd field public static final int fromXDelta = 16843206; // 0x10101c6 field public static final int fromXScale = 16843202; // 0x10101c2 @@ -956,6 +957,7 @@ package android { field public static final int restoreAnyVersion = 16843450; // 0x10102ba field public static final deprecated int restoreNeedsApplication = 16843421; // 0x101029d field public static final int restrictedAccountType = 16843733; // 0x10103d5 + field public static final int reversible = 16843857; // 0x1010451 field public static final int right = 16843183; // 0x10101af field public static final int ringtonePreferenceStyle = 16842899; // 0x1010093 field public static final int ringtoneType = 16843257; // 0x10101f9 @@ -1214,6 +1216,7 @@ package android { field public static final int titleTextStyle = 16843512; // 0x10102f8 field public static final int toAlpha = 16843211; // 0x10101cb field public static final int toDegrees = 16843188; // 0x10101b4 + field public static final int toId = 16843855; // 0x101044f field public static final int toScene = 16843742; // 0x10103de field public static final int toXDelta = 16843207; // 0x10101c7 field public static final int toXScale = 16843203; // 0x10101c3 @@ -10830,6 +10833,12 @@ package android.graphics.drawable { method public abstract void stop(); } + public class AnimatedStateListDrawable extends android.graphics.drawable.StateListDrawable { + ctor public AnimatedStateListDrawable(); + method public void addState(int[], android.graphics.drawable.Drawable, int); + method public void addTransition(int, int, android.graphics.drawable.AnimationDrawable, boolean); + } + public class AnimationDrawable extends android.graphics.drawable.DrawableContainer implements android.graphics.drawable.Animatable java.lang.Runnable { ctor public AnimationDrawable(); method public void addFrame(android.graphics.drawable.Drawable, int); diff --git a/core/res/res/drawable-hdpi/btn_check_anim_00000_qntm_alpha.png b/core/res/res/drawable-hdpi/btn_check_anim_00000_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..1880a15b2e76df350c3abb232190240c81c70318 GIT binary patch literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBW_h|ehE&{oJKd1$fC7(e>m}(5 z$B!~X?k_uUE$#N!e{yHp1jWTpIiH zn_Mqd_n(^ZG`6fy@8^E&=6zNo{TE-Go|>MP?6GUF^90UHhSE&Qe+y@(eFnOc!PC{x JWt~$(69B_GP|E-S literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-hdpi/btn_check_anim_00001_qntm_alpha.png b/core/res/res/drawable-hdpi/btn_check_anim_00001_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..aecb4d223471bd1f7619483a346367da932aa01a GIT binary patch literal 227 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBR(ZNOhE&{oJN+PUg94AM?XJ!< z&FqIcpC4f@;Z;|dw&&XQRepQ{R<6>V8T>(~SbN zeos30p>elidfxIiHLlr;`;yNIMlIR8w)F>Jxb~Ee<{Mg;OWI}$h|9$9iLl$9&6Ufw ze=+xt6d9qYbD*HUQL;q9hS** b@+`Cal$FYt|E%){x|+e$)z4*}Q$iB}@Ay}j literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-hdpi/btn_check_anim_00002_qntm_alpha.png b/core/res/res/drawable-hdpi/btn_check_anim_00002_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..8401f910e31fb15d11678201a784be252ee80b96 GIT binary patch literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbB7J0fjhE&{oJN+zgg94A6tzpaV zgGQTrPq6)Ezmv+BR5m(gT=!J5_u}U{z~M8~A}ex@@3fhX5gn~s zrXo`;H;OFW*fe1=hp%YM9*$0d^o6{cdRv&-0y@~7ycLT#UfUvct04T+irL4%*Dma^ zo$R*#&B6m~SKf@Ru3YK*!qn-_z75lEtM5M^*m_o?#4GYn)O^nGB>_`B;%3VxNJR6l Te^}%LbS;CYtDnm{r-UW|;d@s# literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-hdpi/btn_check_anim_00003_qntm_alpha.png b/core/res/res/drawable-hdpi/btn_check_anim_00003_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..58328653a0e013e8e89d9c7ee8a148f25f2093fb GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBrh2+KhE&{od)<+%K|!E3apCDJ zLFcDvpPz7jv$1QCvd@DuC*PO6e=cPG5Yv@eYA{3otV?Fr(wK#p^bYSnI-}QW#p;60 z<61os2_&G&Y;X1<;1}2ULfsPYztvqmlezQ>8Lnr|k1|%Oc%$NbB3OrpLLn>~)oqmwB!GMRsxb^ju ziJ~P%+Y2~*1rFwWM=9MqSbJFTSB48i-LXfjvOTlTyh$qM|L*f`-p;Q%X)b51S7ioU z89WP&Zpv|*Am}3C$fC;jR?%^fViSi_Mp(d3{hXct`;M#(dd8zwslik;iTj17f83v? S@`gaW89ZJ6T-G@yGywpp**yIK literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-hdpi/btn_check_anim_00005_qntm_alpha.png b/core/res/res/drawable-hdpi/btn_check_anim_00005_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..aee057c3da175951b4fce89a388c2084ce9cb6ba GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBN~)y}q0GfC5iTB3nc3 zodYb2zxyZn3I)3?GSz2&YX36oOXsQQGK%)y*SpO4vMRN=B=Nmnx|e7~f zD!Dz>lJ0e}iikG|DL6DRFfy@l2rTGzoNt|YxJmiGP5Y-Kk|p2xj+(59b)Gmu_cMdi Xe6RN#7kml>I)K5`)z4*}Q$iB}7M?xM literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-hdpi/btn_check_anim_00006_qntm_alpha.png b/core/res/res/drawable-hdpi/btn_check_anim_00006_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..fb5801e4f59a92c1bc358f13c2bcaacef36323c3 GIT binary patch literal 227 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBR(ZNOhE&{oJKd1$uz>(e@9KvC z59B>s9pBAW|KZ;FN1MMeWO;FJvd5+-<0YXgu0}UoGy5MdNm{>3;@SC246HsXQ_lR+ zV&2glp0ei5w|hQZGyOH!`>t#;vcBbh;*Z0M|k1|%Oc%$NbBR(QHNhE&{2PLN<-oY2CksZhp{ zl&+P?zG7xdqlQ8q_mTfAdmPi;CJP&FDd5?(*n>-xUCN5BP1d7ug0Za36Ps5H0@-`5 zGOjo-=99|g`^9l&cjJ#24%RQ^1?(A<)K^5wD(thF!1s&uNU6gauF%u$N4nXqTJ#t; zS_u?06xs^Z%kpHtP`hGi?_PW}q2R)T>_e9pPt^C#IiB*5j;UIA$SBY;3X{WZ3HXZq@^{WNs5KnyHOU4ZfbJrBazknTA{!=eZMb3n@ei>_NpcbS5o%UIMn@5lZODNld|xlOdTA zhy^lEgg)Q^X035!ev-^uAmc0{k~)D!YiuG+#(57>-<bCURKBo{e{p2Y``@yLJQCW6Ic0wYk;q=FPNu|7jes;@~E zwc|t5nAqPkB{c+P?e``ziM;klEk4tj#J)pkFaX^Yoe}#mUVc1T+T#bCQ0@--Zr;YA z&!8C6T^yK+Xzixy^y*Sexku@Cno-)8t)%q^7B6!s?nle$00000NkvXXu0mjfDdU#Y literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-hdpi/btn_check_anim_00010_qntm_alpha.png b/core/res/res/drawable-hdpi/btn_check_anim_00010_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..59bb4373a480fc1f60514d30972b62aa09588d92 GIT binary patch literal 355 zcmV-p0i6DcP)4c3Rna1k;MWU}G6YQfZ~<@&bAU&!LS)f`uaffQ=UV7G59-N=A1`iXHf> zklioylFhE?xpJjfEf9c_Wde>Zsws%T8C)%M=Gaq7XUq*xWn$oG5eoPe+CmpF$Radi zYqf>U9HA3(LSJ}*6_|iS-a%>Z$SCV673^l@n%( z$zykVA7uU(irDsrASNTT)%eP8pu=lbO5J~q$%@dP|C}(G0Al9<#M#w5P>51mn4sg2aeZ9j@2RJcuk z;f_JcK{4i2*ghy;IQC3>diB}T&@ux_XI#0G)(igkdF6vvacuwq002ovPDHLkV1iZ1 Boh|?X literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-hdpi/btn_check_anim_00011_qntm_alpha.png b/core/res/res/drawable-hdpi/btn_check_anim_00011_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..c053b90c1fd4237e9586a899914052839f225034 GIT binary patch literal 364 zcmV-y0h9iTP)AIC9mkd}J=Fjs-~pc*k9s#$WI}KOPw-;qNxj3oQX~4qS2I^I&LiZ} zQ|J~FGv;}Od|F!FLSjZ>g}?{AO%mFIC3sXVlz;0@?XeFxxPl~7DF zHR|btLlu$9F{RZ5JMK+=rp=is#^nByDJ66RLmCv7jEO~PCJkwlR8lY|7NH}UNKzfJ zCK1(`*!Iu~OfynZftXm|GO<$qOnfcHnAl(YY<#LQX*q|o@u|e5?O;sf>lIiTZ6~#m z+S?B_6NHTW$T#j9lwK6C8ZU~X_e%BlI;JHJn3+@W+%mRosnicJyMR*zS$7!#0000< KMNUMnLSTZcWR&{= literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-hdpi/btn_check_anim_00012_qntm_alpha.png b/core/res/res/drawable-hdpi/btn_check_anim_00012_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..eb30a799a4cebd1fed00b7eee13fa3425f42ed03 GIT binary patch literal 373 zcmV-*0gC>KP)7MY93tya*+r4tn60rH~+*iqd-ko>>Sv_ipSxpFK!><1t>VFqpx$%S(`!g09WfJAZ*3W0zD(*3K0kp5 TNfnM;00000NkvXXu0mjfb{U)7 literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-hdpi/btn_check_anim_00013_qntm_alpha.png b/core/res/res/drawable-hdpi/btn_check_anim_00013_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..1af0bff7a9aec3b7c3978bfe72e9afe566a25434 GIT binary patch literal 365 zcmV-z0h0cSP){ZS(+M!f0RX&Y)LlA0m2+u2G%9Ll|v>_N|jPQ`!^Wz#uNhnKzDv4?YOQ z@$>!TG~+mP&1I&1AOaE~BPPMI{UI`E;04q`LrjfhUu2~syrD5n1;jE!iJ{K)bt;t+ z%0`gk!LJVa*VeB>Vup!jSoUk*zHb7}BG9HsF z$lNI>^}A<6%ElD-bVf_)3G6WfMi7&hP%EkvtO8bfEAk#PE`TYNQ|U z11wpVDwUrqASI-MaN@`@D}0AB%o*~9^pJr#J&t`bg(~p}gXhS1)FwcUr_M}uikkrO z1z=R#P(T9mi3Lc)oN&FoVgR~97-R+6ji43<5(txPW3M6i5I{;3)5hIHx=_k=O$z2o zxv1YbYgM13uUF*=Qo$_EY+7G?AV|V|_N7$PY$cpN%FjC$-YIw(N|TzmCokCg=y+e*s1J zkzd7j4Jz;w=lh~~oqKz&v863>IF4-$lPcAm`T?W;f*FGh2vz_9002ovPDHLkV1gA^ BnWz8& literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-hdpi/btn_check_anim_00015_qntm_alpha.png b/core/res/res/drawable-hdpi/btn_check_anim_00015_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..c12d20ab2d8ec947a792e468fb0fad6bc5bb42f5 GIT binary patch literal 338 zcmV-Y0j>UtP)Yj)vaIRVPo-P9`2hmre}&nmm%1#(~1)PYf^lO-SgMW_?_yr(Zsgx zf9bQ)#Ci^`_1S1*KNzV#8%ILn;fRel9C-)2r^-#QReZ6)# kr2}&$wrvcPE7z9#0tWGb;i}h(e*gdg07*qoM6N<$g7*fJ_W%F@ literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-hdpi/btn_radio_anim_00000_qntm_alpha.png b/core/res/res/drawable-hdpi/btn_radio_anim_00000_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..882365beb4d5790327ad54224a0b46930a91908f GIT binary patch literal 541 zcmV+&0^RI#VC+rAkLIj-gpAVfTY^+O_&>>6-UxW+cmVgU% zm5qycSd$UqNVpmhk+{NkY=g)%VG-jXBy0(D!jRwq>h}!K!k7i9ch&QdS&8r{Cmx|k zsA+6#(D7iy!}y++)IyNi5MC09#1T{ZvlgTlX%l!Pwpx*CFqZD>h`U@}i-bDja(y!y0$kC4tSz=5yeB%D zF1Cv1>1L6Xvi;23py^uJwByWue3C8fGRvy!Xvk%gKQV0byU>+Q{zsn4qplf)0u;FW z7}RECP=KQ?$Dm~%GF-+v2gQ@EL6PTziyrupVw67MXj>npd7WyZy85_>6vk0TvSp$xnHb0opmZWvfH7PmAd#K~Zb2$>i*^PzsgQ~o>4?{{9)5rPoJQj|{=skvk7yG;A|hfC;kP!PacmpX#fw+OJMkq!+)Ifm5!f)y zCFaB{abgTP=Y%;4G>oi@SpIbdBV??h<%>eM zH+>L0VhhCev84OlDz2I<1P{cL7$b}Bh!(ELxOY%!BxPOKMP|r^-iVNBG8#=hlQTLQ z{(y3IVkWhPF`Wvo?_iFsB+OK+cHzL$NYh7>7(@d{Pxg2SFy=I&zJzBd@b{6ai>ra~+!4T#HpoO0*vf1Z#k_ zF4~U~?y1_3$10s;*#_;1blw0f4cb+LmaG literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-hdpi/btn_radio_anim_00002_qntm_alpha.png b/core/res/res/drawable-hdpi/btn_radio_anim_00002_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..0e326c9f306f1b60b4643af7f4db4cece20712de GIT binary patch literal 428 zcmV;d0aN~oP)Q<^a%#BVZxOv-B)k5#aqB$5I&S zYgW6n&z|w@tUd2(|IGRz07DXRtaTA%5Q8~bgHN*NSj;)1;(QQ+6nujMT<=hDPRcdD zYcV760ZtD@JQBC04{PgzcaVXLftWfOef4Yvl@9inLh6*hLYpvU4#iY_nS{@0&Rhfp zUFlmZ(IdkIR^`M!lYKRUOW5_((L?Z@H&4L5Z{=-H_!BQ)Mr% zLuQiHIp2y%Qg`mN?_^_}TEZKeZoi Wg+zkmk9o!b000013&l`A*liL5IW*bVFyPWxI_N2znz5o%GZRs~US@Cp)^I(}mVIq*Q_IP=8l z_mksv;}1t4xTOCJfgTuu5X3-%1yTHN$T>aJGCoK^3Qph(9&cQEE#+L_gopm|XA*-l8A;VRHDC-eEwtxer6XiuGc9xmqbfr2hX^dqYmZr#M5#0uzmdB4&C3$9 z%OqJ>W&*||PtqY88r4Ci6#I-89wo!geZ7R?kUWTe`lsbm{e)F|#5*giFiXU*-AnnM5p002ovPDHLkV1lV;pEm#i literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-hdpi/btn_radio_anim_00004_qntm_alpha.png b/core/res/res/drawable-hdpi/btn_radio_anim_00004_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..cedb66ee29af60eb90e83166798b29430b7e1b8b GIT binary patch literal 533 zcmV+w0_y#VP)b;@5JgE7s&F1S0&oXJZ+hqv;S#0}u5trHiXb^1RSrM_0vx-DT>yf7OW)FH6@v|H zj1)$C5{!0dKib{d8488F{Zo4&x!Dsag9d1WE@{(O=9tXw5g5P*bMOOp;6Qft%{j*4 z9PL&FRq!Pi57~nNcqE`tjtS?~7(0$vULvZ7o`O~y1+6J)&o!D!1hx4D1Wa_kMnOJf23(_)ExXA>ea&lMNt+m*3=`vLnyOMh9ixn%j#l1} zt9i-eT40HgRryiZRiF*>EYPA7cBmx1ktku;N(md#7gxesy6Wn_l8+o--|-(se&kn+ z{Jst`a{Fot+8{rs4XW#GgW?*+#gRsF!93H-s!@z(D06F}}AT*apvHa>W-IgCQBSPues&Ht3g_Rd4~iVv;w|09W7??1Md!VPAtb zro9?lqA$;4Zh;}3KY&dT260dT*QCHc^;?X#<~Ze};zd-DD`ScofIL_ONzk%{M$)2< zvONQRA*$>)eA^;SN=yoDfP3)qgBZCYRgOstQC<3We46A2&eQRWh7c>SAj*|8`<|Vi zzGKUtS>wt~Tv7ue%brR*NqUdsG;MOpKRgIB=p!ah-;-|gTxVjN@c4#pHn1)&u2P-f zJIv^|Ex~O2#heoNL5zv=bxGf9jsqP*SzZBSCcT1>f|RclFyb6J9YIA79x?-8`zYuJ z?9%sydCrlbz5gIchAiWA$j;q_Y@VBX%d)8tbp%D`bnM%1kG(Z9#+cL$kBKowUjwI! zF~GELy*jFYb#<7RYf}t9y z17Y8z56@zBowXN2JLtWlile{Gl$qc6rbk#P@I-LBdlj~yd*F9`S3TN(u=le a*7gn2+VI`BG7lU800008jqsg}p&RLJ3x2(js#@7e3)I zILtV6OQ9}&FxL zDO_al0Hw~Nnr~g1$q3vaw2dMc_>SvCk2M+g6p%4AUp`7SX$Rg$@Urmei7Y?NnihMK zd@1edV?|%d<1-Gw_A!JaURs#Y@%U6}oTS%O(X@!qT!j2GqrTLoa`b2Bn_-h@PK9h8 zL74!b38JSQy{3NbQW%AH$hKeP6o<%hV{(G5ePo+6cEc3PGN1XKM3*3(<0{lZ)+QO< zoN*9TkdqWimr}6Ce8+-99b~N_+sqwtW@v?0C#{e+S$7&tHg!(z7xq~~*GAZ1j~n*h z#F$1cksgYAQ z$-XN*?-Sb3o+kg?hBDfGd7o=gH{crdfX`UF21UIn-VxeAa#0+WJeNrQ2NcO8o_Bfo jD_7~M{j=eJOl*7uk6+J6&);T%00000NkvXXu0mjfxNj<+ literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-hdpi/btn_radio_anim_00007_qntm_alpha.png b/core/res/res/drawable-hdpi/btn_radio_anim_00007_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..ef9420041cdd8c6107fb43e7b20b862545a1f787 GIT binary patch literal 694 zcmV;n0!jUeP)Ho6^kS3N@*^$1cvOZK6)wMDvj=?7Hnz-kjnk^L|H zFC2#XaAuq`>cS7?%)MvMoO|v$=NgIpk3TeK!2(EvHIk%k_B#z(0R>P7XW$OBNt3cN z=On{4Bo0cT175)=7}@a2IUTNvPtuSXunig}BZlA!Jc2%Xq-+Y#57Q{2V{9>(Cc_9auK-6Jvlyh=iqt`24dwxB&Ej;r9 z>R?s8a1m?*0~`^9vPEIAT2rGA?Wwe%0B(pcQ^suY*&N7&b1<+7=mDSQIaiH!8l~qn zyaswn1aRNvnN#pQ#wk;CDke|$#q*MvJkt>YoD-fobuhw?ittoc1bTPeJXK&08S$j( z0M7HPy&CjFojTC3DOc|(j#CcGbm@?8)d76&vQ19gcL5UAbwJ%pe&SYU7MS|=5#6DD z(CP?%emx7f0l+m=mTP=|HwFZ~|-uo7cYB*waz#Hi!Qu5?sJ!yxTPjV*-sRDtEduKl>=cFc?R<4VlA_0wmkO$}Pjyr z%sAT;0jxcvjCl{zpgFa$Sr092R&0|_CHp~|{TO>-bCZ9~7e%W)Rb-Z}vi9k#bc?bR&I$D@J+*%} c{Er_UUtY+>U3yeKPyhe`07*qoM6N<$f~A;8K>z>% literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-hdpi/btn_radio_anim_00008_qntm_alpha.png b/core/res/res/drawable-hdpi/btn_radio_anim_00008_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..ad670045a699cd5a83338220f4184936d5bcf3b1 GIT binary patch literal 706 zcmV;z0zLhSP)sq@G{&6M2H8a!^9dY-iCE|fjKDQG16>lZZ$ud@ zZ|0s**Iexz=&7&%4fa80%2#JOW@P$mZjU;>cg86ALuHTP0IY!zG3I9|+u_`hx{S`e z&z(6IUv>|^D?`kJE1(26NQr$JA!p_^sKe?z;To}9OWc`9WsGs`s|q9VX`jnODuXV;>-#!Yv{=Zb=WvH5XOFW8B`NW&P0ES9^`A#Ep^xyh_SlM zpr#P)ivA6i3X)>xZVG)}G1mOA43b9{yoMutb(i`j+G0K zQ%7H=j;crMsH)V_OOiTLOn5T6c07~o)gqFsZEaP4G{n)_^5ck?RhJ(Z99viAM?;k# z?IiV3mPM2-&~_aK+9q)oXm_eWOI-9vm9QP&gG|g4b~U1e?faClt|GrrPjMCb+mwl# zyEE?tGS4lJdIk;Xy7Cz`a6E(Zi+au4hvLxVp*URhLs5r>J?_M;r*uHsr97ph{%j~R o57ot=4R!VvU+T|>_x8`*Up5Q!xO-22(I! zz?3!(&WW#E%rSTX9|0m3;m&bDY8^uMKo-1;2h6}X7=aF`f-VG>6Z*;}I1HHUj$P1pBIdhmm7W$S;%h8X}t7%4ggMJQ{?2SBXkes26>AVaYSigf?f`UaDV37>`>OeU2Eb1PQtkhE>sj z#0ZKisK+(DRuyBlAVFa7cVOC`n&l^9zQ z1hoPZV?Qi0E^~BrS2#Knrbma#;rbP_O=~$^z4F6R<%jK4eiZ4fJyCx2*jMx^KWtTg zbWDo>lq%2$8z|6>i+;Zn_SCS1O>mBUGw&c5wa72|6!|SiN?4J9PTPqRQ(pDvvFI8! zq_62~ki#**Yfx?#F}mn?7#XH{XiNuQ%SBN~U!J*RnX7c4w)st5rFHVO7&#Rlj`zg- iv%&t2KO1&!E7}kEZ@)Yz5&B{P0000TWKg ziGRaCP!yA%nNE}}Yr_YjyQ=fk-Bn#Znap?l584l~1@=G-v_YS=*=NS`wEeWU4i3Nt zcmg9Zp1_DU#`ciDGi^Jd3;tR}Okzl1Zx%vUK#7xvfA9{TxkabI2SwtuuTPtIC9K3b zoy8o17cuE0Xo6j^Wbs|1O_M&M{~u6y6;)DVZo$tOAyL9S`btszE@wt=(>2(Puv-8* zuu5|5)6Mwy)b{P9iKebv87*cJY=a6o108b4z5;EuD7jMIq|tXEqUn*_B-=9o^d7uM zMAa+DsvxU;&Grq%DwUHYy$cadO?76Bm=o}pAl!}3FZ#$c^;<;WWnA*yVnQ1;Y3H>A;w!aL2Y3umFE~iV@J+8N7#HZ*0Bld3&W!5U!|j~pewMZ&e2#Ljekeb+-=$1 z9co+H7aYU>VVbbd$0Ww8Lt?C15@QgT7~`&vEU$w!S4TGD>Uc|fb!1or55?u`MO?1c zn9KEnD>L=wnx_0H@K4Vf)>r&pvy>kp{S#;%-oUWDIL(ZoF8AYW4 literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-hdpi/btn_radio_anim_00011_qntm_alpha.png b/core/res/res/drawable-hdpi/btn_radio_anim_00011_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..bdbfe783ad73a1c9e128514a1a4c1d35f7d5c0fb GIT binary patch literal 678 zcmV;X0$KfuP)lkB#0!^ z{ullihQqz*er6wd;0JO(=8Wge%$d0h3-k8RTO1@o9vp%;xCcYhV_$`Hl3Wvci-9$8 z1a80xOkEgpZk20eQ7Tjd58&N{A}V99Ek&Wo3aEomvB3v;0S2gnBFK;;PsHGy53%l( zvJzpGIR$S*=m0dqCRo(0UF4i5*I4UKS!Y3&staW%pbIv@k`Eb6Tw_p%rBuVO0hh!z znS!pts%Fz=;-u^DXxMsn#pU2fM{V*KTk2H<-gl>Jw-+P+$!w_=&VErc(w5y;ATGT0Q zHf#!OwFDD#HOW7wr?@5gInI4nlKk^9l}CdA#;y$N&;eu_w8g%TLmAWvql{glI1X4S z_M<8k)l#~~w9{)TeaAKHQJ2!{$A$t!ew&Y@-N%N)cYbV`w_nq~0O&ipRqNl+&8u@5q!0q(&P zY&}?VuPKwIj>tv@Jb@1%hG;%0TZzJuBhXe4cn34k167a*DU#=07fiuQ$+oF8v@ti} zO(=W>HIM^_i>$$8s!_(0H+9{HHL5L)*?>O%$Oxdrpp5x7*TSfFPzSDvx7tu)+-3hE zadO;a9^*#nt@w5H44u#t>^m3}181NPu1TG9F`NBy>az5Xd90p!rXix~kp}87QUpWr zDvn~y-*c{&Y`#E7_>}pKORqeYVD7M@siu6!e84$)_7Uzcpsb8CbzO+)GYwC=8B`ES zZ^menqv+EZX;e|^$TB5Z$+O^QP*W)Dsjm~`8wE{_Bjr;D9o$-PxfwJN8>?#Vj6M_8 zpgE6Oj;dH6xEVAN8}rI{>dJxrvSy%2U&@R1iJL(Su`wm)4;j|mkaVcS8Y!{1_*Djd z*O8t0Ju)w+o`1Jf%dqeMgs_*1acWa*N=$Y^5@X4xe8|Lj>bG>P97;#or%{oVjv&Q# zME|fWt|N!yng$O+imO#?o>U1rc4$A&`2ro%;9Sh1C+ey8BNwJYThj@nXwcSS8nmce z*tAUxdlk0HzqM)dFL z>Y^weH_I>`2DnNODU*x(DlPL=k{P|_@@GSf894b>e>VJ&A2U7y&HlGQn>y}700000 LNkvXXu0mjfpHMVz literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-hdpi/btn_radio_anim_00013_qntm_alpha.png b/core/res/res/drawable-hdpi/btn_radio_anim_00013_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..840c88f11a9f0f04553ddb20c3580bdb2789a705 GIT binary patch literal 649 zcmV;40(Sk0P)8*JExip+m3HEHr#1Ps#p$_Pni`kIsF}+hnpKG3}v1ppW`^5Ygr39 zQ`eYT{@E>0rI0&RG*vCk`h*B_3-=`w_AhfZtLXoWxoCvMhMop~g9&4CY zO{)rB8e3mE5!$njNnz%C05S>Wd3|nHXi+$RgSKNsQT3 z5~G*Wk@HB(OX(Q7l@3*04<3qZAO0bW>jrC~6jv1iy#44pv>ydnu>n*uXVre(!gr3) zJF|#n+h(g0a)V})c@Ns4ouh>{L<`#q(o-kUkaHgy!ztZ}DIz*#j*QIPDL0RV%{6F_ zzb=YvPzG}b_Q-2c=M*x0RN&}`fEUGCSQkZp1Q~>>pR4o;GFsSIY5CYtK+0E-4Ld+R jHngzkY>y4saWUfu`T4cVa2$A*00000NkvXXu0mjf4aOL5 literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-hdpi/btn_radio_anim_00014_qntm_alpha.png b/core/res/res/drawable-hdpi/btn_radio_anim_00014_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..621d1d2e3393573e0daf380e66c2fec54e034768 GIT binary patch literal 657 zcmV;C0&e|@P) z<2p734wMu{O;)RjwHeH{MJt>Qab#16N?#BP2{%KpRF>J#GM(#Wou;^PUg8gwE5( zo3LAs8tAJGLgS_|F<*CnVXj0I|UGIT}UgYizeB~9CAyyguAmpNt!$OVc+(}QFD4e$ zSjBSkM&WDCfwEN)<9(N)k(iiO+k7mtDK00<{aGG*6y>@)Ud7e1=(}9c)a9DD%q!9rFDlRn?7MSZuB|wiYl56Phq$SQ r^`8y9o`lz literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-hdpi/btn_radio_anim_00015_qntm_alpha.png b/core/res/res/drawable-hdpi/btn_radio_anim_00015_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..fd8be89ecd07aab64d52d6738f8031379bdd0866 GIT binary patch literal 666 zcmV;L0%iS)P)iZ2@g+pRRHxFY9Xgwi0%B&5xVK362dtGbRcF~ZATlOF`z(;30=~|+ zr5MdUeE7&>Zyn$zlOT_6))HUG!BK=Qj9qao3DhZV_e_F%Y++g03W$%ef|O5D>{Vv= zzDdvC*9H(|+g%ttJ|@_IEaDU(v$0MGNaM^IxUVkjo~& zj!dy>^6Q8h-sE3Jd3mG^&mceG8MK9>=OeXcW%r|q;iDGuq4*NlLy-r19zF0N#8Y~J z)QgwShl0P=|VJl(nm;Bi9KYq;k1k>=eg^bOaeE9+5?s;5`8(Gehk4X3`b;A5@ysji4{zcJhE7}ZJ>z^p00i_>zopr0Fdh@yZ`_I literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-mdpi/btn_check_anim_00001_qntm_alpha.png b/core/res/res/drawable-mdpi/btn_check_anim_00001_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..9d5dda04ee444c2812ede188ea5beaff2bcbf37c GIT binary patch literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gjfu1goAr-fh6C_wwm{b++u^ll# zapd-bv^2>J07-Y{#bAHG2Lm}l7IvYp5+fVD>QS7rS#-*|8p|*)tSM1 literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-mdpi/btn_check_anim_00003_qntm_alpha.png b/core/res/res/drawable-mdpi/btn_check_anim_00003_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..d1806acc25fd19fcdaba3c7e5f457259345f0311 GIT binary patch literal 134 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjzMd|QAr-fh6C_wu7{U~`F(k1I zZDbA6cRYNa;bXngM@gq?5djGnJkbv}A86zfv*?L3*rL0l?a{*QgBdFP%-k7qH!kkk gv8=Myn9G2HAwP~wrsaWLCD337Pgg&ebxsLQ0C<`y2mk;8 literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-mdpi/btn_check_anim_00004_qntm_alpha.png b/core/res/res/drawable-mdpi/btn_check_anim_00004_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..ab9315b6fdd9508f01e399ce45e951e71674470e GIT binary patch literal 134 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjzMd|QAr-fh6C_wu7~B-XSdw^! zHY$baJ08By__5yTqm|P%ji3Yz9_>e)9h$ksGJ2v6w&+&yA9cRobkReOP3*#+4T~!a geLr)hizF~GxCF4t2&rGw02<8T>FVdQ&MBb@03$yp?EnA( literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-mdpi/btn_check_anim_00005_qntm_alpha.png b/core/res/res/drawable-mdpi/btn_check_anim_00005_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..46e90e6bc0228ee39e87d20f3d5f4732a535929c GIT binary patch literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjPM$7~Ar-fh6C_wum44 zvwzem{PS0v=ihVse{jdgUoMSYVj4YB23ZGJur3x0$Y4CnZ9Pl;ddbQHH%6f0-=?#8 U+}ZlA31}LFr>mdKI;Vst00zb;j{pDw literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-mdpi/btn_check_anim_00006_qntm_alpha.png b/core/res/res/drawable-mdpi/btn_check_anim_00006_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..e8c56fffcad39ae89223e7d5b1c6c341da1efd75 GIT binary patch literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjVV*9IAr-fh6C_wum<$!d6a>2k zvw!F){PS0v=h}1ne{jdgUoMSYVj4YB23ZFUwkFsLR5N}wkBWT2ccjLlrZG&cM)}f* p#(w5m;$s|&u>|qjNVBoT57Z)nN}`mWB2erBy#3XbE^bJ)O~EFlUWI)6XV}!zcSvCaBJCcQIO8ndtuc h(X3~p=QIv5FetO|%>2f4cqz~+44$rjF6*2Ung9u}LKFZ1 literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-mdpi/btn_check_anim_00009_qntm_alpha.png b/core/res/res/drawable-mdpi/btn_check_anim_00009_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..1d0503739450c79755e0952c373418ca5181ab6e GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gj^`0({Ar-fh6C_wwnBo-XaU8Ke zaYT4w+5;8^*8iGEgg-`ZXyy`oBeAt1PizhQqpGM#2BSHm9Wxt$*rcBRY!36yEwVm;FBR%{g8l|3um eVle|V1H*M*k&E6wj{omL?HkG literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-mdpi/btn_check_anim_00011_qntm_alpha.png b/core/res/res/drawable-mdpi/btn_check_anim_00011_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..c531cab52d2b61d6326be864b387e8328d22e4f0 GIT binary patch literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjJ)SO(Ar-fh6C_wwn79@8aU799 zaYTG!+5;8^*8iGE#6L!UXyg*Bkth;-!}7>{%ccZdfz3=C83q0?*v4vb*l|JoExQA$ z78k|-Fg*%Th;v-@&?TCo%R)^d&2e+fgoi4u7j;a$I}GPMv2fVdB60X+SIP|4BNBdP vTC-f2Japc?Lg6ISEb;3m>kHf%fsV?3AjALu>790TNP zdF1@UvHkV{XWe1n(<1kX4z8K*NqW89sZXOF->^5CSdR66}gO?9@;)(xmaw( ztA46U)Zq-LX-CN6&P@x%Po=wVZjm_L$+t+(#Jj_E&Jqu|Z7mUpJ^fs5JwDlPId#%j tMdDw*$23=$Xot^_W<3)9+5?s;5`8(Gejnz0&3Gkdvt%jj>&6+f9qAVjF->^5CSb4am2C{uAG$;r%=bCm zxhcU&V6!8y($#`RIxiYOMPAfVJXWx%nd7cd60f@Eq=~wU*9s;D2l7v<;a^)+#LwCG qUw%@m;69+5?s;5`8(Gejnz0&3GktXUS65*NrnoJEAiZ8P623MMX56E?A_y!+F_5m&gmu zM{)w1Jxu3la7Qhu2{ZBTFr4#3!D)L-#9_~_loam{(>YHtA`37RGgxxLD74JrCD@5bmb?OT@{5mj1+o(mM9E37;lBTgI}FqG?{Nnf z1Q0J?z8yEP3WFUuV1OouYrD{`{Pr@k`2jpoCt5|#A&OkKC7aJ5 z?0ObOma~E8p8JZKc`=jX;H~JnswkkuOl(OIm~;)t+R-DFk`E?LLjgmNSV|@)bwdG7 zkMxxS-CNXs$lZ@=_aCkMRWanU8**KDe{hC9nZFS)@Dz66t{v8U00000NkvXXu0mjf DYU5~L literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-mdpi/btn_radio_anim_00001_qntm_alpha.png b/core/res/res/drawable-mdpi/btn_radio_anim_00001_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..2e2469c46bebbd46e49047211a14b55cd399d36e GIT binary patch literal 240 zcmVVU3`N-hq0EwoU9wc9bQvM5P~8q}fRyg;7rw?aRwCpeM5Nb%{cUXHOw$|A0s@Gj z5RslOSA-o%pn~rSm26zE_zHGKn6r~lv-r^={^w{3;*`uckcmzC617}OaQXl**m`=$ z?UObwRS=(*gk~W~J)5o|WaArp<^{hX8AhSzt%vs{N=Ahl<&FTE`IcJ(n3u@B$>w8f q{-X_973Rxs$hsbK;S9MlpK*R*HOgt9Ke4(10000}1CrEfYuyveW7||Bh z=EYpdFJRC3=zqo!&Je#@F^4xd{?Ha{zW6bGMbsn*c|o?tkL`kD{>}H9=0T#TWOiSm2%LKK;=wJyE{cRc8+JGyKqGT(Tv^Z8gww44$rjF6*2UngA{O BPNo0= literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-mdpi/btn_radio_anim_00003_qntm_alpha.png b/core/res/res/drawable-mdpi/btn_radio_anim_00003_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..cf8d80aa00c484e28758b6f3bbab0c58891b851d GIT binary patch literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gj(>z@qLn>}1CrEfU2zIb8oG~$~ zZ4+~$kidJ!NBRzbjcv`hZ^yd0Wm-HLUcV9*gEQk6D@fDx4lxl^>m3u zUrwj3VPf5Mp2HKHx%20!1SVMUs6X7Cz%QzEqgj7${lX^J_=2axj!Gu)+moDLv9KRu zn#C@7R(Yo0$tlkyd!MujP)wtF0N zW@_3T&!a7ya1n|}7Uo8~#63}oEiR*Yx{_#@k{W0xbtj64okmLyEKi8J(7;e@rArie z487p@(Y|!=F^!*WzxRL+> N002ovPDHLkV1kmPY~%m{ literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-mdpi/btn_radio_anim_00005_qntm_alpha.png b/core/res/res/drawable-mdpi/btn_radio_anim_00005_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..1bad701def6108d84950932629693e37e3db7187 GIT binary patch literal 260 zcmV+f0sH=mP) zfxfonP1sVO-fWk3KXqWT^j&KpwSemrZ3m<55|2*cWs{YLy z@-eG{0X=Xa5XUh?pSSD|W|7o`k$5pa)Ay1+z`_Kv(-tT(uQ=AzXJJfo=P}?3EYP3> z13UM8?l@=ZyQF+cEo6y-H!uk~woLS~LaxJqVuUREB)Kf2gHE{4Th_9yoH|WJY_qCq3e3*L-_{H))9bqocTh zVhLP?fumOK^uZ&n5m;gq(cELuSYjPAs7ZFj!wG`{O-EdR#US|-CEw)a$27~2mi(&7 la@i%nuCqKi*`Cbb9}k^J$(6Qo`a}Q#002ovPDHLkV1fvMes%x= literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-mdpi/btn_radio_anim_00008_qntm_alpha.png b/core/res/res/drawable-mdpi/btn_radio_anim_00008_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..374172c8ff85db0a65b278fcc9683b53603e23a7 GIT binary patch literal 295 zcmV+?0oeYDP){Kdp4P>EQ@n2kB@ znYP54PvB1f4QMbBO<%>BNvtH5?3;&PD@~4l@MPNo4kl3in-zF zbahOcMO%DAT&^UxYo@Q;D_}WjXzLT=5zQP!+wK)`9PDWi7YYo_>1n&K6v*D9?3#t7002ovPDHLkV1iK?eF*>n literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-mdpi/btn_radio_anim_00009_qntm_alpha.png b/core/res/res/drawable-mdpi/btn_radio_anim_00009_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..233036e95b8953622ce54b9eed4d56ec8671392a GIT binary patch literal 285 zcmV+&0pk9NP)T}uq0jdT;MB-<{_R?Y)2iT*E9qELy=ofe0_3Ko3JZ1TpE2>80Q)1~1wGue^} z&MOIHhD@gt7$_B6y}wAPLSb%F305d2=EIEy1AHXr>sJyKZ&C40E`CglU$iPuMe)b3 j%5z=i!>RIR{>JzKoixWOHh#X300000NkvXXu0mjf?O1dy literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-mdpi/btn_radio_anim_00010_qntm_alpha.png b/core/res/res/drawable-mdpi/btn_radio_anim_00010_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..61d9b58e31b7ca9b26eaf6dbd1ca234f3fdf79d6 GIT binary patch literal 292 zcmV+<0o(qGP)TD>%Mq|x&6A|3ga8J$k_LT(5Ta#?>a$RS6aI!p^zacLdXT^cg!ELhu0000beU_S!>;@KaykVg>+iEa^$O%^9fB~8q`c`TpW9pm)BZGD@0Cl2O)a;BI zbIKAK&?R>E*unEkJI2Jbay6pngYdVY2SL<5(ANsxAbOH)ycIQ9V)FTV@9XH>DDI4jNJOkdYvWo*4RkD#6A<&2ODC`SBuV`$~f1B`V(J;>Wc3 rk5>Guxa6|C)3%(++ zyv3*qBrICW#R7py^%l9L39MLb$Yr)#AFcXUam!|R%XVG; fz`5ST5Jf>wk&aP32OH2>?BHRjSb zNzHp@{RZBnCz0XI&@^*T`BoT(ARHhd*HWD)PgLU_&D>D)`NZIvL=1W2G=W9g{aEl7 zjmldrnn1*&rCcZw2vl#8i<-cW#f}U;3Iq-^zC&*Ria_-dRX4f%XIlM7tA12ma@bvR hTvxwvF1s>+BVKsA!b!X3ZAkzC002ovPDHLkV1jh@cv1iW literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-mdpi/btn_radio_anim_00014_qntm_alpha.png b/core/res/res/drawable-mdpi/btn_radio_anim_00014_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..dbbb7362dfc0198b3a3472b784eff436ca053d8a GIT binary patch literal 285 zcmV+&0pk9NP)4r^HOkP5_RyjVrrNC8$5um@4t{f8eILP%sGS#}5BWoFFR`7vpl ze~$;yzyJqM;+WIy`6vdkfmeo&y_e$-7O}tzCZIq^6mzTSTlj1?{Ng(pL7V7p*|Q6g z>{$HbeWZRPVe~>|NEzy9J_fZXu;3t;IT@qyBx<}CGnZqT69&)0xV$GiCSX{cf;Z3Y zBKai~b0#L>SX3fsF9=xCub6W&fs@5f7zxWJlknhyyteM3m z+7`cfd1BY4m{fZM^*ygQxd(7yA�xEi(xY-b&B4E$z;L+fBRtOl-)YXR_J6dF(6F zoixHj~tQ6P2y3=YL7zil#fzRb63 RJ-Gm++|$+1Wt~$(697eVKhXdH literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-xhdpi/btn_check_anim_00001_qntm_alpha.png b/core/res/res/drawable-xhdpi/btn_check_anim_00001_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..b136e2522961866af7cdd9bd523f580cddf5fa60 GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUtsh%#5Ar-gY-aO5DKtaIu;*=z9 z&GSObxV<;=i>I~dIEh96IL&j1Jzv-T;DnDB9EwM({MKe%es*f_w}3_4{@tBm!n@7<^KP#b#ag;Pgg&ebxsLQ0Om?d5&!@I literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-xhdpi/btn_check_anim_00002_qntm_alpha.png b/core/res/res/drawable-xhdpi/btn_check_anim_00002_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..6a94e30148ca298cfe4ee3b619bf2aaa13fb948f GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUt#hxyXAr-gY&OFQ8pupo+%3%Jo zZOv0AABNinS7s$VIw+w0FW^($r&xdD;1_Iqj$B z!mvYsZ~T!9SAHNZ@WGU6BV%I+0~3crLqlZalw`kzYbO@=Juww#ieCKKbM41vN1ihU ztx#Xfy@VSmmb362|Hhx!GsNYM{76%qo>cp;T%gW|1#Y2N{%pK-jw_#c|7urTw&+_opIO@{ z|FApsMdi_vhx&_E9mF^UydB~c6oefZ7+C~>1pk_>tgwE@mAn0v8p1o)3qV9!diV?W t-zeH2RkHt1>HfI?NBQ{}74JfPbcJYD@<);T3K0RTMbM|1!H literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-xhdpi/btn_check_anim_00004_qntm_alpha.png b/core/res/res/drawable-xhdpi/btn_check_anim_00004_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..c8113858f84750c3aca661dd4823ef1cf8797566 GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUtN>3NZkcwMxZ*JsmP+)L%e59av zP^sq))0rhAGj2pAI(&)ylx@59kbsJ(Y}Bcw$X8n;*8lX#j?}wtt$#h+-2SJadA+O2 z-cE}T&(0qebEsleU<4Wp0zOS@&w~jncgq+&qa;H0 SJGdr*RCv1jxvX%8P+)Kk3@cy^ zZ(KT)UsEGzO@Q6AJ5R1w2x;*+PBK}sS?}7?e(~Fp>r1aZ-DOm`uzXR&Xc~}U|sJhD9g3^rXonO Mr>mdKI;Vst0PS)OO1?tRkh`+F5ns0ahYgwCjvMfDNOi|@K=vK5}r zxv+C`W%9@49Z!-s@6EYXSR~I;pvm};nQOc{$J@?D8|abkg{NkMCVzN$KQRN zbR$*WpRK8T|3dx0+s^={SH3gEPsbY?GJRua5@Tc$aA1HD0g4+u)lM!5JTNuCY3p9K z#_FHlf!zm`R_0|#pIrA+couVK$kWa8N$M9>b7G-K@*8LGl&w_4bu6FbN(B4>0=`5b3?L97009U<00Izzz`qNuoU2xW zSpLMZoJE^JE}yYqtV9!m`GfK%U9Y1FP#Q}D<;4Z)WqiE8RV*(m@Zg-^%&`^Ai?2YG zxE#zcE#K@RCZY08U!x>YzWF{tmCJY8$nN-hzY z7d*RwTOsYEV`B+Uc#&J^`A32qUhE-GNo<+nMPH+165R0O^FT_13%g2M^}pBEZ*VMPiwQvxL^eNuWKy-hsp4e-0000#dmRVsW*^-NNY=aZoH9m;LQ2H{v}PEV;F|9 zo|Du|+rss6>{V%`!;jmnx$=XNX59&INWkX^w1xy)3Q&Lo6j141dXYYA6bSJ9IM!iC z!koZ6e9EyFfid`v^jd>J4!jwGTzD0Mr?f8w4;KjVXX#ej6@Z5dB>0p$2?RV;ppVdQ zfdmR3{s?soB#`hbFYz}CG`!kpbV_0ehF6^j#w5`2>J!$O#CTbKXcKj8R_BPNDn7~Q-86@FpA0JiHs00000NkvXXu0mjf Dxu}Gb literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-xhdpi/btn_check_anim_00011_qntm_alpha.png b/core/res/res/drawable-xhdpi/btn_check_anim_00011_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..20eb752fb86b506ff733077dc28d92a5c7d1dfcd GIT binary patch literal 326 zcmV-M0lEH(P)G|q$Gv_VtK9qZ{ADZ1WCUy1X|kJ zjA0l?b24czbKW-T+kt=|2nuiEDMFK8Fpi(4IQGfz}E^xOjaFK4M zg++lHe&fem3`nRHc!zJYlwK_ebivQ1M+;BjTX8H|aroP6Q7XsNr}1 z`f8-aRCt)cL%MI>^GN~$4}AiKpK!)Vpy1)}z!(W6e3Y-ykOUe&+Gn&+Vhx6mIuCS7 zpy8uWWPK7S_#`uNTLKB6Y$?%5py89Qg=&ctf9fef0UZM7H+Ri%ubV&MFn`3vFboqv YFLB;)qb!=~t^fc407*qoM6N<$f;|d?^8f$< literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-xhdpi/btn_check_anim_00012_qntm_alpha.png b/core/res/res/drawable-xhdpi/btn_check_anim_00012_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..532c9f2dec75124d348b3b2c461812427e24748d GIT binary patch literal 325 zcmV-L0lNN)P)led)6!-c z!!V5IH;V!- z{I(l&HzJ`{;2qv)FTGn37=m9(PZsXL9C&pCbKzA9guufE9@1+PTo+5#SkMbG)B!PyHHV=$Rpy8uVWJ3~Y z_~M1~hKmqfcyXLpo%^z@>KVo7ShKZjS XogH#(!{flT00000NkvXXu0mjfcHV@T literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-xhdpi/btn_check_anim_00013_qntm_alpha.png b/core/res/res/drawable-xhdpi/btn_check_anim_00013_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..0d78a325160731ff2b5aa316ec5c35bd32cb7dfe GIT binary patch literal 313 zcmV-90mlA`P)3!|3M)foyhjhHuU500000 LNkvXXu0mjfUx$O( literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-xhdpi/btn_check_anim_00014_qntm_alpha.png b/core/res/res/drawable-xhdpi/btn_check_anim_00014_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..af29678737a8c0d84c20bb9d3db64342d6afdac0 GIT binary patch literal 310 zcmV-60m=S}P)OYTXYRzVw6$j>CuiAR$1n_IIlXk0 z2IBFnQ3V)WKq<3!u2|gt! zVNzfVzvdvlco4|J4<5EqDZD9x8hA4TweV1ZTLftd4->dbj}c^Q2oDiR@F{yG5bzLz zAuik%NTA?hTc|_=2@m~<_eh}O;lI&$5*qL-b08<70k1a5UP)-ct4`va1QK5TD6y45 z!#6n#B?%4qW{0^!37)qS6rjLAUhcZTUU&b%;r@w2c2_oUIkw8*D@}76L^OYI}#=Z zw&2|e^uU`F=!G{WFamEzU=*HJ;88#{;n@W4xt9VmE5fq~RQQ@!2@ZG`0ou6cNP-KV z?Gfsc;Dl#=iCZMN;n_cU5TrTjx|1l=(BuzDRD1@d;P;S0V)@-Y>Jm650?dOfo^!r8=V)HV{9JN*XZ6>=;l-@LukD@$cB z^nASHLJdW27kx+ZR&J$bZ0|#GX)jl!t9b4ripHu**fx>524-f751+2!~MqPJv QsQ>@~07*qoM6N<$f@ciQGXMYp literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-xhdpi/btn_radio_anim_00001_qntm_alpha.png b/core/res/res/drawable-xhdpi/btn_radio_anim_00001_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..b10db83375a653d7eb45fab158b4bcfcbe98318d GIT binary patch literal 433 zcmV;i0Z#sjP)|42G+2j2(IgCT50?nJcleasXD&!om%D2<9H36HB>7$F?4fRG~ipfJ5svmc9iA zKZ0YNWVH$sB#5+Zh?K~Pg30*V<`*4a6NadXj<|iG`REGQ}YGqAJ@d} zYGY&YO0-19bv|JXKWll6jn4g?)Uhd*2O0cR!`C=xkn%h)Kb!JL;8WKGmI3Ok_M#DW3DKy~VD`uR_@(K={V zTEH%}pGW~km4g5(z;22t%A^;RVByFRMFpTJaS%WP*e(7d0QD)Pei5rLqw0TTUbGVG zn>qFEwE7K=7h6j8n|d#fRlGRZQh&7Q#o?|O$Ln5PaE!l(+AF4U+oAH3@7;bv)irC7 bAe!Y4BbzBw>0k}e00000NkvXXu0mjf=o-e` literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-xhdpi/btn_radio_anim_00002_qntm_alpha.png b/core/res/res/drawable-xhdpi/btn_radio_anim_00002_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..efeb6fb0c2131795b7f8f7f34e0d7af0b0ad9780 GIT binary patch literal 359 zcmV-t0hs=YP)zcz85B+HVL zl9CQ8feNUB7OC-B8DqjXKmjAL0P7bPd{^OTgQ)--K>v{RJ2b{9d?$YgW1mx(PVPF zWo2b$?dT2|phgUS##RN;06j1Q4tQ^H_+5{`EjSo2fex@chJRu4zh$a3-U3U2@huCE zb=eiEfPujHmI23(swXf-Fz=c07}3nn5zTw%7$K_2XMXQWRFnlfTxkBgCP)gqO<>;B zQatC^gaOvG?};vtBclLg$b8;03gC{eCk)Yn zUkJrm=172=$ovDL2vPr40P(kw_#zhn7*+8i6F-#@KbaFho#wEhStuG`qL-8^7WLxW zDk>UVDq4#wn!766>nb)l)NC=S+2qU0%1WdUWEBROmo3VF00000NkvXXu0mjf^7@qm literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-xhdpi/btn_radio_anim_00004_qntm_alpha.png b/core/res/res/drawable-xhdpi/btn_radio_anim_00004_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..b9cc322c4847e901c0974ba3bad461908a92fbc6 GIT binary patch literal 488 zcmVP)15)?ix)2~G6z=3f{2NXsEC^Q0X5n(JhS*KM$d?dC?#WmONqX- zPZ&NWLgL)RaLyUJrehf&5Ze}m-r;f}Qep#AwAC&Bw$N=pWj7V@)%!dK0l?i5;|0M2dvX4Hz%y z1W)W}hy#3wT^TgKX^e76ZNu03Vgv^Y#XixicH;549>MsgvEn`sWUM?$Msy%yWk=S> zfl5*!N`bK)5T%ItUG;H5o`IApG>s?*<&yI@SYZT_zuus(#G zNMh@kQR_D{>q`mii#aFCY3mO()*mUIIMiEzt>VPRmJ?TtPF(IfalP)u2M%XGF*)^- e&x;o?ACMQ>`_s0H-8mEh0000_(>aRFGCt~6#IQuL|jGh0M z^Bdwkz;VtQx+aqav3uauCs7eOsL*zA%nrJ>$~$rDabQnGgnwtek3Rbz9Vgh(=KMus z^gsmY^G1Y3N@PR{GPH&0<6+D}qVJ+3h=t_Me<7pHh$XQl+9&3Gi@r;YO`wZ^38mAC z&-okifoE%?8L)U8jP;=FCRr28vJHRpKhCELvQR1n!N0^tMV{xWGEwL}4#Ie<*fbx1z`LXGJX*opGJ+}$c!%~j4$S_D5s4-&=`NDwBk^2#kGp@ x7h6_bEn0E8YsK}tH9t74_{HSJi4!N|e0)cb^YwL7*1S^YsfxN(hK7%h{YvTi0X>pH`%EsO|NOOn@ToZ}h&A|x6 z;Lkw=eHRf<7%e0J1sqttE#LqNkOKvh<2MKEP&uG3 zJ`={A3Cm;t6WBAuL!kOY(pFfPI;4cWwxv$+nQ-S==lN1e z!{!~RCoG{g>Y(Aom)J@Bgx8X=bmZ$9_JNws1W#;lO6;H5QfZQyFJ~~GhSQd;PB)g& zqjJGwoy4RpoYDA(km!$DnKi}%pDD4)=vM+9sK_kXtjr(dK+28>%?|4bFuuVdJ2pLb zq+=YQF`kj{i9iPu(oe>6!r{+gVsxSO|CpM!*bM0UKn6&mx@juW$tBz!v!ROSUL;e755?aFB4E zazGt_8ps})0Q(h=Q}(EHzqRuR;C054PhbIj0|r138Q`-5=S<08(Z(it0p1v+BNnPJ zq02{^kjDv%^xO7rd6A7dI zJn@#&g?8HF9By^b%=|<}tL&MTr}!z*PNM5{C_`~!y3?u_TQfQDkn}27w9k^HiNn-H zy=L_X(rswLmJ0TOk}2$wY<3U5g`5~_n6y!~kdUq6dMuYV&UzmAYJ8xj7Ks7ywBvQyMgm}x-&JF$plal;XoJ* zHw+*Y>;z=2k_muz0Z$lF@vm literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-xhdpi/btn_radio_anim_00008_qntm_alpha.png b/core/res/res/drawable-xhdpi/btn_radio_anim_00008_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..05a7a0f88c9c8fe3806146082462adad314ab0f2 GIT binary patch literal 560 zcmV-00?+-4P)}R*TX`oUVoRKfF9m1TiMY+5ibMFs zzQ*BO?AeC%Xy-qOLkGtt2e$c;QC|{OjWZYGNTfu}r2Ons)2?FMy?u=rB2jey$?pPU zT4Q6%ItjNywi513yYoBH*_BumZVQ_(x4i9HbhR8OwP~3nl&;3K~!C`lLHJEijf}^D|Yr)$}CxTtoRZI z7_e4T$p;G-&G|PXYmxgiZj080T-bh_0OSt4Rycp^uz{TvL9D@!-MF@qdEN!nCL49% zg)=anT(D0xs+}T`(xj|3mJ%yqU#9M;NdQ~XH~`tE)EGbsvQr>*woL*!i`qsS4>daf zLkI@xB1-YQ4rmv0Mk&zAdk7#0{iH(2yC;B!XcPmTvWEal z&`&IM7Ecj?@l(k7MQnT;wPGVPzLYS&m@~edw&Flz{E^c5L%kK(Dpp)<8Gp5C#pSLQ y*XvgN;IQTw6RMqz`^k6fP-N6^)0@?kEP)`P^01_ZW5`5;O&cBj(AOB+8|4cSO z0o)~==D4Gc&2Kus1X7?G;kZbHHkVU7?*OMKjy!-G$nl7TNQ}>F)Zx~jaF0pk1Gq99 zpD{^S5_VRoduD81aWCc0--yjFfCpFuY+AVXLfE~j48mc4`2%1puy3O+>Ys2_BrJ92 zcM}}Z9g`EI5<4B>{2K7Fft5&x&(;HiNXOLqhB!8yY=Ps8X4aw3_KBSXQDO)6iGoO2 zn@Pq9XnWNC7S~uzPKb$J3>go^4(l<_??*JSJrjgSbnISZM@-atYNJR&7mk=8M(h)D zp8zUhaloAURzUzQlM{iUSM?c*J7GMaI_y#5EOcZ#_CqKDQlq#l7_XU9*(nU5V@hl- z=(#chh<{y9==chq|Hdcw$t8~R4@o4FCz~LEOrn@1G69Irg@jHyK>#JOPbd+jc>!pD zgtSj$?aQe4jZFJd!iZr``*B+P7aAj8DYbv8H{x1F`-?3jt`?2B+%@8Q-G~nyMtowT o#ttn%@^PcMcAr^inMG&$0_)oxZX@G{L;wH)07*qoM6N<$f?j>@xBvhE literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-xhdpi/btn_radio_anim_00010_qntm_alpha.png b/core/res/res/drawable-xhdpi/btn_radio_anim_00010_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..5f149b7513b3325152f8dd70f5039a24907c4637 GIT binary patch literal 556 zcmV+{0@MA8P)%04qQW$N?4LgsAXYiaN8u5_ABF07t+L@L`A>+C=E% zS7Z;kSOl%Y1%3UPyZ~wkfm77zdr;W|I!zE)Kmj=5s;&`xd{&^2%D%&Q3?eb$oq6fk zvl0**)^mWmrN&=8MDW~-odL@pewXNj^Bub^8@f^tKn9pP@IOUg59XiPy4bKCLxGzC zN_4|eao2Za*UZYB1it|6unc1Sy)aDT!LZZQJWuN~)9B9u382xiOoKXejh~FMv+ffC z)1=Otntuhf7M$OrjcQMvnPz9zu_IZ`i~H;Vo!t&`x#BKD`q_4>MwCP2PKMqNXL$qNdhS`DinH+ z!vq?|I|`zgnk0}Dql1FyT~DK2pEwYm+$4d@fP;4fB(O8+MU_bcCt|d=81DLj8{XDL z=kzZU5MM&#H?epc72n9jj}qdCIWNX(@gFqeKPkQVsQ2PnMf|~*7e|X;9PWB?yza#X u2kjFgub5~(i@oIIrdV;;tfPz~T|NP&@)f$h%U;U>0000t9$}fT zacsILydkObq&OZYV;3Ez`(+T3L$WE52r4u}`*#J3ED{O20ZKJWA1}`OBQKa@Q z`Y%AyA?Fup!^vJz>^fEKSdl8ZZ1W17dlarS+H%>6rr5Yk0JOKsTHbsg=bJ%r|3s$f zowRc^oro(^#bS61QM430s;gCVLPdMPZCF!%5Vx^u+Y#ynkPxGk(aQ}6kTY|nL@&_^ z;6RKbCePOf1E`rg5fQzEP5>n_QdL4{gm&6tI)SE6sS`j&j9i6|KSBV$Vjh?1RR1CX z@k>bjCKjJY#TPR1t%UeyZW8UZ_zxQKpOlmMs26{%^5|eIFzEbf2V0XkTAak;uK45i w$y{(WQ>@r4CR(vYUh;7nMcg&(EVD?LFU7wQ8BCm5OaK4?07*qoM6N<$g3vemJOBUy literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-xhdpi/btn_radio_anim_00012_qntm_alpha.png b/core/res/res/drawable-xhdpi/btn_radio_anim_00012_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..44e08e6405a1c9019048d552946abb9aed2ed44d GIT binary patch literal 566 zcmV-60?GY}P)dPc1~ZU?1IWRJ$mzF~bjCF1>Cypna0H(vInvn9 zGaPS$HMrj4IOj^XT7TvI6r4Ob&N-3ohsi5FDU$;?umcG>5`!KQ({Bms+$?t1G?!O- z16#v{-HM~A`d|q%VQfbK^&OT|<)zdS ziqyuU-vBF6IOO|+bQ>0X8==^hs@QWORhqKRJJ{b*xb`&Gl%05rotJ6McyF_?Jo$T^ z{~3hoO)P}o$*BPx3l-K>q*fkUh?S+-@rpfi31G$s?JOI%@DM;@+1NX#J97yjWrGrf z-qK?uw=~R=Ful|zfP-Tp$vg&-ITq4`O8_|=6dQ_^?{-=$b}`e*T>{|gt0(9T9uUAl zn5QSC^Y8;uzl79pV)bcMeIZldN~mw<)VI??e9)->qzvMtUj4C35C>a994)Fp+zsM* zJ%|eqo?_KrG4YD6@{&(#07sGgHR~w)C)cdC)S_L!0L_96@~F8+)Bpeg07*qoM6N<$ Ef+*MpQ2+n{ literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-xhdpi/btn_radio_anim_00013_qntm_alpha.png b/core/res/res/drawable-xhdpi/btn_radio_anim_00013_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..5a9dfa02932a1720d13a7f0e3eea7efa90db0b16 GIT binary patch literal 571 zcmV-B0>u4^P)2`Vuo?b}||OBY|O6BsH}#LQFMe#~C{^31BV|imG4>3jq|G!sY}zHwhqR zixP!iY;ll_6?-I1FEt4uV~fTLy`9AXc8Wd5OfNGDfRk6KAgR(~0HuQLLV?sC3NIX~ zfV(gFALuFyne&1F0XUyR&KI%sZPa-pbAFU?ewcH9oc7{}#`#}LFMjHsKUVSLV9Sf6 zMduH9y*OU?;(~*>SZA-8IAc3`$tMkf(lzUu@NchK8)?LK`2k<`2>yXGU!wp3002ov JPDHLkV1loA?y>*? literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-xhdpi/btn_radio_anim_00014_qntm_alpha.png b/core/res/res/drawable-xhdpi/btn_radio_anim_00014_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..ee921c63dc5638bc35c9998ae2bd0ea9ecfb94fb GIT binary patch literal 561 zcmV-10?z%3P)GNDTR1Y7wQ7SyeOz`_Uc1q>|g6$=v|a_cc5wL>=q(%n1B1G1bn zE#Z)(T6#<6ICkUsIZ3C}N-M4SkRA{NOCSTjfD-s2l=LklotVbFTqeL8INv$ziZhL! zyu$GjumNrj9Ot-^tsoX-;o{UUL2ltbqOlw)Gbf1 z*Ou( zZBomhZ{qxY5T=z#h2F_&Kg9yWnn-Hlp@mpj$c{61>=M9|4cc2aY~dk*!m_dVOn2!L zK<1b}iN{7RaZIDkB>+w)GlSm2V*m%k95aDLD}|F+WYEh!29O)(hy+rr6mEQAs8qhs z15$+<2zucMpgx7vZ({XjR6UWYZza?>bL!jaAPzL@kCZ_i>eXMX1aYwy#MPqu%iSQZ z*MoTA;3Zb=6BB1_m5+Q9VZ|MV&#bMqqFsIgO6&(#U|(jh00000NkvXXu0mjfoech= literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-xhdpi/btn_radio_anim_00015_qntm_alpha.png b/core/res/res/drawable-xhdpi/btn_radio_anim_00015_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..567bb0c4c28def4f38df811d56ddcf9c54a7c878 GIT binary patch literal 555 zcmV+`0@VG9P)20>pa~!!QTq9Ou6B4+aVhR~{*Nv_T zvpDcIGBZ2l&fo4X7BkH>lMQ+Ugn$en0B1l8_(Qb#O(0K*GB2kMAP3YPV@*+`?B*4Q zuK@+%KEQB_JL+0L%lJK@v0ykwgSsc955Q4lz!gveVvO+s;2{G179-D9qvwcgS*0() zNwMGskf5Qav*ENp%OTZ=oqMV+#68lA9I z={LZiAjf>vP1oCxDV2@n&-)V=3SY7l&Cn8CNMgP(Y(4=IcHF8XTj93|dHTYM=0q{1 z!_p>|_Q>oEJ93S@I!YzY?xBvIOG>4x+Pnh}0~*%>WmVOQme~A}!HoXNM8iMC_^uNw zN+dgHGysN@4(n;cX6y*D(=vgkmiSR){Ot%(Cvxo5~X7E47UQ$F_{U>`#4 zlbC%OW#7oyj}q*MIrihU69*dhM@n0V`lX`7KIKr){#wO}i!CRv7TI6!I&r=3!~+K{ tv2351Xvb#x$R`^B!v(`<)|qDFPXANI2G|EIkEQ?s002ovPDHLkV1izB^$-96 literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-xxhdpi/btn_check_anim_00000_qntm_alpha.png b/core/res/res/drawable-xxhdpi/btn_check_anim_00000_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..1881f541ddb8e6bc713077b98a74f6b436f61a23 GIT binary patch literal 513 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@Zgyv2U_9aJ;uunK>+NhqKPE>Bx8(~K zEZDGM@zJKOi;NXNvQ3+HqgvdywTN>En}&Ad1POiyTd@WIkK|82o7Ty?`Q)2twI{P5 z&fk8R=V;wIK_?EymI?na8CkiVe<97Rypogo?48R}QK1~Kq?8|@oFS2a?2w0Y`oc){ zS+z^HvfQ=&$NauWJUK0=xA|kRFyE}oyggaEcLS_fD!-09x4m%9#2HHNYZKR)mO62~ z%FI5OrKhf+xz6+}koWrg?%aksJo~4uyjE7mX7!{iz3=|2_+z&sT+b}usBby>Ug_bv zb6w0GKWbK3_8;pllr`j^6f)=j{etj?EK616H%yzuy;#=JIXTkkzx&muuqvmwC;mT} zH%s1;!%3h?phba2k%Kg5){X_6#83V`ee<8{+lAe`wac<|Vp{bl&0nSTMm6*0qj%l8 zF-JpN)TTw2y<2~#NYW`Fto@VdBDJdv=fy6t3JF{B+1HkUph-mFD{=f7<%N<$8*&M~Oms6t{YdfD=b%P#t5Q Xcv_dL#k?!PsAceU^>bP0l+XkK7VFsM literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-xxhdpi/btn_check_anim_00001_qntm_alpha.png b/core/res/res/drawable-xxhdpi/btn_check_anim_00001_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..6f8ec2d94b38a9808cd73ae07902d990a4dcbdff GIT binary patch literal 565 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@Zgyv2VEp6h;uunK>+S5leoT%ct?W+D zyIWZkbvJy=+;FMgK&6HKf?ICP2TPqsae>ose^fGZOJ(wMznJ-Cf`HP*q=>eUbDm_+ z+%0dtnS1AT3D-aoAWEGt;wb5|fN7P&w>etby%E(PCp5ibn*KoQPGkCok22AZZFeNT zed>I2WuujcgZPpJj$`wTQ`XvEi+jG+;(pk-=J(9I~vMQf84<0 zdw|=*zHNc%i32w2M(f^gU7-4dDfq)g#;BXG-4(>y1aY%14|&rS2%1|51!vSH>}*G21-S``P3LmggJW*#BGH*)(k@i{}KQ zQGi3!l|2dHvgz{lm9z% zuW!%&E#-Pc(E39nyL}ZS=PT*(&l7L%hyt9ff{ zMb}o23bw76tTvhnOz!YFCp`Owi;2E(WOw8+2TZk8_c2&7!Sdxfwgpy`?Z3ST)E-Va;6Ve8cs#ZjgDCR>H}N6vkh6Lx&h zvp;E}$7QVygcTTtkkNwuORqQdpV;G(7kB7d_Y?LdK`qKg^`B-sO;|YnP0}>>^FfB* zA$(VpoVD6-6*tI+S4~S%(5d+ME}5 zN6&Lqx8AnEyVt39fz`Ejq2Yn^J+|+9A$`Mj($%FFN9J|cUpTm^Ib7&x-46$&8I#Y? zk>>o)!l>9H;KZT$q^#1!X>rz-o;E?rvvUMiE}NCb6T11kjfCproIR57-R?_BCMQo4 zKDKJ*da2v1b}q^OAXeU#{`ho+gm!Z75w}UkNmrj`#Yov+jr(*nEcN71vu$o!Z;Jd@ zMLnMs^6hHg!dqDjh2L=<3o8$bzFzb-~H68F8C8#+Jx++eFw`@Uh~pW`oB=9x{}{q}dB z^#0rD&TAa%OgXHRr;s8iQat0RuHe)IkKaU?@m;;Veqyh)s%7fhZBbt5ydM;^;a#nPZ00mJ3(TdbR3fn(|C=Y_teWw-5Rk Wt(&n*C7W1*XR!O z3u{WnFD&jUpYh_>;$FRD%oQB5>M1XeG4GhMvPnK|LQi)i-`x*#H3jKURj)P%h%y1q zVqoYweZ^?Ij!x*J$W_N)Mg*x%J7lzZjZXfw^3!$~udFIuJBvHk*@Ww^;Qz<|r;lEW z*yZwgYi#IizpdhitY=l8A1>N#qZ8lxd|?#-w6*ILZ_V6%>F$nHg=dy=pFQ7-J@uKj zdcOWl8%t;ZN!xE93pysS;q%A*w@h78C!4i;cVTG!@?CsaR~-wM$drBc-RW-B z-zopr E0Q?=ZbN~PV literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-xxhdpi/btn_check_anim_00005_qntm_alpha.png b/core/res/res/drawable-xxhdpi/btn_check_anim_00005_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..430c134e0c409458674cc35dce12207c54c36e11 GIT binary patch literal 403 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@Zgyv2V2tu~aSW-r^>(&l-XRA8SN982 zoZ)(J4_Ug^u%BRjkmAVoy^&jD*+33=^C9`I&eSW(5)0cVK%U)hBeDP~y z(yVKfKELFgH~YEu=Q~%vE_j!E=4IwrvqLOL{`dua-yRVh^1^1mnvrF_@1>iUE5i&~ zLVvyZDm=yb*`o9nNgS)brtk2J2)JNuV#s1@EV#v8ph=)bfklzSk;932W+dk$q37Js zig+usC$3{Gp7@8gIKtK9)_JW%my`^3HuFRqv(J8JbozqrEu+&GuIFC|q|bdlAye;F z#TJ*>0gIOeExvU#d12oC$g--5b9YVq#y`7V`>)_EpWu~`FM&fvL9zUvf?BJf^P4pw NzNf37%Q~loCIA_9se1qb literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-xxhdpi/btn_check_anim_00006_qntm_alpha.png b/core/res/res/drawable-xxhdpi/btn_check_anim_00006_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..cdebf83fdfbc3016abe33334e85261050a9726e7 GIT binary patch literal 593 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@Zgyv2V3P23aSW-r^>((c_u&MQ*5tcu zZs@$d;o({!I_H+Wg2jtlOJ6K%?*8vApw7Pf?%kMQ{3UCShW_sCUSQFAG-}1X>GKwd zEadY&<9)6%{ndoq%fI_F?Y&+o;u;7>oaUSpSR^N~%0={W$Yr0}aLnaKQjh}srv%|C z2g;6UY}{s(U3yp`RnOo!_xxt5j0Uq8EidDuPPuR8M%Ghn z?(%M`F8X6SORPikxW}r7r3-dxoctWKc}a2IYn9?VTz~X}{o8bJZ3yV|pZtB1k3iF= z8lx?`VpkrPe`peT^6}%%jS&IjZ$89kzKWcpz&VK!>YBQMv4WNVfn-g?LYCUkOzRHX zv2)33YJO{Cn^MgA?Eu#ehU0&%cZ-)hK8uKLj7>LjGvHh5x=t?J(b;RqbKB)7&KVZn zbE>)${c*!t77auJ=mFUJFZKyKs&3&q*=c zvKqzpK7N!`^;)y`K$LUj3Tg4D>r>n^WiKBu{+Fp542ihFDf+L@aYn7{+4NZ>KG5tEo zF@rJFKtABonv2(@lHbnj>iQr&let}ipKF0g0M{Br_DySSAEkc(5`0chqgiVO`y8$8 zyXkKY*YDCe6=wTH`kL(GGk#tlW1{9Uu6w>mdG661!jx`w6BiX+7yUK3b638D-2tb3c?|Lreh^EdXs1hkX)2T3F3i)MTEM84D3UV$yygs+TKm52?TbnR z?(kJ`EM8E3`Nn)>wq12H+nZ14$llp_+v%obcmi+F?De+Icb9F9PoG-8**xxybLGT3 zR`V$-{a2aY4l>2pU(UTZL;T()^MfKc7R>27KKJnz@uTWqH(8(C>1f+#c|iTMjq$(a zb@NHLMFI*ur zJ^CU`xy-5)sZUQ^glz6s`Xdq)b6!&TPU9|~Y#+(_Y_Ilp7p1Bg=heuZ41q@D(PzR% XOahhbtDj8*CLab*S3j3^P6+NjYY>_~TR`p{V zW^Q*SKCIpxTz`P8%+2J-%^P_J3G)?ZKVj#{i{kDU=@RG`5!_ zM}kkuBzGq374V&V@}=SO1F;HDyXMpnhl8hC9%Bu7c%wSTQ|kkZ{{i&?=F$rv=2#ui zN}lKGdCJChos4y$@E^_|wc~LQV~qSeQ$x7}{G589nmus3AnjJ?zNhh(C-vOdMo)cKGqNmy#Z1z7{K5S=M``o&MH?HBk(3kh83@!P8 zc6^tb!SLQF%F~hC>&cmB#|yk=P234WHD?@xE;I>Qh95}0z-e{Bu7Jzt#DY6}M7OZq zYl_!Bl{KMgSJ3mVp(Q=5UpVjP+;p;@b@LtXdj$>uwO9MiTi-n2_lBwg`@XHS6($$6 z$FQmI_-J?EDbn@NowL1G6NR@=Uf^25|E1YELEM5buOa=8znS)Gy}ITzC4Ex8v$RPxYH@v-^^@Gwm(7s){wV^I7*k`d7>*bK^mUT5>dB z>eJlLwVzxYZ$HqvF;{D8NzC-A*TW5~XFuZJ!F_IHjaihZ-f684`>t+HPxfNH)d_i~ z({`wTEk63@#L6{If+E3_)-L({z{4+9^v>B;Q*Vpx;FNo+p}u1G&lyRps-Eon8Q)-W z>VIye?Uv~ZoLu1(;+XRU_j=q@y4JNpp!IIo1|iEF*9~j}*({uUXQs-`DN)qOY@gM6 zZM(Cnt!id_)WaF`oA#Xuv<}&|aNVJ$vrMjp+N$0SFrPQ+@t)TkPFTr36HPo5>}Gk4 jaoW^iOK4JBr1F#dFlV8kOW;CK0%!1a^>bP0l+XkKLTF2Y literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-xxhdpi/btn_check_anim_00009_qntm_alpha.png b/core/res/res/drawable-xxhdpi/btn_check_anim_00009_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..d716fbae0cae917681530e651b7f383cd1bad1d3 GIT binary patch literal 826 zcmV-A1I7G_P)&YE)H%A3W|d`sDZk4=!b~AgDx%(LamFSLkr^6s!Q5B zIS76rNJS9p;^5a*EE2`WHu@Yq2d}S5Q<~&*@0;fjzokQa_sczZy}Mixs8lMIN~Kb% z)>|pC6=Xm*CS=&=lq)$oa2%Wi1D=y-TXW5p)CKy$5Euhfpa5n)r@*$FHV?B8UCkId z<`<8Ec~As@Vn&f|A7x)sjgHk2|G;;!8bd*=Z2LSv=!V73&N*ZJ6yhi+EXnj?JTxcO zT^UYtQ!y43Wg47d-|DU`SF1vT1kG@D%Qi~T09S;h2$}=uLAL}+kOWDP1WAwtNst6d zP+JK44Ss?}@I!+BXOYJh_rNO&`gi0QIS;`_?!>Qx=Nmk{OOzlh=Ls0(5k&_$04{^K z8<3PJK~~Nwu!nLsfo(iGy#ijgqo8oC1}UdAaumE5Tm!G$O;EL1*)k)j2OI_uz^8T- zR4rCk&K7W*a=w7&xCttQB{sg);8^ug&ICu!a@GJg-1d-ZYGMK9mmRxN!l#!&%hZ7 zIBqw2mF+TCUI~-fcB%#Vv3g zEAIrYCvGld<>h9zR@_|1%In?y5|2mEa)Ry*$#E4cuLaq-y#SZMF0kEkth_%DGLp=f zC?E5f)XYnh4r3LY1G6Hfyy1V-x;U(`Eh+H=up~jcdX^vwlA!tpjsghEE0c-TS2m16V#{d8T07*qoM6N<$ Ef@)D`2mk;8 literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-xxhdpi/btn_check_anim_00010_qntm_alpha.png b/core/res/res/drawable-xxhdpi/btn_check_anim_00010_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..b8be04147378ae3618d2e46ea90ae12cacaaffbb GIT binary patch literal 832 zcmV-G1Hb%4%}qnIlK-bFCpS((OCL@exrHdcxeQ(j`@Kj1&0Xq$^97FGf6f?A}=rO-;j zE;g4af`W&NQHZ~YUJ~^kco){??smo9*>88h51uB)-Fy%8?#@hZ97jt_OG`^jOG_(E z^?^Z90wbUTs=}#otR;@UFHS+`3yy&rxDKYljButo)*8n?7?+&G;3Aj>4X^^5U{yFx zj3${}%Xq!FEMH#me^V>+V7(dJGsT_r% z5kBNrG9<|KaswQULQsWof@X#UnO^E#2K;wb`MO-qkf1ei6C6@ODo6#XAQhy7RFFhL zTi_db$L+%}74$csz*BII8_=KsASu&=wkYR5xC~B!OJD)4gPlAJa^*Y%Q(y@6b5C^+ zJOm%}EXb8}mU~1arvL`P0dO8X$fF={tfnYuz%#}Ik1oO<%VbJWw^(`0{Ovfn4W8#s zP`6llkAzQC&MUB)7eQfSHAFcxoH?6mc+H#F><>05DOMr`89CpPlm8c-I%zwkPYqPT5$2G}4@HV8RxMP)=pdHG&3QmF|*ae2c7$vm?#40gC zU%(S^2JH7WWF(D)`5tkz6|2Mqt#kEyib4v$=Jxc6o6T4yCdf4To&v@x#4o8^+-$}w z(T8-Kjn8wo4Euf<;E&sD9(37^m56mvi?d`bAZ~ZK>$Vvy5rW!$&IHBn2smmvR${gq zVdAzM?6n*#ahug%aqCoZ$4Z=_ptw1fVL@>Wj#JdVlDQ@v_e$n6XU>EZ@s-R@ajWqm zSLf?eGIfr1GRjy5#jVUYK$U9=$y7PkavZVJ($dn>($dn(YW)E|^4s0iz@+d10000< KMNUMnLSTZ-Sb%W= literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-xxhdpi/btn_check_anim_00011_qntm_alpha.png b/core/res/res/drawable-xxhdpi/btn_check_anim_00011_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..bad0c3c398664b05af492c8b5358f29f812de396 GIT binary patch literal 890 zcmV-=1BLvFP)_<$Yti?d-rE@pHfm%Qc_Y< zQc_Z3)dO;%ALPLhD1f5l6u8zr*Pi2EjF8VICGO#($xiBLtj75Vnq4fY$vsRk zZUZI+<(c0~7mEop%{}E!2pZx=u9_l2v)t3L2|)$k32G@4R0m}~2K;vwdApoXk)Q?e z6pV-<5hQ{{kfG3-7@B(}X%UKuX z$vFzPfHhz%I0s%)QYHm?ougl#&wxSSTlp%m1Dpr%I-ESDR**kdTFyF3@t6MDe((}} z%bFm6tOhBkCvdo@S7Ob&8c&Yboa{cmo!*at(?SD=lXy7^9p_-R7glYK+IJ zi&+t5I#!7aYVvVkZ|DQ~$_=^{t3(B9IbXnSKBzqdbB@I-F+o4TM{pAy<0JoRa0h%^ zVJF2ItHcE91Mo?30IUbSeC$8Tv+Ssn;*M1!g7mfLE;tA_fIj|?mb3{RqNF(oVwG42 zJ!Ygf1~$}3NvA^MW-C^S37P@7z&`$`(l042ZZ>0;n4ku4?OM_ic1}=IySUkmRid}~ z20Q5nINYL>f^n--l+9Q<@gyBJZV$jC%dv7oP}I0>2fHlC%9(euC~;fOZn7CG=U!Gj z#jRDv9V_Pqg~d%-j+K+g9bs{^87rsHgWAQ-W~`hR)GBVhmSg4oiK0JlCn(Bhth(mN zb%u+32;R!qUs`vPK7Fhw&^hu2DiI`tL{RDk$rs5(Dy^dk_m!bhgtQK`j4DIJEP5QO zq|!AGHK`1aL#1(`?vgS%Q0I+g>M=$=sW-tEo#n-D!Ex$b>ohw@%h{`981D5tsigi6 z^_F?NbeS?Q$fGKzq26F84e;VN%-iIM;}p5pJl7uESh$pwl$4Z|lvJAP4_3eXF~;vH Q?EnA(07*qoM6N<$g0sq*IRF3v literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-xxhdpi/btn_check_anim_00012_qntm_alpha.png b/core/res/res/drawable-xxhdpi/btn_check_anim_00012_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..a6368fb87bd994f27e316da9775345ff8cb3c2c9 GIT binary patch literal 886 zcmV-+1Bv{JP)aKpy%P4(`VpWT#vim4bINa&b}}FAZe1BAM@bxe6=nz!lMQ+<6L251wU{r^oG2RIp4hd3oS>bg^i=b8B5nK_} z1ZyHl1c@LKq;UiI4Qzrfup@&0XV&f@|O?xC-ur58zjx1^IH+ zhHnZCg1w*&Cc!iCG0%d0Ip@J4%Gm?@_>6T1JnRuQrv(LLHAOjn9b-NKE`j+T57*8L z>J_VC4S*xyCU}*%i1mtG`WkoB^@i{ zg4BiiJ-EYHxq}@O+7~l!rec-aMS7i*j#EOM&Q!?)m8%(!h*l*w3G@u(3uZjX6ZV=`7&2#OoG!{C_VSXuM18YgZ=t|pVQvhHa< zEN#tsV-#y9)R3b#<7oknwxrqE6HyQAK@LKnh{1h=CYSyTey^zl$4Z|l$1;L2kJxtYaQ{EJOBUy M07*qoM6N<$f|?JQr~m)} literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-xxhdpi/btn_check_anim_00013_qntm_alpha.png b/core/res/res/drawable-xxhdpi/btn_check_anim_00013_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..234e5d1e865c61284df0908467360d7796826500 GIT binary patch literal 886 zcmV-+1Bv{JP)-v& z3Cw{CnD?9t$6Dgp3!IB_od%2G4tN1-U>ods&Njzd<=B@v7o(M>7(9Bs}oa5M&{^x}wfSm&GyCJZXFG`GgwoTN!L&Z%g^pc2=d zdI09c)VU^=O&Bys#}5KBNYCXxuW&=F!Ye^LAcOQ=B5nhQ);uql$AR$?EQmp3kQkJe zzu-Ig2@W%?nYl7Z8`1>txL^AM_ESvCl|kB^x8NFB0k^?t8kcK>;>vjm*1#+{11^Aj z-0Sp;Tkr-QCMrjpb1HH8oC0UTBe2KyDR&0N=3HgvXmchw<`X=KYU4I}K+TOo-C{M_ zG3FVt3?6eW`jZ!f`o$_~&N;>_%G)B{FII{_FVmb)pp_Sc28q>uR!%D~8%2|`3eq5x zv2tdR{+1iOQ`bz{!Mco<6NB_bzJfQLjQ+O24QbM-V&%l32F+SXnjbH~0W4t%EL?W76Wg)!>NMXkZrx-f zR$dv@FK(T(6)W%V2c^Z$cC5U;Vb&{dwqxb3LEYl!B354Ca!tlP;nI&$A(p3~v zJJeles2xhb>!;fob*ElP4RuS(P(xkZlDWzcuBq{C$=v1G*ZG9SSW9NCWK(aIi(JIZ zrO!kh>jqUXprI5ZZ(2%|k&ddg-u@ z#TF`hk|aehF~v6e4!jFXOtM)znVFsaK6p+|(wS$!H=CJcf&9Cq1Bp$X6cY?l0g8IC}t>_Ze^hi#`fd~>oA}9@iKnHvSU%{ye z`d`jx@P>R(kd!Myk(~SB8n^{sgX6pliaO^5*anN>GPnxvftQqYnnywLSSdMIK#^lE za3Q)0K7n6(6cmruBIOifVYGEDC_X5yBI4gf_hvWs*Uhh zyxQ#xN}5)ztO)wTZ#-7{*bPps<6x|e3hGhL3vicL`4T6z&1j^J+q7e4RM1cGkzc~i z#2#OytgV!BGZ8DJg4Fuv9oIX9?O){8PZKv2u`(*C%d7a51D_vw-rR(7GZ`x@Z_?^- z&%uo$l9J+PI#yN$b=mSt(w&rXGaV~y9~9HZ?FTU(E9*;*N#j-{rekGY(4=v@NleGe ziN)$9aSMs*SUI(t9~ZY_Wg=Ei2^tr-!7>#q=k|k=;$}Kl&Tg2EiksLiu`_ zWiQZln8nBAP^x<#2bzvUsg13*Kn~Q6toV`4U3OAC$lj66Hakbn;bEZhNM=+eT8|F( z?(U&0EyfPAQ9o@ Q@&Et;07*qoM6N<$f*kvO1poj5 literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-xxhdpi/btn_check_anim_00015_qntm_alpha.png b/core/res/res/drawable-xxhdpi/btn_check_anim_00015_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..06739990759e7ae09728a0864b5cc317ea7424b0 GIT binary patch literal 808 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 LNkvXXu0mjf*5G*s literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-xxhdpi/btn_radio_anim_00001_qntm_alpha.png b/core/res/res/drawable-xxhdpi/btn_radio_anim_00001_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..866f7b7aa67a3318e5b6653dfd5bc862f2fa3e65 GIT binary patch literal 1636 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 literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-xxhdpi/btn_radio_anim_00006_qntm_alpha.png b/core/res/res/drawable-xxhdpi/btn_radio_anim_00006_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..77142fdc96b497ad2a1646acd9e06c5cac5eace3 GIT binary patch literal 2205 zcmV;O2x9k%P)AVTTCu*=j~7f_6Hq}=V=+OE>;sL97SICr+~hamcDxIV?A=}Ho#db3-I+7z&Ykl) zXEY4Axy@~EbDP`T<~GOLD8Xn!ykHWD=h>+L(?Z1X;vPYYAYG6t$Ps)h$QOJL@_Cj+ zpLE7}pb;|?cgaM-$AYzjJ%XPFzYA^(8U#&(2cU^(H|cYnF>9eQaU|@nIKKFN!Fs_i z!BN3QfmhHhXcKe^dIfJa^zvI9eZ7o53auh&dzfq3v{*rcV5Z;;L5bj+;4i^HHVZLW zbVKVJw3jhg0&_>bD4AdMOTj@wo#3gUoyF-5!2811q7(xyn%AbQ1u z0zs}|x?q|h6;qzV-_!Ulm%iqhGHCd1c4iNAn>?HmEQYs;?i`bWuLQpcTG;MZreE{r zF9}L{$wh(;#2_|E@r`H9B50Vjs-bN+XA3;7fycN==$u4$j>*X1+OARh#ncTInE4dE zV{_~ntj=UXnqYMhY}5n8R-~zsb`HcuWkpPMUz6SMjxU<~jwJ z1zQDk1xc3BVLYC3pME^aJT@m_!`@7tW^&Tn%?dTUP76FGoD%{_(^aVD>N9NNcleX&{zdc zWzLhC^EY_tv9WGD;N4MYG69F|lxD4zSe=B?4^fQDH`*__BWPvZ`#6lfjBSNhsm14s zV@`AKN=@99bvq632~JwAnV9KDjd?#hXER?j4pY5?{NLHhJlU=210_}~P_nHdS{S>9@-fFsi@0T@xEpQwyiM%pabkhy zJrqA|0}b+c>OS1z7;=f|~kiAALh^xz-aww`-GL z;9Z?-UZ}F`g{mQ7vWh3LmA|;sh?n47Y}9_vre_oO`LoncN7E zFEw}J81EDxD&@Qu|HjIc4?VMpFEJiR?rwl+-f48;Cw*(lTQ4NQ^=W;pd8edMEKmwt z(yLAKnB9|s+^6I1c87WQ=+0yryo`ajjheDHaf^3K3B>}XlVESwyygbd5EF2|3JD1! zu{hR6x&SYU?4$yCwdRnTIS9xI#R6p#47O>G;Z<@qu|(WEk@vR|#tnFxf|!{{M_1rk z^=ZSI%nF5h&*AvRYL%W4R!pZ~8V=ioC|IC}@R9~^8SvVoSv@Zwcu3}cGzWMMn&>o= z5}iiB8Hm^OC|DrVf}STVGTT&i<2_9j?~w)>Jya8)Pbgt!q7JV*m3~>|a9%{g0{IcC zYDrL326_-1!-xFx{Bq0ixi!^8a?9Cq0p94>e2;7}bsm)pc< zew@io+R^h$zHXfZN6&T8Hs|=ra`apbFLp=IhnzfmwiYj(e$V0sUkHj9eEk$JEDun; zVE(%b1L9cmLa^m8zXd3NDZ~Y+A7c5-5oqbYE%Bw39sLUqx?l#v^*4cpaQB& z#4X$SZvoX(&aKJ_32qQvwj!pgfXdIahxEC?m~GIQ49&63QOuln1yp~+Ygh`XR8u8* zXN>+!@U~!4tR;By#=9kW=LslpfGa#ZOyIfNc((-4V+2=%cUJJ35ylccG)EuaY z^97b9P!VS$5qBEOKbtJzZ2q3fZ&T>27jdq`ls7V$T@hymJbH`>6qc(p;59HBs0_Fn zXL3KT|3ZSuV6Qb<%YYX`V;@dnvyI2D%7D$q`Pzt38L+jfLh>_4aE0V$ykr5nnhdgj zsqB_1{5_T5a!6ThGzKmt??mUEHKL%9+`5y3y^8P>Gu=$TE4T&+7`q$nKWsM zhTT;JWvxokIZ<^@N||%hQtZG_YBKu2%%Xzb7V^WjM&D(YTAsC7g3Um8%9JNxg(+WP zMA>B)-33tBp~`XXpBa5cOrg9E^%B~*@sL*;QG6XrcP0~XAJ~-Q&~g~<`@?3mNED%nYS2w3|bqYJ?ySz1`<8}Qtxq`NiX{5zR`E7_dd_O z^ih|3*O3Vv5tn)c`7=p4dKnzMj1hV*e4yRs{>K7tbDP`T f<~FyvE!^#22@gG}@NNmo00000NkvXXu0mjfOavvf literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-xxhdpi/btn_radio_anim_00007_qntm_alpha.png b/core/res/res/drawable-xxhdpi/btn_radio_anim_00007_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..2f812778ca1aa512d5c97cc3ad3e1ff94628f482 GIT binary patch literal 2185 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 LNkvXXu0mjf{7Mm; literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-xxhdpi/btn_radio_anim_00008_qntm_alpha.png b/core/res/res/drawable-xxhdpi/btn_radio_anim_00008_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..d37fe60a498d97b93b019e86c0afc3be0875b7ea GIT binary patch literal 2193 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 Hu0mjfeG*(! literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-xxhdpi/btn_radio_anim_00010_qntm_alpha.png b/core/res/res/drawable-xxhdpi/btn_radio_anim_00010_qntm_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..82dc42859a55a5736e34b0a18125150f315b756a GIT binary patch literal 2233 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 Hu0mjf>_0W9 literal 0 HcmV?d00001 diff --git a/core/res/res/drawable/btn_check_quantum_anim.xml b/core/res/res/drawable/btn_check_quantum_anim.xml index 4b329ade5ae8d..96715a4c1fc7a 100644 --- a/core/res/res/drawable/btn_check_quantum_anim.xml +++ b/core/res/res/drawable/btn_check_quantum_anim.xml @@ -1,3 +1,4 @@ + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - diff --git a/core/res/res/drawable/btn_radio_quantum_anim.xml b/core/res/res/drawable/btn_radio_quantum_anim.xml new file mode 100644 index 0000000000000..5068b7aa88472 --- /dev/null +++ b/core/res/res/drawable/btn_radio_quantum_anim.xml @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml index d9473ece245af..28e75e65b41b7 100644 --- a/core/res/res/values/attrs.xml +++ b/core/res/res/values/attrs.xml @@ -4239,6 +4239,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml index 4e584c065fcd9..ecb22aed01a24 100644 --- a/core/res/res/values/public.xml +++ b/core/res/res/values/public.xml @@ -2166,6 +2166,9 @@ + + + diff --git a/core/res/res/values/themes_quantum.xml b/core/res/res/values/themes_quantum.xml index 768fd9a66b60c..18d6f80e3f4ff 100644 --- a/core/res/res/values/themes_quantum.xml +++ b/core/res/res/values/themes_quantum.xml @@ -122,8 +122,8 @@ please see themes_device_defaults.xml. @drawable/list_divider_quantum @style/Widget.Quantum.TextView.ListSeparator - @drawable/btn_radio_quantum - @drawable/btn_check_quantum + @drawable/btn_radio_quantum_anim + @drawable/btn_check_quantum_anim @drawable/list_selector_quantum @@ -466,8 +466,8 @@ please see themes_device_defaults.xml. @drawable/list_divider_quantum @style/Widget.Quantum.Light.TextView.ListSeparator - @drawable/btn_radio_quantum - @drawable/btn_check_quantum + @drawable/btn_radio_quantum_anim + @drawable/btn_check_quantum_anim @drawable/list_selector_quantum diff --git a/graphics/java/android/graphics/drawable/AnimatedStateListDrawable.java b/graphics/java/android/graphics/drawable/AnimatedStateListDrawable.java new file mode 100644 index 0000000000000..46e3401f43876 --- /dev/null +++ b/graphics/java/android/graphics/drawable/AnimatedStateListDrawable.java @@ -0,0 +1,524 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.graphics.drawable; + +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; +import android.animation.ObjectAnimator; +import android.animation.TimeInterpolator; +import android.content.res.Resources; +import android.content.res.Resources.Theme; +import android.content.res.TypedArray; +import android.util.AttributeSet; +import android.util.LongSparseLongArray; +import android.util.SparseIntArray; +import android.util.StateSet; + +import com.android.internal.R; + +import org.xmlpull.v1.XmlPullParser; +import org.xmlpull.v1.XmlPullParserException; + +import java.io.IOException; + +/** + * Drawable containing a set of Drawable keyframes where the currently displayed + * keyframe is chosen based on the current state set. Animations between + * keyframes may optionally be defined using transition elements. + *

+ * This drawable can be defined in an XML file with the + * <animated-selector> element. Each keyframe Drawable is defined in a + * nested <item> element. Transitions are defined in a nested + * <transition> element. + * + * @attr ref android.R.styleable#DrawableStates_state_focused + * @attr ref android.R.styleable#DrawableStates_state_window_focused + * @attr ref android.R.styleable#DrawableStates_state_enabled + * @attr ref android.R.styleable#DrawableStates_state_checkable + * @attr ref android.R.styleable#DrawableStates_state_checked + * @attr ref android.R.styleable#DrawableStates_state_selected + * @attr ref android.R.styleable#DrawableStates_state_activated + * @attr ref android.R.styleable#DrawableStates_state_active + * @attr ref android.R.styleable#DrawableStates_state_single + * @attr ref android.R.styleable#DrawableStates_state_first + * @attr ref android.R.styleable#DrawableStates_state_middle + * @attr ref android.R.styleable#DrawableStates_state_last + * @attr ref android.R.styleable#DrawableStates_state_pressed + */ +public class AnimatedStateListDrawable extends StateListDrawable { + private static final String ELEMENT_TRANSITION = "transition"; + private static final String ELEMENT_ITEM = "item"; + + private AnimatedStateListState mState; + + /** The currently running animation, if any. */ + private ObjectAnimator mAnim; + + /** Index to be set after the animation ends. */ + private int mAnimToIndex = -1; + + /** Index away from which we are animating. */ + private int mAnimFromIndex = -1; + + private boolean mMutated; + + public AnimatedStateListDrawable() { + this(null, null); + } + + /** + * Add a new drawable to the set of keyframes. + * + * @param stateSet An array of resource IDs to associate with the keyframe + * @param drawable The drawable to show when in the specified state + * @param id The unique identifier for the keyframe + */ + public void addState(int[] stateSet, Drawable drawable, int id) { + if (drawable != null) { + mState.addStateSet(stateSet, drawable, id); + onStateChange(getState()); + } + } + + /** + * Adds a new transition between keyframes. + * + * @param fromId Unique identifier of the starting keyframe + * @param toId Unique identifier of the ending keyframe + * @param anim An AnimationDrawable to use as a transition + * @param reversible Whether the transition can be reversed + */ + public void addTransition(int fromId, int toId, AnimationDrawable anim, boolean reversible) { + mState.addTransition(fromId, toId, anim, reversible); + } + + @Override + public boolean isStateful() { + return true; + } + + @Override + protected boolean onStateChange(int[] stateSet) { + final int keyframeIndex = mState.indexOfKeyframe(stateSet); + if (keyframeIndex == getCurrentIndex()) { + return false; + } + + if (selectTransition(keyframeIndex)) { + return true; + } + + if (selectDrawable(keyframeIndex)) { + return true; + } + + return super.onStateChange(stateSet); + } + + private boolean selectTransition(int toIndex) { + if (mAnim != null) { + if (toIndex == mAnimToIndex) { + // Already animating to that keyframe. + return true; + } else if (toIndex == mAnimFromIndex) { + // Reverse the current animation. + mAnim.reverse(); + mAnimFromIndex = mAnimToIndex; + mAnimToIndex = toIndex; + return true; + } + + // Changing animation, end the current animation. + mAnim.end(); + } + + final AnimatedStateListState state = mState; + final int fromIndex = getCurrentIndex(); + final int fromId = state.getKeyframeIdAt(fromIndex); + final int toId = state.getKeyframeIdAt(toIndex); + + if (toId == 0 || fromId == 0) { + // Missing a keyframe ID. + return false; + } + + final int transitionIndex = state.indexOfTransition(fromId, toId); + if (transitionIndex < 0 || !selectDrawable(transitionIndex)) { + // Couldn't select a transition. + return false; + } + + final Drawable d = getCurrent(); + if (!(d instanceof AnimationDrawable)) { + // Transition isn't an animation. + return false; + } + + final AnimationDrawable ad = (AnimationDrawable) d; + final boolean reversed = mState.isTransitionReversed(fromId, toId); + final int frameCount = ad.getNumberOfFrames(); + final int fromFrame = reversed ? frameCount - 1 : 0; + final int toFrame = reversed ? 0 : frameCount - 1; + + final FrameInterpolator interp = new FrameInterpolator(ad, reversed); + final ObjectAnimator anim = ObjectAnimator.ofInt(ad, "currentIndex", fromFrame, toFrame); + anim.setAutoCancel(true); + anim.setDuration(interp.getTotalDuration()); + anim.addListener(mAnimListener); + anim.setInterpolator(interp); + anim.start(); + + mAnim = anim; + mAnimFromIndex = fromIndex; + mAnimToIndex = toIndex; + return true; + } + + @Override + public void jumpToCurrentState() { + super.jumpToCurrentState(); + + if (mAnim != null) { + mAnim.end(); + } + } + + @Override + public void inflate(Resources r, XmlPullParser parser, AttributeSet attrs, Theme theme) + throws XmlPullParserException, IOException { + final TypedArray a = r.obtainAttributes(attrs, R.styleable.AnimatedStateListDrawable); + + super.inflateWithAttributes(r, parser, a, R.styleable.AnimatedStateListDrawable_visible); + + final StateListState stateListState = getStateListState(); + stateListState.setVariablePadding(a.getBoolean( + R.styleable.AnimatedStateListDrawable_variablePadding, false)); + stateListState.setConstantSize(a.getBoolean( + R.styleable.AnimatedStateListDrawable_constantSize, false)); + stateListState.setEnterFadeDuration(a.getInt( + R.styleable.AnimatedStateListDrawable_enterFadeDuration, 0)); + stateListState.setExitFadeDuration(a.getInt( + R.styleable.AnimatedStateListDrawable_exitFadeDuration, 0)); + + setDither(a.getBoolean(R.styleable.AnimatedStateListDrawable_dither, true)); + setAutoMirrored(a.getBoolean(R.styleable.AnimatedStateListDrawable_autoMirrored, false)); + + a.recycle(); + + int type; + + final int innerDepth = parser.getDepth() + 1; + int depth; + while ((type = parser.next()) != XmlPullParser.END_DOCUMENT + && ((depth = parser.getDepth()) >= innerDepth + || type != XmlPullParser.END_TAG)) { + if (type != XmlPullParser.START_TAG) { + continue; + } + + if (depth > innerDepth) { + continue; + } + + if (parser.getName().equals(ELEMENT_ITEM)) { + parseItem(r, parser, attrs, theme); + } else if (parser.getName().equals(ELEMENT_TRANSITION)) { + parseTransition(r, parser, attrs, theme); + } + } + + onStateChange(getState()); + } + + private int parseTransition(Resources r, XmlPullParser parser, AttributeSet attrs, Theme theme) + throws XmlPullParserException, IOException { + int drawableRes = 0; + int fromId = 0; + int toId = 0; + boolean reversible = false; + + final int numAttrs = attrs.getAttributeCount(); + for (int i = 0; i < numAttrs; i++) { + final int stateResId = attrs.getAttributeNameResource(i); + switch (stateResId) { + case 0: + break; + case R.attr.fromId: + fromId = attrs.getAttributeResourceValue(i, 0); + break; + case R.attr.toId: + toId = attrs.getAttributeResourceValue(i, 0); + break; + case R.attr.drawable: + drawableRes = attrs.getAttributeResourceValue(i, 0); + break; + case R.attr.reversible: + reversible = attrs.getAttributeBooleanValue(i, false); + break; + } + } + + final Drawable dr; + if (drawableRes != 0) { + dr = r.getDrawable(drawableRes); + } else { + int type; + while ((type = parser.next()) == XmlPullParser.TEXT) { + } + if (type != XmlPullParser.START_TAG) { + throw new XmlPullParserException( + parser.getPositionDescription() + + ": tag requires a 'drawable' attribute or " + + "child tag defining a drawable"); + } + dr = Drawable.createFromXmlInnerThemed(r, parser, attrs, theme); + } + + final AnimationDrawable anim; + if (dr instanceof AnimationDrawable) { + anim = (AnimationDrawable) dr; + } else { + throw new XmlPullParserException(parser.getPositionDescription() + + ": tag requires a 'drawable' attribute or " + + "child tag defining a drawable of type "); + } + + return mState.addTransition(fromId, toId, anim, reversible); + } + + private int parseItem(Resources r, XmlPullParser parser, AttributeSet attrs, Theme theme) + throws XmlPullParserException, IOException { + int drawableRes = 0; + int keyframeId = 0; + + int j = 0; + final int numAttrs = attrs.getAttributeCount(); + int[] states = new int[numAttrs]; + for (int i = 0; i < numAttrs; i++) { + final int stateResId = attrs.getAttributeNameResource(i); + switch (stateResId) { + case 0: + break; + case R.attr.id: + keyframeId = attrs.getAttributeResourceValue(i, 0); + break; + case R.attr.drawable: + drawableRes = attrs.getAttributeResourceValue(i, 0); + break; + default: + final boolean hasState = attrs.getAttributeBooleanValue(i, false); + states[j++] = hasState ? stateResId : -stateResId; + } + } + states = StateSet.trimStateSet(states, j); + + final Drawable dr; + if (drawableRes != 0) { + dr = r.getDrawable(drawableRes); + } else { + int type; + while ((type = parser.next()) == XmlPullParser.TEXT) { + } + if (type != XmlPullParser.START_TAG) { + throw new XmlPullParserException( + parser.getPositionDescription() + + ": tag requires a 'drawable' attribute or " + + "child tag defining a drawable"); + } + dr = Drawable.createFromXmlInnerThemed(r, parser, attrs, theme); + } + + return mState.addStateSet(states, dr, keyframeId); + } + + @Override + public Drawable mutate() { + if (!mMutated) { + final AnimatedStateListState newState = new AnimatedStateListState(mState, this, null); + setConstantState(newState); + mMutated = true; + } + + return this; + } + + private final AnimatorListenerAdapter mAnimListener = new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator anim) { + selectDrawable(mAnimToIndex); + + mAnimToIndex = -1; + mAnimFromIndex = -1; + mAnim = null; + } + }; + + static class AnimatedStateListState extends StateListState { + private static final int REVERSE_SHIFT = 32; + private static final int REVERSE_MASK = 0x1; + + final LongSparseLongArray mTransitions; + final SparseIntArray mStateIds; + + AnimatedStateListState(AnimatedStateListState orig, AnimatedStateListDrawable owner, + Resources res) { + super(orig, owner, res); + + if (orig != null) { + mTransitions = orig.mTransitions.clone(); + mStateIds = orig.mStateIds.clone(); + } else { + mTransitions = new LongSparseLongArray(); + mStateIds = new SparseIntArray(); + } + } + + int addTransition(int fromId, int toId, AnimationDrawable anim, boolean reversible) { + final int pos = super.addChild(anim); + final long keyFromTo = generateTransitionKey(fromId, toId); + mTransitions.append(keyFromTo, pos); + + if (reversible) { + final long keyToFrom = generateTransitionKey(toId, fromId); + mTransitions.append(keyToFrom, pos | (1L << REVERSE_SHIFT)); + } + + return addChild(anim); + } + + int addStateSet(int[] stateSet, Drawable drawable, int id) { + final int index = super.addStateSet(stateSet, drawable); + mStateIds.put(index, id); + return index; + } + + int indexOfKeyframe(int[] stateSet) { + final int index = super.indexOfStateSet(stateSet); + if (index >= 0) { + return index; + } + + return super.indexOfStateSet(StateSet.WILD_CARD); + } + + int getKeyframeIdAt(int index) { + return index < 0 ? 0 : mStateIds.get(index, 0); + } + + int indexOfTransition(int fromId, int toId) { + final long keyFromTo = generateTransitionKey(fromId, toId); + return (int) mTransitions.get(keyFromTo, -1); + } + + boolean isTransitionReversed(int fromId, int toId) { + final long keyFromTo = generateTransitionKey(fromId, toId); + return (mTransitions.get(keyFromTo, -1) >> REVERSE_SHIFT & REVERSE_MASK) == 1; + } + + @Override + public Drawable newDrawable() { + return new AnimatedStateListDrawable(this, null); + } + + @Override + public Drawable newDrawable(Resources res) { + return new AnimatedStateListDrawable(this, res); + } + + private static long generateTransitionKey(int fromId, int toId) { + return (long) fromId << 32 | toId; + } + } + + void setConstantState(AnimatedStateListState state) { + super.setConstantState(state); + + mState = state; + } + + private AnimatedStateListDrawable(AnimatedStateListState state, Resources res) { + super(null); + + final AnimatedStateListState newState = new AnimatedStateListState(state, this, res); + setConstantState(newState); + onStateChange(getState()); + jumpToCurrentState(); + } + + /** + * Interpolates between frames with respect to their individual durations. + */ + private static class FrameInterpolator implements TimeInterpolator { + private int[] mFrameTimes; + private int mFrames; + private int mTotalDuration; + + public FrameInterpolator(AnimationDrawable d, boolean reversed) { + updateFrames(d, reversed); + } + + public int updateFrames(AnimationDrawable d, boolean reversed) { + final int N = d.getNumberOfFrames(); + mFrames = N; + + if (mFrameTimes == null || mFrameTimes.length < N) { + mFrameTimes = new int[N]; + } + + final int[] frameTimes = mFrameTimes; + int totalDuration = 0; + for (int i = 0; i < N; i++) { + final int duration = d.getDuration(reversed ? N - i - 1 : i); + frameTimes[i] = duration; + totalDuration += duration; + } + + mTotalDuration = totalDuration; + return totalDuration; + } + + public int getTotalDuration() { + return mTotalDuration; + } + + @Override + public float getInterpolation(float input) { + final int elapsed = (int) (input * mTotalDuration + 0.5f); + final int N = mFrames; + final int[] frameTimes = mFrameTimes; + + // Find the current frame and remaining time within that frame. + int remaining = elapsed; + int i = 0; + while (i < N && remaining >= frameTimes[i]) { + remaining -= frameTimes[i]; + i++; + } + + // Remaining time is relative of total duration. + final float frameElapsed; + if (i < N) { + frameElapsed = remaining / (float) mTotalDuration; + } else { + frameElapsed = 0; + } + + return i / (float) N + frameElapsed; + } + } +} + diff --git a/graphics/java/android/graphics/drawable/AnimationDrawable.java b/graphics/java/android/graphics/drawable/AnimationDrawable.java index 3f94e260a4e4d..da4bc10dfdf41 100644 --- a/graphics/java/android/graphics/drawable/AnimationDrawable.java +++ b/graphics/java/android/graphics/drawable/AnimationDrawable.java @@ -94,7 +94,7 @@ public class AnimationDrawable extends DrawableContainer implements Runnable, An boolean changed = super.setVisible(visible, restart); if (visible) { if (changed || restart) { - setFrame(0, true, true); + setFrame(0, true, mCurFrame >= 0); } } else { unscheduleSelf(this); diff --git a/graphics/java/android/graphics/drawable/Drawable.java b/graphics/java/android/graphics/drawable/Drawable.java index b9d5e19a55561..b93963673423b 100644 --- a/graphics/java/android/graphics/drawable/Drawable.java +++ b/graphics/java/android/graphics/drawable/Drawable.java @@ -1039,6 +1039,8 @@ public abstract class Drawable { final String name = parser.getName(); if (name.equals("selector")) { drawable = new StateListDrawable(); + } else if (name.equals("animated-selector")) { + drawable = new AnimatedStateListDrawable(); } else if (name.equals("level-list")) { drawable = new LevelListDrawable(); } else if (name.equals("layer-list")) { diff --git a/graphics/java/android/graphics/drawable/DrawableContainer.java b/graphics/java/android/graphics/drawable/DrawableContainer.java index 1f8b51d1c9227..08fc99da51373 100644 --- a/graphics/java/android/graphics/drawable/DrawableContainer.java +++ b/graphics/java/android/graphics/drawable/DrawableContainer.java @@ -359,6 +359,16 @@ public class DrawableContainer extends Drawable implements Drawable.Callback { mDrawableContainerState.getOpacity(); } + /** @hide */ + public void setCurrentIndex(int index) { + selectDrawable(index); + } + + /** @hide */ + public int getCurrentIndex() { + return mCurIndex; + } + public boolean selectDrawable(int idx) { if (idx == mCurIndex) { return false; diff --git a/graphics/java/android/graphics/drawable/StateListDrawable.java b/graphics/java/android/graphics/drawable/StateListDrawable.java index 271af2b0b8e2c..f22a063f8ab5a 100644 --- a/graphics/java/android/graphics/drawable/StateListDrawable.java +++ b/graphics/java/android/graphics/drawable/StateListDrawable.java @@ -55,8 +55,9 @@ import android.util.StateSet; * @attr ref android.R.styleable#DrawableStates_state_pressed */ public class StateListDrawable extends DrawableContainer { + private static final String TAG = StateListDrawable.class.getSimpleName(); + private static final boolean DEBUG = false; - private static final String TAG = "StateListDrawable"; /** * To be proper, we should have a getter for dither (and alpha, etc.) @@ -69,7 +70,8 @@ public class StateListDrawable extends DrawableContainer { * to improve the quality at negligible cost. */ private static final boolean DEFAULT_DITHER = true; - private final StateListState mStateListState; + + private StateListState mStateListState; private boolean mMutated; public StateListDrawable() { @@ -274,7 +276,7 @@ public class StateListDrawable extends DrawableContainer { mStateListState.setLayoutDirection(layoutDirection); } - static final class StateListState extends DrawableContainerState { + static class StateListState extends DrawableContainerState { int[][] mStateSets; StateListState(StateListState orig, StateListDrawable owner, Resources res) { @@ -293,7 +295,7 @@ public class StateListDrawable extends DrawableContainer { return pos; } - private int indexOfStateSet(int[] stateSet) { + int indexOfStateSet(int[] stateSet) { final int[][] stateSets = mStateSets; final int N = getChildCount(); for (int i = 0; i < N; i++) { @@ -323,11 +325,26 @@ public class StateListDrawable extends DrawableContainer { } } + void setConstantState(StateListState state) { + super.setConstantState(state); + + mStateListState = state; + } + private StateListDrawable(StateListState state, Resources res) { - StateListState as = new StateListState(state, this, res); - mStateListState = as; - setConstantState(as); + final StateListState newState = new StateListState(state, this, res); + setConstantState(newState); onStateChange(getState()); } + + /** + * This constructor exists so subclasses can avoid calling the default + * constructor and setting up a StateListDrawable-specific constant state. + */ + StateListDrawable(StateListState state) { + if (state != null) { + setConstantState(state); + } + } }