Compare commits
279 Commits
main
...
translatio
| Author | SHA1 | Date |
|---|---|---|
|
|
d2a0ae1cfc | 1 week ago |
|
|
f84d5c6769 | 1 week ago |
|
|
50d78551c2 | 2 weeks ago |
|
|
24fa8e18f3 | 2 weeks ago |
|
|
dda4dbeba9 | 2 weeks ago |
|
|
f51e37db55 | 2 weeks ago |
|
|
4f303d8496 | 2 weeks ago |
|
|
151fcf23d1 | 2 weeks ago |
|
|
ff75531f26 | 2 weeks ago |
|
|
114e9e7929 | 2 weeks ago |
|
|
47b50e35a1 | 2 weeks ago |
|
|
80adf1bd2f | 2 weeks ago |
|
|
29447cc9fa | 2 weeks ago |
|
|
5b04a5a3ea | 2 weeks ago |
|
|
cdbba6f270 | 2 weeks ago |
|
|
6e71aa7f13 | 2 weeks ago |
|
|
fdeeed10d6 | 2 weeks ago |
|
|
8de8039096 | 3 weeks ago |
|
|
040ff6a80d | 3 weeks ago |
|
|
f46b3f745f | 3 weeks ago |
|
|
acfab432cc | 3 weeks ago |
|
|
074c060e36 | 3 weeks ago |
|
|
b4a7508f7c | 3 weeks ago |
|
|
d6eb6970af | 3 weeks ago |
|
|
961a1f5b03 | 3 weeks ago |
|
|
68ff91561f | 3 weeks ago |
|
|
631fabad23 | 3 weeks ago |
|
|
7b2e3a5a54 | 3 weeks ago |
|
|
71ac91a076 | 3 weeks ago |
|
|
558381b797 | 3 weeks ago |
|
|
f5aa12a04b | 3 weeks ago |
|
|
b75f0c7ee4 | 4 weeks ago |
|
|
79b23584db | 4 weeks ago |
|
|
295709cbc2 | 4 weeks ago |
|
|
1286455f8c | 4 weeks ago |
|
|
8878558f12 | 4 weeks ago |
|
|
5e16169867 | 4 weeks ago |
|
|
ee358259f5 | 4 weeks ago |
|
|
8368dbd4d9 | 4 weeks ago |
|
|
faf00b88ef | 1 month ago |
|
|
cf27430e29 | 1 month ago |
|
|
dffed5df6b | 1 month ago |
|
|
cf3c14281c | 1 month ago |
|
|
d9013a1dc2 | 1 month ago |
|
|
a25df34f42 | 1 month ago |
|
|
6cc058e86d | 1 month ago |
|
|
fbe9cd9dff | 1 month ago |
|
|
84224ae61b | 1 month ago |
|
|
7100283a9d | 1 month ago |
|
|
3f9046f1e4 | 1 month ago |
|
|
b334f631bd | 1 month ago |
|
|
a395d9b93a | 1 month ago |
|
|
c2028841c5 | 1 month ago |
|
|
bfeb3dce4e | 1 month ago |
|
|
dc0e4e5eb6 | 1 month ago |
|
|
46c8fbf0f6 | 1 month ago |
|
|
658b77aa37 | 1 month ago |
|
|
2a819a2d97 | 1 month ago |
|
|
9413e54d3a | 1 month ago |
|
|
b91850d388 | 1 month ago |
|
|
105ab2326a | 1 month ago |
|
|
ec506869cc | 1 month ago |
|
|
05b6d02e4c | 1 month ago |
|
|
5ea70397e2 | 1 month ago |
|
|
c416d84a3a | 1 month ago |
|
|
8309f311e6 | 1 month ago |
|
|
c6ee3c453f | 1 month ago |
|
|
4b710523e8 | 1 month ago |
|
|
e1788f1187 | 1 month ago |
|
|
aab1f6411b | 1 month ago |
|
|
afae41c410 | 1 month ago |
|
|
b44ae1e838 | 1 month ago |
|
|
2be65cba51 | 1 month ago |
|
|
530b87282f | 1 month ago |
|
|
2e1f4e87e0 | 1 month ago |
|
|
87e0c5b6eb | 1 month ago |
|
|
2fb787c31f | 1 month ago |
|
|
1575a8e308 | 1 month ago |
|
|
23e2809fdb | 1 month ago |
|
|
7296bfb6fc | 1 month ago |
|
|
df0b926e59 | 1 month ago |
|
|
0da4b63d74 | 1 month ago |
|
|
2162b8102a | 1 month ago |
|
|
305b3274c0 | 1 month ago |
|
|
5015747580 | 1 month ago |
|
|
c48cb78cd9 | 1 month ago |
|
|
4912f686f9 | 1 month ago |
|
|
d76bd2a295 | 1 month ago |
|
|
cb44e902a3 | 1 month ago |
|
|
9b3c172dd1 | 1 month ago |
|
|
20ed54243b | 1 month ago |
|
|
01c21377aa | 1 month ago |
|
|
183bcce003 | 1 month ago |
|
|
02398d3bb4 | 1 month ago |
|
|
d137e1166d | 1 month ago |
|
|
e62df81ba2 | 1 month ago |
|
|
a105d87241 | 1 month ago |
|
|
48718a3406 | 1 month ago |
|
|
68f5e64557 | 1 month ago |
|
|
2c7f4ddc48 | 1 month ago |
|
|
95b65ed8a5 | 1 month ago |
|
|
102690b2b8 | 1 month ago |
|
|
c9279e2272 | 1 month ago |
|
|
23abbebf9e | 2 months ago |
|
|
a4573c8710 | 2 months ago |
|
|
4ce1e912ce | 2 months ago |
|
|
eeaa22357f | 2 months ago |
|
|
000c403f6b | 2 months ago |
|
|
47ec43850d | 2 months ago |
|
|
f09d478a03 | 2 months ago |
|
|
3c9c3032a5 | 2 months ago |
|
|
2ab3e178a2 | 2 months ago |
|
|
9ed016ad8b | 2 months ago |
|
|
a6344d6a81 | 2 months ago |
|
|
92e745fe49 | 2 months ago |
|
|
3af43dc676 | 2 months ago |
|
|
0d6d23dbbc | 2 months ago |
|
|
66ff6ed8b6 | 2 months ago |
|
|
478be330df | 2 months ago |
|
|
85ccf41d04 | 2 months ago |
|
|
b309342cdc | 2 months ago |
|
|
ee3dd0b5c7 | 2 months ago |
|
|
5c684a6a0d | 2 months ago |
|
|
f340f4fb8f | 2 months ago |
|
|
bafe835ebd | 2 months ago |
|
|
8472a45530 | 2 months ago |
|
|
31a7aa907b | 2 months ago |
|
|
70a6d90ce3 | 2 months ago |
|
|
8740178f8c | 2 months ago |
|
|
cfd0c16738 | 2 months ago |
|
|
df3b36eb00 | 2 months ago |
|
|
7014ac397e | 2 months ago |
|
|
63cdced84e | 2 months ago |
|
|
49542a9112 | 2 months ago |
|
|
1ae1212733 | 2 months ago |
|
|
7f8b2979e7 | 2 months ago |
|
|
537d93915e | 2 months ago |
|
|
f376f430c6 | 2 months ago |
|
|
b9350afead | 2 months ago |
|
|
2c2cb8bb99 | 2 months ago |
|
|
8c7f4afe76 | 2 months ago |
|
|
c50f8d63ef | 2 months ago |
|
|
118da8da36 | 2 months ago |
|
|
4e6d3d3178 | 2 months ago |
|
|
9c7cfde5f4 | 2 months ago |
|
|
f78eb5da67 | 2 months ago |
|
|
6e1eb0d0bb | 2 months ago |
|
|
41a4005d41 | 2 months ago |
|
|
940ce5ff14 | 2 months ago |
|
|
05e87bbb2e | 2 months ago |
|
|
ae3ed83dd0 | 2 months ago |
|
|
245b66150f | 2 months ago |
|
|
0c2fe81c99 | 2 months ago |
|
|
bb4719bd87 | 2 months ago |
|
|
931e3fa968 | 2 months ago |
|
|
6e4d7519fb | 2 months ago |
|
|
2648f304f6 | 2 months ago |
|
|
cd4fbb1905 | 2 months ago |
|
|
b0708d85d9 | 2 months ago |
|
|
37909feb50 | 2 months ago |
|
|
20216cd4ae | 2 months ago |
|
|
22c388da23 | 2 months ago |
|
|
2bbfe1f131 | 2 months ago |
|
|
8b701255ed | 2 months ago |
|
|
7ead6d79e5 | 2 months ago |
|
|
3e9a381ed7 | 2 months ago |
|
|
cf7ff4ce1d | 2 months ago |
|
|
e4b6360808 | 2 months ago |
|
|
f46f978326 | 2 months ago |
|
|
14f3c6cb81 | 2 months ago |
|
|
10a5a6f558 | 2 months ago |
|
|
e8ca8b42bf | 2 months ago |
|
|
4188365e6d | 2 months ago |
|
|
d2deb974b1 | 2 months ago |
|
|
f48eb631ab | 2 months ago |
|
|
b6c665cbf1 | 2 months ago |
|
|
f54ce71177 | 2 months ago |
|
|
07447e148b | 2 months ago |
|
|
6faca94b89 | 2 months ago |
|
|
d027415302 | 2 months ago |
|
|
99282f34e3 | 2 months ago |
|
|
418297b6fb | 2 months ago |
|
|
4ceca016bb | 2 months ago |
|
|
3bdc4e246f | 2 months ago |
|
|
9ef70a250d | 2 months ago |
|
|
5b24dadb51 | 2 months ago |
|
|
40ba1bd246 | 2 months ago |
|
|
3fc1302eaf | 2 months ago |
|
|
e38892ff2d | 2 months ago |
|
|
838929591a | 2 months ago |
|
|
5feacfaf27 | 2 months ago |
|
|
39af08ddc3 | 2 months ago |
|
|
f026ae1d62 | 2 months ago |
|
|
e5f24b9c06 | 2 months ago |
|
|
00475dc100 | 2 months ago |
|
|
23b92cef41 | 2 months ago |
|
|
3ff9628cd3 | 2 months ago |
|
|
bb72c7f7d6 | 2 months ago |
|
|
0017c0601b | 2 months ago |
|
|
7d8537fae6 | 2 months ago |
|
|
1edeff439e | 2 months ago |
|
|
a1beacc36e | 2 months ago |
|
|
3e6ee8c10c | 2 months ago |
|
|
87422e8e05 | 2 months ago |
|
|
0b9df1f22b | 2 months ago |
|
|
179b86b2b0 | 2 months ago |
|
|
f6aa1fc7ac | 2 months ago |
|
|
9795276ef9 | 2 months ago |
|
|
45b013a048 | 2 months ago |
|
|
1599cfed4e | 2 months ago |
|
|
96ccb40f36 | 2 months ago |
|
|
bb7c05493a | 2 months ago |
|
|
169215fd7b | 2 months ago |
|
|
97a47ce4e8 | 2 months ago |
|
|
287e2b9562 | 2 months ago |
|
|
77a04e637e | 2 months ago |
|
|
8b5c4d7575 | 2 months ago |
|
|
8c92df8648 | 2 months ago |
|
|
a816afadea | 2 months ago |
|
|
d76ff5828f | 2 months ago |
|
|
8f428297cb | 2 months ago |
|
|
e9d3b3680a | 2 months ago |
|
|
a0008c9104 | 2 months ago |
|
|
1d224702ac | 2 months ago |
|
|
69666a6f6c | 2 months ago |
|
|
475a9b9acb | 2 months ago |
|
|
06c67a0409 | 2 months ago |
|
|
d1b1bbf777 | 2 months ago |
|
|
0ddaa6899d | 2 months ago |
|
|
42222804fd | 2 months ago |
|
|
bf210e664d | 2 months ago |
|
|
6725ab028d | 2 months ago |
|
|
609ae6ab83 | 2 months ago |
|
|
344adf23c0 | 2 months ago |
|
|
44ce353dac | 2 months ago |
|
|
b5753769b7 | 2 months ago |
|
|
250af1506c | 2 months ago |
|
|
fc750174fe | 2 months ago |
|
|
d848291930 | 2 months ago |
|
|
aee496b7c3 | 2 months ago |
|
|
16da0f4d0a | 2 months ago |
|
|
8ee0e3b4ea | 2 months ago |
|
|
0c68ca4438 | 2 months ago |
|
|
e454c9c991 | 2 months ago |
|
|
96ebc3c7e9 | 2 months ago |
|
|
2240c6cc65 | 2 months ago |
|
|
0514716910 | 2 months ago |
|
|
e903f9c418 | 2 months ago |
|
|
ac0d72b3ff | 2 months ago |
|
|
f62c7c9b20 | 2 months ago |
|
|
c11e859df1 | 2 months ago |
|
|
91c16f13d1 | 2 months ago |
|
|
1c0842ab95 | 2 months ago |
|
|
02930a901e | 3 months ago |
|
|
20e4f82df3 | 3 months ago |
|
|
8ae81d2b24 | 3 months ago |
|
|
34e8386ca1 | 3 months ago |
|
|
cc255e9c9a | 3 months ago |
|
|
11de01e079 | 3 months ago |
|
|
62bb667cb8 | 3 months ago |
|
|
f3674ba06f | 3 months ago |
|
|
a53602dc8c | 3 months ago |
|
|
7a03242396 | 3 months ago |
|
|
68f044de52 | 3 months ago |
|
|
c9de23347a | 3 months ago |
|
|
190492a191 | 3 months ago |
|
|
3d8daeb58d | 3 months ago |
|
|
0b3fea230f | 3 months ago |
|
|
86a91ab383 | 4 months ago |
|
|
89ff10f506 | 4 months ago |
|
|
8191852f4d | 4 months ago |
|
|
e17d3cde87 | 4 months ago |
|
|
77242825bb | 4 months ago |
|
|
27ad4e0764 | 4 months ago |
|
|
eae16eec44 | 4 months ago |
|
|
3f123d12d6 | 5 months ago |
|
|
de8c7bc605 | 5 months ago |
|
|
cb56503622 | 6 months ago |
|
|
e8319a0d3f | 6 months ago |
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 6.8 KiB |
|
After Width: | Height: | Size: 7.3 KiB |
|
After Width: | Height: | Size: 7.8 KiB |
|
After Width: | Height: | Size: 8.5 KiB |
|
After Width: | Height: | Size: 949 B |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
@ -0,0 +1 @@
|
|||||||
|
{"images":[{"size":"60x60","expected-size":"180","filename":"180.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"40x40","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"60x60","expected-size":"120","filename":"120.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"57x57","expected-size":"57","filename":"57.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"1x"},{"size":"29x29","expected-size":"87","filename":"87.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"57x57","expected-size":"114","filename":"114.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"2x"},{"size":"20x20","expected-size":"60","filename":"60.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"iphone","scale":"3x"},{"size":"1024x1024","filename":"1024.png","expected-size":"1024","idiom":"ios-marketing","folder":"Assets.xcassets/AppIcon.appiconset/","scale":"1x"},{"size":"40x40","expected-size":"80","filename":"80.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"72x72","expected-size":"72","filename":"72.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"76x76","expected-size":"152","filename":"152.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"50x50","expected-size":"100","filename":"100.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"29x29","expected-size":"58","filename":"58.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"76x76","expected-size":"76","filename":"76.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"29x29","expected-size":"29","filename":"29.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"50x50","expected-size":"50","filename":"50.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"72x72","expected-size":"144","filename":"144.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"40x40","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"83.5x83.5","expected-size":"167","filename":"167.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"},{"size":"20x20","expected-size":"20","filename":"20.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"1x"},{"size":"20x20","expected-size":"40","filename":"40.png","folder":"Assets.xcassets/AppIcon.appiconset/","idiom":"ipad","scale":"2x"}]}
|
||||||
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 40 KiB |
@ -0,0 +1,6 @@
|
|||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgaPetsOq3tqUlswBN
|
||||||
|
BFUWIIdEg4dcTCGRUKbAEx8ViFygCgYIKoZIzj0DAQehRANCAAS6IKkZ4tCeBlN6
|
||||||
|
DtXiBekCiIbgHxWk8AWppP0H3mJ+I2s8cIEaquL4/yeLDcHzAHf8tHcYhF/TvggT
|
||||||
|
nc30yDLv
|
||||||
|
-----END PRIVATE KEY-----
|
||||||
@ -0,0 +1 @@
|
|||||||
|
{"agcgw":{"url":"connect-drcn.dbankcloud.cn","backurl":"connect-drcn.hispace.hicloud.com","websocketurl":"connect-ws-drcn.hispace.dbankcloud.cn","websocketbackurl":"connect-ws-drcn.hispace.dbankcloud.com"},"agcgw_all":{"SG":"connect-dra.dbankcloud.cn","SG_back":"connect-dra.hispace.hicloud.com","CN":"connect-drcn.dbankcloud.cn","CN_back":"connect-drcn.hispace.hicloud.com","RU":"connect-drru.hispace.dbankcloud.ru","RU_back":"connect-drru.hispace.dbankcloud.cn","DE":"connect-dre.dbankcloud.cn","DE_back":"connect-dre.hispace.hicloud.com"},"websocketgw_all":{"SG":"connect-ws-dra.hispace.dbankcloud.cn","SG_back":"connect-ws-dra.hispace.dbankcloud.com","CN":"connect-ws-drcn.hispace.dbankcloud.cn","CN_back":"connect-ws-drcn.hispace.dbankcloud.com","RU":"connect-ws-drru.hispace.dbankcloud.ru","RU_back":"connect-ws-drru.hispace.dbankcloud.cn","DE":"connect-ws-dre.hispace.dbankcloud.cn","DE_back":"connect-ws-dre.hispace.dbankcloud.com"},"client":{"cp_id":"2640966000002322881","product_id":"736430079244816567","client_id":"563735388191982656","client_secret":"650C7C799812AFFD53A10C7756CF05FB9F215A7E49032ABA8EBF3E14B77535CF","project_id":"736430079244816567","app_id":"116912301","api_key":"CgB6e3x9DJzMgRCmnT6dyUEkp6UsIfddb6l3w0ZEXzeiRMHEFi3400Z5fJ5qaHneU0OrAI/JRpk+DMGVs3QpUxlI","package_name":"com.cloudsolutions.HMGPatientApp"},"oauth_client":{"client_id":"116912301","client_type":1},"app_info":{"app_id":"116912301","package_name":"com.cloudsolutions.HMGPatientApp"},"service":{"analytics":{"collector_url":"datacollector-drcn.dt.hicloud.com,datacollector-drcn.dt.dbankcloud.cn","collector_url_cn":"datacollector-drcn.dt.hicloud.com,datacollector-drcn.dt.dbankcloud.cn","collector_url_de":"datacollector-dre.dt.hicloud.com,datacollector-dre.dt.dbankcloud.cn","collector_url_ru":"datacollector-drru.dt.dbankcloud.ru,datacollector-drru.dt.hicloud.com","collector_url_sg":"datacollector-dra.dt.hicloud.com,datacollector-dra.dt.dbankcloud.cn","resource_id":"p1","channel_id":""},"ml":{"mlservice_url":"ml-api-drcn.ai.dbankcloud.com,ml-api-drcn.ai.dbankcloud.cn"},"cloudstorage":{"storage_url":"https://agc-storage-drcn.platform.dbankcloud.cn","storage_url_ru":"https://agc-storage-drru.cloud.huawei.ru","storage_url_sg":"https://ops-dra.agcstorage.link","storage_url_de":"https://ops-dre.agcstorage.link","storage_url_cn":"https://agc-storage-drcn.platform.dbankcloud.cn","storage_url_ru_back":"https://agc-storage-drru.cloud.huawei.ru","storage_url_sg_back":"https://agc-storage-dra.cloud.huawei.asia","storage_url_de_back":"https://agc-storage-dre.cloud.huawei.eu","storage_url_cn_back":"https://agc-storage-drcn.cloud.huawei.com.cn"},"search":{"url":"https://search-drcn.cloud.huawei.com"},"edukit":{"edu_url":"edukit.cloud.huawei.com.cn","dh_url":"edukit.cloud.huawei.com.cn"}},"region":"CN","configuration_version":"3.0","appInfos":[{"package_name":"com.cloudsolutions.HMGPatientApp","client":{"app_id":"116912301"},"app_info":{"package_name":"com.cloudsolutions.HMGPatientApp","app_id":"116912301"},"oauth_client":{"client_type":1,"client_id":"116912301"}},{"package_name":"com.ejada.hmg","client":{"app_id":"102857389"},"app_info":{"package_name":"com.ejada.hmg","app_id":"102857389"},"oauth_client":{"client_type":1,"client_id":"102857389"}}]}
|
||||||
@ -1,74 +1 @@
|
|||||||
{
|
{"agcgw":{"url":"connect-drcn.dbankcloud.cn","backurl":"connect-drcn.hispace.hicloud.com","websocketurl":"connect-ws-drcn.hispace.dbankcloud.cn","websocketbackurl":"connect-ws-drcn.hispace.dbankcloud.com"},"agcgw_all":{"SG":"connect-dra.dbankcloud.cn","SG_back":"connect-dra.hispace.hicloud.com","CN":"connect-drcn.dbankcloud.cn","CN_back":"connect-drcn.hispace.hicloud.com","RU":"connect-drru.hispace.dbankcloud.ru","RU_back":"connect-drru.hispace.dbankcloud.cn","DE":"connect-dre.dbankcloud.cn","DE_back":"connect-dre.hispace.hicloud.com"},"websocketgw_all":{"SG":"connect-ws-dra.hispace.dbankcloud.cn","SG_back":"connect-ws-dra.hispace.dbankcloud.com","CN":"connect-ws-drcn.hispace.dbankcloud.cn","CN_back":"connect-ws-drcn.hispace.dbankcloud.com","RU":"connect-ws-drru.hispace.dbankcloud.ru","RU_back":"connect-ws-drru.hispace.dbankcloud.cn","DE":"connect-ws-dre.hispace.dbankcloud.cn","DE_back":"connect-ws-dre.hispace.dbankcloud.com"},"client":{"cp_id":"2640966000002322881","product_id":"736430079244816567","client_id":"563735388191982656","client_secret":"650C7C799812AFFD53A10C7756CF05FB9F215A7E49032ABA8EBF3E14B77535CF","project_id":"736430079244816567","app_id":"116912301","api_key":"CgB6e3x9DJzMgRCmnT6dyUEkp6UsIfddb6l3w0ZEXzeiRMHEFi3400Z5fJ5qaHneU0OrAI/JRpk+DMGVs3QpUxlI","package_name":"com.cloudsolutions.HMGPatientApp"},"oauth_client":{"client_id":"116912301","client_type":1},"app_info":{"app_id":"116912301","package_name":"com.cloudsolutions.HMGPatientApp"},"service":{"analytics":{"collector_url":"datacollector-drcn.dt.hicloud.com,datacollector-drcn.dt.dbankcloud.cn","collector_url_cn":"datacollector-drcn.dt.hicloud.com,datacollector-drcn.dt.dbankcloud.cn","collector_url_de":"datacollector-dre.dt.hicloud.com,datacollector-dre.dt.dbankcloud.cn","collector_url_ru":"datacollector-drru.dt.dbankcloud.ru,datacollector-drru.dt.hicloud.com","collector_url_sg":"datacollector-dra.dt.hicloud.com,datacollector-dra.dt.dbankcloud.cn","resource_id":"p1","channel_id":""},"ml":{"mlservice_url":"ml-api-drcn.ai.dbankcloud.com,ml-api-drcn.ai.dbankcloud.cn"},"cloudstorage":{"storage_url":"https://agc-storage-drcn.platform.dbankcloud.cn","storage_url_ru":"https://agc-storage-drru.cloud.huawei.ru","storage_url_sg":"https://ops-dra.agcstorage.link","storage_url_de":"https://ops-dre.agcstorage.link","storage_url_cn":"https://agc-storage-drcn.platform.dbankcloud.cn","storage_url_ru_back":"https://agc-storage-drru.cloud.huawei.ru","storage_url_sg_back":"https://agc-storage-dra.cloud.huawei.asia","storage_url_de_back":"https://agc-storage-dre.cloud.huawei.eu","storage_url_cn_back":"https://agc-storage-drcn.cloud.huawei.com.cn"},"search":{"url":"https://search-drcn.cloud.huawei.com"},"edukit":{"edu_url":"edukit.cloud.huawei.com.cn","dh_url":"edukit.cloud.huawei.com.cn"}},"region":"CN","configuration_version":"3.0","appInfos":[{"package_name":"com.cloudsolutions.HMGPatientApp","client":{"app_id":"116912301"},"app_info":{"package_name":"com.cloudsolutions.HMGPatientApp","app_id":"116912301"},"oauth_client":{"client_type":1,"client_id":"116912301"}},{"package_name":"com.ejada.hmg","client":{"app_id":"102857389"},"app_info":{"package_name":"com.ejada.hmg","app_id":"102857389"},"oauth_client":{"client_type":1,"client_id":"102857389"}}]}
|
||||||
"agcgw":{
|
|
||||||
"backurl":"connect-drcn.hispace.hicloud.com",
|
|
||||||
"url":"connect-drcn.dbankcloud.cn",
|
|
||||||
"websocketbackurl":"connect-ws-drcn.hispace.dbankcloud.com",
|
|
||||||
"websocketurl":"connect-ws-drcn.hispace.dbankcloud.cn"
|
|
||||||
},
|
|
||||||
"agcgw_all":{
|
|
||||||
"CN":"connect-drcn.dbankcloud.cn",
|
|
||||||
"CN_back":"connect-drcn.hispace.hicloud.com",
|
|
||||||
"DE":"connect-dre.dbankcloud.cn",
|
|
||||||
"DE_back":"connect-dre.hispace.hicloud.com",
|
|
||||||
"RU":"connect-drru.dbankcloud.cn",
|
|
||||||
"RU_back":"connect-drru.hispace.hicloud.com",
|
|
||||||
"SG":"connect-dra.dbankcloud.cn",
|
|
||||||
"SG_back":"connect-dra.hispace.hicloud.com"
|
|
||||||
},
|
|
||||||
"client":{
|
|
||||||
"cp_id":"2640966000002322881",
|
|
||||||
"product_id":"736430079244816567",
|
|
||||||
"client_id":"563735388191982656",
|
|
||||||
"client_secret":"650C7C799812AFFD53A10C7756CF05FB9F215A7E49032ABA8EBF3E14B77535CF",
|
|
||||||
"project_id":"736430079244816567",
|
|
||||||
"app_id":"102857389",
|
|
||||||
"api_key":"CgB6e3x9DJzMgRCmnT6dyUEkp6UsIfddb6l3w0ZEXzeiRMHEFi3400Z5fJ5qaHneU0OrAI/JRpk+DMGVs3QpUxlI",
|
|
||||||
"package_name":"com.ejada.hmg"
|
|
||||||
},
|
|
||||||
"oauth_client":{
|
|
||||||
"client_id":"102857389",
|
|
||||||
"client_type":1
|
|
||||||
},
|
|
||||||
"app_info":{
|
|
||||||
"app_id":"102857389",
|
|
||||||
"package_name":"com.ejada.hmg"
|
|
||||||
},
|
|
||||||
"service":{
|
|
||||||
"analytics":{
|
|
||||||
"collector_url":"datacollector-drcn.dt.hicloud.com,datacollector-drcn.dt.dbankcloud.cn",
|
|
||||||
"collector_url_ru":"datacollector-drru.dt.hicloud.com,datacollector-drru.dt.dbankcloud.cn",
|
|
||||||
"collector_url_sg":"datacollector-dra.dt.hicloud.com,datacollector-dra.dt.dbankcloud.cn",
|
|
||||||
"collector_url_de":"datacollector-dre.dt.hicloud.com,datacollector-dre.dt.dbankcloud.cn",
|
|
||||||
"collector_url_cn":"datacollector-drcn.dt.hicloud.com,datacollector-drcn.dt.dbankcloud.cn",
|
|
||||||
"resource_id":"p1",
|
|
||||||
"channel_id":""
|
|
||||||
},
|
|
||||||
"search":{
|
|
||||||
"url":"https://search-drcn.cloud.huawei.com"
|
|
||||||
},
|
|
||||||
"cloudstorage":{
|
|
||||||
"storage_url":"https://agc-storage-drcn.platform.dbankcloud.cn"
|
|
||||||
},
|
|
||||||
"ml":{
|
|
||||||
"mlservice_url":"ml-api-drcn.ai.dbankcloud.com,ml-api-drcn.ai.dbankcloud.cn"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"region":"CN",
|
|
||||||
"configuration_version":"3.0",
|
|
||||||
"appInfos":[
|
|
||||||
{
|
|
||||||
"package_name":"com.ejada.hmg",
|
|
||||||
"client":{
|
|
||||||
"app_id":"102857389"
|
|
||||||
},
|
|
||||||
"app_info":{
|
|
||||||
"package_name":"com.ejada.hmg",
|
|
||||||
"app_id":"102857389"
|
|
||||||
},
|
|
||||||
"oauth_client":{
|
|
||||||
"client_type":1,
|
|
||||||
"client_id":"102857389"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@ -1,5 +1,5 @@
|
|||||||
//package com.cloud.diplomaticquarterapp
|
//package com.cloud.diplomaticquarterapp
|
||||||
package com.ejada.hmg
|
package com.cloudsolutions.HMGPatientApp
|
||||||
|
|
||||||
|
|
||||||
import io.flutter.app.FlutterApplication
|
import io.flutter.app.FlutterApplication
|
||||||
@ -1,15 +1,14 @@
|
|||||||
package com.ejada.hmg.penguin
|
package com.cloudsolutions.HMGPatientApp
|
||||||
|
|
||||||
import com.ejada.hmg.MainActivity
|
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
import com.ejada.hmg.penguin.PenguinView
|
import com.cloudsolutions.HMGPatientApp.penguin.PenguinView
|
||||||
import io.flutter.embedding.engine.FlutterEngine
|
import io.flutter.embedding.engine.FlutterEngine
|
||||||
import io.flutter.plugin.common.MethodCall
|
import io.flutter.plugin.common.MethodCall
|
||||||
import com.ejada.hmg.PermissionManager.HostNotificationPermissionManager
|
import com.cloudsolutions.HMGPatientApp.PermissionManager.HostNotificationPermissionManager
|
||||||
import com.ejada.hmg.PermissionManager.HostBgLocationManager
|
import com.cloudsolutions.HMGPatientApp.PermissionManager.HostBgLocationManager
|
||||||
import com.ejada.hmg.PermissionManager.HostGpsStateManager
|
import com.cloudsolutions.HMGPatientApp.PermissionManager.HostGpsStateManager
|
||||||
import io.flutter.plugin.common.MethodChannel
|
import io.flutter.plugin.common.MethodChannel
|
||||||
|
|
||||||
class PenguinInPlatformBridge(
|
class PenguinInPlatformBridge(
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.ejada.hmg.PermissionManager;
|
package com.cloudsolutions.HMGPatientApp.PermissionManager;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.ejada.hmg.PermissionManager;
|
package com.cloudsolutions.HMGPatientApp.PermissionManager;
|
||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.ejada.hmg.PermissionManager;
|
package com.cloudsolutions.HMGPatientApp.PermissionManager;
|
||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.ejada.hmg.PermissionManager;
|
package com.cloudsolutions.HMGPatientApp.PermissionManager;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
@ -1,7 +1,6 @@
|
|||||||
package com.ejada.hmg.PermissionManager
|
package com.cloudsolutions.HMGPatientApp.PermissionManager
|
||||||
|
|
||||||
import android.Manifest
|
import android.Manifest
|
||||||
import android.os.Build
|
|
||||||
|
|
||||||
object PermissionHelper {
|
object PermissionHelper {
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.ejada.hmg.PermissionManager
|
package com.cloudsolutions.HMGPatientApp.PermissionManager
|
||||||
|
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.ejada.hmg.PermissionManager
|
package com.cloudsolutions.HMGPatientApp.PermissionManager
|
||||||
|
|
||||||
// PermissionResultReceiver.kt
|
// PermissionResultReceiver.kt
|
||||||
import android.content.BroadcastReceiver
|
import android.content.BroadcastReceiver
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.ejada.hmg.penguin
|
package com.cloudsolutions.HMGPatientApp.penguin
|
||||||
|
|
||||||
enum class PenguinMethod {
|
enum class PenguinMethod {
|
||||||
// initializePenguin("initializePenguin"),
|
// initializePenguin("initializePenguin"),
|
||||||
@ -0,0 +1,402 @@
|
|||||||
|
package com.cloudsolutions.HMGPatientApp.watch.samsung_watch
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import android.os.Build
|
||||||
|
import android.util.Log
|
||||||
|
import androidx.annotation.RequiresApi
|
||||||
|
import com.cloudsolutions.HMGPatientApp.MainActivity
|
||||||
|
import com.cloudsolutions.HMGPatientApp.watch.samsung_watch.model.Vitals
|
||||||
|
import io.flutter.embedding.engine.FlutterEngine
|
||||||
|
import io.flutter.plugin.common.MethodCall
|
||||||
|
import com.samsung.android.sdk.health.data.HealthDataService
|
||||||
|
import com.samsung.android.sdk.health.data.HealthDataStore
|
||||||
|
import com.samsung.android.sdk.health.data.data.AggregatedData
|
||||||
|
import com.samsung.android.sdk.health.data.data.HealthDataPoint
|
||||||
|
import com.samsung.android.sdk.health.data.permission.AccessType
|
||||||
|
import com.samsung.android.sdk.health.data.permission.Permission
|
||||||
|
import com.samsung.android.sdk.health.data.request.DataType
|
||||||
|
import com.samsung.android.sdk.health.data.request.DataTypes
|
||||||
|
import com.samsung.android.sdk.health.data.request.LocalTimeFilter
|
||||||
|
import com.samsung.android.sdk.health.data.request.LocalTimeGroup
|
||||||
|
import com.samsung.android.sdk.health.data.request.LocalTimeGroupUnit
|
||||||
|
import com.samsung.android.sdk.health.data.request.Ordering
|
||||||
|
import com.samsung.android.sdk.health.data.response.DataResponse
|
||||||
|
import io.flutter.plugin.common.MethodChannel
|
||||||
|
import kotlinx.coroutines.CoroutineScope
|
||||||
|
import kotlinx.coroutines.Dispatchers
|
||||||
|
import kotlinx.coroutines.SupervisorJob
|
||||||
|
import kotlinx.coroutines.cancel
|
||||||
|
import kotlinx.coroutines.launch
|
||||||
|
import java.time.LocalDateTime
|
||||||
|
import java.time.LocalTime
|
||||||
|
|
||||||
|
class SamsungWatch(
|
||||||
|
private var flutterEngine: FlutterEngine,
|
||||||
|
private var mainActivity: MainActivity
|
||||||
|
) {
|
||||||
|
|
||||||
|
private lateinit var channel: MethodChannel
|
||||||
|
private lateinit var dataStore: HealthDataStore
|
||||||
|
private val scope = CoroutineScope(SupervisorJob() + Dispatchers.IO)
|
||||||
|
private val TAG = "SamsungWatch"
|
||||||
|
|
||||||
|
|
||||||
|
private lateinit var vitals: MutableMap<String, List<Vitals>>
|
||||||
|
companion object {
|
||||||
|
private const val CHANNEL = "samsung_watch"
|
||||||
|
|
||||||
|
}
|
||||||
|
init{
|
||||||
|
create()
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequiresApi(Build.VERSION_CODES.O)
|
||||||
|
fun create() {
|
||||||
|
Log.d(TAG, "create: is called")
|
||||||
|
// openTok = OpenTok(mainActivity, flutterEngine)
|
||||||
|
channel = MethodChannel(flutterEngine.dartExecutor.binaryMessenger, CHANNEL)
|
||||||
|
channel.setMethodCallHandler { call: MethodCall, result: MethodChannel.Result ->
|
||||||
|
when (call.method) {
|
||||||
|
"init" -> {
|
||||||
|
Log.d(TAG, "onMethodCall: init called")
|
||||||
|
dataStore = HealthDataService.getStore(mainActivity)
|
||||||
|
vitals = mutableMapOf()
|
||||||
|
result.success("initialized")
|
||||||
|
}
|
||||||
|
|
||||||
|
"getPermission"->{
|
||||||
|
if(!this::dataStore.isInitialized)
|
||||||
|
result.error("DataStoreNotInitialized", "Please call init before requesting permissions", null)
|
||||||
|
val permSet = setOf(
|
||||||
|
Permission.of(DataTypes.HEART_RATE, AccessType.READ),
|
||||||
|
Permission.of(DataTypes.STEPS, AccessType.READ),
|
||||||
|
Permission.of(DataTypes.BLOOD_OXYGEN, AccessType.READ),
|
||||||
|
Permission.of(DataTypes.ACTIVITY_SUMMARY, AccessType.READ),
|
||||||
|
Permission.of(DataTypes.SLEEP, AccessType.READ),
|
||||||
|
Permission.of(DataTypes.BODY_TEMPERATURE, AccessType.READ),
|
||||||
|
Permission.of(DataTypes.EXERCISE, AccessType.READ),
|
||||||
|
// Permission.of(DataTypes.SKIN_TEMPERATURE, AccessType.READ),
|
||||||
|
// Permission.of(DataTypes.NUTRITION, AccessType.READ),
|
||||||
|
|
||||||
|
)
|
||||||
|
scope.launch {
|
||||||
|
try {
|
||||||
|
var granted = dataStore.getGrantedPermissions(permSet)
|
||||||
|
|
||||||
|
if (granted.containsAll(permSet)) {
|
||||||
|
result.success("Permission Granted")
|
||||||
|
return@launch
|
||||||
|
}
|
||||||
|
|
||||||
|
granted = dataStore.requestPermissions(permSet, mainActivity)
|
||||||
|
|
||||||
|
if (granted.containsAll(permSet)) {
|
||||||
|
result.success("Permission Granted") // adapt result as needed
|
||||||
|
return@launch
|
||||||
|
}
|
||||||
|
result.error("PermissionError", "Permission Not Granted", null) // adapt result as needed
|
||||||
|
} catch (e: Exception) {
|
||||||
|
Log.e(TAG, "create: getPermission failed", e)
|
||||||
|
result.error("PermissionError", e.message, null)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"getHeartRate"->{
|
||||||
|
val dateTime = LocalDateTime.now().with(LocalTime.MIDNIGHT).minusDays(365)
|
||||||
|
val localTimeFilter = LocalTimeFilter.of(dateTime, LocalDateTime.now())
|
||||||
|
val readRequest = DataTypes.HEART_RATE.readDataRequestBuilder
|
||||||
|
.setLocalTimeFilter(localTimeFilter)
|
||||||
|
.setOrdering(Ordering.DESC)
|
||||||
|
.build()
|
||||||
|
|
||||||
|
scope.launch {
|
||||||
|
val heartRateList = dataStore.readData(readRequest).dataList
|
||||||
|
processHeartVital(heartRateList)
|
||||||
|
Log.d("TAG"," the data is ${vitals}")
|
||||||
|
print("the data is ${vitals}")
|
||||||
|
result.success("Data is obtained")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
"getSleepData" -> {
|
||||||
|
val dateTime = LocalDateTime.now().with(LocalTime.MIDNIGHT).minusDays(365)
|
||||||
|
val localTimeFilter = LocalTimeFilter.of(dateTime, LocalDateTime.now())
|
||||||
|
val readRequest = DataTypes.SLEEP.readDataRequestBuilder
|
||||||
|
.setLocalTimeFilter(localTimeFilter)
|
||||||
|
.setOrdering(Ordering.ASC)
|
||||||
|
.build()
|
||||||
|
scope.launch {
|
||||||
|
val sleepData = dataStore.readData(readRequest).dataList
|
||||||
|
processSleepVital(sleepData)
|
||||||
|
print("the data is $vitals")
|
||||||
|
Log.d(TAG, "the data is $vitals")
|
||||||
|
result.success("Data is obtained")
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
"steps"->{
|
||||||
|
val dateTime = LocalDateTime.now().with(LocalTime.MIDNIGHT).minusDays(365)
|
||||||
|
val localTimeFilter = LocalTimeFilter.of(dateTime, LocalDateTime.now())
|
||||||
|
val localTimeGroup = LocalTimeGroup.of(LocalTimeGroupUnit.HOURLY, 1)
|
||||||
|
val aggregateRequest = DataType.StepsType.TOTAL.requestBuilder
|
||||||
|
.setLocalTimeFilterWithGroup(localTimeFilter, localTimeGroup)
|
||||||
|
.setOrdering(Ordering.ASC)
|
||||||
|
.build()
|
||||||
|
|
||||||
|
scope.launch {
|
||||||
|
val steps = dataStore.aggregateData(aggregateRequest)
|
||||||
|
processStepsCount(steps)
|
||||||
|
print("the data is $vitals")
|
||||||
|
Log.d(TAG, "the data is $vitals")
|
||||||
|
result.success("Data is obtained")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"activitySummary"->{
|
||||||
|
val dateTime = LocalDateTime.now().with(LocalTime.MIDNIGHT).minusDays(365)
|
||||||
|
val localTimeFilter = LocalTimeFilter.of(dateTime, LocalDateTime.now())
|
||||||
|
val localTimeGroup = LocalTimeGroup.of(LocalTimeGroupUnit.HOURLY, 1)
|
||||||
|
val readRequest = DataType.ActivitySummaryType.TOTAL_ACTIVE_CALORIES_BURNED
|
||||||
|
.requestBuilder
|
||||||
|
.setLocalTimeFilterWithGroup(localTimeFilter, localTimeGroup)
|
||||||
|
.setOrdering(Ordering.DESC)
|
||||||
|
.build()
|
||||||
|
|
||||||
|
scope.launch {
|
||||||
|
val activityResult = dataStore.aggregateData(readRequest).dataList
|
||||||
|
processActivity(activityResult)
|
||||||
|
Log.d("TAG"," the data is ${vitals}")
|
||||||
|
print("the data is ${vitals}")
|
||||||
|
result.success("Data is obtained")
|
||||||
|
}
|
||||||
|
|
||||||
|
// val readRequest = DataTypes.EXERCISE.readDataRequestBuilder
|
||||||
|
// .setLocalTimeFilter(localTimeFilter)
|
||||||
|
// .build()
|
||||||
|
//
|
||||||
|
// scope.launch{
|
||||||
|
// try {
|
||||||
|
// val readResult = dataStore.readData(readRequest)
|
||||||
|
// val dataPoints = readResult.dataList
|
||||||
|
//
|
||||||
|
// processActivity(dataPoints)
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// } catch (e: Exception) {
|
||||||
|
// e.printStackTrace()
|
||||||
|
// }
|
||||||
|
// result.success("Data is obtained")
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
"bloodOxygen"->{
|
||||||
|
val dateTime = LocalDateTime.now().with(LocalTime.MIDNIGHT).minusDays(365)
|
||||||
|
val localTimeFilter = LocalTimeFilter.of(dateTime, LocalDateTime.now())
|
||||||
|
val readRequest = DataTypes.BLOOD_OXYGEN.readDataRequestBuilder
|
||||||
|
.setLocalTimeFilter(localTimeFilter)
|
||||||
|
.setOrdering(Ordering.DESC)
|
||||||
|
.build()
|
||||||
|
|
||||||
|
scope.launch {
|
||||||
|
val bloodOxygenList = dataStore.readData(readRequest).dataList
|
||||||
|
processBloodOxygen(bloodOxygenList)
|
||||||
|
Log.d("TAG"," the data is ${vitals}")
|
||||||
|
print("the data is ${vitals["bloodOxygen"]}")
|
||||||
|
result.success("Data is obtained")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
"bodyTemperature"->{
|
||||||
|
val dateTime = LocalDateTime.now().with(LocalTime.MIDNIGHT).minusDays(365)
|
||||||
|
val localTimeFilter = LocalTimeFilter.of(dateTime, LocalDateTime.now())
|
||||||
|
val readRequest = DataTypes.BODY_TEMPERATURE.readDataRequestBuilder
|
||||||
|
.setLocalTimeFilter(localTimeFilter)
|
||||||
|
.setOrdering(Ordering.DESC)
|
||||||
|
.build()
|
||||||
|
|
||||||
|
scope.launch {
|
||||||
|
val bodyTemperatureList = dataStore.readData(readRequest).dataList
|
||||||
|
processBodyTemperature(bodyTemperatureList)
|
||||||
|
Log.d("TAG"," the data is ${vitals}")
|
||||||
|
print("the data is ${vitals["bodyTemperature"]}")
|
||||||
|
result.success("Data is obtained")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"distance"->{
|
||||||
|
val dateTime = LocalDateTime.now().with(LocalTime.MIDNIGHT).minusDays(365)
|
||||||
|
val localTimeFilter = LocalTimeFilter.of(dateTime, LocalDateTime.now())
|
||||||
|
val localTimeGroup = LocalTimeGroup.of(LocalTimeGroupUnit.HOURLY, 1)
|
||||||
|
val readRequest = DataType.ActivitySummaryType.TOTAL_DISTANCE.requestBuilder
|
||||||
|
.setLocalTimeFilterWithGroup(localTimeFilter, localTimeGroup)
|
||||||
|
.setOrdering(Ordering.DESC)
|
||||||
|
.build()
|
||||||
|
|
||||||
|
scope.launch {
|
||||||
|
val activityResult = dataStore.aggregateData(readRequest).dataList
|
||||||
|
processDistance(activityResult)
|
||||||
|
Log.d("TAG"," the data is ${vitals}")
|
||||||
|
print("the data is ${vitals}")
|
||||||
|
result.success("Data is obtained")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"retrieveData"->{
|
||||||
|
if(vitals.isEmpty()){
|
||||||
|
result.error("NoDataFound", "No Data was obtained", null)
|
||||||
|
return@setMethodCallHandler
|
||||||
|
}
|
||||||
|
result.success("""
|
||||||
|
{
|
||||||
|
"heartRate": ${vitals["heartRate"]},
|
||||||
|
"steps": ${vitals["steps"]},
|
||||||
|
"sleep": ${vitals["sleep"]},
|
||||||
|
"activity": ${vitals["activity"]},
|
||||||
|
"bloodOxygen": ${vitals["bloodOxygen"]},
|
||||||
|
"bodyTemperature": ${vitals["bodyTemperature"]},
|
||||||
|
"distance": ${vitals["distance"]}
|
||||||
|
}
|
||||||
|
""".trimIndent())
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
"closeCoroutineScope"->{
|
||||||
|
destroy()
|
||||||
|
result.success("Coroutine Scope Cancelled")
|
||||||
|
}
|
||||||
|
|
||||||
|
else -> {
|
||||||
|
result.notImplemented()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun CoroutineScope.processDistance(activityResult: List<AggregatedData<Float>>) {
|
||||||
|
vitals["distance"] = mutableListOf()
|
||||||
|
activityResult.forEach { stepData ->
|
||||||
|
val vitalData = Vitals().apply {
|
||||||
|
|
||||||
|
value = stepData.value.toString()
|
||||||
|
timeStamp = stepData.startTime.toString()
|
||||||
|
}
|
||||||
|
(vitals["distance"] as MutableList).add(vitalData)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun CoroutineScope.processBodyTemperature( bodyTemperatureList :List<HealthDataPoint>) {
|
||||||
|
vitals["bodyTemperature"] = mutableListOf()
|
||||||
|
bodyTemperatureList.forEach { stepData ->
|
||||||
|
val vitalData = Vitals().apply {
|
||||||
|
value = stepData.getValue(DataType.BodyTemperatureType.BODY_TEMPERATURE).toString()
|
||||||
|
timeStamp = stepData.endTime.toString()
|
||||||
|
}
|
||||||
|
(vitals["bodyTemperature"] as MutableList).add(vitalData)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun CoroutineScope.processBloodOxygen( bloodOxygenList :List<HealthDataPoint>) {
|
||||||
|
vitals["bloodOxygen"] = mutableListOf()
|
||||||
|
bloodOxygenList.forEach { stepData ->
|
||||||
|
val vitalData = Vitals().apply {
|
||||||
|
value = stepData.getValue(DataType.BloodOxygenType.OXYGEN_SATURATION).toString()
|
||||||
|
timeStamp = stepData.endTime.toString()
|
||||||
|
}
|
||||||
|
(vitals["bloodOxygen"] as MutableList).add(vitalData)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// private fun CoroutineScope.processActivity(activityResult: List<AggregatedData<Float>>) {
|
||||||
|
//
|
||||||
|
// vitals["activity"] = mutableListOf()
|
||||||
|
// activityResult.forEach { stepData ->
|
||||||
|
// val vitalData = Vitals().apply {
|
||||||
|
//
|
||||||
|
// value = stepData.value.toString()
|
||||||
|
// timeStamp = stepData.startTime.toString()
|
||||||
|
// }
|
||||||
|
// (vitals["activity"] as MutableList).add(vitalData)
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
private fun CoroutineScope.processActivity(activityResult: List<AggregatedData<Float>>) {
|
||||||
|
|
||||||
|
vitals["activity"] = mutableListOf()
|
||||||
|
activityResult.forEach { stepData ->
|
||||||
|
val vitalData = Vitals().apply {
|
||||||
|
|
||||||
|
value = stepData.value.toString()
|
||||||
|
timeStamp = stepData.startTime.toString()
|
||||||
|
}
|
||||||
|
(vitals["activity"] as MutableList).add(vitalData)
|
||||||
|
}
|
||||||
|
|
||||||
|
// dataPoints.forEach { dataPoint ->
|
||||||
|
// val sessions = dataPoint.getValue(DataType.ExerciseType.SESSIONS)
|
||||||
|
//
|
||||||
|
// sessions?.forEach { session ->
|
||||||
|
//
|
||||||
|
// val exerciseSessionCalories = session.calories
|
||||||
|
// val vitalData = Vitals().apply {
|
||||||
|
// value = exerciseSessionCalories.toString()
|
||||||
|
// timeStamp = session.startTime.toString()
|
||||||
|
// }
|
||||||
|
// (vitals["activity"] as MutableList).add(vitalData)
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun CoroutineScope.processStepsCount(result: DataResponse<AggregatedData<Long>>) {
|
||||||
|
val stepCount = ArrayList<AggregatedData<Long>>()
|
||||||
|
var totalSteps: Long = 0
|
||||||
|
vitals["steps"] = mutableListOf()
|
||||||
|
result.dataList.forEach { stepData ->
|
||||||
|
val vitalData = Vitals().apply {
|
||||||
|
value = (stepData.value as Long).toString()
|
||||||
|
timeStamp = stepData.startTime.toString()
|
||||||
|
}
|
||||||
|
(vitals["steps"] as MutableList).add(vitalData)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun CoroutineScope.processSleepVital(sleepData: List<HealthDataPoint>) {
|
||||||
|
vitals["sleep"] = mutableListOf()
|
||||||
|
sleepData.forEach {
|
||||||
|
(vitals["sleep"] as MutableList).add(
|
||||||
|
Vitals().apply {
|
||||||
|
timeStamp = it.startTime.toString()
|
||||||
|
value = (it.getValue(DataType.SleepType.DURATION)?.toMillis().toString())
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private suspend fun CoroutineScope.processHeartVital(
|
||||||
|
heartRateList: List<HealthDataPoint>,
|
||||||
|
) {
|
||||||
|
vitals["heartRate"] = mutableListOf()
|
||||||
|
heartRateList.forEach {
|
||||||
|
(vitals["heartRate"] as MutableList).add(processHeartRateData(it))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun processHeartRateData(heartRateData: HealthDataPoint) =
|
||||||
|
Vitals().apply {
|
||||||
|
heartRateData.getValue(DataType.HeartRateType.MAX_HEART_RATE)?.let {
|
||||||
|
value = it.toString()
|
||||||
|
}
|
||||||
|
timeStamp = heartRateData.startTime.toString()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
fun destroy() {
|
||||||
|
scope.cancel()
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
package com.cloudsolutions.HMGPatientApp.watch.samsung_watch.model
|
||||||
|
|
||||||
|
data class Vitals(
|
||||||
|
var value : String = "",
|
||||||
|
var timeStamp :String = ""
|
||||||
|
){
|
||||||
|
override fun toString(): String {
|
||||||
|
return """{
|
||||||
|
"value": "$value",
|
||||||
|
"timeStamp": "$timeStamp"}
|
||||||
|
""".trimIndent()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 14 KiB |
@ -0,0 +1,274 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
package="com.cloudsolutions.HMGPatientApp">
|
||||||
|
<!--
|
||||||
|
io.flutter.app.FlutterApplication is an android.app.Application that
|
||||||
|
calls FlutterMain.startInitialization(this); in its onCreate method.
|
||||||
|
In most cases you can leave this as-is, but you if you want to provide
|
||||||
|
additional functionality it is fine to subclass or reimplement
|
||||||
|
FlutterApplication and put your custom class here.
|
||||||
|
-->
|
||||||
|
<uses-permission
|
||||||
|
android:name="android.permission.ACTIVITY_RECOGNITION"
|
||||||
|
tools:node="remove" />
|
||||||
|
<uses-permission
|
||||||
|
android:name="android.permission.READ_PHONE_STATE"
|
||||||
|
tools:node="remove" /> <!-- <uses-permission android:name="android.permission.BLUETOOTH" tools:node="remove"/> -->
|
||||||
|
<!-- <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" tools:node="remove"/> -->
|
||||||
|
<!-- <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" tools:node="remove"/> -->
|
||||||
|
<!-- <uses-permission android:name="android.permission.BLUETOOTH_SCAN" tools:node="remove"/> -->
|
||||||
|
<uses-permission
|
||||||
|
android:name="android.permission.BROADCAST_STICKY"
|
||||||
|
tools:node="remove" />
|
||||||
|
<uses-permission
|
||||||
|
android:name="com.google.android.gms.permission.AD_ID"
|
||||||
|
tools:node="remove" /> <!-- <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> -->
|
||||||
|
<uses-permission
|
||||||
|
android:name="android.permission.FOREGROUND_SERVICE"
|
||||||
|
tools:node="remove" />
|
||||||
|
<uses-permission
|
||||||
|
android:name="android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE"
|
||||||
|
tools:node="remove" />
|
||||||
|
<uses-permission
|
||||||
|
android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION"
|
||||||
|
tools:node="remove" />
|
||||||
|
<uses-permission
|
||||||
|
android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"
|
||||||
|
tools:node="remove" />
|
||||||
|
<uses-permission
|
||||||
|
android:name="android.permission.FOREGROUND_SERVICE_MICROPHONE"
|
||||||
|
tools:node="remove" />
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" tools:node="remove" />
|
||||||
|
|
||||||
|
<!-- Added by open_filex -->
|
||||||
|
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" tools:node="remove" />
|
||||||
|
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" tools:node="remove" />
|
||||||
|
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" tools:node="remove" />
|
||||||
|
|
||||||
|
<uses-permission
|
||||||
|
android:name="android.permission.ACCESS_BACKGROUND_LOCATION"
|
||||||
|
tools:node="remove" /> <!-- <uses-permission android:name="android.permission.INTERNET" /> -->
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH" />
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
|
||||||
|
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
|
||||||
|
<uses-permission android:name="android.permission.HIGH_SAMPLING_RATE_SENSORS" />
|
||||||
|
|
||||||
|
|
||||||
|
<uses-feature android:name="android.hardware.camera.any" />
|
||||||
|
|
||||||
|
<uses-permission android:name="android.permission.CAMERA" />
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
|
||||||
|
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
|
||||||
|
|
||||||
|
<uses-feature
|
||||||
|
android:name="android.hardware.sensor.stepcounter"
|
||||||
|
android:required="false"
|
||||||
|
tools:node="replace" />
|
||||||
|
<uses-feature
|
||||||
|
android:name="android.hardware.sensor.stepdetector"
|
||||||
|
android:required="false"
|
||||||
|
tools:node="replace" />
|
||||||
|
|
||||||
|
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
||||||
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
|
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
||||||
|
<uses-permission android:name="android.permission.VIBRATE" />
|
||||||
|
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
|
||||||
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||||
|
<uses-permission android:name="android.permission.CAMERA" />
|
||||||
|
|
||||||
|
<uses-feature android:name="android.hardware.camera.autofocus" />
|
||||||
|
<uses-feature
|
||||||
|
android:name="android.hardware.camera"
|
||||||
|
android:required="true" />
|
||||||
|
|
||||||
|
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
||||||
|
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
|
||||||
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||||
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||||
|
<uses-permission android:name="android.permission.READ_CALENDAR" />
|
||||||
|
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
|
||||||
|
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
|
||||||
|
|
||||||
|
<uses-permission android:name="android.permission.VIDEO_CAPTURE" />
|
||||||
|
<uses-permission android:name="android.permission.AUDIO_CAPTURE" />
|
||||||
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_PHONE_CALL" />
|
||||||
|
<uses-permission android:name="android.permission.VIBRATE" />
|
||||||
|
<uses-permission android:name="android.permission.MANAGE_OWN_CALLS" />
|
||||||
|
|
||||||
|
<uses-feature
|
||||||
|
android:name="android.hardware.location.network"
|
||||||
|
android:required="false" />
|
||||||
|
<uses-feature
|
||||||
|
android:name="android.hardware.location.gps"
|
||||||
|
android:required="false" />
|
||||||
|
|
||||||
|
<uses-permission android:name="com.huawei.appmarket.service.commondata.permission.GET_COMMON_DATA" /> <!-- <uses-permission android:name="android.permission.HIGH_SAMPLING_RATE_SENSORS" /> -->
|
||||||
|
<!-- Wifi Permissions -->
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||||
|
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <!-- <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> -->
|
||||||
|
<!-- Detect Reboot Permission -->
|
||||||
|
<!-- <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> -->
|
||||||
|
<queries>
|
||||||
|
<intent>
|
||||||
|
<action android:name="android.speech.RecognitionService" />
|
||||||
|
</intent>
|
||||||
|
|
||||||
|
<package android:name="com.whatsapp" />
|
||||||
|
<package android:name="com.whatsapp.w4b" />
|
||||||
|
</queries>
|
||||||
|
|
||||||
|
<application
|
||||||
|
android:foregroundServiceType="mediaPlayback|connectedDevice|dataSync"
|
||||||
|
android:name=".Application"
|
||||||
|
android:allowBackup="false"
|
||||||
|
android:icon="@mipmap/ic_launcher_local"
|
||||||
|
android:label="Dr. Alhabib Beta"
|
||||||
|
android:screenOrientation="sensorPortrait"
|
||||||
|
android:showOnLockScreen="true"
|
||||||
|
android:usesCleartextTraffic="true"
|
||||||
|
tools:replace="android:label">
|
||||||
|
<meta-data
|
||||||
|
android:name="com.huawei.hms.client.appid"
|
||||||
|
android:value="102857389"/>
|
||||||
|
<!-- <activity-->
|
||||||
|
<!-- android:name="com.cloud.hmg_patient_app.whatsapp.WhatsAppCodeActivity"-->
|
||||||
|
<!-- android:exported="true"-->
|
||||||
|
<!-- android:enabled="true"-->
|
||||||
|
<!-- android:launchMode="standard"-->
|
||||||
|
<!-- >-->
|
||||||
|
<!-- <intent-filter>-->
|
||||||
|
<!-- <action android:name="com.whatsapp.otp.OTP_RETRIEVED" />-->
|
||||||
|
<!-- </intent-filter>-->
|
||||||
|
<!-- </activity>-->
|
||||||
|
|
||||||
|
<meta-data
|
||||||
|
android:name="push_kit_auto_init_enabled"
|
||||||
|
android:value="true" />
|
||||||
|
|
||||||
|
<activity
|
||||||
|
android:name=".MainActivity"
|
||||||
|
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
||||||
|
android:enabled="true"
|
||||||
|
android:exported="true"
|
||||||
|
android:hardwareAccelerated="true"
|
||||||
|
android:launchMode="singleTop"
|
||||||
|
android:showOnLockScreen="true"
|
||||||
|
android:theme="@style/LaunchTheme"
|
||||||
|
android:windowSoftInputMode="adjustResize"
|
||||||
|
tools:node="merge">
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Specifies an Android theme to apply to this Activity as soon as
|
||||||
|
the Android process has started. This theme is visible to the user
|
||||||
|
while the Flutter UI initializes. After that, this theme continues
|
||||||
|
to determine the Window background behind the Flutter UI.
|
||||||
|
-->
|
||||||
|
<meta-data
|
||||||
|
android:name="io.flutter.embedding.android.NormalTheme"
|
||||||
|
android:resource="@style/NormalTheme" />
|
||||||
|
<!--
|
||||||
|
Displays an Android View that continues showing the launch screen
|
||||||
|
Drawable until Flutter paints its first frame, then this splash
|
||||||
|
screen fades out. A splash screen is useful to avoid any visual
|
||||||
|
gap between the end of Android's launch screen and the painting of
|
||||||
|
Flutter's first frame.
|
||||||
|
-->
|
||||||
|
<meta-data
|
||||||
|
android:name="io.flutter.embedding.android.SplashScreenDrawable"
|
||||||
|
android:resource="@drawable/launch_background" />
|
||||||
|
|
||||||
|
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.MAIN" />
|
||||||
|
|
||||||
|
<category android:name="android.intent.category.LAUNCHER" />
|
||||||
|
</intent-filter>
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="FLUTTER_NOTIFICATION_CLICK" />
|
||||||
|
|
||||||
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
|
</intent-filter>
|
||||||
|
</activity> <!-- <receiver android:name="com.dexterous.flutterlocalnotifications.ScheduledNotificationBootReceiver" android:exported="true"> -->
|
||||||
|
<!-- <intent-filter> -->
|
||||||
|
<!-- <action android:name="android.intent.action.BOOT_COMPLETED"/> -->
|
||||||
|
<!-- <action android:name="android.intent.action.MY_PACKAGE_REPLACED"/> -->
|
||||||
|
<!-- </intent-filter> -->
|
||||||
|
<!-- </receiver> -->
|
||||||
|
<!-- Geofencing -->
|
||||||
|
<!-- <service-->
|
||||||
|
<!-- android:name=".geofence.intent_receivers.GeofenceTransitionsJobIntentService"-->
|
||||||
|
<!-- android:exported="true"-->
|
||||||
|
<!-- android:permission="android.permission.BIND_JOB_SERVICE" />-->
|
||||||
|
|
||||||
|
<!-- <receiver-->
|
||||||
|
<!-- android:name=".geofence.intent_receivers.GeofenceBroadcastReceiver"-->
|
||||||
|
<!-- android:enabled="true"-->
|
||||||
|
<!-- android:exported="false" />-->
|
||||||
|
<!-- <receiver-->
|
||||||
|
<!-- android:name=".geofence.intent_receivers.GeofencingRebootBroadcastReceiver"-->
|
||||||
|
<!-- android:enabled="true"-->
|
||||||
|
<!-- android:exported="false">-->
|
||||||
|
<!-- <intent-filter>-->
|
||||||
|
<!-- <action android:name="android.intent.action.BOOT_COMPLETED" />-->
|
||||||
|
<!-- <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />-->
|
||||||
|
<!-- </intent-filter>-->
|
||||||
|
<!-- </receiver>-->
|
||||||
|
<!-- <receiver-->
|
||||||
|
<!-- android:name=".geofence.intent_receivers.LocationProviderChangeReceiver"-->
|
||||||
|
<!-- android:exported="false">-->
|
||||||
|
<!-- <intent-filter>-->
|
||||||
|
<!-- <action android:name="android.location.PROVIDERS_CHANGED" />-->
|
||||||
|
<!-- </intent-filter>-->
|
||||||
|
<!-- </receiver>-->
|
||||||
|
|
||||||
|
<!-- <service-->
|
||||||
|
<!-- android:name=".geofence.intent_receivers.ReregisterGeofenceJobService"-->
|
||||||
|
<!-- android:exported="true"-->
|
||||||
|
<!-- android:permission="android.permission.BIND_JOB_SERVICE" /> <!– Geofencing –>-->
|
||||||
|
<!--
|
||||||
|
Huawei Push Notifications
|
||||||
|
Set push kit auto enable to true (for obtaining the token on initialize)
|
||||||
|
-->
|
||||||
|
<!-- <meta-data -->
|
||||||
|
<!-- android:name="push_kit_auto_init_enabled" -->
|
||||||
|
<!-- android:value="true" /> -->
|
||||||
|
<!-- These receivers are for sending scheduled local notifications -->
|
||||||
|
<!-- <receiver-->
|
||||||
|
<!-- android:name="com.huawei.hms.flutter.push.receiver.local.HmsLocalNotificationBootEventReceiver"-->
|
||||||
|
<!-- android:exported="false">-->
|
||||||
|
<!-- <intent-filter>-->
|
||||||
|
<!-- <action android:name="android.intent.action.BOOT_COMPLETED" />-->
|
||||||
|
<!-- </intent-filter>-->
|
||||||
|
<!-- </receiver>-->
|
||||||
|
<!-- <receiver-->
|
||||||
|
<!-- android:name="com.huawei.hms.flutter.push.receiver.local.HmsLocalNotificationScheduledPublisher"-->
|
||||||
|
<!-- android:enabled="true"-->
|
||||||
|
<!-- android:exported="false" />-->
|
||||||
|
<!-- <receiver-->
|
||||||
|
<!-- android:name="com.huawei.hms.flutter.push.receiver.BackgroundMessageBroadcastReceiver"-->
|
||||||
|
<!-- android:enabled="true"-->
|
||||||
|
<!-- android:exported="true">-->
|
||||||
|
<!-- <intent-filter>-->
|
||||||
|
<!-- <action android:name="com.huawei.hms.flutter.push.receiver.BACKGROUND_REMOTE_MESSAGE" />-->
|
||||||
|
<!-- </intent-filter>-->
|
||||||
|
<!-- </receiver> <!– Huawei Push Notifications –>-->
|
||||||
|
<meta-data
|
||||||
|
android:name="com.google.android.geo.API_KEY"
|
||||||
|
android:value="AIzaSyB6TERnxIr0yJ3qG4ULBZbu0sAD4tGqtng" />
|
||||||
|
<!--
|
||||||
|
Don't delete the meta-data below.
|
||||||
|
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java
|
||||||
|
-->
|
||||||
|
<meta-data
|
||||||
|
android:name="flutterEmbedding"
|
||||||
|
android:value="2" />
|
||||||
|
</application>
|
||||||
|
|
||||||
|
</manifest>
|
||||||
@ -0,0 +1,84 @@
|
|||||||
|
package com.ejada.hmg
|
||||||
|
|
||||||
|
import android.content.Intent
|
||||||
|
import android.content.pm.PackageManager
|
||||||
|
import android.os.Build
|
||||||
|
import android.util.Log
|
||||||
|
import android.view.WindowManager
|
||||||
|
import androidx.annotation.NonNull
|
||||||
|
import androidx.annotation.Nullable
|
||||||
|
import androidx.annotation.RequiresApi
|
||||||
|
import com.ejada.hmg.penguin.PenguinInPlatformBridge
|
||||||
|
import com.ejada.hmg.watch.huawei.HuaweiWatch
|
||||||
|
import com.ejada.hmg.watch.huawei.samsung_watch.SamsungWatch
|
||||||
|
import com.huawei.hms.hihealth.result.HealthKitAuthResult
|
||||||
|
import com.huawei.hms.support.api.entity.auth.Scope
|
||||||
|
import io.flutter.embedding.android.FlutterFragmentActivity
|
||||||
|
import io.flutter.embedding.engine.FlutterEngine
|
||||||
|
import io.flutter.plugins.GeneratedPluginRegistrant
|
||||||
|
|
||||||
|
|
||||||
|
class MainActivity: FlutterFragmentActivity() {
|
||||||
|
|
||||||
|
private var huaweiWatch : HuaweiWatch? = null
|
||||||
|
@RequiresApi(Build.VERSION_CODES.O)
|
||||||
|
override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
|
||||||
|
GeneratedPluginRegistrant.registerWith(flutterEngine);
|
||||||
|
// Create Flutter Platform Bridge
|
||||||
|
this.window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED or WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON or WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD or WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON)
|
||||||
|
|
||||||
|
PenguinInPlatformBridge(flutterEngine, this).create()
|
||||||
|
SamsungWatch(flutterEngine, this)
|
||||||
|
huaweiWatch = HuaweiWatch(flutterEngine, this)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onRequestPermissionsResult(
|
||||||
|
requestCode: Int,
|
||||||
|
permissions: Array<out String>,
|
||||||
|
grantResults: IntArray
|
||||||
|
) {
|
||||||
|
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
|
||||||
|
|
||||||
|
val granted = grantResults.all { it == PackageManager.PERMISSION_GRANTED }
|
||||||
|
val intent = Intent("PERMISSION_RESULT_ACTION").apply {
|
||||||
|
putExtra("PERMISSION_GRANTED", granted)
|
||||||
|
}
|
||||||
|
sendBroadcast(intent)
|
||||||
|
|
||||||
|
// Log the request code and permission results
|
||||||
|
Log.d("PermissionsResult", "Request Code: $requestCode")
|
||||||
|
Log.d("PermissionsResult", "Permissions: ${permissions.joinToString()}")
|
||||||
|
Log.d("PermissionsResult", "Grant Results: ${grantResults.joinToString()}")
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onResume() {
|
||||||
|
super.onResume()
|
||||||
|
}
|
||||||
|
|
||||||
|
// override fun onActivityResult(requestCode: Int, resultCode: Int, @Nullable data: Intent?) {
|
||||||
|
// super.onActivityResult(requestCode, resultCode, data)
|
||||||
|
//
|
||||||
|
// // Process only the response result of the authorization process.
|
||||||
|
// if (requestCode == 1002) {
|
||||||
|
// // Obtain the authorization response result from the intent.
|
||||||
|
// val result: HealthKitAuthResult? = huaweiWatch?.mSettingController?.parseHealthKitAuthResultFromIntent(data)
|
||||||
|
// if (result == null) {
|
||||||
|
// Log.w(huaweiWatch?.TAG, "authorization fail")
|
||||||
|
// return
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if (result.isSuccess) {
|
||||||
|
// Log.i(huaweiWatch?.TAG, "authorization success")
|
||||||
|
// if (result.getAuthAccount() != null && result.authAccount.authorizedScopes != null) {
|
||||||
|
// val authorizedScopes: MutableSet<Scope?> = result.authAccount.authorizedScopes
|
||||||
|
// if(authorizedScopes.isNotEmpty()) {
|
||||||
|
// huaweiWatch?.getHealthAppAuthorization()
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
// Log.w("MainActivty", "authorization fail, errorCode:" + result.getErrorCode())
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
}
|
||||||
@ -0,0 +1,402 @@
|
|||||||
|
package com.ejada.hmg.watch.huawei.samsung_watch
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import com.ejada.hmg.MainActivity
|
||||||
|
import android.os.Build
|
||||||
|
import android.util.Log
|
||||||
|
import androidx.annotation.RequiresApi
|
||||||
|
import io.flutter.embedding.engine.FlutterEngine
|
||||||
|
import io.flutter.plugin.common.MethodCall
|
||||||
|
import com.ejada.hmg.watch.huawei.samsung_watch.model.Vitals
|
||||||
|
import com.samsung.android.sdk.health.data.HealthDataService
|
||||||
|
import com.samsung.android.sdk.health.data.HealthDataStore
|
||||||
|
import com.samsung.android.sdk.health.data.data.AggregatedData
|
||||||
|
import com.samsung.android.sdk.health.data.data.HealthDataPoint
|
||||||
|
import com.samsung.android.sdk.health.data.permission.AccessType
|
||||||
|
import com.samsung.android.sdk.health.data.permission.Permission
|
||||||
|
import com.samsung.android.sdk.health.data.request.DataType
|
||||||
|
import com.samsung.android.sdk.health.data.request.DataTypes
|
||||||
|
import com.samsung.android.sdk.health.data.request.LocalTimeFilter
|
||||||
|
import com.samsung.android.sdk.health.data.request.LocalTimeGroup
|
||||||
|
import com.samsung.android.sdk.health.data.request.LocalTimeGroupUnit
|
||||||
|
import com.samsung.android.sdk.health.data.request.Ordering
|
||||||
|
import com.samsung.android.sdk.health.data.response.DataResponse
|
||||||
|
import io.flutter.plugin.common.MethodChannel
|
||||||
|
import kotlinx.coroutines.CoroutineScope
|
||||||
|
import kotlinx.coroutines.Dispatchers
|
||||||
|
import kotlinx.coroutines.SupervisorJob
|
||||||
|
import kotlinx.coroutines.cancel
|
||||||
|
import kotlinx.coroutines.launch
|
||||||
|
import java.time.LocalDateTime
|
||||||
|
import java.time.LocalTime
|
||||||
|
|
||||||
|
class SamsungWatch(
|
||||||
|
private var flutterEngine: FlutterEngine,
|
||||||
|
private var mainActivity: MainActivity
|
||||||
|
) {
|
||||||
|
|
||||||
|
private lateinit var channel: MethodChannel
|
||||||
|
private lateinit var dataStore: HealthDataStore
|
||||||
|
private val scope = CoroutineScope(SupervisorJob() + Dispatchers.IO)
|
||||||
|
private val TAG = "SamsungWatch"
|
||||||
|
|
||||||
|
|
||||||
|
private lateinit var vitals: MutableMap<String, List<Vitals>>
|
||||||
|
companion object {
|
||||||
|
private const val CHANNEL = "samsung_watch"
|
||||||
|
|
||||||
|
}
|
||||||
|
init{
|
||||||
|
create()
|
||||||
|
}
|
||||||
|
|
||||||
|
@RequiresApi(Build.VERSION_CODES.O)
|
||||||
|
fun create() {
|
||||||
|
Log.d(TAG, "create: is called")
|
||||||
|
// openTok = OpenTok(mainActivity, flutterEngine)
|
||||||
|
channel = MethodChannel(flutterEngine.dartExecutor.binaryMessenger, CHANNEL)
|
||||||
|
channel.setMethodCallHandler { call: MethodCall, result: MethodChannel.Result ->
|
||||||
|
when (call.method) {
|
||||||
|
"init" -> {
|
||||||
|
Log.d(TAG, "onMethodCall: init called")
|
||||||
|
dataStore = HealthDataService.getStore(mainActivity)
|
||||||
|
vitals = mutableMapOf()
|
||||||
|
result.success("initialized")
|
||||||
|
}
|
||||||
|
|
||||||
|
"getPermission"->{
|
||||||
|
if(!this::dataStore.isInitialized)
|
||||||
|
result.error("DataStoreNotInitialized", "Please call init before requesting permissions", null)
|
||||||
|
val permSet = setOf(
|
||||||
|
Permission.of(DataTypes.HEART_RATE, AccessType.READ),
|
||||||
|
Permission.of(DataTypes.STEPS, AccessType.READ),
|
||||||
|
Permission.of(DataTypes.BLOOD_OXYGEN, AccessType.READ),
|
||||||
|
Permission.of(DataTypes.ACTIVITY_SUMMARY, AccessType.READ),
|
||||||
|
Permission.of(DataTypes.SLEEP, AccessType.READ),
|
||||||
|
Permission.of(DataTypes.BODY_TEMPERATURE, AccessType.READ),
|
||||||
|
Permission.of(DataTypes.EXERCISE, AccessType.READ),
|
||||||
|
// Permission.of(DataTypes.SKIN_TEMPERATURE, AccessType.READ),
|
||||||
|
// Permission.of(DataTypes.NUTRITION, AccessType.READ),
|
||||||
|
|
||||||
|
)
|
||||||
|
scope.launch {
|
||||||
|
try {
|
||||||
|
var granted = dataStore.getGrantedPermissions(permSet)
|
||||||
|
|
||||||
|
if (granted.containsAll(permSet)) {
|
||||||
|
result.success("Permission Granted")
|
||||||
|
return@launch
|
||||||
|
}
|
||||||
|
|
||||||
|
granted = dataStore.requestPermissions(permSet, mainActivity)
|
||||||
|
|
||||||
|
if (granted.containsAll(permSet)) {
|
||||||
|
result.success("Permission Granted") // adapt result as needed
|
||||||
|
return@launch
|
||||||
|
}
|
||||||
|
result.error("PermissionError", "Permission Not Granted", null) // adapt result as needed
|
||||||
|
} catch (e: Exception) {
|
||||||
|
Log.e(TAG, "create: getPermission failed", e)
|
||||||
|
result.error("PermissionError", e.message, null)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"getHeartRate"->{
|
||||||
|
val dateTime = LocalDateTime.now().with(LocalTime.MIDNIGHT).minusDays(365)
|
||||||
|
val localTimeFilter = LocalTimeFilter.of(dateTime, LocalDateTime.now())
|
||||||
|
val readRequest = DataTypes.HEART_RATE.readDataRequestBuilder
|
||||||
|
.setLocalTimeFilter(localTimeFilter)
|
||||||
|
.setOrdering(Ordering.DESC)
|
||||||
|
.build()
|
||||||
|
|
||||||
|
scope.launch {
|
||||||
|
val heartRateList = dataStore.readData(readRequest).dataList
|
||||||
|
processHeartVital(heartRateList)
|
||||||
|
Log.d("TAG"," the data is ${vitals}")
|
||||||
|
print("the data is ${vitals}")
|
||||||
|
result.success("Data is obtained")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
"getSleepData" -> {
|
||||||
|
val dateTime = LocalDateTime.now().with(LocalTime.MIDNIGHT).minusDays(365)
|
||||||
|
val localTimeFilter = LocalTimeFilter.of(dateTime, LocalDateTime.now())
|
||||||
|
val readRequest = DataTypes.SLEEP.readDataRequestBuilder
|
||||||
|
.setLocalTimeFilter(localTimeFilter)
|
||||||
|
.setOrdering(Ordering.ASC)
|
||||||
|
.build()
|
||||||
|
scope.launch {
|
||||||
|
val sleepData = dataStore.readData(readRequest).dataList
|
||||||
|
processSleepVital(sleepData)
|
||||||
|
print("the data is $vitals")
|
||||||
|
Log.d(TAG, "the data is $vitals")
|
||||||
|
result.success("Data is obtained")
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
"steps"->{
|
||||||
|
val dateTime = LocalDateTime.now().with(LocalTime.MIDNIGHT).minusDays(365)
|
||||||
|
val localTimeFilter = LocalTimeFilter.of(dateTime, LocalDateTime.now())
|
||||||
|
val localTimeGroup = LocalTimeGroup.of(LocalTimeGroupUnit.HOURLY, 1)
|
||||||
|
val aggregateRequest = DataType.StepsType.TOTAL.requestBuilder
|
||||||
|
.setLocalTimeFilterWithGroup(localTimeFilter, localTimeGroup)
|
||||||
|
.setOrdering(Ordering.ASC)
|
||||||
|
.build()
|
||||||
|
|
||||||
|
scope.launch {
|
||||||
|
val steps = dataStore.aggregateData(aggregateRequest)
|
||||||
|
processStepsCount(steps)
|
||||||
|
print("the data is $vitals")
|
||||||
|
Log.d(TAG, "the data is $vitals")
|
||||||
|
result.success("Data is obtained")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"activitySummary"->{
|
||||||
|
val dateTime = LocalDateTime.now().with(LocalTime.MIDNIGHT).minusDays(365)
|
||||||
|
val localTimeFilter = LocalTimeFilter.of(dateTime, LocalDateTime.now())
|
||||||
|
val localTimeGroup = LocalTimeGroup.of(LocalTimeGroupUnit.HOURLY, 1)
|
||||||
|
val readRequest = DataType.ActivitySummaryType.TOTAL_ACTIVE_CALORIES_BURNED
|
||||||
|
.requestBuilder
|
||||||
|
.setLocalTimeFilterWithGroup(localTimeFilter, localTimeGroup)
|
||||||
|
.setOrdering(Ordering.DESC)
|
||||||
|
.build()
|
||||||
|
|
||||||
|
scope.launch {
|
||||||
|
val activityResult = dataStore.aggregateData(readRequest).dataList
|
||||||
|
processActivity(activityResult)
|
||||||
|
Log.d("TAG"," the data is ${vitals}")
|
||||||
|
print("the data is ${vitals}")
|
||||||
|
result.success("Data is obtained")
|
||||||
|
}
|
||||||
|
|
||||||
|
// val readRequest = DataTypes.EXERCISE.readDataRequestBuilder
|
||||||
|
// .setLocalTimeFilter(localTimeFilter)
|
||||||
|
// .build()
|
||||||
|
//
|
||||||
|
// scope.launch{
|
||||||
|
// try {
|
||||||
|
// val readResult = dataStore.readData(readRequest)
|
||||||
|
// val dataPoints = readResult.dataList
|
||||||
|
//
|
||||||
|
// processActivity(dataPoints)
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// } catch (e: Exception) {
|
||||||
|
// e.printStackTrace()
|
||||||
|
// }
|
||||||
|
// result.success("Data is obtained")
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
"bloodOxygen"->{
|
||||||
|
val dateTime = LocalDateTime.now().with(LocalTime.MIDNIGHT).minusDays(365)
|
||||||
|
val localTimeFilter = LocalTimeFilter.of(dateTime, LocalDateTime.now())
|
||||||
|
val readRequest = DataTypes.BLOOD_OXYGEN.readDataRequestBuilder
|
||||||
|
.setLocalTimeFilter(localTimeFilter)
|
||||||
|
.setOrdering(Ordering.DESC)
|
||||||
|
.build()
|
||||||
|
|
||||||
|
scope.launch {
|
||||||
|
val bloodOxygenList = dataStore.readData(readRequest).dataList
|
||||||
|
processBloodOxygen(bloodOxygenList)
|
||||||
|
Log.d("TAG"," the data is ${vitals}")
|
||||||
|
print("the data is ${vitals["bloodOxygen"]}")
|
||||||
|
result.success("Data is obtained")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
"bodyTemperature"->{
|
||||||
|
val dateTime = LocalDateTime.now().with(LocalTime.MIDNIGHT).minusDays(365)
|
||||||
|
val localTimeFilter = LocalTimeFilter.of(dateTime, LocalDateTime.now())
|
||||||
|
val readRequest = DataTypes.BODY_TEMPERATURE.readDataRequestBuilder
|
||||||
|
.setLocalTimeFilter(localTimeFilter)
|
||||||
|
.setOrdering(Ordering.DESC)
|
||||||
|
.build()
|
||||||
|
|
||||||
|
scope.launch {
|
||||||
|
val bodyTemperatureList = dataStore.readData(readRequest).dataList
|
||||||
|
processBodyTemperature(bodyTemperatureList)
|
||||||
|
Log.d("TAG"," the data is ${vitals}")
|
||||||
|
print("the data is ${vitals["bodyTemperature"]}")
|
||||||
|
result.success("Data is obtained")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"distance"->{
|
||||||
|
val dateTime = LocalDateTime.now().with(LocalTime.MIDNIGHT).minusDays(365)
|
||||||
|
val localTimeFilter = LocalTimeFilter.of(dateTime, LocalDateTime.now())
|
||||||
|
val localTimeGroup = LocalTimeGroup.of(LocalTimeGroupUnit.HOURLY, 1)
|
||||||
|
val readRequest = DataType.ActivitySummaryType.TOTAL_DISTANCE.requestBuilder
|
||||||
|
.setLocalTimeFilterWithGroup(localTimeFilter, localTimeGroup)
|
||||||
|
.setOrdering(Ordering.DESC)
|
||||||
|
.build()
|
||||||
|
|
||||||
|
scope.launch {
|
||||||
|
val activityResult = dataStore.aggregateData(readRequest).dataList
|
||||||
|
processDistance(activityResult)
|
||||||
|
Log.d("TAG"," the data is ${vitals}")
|
||||||
|
print("the data is ${vitals}")
|
||||||
|
result.success("Data is obtained")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"retrieveData"->{
|
||||||
|
if(vitals.isEmpty()){
|
||||||
|
result.error("NoDataFound", "No Data was obtained", null)
|
||||||
|
return@setMethodCallHandler
|
||||||
|
}
|
||||||
|
result.success("""
|
||||||
|
{
|
||||||
|
"heartRate": ${vitals["heartRate"]},
|
||||||
|
"steps": ${vitals["steps"]},
|
||||||
|
"sleep": ${vitals["sleep"]},
|
||||||
|
"activity": ${vitals["activity"]},
|
||||||
|
"bloodOxygen": ${vitals["bloodOxygen"]},
|
||||||
|
"bodyTemperature": ${vitals["bodyTemperature"]},
|
||||||
|
"distance": ${vitals["distance"]}
|
||||||
|
}
|
||||||
|
""".trimIndent())
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
"closeCoroutineScope"->{
|
||||||
|
destroy()
|
||||||
|
result.success("Coroutine Scope Cancelled")
|
||||||
|
}
|
||||||
|
|
||||||
|
else -> {
|
||||||
|
result.notImplemented()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun CoroutineScope.processDistance(activityResult: List<AggregatedData<Float>>) {
|
||||||
|
vitals["distance"] = mutableListOf()
|
||||||
|
activityResult.forEach { stepData ->
|
||||||
|
val vitalData = Vitals().apply {
|
||||||
|
|
||||||
|
value = stepData.value.toString()
|
||||||
|
timeStamp = stepData.startTime.toString()
|
||||||
|
}
|
||||||
|
(vitals["distance"] as MutableList).add(vitalData)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun CoroutineScope.processBodyTemperature( bodyTemperatureList :List<HealthDataPoint>) {
|
||||||
|
vitals["bodyTemperature"] = mutableListOf()
|
||||||
|
bodyTemperatureList.forEach { stepData ->
|
||||||
|
val vitalData = Vitals().apply {
|
||||||
|
value = stepData.getValue(DataType.BodyTemperatureType.BODY_TEMPERATURE).toString()
|
||||||
|
timeStamp = stepData.endTime.toString()
|
||||||
|
}
|
||||||
|
(vitals["bodyTemperature"] as MutableList).add(vitalData)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun CoroutineScope.processBloodOxygen( bloodOxygenList :List<HealthDataPoint>) {
|
||||||
|
vitals["bloodOxygen"] = mutableListOf()
|
||||||
|
bloodOxygenList.forEach { stepData ->
|
||||||
|
val vitalData = Vitals().apply {
|
||||||
|
value = stepData.getValue(DataType.BloodOxygenType.OXYGEN_SATURATION).toString()
|
||||||
|
timeStamp = stepData.endTime.toString()
|
||||||
|
}
|
||||||
|
(vitals["bloodOxygen"] as MutableList).add(vitalData)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// private fun CoroutineScope.processActivity(activityResult: List<AggregatedData<Float>>) {
|
||||||
|
//
|
||||||
|
// vitals["activity"] = mutableListOf()
|
||||||
|
// activityResult.forEach { stepData ->
|
||||||
|
// val vitalData = Vitals().apply {
|
||||||
|
//
|
||||||
|
// value = stepData.value.toString()
|
||||||
|
// timeStamp = stepData.startTime.toString()
|
||||||
|
// }
|
||||||
|
// (vitals["activity"] as MutableList).add(vitalData)
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
private fun CoroutineScope.processActivity(activityResult: List<AggregatedData<Float>>) {
|
||||||
|
|
||||||
|
vitals["activity"] = mutableListOf()
|
||||||
|
activityResult.forEach { stepData ->
|
||||||
|
val vitalData = Vitals().apply {
|
||||||
|
|
||||||
|
value = stepData.value.toString()
|
||||||
|
timeStamp = stepData.startTime.toString()
|
||||||
|
}
|
||||||
|
(vitals["activity"] as MutableList).add(vitalData)
|
||||||
|
}
|
||||||
|
|
||||||
|
// dataPoints.forEach { dataPoint ->
|
||||||
|
// val sessions = dataPoint.getValue(DataType.ExerciseType.SESSIONS)
|
||||||
|
//
|
||||||
|
// sessions?.forEach { session ->
|
||||||
|
//
|
||||||
|
// val exerciseSessionCalories = session.calories
|
||||||
|
// val vitalData = Vitals().apply {
|
||||||
|
// value = exerciseSessionCalories.toString()
|
||||||
|
// timeStamp = session.startTime.toString()
|
||||||
|
// }
|
||||||
|
// (vitals["activity"] as MutableList).add(vitalData)
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun CoroutineScope.processStepsCount(result: DataResponse<AggregatedData<Long>>) {
|
||||||
|
val stepCount = ArrayList<AggregatedData<Long>>()
|
||||||
|
var totalSteps: Long = 0
|
||||||
|
vitals["steps"] = mutableListOf()
|
||||||
|
result.dataList.forEach { stepData ->
|
||||||
|
val vitalData = Vitals().apply {
|
||||||
|
value = (stepData.value as Long).toString()
|
||||||
|
timeStamp = stepData.startTime.toString()
|
||||||
|
}
|
||||||
|
(vitals["steps"] as MutableList).add(vitalData)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun CoroutineScope.processSleepVital(sleepData: List<HealthDataPoint>) {
|
||||||
|
vitals["sleep"] = mutableListOf()
|
||||||
|
sleepData.forEach {
|
||||||
|
(vitals["sleep"] as MutableList).add(
|
||||||
|
Vitals().apply {
|
||||||
|
timeStamp = it.startTime.toString()
|
||||||
|
value = (it.getValue(DataType.SleepType.DURATION)?.toMillis().toString())
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private suspend fun CoroutineScope.processHeartVital(
|
||||||
|
heartRateList: List<HealthDataPoint>,
|
||||||
|
) {
|
||||||
|
vitals["heartRate"] = mutableListOf()
|
||||||
|
heartRateList.forEach {
|
||||||
|
(vitals["heartRate"] as MutableList).add(processHeartRateData(it))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun processHeartRateData(heartRateData: HealthDataPoint) =
|
||||||
|
Vitals().apply {
|
||||||
|
heartRateData.getValue(DataType.HeartRateType.MAX_HEART_RATE)?.let {
|
||||||
|
value = it.toString()
|
||||||
|
}
|
||||||
|
timeStamp = heartRateData.startTime.toString()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
fun destroy() {
|
||||||
|
scope.cancel()
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
package com.ejada.hmg.watch.huawei.samsung_watch.model
|
||||||
|
|
||||||
|
data class Vitals(
|
||||||
|
var value : String = "",
|
||||||
|
var timeStamp :String = ""
|
||||||
|
){
|
||||||
|
override fun toString(): String {
|
||||||
|
return """{
|
||||||
|
"value": "$value",
|
||||||
|
"timeStamp": "$timeStamp"}
|
||||||
|
""".trimIndent()
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Modify this file to customize your launch splash screen -->
|
||||||
|
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item android:drawable="?android:colorBackground" />
|
||||||
|
|
||||||
|
<!-- You can insert your own image assets here -->
|
||||||
|
<!-- <item>
|
||||||
|
<bitmap
|
||||||
|
android:gravity="center"
|
||||||
|
android:src="@mipmap/launch_image" />
|
||||||
|
</item> -->
|
||||||
|
</layer-list>
|
||||||
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Modify this file to customize your launch splash screen -->
|
||||||
|
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item android:drawable="@android:color/white" />
|
||||||
|
|
||||||
|
<!-- You can insert your own image assets here -->
|
||||||
|
<!-- <item>
|
||||||
|
<bitmap
|
||||||
|
android:gravity="center"
|
||||||
|
android:src="@mipmap/launch_image" />
|
||||||
|
</item> -->
|
||||||
|
</layer-list>
|
||||||
|
After Width: | Height: | Size: 1021 B |
|
After Width: | Height: | Size: 180 B |
|
After Width: | Height: | Size: 1.0 KiB |
@ -0,0 +1,10 @@
|
|||||||
|
<?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:id="@+id/main"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
tools:context="com.cloud.diplomaticquarterapp.whatsapp.WhatsAppCodeActivity">
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
<?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="match_parent"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:layout_gravity="center_horizontal">
|
||||||
|
<FrameLayout
|
||||||
|
android:id="@+id/publisher_container"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:background="#FF9800" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
<?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="match_parent"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:layout_gravity="center_horizontal">
|
||||||
|
<FrameLayout
|
||||||
|
android:id="@+id/subscriber_container"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:background="#3F51B5" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:text="Remote"
|
||||||
|
android:textColor="#FFFFFF"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
Before Width: | Height: | Size: 544 B After Width: | Height: | Size: 544 B |
|
After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 442 B After Width: | Height: | Size: 442 B |
|
After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 721 B After Width: | Height: | Size: 721 B |
|
After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
@ -0,0 +1,3 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
tools:keep="@drawable/*,@raw/slow_spring_board" />
|
||||||
@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->
|
||||||
|
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||||
|
<!-- Show a splash screen on the activity. Automatically removed when
|
||||||
|
the Flutter engine draws its first frame -->
|
||||||
|
<item name="android:windowBackground">@drawable/launch_background</item>
|
||||||
|
</style>
|
||||||
|
<!-- Theme applied to the Android Window as soon as the process has started.
|
||||||
|
This theme determines the color of the Android Window while your
|
||||||
|
Flutter UI initializes, as well as behind your Flutter UI while its
|
||||||
|
running.
|
||||||
|
|
||||||
|
This Theme is only used starting with V2 of Flutter's Android embedding. -->
|
||||||
|
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||||
|
<item name="android:windowBackground">?android:colorBackground</item>
|
||||||
|
</style>
|
||||||
|
</resources>
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
<!-- <string name="mapbox_access_token" translatable="false" tools:ignore="UnusedResources">sk.eyJ1IjoicndhaWQiLCJhIjoiY2x6NWo0bTMzMWZodzJrcGZpemYzc3Z4dSJ9.uSSZuwNSGCcCdPAiORECmg</string>-->
|
||||||
|
</resources>
|
||||||
@ -0,0 +1,23 @@
|
|||||||
|
<resources>
|
||||||
|
<string name="app_name">HMG Patient App</string>
|
||||||
|
|
||||||
|
<string name="geofence_unknown_error">
|
||||||
|
Unknown error: the Geofence service is not available now.
|
||||||
|
</string>
|
||||||
|
<string name="geofence_not_available">
|
||||||
|
Geofence service is not available now. Go to Settings>Location>Mode and choose High accuracy.
|
||||||
|
</string>
|
||||||
|
<string name="geofence_too_many_geofences">
|
||||||
|
Your app has registered too many geofences.
|
||||||
|
</string>
|
||||||
|
<string name="geofence_too_many_pending_intents">
|
||||||
|
You have provided too many PendingIntents to the addGeofences() call.
|
||||||
|
</string>
|
||||||
|
<string name="GEOFENCE_INSUFFICIENT_LOCATION_PERMISSION">
|
||||||
|
App do not have permission to access location service.
|
||||||
|
</string>
|
||||||
|
<string name="GEOFENCE_REQUEST_TOO_FREQUENT">
|
||||||
|
Geofence requests happened too frequently.
|
||||||
|
</string>
|
||||||
|
<string name="mapbox_access_token" translatable="false">pk.eyJ1IjoicndhaWQiLCJhIjoiY2x5cGo4aHNjMGNsbTJyc2djempobGQxaSJ9.RCaC6WrUt4A4YnZNfxnONQ</string>
|
||||||
|
</resources>
|
||||||
@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<!-- Theme applied to the Android Window while the process is starting -->
|
||||||
|
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||||
|
<!-- Show a splash screen on the activity. Automatically removed when
|
||||||
|
Flutter draws its first frame -->
|
||||||
|
<item name="android:windowBackground">@drawable/launch_background</item>
|
||||||
|
</style>
|
||||||
|
<!-- Theme applied to the Android Window as soon as the process has started.
|
||||||
|
This theme determines the color of the Android Window while your
|
||||||
|
Flutter UI initializes, as well as behind your Flutter UI while its
|
||||||
|
running.
|
||||||
|
|
||||||
|
This Theme is only used starting with V2 of Flutter's Android embedding. -->
|
||||||
|
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||||
|
<item name="android:windowBackground">@android:color/white</item>
|
||||||
|
</style>
|
||||||
|
</resources>
|
||||||
@ -1,3 +1,10 @@
|
|||||||
org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError
|
#org.gradle.jvmargs=-xmx4608m
|
||||||
android.useAndroidX=true
|
android.enableR8=true
|
||||||
android.enableJetifier=true
|
android.enableJetifier=true
|
||||||
|
android.useDeprecatedNdk=true
|
||||||
|
org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
|
||||||
|
org.gradle.daemon=true
|
||||||
|
org.gradle.parallel=true
|
||||||
|
org.gradle.configureondemand=true
|
||||||
|
android.useAndroidX=true
|
||||||
|
android.enableImpeller=false
|
||||||
|
|||||||
@ -1,767 +1 @@
|
|||||||
{
|
{"nm":"Main Scene","ddd":0,"h":512,"w":512,"meta":{"g":"@lottiefiles/creator 1.75.0"},"layers":[{"ty":4,"nm":"check","sr":1,"st":0,"op":240,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[256,256],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Shape 1","ix":1,"cix":2,"np":4,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-82.5,4.5],[-31,55],[73,-52.5]]},"ix":2}},{"ty":"tm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Trim","nm":"Trim Paths 1","ix":2,"e":{"a":1,"k":[{"o":{"x":1,"y":0.076},"i":{"x":0.667,"y":1},"s":[0],"t":60},{"s":[100],"t":85}],"ix":2},"o":{"a":0,"k":0,"ix":3},"s":{"a":0,"k":0,"ix":1},"m":1},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":2,"lj":2,"ml":1,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":30,"ix":5},"c":{"a":0,"k":[1,1,1],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":1},{"ty":4,"nm":"Shape Layer 2","sr":1,"st":0,"op":240,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"o":{"x":0.656,"y":0.872},"i":{"x":0,"y":0.98},"s":[0,0,100],"t":20},{"s":[150,150,100],"t":60}],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[256,257.86],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Ellipse 1","ix":1,"cix":2,"np":3,"it":[{"ty":"el","bm":0,"hd":false,"mn":"ADBE Vector Shape - Ellipse","nm":"Ellipse Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"s":{"a":0,"k":[236,236],"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.0941,0.7608,0.451],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,-3],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":2},{"ty":4,"nm":"Shape Layer 1","sr":1,"st":0,"op":240,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"o":{"x":0.477,"y":0.587},"i":{"x":0,"y":0.999},"s":[0,0,100],"t":10},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[150,150,100],"t":50},{"o":{"x":0.167,"y":0},"i":{"x":0.833,"y":1},"s":[150,150,100],"t":76},{"s":[210,210,100],"t":123}],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[256,257.86],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":1,"k":[{"o":{"x":0.912,"y":0.073},"i":{"x":0.626,"y":0.729},"s":[100],"t":76},{"s":[0],"t":119}],"ix":11}},"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Ellipse 1","ix":1,"cix":2,"np":3,"it":[{"ty":"el","bm":0,"hd":false,"mn":"ADBE Vector Shape - Ellipse","nm":"Ellipse Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"s":{"a":0,"k":[236,236],"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":1,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"c":{"a":0,"k":[1,1,1],"ix":3}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.7843,0.9451,0.8784],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,-3],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":3}],"v":"5.7.0","fr":60,"op":130,"ip":0,"assets":[]}
|
||||||
"nm": "HDFC Success",
|
|
||||||
"h": 512,
|
|
||||||
"w": 512,
|
|
||||||
"meta": {
|
|
||||||
"g": "LottieFiles AE 1.0.0"
|
|
||||||
},
|
|
||||||
"layers": [
|
|
||||||
{
|
|
||||||
"ty": 4,
|
|
||||||
"nm": "check",
|
|
||||||
"sr": 1,
|
|
||||||
"st": 0,
|
|
||||||
"op": 240,
|
|
||||||
"ip": 0,
|
|
||||||
"hasMask": false,
|
|
||||||
"ao": 0,
|
|
||||||
"ks": {
|
|
||||||
"a": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"s": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
100,
|
|
||||||
100,
|
|
||||||
100
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"sk": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 0
|
|
||||||
},
|
|
||||||
"p": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
256,
|
|
||||||
256,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"r": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 0
|
|
||||||
},
|
|
||||||
"sa": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 0
|
|
||||||
},
|
|
||||||
"o": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 100
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ef": [],
|
|
||||||
"shapes": [
|
|
||||||
{
|
|
||||||
"ty": "gr",
|
|
||||||
"nm": "Shape 1",
|
|
||||||
"it": [
|
|
||||||
{
|
|
||||||
"ty": "sh",
|
|
||||||
"nm": "Path 1",
|
|
||||||
"d": 1,
|
|
||||||
"ks": {
|
|
||||||
"a": 0,
|
|
||||||
"k": {
|
|
||||||
"c": false,
|
|
||||||
"i": [
|
|
||||||
[
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"o": [
|
|
||||||
[
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"v": [
|
|
||||||
[
|
|
||||||
-82.5,
|
|
||||||
4.5
|
|
||||||
],
|
|
||||||
[
|
|
||||||
-31,
|
|
||||||
55
|
|
||||||
],
|
|
||||||
[
|
|
||||||
73,
|
|
||||||
-52.5
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ty": "tm",
|
|
||||||
"nm": "Trim Paths 1",
|
|
||||||
"e": {
|
|
||||||
"a": 1,
|
|
||||||
"k": [
|
|
||||||
{
|
|
||||||
"o": {
|
|
||||||
"x": 1,
|
|
||||||
"y": 0.076
|
|
||||||
},
|
|
||||||
"i": {
|
|
||||||
"x": 0.667,
|
|
||||||
"y": 1
|
|
||||||
},
|
|
||||||
"s": [
|
|
||||||
0
|
|
||||||
],
|
|
||||||
"t": 60
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"s": [
|
|
||||||
100
|
|
||||||
],
|
|
||||||
"t": 85
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"o": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 0
|
|
||||||
},
|
|
||||||
"s": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 0
|
|
||||||
},
|
|
||||||
"m": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ty": "st",
|
|
||||||
"nm": "Stroke 1",
|
|
||||||
"lc": 2,
|
|
||||||
"lj": 2,
|
|
||||||
"ml": 1,
|
|
||||||
"o": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 100
|
|
||||||
},
|
|
||||||
"w": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 30
|
|
||||||
},
|
|
||||||
"c": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
1,
|
|
||||||
1,
|
|
||||||
1
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ty": "tr",
|
|
||||||
"a": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"s": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
100,
|
|
||||||
100
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"sk": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 0
|
|
||||||
},
|
|
||||||
"p": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"r": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 0
|
|
||||||
},
|
|
||||||
"sa": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 0
|
|
||||||
},
|
|
||||||
"o": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 100
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"ind": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ty": 4,
|
|
||||||
"nm": "Shape Layer 2",
|
|
||||||
"sr": 1,
|
|
||||||
"st": 0,
|
|
||||||
"op": 240,
|
|
||||||
"ip": 0,
|
|
||||||
"hasMask": false,
|
|
||||||
"ao": 0,
|
|
||||||
"ks": {
|
|
||||||
"a": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"s": {
|
|
||||||
"a": 1,
|
|
||||||
"k": [
|
|
||||||
{
|
|
||||||
"o": {
|
|
||||||
"x": 0.656,
|
|
||||||
"y": 0.872
|
|
||||||
},
|
|
||||||
"i": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 0.98
|
|
||||||
},
|
|
||||||
"s": [
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
100
|
|
||||||
],
|
|
||||||
"t": 20
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"s": [
|
|
||||||
150,
|
|
||||||
150,
|
|
||||||
100
|
|
||||||
],
|
|
||||||
"t": 60
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"sk": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 0
|
|
||||||
},
|
|
||||||
"p": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
256,
|
|
||||||
257.86,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"r": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 0
|
|
||||||
},
|
|
||||||
"sa": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 0
|
|
||||||
},
|
|
||||||
"o": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 100
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ef": [],
|
|
||||||
"shapes": [
|
|
||||||
{
|
|
||||||
"ty": "gr",
|
|
||||||
"nm": "Ellipse 1",
|
|
||||||
"it": [
|
|
||||||
{
|
|
||||||
"ty": "el",
|
|
||||||
"nm": "Ellipse Path 1",
|
|
||||||
"d": 1,
|
|
||||||
"p": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"s": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
236,
|
|
||||||
236
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ty": "fl",
|
|
||||||
"nm": "Fill 1",
|
|
||||||
"c": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
0.094,
|
|
||||||
0.761,
|
|
||||||
0.451
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"r": 1,
|
|
||||||
"o": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 100
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ty": "tr",
|
|
||||||
"a": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"s": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
100,
|
|
||||||
100
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"sk": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 0
|
|
||||||
},
|
|
||||||
"p": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
0,
|
|
||||||
-3
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"r": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 0
|
|
||||||
},
|
|
||||||
"sa": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 0
|
|
||||||
},
|
|
||||||
"o": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 100
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"ind": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ty": 4,
|
|
||||||
"nm": "Shape Layer 1",
|
|
||||||
"sr": 1,
|
|
||||||
"st": 0,
|
|
||||||
"op": 240,
|
|
||||||
"ip": 0,
|
|
||||||
"hasMask": false,
|
|
||||||
"ao": 0,
|
|
||||||
"ks": {
|
|
||||||
"a": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"s": {
|
|
||||||
"a": 1,
|
|
||||||
"k": [
|
|
||||||
{
|
|
||||||
"o": {
|
|
||||||
"x": 0.477,
|
|
||||||
"y": 0.587
|
|
||||||
},
|
|
||||||
"i": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 0.999
|
|
||||||
},
|
|
||||||
"s": [
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
100
|
|
||||||
],
|
|
||||||
"t": 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"o": {
|
|
||||||
"x": 0.167,
|
|
||||||
"y": 0.167
|
|
||||||
},
|
|
||||||
"i": {
|
|
||||||
"x": 0.833,
|
|
||||||
"y": 0.833
|
|
||||||
},
|
|
||||||
"s": [
|
|
||||||
150,
|
|
||||||
150,
|
|
||||||
100
|
|
||||||
],
|
|
||||||
"t": 50
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"o": {
|
|
||||||
"x": 0.167,
|
|
||||||
"y": 0
|
|
||||||
},
|
|
||||||
"i": {
|
|
||||||
"x": 0.833,
|
|
||||||
"y": 1
|
|
||||||
},
|
|
||||||
"s": [
|
|
||||||
150,
|
|
||||||
150,
|
|
||||||
100
|
|
||||||
],
|
|
||||||
"t": 76
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"s": [
|
|
||||||
210,
|
|
||||||
210,
|
|
||||||
100
|
|
||||||
],
|
|
||||||
"t": 123
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"sk": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 0
|
|
||||||
},
|
|
||||||
"p": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
256,
|
|
||||||
257.86,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"r": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 0
|
|
||||||
},
|
|
||||||
"sa": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 0
|
|
||||||
},
|
|
||||||
"o": {
|
|
||||||
"a": 1,
|
|
||||||
"k": [
|
|
||||||
{
|
|
||||||
"o": {
|
|
||||||
"x": 0.912,
|
|
||||||
"y": 0.073
|
|
||||||
},
|
|
||||||
"i": {
|
|
||||||
"x": 0.626,
|
|
||||||
"y": 0.729
|
|
||||||
},
|
|
||||||
"s": [
|
|
||||||
100
|
|
||||||
],
|
|
||||||
"t": 76
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"s": [
|
|
||||||
0
|
|
||||||
],
|
|
||||||
"t": 119
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ef": [],
|
|
||||||
"shapes": [
|
|
||||||
{
|
|
||||||
"ty": "gr",
|
|
||||||
"nm": "Ellipse 1",
|
|
||||||
"it": [
|
|
||||||
{
|
|
||||||
"ty": "el",
|
|
||||||
"nm": "Ellipse Path 1",
|
|
||||||
"d": 1,
|
|
||||||
"p": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"s": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
236,
|
|
||||||
236
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ty": "st",
|
|
||||||
"nm": "Stroke 1",
|
|
||||||
"lc": 1,
|
|
||||||
"lj": 1,
|
|
||||||
"ml": 4,
|
|
||||||
"o": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 100
|
|
||||||
},
|
|
||||||
"w": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 2
|
|
||||||
},
|
|
||||||
"c": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
1,
|
|
||||||
1,
|
|
||||||
1
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ty": "fl",
|
|
||||||
"nm": "Fill 1",
|
|
||||||
"c": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
0.784,
|
|
||||||
0.945,
|
|
||||||
0.878
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"r": 1,
|
|
||||||
"o": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 100
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ty": "tr",
|
|
||||||
"a": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"s": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
100,
|
|
||||||
100
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"sk": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 0
|
|
||||||
},
|
|
||||||
"p": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
0,
|
|
||||||
-3
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"r": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 0
|
|
||||||
},
|
|
||||||
"sa": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 0
|
|
||||||
},
|
|
||||||
"o": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 100
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"ind": 3
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ty": 4,
|
|
||||||
"nm": "BG",
|
|
||||||
"sr": 1,
|
|
||||||
"st": 0,
|
|
||||||
"op": 240,
|
|
||||||
"ip": 0,
|
|
||||||
"hasMask": false,
|
|
||||||
"ao": 0,
|
|
||||||
"ks": {
|
|
||||||
"a": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"s": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
100,
|
|
||||||
100,
|
|
||||||
100
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"sk": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 0
|
|
||||||
},
|
|
||||||
"p": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
256,
|
|
||||||
256,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"r": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 0
|
|
||||||
},
|
|
||||||
"sa": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 0
|
|
||||||
},
|
|
||||||
"o": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 100
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ef": [],
|
|
||||||
"shapes": [
|
|
||||||
{
|
|
||||||
"ty": "gr",
|
|
||||||
"nm": "Rectangle 1",
|
|
||||||
"it": [
|
|
||||||
{
|
|
||||||
"ty": "rc",
|
|
||||||
"nm": "Rectangle Path 1",
|
|
||||||
"d": 1,
|
|
||||||
"p": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"r": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 0
|
|
||||||
},
|
|
||||||
"s": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
554,
|
|
||||||
556
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ty": "fl",
|
|
||||||
"nm": "Fill 1",
|
|
||||||
"c": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
0.972,
|
|
||||||
0.972,
|
|
||||||
0.972
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"r": 1,
|
|
||||||
"o": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 100
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ty": "tr",
|
|
||||||
"a": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
0,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"s": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
100,
|
|
||||||
100
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"sk": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 0
|
|
||||||
},
|
|
||||||
"p": {
|
|
||||||
"a": 0,
|
|
||||||
"k": [
|
|
||||||
-1,
|
|
||||||
6
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"r": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 0
|
|
||||||
},
|
|
||||||
"sa": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 0
|
|
||||||
},
|
|
||||||
"o": {
|
|
||||||
"a": 0,
|
|
||||||
"k": 100
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"ind": 4
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"v": "4.8.0",
|
|
||||||
"fr": 60,
|
|
||||||
"op": 130,
|
|
||||||
"ip": 0,
|
|
||||||
"assets": []
|
|
||||||
}
|
|
||||||
@ -0,0 +1,767 @@
|
|||||||
|
{
|
||||||
|
"nm": "HDFC Success",
|
||||||
|
"h": 512,
|
||||||
|
"w": 512,
|
||||||
|
"meta": {
|
||||||
|
"g": "LottieFiles AE 1.0.0"
|
||||||
|
},
|
||||||
|
"layers": [
|
||||||
|
{
|
||||||
|
"ty": 4,
|
||||||
|
"nm": "check",
|
||||||
|
"sr": 1,
|
||||||
|
"st": 0,
|
||||||
|
"op": 240,
|
||||||
|
"ip": 0,
|
||||||
|
"hasMask": false,
|
||||||
|
"ao": 0,
|
||||||
|
"ks": {
|
||||||
|
"a": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"s": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
100,
|
||||||
|
100,
|
||||||
|
100
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sk": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0
|
||||||
|
},
|
||||||
|
"p": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
256,
|
||||||
|
256,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"r": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0
|
||||||
|
},
|
||||||
|
"sa": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 100
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ef": [],
|
||||||
|
"shapes": [
|
||||||
|
{
|
||||||
|
"ty": "gr",
|
||||||
|
"nm": "Shape 1",
|
||||||
|
"it": [
|
||||||
|
{
|
||||||
|
"ty": "sh",
|
||||||
|
"nm": "Path 1",
|
||||||
|
"d": 1,
|
||||||
|
"ks": {
|
||||||
|
"a": 0,
|
||||||
|
"k": {
|
||||||
|
"c": false,
|
||||||
|
"i": [
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"o": [
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"v": [
|
||||||
|
[
|
||||||
|
-82.5,
|
||||||
|
4.5
|
||||||
|
],
|
||||||
|
[
|
||||||
|
-31,
|
||||||
|
55
|
||||||
|
],
|
||||||
|
[
|
||||||
|
73,
|
||||||
|
-52.5
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ty": "tm",
|
||||||
|
"nm": "Trim Paths 1",
|
||||||
|
"e": {
|
||||||
|
"a": 1,
|
||||||
|
"k": [
|
||||||
|
{
|
||||||
|
"o": {
|
||||||
|
"x": 1,
|
||||||
|
"y": 0.076
|
||||||
|
},
|
||||||
|
"i": {
|
||||||
|
"x": 0.667,
|
||||||
|
"y": 1
|
||||||
|
},
|
||||||
|
"s": [
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"t": 60
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"s": [
|
||||||
|
100
|
||||||
|
],
|
||||||
|
"t": 85
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0
|
||||||
|
},
|
||||||
|
"s": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0
|
||||||
|
},
|
||||||
|
"m": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ty": "st",
|
||||||
|
"nm": "Stroke 1",
|
||||||
|
"lc": 2,
|
||||||
|
"lj": 2,
|
||||||
|
"ml": 1,
|
||||||
|
"o": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 100
|
||||||
|
},
|
||||||
|
"w": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 30
|
||||||
|
},
|
||||||
|
"c": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ty": "tr",
|
||||||
|
"a": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"s": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
100,
|
||||||
|
100
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sk": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0
|
||||||
|
},
|
||||||
|
"p": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"r": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0
|
||||||
|
},
|
||||||
|
"sa": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 100
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ind": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ty": 4,
|
||||||
|
"nm": "Shape Layer 2",
|
||||||
|
"sr": 1,
|
||||||
|
"st": 0,
|
||||||
|
"op": 240,
|
||||||
|
"ip": 0,
|
||||||
|
"hasMask": false,
|
||||||
|
"ao": 0,
|
||||||
|
"ks": {
|
||||||
|
"a": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"s": {
|
||||||
|
"a": 1,
|
||||||
|
"k": [
|
||||||
|
{
|
||||||
|
"o": {
|
||||||
|
"x": 0.656,
|
||||||
|
"y": 0.872
|
||||||
|
},
|
||||||
|
"i": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0.98
|
||||||
|
},
|
||||||
|
"s": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
100
|
||||||
|
],
|
||||||
|
"t": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"s": [
|
||||||
|
150,
|
||||||
|
150,
|
||||||
|
100
|
||||||
|
],
|
||||||
|
"t": 60
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sk": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0
|
||||||
|
},
|
||||||
|
"p": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
256,
|
||||||
|
257.86,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"r": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0
|
||||||
|
},
|
||||||
|
"sa": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 100
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ef": [],
|
||||||
|
"shapes": [
|
||||||
|
{
|
||||||
|
"ty": "gr",
|
||||||
|
"nm": "Ellipse 1",
|
||||||
|
"it": [
|
||||||
|
{
|
||||||
|
"ty": "el",
|
||||||
|
"nm": "Ellipse Path 1",
|
||||||
|
"d": 1,
|
||||||
|
"p": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"s": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
236,
|
||||||
|
236
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ty": "fl",
|
||||||
|
"nm": "Fill 1",
|
||||||
|
"c": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0.094,
|
||||||
|
0.761,
|
||||||
|
0.451
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"r": 1,
|
||||||
|
"o": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 100
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ty": "tr",
|
||||||
|
"a": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"s": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
100,
|
||||||
|
100
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sk": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0
|
||||||
|
},
|
||||||
|
"p": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0,
|
||||||
|
-3
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"r": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0
|
||||||
|
},
|
||||||
|
"sa": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 100
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ind": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ty": 4,
|
||||||
|
"nm": "Shape Layer 1",
|
||||||
|
"sr": 1,
|
||||||
|
"st": 0,
|
||||||
|
"op": 240,
|
||||||
|
"ip": 0,
|
||||||
|
"hasMask": false,
|
||||||
|
"ao": 0,
|
||||||
|
"ks": {
|
||||||
|
"a": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"s": {
|
||||||
|
"a": 1,
|
||||||
|
"k": [
|
||||||
|
{
|
||||||
|
"o": {
|
||||||
|
"x": 0.477,
|
||||||
|
"y": 0.587
|
||||||
|
},
|
||||||
|
"i": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0.999
|
||||||
|
},
|
||||||
|
"s": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
100
|
||||||
|
],
|
||||||
|
"t": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"o": {
|
||||||
|
"x": 0.167,
|
||||||
|
"y": 0.167
|
||||||
|
},
|
||||||
|
"i": {
|
||||||
|
"x": 0.833,
|
||||||
|
"y": 0.833
|
||||||
|
},
|
||||||
|
"s": [
|
||||||
|
150,
|
||||||
|
150,
|
||||||
|
100
|
||||||
|
],
|
||||||
|
"t": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"o": {
|
||||||
|
"x": 0.167,
|
||||||
|
"y": 0
|
||||||
|
},
|
||||||
|
"i": {
|
||||||
|
"x": 0.833,
|
||||||
|
"y": 1
|
||||||
|
},
|
||||||
|
"s": [
|
||||||
|
150,
|
||||||
|
150,
|
||||||
|
100
|
||||||
|
],
|
||||||
|
"t": 76
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"s": [
|
||||||
|
210,
|
||||||
|
210,
|
||||||
|
100
|
||||||
|
],
|
||||||
|
"t": 123
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sk": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0
|
||||||
|
},
|
||||||
|
"p": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
256,
|
||||||
|
257.86,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"r": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0
|
||||||
|
},
|
||||||
|
"sa": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"a": 1,
|
||||||
|
"k": [
|
||||||
|
{
|
||||||
|
"o": {
|
||||||
|
"x": 0.912,
|
||||||
|
"y": 0.073
|
||||||
|
},
|
||||||
|
"i": {
|
||||||
|
"x": 0.626,
|
||||||
|
"y": 0.729
|
||||||
|
},
|
||||||
|
"s": [
|
||||||
|
100
|
||||||
|
],
|
||||||
|
"t": 76
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"s": [
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"t": 119
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ef": [],
|
||||||
|
"shapes": [
|
||||||
|
{
|
||||||
|
"ty": "gr",
|
||||||
|
"nm": "Ellipse 1",
|
||||||
|
"it": [
|
||||||
|
{
|
||||||
|
"ty": "el",
|
||||||
|
"nm": "Ellipse Path 1",
|
||||||
|
"d": 1,
|
||||||
|
"p": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"s": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
236,
|
||||||
|
236
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ty": "st",
|
||||||
|
"nm": "Stroke 1",
|
||||||
|
"lc": 1,
|
||||||
|
"lj": 1,
|
||||||
|
"ml": 4,
|
||||||
|
"o": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 100
|
||||||
|
},
|
||||||
|
"w": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 2
|
||||||
|
},
|
||||||
|
"c": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ty": "fl",
|
||||||
|
"nm": "Fill 1",
|
||||||
|
"c": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0.784,
|
||||||
|
0.945,
|
||||||
|
0.878
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"r": 1,
|
||||||
|
"o": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 100
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ty": "tr",
|
||||||
|
"a": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"s": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
100,
|
||||||
|
100
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sk": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0
|
||||||
|
},
|
||||||
|
"p": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0,
|
||||||
|
-3
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"r": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0
|
||||||
|
},
|
||||||
|
"sa": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 100
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ind": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ty": 4,
|
||||||
|
"nm": "BG",
|
||||||
|
"sr": 1,
|
||||||
|
"st": 0,
|
||||||
|
"op": 240,
|
||||||
|
"ip": 0,
|
||||||
|
"hasMask": false,
|
||||||
|
"ao": 0,
|
||||||
|
"ks": {
|
||||||
|
"a": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"s": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
100,
|
||||||
|
100,
|
||||||
|
100
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sk": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0
|
||||||
|
},
|
||||||
|
"p": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
256,
|
||||||
|
256,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"r": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0
|
||||||
|
},
|
||||||
|
"sa": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 100
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ef": [],
|
||||||
|
"shapes": [
|
||||||
|
{
|
||||||
|
"ty": "gr",
|
||||||
|
"nm": "Rectangle 1",
|
||||||
|
"it": [
|
||||||
|
{
|
||||||
|
"ty": "rc",
|
||||||
|
"nm": "Rectangle Path 1",
|
||||||
|
"d": 1,
|
||||||
|
"p": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"r": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0
|
||||||
|
},
|
||||||
|
"s": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
554,
|
||||||
|
556
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ty": "fl",
|
||||||
|
"nm": "Fill 1",
|
||||||
|
"c": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0.972,
|
||||||
|
0.972,
|
||||||
|
0.972
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"r": 1,
|
||||||
|
"o": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 100
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ty": "tr",
|
||||||
|
"a": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"s": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
100,
|
||||||
|
100
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sk": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0
|
||||||
|
},
|
||||||
|
"p": {
|
||||||
|
"a": 0,
|
||||||
|
"k": [
|
||||||
|
-1,
|
||||||
|
6
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"r": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0
|
||||||
|
},
|
||||||
|
"sa": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 0
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"a": 0,
|
||||||
|
"k": 100
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ind": 4
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"v": "4.8.0",
|
||||||
|
"fr": 60,
|
||||||
|
"op": 130,
|
||||||
|
"ip": 0,
|
||||||
|
"assets": []
|
||||||
|
}
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M4.69737 2.72656C3.62187 2.72656 2.75 3.60067 2.75 4.67894V8.09561C2.75 11.268 5.07215 13.8967 8.10526 14.3662V16.6373C8.10526 19.7373 10.6119 22.2504 13.7039 22.2504C16.796 22.2504 19.3026 19.7373 19.3026 16.6373V16.2267C20.4373 15.8248 21.2503 14.7399 21.2503 13.4647C21.2503 11.8473 19.9425 10.5361 18.3293 10.5361C16.716 10.5361 15.4082 11.8473 15.4082 13.4647C15.4082 14.7397 16.2209 15.8244 17.3553 16.2265V16.6373C17.3553 18.659 15.7205 20.298 13.7039 20.298C11.6874 20.298 10.0526 18.659 10.0526 16.6373V14.3662C13.0857 13.8967 15.4079 11.268 15.4079 8.09561V4.67894C15.4079 3.60067 14.536 2.72656 13.4605 2.72656H12.4864C12.4864 2.18743 12.0505 1.75 11.5127 1.75C10.975 1.75 10.5391 2.18706 10.5391 2.72619V4.67857C10.5391 5.21771 10.975 5.65476 11.5127 5.65476C12.0504 5.65476 12.4862 5.21791 12.4864 4.67894H13.4605V8.09561C13.4605 10.5217 11.4988 12.4885 9.07895 12.4885C6.65907 12.4885 4.69737 10.5217 4.69737 8.09561V4.67894H5.6709C5.6711 5.21791 6.10696 5.65476 6.64458 5.65476C7.18233 5.65476 7.61827 5.21771 7.61827 4.67857V3.72029L7.61842 3.70275L7.61827 3.68521V2.72619C7.61827 2.18706 7.18233 1.75 6.64458 1.75C6.10683 1.75 5.6709 2.18706 5.6709 2.72619L4.69737 2.72656Z" fill="#ED1C2B"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.3 KiB |
@ -0,0 +1,12 @@
|
|||||||
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g clip-path="url(#clip0_123_1694)">
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.1707 14.3497C10.5714 14.8032 11.0146 15.2543 11.5 15.7023C17.0382 10.5947 17.0382 5.10758 11.5 0C6.78476 4.34883 5.73545 9.32859 10.1707 14.3497ZM10.1718 15.911C3.92212 15.6171 0.195938 9.24452 2.88528 4.02846L6.43631 6.16151C5.73147 9.74708 7.31949 13.0632 10.1718 15.911ZM12.8282 15.911C15.6808 13.0627 17.268 9.74761 16.5637 6.16151L20.1147 4.02846C22.8041 9.24425 19.0779 15.6171 12.8282 15.911Z" fill="#ED1C2B"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.693 17.7573C9.81603 17.3231 10.2356 16.9966 10.813 17H11.9329C12.4952 17.0001 12.9014 17.3397 13.0214 17.7543L13.349 18.1579L13.3494 18.1585C13.8212 18.7346 13.8213 19.5382 13.3497 20.1144L13.3477 20.1169L12.7117 20.8757L11.6381 19.628L12.425 18.6886C12.2703 18.6113 12.0914 18.5653 11.9136 18.5653H10.7927C10.606 18.5653 10.4204 18.6074 10.2652 18.6894L11.422 20.0704L12.3681 21.1759L14 23.1173L12.7678 24.1429L11.2826 22.3926L11.2821 22.3921L9.35486 20.1325L9.35305 20.1302C8.88204 19.5541 8.88234 18.751 9.35395 18.1751L9.693 17.7573ZM10.2311 18.0265C10.2311 17.7724 10.4296 17.5389 10.81 17.5414L10.8124 17.5414H11.9328C12.335 17.5415 12.5358 17.8463 12.4651 18.1152C12.2922 18.0573 12.105 18.0239 11.9136 18.0239H10.7927C10.6084 18.0239 10.4196 18.0515 10.2397 18.1096C10.234 18.0817 10.2311 18.0537 10.2311 18.0265Z" fill="#ED1C2B"/>
|
||||||
|
<path d="M10.1893 21.2858L11.1429 22.6576L10.1631 24.1429L9 23.0952L10.1893 21.2858Z" fill="#ED1C2B"/>
|
||||||
|
</g>
|
||||||
|
<defs>
|
||||||
|
<clipPath id="clip0_123_1694">
|
||||||
|
<rect width="24" height="24" fill="white"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.7 KiB |
@ -0,0 +1,7 @@
|
|||||||
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.7922 11.4353C15.3719 11.4353 15.9381 11.2775 16.4169 10.9824C16.903 11.2769 17.4767 11.4313 18.0621 11.4252L19.9216 10.8143C20.4456 10.4244 20.8053 9.88375 20.9406 9.28305C21.0759 8.6823 20.9784 8.05785 20.6646 7.5142C20.3508 6.97055 19.8397 6.54065 19.2168 6.29655C19.0745 5.7149 18.7163 5.1947 18.2014 4.82222L16.3862 4.24876H16.1819C15.7781 3.71696 15.172 3.33762 14.4787 3.18286L10.587 2.98535C9.94015 3.03388 9.33015 3.27744 8.85525 3.67686C8.63085 3.6291 8.40115 3.60434 8.1706 3.60306C7.61235 3.6041 7.06635 3.75097 6.59855 4.02596C6.13075 4.30094 5.7611 4.69228 5.53425 5.15275L4.05557 6.0983C3.68764 6.5483 3.48956 7.09315 3.49054 7.6525C3.4869 7.88635 3.52133 8.11945 3.59272 8.3443C3.20478 8.79875 2.99618 9.35715 3.00005 9.93085C2.99913 10.5963 3.28071 11.2367 3.78687 11.7204C3.82772 12.1967 4.01212 12.654 4.32011 13.0425C4.6281 13.4311 5.04795 13.7363 5.53425 13.925C6.09455 14.2421 6.569 14.6685 6.92265 15.1729C7.27635 15.6774 7.50025 16.247 7.57795 16.8398H8.93715V12.9682L7.61625 11.7941L6.72255 12.6879C6.52725 12.8831 6.2107 12.8831 6.0154 12.6879C5.82015 12.4926 5.82015 12.176 6.0154 11.9808L7.0574 10.9388L6.73985 9.1924L5.3272 8.48605C5.0802 8.36255 4.98009 8.0622 5.1036 7.8152C5.2271 7.56825 5.5274 7.4681 5.7744 7.5916L7.1578 8.2833L8.88865 7.1819L8.35535 5.75985C8.2584 5.5013 8.3894 5.2131 8.64795 5.1161C8.9065 5.01915 9.19475 5.15015 9.2917 5.4087L9.8605 6.9255H10.5599L10.8845 6.2763L10.4094 5.1676C10.3006 4.91379 10.4182 4.61985 10.672 4.51107C10.9258 4.4023 11.2198 4.51987 11.3285 4.77369L11.7414 5.7371L13.3913 6.03705C13.4005 6.0284 13.4102 6.02005 13.4202 6.01205L14.443 5.19385C14.6586 5.02135 14.9733 5.0563 15.1458 5.27195C15.3183 5.48755 15.2833 5.8022 15.0677 5.9747L14.3318 6.5634L15.1964 7.67495L15.5354 6.99705C15.6201 6.82765 15.7932 6.72065 15.9826 6.72065H17.2099C17.486 6.72065 17.7099 6.9445 17.7099 7.22065C17.7099 7.4968 17.486 7.72065 17.2099 7.72065H16.2916L16.082 8.13995L17.1138 8.3692C17.1537 8.3781 17.1923 8.3918 17.2289 8.4101L18.0471 8.8192C18.2941 8.9427 18.3942 9.243 18.2707 9.49C18.1472 9.737 17.8469 9.8371 17.5999 9.7136L16.8368 9.33205L15.0559 8.9363C14.9424 8.91105 14.8411 8.847 14.7697 8.7552L13.4552 7.06505L11.8235 6.7684C11.7927 6.79715 11.7578 6.8223 11.7192 6.84295L11.3689 7.54355V7.9479H12.0962C12.1739 7.9479 12.2504 7.966 12.3198 8.0007L13.9562 8.8189C14.2032 8.9424 14.3033 9.2427 14.1798 9.4897C14.0563 9.7367 13.756 9.8368 13.509 9.7133L11.9782 8.9479H11.3689V9.88005C11.3689 10.1562 11.1451 10.3801 10.8689 10.3801C10.5928 10.3801 10.3689 10.1562 10.3689 9.88005V7.9255H9.58275L7.7392 9.09865L8.0573 10.8482L9.76935 12.37C9.87605 12.4649 9.93715 12.6009 9.93715 12.7437V16.8398H11.3957V14.0725C11.395 13.5812 11.5469 13.0995 11.8341 12.6821C12.1212 12.2648 12.5322 11.9284 13.0205 11.7111C13.295 11.6163 13.3626 11.4887 13.4453 11.3323C13.5005 11.228 13.5624 11.111 13.6968 10.9824C13.8136 11.0544 13.9041 11.1182 13.9826 11.1735C14.2259 11.3451 14.3538 11.4353 14.7922 11.4353Z" fill="#ED1C2B"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.5 19.0001H7.5V18.0001H11.5V19.0001Z" fill="#ED1C2B"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.5 21.0001H7.5V20.0001H11.5V21.0001Z" fill="#ED1C2B"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M15.4851 16.5301C15.5712 16.2262 15.8649 15.9976 16.2691 16H17.053C17.4466 16 17.731 16.2378 17.815 16.528L18.0443 16.8106L18.0446 16.8109C18.3748 17.2142 18.3749 17.7767 18.0448 18.1801L18.0434 18.1818L17.5982 18.713L16.8466 17.8396L17.3975 17.182C17.2892 17.1279 17.1639 17.0957 17.0395 17.0957H16.2549C16.1242 17.0957 15.9943 17.1252 15.8856 17.1826L16.6954 18.1493L17.3577 18.9231L18.5 20.2821L17.6374 21L16.5978 19.7748L16.5975 19.7744L15.2484 18.1927L15.2471 18.1912C14.9174 17.7878 14.9176 17.2257 15.2478 16.8225L15.4851 16.5301ZM15.8617 16.7185C15.8617 16.5407 16.0007 16.3772 16.267 16.379L16.2687 16.379H17.053C17.3345 16.379 17.475 16.5924 17.4256 16.7807C17.3045 16.7401 17.1735 16.7167 17.0395 16.7167H16.2549C16.1259 16.7167 15.9937 16.736 15.8678 16.7768C15.8638 16.7572 15.8617 16.7376 15.8617 16.7185Z" fill="#ED1C2B"/>
|
||||||
|
<path d="M15.8325 19L16.5 19.9603L15.8142 21L15 20.2666L15.8325 19Z" fill="#ED1C2B"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 4.2 KiB |
@ -0,0 +1,3 @@
|
|||||||
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M14 13.4143V17.0729C14 18.2086 14.7655 19.2016 15.8638 19.4906L18.9558 20.3043C20.8922 20.8139 22.612 18.9539 21.9526 17.0633L18.816 8.06961C18.514 7.20375 17.7584 6.57556 16.852 6.43678C15.352 6.20712 14 7.36788 14 8.88533V10.5859L13 9.58591V4H11V9.58582L10 10.5858V8.88533C10 7.36788 8.64799 6.20712 7.14802 6.43678C6.24157 6.57556 5.48596 7.20375 5.18399 8.06961L2.04736 17.0633C1.388 18.9539 3.1078 20.8139 5.04415 20.3043L8.13623 19.4906C9.23452 19.2016 10 18.2086 10 17.0729V13.4142L12 11.4143L14 13.4143Z" fill="#ED1C2B"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 642 B |
@ -0,0 +1,11 @@
|
|||||||
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M12.0277 13.6422C11.6388 13.2533 11.1657 12.9811 10.651 12.8489C10.5188 12.3343 10.2466 11.8612 9.85773 11.4723C9.33381 10.9483 8.6591 10.6359 7.95807 10.5929C7.24837 10.5452 6.59193 10.7867 6.11632 11.262C5.22393 12.1544 5.22362 13.6379 6.08381 14.7266L2.06961 18.7408C1.97672 18.8337 1.97672 18.9842 2.06961 19.0771L4.42289 21.4303C4.46933 21.4768 4.53003 21.5 4.59102 21.5C4.65202 21.5 4.71271 21.4768 4.75916 21.4303L8.77336 17.4161C9.86237 18.276 11.3459 18.2754 12.2379 17.3836C12.7136 16.908 12.951 16.2541 12.9071 15.5419C12.864 14.8409 12.5516 14.1661 12.0277 13.6422Z" fill="#ED1C2B"/>
|
||||||
|
<path d="M21.4303 4.42295L19.077 2.06967C18.9841 1.97678 18.8337 1.97678 18.7408 2.06967L14.7266 6.08387C13.6372 5.22337 12.1538 5.2243 11.262 6.11638C10.7864 6.59199 10.5489 7.24596 10.5928 7.95813C10.6359 8.65916 10.9483 9.33387 11.4722 9.85779C11.8611 10.2467 12.3343 10.5189 12.8489 10.6511C12.9811 11.1657 13.2533 11.6388 13.6422 12.0278C14.1661 12.5517 14.8408 12.8641 15.5419 12.9071C15.5976 12.9109 15.6533 12.9124 15.7084 12.9124C16.3556 12.9124 16.9455 12.6761 17.3836 12.238C18.276 11.3456 18.2763 9.86212 17.4161 8.77342L21.4303 4.75922C21.5232 4.66633 21.5232 4.51584 21.4303 4.42295Z" fill="#ED1C2B"/>
|
||||||
|
<path d="M16.8526 16.5163C16.7597 16.4234 16.6092 16.4234 16.5163 16.5163C16.4234 16.6092 16.4234 16.7597 16.5163 16.8526L19.3799 19.7162C19.4263 19.7626 19.487 19.7859 19.548 19.7859C19.609 19.7859 19.6697 19.7626 19.7162 19.7162C19.8091 19.6233 19.8091 19.4728 19.7162 19.3799L16.8526 16.5163Z" fill="#ED1C2B"/>
|
||||||
|
<path d="M19.4053 16.4445C19.4427 16.4662 19.4836 16.4764 19.5239 16.4764C19.6062 16.4764 19.6861 16.4337 19.7301 16.3575C19.7957 16.2438 19.7567 16.0983 19.6431 16.0327L17.9125 15.0332C17.7985 14.9672 17.653 15.0068 17.5877 15.1202C17.522 15.2338 17.561 15.3793 17.6747 15.445L19.4053 16.4445Z" fill="#ED1C2B"/>
|
||||||
|
<path d="M15.4449 17.6747C15.3792 17.5614 15.2343 17.5217 15.1201 17.5877C15.0064 17.6533 14.9674 17.7989 15.0331 17.9125L16.0326 19.6431C16.0766 19.7193 16.1564 19.762 16.2388 19.762C16.2791 19.762 16.3199 19.7518 16.3574 19.7301C16.471 19.6645 16.5101 19.5189 16.4444 19.4053L15.4449 17.6747Z" fill="#ED1C2B"/>
|
||||||
|
<path d="M6.6474 6.9837C6.69384 7.03014 6.75454 7.05337 6.81553 7.05337C6.87653 7.05337 6.93722 7.03014 6.98367 6.9837C7.07656 6.8908 7.07656 6.74032 6.98367 6.64742L4.1201 3.78386C4.02721 3.69096 3.87672 3.69096 3.78383 3.78386C3.69093 3.87675 3.69093 4.02724 3.78383 4.12013L6.6474 6.9837Z" fill="#ED1C2B"/>
|
||||||
|
<path d="M8.05504 5.82531C8.099 5.90148 8.17889 5.94421 8.26126 5.94421C8.30151 5.94421 8.34238 5.93399 8.37985 5.91232C8.49349 5.84668 8.5325 5.70114 8.46686 5.58751L7.46733 3.85692C7.402 3.74359 7.25647 3.70364 7.14252 3.76991C7.02888 3.83555 6.98987 3.98108 7.05551 4.09472L8.05504 5.82531Z" fill="#ED1C2B"/>
|
||||||
|
<path d="M4.09471 7.05554C3.98076 6.98927 3.83523 7.02922 3.7699 7.14254C3.70425 7.25618 3.74327 7.40171 3.8569 7.46736L5.58749 8.46688C5.62496 8.48856 5.66583 8.49877 5.70609 8.49877C5.78845 8.49877 5.86834 8.45604 5.91231 8.37987C5.97795 8.26623 5.93894 8.1207 5.8253 8.05506L4.09471 7.05554Z" fill="#ED1C2B"/>
|
||||||
|
<path d="M15.9419 15.1248C16.438 14.6287 16.6406 13.9358 16.5318 13.2721C16.2687 13.3481 15.9912 13.388 15.7054 13.388C14.8309 13.388 13.9562 13.0149 13.306 12.364C12.9266 11.985 12.6387 11.5268 12.4674 11.0326C11.9733 10.8613 11.515 10.5734 11.136 10.1941C10.53 9.5884 10.1684 8.80469 10.1179 7.98755C10.096 7.63243 10.1367 7.29018 10.2294 6.96861C9.56544 6.85956 8.87159 7.06215 8.37522 7.55808L7.55807 8.37522C7.06196 8.87133 6.85942 9.56423 6.96824 10.2279C7.23132 10.1519 7.50884 10.112 7.79464 10.112C8.66906 10.112 9.5438 10.4851 10.1941 11.136C10.5734 11.515 10.8613 11.9733 11.0326 12.4675C11.5267 12.6387 11.985 12.9266 12.364 13.306C12.97 13.9116 13.3317 14.6953 13.3821 15.5125C13.404 15.8683 13.3632 16.2112 13.2701 16.5333C13.3857 16.5523 13.5018 16.5653 13.6181 16.5653C14.1696 16.5649 14.7148 16.3519 15.1248 15.9419L15.9419 15.1248Z" fill="#ED1C2B"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 6.9 KiB |
@ -0,0 +1,3 @@
|
|||||||
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M1.25 10.8866C1.25 5.56426 5.56566 1.25 10.8889 1.25C16.2121 1.25 20.5278 5.56426 20.5278 10.8866C20.5278 11.5059 20.5302 11.7168 20.5438 11.8084C20.5796 12.0492 20.6912 12.2657 20.886 12.6436L22.6666 16.097C22.7585 16.2752 22.7752 16.4829 22.713 16.6735C22.6507 16.8641 22.5147 17.0219 22.3353 17.1116L20.936 17.8111C20.5606 17.9987 20.3663 18.4489 20.3162 18.6505C20.2273 19.1222 20.1252 19.6648 19.9693 20.1765C19.8118 20.6934 19.583 21.2377 19.207 21.685C18.9396 22.0032 18.6083 22.2618 18.2347 22.444C17.8884 22.6129 17.529 22.682 17.1387 22.7142C16.7666 22.7448 16.3152 22.7448 15.7739 22.7448C15.2226 22.7448 14.9469 22.7448 14.7039 22.6829C14.2108 22.5573 13.7841 22.2485 13.5108 21.8193C13.3761 21.6079 13.2899 21.346 13.1177 20.8222L12.75 19.7043C12.6113 19.078 12.4142 18.9543 12 18.9543C11.5858 18.9543 11.25 19.2901 11.25 19.7043V22.1448C11.25 22.4277 11.25 22.5691 11.1621 22.6569C11.0743 22.7448 10.9328 22.7448 10.65 22.7448H7.73159H7.73155C7.03965 22.7448 6.46231 22.7448 5.99567 22.6958C5.50682 22.6445 5.05422 22.5327 4.65004 22.2511C4.38338 22.0653 4.15177 21.8337 3.96595 21.567C3.6843 21.1628 3.57256 20.7101 3.52121 20.2212C3.47219 19.7544 3.4722 19.1769 3.47222 18.4848L3.47222 18.4451C3.47222 17.8825 3.39973 17.4863 3.26761 17.1162C3.12947 16.7293 2.91727 16.3434 2.58951 15.79C1.73836 14.353 1.25 12.6757 1.25 10.8866ZM13.0819 7.24368C13.1157 6.43729 12.5782 5.91314 11.8795 5.77944C11.3317 5.67462 10.7906 5.82955 10.4556 6.26007C10.9509 6.79327 11.2543 7.50956 11.2543 8.29622C11.2543 8.71044 10.9185 9.04622 10.5043 9.04622C10.09 9.04622 9.75426 8.71044 9.75426 8.29622C9.75426 7.78047 9.49471 7.3274 9.09966 7.06077C8.52399 6.67223 7.82699 6.79531 7.32288 7.26537C6.82528 7.72936 6.64477 8.41305 7.01995 9.05188C7.1461 9.26667 7.15738 9.53008 7.05005 9.75487C6.94271 9.97965 6.73078 10.1365 6.48444 10.1734C5.97625 10.2496 5.71683 10.6521 5.753 11.1552C5.78897 11.6554 6.09976 12.0147 6.6205 12.0147C6.92698 12.0147 7.20007 11.8626 7.36777 11.6228C7.60519 11.2834 8.07281 11.2007 8.41222 11.4381C8.75164 11.6756 8.83433 12.1432 8.59691 12.4826C8.16215 13.1041 7.43989 13.5147 6.6205 13.5147C5.13373 13.5147 4.3354 12.3552 4.25686 11.2628C4.19639 10.4215 4.55267 9.47627 5.39157 8.98821C5.13231 7.89747 5.57574 6.84357 6.29992 6.16831C7.02595 5.49132 8.11917 5.1175 9.18486 5.45134C9.8903 4.43645 11.1079 4.10456 12.1614 4.30617C13.2036 4.5056 14.2001 5.24841 14.4955 6.43118C15.1978 6.45853 15.7724 6.7538 16.167 7.21533C16.568 7.68429 16.75 8.28373 16.75 8.85478C16.75 9.42584 16.568 10.0253 16.167 10.4942C15.888 10.8206 15.519 11.0638 15.0785 11.1879C14.9888 11.6748 14.796 12.1455 14.4865 12.5401C14.0237 13.1303 13.3236 13.5147 12.4461 13.5147C12.0456 13.5147 11.7747 13.6744 11.5861 13.9149C11.3825 14.1745 11.2543 14.5609 11.2543 14.9989C11.2543 15.4131 10.9185 15.7489 10.5043 15.7489C10.09 15.7489 9.75426 15.4131 9.75426 14.9989C9.75426 14.291 9.95792 13.5603 10.4058 12.9893C10.8686 12.3991 11.5687 12.0147 12.4461 12.0147C12.8467 12.0147 13.1176 11.855 13.3062 11.6145C13.4096 11.4826 13.4936 11.318 13.5512 11.1306C13.2627 11.0235 13.0003 10.8628 12.7763 10.661C12.4686 10.3837 12.4439 9.90945 12.7212 9.60173C12.9985 9.29401 13.4727 9.26933 13.7804 9.5466C13.943 9.69305 14.1548 9.78046 14.388 9.78046C14.7115 9.78046 14.9043 9.66291 15.027 9.51939C15.1633 9.35997 15.25 9.12156 15.25 8.85478C15.25 8.588 15.1633 8.34959 15.027 8.19017C14.9043 8.04665 14.7115 7.9291 14.388 7.9291C14.28 7.9291 14.1779 7.94774 14.0835 7.98144C13.8486 8.06539 13.5873 8.02701 13.3864 7.87906C13.1855 7.7311 13.0714 7.49295 13.0819 7.24368Z" fill="#ED1C2B"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 3.6 KiB |
@ -0,0 +1,3 @@
|
|||||||
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.9177 17.1835C8.93589 17.1253 7.14837 16.8877 5.69633 16.2538L3.25267 17.1194C2.84786 17.2629 2.51312 17.1865 2.29552 17.0038C2.07606 16.8195 1.94409 16.5026 2.02305 16.077L2.02342 16.0763L2.54129 13.319C2.43972 12.9146 2.00526 11.0955 2.00526 9.59937C2.00526 8.10174 2.44046 6.28086 2.54129 5.87939L2.20877 4.06184L2.02379 3.12619C2.02379 3.12471 2.02342 3.12322 2.02305 3.12174C1.94409 2.69618 2.07606 2.37923 2.29552 2.19499C2.51312 2.01223 2.84786 1.93587 3.25267 2.07933L5.69596 2.94492C7.41156 2.1961 9.59499 2 12.0142 2C14.4334 2 16.6172 2.19647 18.3324 2.94492L20.7757 2.07933C21.1805 1.93587 21.5156 2.01223 21.7332 2.19499C21.9523 2.37923 22.0843 2.69618 22.0053 3.12174C22.005 3.12322 22.005 3.12471 22.0046 3.12619L21.8196 4.06184L21.4871 5.87902C21.5883 6.2816 22.0231 8.10508 22.0231 9.59937C22.0231 10.9673 21.6587 12.6102 21.5197 13.1874C20.4339 11.7936 18.7402 10.8968 16.8385 10.8968C13.5648 10.8968 10.9073 13.5544 10.9073 16.828C10.9073 16.9474 10.911 17.066 10.9177 17.1835ZM13.2049 9.65757C14.5079 9.29354 15.4799 8.18589 15.7256 6.82208C15.752 6.67454 15.6871 6.52552 15.5614 6.44471C15.4354 6.36352 15.273 6.36612 15.1496 6.45138C14.7785 6.70865 14.3585 6.904 13.8729 6.904C12.6006 6.904 11.5693 5.87234 11.5693 4.59973C11.5693 4.11411 11.7647 3.6941 12.0216 3.32303C12.1069 3.19996 12.1095 3.03759 12.0286 2.91155C11.9475 2.78552 11.7984 2.72064 11.6513 2.74733C10.1388 3.0198 8.94145 4.18454 8.72385 5.70516C7.82415 5.95353 7.13206 6.68752 6.95486 7.60092C5.78307 7.61909 4.88857 8.4413 4.88857 9.3877C4.88857 10.3452 5.80346 11.1752 6.9949 11.1752H11.123C12.2007 11.1752 13.0522 10.4961 13.2049 9.65757ZM9.39593 6.54146C10.9114 6.54146 10.9143 8.09803 10.9128 8.12324C10.901 8.36234 11.073 8.57142 11.3102 8.60552C11.8337 8.68003 12.3026 8.94583 12.3026 9.3877C12.3026 9.89371 11.7525 10.2485 11.123 10.2485H6.9949C6.36507 10.2485 5.81532 9.89371 5.81532 9.3877C5.81532 8.8817 6.36507 8.5273 6.9949 8.5273H7.37375C7.62991 8.5273 7.83713 8.31971 7.83713 8.06393C7.83713 7.22058 8.53738 6.54146 9.39593 6.54146ZM9.49305 5.61582C9.67432 4.78915 10.2319 4.11707 10.974 3.74526C10.8817 4.01328 10.8279 4.29761 10.8279 4.59973C10.8279 6.28197 12.1914 7.64541 13.8729 7.64541C14.1754 7.64541 14.4597 7.59166 14.7274 7.49935C14.4 8.15401 13.8392 8.66484 13.1441 8.9006C12.9517 8.36902 12.4512 7.95124 11.8029 7.76514C11.6943 7.0571 11.255 5.66512 9.49305 5.61582ZM11.6487 16.828C11.6487 13.9618 13.9722 11.6382 16.8385 11.6382C19.7048 11.6382 22.0283 13.9618 22.0283 16.828C22.0283 19.6943 19.7048 22.0179 16.8385 22.0179C13.9722 22.0179 11.6487 19.6943 11.6487 16.828ZM13.1315 16.828C13.1315 18.8754 14.7911 20.5351 16.8385 20.5351C18.8859 20.5351 20.5455 18.8754 20.5455 16.828C20.5455 14.7807 18.8859 13.121 16.8385 13.121C14.7911 13.121 13.1315 14.7807 13.1315 16.828ZM13.8729 16.828C13.8729 15.1903 15.2007 13.8624 16.8385 13.8624C18.4763 13.8624 19.8041 15.1903 19.8041 16.828C19.8041 18.4658 18.4763 19.7937 16.8385 19.7937C15.2007 19.7937 13.8729 18.4658 13.8729 16.828ZM14.8475 16.4307L16.701 17.1721C16.8151 17.218 16.9445 17.2039 17.0465 17.135C17.148 17.066 17.2092 16.9511 17.2092 16.828L17.204 14.9745C17.204 14.7699 17.0379 14.6038 16.8333 14.6038C16.6287 14.6038 16.4626 14.7699 16.4626 14.9745L16.4678 16.2805L15.1225 15.7426C14.9327 15.6666 14.7166 15.7589 14.641 15.9491C14.565 16.1389 14.6573 16.355 14.8475 16.4307Z" fill="#ED1C2B"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 3.4 KiB |