Commit 1dbf2cf7 authored by wanglei's avatar wanglei

------------同步到主包5.15 22:05分线上版本------------

parent e6d131ed
{"v":"5.8.1","fr":60,"ip":0,"op":240,"w":720,"h":1280,"nm":"4b","ddd":0,"assets":[{"id":"image_0","w":149,"h":214,"u":"images/","p":"img_0.png","e":0},{"id":"image_1","w":419,"h":513,"u":"images/","p":"img_1.png","e":0},{"id":"image_2","w":259,"h":83,"u":"images/","p":"img_2.png","e":0},{"id":"image_3","w":259,"h":432,"u":"images/","p":"img_3.png","e":0},{"id":"image_4","w":44,"h":274,"u":"images/","p":"img_4.png","e":0},{"id":"comp_0","nm":"battery","fr":60,"layers":[{"ddd":0,"ind":1,"ty":2,"nm":"lightning.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":31,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":47,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":80,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":96,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":133,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":149,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":182,"s":[0]},{"t":198,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[400.25,573,0],"ix":2,"l":2},"a":{"a":0,"k":[74.5,107,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":720,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"4-battery-empty.png","cl":"png","refId":"image_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[360,584,0],"ix":2,"l":2},"a":{"a":0,"k":[209.5,256.5,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":720,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"full","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[360,640,0],"ix":2,"l":2},"a":{"a":0,"k":[360,640,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":720,"h":1280,"ip":145,"op":865,"st":145,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"full","refId":"comp_1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":145,"s":[100]},{"t":150,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[360,640,0],"ix":2,"l":2},"a":{"a":0,"k":[360,640,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":720,"h":1280,"ip":72,"op":792,"st":72,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"full","refId":"comp_1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":73,"s":[100]},{"t":78,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[360,640,0],"ix":2,"l":2},"a":{"a":0,"k":[360,640,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":720,"h":1280,"ip":0,"op":720,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"rise","refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[360,640,0],"ix":2,"l":2},"a":{"a":0,"k":[360,640,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":720,"h":1280,"ip":118,"op":838,"st":118,"bm":0},{"ddd":0,"ind":7,"ty":0,"nm":"rise","refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[360,640,0],"ix":2,"l":2},"a":{"a":0,"k":[360,640,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":720,"h":1280,"ip":0,"op":720,"st":0,"bm":0}]},{"id":"comp_1","nm":"full","fr":60,"layers":[{"ddd":0,"ind":1,"ty":2,"nm":"4-cover.png","cl":"png","refId":"image_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":16,"s":[363,688.25,0],"to":[0,-49.833,0],"ti":[0,49.833,0]},{"t":76,"s":[363,389.25,0]}],"ix":2,"l":2},"a":{"a":0,"k":[129.5,41.5,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":720,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"4-full.png","cl":"png","refId":"image_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[363.25,563.75,0],"ix":2,"l":2},"a":{"a":0,"k":[129.5,216,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":16,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[272.5,307.25],[40,380.75],[-19.75,361.75],[-19.75,494.25],[290.25,494.25]],"c":true}]},{"t":76,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[272.5,8.25],[40,81.75],[-19.75,62.75],[-19.75,494.25],[290.25,494.25]],"c":true}]}],"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"蒙版 1"}],"ip":0,"op":720,"st":0,"bm":0}]},{"id":"comp_2","nm":"rise","fr":60,"layers":[{"ddd":0,"ind":1,"ty":2,"nm":"2_rise.png","cl":"png","refId":"image_4","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":45,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":75,"s":[70]},{"t":107,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45,"s":[600,844,0],"to":[0,-86.667,0],"ti":[0,86.667,0]},{"t":107,"s":[600,324,0]}],"ix":2,"l":2},"a":{"a":0,"k":[22,137,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":45,"op":765,"st":45,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"2_rise.png","cl":"png","refId":"image_4","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":66,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":98,"s":[20]},{"t":131,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":66,"s":[296,824,0],"to":[0,-86.667,0],"ti":[0,86.667,0]},{"t":131,"s":[296,304,0]}],"ix":2,"l":2},"a":{"a":0,"k":[22,137,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":66,"op":786,"st":66,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"2_rise.png","cl":"png","refId":"image_4","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":21,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":55,"s":[20]},{"t":90,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":21,"s":[440,796,0],"to":[0,-86.667,0],"ti":[0,86.667,0]},{"t":90,"s":[440,276,0]}],"ix":2,"l":2},"a":{"a":0,"k":[22,137,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":21,"op":741,"st":21,"bm":0},{"ddd":0,"ind":4,"ty":2,"nm":"2_rise.png","cl":"png","refId":"image_4","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":37,"s":[90]},{"t":75,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[124,908,0],"to":[0,-86.667,0],"ti":[0,86.667,0]},{"t":75,"s":[124,388,0]}],"ix":2,"l":2},"a":{"a":0,"k":[22,137,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":720,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"battery","refId":"comp_0","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":219,"s":[100]},{"t":240,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[360,640,0],"ix":2,"l":2},"a":{"a":0,"k":[360,640,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":720,"h":1280,"ip":0,"op":720,"st":0,"bm":0}],"markers":[]}
\ No newline at end of file
{"v":"5.8.1","fr":60,"ip":0,"op":240,"w":720,"h":1280,"nm":"4a","ddd":0,"assets":[{"id":"image_0","w":498,"h":497,"u":"images/","p":"img_0.png","e":0},{"id":"image_1","w":498,"h":251,"u":"images/","p":"img_1.png","e":0},{"id":"image_2","w":419,"h":513,"u":"images/","p":"img_2.png","e":0},{"id":"comp_0","nm":"scan","fr":60,"layers":[{"ddd":0,"ind":1,"ty":2,"nm":"scan.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[30]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":15,"s":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":222,"s":[100]},{"t":239,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[360,552,0],"ix":2,"l":2},"a":{"a":0,"k":[249,248.5,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[0.731,0.731,-28.047]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[0,0,100]},{"i":{"x":[0.667,0.667,0.667],"y":[0.52,0.52,3.935]},"o":{"x":[0.333,0.333,0.333],"y":[-0.88,-0.88,10.562]},"t":11,"s":[108,108,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[-1.081,-1.081,-2.202]},"t":15,"s":[96,96,100]},{"t":18,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"ip":0,"op":720,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"sm.png","cl":"png","refId":"image_1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":17,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":32,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":47,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":64,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":81,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":96,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":111,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":126,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":143,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":160,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":175,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":190,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":205,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":222,"s":[100]},{"t":239,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":17,"s":[360,432,0],"to":[0,80,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":47,"s":[360,912,0],"to":[0,0,0],"ti":[0,80,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":81,"s":[360,432,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":96,"s":[360,432,0],"to":[0,80,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":126,"s":[360,912,0],"to":[0,0,0],"ti":[0,80,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":160,"s":[360,432,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":175,"s":[360,432,0],"to":[0,80,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":205,"s":[360,912,0],"to":[0,0,0],"ti":[0,80,0]},{"t":239,"s":[360,432,0]}],"ix":2,"l":2},"a":{"a":0,"k":[249,125.5,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":720,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"scan","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[360,640,0],"ix":2,"l":2},"a":{"a":0,"k":[360,640,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":720,"h":1280,"ip":0,"op":720,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"4-battery.png","cl":"png","refId":"image_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[360,584,0],"ix":2,"l":2},"a":{"a":0,"k":[209.5,256.5,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":720,"st":0,"bm":0}],"markers":[]}
\ No newline at end of file
{"v":"5.5.7","fr":60,"ip":0,"op":240,"w":720,"h":1280,"nm":"2b","ddd":0,"assets":[{"id":"image_0","w":906,"h":353,"u":"images/","p":"img_0.png","e":0},{"id":"image_1","w":303,"h":414,"u":"images/","p":"img_1.png","e":0},{"id":"image_2","w":224,"h":328,"u":"images/","p":"img_2.png","e":0},{"id":"image_3","w":224,"h":542,"u":"images/","p":"img_3.png","e":0}],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"形状图层 8","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":139,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":147,"s":[100]},{"t":166,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":139,"s":[142,101,0],"to":[0,153.333,0],"ti":[0,-153.333,0]},{"t":166,"s":[142,1021,0]}],"ix":2},"a":{"a":0,"k":[-214,-380,0],"ix":1},"s":{"a":0,"k":[50,53.354,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[12,328],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"矩形路径 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.796078431373,0.958415970148,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"填充 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-214,-380],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"矩形 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":116,"op":836,"st":116,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"形状图层 7","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":164,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":172,"s":[100]},{"t":191,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":164,"s":[558,173,0],"to":[0,153.333,0],"ti":[0,-153.333,0]},{"t":191,"s":[558,1093,0]}],"ix":2},"a":{"a":0,"k":[-214,-380,0],"ix":1},"s":{"a":0,"k":[50,53.354,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[12,328],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"矩形路径 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.796078431373,0.958415970148,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"填充 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-214,-380],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"矩形 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":141,"op":861,"st":141,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"形状图层 6","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":82,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":90,"s":[100]},{"t":109,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":82,"s":[142,101,0],"to":[0,153.333,0],"ti":[0,-153.333,0]},{"t":109,"s":[142,1021,0]}],"ix":2},"a":{"a":0,"k":[-214,-380,0],"ix":1},"s":{"a":0,"k":[50,53.354,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[12,328],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"矩形路径 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.796078431373,0.958415970148,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"填充 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-214,-380],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"矩形 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":59,"op":779,"st":59,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"形状图层 5","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":105,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":113,"s":[100]},{"t":132,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":105,"s":[558,173,0],"to":[0,153.333,0],"ti":[0,-153.333,0]},{"t":132,"s":[558,1093,0]}],"ix":2},"a":{"a":0,"k":[-214,-380,0],"ix":1},"s":{"a":0,"k":[50,53.354,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[12,328],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"矩形路径 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.796078431373,0.958415970148,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"填充 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-214,-380],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"矩形 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":82,"op":802,"st":82,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"形状图层 9","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":190,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":198,"s":[100]},{"t":217,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":190,"s":[314,137,0],"to":[0,153.333,0],"ti":[0,-153.333,0]},{"t":217,"s":[314,1057,0]}],"ix":2},"a":{"a":0,"k":[-214,-380,0],"ix":1},"s":{"a":0,"k":[50,53.354,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[12,328],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"矩形路径 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.796078431373,0.958415970148,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"填充 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-214,-380],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"矩形 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":167,"op":887,"st":167,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"形状图层 4","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":127,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":135,"s":[100]},{"t":154,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":127,"s":[314,137,0],"to":[0,153.333,0],"ti":[0,-153.333,0]},{"t":154,"s":[314,1057,0]}],"ix":2},"a":{"a":0,"k":[-214,-380,0],"ix":1},"s":{"a":0,"k":[50,53.354,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[12,328],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"矩形路径 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.796078431373,0.958415970148,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"填充 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-214,-380],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"矩形 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":104,"op":824,"st":104,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"形状图层 3","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":56,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":64,"s":[100]},{"t":83,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":56,"s":[314,137,0],"to":[0,153.333,0],"ti":[0,-153.333,0]},{"t":83,"s":[314,1057,0]}],"ix":2},"a":{"a":0,"k":[-214,-380,0],"ix":1},"s":{"a":0,"k":[50,53.354,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[12,328],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"矩形路径 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.796078431373,0.958415970148,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"填充 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-214,-380],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"矩形 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":33,"op":753,"st":33,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"形状图层 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":37,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":45,"s":[100]},{"t":64,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":37,"s":[558,173,0],"to":[0,153.333,0],"ti":[0,-153.333,0]},{"t":64,"s":[558,1093,0]}],"ix":2},"a":{"a":0,"k":[-214,-380,0],"ix":1},"s":{"a":0,"k":[50,53.354,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[12,328],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"矩形路径 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.796078431373,0.958415970148,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"填充 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-214,-380],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"矩形 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":14,"op":734,"st":14,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"形状图层 1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":23,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":31,"s":[100]},{"t":50,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":23,"s":[142,101,0],"to":[0,153.333,0],"ti":[0,-153.333,0]},{"t":50,"s":[142,1021,0]}],"ix":2},"a":{"a":0,"k":[-214,-380,0],"ix":1},"s":{"a":0,"k":[50,53.354,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[12,328],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"矩形路径 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.796078431373,0.958415970148,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"填充 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-214,-380],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"矩形 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":720,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":2,"nm":"2-smoke.png","cl":"png","refId":"image_0","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":17,"s":[100]},{"t":34,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.714,"y":0.042},"t":0,"s":[338,1102,0],"to":[0,-33.333,0],"ti":[0,13.333,0]},{"i":{"x":0.667,"y":0.778},"o":{"x":0.333,"y":0},"t":17,"s":[338,902,0],"to":[0,-13.181,0],"ti":[0,-21.856,0]},{"t":38,"s":[338,941.276,0]}],"ix":2},"a":{"a":0,"k":[453,176.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0.053,0]},"t":0,"s":[100,88,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":17,"s":[100,108,100]},{"t":39,"s":[100,90,100]}],"ix":6}},"ao":0,"ip":0,"op":720,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":2,"nm":"2-rocket.png","cl":"png","refId":"image_1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":22,"s":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[1],"y":[0]},"t":210,"s":[100]},{"t":221,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.415,"y":0},"t":0,"s":[360,976,0],"to":[0,-80,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":22,"s":[360,496,0],"to":[0,0,0],"ti":[-3.333,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":36,"s":[338,496,0],"to":[3.333,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":49.857,"s":[380,496,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":63.717,"s":[338,496,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":77.574,"s":[380,496,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":91.432,"s":[338,496,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":105.291,"s":[380,496,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":119.148,"s":[338,496,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":133.006,"s":[380,496,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":145.709,"s":[338,496,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":159.568,"s":[380,496,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":173.426,"s":[338,496,0],"to":[0,0,0],"ti":[-3.667,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":187.283,"s":[380,496,0],"to":[3.667,0,0],"ti":[3.333,-8,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":204,"s":[360,496,0],"to":[-3.333,8,0],"ti":[0,54,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":210,"s":[360,544,0],"to":[0,-54,0],"ti":[0,62,0]},{"t":221,"s":[360,172,0]}],"ix":2},"a":{"a":0,"k":[151.5,207,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":720,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":2,"nm":"2-fire.png","cl":"png","refId":"image_2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":22,"s":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[1],"y":[0]},"t":210,"s":[100]},{"t":221,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.415,"y":0},"t":0,"s":[360,1136,0],"to":[0,-80,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":22,"s":[360,656,0],"to":[0,0,0],"ti":[-3.333,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":36,"s":[338,656,0],"to":[3.333,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":49.857,"s":[380,656,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":63.717,"s":[338,656,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":77.574,"s":[380,656,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":91.432,"s":[338,656,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":105.291,"s":[380,656,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":119.148,"s":[338,656,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":133.006,"s":[380,656,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":145.709,"s":[338,656,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":159.568,"s":[380,656,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":173.426,"s":[338,656,0],"to":[0,0,0],"ti":[-3.667,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":187.283,"s":[380,656,0],"to":[3.667,0,0],"ti":[3.333,-8,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":204,"s":[360,656,0],"to":[-3.333,8,0],"ti":[0,54,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":210,"s":[360,704,0],"to":[0,-54,0],"ti":[0,62,0]},{"t":221,"s":[360,332,0]}],"ix":2},"a":{"a":0,"k":[112,121,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":22,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":29.65,"s":[100,70,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":37.301,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":44.949,"s":[100,70,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":52.6,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":60.25,"s":[100,70,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":67.9,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":75.551,"s":[100,70,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":81.926,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":89.574,"s":[100,70,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":97.225,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":104.875,"s":[100,70,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":112.525,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":120.176,"s":[100,70,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":127.824,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":135.475,"s":[100,70,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":143.125,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":150.775,"s":[100,70,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":158.426,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":166.074,"s":[100,70,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":173.725,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":181.375,"s":[100,70,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":189.025,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":196.676,"s":[100,70,100]},{"t":204,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":0,"op":720,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":2,"nm":"2-sm.png","cl":"png","refId":"image_3","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":8,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":22,"s":[100]},{"t":28,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[360,1196,0],"ix":2},"a":{"a":0,"k":[112,547,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[100,1,100]},{"t":22,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":0,"op":720,"st":0,"bm":0}],"markers":[]}
\ No newline at end of file
package com.zxhyis.toolss.ui.page.applock
import android.graphics.drawable.Drawable
data class AppBean(val drawable: Drawable,val packname: String, val name: String, var isSelect: Boolean = false)
package com.zxhyis.toolss.ui.page.applock
import android.content.Intent
import com.github.ihsg.patternlocker.OnPatternChangeListener
import com.github.ihsg.patternlocker.PatternLockerView
import com.zxhyis.toolss.base.TopActivity
import com.zxhyis.toolss.databinding.ActivityLayoutAppLockBinding
class AppLockActivity:TopActivity<ActivityLayoutAppLockBinding>() {
override fun getViewBinding1(): ActivityLayoutAppLockBinding {
return ActivityLayoutAppLockBinding.inflate(layoutInflater)
}
override fun init() {
vb.patternLockView.setOnPatternChangedListener(object :OnPatternChangeListener{
override fun onChange(view: PatternLockerView, hitIndexList: List<Int>) {
}
override fun onClear(view: PatternLockerView) {
}
override fun onComplete(view: PatternLockerView, hitIndexList: List<Int>) {
startActivity(Intent(this@AppLockActivity,AppLockManagerActivity::class.java))
}
override fun onStart(view: PatternLockerView) {
}
})
}
}
\ No newline at end of file
package com.zxhyis.toolss.ui.page.applock
import android.annotation.SuppressLint
import android.app.AppOpsManager
import android.content.Context
import android.content.Intent
import android.graphics.Color
import android.os.Build
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.activity.OnBackPressedCallback
import androidx.core.view.isVisible
import androidx.core.view.updatePadding
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.blankj.utilcode.util.AppUtils
import com.blankj.utilcode.util.BarUtils
import com.blankj.utilcode.util.SPUtils
import com.github.ihsg.patternlocker.OnPatternChangeListener
import com.github.ihsg.patternlocker.PatternLockerView
import com.zxhyis.toolss.R
import com.zxhyis.toolss.ad.ConfigHelper
import com.zxhyis.toolss.base.TopActivity
import com.zxhyis.toolss.databinding.ActivityLayoutLockManagerBinding
import com.zxhyis.toolss.logic.setOnClick
import com.zxhyis.toolss.ui.dialog.DialogViews
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.MainScope
import kotlinx.coroutines.launch
class AppLockManagerActivity : TopActivity<ActivityLayoutLockManagerBinding>() {
override fun getViewBinding1(): ActivityLayoutLockManagerBinding {
return ActivityLayoutLockManagerBinding.inflate(layoutInflater)
}
private val appList = mutableListOf<AppBean>()
override fun onStart() {
super.onStart()
if (ConfigHelper.ifAppLock) {
val appOpsManager = getSystemService(Context.APP_OPS_SERVICE) as AppOpsManager
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
if (appOpsManager.unsafeCheckOpNoThrow(
AppOpsManager.OPSTR_GET_USAGE_STATS,
android.os.Process.myUid(),
this.packageName
) != AppOpsManager.MODE_ALLOWED
) {
DialogViews.showLastStep(this) {
Log.e("MXL", "弹窗回到: ")
checkAccesSettings(true)
}
}
} else {
if (appOpsManager.checkOpNoThrow(
AppOpsManager.OPSTR_GET_USAGE_STATS,
android.os.Process.myUid(),
this.packageName
) != AppOpsManager.MODE_ALLOWED
) {
DialogViews.showLastStep(this) {
Log.e("MXL", "弹窗回到: ")
checkAccesSettings(true)
}
}
}
}
}
override fun onAccesSettingsResult(isGranted: Boolean) {
if (isGranted) {
} else {
Log.e("MXL", "onAccesSettingsResult: " + ConfigHelper.ifAppLock)
if (ConfigHelper.ifAppLock) {
}
}
}
override fun init() {
BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
vb.root.updatePadding(top = BarUtils.getStatusBarHeight())
if (ConfigHelper.appList.isNullOrEmpty()) {
MainScope().launch(Dispatchers.Main) {
launch(Dispatchers.IO) {
ConfigHelper.appList = AppUtils.getAppsInfo().shuffled()
}
ConfigHelper.appList?.filter { !it.isSystem }?.forEach {
val bean = AppBean(it.icon, it.packageName, it.name, false)
appList.add(bean)
val memoryApps = SPUtils.getInstance().getStringSet("lockApps", mutableSetOf())
appList.forEach { a ->
memoryApps.forEach {
if (a.packname == it) {
Log.e("MXL", "init: " + it.toString())
a.isSelect = true
}
}
}
appList.sortByDescending { it.isSelect }
vb.idAppRl.run {
layoutManager = LinearLayoutManager(context)
adapter = mAdapter
}
}
}
} else {
MainScope().launch(Dispatchers.IO) {
ConfigHelper.appList?.filter { !it.isSystem }?.forEach { it ->
val bean = AppBean(it.icon, it.packageName, it.name, false)
appList.add(bean)
val memoryApps = SPUtils.getInstance().getStringSet("lockApps", mutableSetOf())
appList.forEach { a ->
memoryApps.forEach {
if (a.packname == it) {
Log.e("MXL", "init: " + it.toString())
a.isSelect = true
}
}
}
appList.sortByDescending { it.isSelect }
// lockDao?.insert(bean)
vb.idAppRl.run {
layoutManager = LinearLayoutManager(context)
adapter = mAdapter
}
updateBottomView()
}
}
// lockDao?.getAll()?.observe(this@AppLockManagerActivity) {
// appList.clear()
// appList.addAll(it)
//
// }
}
vb.idBackLockManager.setOnClick(javaClass.simpleName) {
onBackPressedDispatcher.onBackPressed()
}
onBackPressedDispatcher.addCallback(object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
finishToMain()
}
})
vb.idEnable.setOnClick(javaClass.simpleName) {
vb.idLlNoEnable.isVisible = false
vb.idDrawPattern.isVisible = true
startService(Intent(this, ProtectorService::class.java))
}
vb.idOneView.setOnPatternChangedListener(object : OnPatternChangeListener {
override fun onChange(view: PatternLockerView, hitIndexList: List<Int>) {
}
override fun onClear(view: PatternLockerView) {
}
override fun onComplete(view: PatternLockerView, hitIndexList: List<Int>) {
Log.e("MXL", "onComplete: "+hitIndexList )
val isOk = isPatternOk(hitIndexList)
view.updateStatus(!isOk)
// ConfigHelper.ifAppLock = true
}
override fun onStart(view: PatternLockerView) {
}
})
}
private fun isPatternOk(hitIndexList: List<Int>): Boolean {
PatternHelper().validateForSetting(hitIndexList)
return PatternHelper().isOk
}
private val mAdapter by lazy {
class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
val ivImage: ImageView
val tvName: TextView?
val ivLock: ImageView
init {
ivImage = view.findViewById(R.id.id_app_icon)
tvName = view.findViewById(R.id.id_tv_name)
ivLock = view.findViewById(R.id.id_img_lock)
}
}
object : RecyclerView.Adapter<ViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val view = LayoutInflater.from(this@AppLockManagerActivity).inflate(
R.layout.item_layout_lock_manager, parent, false
)
return ViewHolder(view)
}
override fun getItemCount() = appList.size
@SuppressLint("RecyclerView")
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val item = appList[position]
// val c = ConfigHelper.appList?.firstOrNull {
// it.packageName == item.packname
// }
holder.ivImage.setImageDrawable(item.drawable)
holder.tvName?.text = item.name
if (item.isSelect) {
holder.ivLock.setImageResource(R.drawable.suo_s)
} else {
holder.ivLock.setImageResource(R.drawable.suo_n)
}
holder.itemView.setOnClickListener {
item.isSelect = !item.isSelect
Log.e("MXL", "onBindViewHolder: " + item.isSelect)
if (item.isSelect) {
Log.e("MXL", "选中给加到sp里: ")
val stringSet =
SPUtils.getInstance().getStringSet("lockApps", mutableSetOf())
stringSet.add(item.packname)
SPUtils.getInstance().put("lockApps", stringSet)
} else {
Log.e("MXL", "取消选中,移除出去: ")
val stringSet =
SPUtils.getInstance().getStringSet("lockApps", mutableSetOf())
stringSet.remove(item.packname)
SPUtils.getInstance().put("lockApps", stringSet)
Log.e(
"MXL",
"onBindViewHolder: " + (SPUtils.getInstance()
.getStringSet("lockApps", mutableSetOf<String?>()).toString())
)
}
notifyItemChanged(position, 1)
updateBottomView()
// notifyItemRangeChanged(0, appList.size, 1)
}
}
override fun onBindViewHolder(
holder: ViewHolder,
position: Int,
payloads: MutableList<Any>
) {
super.onBindViewHolder(holder, position, payloads)
val item = appList[position]
if (item.isSelect) {
holder.ivLock.setImageResource(R.drawable.suo_s)
} else {
holder.ivLock.setImageResource(R.drawable.suo_n)
}
}
}
}
@SuppressLint("SetTextI18n")
private fun updateBottomView() {
val currtentApps = SPUtils.getInstance().getStringSet("lockApps", mutableSetOf())
vb.idEnable.text = "ENABLE(${currtentApps.size})"
}
}
\ No newline at end of file
package com.zxhyis.toolss.ui.page.applock
import android.text.TextUtils
import com.blankj.utilcode.util.SPUtils
import com.zxhyis.toolss.ui.page.applock.SecurityUtil.encrypt
open class PatternHelper {
var message: String? = null
private set
private var storagePwd: String? = null
private var tmpPwd: String? = null
private var times = 0
var isFinish = false
private set
var isOk = false
private set
fun validateForSetting(hitIndexList: List<Int>?) {
isFinish = false
isOk = false
if (hitIndexList == null || hitIndexList.size < MAX_SIZE) {
tmpPwd = null
message = sizeErrorMsg
return
}
//1. draw first time
if (TextUtils.isEmpty(tmpPwd)) {
tmpPwd = convert2String(hitIndexList)
message = reDrawMsg
isOk = true
return
}
//2. draw second times
if (tmpPwd == convert2String(hitIndexList)) {
message = settingSuccessMsg
saveToStorage(tmpPwd)
isOk = true
isFinish = true
} else {
tmpPwd = null
message = diffPreErrorMsg
}
}
fun validateForChecking(hitIndexList: List<Int>?) {
isOk = false
if (hitIndexList == null || hitIndexList.size < MAX_SIZE) {
times++
isFinish = times >= MAX_SIZE
message = pwdErrorMsg
return
}
storagePwd = fromStorage
if (!TextUtils.isEmpty(storagePwd) && storagePwd == convert2String(hitIndexList)) {
message = checkingSuccessMsg
isOk = true
isFinish = true
} else {
times++
isFinish = times >= MAX_SIZE
message = pwdErrorMsg
}
}
private val remainTimes: Int
get() = if (times < 5) MAX_TIMES - times else 0
private val reDrawMsg: String = "请再次绘制解锁图案"
private val settingSuccessMsg: String = "手势解锁图案设置成功!"
private val checkingSuccessMsg: String = "解锁成功!"
private val sizeErrorMsg: String = String.format("至少连接个%d点,请重新绘制", MAX_SIZE)
private val diffPreErrorMsg: String = "与上次绘制不一致,请重新绘制"
private val pwdErrorMsg: String
get() = String.format("密码错误,还剩%d次机会", remainTimes)
private fun convert2String(hitIndexList: List<Int>): String {
return hitIndexList.toString()
}
private fun saveToStorage(gesturePwd: String?) {
val encryptPwd = encrypt(gesturePwd!!)
SPUtils.getInstance().put(GESTURE_PWD_KEY, encryptPwd)
}
private val fromStorage: String? = SPUtils.getInstance().getString(GESTURE_PWD_KEY)?.let { SecurityUtil.decrypt(it) }
companion object {
const val MAX_SIZE = 4
const val MAX_TIMES = 5
private const val GESTURE_PWD_KEY = "gesture_pwd_key"
}
}
\ No newline at end of file
package com.zxhyis.toolss.ui.page.applock
import android.app.Service
import android.app.usage.UsageEvents
import android.app.usage.UsageStatsManager
import android.content.Context
import android.content.Intent
import android.os.Handler
import android.os.IBinder
import android.util.Log
import com.blankj.utilcode.util.SPUtils
class ProtectorService : Service() {
private var packageName: String? = ""
private val handler = Handler()
private val runnable: Runnable = object : Runnable {
override fun run() {
initProtector()
handler.postDelayed(this, 1000)
}
}
private val usageStatsManager by lazy { getSystemService(Context.USAGE_STATS_SERVICE) as UsageStatsManager }
override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {
handler.postDelayed(runnable, 1000)
return START_STICKY
}
override fun onDestroy() {
handler.removeCallbacks(runnable)
super.onDestroy()
}
private fun initProtector() {
var previousEventApp = ""
var recentEventApp = ""
var recentEventTime = 0L
var tempRecentEventApp = ""
var tempRecentEventTime = 0L
val currentTime = System.currentTimeMillis()
val usageEvents = usageStatsManager.queryEvents(currentTime - 5 * 1000, currentTime)
val scannedEvent = UsageEvents.Event()
while (usageEvents.hasNextEvent()) {
usageEvents.getNextEvent(scannedEvent)
val scannedEventType = scannedEvent.eventType
val scannedEventApp = scannedEvent.packageName
val scannedEventTime = scannedEvent.timeStamp
if (scannedEventType == UsageEvents.Event.ACTIVITY_RESUMED && scannedEventTime > recentEventTime) {
tempRecentEventApp = scannedEventApp
tempRecentEventTime = scannedEventTime
}
}
Log.e("MXL", "启动: ")
if (tempRecentEventTime > recentEventTime) {
if (tempRecentEventApp == recentEventApp) previousEventApp = packageName ?: ""
recentEventApp = tempRecentEventApp
recentEventTime = tempRecentEventTime
}
if (recentEventApp != previousEventApp) {
previousEventApp = recentEventApp
//在这里判断包名启动lockactivity
Log.e("MXL", "initProtector: " + previousEventApp)
val stringSet =
SPUtils.getInstance().getStringSet("lockApps", mutableSetOf())
stringSet.forEach {
if (previousEventApp == it) {
Log.e("MXL", "相同要跳转锁屏: " )
val intent = Intent(this, AppLockActivity::class.java)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
startActivity(intent)
}
}
//
}
}
override fun onBind(intent: Intent): IBinder? {
return null
}
}
fun startProtectorService(context: Context, packageName: String) {
val intent = Intent(context, ProtectorService::class.java)
intent.putExtra("package_name", packageName)
context.startService(intent)
}
fun stopProtectorService(context: Context) {
val intent = Intent(context, ProtectorService::class.java)
context.stopService(intent)
}
package com.zxhyis.toolss.ui.page.applock
import java.io.UnsupportedEncodingException
import java.util.Locale
import javax.crypto.Cipher
import javax.crypto.spec.SecretKeySpec
/**
* AES encrypt/decrypt utility
* Created by hsg on 14/10/2017.
*/
object SecurityUtil {
private const val CIPHER_MODE = "AES/ECB/PKCS5Padding"
private const val MASTER_PASSWORD = "Test123454321"
private fun createKey(password: String?): SecretKeySpec {
var data: ByteArray? = null
val sb = StringBuffer(32)
sb.append(password ?: "")
while (sb.length < 32) {
sb.append("0")
}
if (sb.length > 32) {
sb.setLength(32)
}
try {
data = sb.toString().toByteArray(charset("UTF-8"))
} catch (e: UnsupportedEncodingException) {
e.printStackTrace()
}
return SecretKeySpec(data, "AES")
}
private fun encrypt(content: ByteArray, password: String): ByteArray {
val key = createKey(password)
val cipher = Cipher.getInstance(CIPHER_MODE)
cipher.init(Cipher.ENCRYPT_MODE, key)
return cipher.doFinal(content)
}
fun encrypt(content: String, password: String = MASTER_PASSWORD): String {
var data = content.toByteArray(charset("UTF-8"))
data = encrypt(data, password)
return byte2hex(data)
}
private fun decrypt(content: ByteArray, password: String): ByteArray {
val key = createKey(password)
val cipher = Cipher.getInstance(CIPHER_MODE)
cipher.init(Cipher.DECRYPT_MODE, key)
return cipher.doFinal(content)
}
fun decrypt(content: String, password: String = MASTER_PASSWORD): String? {
var data = hex2byte(content)
data = decrypt(data, password)
return data.toString(charset("UTF-8"))
}
private fun byte2hex(b: ByteArray): String { // 一个字节的数,
val sb = StringBuffer(b.size * 2)
var tmp: String
for (n in b.indices) { // 整数转成十六进制表示
tmp = Integer.toHexString(b[n].toInt() and 0XFF)
if (tmp.length == 1) {
sb.append("0")
}
sb.append(tmp)
}
return sb.toString().toUpperCase(Locale.ROOT) // 转成大写
}
private fun hex2byte(inputString: String): ByteArray {
if (inputString.length < 2) {
return ByteArray(0)
}
val str = inputString.toLowerCase(Locale.ROOT)
val l = inputString.length / 2
val result = ByteArray(l)
for (i in 0 until l) {
val tmp = str.substring(2 * i, 2 * i + 2)
result[i] = (tmp.toInt(16) and 0xFF).toByte()
}
return result
}
}
\ No newline at end of file
package com.zxhyis.toolss.ui.page.speed
import android.animation.Animator
import android.content.Intent
import android.graphics.Color
import androidx.core.view.isVisible
import androidx.core.view.updatePadding
import com.blankj.utilcode.util.BarUtils
import com.zxhyis.toolss.base.TopActivity
import com.zxhyis.toolss.databinding.ActivityLayoutSpeedBinding
import com.zxhyis.toolss.ui.AFunOb.BATTERY_OPTIMIZER
class BatteryOptimizerActivity : TopActivity<ActivityLayoutSpeedBinding>() {
override fun getViewBinding1(): ActivityLayoutSpeedBinding {
return ActivityLayoutSpeedBinding.inflate(layoutInflater)
}
override fun init() {
BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
vb.root.updatePadding(top = BarUtils.getStatusBarHeight())
vb.idOneLottie.imageAssetsFolder = "battery_scan/images/"
vb.idOneLottie.setAnimation("battery_scan/data.json")
vb.idOneLottie.playAnimation()
vb.root.postDelayed({
vb.idOneLottie.isVisible = false
vb.idScaning.text = "Optimizing"
playRocket()
}, 3000)
}
private fun playRocket() {
vb.idRocket.imageAssetsFolder = "battery_save/images/"
vb.idRocket.setAnimation("battery_save/data.json")
vb.idRocket.playAnimation()
vb.idRocket.addAnimatorListener(object : Animator.AnimatorListener {
override fun onAnimationStart(p0: Animator) {
}
override fun onAnimationEnd(p0: Animator) {
startActivity(Intent(this@BatteryOptimizerActivity, SpeedFinishActivity::class.java).putExtra("type", BATTERY_OPTIMIZER))
finish()
}
override fun onAnimationCancel(p0: Animator) {
}
override fun onAnimationRepeat(p0: Animator) {
}
})
}
}
\ No newline at end of file
package com.zxhyis.toolss.ui.page.speed
import android.animation.Animator
import android.content.Intent
import android.graphics.Color
import androidx.core.view.isVisible
import androidx.core.view.updatePadding
import com.blankj.utilcode.util.AppUtils
import com.blankj.utilcode.util.BarUtils
import com.zxhyis.toolss.ad.ConfigHelper
import com.zxhyis.toolss.base.TopActivity
import com.zxhyis.toolss.databinding.ActivityLayoutSpeedBinding
import com.zxhyis.toolss.ui.AFunOb.APPP_SPEED
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.MainScope
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import kotlin.random.Random
class SpeedActivity : TopActivity<ActivityLayoutSpeedBinding>() {
override fun getViewBinding1(): ActivityLayoutSpeedBinding {
return ActivityLayoutSpeedBinding.inflate(layoutInflater)
}
override fun init() {
BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
vb.root.updatePadding(top = BarUtils.getStatusBarHeight())
vb.idOneLottie.imageAssetsFolder = "appmanager/images/"
vb.idOneLottie.setAnimation("appmanager/data.json")
vb.idOneLottie.playAnimation()
vb.root.postDelayed({
vb.idOneLottie.isVisible = false
vb.idScaning.text = "Optimizing"
playRocket()
}, 3000)
}
private fun playRocket() {
vb.idRocket.imageAssetsFolder = "fast/images/"
vb.idRocket.setAnimation("fast/data.json")
vb.idRocket.playAnimation()
MainScope().launch(Dispatchers.Main) {
launch {
if (ConfigHelper.appList.isNullOrEmpty()) {
withContext(Dispatchers.IO) {
ConfigHelper.appList = AppUtils.getAppsInfo().shuffled()
}
}
val icons = ConfigHelper.appList?.filter { !it.isSystem }?.map { it.icon }
var index = 0
vb.idSpeedIcon.isVisible = true
while (vb.idRocket.isVisible) {
vb.idSpeedIcon.setImageDrawable(icons?.getOrNull(index++ % icons.size))
delay(Random.nextLong(100, 200))
}
}
}
vb.idRocket.addAnimatorListener(object : Animator.AnimatorListener {
override fun onAnimationStart(p0: Animator) {
}
override fun onAnimationEnd(p0: Animator) {
startActivity(Intent(this@SpeedActivity, SpeedFinishActivity::class.java).putExtra("type",APPP_SPEED))
finish()
}
override fun onAnimationCancel(p0: Animator) {
}
override fun onAnimationRepeat(p0: Animator) {
}
})
}
}
\ No newline at end of file
package com.zxhyis.toolss.ui.page.speed
import android.animation.Animator
import android.content.Intent
import android.graphics.Color
import androidx.core.view.updatePadding
import com.blankj.utilcode.util.BarUtils
import com.zxhyis.toolss.ad.AdmobUtils
import com.zxhyis.toolss.base.TopActivity
import com.zxhyis.toolss.databinding.ActivityLayoutSpeedFinishBinding
import com.zxhyis.toolss.ui.page.result.ResultActivity
class SpeedFinishActivity : TopActivity<ActivityLayoutSpeedFinishBinding>() {
override fun getViewBinding1(): ActivityLayoutSpeedFinishBinding {
return ActivityLayoutSpeedFinishBinding.inflate(layoutInflater)
}
override fun init() {
BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
val type = intent.getStringExtra("type")
vb.root.updatePadding(top = BarUtils.getStatusBarHeight())
vb.idSpeedFinish.addAnimatorListener(object : Animator.AnimatorListener {
override fun onAnimationStart(p0: Animator) {
}
override fun onAnimationEnd(p0: Animator) {
AdmobUtils.showInterstitialAd(this@SpeedFinishActivity) {
startActivity(
Intent(
this@SpeedFinishActivity,
ResultActivity::class.java
).putExtra("from", type)
)
finish()
}
}
override fun onAnimationCancel(p0: Animator) {
}
override fun onAnimationRepeat(p0: Animator) {
}
})
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="20dp"
android:text="@string/app_name"
android:textColor="@color/white"
android:textSize="18sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/id_icon"
android:layout_width="90dp"
android:layout_height="90dp"
android:layout_marginTop="180dp"
android:src="@mipmap/logo"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.github.ihsg.patternlocker.PatternLockerView
android:id="@+id/pattern_lock_view"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_marginStart="20dp"
android:layout_marginTop="20dp"
android:layout_marginBottom="100dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:plv_color="@color/white"
app:plv_hitColor="#4273FF"
app:plv_enableHapticFeedback="true" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/id_back_lock_manager"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:paddingHorizontal="14dp"
android:src="@drawable/fanhui"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="App Lock"
android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@+id/id_back_lock_manager"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/id_back_lock_manager" />
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/id_ll_no_enable"
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/id_back_lock_manager"
tools:visibility="gone">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="22dp"
android:src="@drawable/applocktu" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="14dp"
android:layout_marginBottom="20dp"
android:text="Enable App Lock, prevent privacy leak."
android:textColor="#000000"
android:textSize="13sp"
android:textStyle="bold" />
<View
android:layout_width="match_parent"
android:layout_height="10dp"
android:background="#F6F7FB" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/id_app_rl"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/id_back_lock_manager" />
<View
android:id="@+id/id_view_line"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#EEEEEE" />
<com.noober.background.view.BLTextView
android:id="@+id/id_enable"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_marginHorizontal="41dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="40dp"
android:gravity="center"
android:text="ENABLE(0)"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold"
app:bl_corners_radius="24dp"
app:bl_solid_color="#4772FF" />
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/id_draw_pattern"
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="vertical"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/id_back_lock_manager"
tools:visibility="visible">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="84dp"
android:text="Draw an unlock pattern"
android:textColor="#000000"
android:textSize="18sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="7dp"
android:text="Connect at least 4 dots"
android:textColor="#666666"
android:textSize="13sp" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.github.ihsg.patternlocker.PatternLockerView
android:id="@+id/id_two_view"
android:layout_width="match_parent"
android:layout_height="150dp"
android:layout_gravity="center_horizontal"
app:plv_color="#CCCDD1"
app:plv_enableAutoClean="false"
app:plv_enableHapticFeedback="true" />
<com.github.ihsg.patternlocker.PatternLockerView
android:id="@+id/id_one_view"
android:layout_width="match_parent"
android:layout_height="150dp"
android:layout_gravity="center_horizontal"
app:plv_color="#CCCDD1"
app:plv_enableHapticFeedback="true" />
</FrameLayout>
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1" />
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#0ec897">
<com.airbnb.lottie.LottieAnimationView
android:id="@+id/id_rocket"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<com.airbnb.lottie.LottieAnimationView
android:id="@+id/id_one_lottie"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="46dp"
android:layout_marginTop="182dp"
app:layout_constraintBottom_toTopOf="@+id/id_scaning"
app:layout_constraintTop_toTopOf="parent"
app:lottie_autoPlay="true"
app:lottie_loop="true" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/id_speed_icon"
android:layout_width="42dp"
android:layout_height="42dp"
android:layout_marginBottom="15dp"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@+id/id_scaning"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/id_scaning"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="19dp"
android:text="Scanning"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/id_scan"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/id_scan"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="18dp"
android:layout_marginBottom="140dp"
android:gravity="center"
app:layout_constraintBottom_toBottomOf="parent">
<com.noober.background.view.BLView
android:layout_width="4dp"
android:layout_height="4dp"
app:bl_shape="oval"
app:bl_solid_color="@color/white" />
<com.noober.background.view.BLView
android:layout_width="4dp"
android:layout_height="4dp"
android:layout_marginHorizontal="2dp"
app:bl_shape="oval"
app:bl_solid_color="@color/white" />
<com.noober.background.view.BLView
android:layout_width="4dp"
android:layout_height="4dp"
app:bl_shape="oval"
app:bl_solid_color="@color/white" />
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#0ec897">
<com.airbnb.lottie.LottieAnimationView
android:id="@+id/id_speed_finish"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:lottie_autoPlay="true"
app:lottie_rawRes="@raw/finish" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="296dp"
android:text="Optimization completed"
android:textColor="@color/white"
android:textSize="15sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<com.noober.background.view.BLLinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginHorizontal="41dp"
android:orientation="vertical"
app:bl_corners_radius="10dp"
app:bl_solid_color="@color/white">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="24dp"
android:text="Last Step"
android:textColor="#000000"
android:textSize="15sp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="23dp"
android:layout_marginTop="18dp"
android:gravity="center"
android:text="One step left to make App Lock work properly."
android:textColor="#000000"
android:textSize="13sp" />
<TextView
android:id="@+id/id_tv_ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_marginTop="36dp"
android:layout_marginBottom="20dp"
android:paddingHorizontal="23dp"
android:text="OK"
android:textColor="#4772FF"
android:textSize="17sp" />
</com.noober.background.view.BLLinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="14dp"
android:layout_marginVertical="18dp"
android:gravity="center_vertical">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/id_app_icon"
android:layout_width="28dp"
android:layout_height="28dp" />
<TextView
android:id="@+id/id_tv_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="9dp"
android:layout_weight="1"
android:textColor="#000000"
android:textSize="13sp" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/id_img_lock"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/suo_n" />
</LinearLayout>
\ No newline at end of file
{"v":"5.4.4","fr":60,"ip":0,"op":90,"w":720,"h":1280,"nm":"finish","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"形状图层 4","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":36,"s":[0],"e":[100]},{"t":44}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":36,"s":[-18],"e":[18]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":44,"s":[18],"e":[-12]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":52,"s":[-12],"e":[10]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":60,"s":[10],"e":[0]},{"t":68}],"ix":10},"p":{"a":0,"k":[357,551.5,0],"ix":2},"a":{"a":0,"k":[-4,-66,0],"ix":1},"s":{"a":0,"k":[90,90,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-73.52,-119.272],[-9.086,-46.073],[49,-101]],"c":false},"ix":2},"nm":"路径 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":14,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"描边 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"形状 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":38,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":-28,"ix":3},"m":1,"ix":2,"nm":"修剪路径 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":240,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"形状图层 8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[360,543,0],"ix":2},"a":{"a":0,"k":[3,-92,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[162,162],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"椭圆路径 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":12,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"描边 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[3,-92],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"椭圆 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":26,"s":[29],"e":[100]},{"t":31}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0],"e":[720]},{"t":31}],"ix":3},"m":1,"ix":2,"nm":"修剪路径 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":240,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"形状图层 7","sr":1,"ks":{"o":{"a":0,"k":30,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[360,543,0],"ix":2},"a":{"a":0,"k":[3,-92,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[162,162],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"椭圆路径 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":12,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"描边 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[3,-92],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"椭圆 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":240,"st":0,"bm":0}],"markers":[]}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment