[FL-2150] Dolphin animation refactoring (#938)
* Dolphin Animation Refactoring, part 1 * Remove animations from desktop * Remove excess, first start * Split animation_manager with callbacks * allocate view inside animation_view * Work on ViewComposed * Draw white rectangles under bubble corners * Fix bubbles sequence * RPC: remove obsolete include "status.pb.h" * Add animations manifest decoding * Flipper file: add strict mode * FFF: Animation structures parsing * Assembling structure of animation * Lot of view fixes: Add multi-line bubbles Add support for passive bubbles (frame_order values starts from passive now) Add hard-coded delay (active_shift) for active state enabling Fix active state handling Fix leaks Fix parsing uncorrect bubble_animation meta file Fix bubble rules of showing * Animation load/unload & view freeze/unfreeze * Blocking & system animations, fixes: View correct activation Refactoring + blocking animation Freeze first passive/active frames Many insert/eject SD tests fixes Add system animations Add Loader events app started/finished Add system no_sd animation * Assets: dolphin packer. Scripts: minor refactoring. * Desktop: update logging tags. Scripts: add metadata to dolphin bundling process, extra sorting for fs traversing. Make: phony assets rules. * Github: rebuild assets on build * Docker: add missing dependencies for assets compilation * Docker: fix run command syntax * ReadMe: update naming rules with link to source * Assets: recompile icons * Loader: add loader event * Desktop, Gui, Furi Core: const shenanigans macros Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
							
								
								
									
										
											BIN
										
									
								
								assets/dolphin/animations/laptop/frame_0.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.6 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/dolphin/animations/laptop/frame_1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.6 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/dolphin/animations/laptop/frame_2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.6 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/dolphin/animations/laptop/frame_3.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.6 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/dolphin/animations/laptop/frame_4.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.6 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/dolphin/animations/laptop/frame_5.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.6 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/dolphin/animations/laptop/frame_6.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.6 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/dolphin/animations/laptop/frame_7.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.6 KiB  | 
							
								
								
									
										32
									
								
								assets/dolphin/animations/laptop/meta.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,32 @@
 | 
			
		||||
Filetype: Flipper Animation
 | 
			
		||||
Version: 1
 | 
			
		||||
 | 
			
		||||
Width: 128
 | 
			
		||||
Height: 51
 | 
			
		||||
Passive frames: 6
 | 
			
		||||
Active frames: 2
 | 
			
		||||
Frames order: 0 1 2 3 4 5 6 7
 | 
			
		||||
Active cycles: 3
 | 
			
		||||
Frame rate: 2
 | 
			
		||||
Duration: 3600
 | 
			
		||||
Active cooldown: 5
 | 
			
		||||
 | 
			
		||||
Bubble slots: 1
 | 
			
		||||
 | 
			
		||||
Slot: 0
 | 
			
		||||
X: 60
 | 
			
		||||
Y: 23
 | 
			
		||||
Text: I have to rest
 | 
			
		||||
AlignH: Left
 | 
			
		||||
AlignV: Bottom
 | 
			
		||||
StartFrame: 7
 | 
			
		||||
EndFrame: 9
 | 
			
		||||
 | 
			
		||||
Slot: 0
 | 
			
		||||
X: 60
 | 
			
		||||
Y: 23
 | 
			
		||||
Text: but not today
 | 
			
		||||
AlignH: Left
 | 
			
		||||
AlignV: Bottom
 | 
			
		||||
StartFrame: 10
 | 
			
		||||
EndFrame: 12
 | 
			
		||||
							
								
								
									
										34
									
								
								assets/dolphin/animations/manifest.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,34 @@
 | 
			
		||||
Filetype: Flipper Animation Manifest
 | 
			
		||||
Version: 1
 | 
			
		||||
 | 
			
		||||
# Animation 1
 | 
			
		||||
Name: waves
 | 
			
		||||
Min butthurt: 0
 | 
			
		||||
Max butthurt: 5
 | 
			
		||||
Min level: 1
 | 
			
		||||
Max level: 3
 | 
			
		||||
Weight: 3
 | 
			
		||||
 | 
			
		||||
# Animation 2
 | 
			
		||||
Name: laptop
 | 
			
		||||
Min butthurt: 0
 | 
			
		||||
Max butthurt: 9
 | 
			
		||||
Min level: 1
 | 
			
		||||
Max level: 3
 | 
			
		||||
Weight: 3
 | 
			
		||||
 | 
			
		||||
# Animation 3
 | 
			
		||||
Name: sleep
 | 
			
		||||
Min butthurt: 0
 | 
			
		||||
Max butthurt: 10
 | 
			
		||||
Min level: 1
 | 
			
		||||
Max level: 3
 | 
			
		||||
Weight: 3
 | 
			
		||||
 | 
			
		||||
# Animation 4
 | 
			
		||||
Name: recording
 | 
			
		||||
Min butthurt: 0
 | 
			
		||||
Max butthurt: 8
 | 
			
		||||
Min level: 1
 | 
			
		||||
Max level: 1
 | 
			
		||||
Weight: 3
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								assets/dolphin/animations/recording/frame_0.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/dolphin/animations/recording/frame_1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/dolphin/animations/recording/frame_10.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/dolphin/animations/recording/frame_11.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/dolphin/animations/recording/frame_2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.6 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/dolphin/animations/recording/frame_3.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/dolphin/animations/recording/frame_4.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/dolphin/animations/recording/frame_5.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.6 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/dolphin/animations/recording/frame_6.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/dolphin/animations/recording/frame_7.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.6 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/dolphin/animations/recording/frame_8.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/dolphin/animations/recording/frame_9.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.7 KiB  | 
							
								
								
									
										14
									
								
								assets/dolphin/animations/recording/meta.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,14 @@
 | 
			
		||||
Filetype: Flipper Animation
 | 
			
		||||
Version: 1
 | 
			
		||||
 | 
			
		||||
Width: 128
 | 
			
		||||
Height: 51
 | 
			
		||||
Passive frames: 6
 | 
			
		||||
Active frames: 6
 | 
			
		||||
Frames order: 0 1 2 3 4 5 6 7 8 9 10 11
 | 
			
		||||
Active cycles: 2
 | 
			
		||||
Frame rate: 2
 | 
			
		||||
Duration: 3600
 | 
			
		||||
Active cooldown: 5
 | 
			
		||||
 | 
			
		||||
Bubble slots: 0
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								assets/dolphin/animations/sleep/frame_0.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.5 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/dolphin/animations/sleep/frame_1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.5 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/dolphin/animations/sleep/frame_2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.5 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/dolphin/animations/sleep/frame_3.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.5 KiB  | 
							
								
								
									
										41
									
								
								assets/dolphin/animations/sleep/meta.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,41 @@
 | 
			
		||||
Filetype: Flipper Animation
 | 
			
		||||
Version: 1
 | 
			
		||||
 | 
			
		||||
Width: 128
 | 
			
		||||
Height: 64
 | 
			
		||||
Passive frames: 2
 | 
			
		||||
Active frames: 4
 | 
			
		||||
Frames order: 0 1 2 3 2 3
 | 
			
		||||
Active cycles: 2
 | 
			
		||||
Frame rate: 2
 | 
			
		||||
Duration: 3600
 | 
			
		||||
Active cooldown: 5
 | 
			
		||||
 | 
			
		||||
Bubble slots: 2
 | 
			
		||||
 | 
			
		||||
Slot: 0
 | 
			
		||||
X: 53
 | 
			
		||||
Y: 20
 | 
			
		||||
Text: In a lucid dream,\nI could walk...
 | 
			
		||||
AlignH: Left
 | 
			
		||||
AlignV: Bottom
 | 
			
		||||
StartFrame: 3
 | 
			
		||||
EndFrame: 9
 | 
			
		||||
 | 
			
		||||
Slot: 1
 | 
			
		||||
X: 53
 | 
			
		||||
Y: 20
 | 
			
		||||
Text: OH MY GOD!
 | 
			
		||||
AlignH: Left
 | 
			
		||||
AlignV: Bottom
 | 
			
		||||
StartFrame: 3
 | 
			
		||||
EndFrame: 5
 | 
			
		||||
 | 
			
		||||
Slot: 1
 | 
			
		||||
X: 53
 | 
			
		||||
Y: 31
 | 
			
		||||
Text: Just a dream...
 | 
			
		||||
AlignH: Left
 | 
			
		||||
AlignV: Bottom
 | 
			
		||||
StartFrame: 6
 | 
			
		||||
EndFrame: 9
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								assets/dolphin/animations/waves/frame_0.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/dolphin/animations/waves/frame_1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/dolphin/animations/waves/frame_2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.4 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/dolphin/animations/waves/frame_3.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.4 KiB  | 
							
								
								
									
										50
									
								
								assets/dolphin/animations/waves/meta.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,50 @@
 | 
			
		||||
Filetype: Flipper Animation
 | 
			
		||||
Version: 1
 | 
			
		||||
 | 
			
		||||
Width: 128
 | 
			
		||||
Height: 50
 | 
			
		||||
Passive frames: 2
 | 
			
		||||
Active frames: 4
 | 
			
		||||
Frames order: 0 1 2 3 2 3
 | 
			
		||||
Active cycles: 2
 | 
			
		||||
Frame rate: 2
 | 
			
		||||
Duration: 3600
 | 
			
		||||
Active cooldown: 5
 | 
			
		||||
 | 
			
		||||
Bubble slots: 3
 | 
			
		||||
 | 
			
		||||
Slot: 0
 | 
			
		||||
X: 1
 | 
			
		||||
Y: 17
 | 
			
		||||
Text: I am happy,\nmy friend!
 | 
			
		||||
AlignH: Right
 | 
			
		||||
AlignV: Bottom
 | 
			
		||||
StartFrame: 3
 | 
			
		||||
EndFrame: 9
 | 
			
		||||
 | 
			
		||||
Slot: 1
 | 
			
		||||
X: 1
 | 
			
		||||
Y: 17
 | 
			
		||||
Text: So long and\nthanks for\nall the fish!
 | 
			
		||||
AlignH: Right
 | 
			
		||||
AlignV: Center
 | 
			
		||||
StartFrame: 3
 | 
			
		||||
EndFrame: 9
 | 
			
		||||
 | 
			
		||||
Slot: 2
 | 
			
		||||
X: 1
 | 
			
		||||
Y: 25
 | 
			
		||||
Text: I wish I could
 | 
			
		||||
AlignH: Right
 | 
			
		||||
AlignV: Bottom
 | 
			
		||||
StartFrame: 3
 | 
			
		||||
EndFrame: 5
 | 
			
		||||
 | 
			
		||||
Slot: 2
 | 
			
		||||
X: 1
 | 
			
		||||
Y: 25
 | 
			
		||||
Text: swim all day
 | 
			
		||||
AlignH: Right
 | 
			
		||||
AlignV: Bottom
 | 
			
		||||
StartFrame: 6
 | 
			
		||||
EndFrame: 9
 | 
			
		||||