Compare commits
313 Commits
dev_v3.13.
...
dev_v3.13.
| Author | SHA1 | Date |
|---|---|---|
|
|
8e3f20794d | 8 months ago |
|
|
c1dae542c9 | 10 months ago |
|
|
220c954a4a | 10 months ago |
|
|
303e9114a3 | 10 months ago |
|
|
fff45cd3a8 | 10 months ago |
|
|
1ee86d0813 | 11 months ago |
|
|
0c3ef15895 | 11 months ago |
|
|
f7599a47e7 | 11 months ago |
|
|
a0528da4cd | 11 months ago |
|
|
cb68731679 | 11 months ago |
|
|
f56a1627db | 11 months ago |
|
|
260edfa303 | 11 months ago |
|
|
5fc939bf1e | 11 months ago |
|
|
f621f8c8d1 | 11 months ago |
|
|
f8a66a58f8 | 11 months ago |
|
|
57415bd670 | 11 months ago |
|
|
390455e5a2 | 11 months ago |
|
|
ec96fecf2f | 11 months ago |
|
|
bdcda02b26 | 11 months ago |
|
|
68eab7639c | 11 months ago |
|
|
cb7a444d83 | 11 months ago |
|
|
c1212c2c6a | 11 months ago |
|
|
4564b42018 | 11 months ago |
|
|
d921b1d081 | 11 months ago |
|
|
b308079255 | 11 months ago |
|
|
7a821a4604 | 11 months ago |
|
|
a2dd8f2e35 | 11 months ago |
|
|
4cde49cb51 | 11 months ago |
|
|
bbf18baade | 11 months ago |
|
|
2e9f6bcb51 | 11 months ago |
|
|
8d23ea6fda | 12 months ago |
|
|
9074bf2e65 | 12 months ago |
|
|
b46eb6214e | 12 months ago |
|
|
4b40d5d5a0 | 12 months ago |
|
|
5dbd97aa46 | 12 months ago |
|
|
556ff02e64 | 12 months ago |
|
|
e3b75b18c8 | 12 months ago |
|
|
cb8eb316ec | 12 months ago |
|
|
159135bb77 | 12 months ago |
|
|
88cd6f811a | 12 months ago |
|
|
ca965a6d06 | 12 months ago |
|
|
e6fcb1fddf | 12 months ago |
|
|
951a5a4932 | 12 months ago |
|
|
ae4c287af2 | 12 months ago |
|
|
8ffcebc44e | 12 months ago |
|
|
9590d268a0 | 1 year ago |
|
|
a1600dbfce | 1 year ago |
|
|
0dc32e061f | 1 year ago |
|
|
d865bd9c3b | 1 year ago |
|
|
7842f95d7b | 1 year ago |
|
|
e876eaaa33 | 1 year ago |
|
|
d4c741e1ec | 1 year ago |
|
|
21fda7987a | 1 year ago |
|
|
e5198f093a | 1 year ago |
|
|
e2efc3749c | 1 year ago |
|
|
91b9e792c6 | 1 year ago |
|
|
c2785c5f68 | 1 year ago |
|
|
7ed401fb1c | 1 year ago |
|
|
0706d9f5f9 | 1 year ago |
|
|
889828d4d4 | 1 year ago |
|
|
8b74c9df61 | 1 year ago |
|
|
e66e42edda | 1 year ago |
|
|
b93d373c6f | 1 year ago |
|
|
2c746bf783 | 1 year ago |
|
|
81ddb81b8e | 1 year ago |
|
|
3bf1e3fceb | 1 year ago |
|
|
08965c72c8 | 1 year ago |
|
|
b445d1d59e | 1 year ago |
|
|
1080a59106 | 1 year ago |
|
|
2c5be020e9 | 1 year ago |
|
|
7d33ace5c9 | 1 year ago |
|
|
f74a3301da | 1 year ago |
|
|
744e3978d3 | 1 year ago |
|
|
a24582a578 | 1 year ago |
|
|
04413aa7d6 | 1 year ago |
|
|
6cf86e2e84 | 1 year ago |
|
|
06192292d0 | 1 year ago |
|
|
2a37777b9a | 1 year ago |
|
|
c2f38f1b7f | 1 year ago |
|
|
2ab0d0b682 | 1 year ago |
|
|
0221cb1250 | 1 year ago |
|
|
d98f2c31a2 | 1 year ago |
|
|
7cafe3aaa9 | 1 year ago |
|
|
11b83d1276 | 1 year ago |
|
|
c77ffb1730 | 1 year ago |
|
|
780f645cbe | 1 year ago |
|
|
a31c677919 | 1 year ago |
|
|
95a4d8dd14 | 1 year ago |
|
|
880611f7bb | 1 year ago |
|
|
e9accb00ef | 1 year ago |
|
|
62bc29d450 | 1 year ago |
|
|
bd3dca6719 | 1 year ago |
|
|
59335ac04d | 1 year ago |
|
|
8509c3d94d | 1 year ago |
|
|
c4de4c1bd9 | 1 year ago |
|
|
b677be9e3c | 1 year ago |
|
|
ff7afe5997 | 1 year ago |
|
|
4bfaf0a0d8 | 1 year ago |
|
|
21b2fae806 | 1 year ago |
|
|
f52aed49fd | 1 year ago |
|
|
c6787ff966 | 1 year ago |
|
|
615f3bfa8e | 1 year ago |
|
|
cd460ee31b | 1 year ago |
|
|
229efb2e25 | 1 year ago |
|
|
c72892b1a6 | 1 year ago |
|
|
32cf61d1bf | 1 year ago |
|
|
b5eaedb721 | 1 year ago |
|
|
3f22d69058 | 1 year ago |
|
|
0e73d6d23e | 1 year ago |
|
|
e0de0768b6 | 1 year ago |
|
|
ab33d06b91 | 1 year ago |
|
|
6f0f422adf | 1 year ago |
|
|
65d7f3f9b9 | 1 year ago |
|
|
d474eb9a24 | 1 year ago |
|
|
9909cfaa57 | 1 year ago |
|
|
291cf16d22 | 1 year ago |
|
|
baa7790b89 | 1 year ago |
|
|
545cfcd6d9 | 1 year ago |
|
|
924c111771 | 1 year ago |
|
|
cfcba179c4 | 1 year ago |
|
|
b80e171d25 | 1 year ago |
|
|
1561a776e3 | 1 year ago |
|
|
cd7da0dd70 | 1 year ago |
|
|
21403a2bba | 1 year ago |
|
|
849164be2c | 1 year ago |
|
|
931e748a54 | 1 year ago |
|
|
dff03796e9 | 1 year ago |
|
|
c58cbae99c | 1 year ago |
|
|
1cadee754e | 1 year ago |
|
|
20bfdc3652 | 1 year ago |
|
|
091f3b0830 | 1 year ago |
|
|
8e46738982 | 1 year ago |
|
|
0bdfa9157b | 1 year ago |
|
|
41b0e65e41 | 1 year ago |
|
|
068b6c8494 | 1 year ago |
|
|
f58e07d789 | 1 year ago |
|
|
7188919172 | 1 year ago |
|
|
82de56266e | 1 year ago |
|
|
d9b4b1575d | 1 year ago |
|
|
2997f49a95 | 1 year ago |
|
|
6386da8936 | 1 year ago |
|
|
9d444ccca3 | 1 year ago |
|
|
71542e9db6 | 1 year ago |
|
|
6a555ace41 | 1 year ago |
|
|
42dbe066fd | 1 year ago |
|
|
18b4fc5317 | 1 year ago |
|
|
14a5fec61a | 1 year ago |
|
|
3d44aa2e64 | 1 year ago |
|
|
3071a20b8a | 1 year ago |
|
|
c6ee01c652 | 1 year ago |
|
|
605f02afe2 | 1 year ago |
|
|
073cb9f7e8 | 1 year ago |
|
|
cee903dd6b | 1 year ago |
|
|
7ddd932c51 | 1 year ago |
|
|
34ffec93fd | 1 year ago |
|
|
a6ee6869cc | 1 year ago |
|
|
81b94814ce | 1 year ago |
|
|
ecd4422905 | 1 year ago |
|
|
fb13096f94 | 1 year ago |
|
|
05abea2d53 | 1 year ago |
|
|
fe9d259cbd | 1 year ago |
|
|
b042292f9a | 1 year ago |
|
|
69493934b1 | 1 year ago |
|
|
057994dfd2 | 1 year ago |
|
|
936682ff95 | 1 year ago |
|
|
cf72ffe9ce | 1 year ago |
|
|
8cc1e08421 | 1 year ago |
|
|
8862cc6c06 | 1 year ago |
|
|
1e98539537 | 2 years ago |
|
|
fd70387b2d | 2 years ago |
|
|
ef36e8bd30 | 2 years ago |
|
|
06c0580d84 | 2 years ago |
|
|
03e5604f68 | 2 years ago |
|
|
e4d0b93c9f | 2 years ago |
|
|
7b4a98bbb9 | 2 years ago |
|
|
f80892b630 | 2 years ago |
|
|
633059b0be | 2 years ago |
|
|
b64cf0bf6c | 2 years ago |
|
|
faeba6a14c | 2 years ago |
|
|
e14dc10c1c | 2 years ago |
|
|
92ccbaa2b5 | 2 years ago |
|
|
49c11537b3 | 2 years ago |
|
|
db91921de1 | 2 years ago |
|
|
88940d2c54 | 2 years ago |
|
|
c6e74e73d0 | 2 years ago |
|
|
3aaaf3c01c | 2 years ago |
|
|
5883b06fcb | 2 years ago |
|
|
e045c375d2 | 2 years ago |
|
|
2b293d3c96 | 2 years ago |
|
|
f42223292a | 2 years ago |
|
|
6c98f9f94f | 2 years ago |
|
|
536c95c825 | 2 years ago |
|
|
b6ba9fff2f | 2 years ago |
|
|
dc17576c26 | 2 years ago |
|
|
6f0cfebc89 | 2 years ago |
|
|
21c29e6355 | 2 years ago |
|
|
b6adfb2534 | 2 years ago |
|
|
1c66351011 | 2 years ago |
|
|
e193568aaf | 2 years ago |
|
|
771b20f21c | 2 years ago |
|
|
60a35032e5 | 2 years ago |
|
|
145cd6010a | 2 years ago |
|
|
7065b00c5c | 2 years ago |
|
|
e27594d017 | 2 years ago |
|
|
72d459ce10 | 2 years ago |
|
|
ae7fbbfb98 | 2 years ago |
|
|
94c3992c8d | 2 years ago |
|
|
f83d538472 | 2 years ago |
|
|
7ca806571f | 2 years ago |
|
|
787a3d8662 | 2 years ago |
|
|
1ee19ac696 | 2 years ago |
|
|
e996653253 | 2 years ago |
|
|
05d0d2d5a7 | 2 years ago |
|
|
6efb316377 | 2 years ago |
|
|
2d82b97680 | 2 years ago |
|
|
29830f4f55 | 2 years ago |
|
|
cba8369a51 | 2 years ago |
|
|
a5d68bf470 | 2 years ago |
|
|
87c7dcb68a | 2 years ago |
|
|
029f174a6c | 2 years ago |
|
|
96b7fea5c9 | 2 years ago |
|
|
1e8953538a | 2 years ago |
|
|
147fb6cee8 | 2 years ago |
|
|
76545bd152 | 2 years ago |
|
|
393ea45d2c | 2 years ago |
|
|
6d2484e6ac | 2 years ago |
|
|
f714d17686 | 2 years ago |
|
|
f8d797f80a | 2 years ago |
|
|
98389e3f68 | 2 years ago |
|
|
9f629afb9c | 2 years ago |
|
|
f36fc4d88d | 2 years ago |
|
|
d3d8d1f121 | 2 years ago |
|
|
50ba0372db | 2 years ago |
|
|
34778d91d7 | 2 years ago |
|
|
baaacdb2f8 | 2 years ago |
|
|
0eb0a94f48 | 2 years ago |
|
|
cab1854cce | 2 years ago |
|
|
a39d2840e0 | 2 years ago |
|
|
66ec7b5ca4 | 2 years ago |
|
|
ed037edf22 | 2 years ago |
|
|
8838eb4769 | 2 years ago |
|
|
5e8fe20f52 | 2 years ago |
|
|
b1432280a1 | 2 years ago |
|
|
fb4cf08b89 | 2 years ago |
|
|
11a43eb0ae | 2 years ago |
|
|
53015422e5 | 2 years ago |
|
|
43741e24cf | 2 years ago |
|
|
0eaeb75207 | 2 years ago |
|
|
82e933a06f | 2 years ago |
|
|
4c5ba6048f | 2 years ago |
|
|
1b545c4d0b | 2 years ago |
|
|
ca8533190a | 2 years ago |
|
|
adf00e101f | 2 years ago |
|
|
31aa09e35b | 2 years ago |
|
|
d65325f998 | 2 years ago |
|
|
554548bc9a | 2 years ago |
|
|
9501c2ea9a | 2 years ago |
|
|
984459d314 | 2 years ago |
|
|
b3f2904e9a | 2 years ago |
|
|
1094d297f4 | 2 years ago |
|
|
52e63fe5e4 | 2 years ago |
|
|
d0e743dcc9 | 2 years ago |
|
|
f6b89e1ae6 | 2 years ago |
|
|
752d5e5944 | 2 years ago |
|
|
4dc0a3f6c2 | 2 years ago |
|
|
84159656b6 | 2 years ago |
|
|
8a319cc2f2 | 2 years ago |
|
|
8f9882fc5c | 2 years ago |
|
|
88d79367ba | 2 years ago |
|
|
de5317ae55 | 2 years ago |
|
|
8edf65daf1 | 2 years ago |
|
|
c948a1780c | 2 years ago |
|
|
be4022cee5 | 2 years ago |
|
|
e9404f1656 | 2 years ago |
|
|
2b560840aa | 2 years ago |
|
|
02878b7df9 | 2 years ago |
|
|
0ef716f536 | 2 years ago |
|
|
2e25940b62 | 2 years ago |
|
|
515896c265 | 2 years ago |
|
|
76f5fc2ef8 | 2 years ago |
|
|
69ed32917f | 2 years ago |
|
|
5b7b40c732 | 2 years ago |
|
|
6c9ab32d98 | 2 years ago |
|
|
c97fd25cdd | 2 years ago |
|
|
e962469c7e | 2 years ago |
|
|
d9cf383648 | 2 years ago |
|
|
9a0a658083 | 2 years ago |
|
|
3a64858905 | 2 years ago |
|
|
f65fe26fd2 | 2 years ago |
|
|
3a65113149 | 2 years ago |
|
|
f5df1b1d01 | 2 years ago |
|
|
704d691816 | 2 years ago |
|
|
51bbc42ca9 | 2 years ago |
|
|
21e4bb5138 | 2 years ago |
|
|
9c957741b4 | 2 years ago |
|
|
011f5b1f57 | 2 years ago |
|
|
eefdb1fa3e | 2 years ago |
|
|
582f1f1566 | 2 years ago |
|
|
29c2fd067e | 2 years ago |
|
|
8441a0ef00 | 2 years ago |
|
|
0588e68c67 | 2 years ago |
|
|
672d0b7e8c | 2 years ago |
|
|
9a102be7c7 | 2 years ago |
|
|
96d5c3ce1d | 2 years ago |
|
|
5f90435442 | 2 years ago |
|
|
6e30df2a29 | 2 years ago |
|
|
4c0d758dd1 | 2 years ago |
|
|
9ab10eebce | 2 years ago |
|
|
37aa700b2e | 2 years ago |
|
|
faf3bbdd9e | 2 years ago |
|
|
7d2744d29c | 2 years ago |
|
|
47ccf68b3a | 2 years ago |
|
|
a6a541b903 | 2 years ago |
@ -0,0 +1,15 @@
|
||||
-----BEGIN CERTIFICATE REQUEST-----
|
||||
MIICajCCAVICAQAwJTEjMCEGCSqGSIb3DQEJARYUSGFyb29uNjEzOEBnbWFpbC5j
|
||||
b20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC4E8y9zluekbsXX6+i
|
||||
HLa0GrZE+r8rJsmcNyhiONDkpCTQuuidRb4PH+DWPpxwtndKpgzPemCXavaAPY8I
|
||||
vSf5/aLTzClLvuX4OqNsb9Y8v8jlt7uYud6hPYK+VKZmIyynqeHldur0+RQScVY7
|
||||
Z4MbgxWYAXd0K49o1Vj8KcYP1G37XIaUwOf+Ib3az4abnrsou7w9PSHnKREPU1A8
|
||||
syBR56/Zcm3I9e+4nLyk2kjhkp6zR8KKW3s0teqHkW+V2nqd6eU+ZwOOmP3FVuwl
|
||||
X+kfVabTc42Nb7toDaIvxEI+LlrNCUTCptE5uvY+vId0bwjcL88Ti9zshPETgLd8
|
||||
F7mHAgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAQEAMTsBtXA79BL7aJoe87iHwCaR
|
||||
lyOoeG5vUVJhQxhkb7pXD6TT00H3DEn43MCD+Nu9KNq3ZAARTsbnoB1MzYQ+Qs0w
|
||||
uIx3K+sKKqzo3tKY78cjpKYW68qSY8QHPH8z0PJ/a18Mz1VGjhV9sanRc57fkf8Y
|
||||
SfzG+jKB+y9AeC4R5PAVkv/EScZKVyb8+hFNZRMBOfnME7QRWm51MlnzfgavB/Sr
|
||||
SSb9KrKzA65UKM9fv0JhNftiFVwsMDA42RuwSE7rVqzoejb47sFNnEBprt4Jel+5
|
||||
FJt/C//NKspMlW2cdRbPek7adaBuZCvEO+b0TDnvMQXnJTO5K0LCzGb5MRuGUg==
|
||||
-----END CERTIFICATE REQUEST-----
|
||||
@ -0,0 +1,8 @@
|
||||
-----BEGIN CERTIFICATE REQUEST-----
|
||||
MIH6MIGfAgEAMD0xIzAhBgkqhkiG9w0BCQEWFEhhcm9vbjYxMzhAZ21haWwuY29t
|
||||
MQkwBwYDVQQDDAAxCzAJBgNVBAYTAkFFMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcD
|
||||
QgAEiHGgNfm6LyD0k41YUNxGibQT5t2T9+QTVb6v5YrfCYslJIurcpeia8pzl/HJ
|
||||
p1f4qxCR04cEYE3tcunyzkJd26AAMAwGCCqGSM49BAMCBQADSAAwRQIhAJWZqbmD
|
||||
e9jyqPHW578V6xsf5Axgf64GBBFMpZ8+ZukDAiAYu0BbgeiU4RwCrezA71iH95yZ
|
||||
ge9MoPuNHejpDKGeQQ==
|
||||
-----END CERTIFICATE REQUEST-----
|
||||
@ -0,0 +1,8 @@
|
||||
{\rtf1\ansi\ansicpg1252\cocoartf2758
|
||||
\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
|
||||
{\colortbl;\red255\green255\blue255;}
|
||||
{\*\expandedcolortbl;;}
|
||||
\paperw11900\paperh16840\margl1440\margr1440\vieww11520\viewh8400\viewkind0
|
||||
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0
|
||||
|
||||
\f0\fs24 \cf0 HMG@54321}
|
||||
@ -0,0 +1,74 @@
|
||||
MIIQaQYJKoZIhvcNAQcCoIIQWjCCEFYCAQExCzAJBgUrDgMCGgUAMHgGCSqGSIb3DQEHAaBrBGl7
|
||||
InRlYW1JZCI6IjNBMzU5RTg2WkYiLCJkb21haW4iOiJ1YXQuaG1nd2Vic2VydmljZXMuY29tIiwi
|
||||
ZGF0ZUNyZWF0ZWQiOiIyMDI1LTA0LTA5LDA4OjUzOjAzIiwidmVyc2lvbiI6MX2ggg0_MIIENDCC
|
||||
AxygAwIBAgIIPVn4N-rR2J8wDQYJKoZIhvcNAQELBQAwczEtMCsGA1UEAwwkQXBwbGUgaVBob25l
|
||||
IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSAwHgYDVQQLDBdDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
|
||||
eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwHhcNMjQxMjE2MTkyMTAxWhcNMjkx
|
||||
MjExMTgxMzU5WjBZMTUwMwYDVQQDDCxBcHBsZSBpUGhvbmUgT1MgUHJvdmlzaW9uaW5nIFByb2Zp
|
||||
bGUgU2lnbmluZzETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3
|
||||
DQEBAQUAA4IBDwAwggEKAoIBAQDQkzGr-FMe360eL2T3yU3Xlr5fSz15ZFxD7inDQNL6LxygtrwR
|
||||
c-_wIrDf3vn5zlXj9UIBtSNlQRI793xGfYkTRZVE7JaVYmaXkAMA2eCuxdmxnCAtluCF7W9r01LT
|
||||
gzzUASMl6eXG1BHYeaoIwt0VWPXvipNLDUvuDbaHk3UREFXLDHgH2zdwRjuX-sTreCng9Ox442Ha
|
||||
QFeAB7uInKXHSW3IJtOVH00hoo1oc4Me5llahZZVVLCVLiXcdw1hh4GNiaQDezwAdyyJalnTZETZ
|
||||
dKVbirFSYV9uBDDU8-IQNAyVjEvhe9YrhYPyJzmNcAgj4hSI_5P0LW1MJuKLN4YtAgMBAAGjgeUw
|
||||
geIwDAYDVR0TAQH_BAIwADAfBgNVHSMEGDAWgBRv8ZUYYlzgyPHF7WwYyeDTZFKYIDBABggrBgEF
|
||||
BQcBAQQ0MDIwMAYIKwYBBQUHMAGGJGh0dHA6Ly9vY3NwLmFwcGxlLmNvbS9vY3NwMDMtYWlwY2Ew
|
||||
NzAvBgNVHR8EKDAmMCSgIqAghh5odHRwOi8vY3JsLmFwcGxlLmNvbS9haXBjYS5jcmwwHQYDVR0O
|
||||
BBYEFLy1xem9_MvQntyUsB74IZRc_wkuMA4GA1UdDwEB_wQEAwIHgDAPBgkqhkiG92NkBjoEAgUA
|
||||
MA0GCSqGSIb3DQEBCwUAA4IBAQAyNMLpd6pf4MbKovN3WeeKZ7jxUfP7sPaXv7ERo-GhPLsjkukS
|
||||
k6JxHbzxmnFvpDxvNpK24EeCopPj57iPu98lRGICz8289_uNiglweGXCGU0ly3JiIeSpaPkQmi56
|
||||
Dyi-pgMG0VVhH698-JTUcQ7i0yVUi86t1WgHW70te8diRXm5qYdM-Bg7gK4QS3HYeCvmCq-a59lN
|
||||
zOpbt6OXVWvsDaB4x8Cwz8vcEEwwkhNxlNav4OzJ6cmbziUy7hENIRcki_GVLiJiRkV_4NvXFlTB
|
||||
uT7T2oq5Zfa0tCN_eF3ZcnZkY6cIVcfZt5TbI7_zk6fUBERDDcriVrIrlCikPXKHMIIERDCCAyyg
|
||||
AwIBAgIIXGPK5Eo3U8kwDQYJKoZIhvcNAQELBQAwYjELMAkGA1UEBhMCVVMxEzARBgNVBAoTCkFw
|
||||
cGxlIEluYy4xJjAkBgNVBAsTHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRYwFAYDVQQD
|
||||
Ew1BcHBsZSBSb290IENBMB4XDTE3MDUxMDIxMjczMFoXDTMwMTIzMTAwMDAwMFowczEtMCsGA1UE
|
||||
AwwkQXBwbGUgaVBob25lIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSAwHgYDVQQLDBdDZXJ0aWZp
|
||||
Y2F0aW9uIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwggEiMA0G
|
||||
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDJRWoBDz6DBIbH_L_cXvAege4XMHNjJi7ePXokzZM-
|
||||
TzlHunW-88DS8Vmiqx_-CoY82S2aB_IOa7kpkRpfIgqL8XJYBa5MS0TFeaeAPLCI4IwMJ4RdGeWH
|
||||
GTbL48V2t7D0QXJR9AVcg0uibaZRuPEm33terWUMxrKYUYy7fRtMwU7ICMfS7WQLtN0bjU9AfRuP
|
||||
SJaSW_PQmH7ZvKQZDplhu0FdAcxbd3p9JNDc01P_w9zFlCy2Wk2OGCM5vdnGUj7R8vQliqEqh_3Y
|
||||
DEYpUf_tF2yJJWuHv4ppFJ93n8MVt2iziEW9hOYGAkFkD60qKLgVyeCsp4q6cgQ0sniM-LKFAgMB
|
||||
AAGjgewwgekwDwYDVR0TAQH_BAUwAwEB_zAfBgNVHSMEGDAWgBQr0GlHlHYJ_vRrjS5ApvdHTX8I
|
||||
XjBEBggrBgEFBQcBAQQ4MDYwNAYIKwYBBQUHMAGGKGh0dHA6Ly9vY3NwLmFwcGxlLmNvbS9vY3Nw
|
||||
MDMtYXBwbGVyb290Y2EwLgYDVR0fBCcwJTAjoCGgH4YdaHR0cDovL2NybC5hcHBsZS5jb20vcm9v
|
||||
dC5jcmwwHQYDVR0OBBYEFG_xlRhiXODI8cXtbBjJ4NNkUpggMA4GA1UdDwEB_wQEAwIBBjAQBgoq
|
||||
hkiG92NkBgISBAIFADANBgkqhkiG9w0BAQsFAAOCAQEAOs-smI2-kiAhCa2V87FcIfo2LVcgRHRz
|
||||
ZJIIs5as922X-ls0OCfPEkbTPBHwB8mZkLHR6BEJpeOla2xjCD-eJfrVmZxM5uXOjrJNaOyLq6Oi
|
||||
T4oRFT7cFCscxkS2b2fFW0-VKS2HXD_cgx53T-3aVKct5xOBwWPEVAsbSwpqKCII1DeSfH9nKF-v
|
||||
PT-3rFkdODRkWu4zShlCRCnEyhhr4cFTLS30TcIV9jMyGHjxJm-KTeuUTKPo_w-zA4tl2usu2GVQ
|
||||
n9yfit8xqIRU3FJSQdKyEx0xRkeIXz7uw_KMIwSV66yKPoJsBp8u44tDmmJbNA30mc8s7rpyhhkj
|
||||
pfyOtTCCBLswggOjoAMCAQICAQIwDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UEBhMCVVMxEzARBgNV
|
||||
BAoTCkFwcGxlIEluYy4xJjAkBgNVBAsTHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRYw
|
||||
FAYDVQQDEw1BcHBsZSBSb290IENBMB4XDTA2MDQyNTIxNDAzNloXDTM1MDIwOTIxNDAzNlowYjEL
|
||||
MAkGA1UEBhMCVVMxEzARBgNVBAoTCkFwcGxlIEluYy4xJjAkBgNVBAsTHUFwcGxlIENlcnRpZmlj
|
||||
YXRpb24gQXV0aG9yaXR5MRYwFAYDVQQDEw1BcHBsZSBSb290IENBMIIBIjANBgkqhkiG9w0BAQEF
|
||||
AAOCAQ8AMIIBCgKCAQEA5JGpCR-R2x5HUOsF7V55hC3rNqJXTFXsixmJ3vlLbPUHqyIwAugYPvhQ
|
||||
CdN_QaiY-dHKZpwkaxHQo7vkGyrDH5WeegykR4tb1BY3M8vED03OFGnRyRly9V0O1X9fm_IlA7pV
|
||||
j01dDfFkNSMVSxVZHbOU9_acns9QusFYUGePCLQg98usLCBvcLY_ATCMt0PPD5098ytJKBrI_s61
|
||||
uQ7ZXhzWyz21Oq30Dw4AkguxIRYudNU8DdtiFqujcZJHU1XBry9Bs_j743DN5qNMRX4fTGtQlkGJ
|
||||
xHRiCxCDQYczioGxMFjsWgQyjGizjx3eZXP_Z15lvEnYdp8zFGWhd5TJLQIDAQABo4IBejCCAXYw
|
||||
DgYDVR0PAQH_BAQDAgEGMA8GA1UdEwEB_wQFMAMBAf8wHQYDVR0OBBYEFCvQaUeUdgn-9GuNLkCm
|
||||
90dNfwheMB8GA1UdIwQYMBaAFCvQaUeUdgn-9GuNLkCm90dNfwheMIIBEQYDVR0gBIIBCDCCAQQw
|
||||
ggEABgkqhkiG92NkBQEwgfIwKgYIKwYBBQUHAgEWHmh0dHBzOi8vd3d3LmFwcGxlLmNvbS9hcHBs
|
||||
ZWNhLzCBwwYIKwYBBQUHAgIwgbYagbNSZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFu
|
||||
eSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFy
|
||||
ZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRlIHBvbGljeSBhbmQgY2Vy
|
||||
dGlmaWNhdGlvbiBwcmFjdGljZSBzdGF0ZW1lbnRzLjANBgkqhkiG9w0BAQUFAAOCAQEAXDaZTC14
|
||||
t-2Mm9zzd5vydtJ3ME_BH4WDhRuZPUc38qmbQI4s1LGQEti-9HOb7tJkD8t5TzTYoj75eP9ryAfs
|
||||
fTmDi1Mg0zjEsb-aTwpr_yv8WacFCXwXQFYRHnTTt4sjO0ej1W8k4uvRt3DfD0XhJ8rxbXjt57UX
|
||||
F6jcfiI1yiXV2Q_Wa9SiJCMR96Gsj3OBYMYbWwkvkrL4REjwYDieFfU9JmcgijNq9w2Cz97roy_5
|
||||
U2pbZMBjM3f3OgcsVuvaDyEO2rpzGU-12TZ_wYdV2aeZuTJC-9jVcZ5-oVK3G72TQiQSKscPHbZN
|
||||
nF5jyEuAF1CqitXa5PzQCQc3sHV1ITGCAoUwggKBAgEBMH8wczEtMCsGA1UEAwwkQXBwbGUgaVBo
|
||||
b25lIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSAwHgYDVQQLDBdDZXJ0aWZpY2F0aW9uIEF1dGhv
|
||||
cml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMCCD1Z-Dfq0difMAkGBSsOAwIa
|
||||
BQCggdwwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMjUwNDA5MDg1
|
||||
MzAzWjAjBgkqhkiG9w0BCQQxFgQUAFaGI1aIk0pvFl6XU5VvRpeio9QwKQYJKoZIhvcNAQk0MRww
|
||||
GjAJBgUrDgMCGgUAoQ0GCSqGSIb3DQEBAQUAMFIGCSqGSIb3DQEJDzFFMEMwCgYIKoZIhvcNAwcw
|
||||
DgYIKoZIhvcNAwICAgCAMA0GCCqGSIb3DQMCAgFAMAcGBSsOAwIHMA0GCCqGSIb3DQMCAgEoMA0G
|
||||
CSqGSIb3DQEBAQUABIIBAHdhBvowTL1e7Q-KFo3GAoa_c3I5iQH79ks6sZ9U4zu3xhpjrReRlA5d
|
||||
ORAcMvUnUT0sjDj2ISsLKzUnDXNlcPE8fqfkMI_7LYlWvnNalVtrJmL6CUheBuTKMQ_Z_lZLLI4o
|
||||
J46YUzCU9M4vpcgO6EpOQTNrqLx2sOs-V_my1p-Hig7UqdHNviX4gL4xjg7yUXNoevZ9ixPLXI4C
|
||||
aPmg5q2NCECPxS7g36hJ_gHtRC6awR8qvK3-mSZPPfMzh0sHih76h2RWcv13UHSNygn3SF0MLhsS
|
||||
5m9tf6r1sJOCAr2_ri-65d2GN1vhGXfoXQ0KFy9N2Cao3IsRs5unBb6pk5c
|
||||
@ -0,0 +1,16 @@
|
||||
-----BEGIN CERTIFICATE REQUEST-----
|
||||
MIICgjCCAWoCAQAwPTEjMCEGCSqGSIb3DQEJARYUSGFyb29uNjEzOEBnbWFpbC5j
|
||||
b20xCTAHBgNVBAMMADELMAkGA1UEBhMCQUUwggEiMA0GCSqGSIb3DQEBAQUAA4IB
|
||||
DwAwggEKAoIBAQDHadAER62mSf+wOxPu9rF1EvifDxbAEv6znZIHvwimgShdPLLS
|
||||
rkFdN4VpSHMzrASqpHnlSL3wxO6eym9pATH3WfLvKIQxnn9OkO5fScjQi0RkFbe0
|
||||
JqTqN2LaFxrSFrhqQ/1p/izr690HqjrfquRI8t8evatyTku67/xcCj6uSIVLfJoS
|
||||
8YCDVn0Y+w9n2Vw/+kHiNY6P96qp/CfXZgMLFpUu0mqcmZl97htfmB9AH2tC45yh
|
||||
mKxDJiKEnk69zVCh/bkc9tFE1tUDkkKblJTCEyWfdDUUYM4ET3t3fBqWB78F4J3m
|
||||
XglByGZmHgY2+7nsSQBiq7k9tFN2c7FZ9BD3AgMBAAGgADANBgkqhkiG9w0BAQsF
|
||||
AAOCAQEAJxqoyfEJ7V83ffCAqkYNNEcCQMIRi1Y4cTTm/5KZGA/UPeDeX48/bm4K
|
||||
XIf2zbv88OGASInBrvMDp0x0zs13Dx2yXxofGN+iQSBwN6jPV/upmm0DjgTmgUGh
|
||||
BJste70LaU228ADzWDw8UJm/GKjK8WvE0XOGpPKYq9cuVW3M+6QRoRHXy0eJc2PX
|
||||
VgopsuhHUyA5trxM7k4yc6GgYVx+fAwMaplovTwn5U8XK6bDEIvCjImfat/u4Wp8
|
||||
R31p0BQzQaeyWfpp9Ucn/fvQSeB+wtjhHuA1ukcyWY1kBYOyCMIHymFrJLaTpUj7
|
||||
aQFYZDV28HYv0yWhWIAD9Pu+aDHWpA==
|
||||
-----END CERTIFICATE REQUEST-----
|
||||
@ -0,0 +1,74 @@
|
||||
Bag Attributes
|
||||
friendlyName: VoIP Services: com.HMG.HMG-Smartphone
|
||||
localKeyID: 70 4A 99 03 F8 D7 92 FA F7 2F DD 3B D8 BF 2C F0 BD CE 21 C8
|
||||
subject=/UID=com.HMG.HMG-Smartphone.voip/CN=VoIP Services: com.HMG.HMG-Smartphone/OU=3A359E86ZF/O=Dr Sulaiman Al Habib Medical Center/C=SA
|
||||
issuer=/CN=Apple Worldwide Developer Relations Certification Authority/OU=G4/O=Apple Inc./C=US
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIGkTCCBXmgAwIBAgIQFB+/PYFlrZ6SCzSX9cqOBDANBgkqhkiG9w0BAQsFADB1
|
||||
MUQwQgYDVQQDDDtBcHBsZSBXb3JsZHdpZGUgRGV2ZWxvcGVyIFJlbGF0aW9ucyBD
|
||||
ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTELMAkGA1UECwwCRzQxEzARBgNVBAoMCkFw
|
||||
cGxlIEluYy4xCzAJBgNVBAYTAlVTMB4XDTI0MDYwOTEyMDc1MVoXDTI1MDcwOTEy
|
||||
MDc1MFowga0xKzApBgoJkiaJk/IsZAEBDBtjb20uSE1HLkhNRy1TbWFydHBob25l
|
||||
LnZvaXAxLjAsBgNVBAMMJVZvSVAgU2VydmljZXM6IGNvbS5ITUcuSE1HLVNtYXJ0
|
||||
cGhvbmUxEzARBgNVBAsMCjNBMzU5RTg2WkYxLDAqBgNVBAoMI0RyIFN1bGFpbWFu
|
||||
IEFsIEhhYmliIE1lZGljYWwgQ2VudGVyMQswCQYDVQQGEwJTQTCCASIwDQYJKoZI
|
||||
hvcNAQEBBQADggEPADCCAQoCggEBAMdp0ARHraZJ/7A7E+72sXUS+J8PFsAS/rOd
|
||||
kge/CKaBKF08stKuQV03hWlIczOsBKqkeeVIvfDE7p7Kb2kBMfdZ8u8ohDGef06Q
|
||||
7l9JyNCLRGQVt7QmpOo3YtoXGtIWuGpD/Wn+LOvr3QeqOt+q5Ejy3x69q3JOS7rv
|
||||
/FwKPq5IhUt8mhLxgINWfRj7D2fZXD/6QeI1jo/3qqn8J9dmAwsWlS7SapyZmX3u
|
||||
G1+YH0Afa0LjnKGYrEMmIoSeTr3NUKH9uRz20UTW1QOSQpuUlMITJZ90NRRgzgRP
|
||||
e3d8GpYHvwXgneZeCUHIZmYeBjb7uexJAGKruT20U3ZzsVn0EPcCAwEAAaOCAuIw
|
||||
ggLeMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUW9n6HeeaGgujmXYiUIY+kchb
|
||||
d6gwcAYIKwYBBQUHAQEEZDBiMC0GCCsGAQUFBzAChiFodHRwOi8vY2VydHMuYXBw
|
||||
bGUuY29tL3d3ZHJnNC5kZXIwMQYIKwYBBQUHMAGGJWh0dHA6Ly9vY3NwLmFwcGxl
|
||||
LmNvbS9vY3NwMDMtd3dkcmc0MDUwggEeBgNVHSAEggEVMIIBETCCAQ0GCSqGSIb3
|
||||
Y2QFATCB/zCBwwYIKwYBBQUHAgIwgbYMgbNSZWxpYW5jZSBvbiB0aGlzIGNlcnRp
|
||||
ZmljYXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRo
|
||||
ZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1
|
||||
c2UsIGNlcnRpZmljYXRlIHBvbGljeSBhbmQgY2VydGlmaWNhdGlvbiBwcmFjdGlj
|
||||
ZSBzdGF0ZW1lbnRzLjA3BggrBgEFBQcCARYraHR0cHM6Ly93d3cuYXBwbGUuY29t
|
||||
L2NlcnRpZmljYXRlYXV0aG9yaXR5LzATBgNVHSUEDDAKBggrBgEFBQcDAjAyBgNV
|
||||
HR8EKzApMCegJaAjhiFodHRwOi8vY3JsLmFwcGxlLmNvbS93d2RyZzQtNi5jcmww
|
||||
HQYDVR0OBBYEFHBKmQP415L69y/dO9i/LPC9ziHIMA4GA1UdDwEB/wQEAwIHgDAQ
|
||||
BgoqhkiG92NkBgMBBAIFADAQBgoqhkiG92NkBgMCBAIFADBDBgoqhkiG92NkBgME
|
||||
BDUMM2NvbS5ITUcuSE1HLVNtYXJ0cGhvbmUsIGNvbS5ITUcuSE1HLVNtYXJ0cGhv
|
||||
bmUudm9pcDAQBgoqhkiG92NkBgMFBAIFADAmBgoqhkiG92NkBgMDBBgMFmNvbS5I
|
||||
TUcuSE1HLVNtYXJ0cGhvbmUwDQYJKoZIhvcNAQELBQADggEBAJAcIzSskk8/GbxQ
|
||||
7nGUPPEWFswL66xTt3GusHmeXkKDXG3ac+4jLk8yU7gunos77CNDm+9TkShdJ2Rg
|
||||
tTRopK4ockqwoPrCeEVrooHR4e42YvmkB6AfYKJRnQZQVJIpW0OES7vrtoWVGoNj
|
||||
ktHOV+wFIuAQPI9P4z0RFyRw85MHr+jFqxeLU/1500PwCxIiNHkIcUtzZgrnr22R
|
||||
7rgkxav+RrjLjXVQvC4VJispKCU7yR69Xv1rsC5zc7OTCuCkbQ9FvnfsiUz5ZDzp
|
||||
3D0gGojU9wmJ1yVk9HiZsuiVwmg/LbDHI3pSYbxz3n1UHB6Pu0jX3c3Uxkx674HD
|
||||
/0uvHzg=
|
||||
-----END CERTIFICATE-----
|
||||
Bag Attributes
|
||||
localKeyID: 70 4A 99 03 F8 D7 92 FA F7 2F DD 3B D8 BF 2C F0 BD CE 21 C8
|
||||
Key Attributes: <No Attributes>
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDHadAER62mSf+w
|
||||
OxPu9rF1EvifDxbAEv6znZIHvwimgShdPLLSrkFdN4VpSHMzrASqpHnlSL3wxO6e
|
||||
ym9pATH3WfLvKIQxnn9OkO5fScjQi0RkFbe0JqTqN2LaFxrSFrhqQ/1p/izr690H
|
||||
qjrfquRI8t8evatyTku67/xcCj6uSIVLfJoS8YCDVn0Y+w9n2Vw/+kHiNY6P96qp
|
||||
/CfXZgMLFpUu0mqcmZl97htfmB9AH2tC45yhmKxDJiKEnk69zVCh/bkc9tFE1tUD
|
||||
kkKblJTCEyWfdDUUYM4ET3t3fBqWB78F4J3mXglByGZmHgY2+7nsSQBiq7k9tFN2
|
||||
c7FZ9BD3AgMBAAECggEBALTXH58SBcd86hS+rsgSDkJ2ruNIQsBzOWpYJjtCIi0l
|
||||
ih5r0lu/TWWk2SbuXhLpF95MhILLIf18Ck4UlU5rmA2SE/6RBrkc3KS6SII/no6J
|
||||
Db+Z9lu4g+wnyEyxkVAe7KTp/aGmsMROxMaTuQpnptkE8BSnuxhRKtpfksNBQzC2
|
||||
19OkEy4JAO7xWbm9w/ASiCtYf0Vj26DQo982Fe44cpG08iB2v1uUJINQkGzmg+85
|
||||
vvn5A1ECpSpgd/eOa68ojxeNSU7iFGZPbpjuincLPBFlC5zp9KD1Bt6p2KwIizBl
|
||||
GPYTp6a1DnWly6n0PuLN0fl/nRmI6ar48Ja1Qzk8NvECgYEA5iQo9lnjNOHjT6bk
|
||||
hj5QXMz3MDMCPdJo6jQyADtmsC/F4RjufujfXPhMv2v8JLAjQjNMgfhTSF68zYHf
|
||||
i1qW8e/CgWu7mGQEIhWtxiTkLou8zW3VjxwpgfeUsGI5L+PxoN53ZUVcetLz4Y58
|
||||
8ATEhlxh02uGmG2k3HbvFu9NBT8CgYEA3dHJfFX2xv53ZD1E2IE1rM3j7a32s7VB
|
||||
k/YX8ODrAJxwNmy/vm4gd5h6ofqVS1/IV4NHFbmQ5c1tzB44YGOEZH5Ta9hhHgHU
|
||||
xoa3q6t+kjR9KrQvxjTSe9mW5x/jAgU0Wp/XrAfMZxc2eukb4/sJAGKG0kyFeX5O
|
||||
5abVixWj7kkCgYAafd8ZPI+i7r2z1YpIybOGezGZIsYHR8k77HY1AKF5doZYuv35
|
||||
LeVIVmy/PDbyIjRs0mrkKymrEvy4y1JoQC1P/EFvlG8rw5eWNNikDmsV0JATNal3
|
||||
p84/X7iF9UiP8rVFx1YHGkzi9pWMSVKobmQQ82FvbNk5gqWPm0E6aqF7EQKBgQDB
|
||||
mE0PlT9SIdk1xTuG8g5UiUV6tS/xXCql5kyy0LqJx/8voO4gV6FCf/PX1wnhxPDn
|
||||
YA30agaKaiZ/1YhCp9hulMpd/3WTaOm5cu5uh7hqBiGP2b8wb/2cViWcBnpr0vsE
|
||||
dSkYXZ4KA3pq/3R2HyyWB2e/t0Vu6cwWJuuM/hAa8QKBgGNRStNVSMPvzx2X7mB6
|
||||
EqdlWqVbfSTHJiZKyNPWHlSuZgdQ14BRwq7KZ0ysZy+kOX4rh1rIfqzrKc62xEXB
|
||||
E+fmIpu+DUOM5ojEPCf9Om87r3fMJ54SjM7z1dtVc+Muy4TnFZ4UQcN9txWbnkAo
|
||||
++H5gC9DBedOEXkwoCYjoeuM
|
||||
-----END PRIVATE KEY-----
|
||||
@ -0,0 +1,53 @@
|
||||
package com.cloud.diplomaticquarterapp
|
||||
|
||||
import com.ejada.hmg.MainActivity
|
||||
import android.os.Build
|
||||
import android.util.Log
|
||||
import androidx.annotation.RequiresApi
|
||||
import com.cloud.diplomaticquarterapp.penguin.PenguinView
|
||||
import io.flutter.embedding.engine.FlutterEngine
|
||||
import io.flutter.plugin.common.MethodCall
|
||||
import io.flutter.plugin.common.MethodChannel
|
||||
|
||||
class PenguinInPlatformBridge(
|
||||
private var flutterEngine: FlutterEngine,
|
||||
private var mainActivity: MainActivity
|
||||
) {
|
||||
|
||||
private lateinit var channel: MethodChannel
|
||||
|
||||
companion object {
|
||||
private const val CHANNEL = "launch_penguin_ui"
|
||||
}
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.O)
|
||||
fun create() {
|
||||
// openTok = OpenTok(mainActivity, flutterEngine)
|
||||
channel = MethodChannel(flutterEngine.dartExecutor.binaryMessenger, CHANNEL)
|
||||
channel.setMethodCallHandler { call: MethodCall, result: MethodChannel.Result ->
|
||||
when (call.method) {
|
||||
"launchPenguin" -> {
|
||||
print("the platform channel is being called")
|
||||
val args = call.arguments as Map<String, Any>?
|
||||
Log.d("TAG", "configureFlutterEngine: $args")
|
||||
println("args")
|
||||
args?.let {
|
||||
PenguinView(
|
||||
mainActivity,
|
||||
100,
|
||||
args,
|
||||
flutterEngine.dartExecutor.binaryMessenger,
|
||||
activity = mainActivity,
|
||||
channel
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
else -> {
|
||||
result.notImplemented()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,28 @@
|
||||
package com.cloud.diplomaticquarterapp.PermissionManager
|
||||
|
||||
import android.Manifest
|
||||
import android.os.Build
|
||||
|
||||
object PermissionHelper {
|
||||
|
||||
fun getRequiredPermissions(): Array<String> {
|
||||
val permissions = mutableListOf(
|
||||
Manifest.permission.INTERNET,
|
||||
Manifest.permission.ACCESS_FINE_LOCATION,
|
||||
Manifest.permission.ACCESS_COARSE_LOCATION,
|
||||
Manifest.permission.ACCESS_NETWORK_STATE,
|
||||
Manifest.permission.BLUETOOTH,
|
||||
Manifest.permission.BLUETOOTH_ADMIN,
|
||||
// Manifest.permission.ACTIVITY_RECOGNITION
|
||||
)
|
||||
|
||||
// For Android 12 (API level 31) and above, add specific permissions
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { // Android 12 (API 31) and above
|
||||
permissions.add(Manifest.permission.BLUETOOTH_SCAN)
|
||||
permissions.add(Manifest.permission.BLUETOOTH_CONNECT)
|
||||
permissions.add(Manifest.permission.HIGH_SAMPLING_RATE_SENSORS)
|
||||
}
|
||||
|
||||
return permissions.toTypedArray()
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,50 @@
|
||||
package com.cloud.diplomaticquarterapp.PermissionManager
|
||||
|
||||
import android.app.Activity
|
||||
import android.content.Context
|
||||
import android.content.pm.PackageManager
|
||||
import android.os.Build
|
||||
import androidx.core.app.ActivityCompat
|
||||
import androidx.core.content.ContextCompat
|
||||
|
||||
class PermissionManager(
|
||||
private val context: Context,
|
||||
val listener: PermissionListener,
|
||||
private val requestCode: Int,
|
||||
vararg permissions: String
|
||||
) {
|
||||
|
||||
private val permissionsArray = permissions
|
||||
|
||||
interface PermissionListener {
|
||||
fun onPermissionGranted()
|
||||
fun onPermissionDenied()
|
||||
}
|
||||
|
||||
fun arePermissionsGranted(): Boolean {
|
||||
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
permissionsArray.all {
|
||||
ContextCompat.checkSelfPermission(context, it) == PackageManager.PERMISSION_GRANTED
|
||||
}
|
||||
} else {
|
||||
true
|
||||
}
|
||||
}
|
||||
|
||||
fun requestPermissions(activity: Activity) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
ActivityCompat.requestPermissions(activity, permissionsArray, requestCode)
|
||||
}
|
||||
}
|
||||
|
||||
fun handlePermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
|
||||
if (this.requestCode == requestCode) {
|
||||
val allGranted = grantResults.all { it == PackageManager.PERMISSION_GRANTED }
|
||||
if (allGranted) {
|
||||
listener.onPermissionGranted()
|
||||
} else {
|
||||
listener.onPermissionDenied()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package com.cloud.diplomaticquarterapp.PermissionManager
|
||||
|
||||
// PermissionResultReceiver.kt
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
|
||||
class PermissionResultReceiver(
|
||||
private val callback: (Boolean) -> Unit
|
||||
) : BroadcastReceiver() {
|
||||
override fun onReceive(context: Context?, intent: Intent?) {
|
||||
val granted = intent?.getBooleanExtra("PERMISSION_GRANTED", false) ?: false
|
||||
callback(granted)
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,13 @@
|
||||
package com.cloud.diplomaticquarterapp.penguin
|
||||
|
||||
enum class PenguinMethod {
|
||||
// initializePenguin("initializePenguin"),
|
||||
// configurePenguin("configurePenguin"),
|
||||
// showPenguinUI("showPenguinUI"),
|
||||
// onPenNavUIDismiss("onPenNavUIDismiss"),
|
||||
// onReportIssue("onReportIssue"),
|
||||
// onPenNavSuccess("onPenNavSuccess"),
|
||||
onPenNavInitializationError // onLocationOffCampus("onLocationOffCampus"),
|
||||
// navigateToPOI("navigateToPOI"),
|
||||
// openSharedLocation("openSharedLocation");
|
||||
}
|
||||
@ -0,0 +1,97 @@
|
||||
package com.cloud.diplomaticquarterapp.penguin
|
||||
|
||||
import android.content.Context
|
||||
import com.google.gson.Gson
|
||||
import com.peng.pennavmap.PlugAndPlaySDK
|
||||
import com.peng.pennavmap.connections.ApiController
|
||||
import com.peng.pennavmap.interfaces.RefIdDelegate
|
||||
import com.peng.pennavmap.models.TokenModel
|
||||
import com.peng.pennavmap.models.postmodels.PostToken
|
||||
import com.peng.pennavmap.utils.AppSharedData
|
||||
import okhttp3.ResponseBody
|
||||
import retrofit2.Call
|
||||
import retrofit2.Callback
|
||||
import retrofit2.Response
|
||||
import android.util.Log
|
||||
|
||||
|
||||
class PenguinNavigator() {
|
||||
|
||||
fun navigateTo(mContext: Context, refID: String, delegate: RefIdDelegate,clientID : String,clientKey : String ) {
|
||||
val postToken = PostToken(clientID, clientKey)
|
||||
getToken(mContext, postToken, object : RefIdDelegate {
|
||||
override fun onRefByIDSuccess(PoiId: String?) {
|
||||
Log.e("navigateTo", "PoiId is+++++++ $PoiId")
|
||||
|
||||
PlugAndPlaySDK.navigateTo(mContext, refID, object : RefIdDelegate {
|
||||
override fun onRefByIDSuccess(PoiId: String?) {
|
||||
Log.e("navigateTo", "PoiId 2is+++++++ $PoiId")
|
||||
|
||||
delegate.onRefByIDSuccess(refID)
|
||||
|
||||
}
|
||||
|
||||
override fun onGetByRefIDError(error: String?) {
|
||||
delegate.onRefByIDSuccess(error)
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
|
||||
}
|
||||
|
||||
override fun onGetByRefIDError(error: String?) {
|
||||
delegate.onRefByIDSuccess(error)
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
fun getToken(mContext: Context, postToken: PostToken?, apiTokenCallBack: RefIdDelegate) {
|
||||
try {
|
||||
// Create the API call
|
||||
val purposesCall: Call<ResponseBody> = ApiController.getInstance(mContext)
|
||||
.apiMethods
|
||||
.getToken(postToken)
|
||||
|
||||
// Enqueue the call for asynchronous execution
|
||||
purposesCall.enqueue(object : Callback<ResponseBody?> {
|
||||
override fun onResponse(
|
||||
call: Call<ResponseBody?>,
|
||||
response: Response<ResponseBody?>
|
||||
) {
|
||||
if (response.isSuccessful() && response.body() != null) {
|
||||
try {
|
||||
response.body()?.use { responseBody ->
|
||||
val responseBodyString: String = responseBody.string() // Use `string()` to get the actual response content
|
||||
if (responseBodyString.isNotEmpty()) {
|
||||
val tokenModel = Gson().fromJson(responseBodyString, TokenModel::class.java)
|
||||
if (tokenModel != null && tokenModel.token != null) {
|
||||
AppSharedData.apiToken = tokenModel.token
|
||||
apiTokenCallBack.onRefByIDSuccess(tokenModel.token)
|
||||
} else {
|
||||
apiTokenCallBack.onGetByRefIDError("Failed to parse token model")
|
||||
}
|
||||
} else {
|
||||
apiTokenCallBack.onGetByRefIDError("Response body is empty")
|
||||
}
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
apiTokenCallBack.onGetByRefIDError("An error occurred: ${e.message}")
|
||||
}
|
||||
} else {
|
||||
apiTokenCallBack.onGetByRefIDError("Unsuccessful response: " + response.code())
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFailure(call: Call<ResponseBody?>, t: Throwable) {
|
||||
apiTokenCallBack.onGetByRefIDError(t.message)
|
||||
}
|
||||
})
|
||||
} catch (error: Exception) {
|
||||
apiTokenCallBack.onGetByRefIDError("Exception during API call: $error")
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,321 @@
|
||||
package com.cloud.diplomaticquarterapp.penguin
|
||||
|
||||
import android.app.Activity
|
||||
import android.content.Context
|
||||
import android.content.Context.RECEIVER_EXPORTED
|
||||
import android.content.IntentFilter
|
||||
import android.graphics.Color
|
||||
import android.os.Build
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.RelativeLayout
|
||||
import android.widget.Toast
|
||||
import androidx.annotation.RequiresApi
|
||||
import com.cloud.diplomaticquarterapp.PermissionManager.PermissionHelper
|
||||
import com.cloud.diplomaticquarterapp.PermissionManager.PermissionManager
|
||||
import com.cloud.diplomaticquarterapp.PermissionManager.PermissionResultReceiver
|
||||
import com.ejada.hmg.MainActivity
|
||||
import com.peng.pennavmap.PlugAndPlayConfiguration
|
||||
import com.peng.pennavmap.PlugAndPlaySDK
|
||||
import com.peng.pennavmap.enums.InitializationErrorType
|
||||
import com.peng.pennavmap.interfaces.PenNavUIDelegate
|
||||
import com.peng.pennavmap.utils.Languages
|
||||
import io.flutter.plugin.common.BinaryMessenger
|
||||
import io.flutter.plugin.common.MethodCall
|
||||
import io.flutter.plugin.common.MethodChannel
|
||||
import io.flutter.plugin.platform.PlatformView
|
||||
import com.cloud.diplomaticquarterapp.penguin.PenguinNavigator
|
||||
import com.peng.pennavmap.interfaces.PIEventsDelegate
|
||||
import com.peng.pennavmap.interfaces.PILocationDelegate
|
||||
import com.peng.pennavmap.interfaces.RefIdDelegate
|
||||
import com.peng.pennavmap.models.PIReportIssue
|
||||
/**
|
||||
* Custom PlatformView for displaying Penguin UI components within a Flutter app.
|
||||
* Implements `PlatformView` for rendering the view, `MethodChannel.MethodCallHandler` for handling method calls,
|
||||
* and `PenNavUIDelegate` for handling SDK events.
|
||||
*/
|
||||
@RequiresApi(Build.VERSION_CODES.O)
|
||||
internal class PenguinView(
|
||||
context: Context,
|
||||
id: Int,
|
||||
val creationParams: Map<String, Any>,
|
||||
messenger: BinaryMessenger,
|
||||
activity: MainActivity,
|
||||
val channel: MethodChannel
|
||||
) : PlatformView, MethodChannel.MethodCallHandler, PenNavUIDelegate {
|
||||
// The layout for displaying the Penguin UI
|
||||
private val mapLayout: RelativeLayout = RelativeLayout(context)
|
||||
private val _context: Context = context
|
||||
|
||||
private val permissionResultReceiver: PermissionResultReceiver
|
||||
private val permissionIntentFilter = IntentFilter("PERMISSION_RESULT_ACTION")
|
||||
|
||||
private companion object {
|
||||
const val PERMISSIONS_REQUEST_CODE = 1
|
||||
}
|
||||
|
||||
private lateinit var permissionManager: PermissionManager
|
||||
|
||||
// Reference to the main activity
|
||||
private var _activity: Activity = activity
|
||||
|
||||
private lateinit var mContext: Context
|
||||
|
||||
lateinit var navigator: PenguinNavigator
|
||||
|
||||
init {
|
||||
// Set layout parameters for the mapLayout
|
||||
mapLayout.layoutParams = ViewGroup.LayoutParams(
|
||||
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT
|
||||
)
|
||||
|
||||
mContext = context
|
||||
|
||||
|
||||
permissionResultReceiver = PermissionResultReceiver { granted ->
|
||||
if (granted) {
|
||||
onPermissionsGranted()
|
||||
} else {
|
||||
onPermissionsDenied()
|
||||
}
|
||||
}
|
||||
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||
mContext.registerReceiver(
|
||||
permissionResultReceiver,
|
||||
permissionIntentFilter,
|
||||
RECEIVER_EXPORTED
|
||||
)
|
||||
} else {
|
||||
mContext.registerReceiver(
|
||||
permissionResultReceiver,
|
||||
permissionIntentFilter,
|
||||
)
|
||||
}
|
||||
|
||||
// Set the background color of the layout
|
||||
mapLayout.setBackgroundColor(Color.RED)
|
||||
|
||||
permissionManager = PermissionManager(
|
||||
context = mContext,
|
||||
listener = object : PermissionManager.PermissionListener {
|
||||
override fun onPermissionGranted() {
|
||||
// Handle permissions granted
|
||||
onPermissionsGranted()
|
||||
}
|
||||
|
||||
override fun onPermissionDenied() {
|
||||
// Handle permissions denied
|
||||
onPermissionsDenied()
|
||||
}
|
||||
},
|
||||
requestCode = PERMISSIONS_REQUEST_CODE,
|
||||
*PermissionHelper.getRequiredPermissions()
|
||||
)
|
||||
|
||||
if (!permissionManager.arePermissionsGranted()) {
|
||||
permissionManager.requestPermissions(_activity)
|
||||
} else {
|
||||
// Permissions already granted
|
||||
permissionManager.listener.onPermissionGranted()
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private fun onPermissionsGranted() {
|
||||
// Handle the actions when permissions are granted
|
||||
Log.d("PermissionsResult", "onPermissionsGranted")
|
||||
// Register the platform view factory for creating custom views
|
||||
|
||||
// Initialize the Penguin SDK
|
||||
initPenguin()
|
||||
|
||||
|
||||
}
|
||||
|
||||
private fun onPermissionsDenied() {
|
||||
// Handle the actions when permissions are denied
|
||||
Log.d("PermissionsResult", "onPermissionsDenied")
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the view associated with this PlatformView.
|
||||
*
|
||||
* @return The main view for this PlatformView.
|
||||
*/
|
||||
override fun getView(): View {
|
||||
return mapLayout
|
||||
}
|
||||
|
||||
/**
|
||||
* Cleans up resources associated with this PlatformView.
|
||||
*/
|
||||
override fun dispose() {
|
||||
// Cleanup code if needed
|
||||
}
|
||||
|
||||
/**
|
||||
* Handles method calls from Dart code.
|
||||
*
|
||||
* @param call The method call from Dart.
|
||||
* @param result The result callback to send responses back to Dart.
|
||||
*/
|
||||
override fun onMethodCall(call: MethodCall, result: MethodChannel.Result) {
|
||||
// Handle method calls from Dart code here
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes the Penguin SDK with custom configuration and delegates.
|
||||
*/
|
||||
private fun initPenguin() {
|
||||
navigator = PenguinNavigator()
|
||||
// Configure the PlugAndPlaySDK
|
||||
val language = when (creationParams["languageCode"] as String) {
|
||||
"ar" -> Languages.ar
|
||||
"en" -> Languages.en
|
||||
else -> {
|
||||
Languages.en
|
||||
}
|
||||
}
|
||||
Log.d(
|
||||
"TAG",
|
||||
"initPenguin: ${Languages.getLanguageEnum(creationParams["languageCode"] as String)}"
|
||||
)
|
||||
PlugAndPlaySDK.configuration = PlugAndPlayConfiguration.Builder()
|
||||
.setBaseUrl(
|
||||
creationParams["dataURL"] as String,
|
||||
creationParams["positionURL"] as String
|
||||
)
|
||||
.setServiceName(
|
||||
creationParams["dataServiceName"] as String,
|
||||
creationParams["positionServiceName"] as String
|
||||
)
|
||||
.setClientData(
|
||||
creationParams["clientID"] as String,
|
||||
creationParams["clientKey"] as String
|
||||
)
|
||||
.setUserName(creationParams["username"] as String)
|
||||
// .setLanguageID(Languages.en)
|
||||
.setLanguageID(language)
|
||||
.setSimulationModeEnabled(creationParams["isSimulationModeEnabled"] as Boolean)
|
||||
.setEnableBackButton(true)
|
||||
// .setDeepLinkData("deeplink")
|
||||
.setCustomizeColor("#2CA0AF")
|
||||
.setDeepLinkSchema("")
|
||||
.setIsEnableReportIssue(true)
|
||||
.build()
|
||||
|
||||
// Set location delegate to handle location updates
|
||||
// PlugAndPlaySDK.setPiLocationDelegate {
|
||||
// Example code to handle location updates
|
||||
// Uncomment and modify as needed
|
||||
// if (location.size() > 0)
|
||||
// Toast.makeText(_context, "Location Info Latitude: ${location[0]}, Longitude: ${location[1]}", Toast.LENGTH_SHORT).show()
|
||||
// }
|
||||
|
||||
// Set events delegate for reporting issues
|
||||
// PlugAndPlaySDK.setPiEventsDelegate(new PIEventsDelegate() {
|
||||
// @Override
|
||||
// public void onReportIssue(PIReportIssue issue) {
|
||||
// Log.e("Issue Reported: ", issue.getReportType());
|
||||
// }
|
||||
// // Implement issue reporting logic here }
|
||||
// @Override
|
||||
// public void onSharedLocation(String link) {
|
||||
// // Implement Shared location logic here
|
||||
// }
|
||||
// })
|
||||
|
||||
// Start the Penguin SDK
|
||||
PlugAndPlaySDK.start(mContext, this)
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Navigates to the specified reference ID.
|
||||
*
|
||||
* @param refID The reference ID to navigate to.
|
||||
*/
|
||||
fun navigateTo(refID: String) {
|
||||
try {
|
||||
if (refID.isBlank()) {
|
||||
Log.e("navigateTo", "Invalid refID: The reference ID is blank.")
|
||||
}
|
||||
// referenceId = refID
|
||||
navigator.navigateTo(mContext, refID,object : RefIdDelegate {
|
||||
override fun onRefByIDSuccess(PoiId: String?) {
|
||||
Log.e("navigateTo", "PoiId is penguin view+++++++ $PoiId")
|
||||
|
||||
// channelFlutter.invokeMethod(
|
||||
// PenguinMethod.navigateToPOI.name,
|
||||
// "navigateTo Success"
|
||||
// )
|
||||
}
|
||||
|
||||
override fun onGetByRefIDError(error: String?) {
|
||||
Log.e("navigateTo", "error is penguin view+++++++ $error")
|
||||
|
||||
// channelFlutter.invokeMethod(
|
||||
// PenguinMethod.navigateToPOI.name,
|
||||
// "navigateTo Failed: Invalid refID"
|
||||
// )
|
||||
}
|
||||
} , creationParams["clientID"] as String, creationParams["clientKey"] as String )
|
||||
|
||||
} catch (e: Exception) {
|
||||
Log.e("navigateTo", "Exception occurred during navigation: ${e.message}", e)
|
||||
// channelFlutter.invokeMethod(
|
||||
// PenguinMethod.navigateToPOI.name,
|
||||
// "Failed: Exception - ${e.message}"
|
||||
// )
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when Penguin UI setup is successful.
|
||||
*
|
||||
* @param warningCode Optional warning code received from the SDK.
|
||||
*/
|
||||
override fun onPenNavSuccess(warningCode: String?) {
|
||||
val clinicId = creationParams["clinicID"] as String
|
||||
|
||||
if(clinicId.isEmpty()) return
|
||||
|
||||
navigateTo(clinicId)
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when there is an initialization error with Penguin UI.
|
||||
*
|
||||
* @param description Description of the error.
|
||||
* @param errorType Type of initialization error.
|
||||
*/
|
||||
override fun onPenNavInitializationError(
|
||||
description: String?,
|
||||
errorType: InitializationErrorType?
|
||||
) {
|
||||
val arguments: Map<String, Any?> = mapOf(
|
||||
"description" to description,
|
||||
"type" to errorType?.name
|
||||
)
|
||||
|
||||
channel.invokeMethod(PenguinMethod.onPenNavInitializationError.name, arguments)
|
||||
Toast.makeText(mContext, "Navigation Error: $description", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when Penguin UI is dismissed.
|
||||
*/
|
||||
override fun onPenNavUIDismiss() {
|
||||
// Handle UI dismissal if needed
|
||||
try {
|
||||
mContext.unregisterReceiver(permissionResultReceiver)
|
||||
dispose();
|
||||
} catch (e: IllegalArgumentException) {
|
||||
Log.e("PenguinView", "Receiver not registered: $e")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,81 @@
|
||||
/*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
package com.cloud.diplomaticquarterapp.whatsapp;
|
||||
|
||||
import static java.sql.DriverManager.println;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.ContextWrapper;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.Signature;
|
||||
import android.util.Base64;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.MessageDigest;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class AppSignatureRetriever {
|
||||
|
||||
private static final String HASH_TYPE = "SHA-256";
|
||||
public static final int NUM_HASHED_BYTES = 9;
|
||||
public static final int NUM_BASE64_CHAR = 11;
|
||||
|
||||
|
||||
public void logSignatures(Context context) {
|
||||
Collection<String> appSignatures = getAppSignatures(context);
|
||||
appSignatures.forEach(signature -> println("Signature: " + signature));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all the app signatures for the current package.
|
||||
*
|
||||
* @return signatures for current app
|
||||
*/
|
||||
public Collection<String> getAppSignatures(Context context) {
|
||||
try {
|
||||
// Get all package signatures for the current package
|
||||
String packageName = context.getPackageName();
|
||||
println("Package name: " + packageName);
|
||||
PackageManager packageManager = context.getPackageManager();
|
||||
Signature[] signatures = packageManager.getPackageInfo(packageName,
|
||||
PackageManager.GET_SIGNATURES).signatures;
|
||||
|
||||
// For each signature create a compatible hash
|
||||
Collection<String> appCodes = Arrays.stream(signatures)
|
||||
.map(signature -> hash(packageName, signature.toCharsString()))
|
||||
.collect(Collectors.toList());
|
||||
return appCodes;
|
||||
} catch (PackageManager.NameNotFoundException e) {
|
||||
println("Unable to find package to obtain hash.");
|
||||
throw new RuntimeException("Unable to find package to obtain hash.", e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private String hash(String packageName, String signature) {
|
||||
String appInfo = packageName + " " + signature;
|
||||
try {
|
||||
MessageDigest messageDigest = MessageDigest.getInstance(HASH_TYPE);
|
||||
messageDigest.update(appInfo.getBytes(StandardCharsets.UTF_8));
|
||||
byte[] hashSignature = messageDigest.digest();
|
||||
|
||||
// truncated into NUM_HASHED_BYTES
|
||||
hashSignature = Arrays.copyOfRange(hashSignature, 0, NUM_HASHED_BYTES);
|
||||
// encode into Base64
|
||||
String base64Hash = Base64.encodeToString(hashSignature, Base64.NO_PADDING | Base64.NO_WRAP);
|
||||
base64Hash = base64Hash.substring(0, NUM_BASE64_CHAR);
|
||||
|
||||
println(String.format("pkg: %s -- hash: %s", packageName, base64Hash));
|
||||
return base64Hash;
|
||||
} catch (NoSuchAlgorithmException e) {
|
||||
throw new RuntimeException("Unable to generate hash for application", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,31 @@
|
||||
|
||||
package com.cloud.diplomaticquarterapp.whatsapp
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import com.whatsapp.otp.android.sdk.WhatsAppOtpHandler
|
||||
import com.whatsapp.otp.android.sdk.WhatsAppOtpIncomingIntentHandler
|
||||
import java.lang.ref.WeakReference
|
||||
|
||||
object WhatsApp {
|
||||
val whatsAppOtpHandler = WhatsAppOtpHandler()
|
||||
inline fun handleOTP ( intent: Intent, crossinline validateOTP:(code: String )-> Unit) =
|
||||
WhatsAppOtpIncomingIntentHandler().processOtpCode(
|
||||
intent,
|
||||
// call your function to validate
|
||||
{code -> validateOTP(code) },
|
||||
{error,exception->
|
||||
println("the error is ${error.name}")
|
||||
println("the exception stacktrace is ${exception.message}")
|
||||
println("the exception is cause ${exception.cause}")
|
||||
})
|
||||
|
||||
|
||||
fun performHandShake(context : WeakReference<Context>) = whatsAppOtpHandler.sendOtpIntentToWhatsApp(context.get()!!)
|
||||
|
||||
|
||||
|
||||
fun isWhatsAppInstalled(context : WeakReference<Context>) : Boolean = whatsAppOtpHandler.isWhatsAppInstalled(context.get()!!)
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
package com.cloud.diplomaticquarterapp.whatsapp
|
||||
import android.app.PendingIntent
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import com.cloud.diplomaticquarterapp.whatsapp.WhatsApp
|
||||
import com.cloud.diplomaticquarterapp.whatsapp.WhatsAppOtpPlatformBridge
|
||||
import io.flutter.embedding.android.FlutterFragmentActivity
|
||||
|
||||
class WhatsAppCodeActivity : FlutterFragmentActivity() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
WhatsApp.handleOTP(intent){code ->
|
||||
WhatsAppOtpPlatformBridge.result?.success(code);
|
||||
finish()
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,48 @@
|
||||
package com.cloud.diplomaticquarterapp.whatsapp
|
||||
|
||||
import com.ejada.hmg.MainActivity
|
||||
import io.flutter.embedding.engine.FlutterEngine
|
||||
import io.flutter.plugin.common.MethodCall
|
||||
import io.flutter.plugin.common.MethodChannel
|
||||
import java.lang.ref.WeakReference
|
||||
|
||||
class WhatsAppOtpPlatformBridge(
|
||||
private var flutterEngine: FlutterEngine,
|
||||
private var mainActivity: MainActivity
|
||||
) {
|
||||
|
||||
|
||||
private lateinit var channel: MethodChannel
|
||||
|
||||
companion object {
|
||||
private const val CHANNEL = "whats_app_otp"
|
||||
var result: MethodChannel.Result? = null
|
||||
}
|
||||
|
||||
fun invoke() {
|
||||
channel = MethodChannel(flutterEngine.dartExecutor.binaryMessenger, CHANNEL)
|
||||
channel.setMethodCallHandler { call: MethodCall, result: MethodChannel.Result ->
|
||||
when (call.method) {
|
||||
"isWhatsAppInstalled" -> {
|
||||
val isAppInstalled =
|
||||
WhatsApp.isWhatsAppInstalled(WeakReference(mainActivity))
|
||||
result.success(isAppInstalled)
|
||||
}
|
||||
|
||||
"performHandShake" -> {
|
||||
WhatsApp.performHandShake(WeakReference(mainActivity))
|
||||
}
|
||||
|
||||
|
||||
"startListening" -> {
|
||||
WhatsAppOtpPlatformBridge.result = result
|
||||
}
|
||||
|
||||
else -> {
|
||||
result.notImplemented()
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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>
|
||||
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.6 KiB |
@ -1,22 +1,23 @@
|
||||
<resources>
|
||||
<string name="app_name">HMG Patient App</string>
|
||||
<string name="app_name">HMG Patient App</string>
|
||||
|
||||
<string name="geofence_unknown_error">
|
||||
<string name="geofence_unknown_error">
|
||||
Unknown error: the Geofence service is not available now.
|
||||
</string>
|
||||
<string name="geofence_not_available">
|
||||
<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">
|
||||
<string name="geofence_too_many_geofences">
|
||||
Your app has registered too many geofences.
|
||||
</string>
|
||||
<string name="geofence_too_many_pending_intents">
|
||||
<string name="geofence_too_many_pending_intents">
|
||||
You have provided too many PendingIntents to the addGeofences() call.
|
||||
</string>
|
||||
<string name="GEOFENCE_INSUFFICIENT_LOCATION_PERMISSION">
|
||||
<string name="GEOFENCE_INSUFFICIENT_LOCATION_PERMISSION">
|
||||
App do not have permission to access location service.
|
||||
</string>
|
||||
<string name="GEOFENCE_REQUEST_TOO_FREQUENT">
|
||||
<string name="GEOFENCE_REQUEST_TOO_FREQUENT">
|
||||
Geofence requests happened too frequently.
|
||||
</string>
|
||||
<string name="mapbox_access_token" translatable="false">sk.eyJ1IjoicndhaWQiLCJhIjoiY2x6NWo0bTMzMWZodzJrcGZpemYzc3Z4dSJ9.uSSZuwNSGCcCdPAiORECmg</string>
|
||||
</resources>
|
||||
|
||||
@ -1,5 +1,8 @@
|
||||
org.gradle.jvmargs=-Xmx2048m
|
||||
org.gradle.jvmargs=-Xmx4096m
|
||||
#android.enableR8=true
|
||||
android.useAndroidX=true
|
||||
android.enableJetifier=true
|
||||
android.suppressUnsupportedCompileSdk=33
|
||||
MAPBOX_USER_NAME = "mapbox"
|
||||
MAPBOX_DOWNLOADS_TOKEN="sk.eyJ1IjoicndhaWQiLCJhIjoiY2x6NWo0bTMzMWZodzJrcGZpemYzc3Z4dSJ9.uSSZuwNSGCcCdPAiORECmg"
|
||||
#MAPBOX_DOWNLOADS_TOKEN="pk.eyJ1IjoicndhaWQiLCJhIjoiY2x5cGo4aHNjMGNsbTJyc2djempobGQxaSJ9.RCaC6WrUt4A4YnZNfxnONQ"
|
||||
@ -0,0 +1,9 @@
|
||||
<svg id="route" xmlns="http://www.w3.org/2000/svg" width="27.521" height="27.521" viewBox="0 0 27.521 27.521">
|
||||
<path id="Path_5246" data-name="Path 5246" d="M365.087,11.9a.806.806,0,0,0,1.457,0l2.916-6.138a4.034,4.034,0,1,0-7.288,0Zm.728-8.678a.806.806,0,1,1-.806.806A.806.806,0,0,1,365.815,3.225Z" transform="translate(-342.332)" fill="#28323a"/>
|
||||
<ellipse id="Ellipse_225" data-name="Ellipse 225" cx="1.5" cy="1" rx="1.5" ry="1" transform="translate(14 21.522)" fill="#28323a"/>
|
||||
<path id="Path_5247" data-name="Path 5247" d="M175.628,205.644a2.016,2.016,0,0,1,0-4.031h8.315L183.177,200h-7.549a3.628,3.628,0,0,0,0,7.257h4.537a3.235,3.235,0,0,1,0-1.613Z" transform="translate(-162.754 -189.249)" fill="#28323a"/>
|
||||
<circle id="Ellipse_226" data-name="Ellipse 226" cx="1.5" cy="1.5" r="1.5" transform="translate(19 15.522)" fill="#28323a"/>
|
||||
<path id="Path_5248" data-name="Path 5248" d="M350.39,305h-.183a3.236,3.236,0,0,1,0,1.613h.183a2.069,2.069,0,0,1,0,4.139H345.1a3.236,3.236,0,0,1,0,1.613h5.289a3.682,3.682,0,0,0,0-7.364Z" transform="translate(-326.551 -288.605)" fill="#28323a"/>
|
||||
<path id="Path_5249" data-name="Path 5249" d="M167.02,412l.706,1.613h2.621a3.235,3.235,0,0,1,0-1.613Z" transform="translate(-158.042 -389.854)" fill="#28323a"/>
|
||||
<path id="Path_5250" data-name="Path 5250" d="M5.311,322.415a.806.806,0,0,0-1.477,0l-3.763,8.6a.806.806,0,0,0,1.139,1.023l3.363-1.922,3.363,1.922a.806.806,0,0,0,1.139-1.023Z" transform="translate(0 -304.627)" fill="#28323a"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 432 KiB |
@ -0,0 +1,3 @@
|
||||
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M27.2568 32L25.1631 30.6091C27.9468 26.2666 29.4463 21.2154 29.4998 15.9999C29.4463 10.7844 27.9468 5.73315 25.1631 1.39067L27.2568 0C30.304 4.75302 31.9441 10.2814 31.9998 15.9875L32 16.0001L31.9998 16.0128C31.9441 21.7186 30.304 27.247 27.2568 32ZM25.0625 16.0165L25.0627 15.9999L25.0625 15.983C25.0051 11.5525 23.6995 7.27342 21.2869 3.60788L19.2097 5.02439C21.3494 8.27467 22.5085 12.0694 22.5625 15.9999C22.5085 19.9301 21.3494 23.7248 19.2097 26.9751L21.2869 28.3916C23.6995 24.7263 25.0051 20.447 25.0625 16.0165ZM16.7007 22.9666C17.719 20.7477 18.2334 18.3302 18.188 15.9748C18.1284 12.8761 17.1565 9.86638 15.3779 7.27168L13.3276 8.72795C14.822 10.9081 15.6384 13.4313 15.6885 16.0247C15.7163 17.4783 15.4875 18.9644 15.0205 20.3943L1.56543 9.86414L0.925293 11.3547C0.887451 11.4427 0 13.5424 0 16.4452C0 19.4569 1.69165 22.1483 1.76367 22.2614L3.86157 20.8772C3.8479 20.8558 2.5 18.6766 2.5 16.4452C2.5 15.5068 2.61401 14.6693 2.75073 14.0018L16.0413 24.4033L16.7007 22.9666Z" fill="#2E303A"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1124.14 1256.39">
|
||||
<defs>
|
||||
<style>
|
||||
.cls-1 {
|
||||
fill: #231f20;
|
||||
}
|
||||
</style>
|
||||
</defs>
|
||||
<path class="cls-1" d="M699.62,1113.02h0c-20.06,44.48-33.32,92.75-38.4,143.37l424.51-90.24c20.06-44.47,33.31-92.75,38.4-143.37l-424.51,90.24Z"/>
|
||||
<path class="cls-1" d="M1085.73,895.8c20.06-44.47,33.32-92.75,38.4-143.37l-330.68,70.33v-135.2l292.27-62.11c20.06-44.47,33.32-92.75,38.4-143.37l-330.68,70.27V66.13c-50.67,28.45-95.67,66.32-132.25,110.99v403.35l-132.25,28.11V0c-50.67,28.44-95.67,66.32-132.25,110.99v525.69l-295.91,62.88c-20.06,44.47-33.33,92.75-38.42,143.37l334.33-71.05v170.26l-358.3,76.14c-20.06,44.47-33.32,92.75-38.4,143.37l375.04-79.7c30.53-6.35,56.77-24.4,73.83-49.24l68.78-101.97v-.02c7.14-10.55,11.3-23.27,11.3-36.97v-149.98l132.25-28.11v270.4l424.53-90.28Z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 923 B |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 32 KiB |
@ -0,0 +1,5 @@
|
||||
<svg id="Download" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
class="color000000 svgShape"
|
||||
d="M1344 1344q0-26-19-45t-45-19-45 19-19 45 19 45 45 19 45-19 19-45zm256 0q0-26-19-45t-45-19-45 19-19 45 19 45 45 19 45-19 19-45zm128-224v320q0 40-28 68t-68 28H160q-40 0-68-28t-28-68v-320q0-40 28-68t68-28h465l135 136q58 56 136 56t136-56l136-136h464q40 0 68 28t28 68zm-325-569q17 41-14 70l-448 448q-18 19-45 19t-45-19L403 621q-31-29-14-70 17-39 59-39h256V64q0-26 19-45t45-19h256q26 0 45 19t19 45v448h256q42 0 59 39z" fill="#ffffff"></path>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 585 B |
@ -0,0 +1,3 @@
|
||||
<svg width="22" height="29" viewBox="0 0 22 29" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M15.5498 11.4402C17.4647 9.69433 20.0542 7.33316 20.2903 1.69231H22V0H0V1.69231H1.70974C1.94576 7.33316 4.53533 9.69433 6.45023 11.4402C7.73475 12.6113 8.46154 13.3281 8.46154 14.441C8.46154 15.5539 7.73475 16.2707 6.45023 17.4419C4.53533 19.1877 1.94576 21.5489 1.70974 27.1897H0V28.8821H22V27.1897H20.2903C20.0542 21.5489 17.4647 19.1877 15.5498 17.4419C14.2653 16.2707 13.5385 15.5539 13.5385 14.441C13.5385 13.3281 14.2653 12.6113 15.5498 11.4402ZM10.1538 20.7837C9.8925 20.8376 9.63431 20.9161 9.38232 21.0203L4.19952 23.165C5.0459 21.0129 6.40911 19.7695 7.5904 18.6925C8.9087 17.4906 10.1538 16.3553 10.1538 14.441V20.7837ZM14.4096 18.6925C15.5909 19.7695 16.954 21.0129 17.8005 23.1649L12.6177 21.0203C12.3657 20.916 12.1075 20.8376 11.8462 20.7836V14.441C11.8462 16.3553 13.0913 17.4906 14.4096 18.6925ZM4.16979 5.64103C3.76065 4.57493 3.47809 3.2877 3.40413 1.69231H18.5958C18.5219 3.2877 18.2394 4.57493 17.8302 5.64103H4.16979Z" fill="#2E303A"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
@ -0,0 +1,11 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="31" height="31" viewBox="0 0 31 31">
|
||||
<g id="route" transform="translate(0 0)">
|
||||
<path id="Path_5246" data-name="Path 5246" d="M365.505,13.407a.908.908,0,0,0,1.641,0l3.284-6.914a4.544,4.544,0,1,0-8.209,0Zm.82-9.774a.908.908,0,1,1-.908.908A.908.908,0,0,1,366.326,3.633Z" transform="translate(-339.874)" fill="#da4a54"/>
|
||||
<circle id="Ellipse_225" data-name="Ellipse 225" cx="1.5" cy="1.5" r="1.5" transform="translate(16 24)" fill="#2e303a"/>
|
||||
<path id="Path_5247" data-name="Path 5247" d="M176.087,206.357a2.27,2.27,0,0,1,0-4.541h9.366L184.59,200h-8.5a4.087,4.087,0,0,0,0,8.174h5.11a3.644,3.644,0,0,1,0-1.816Z" transform="translate(-161.586 -187.891)" fill="#2e303a"/>
|
||||
<circle id="Ellipse_226" data-name="Ellipse 226" cx="2" cy="2" r="2" transform="translate(21 17)" fill="#2e303a"/>
|
||||
<path id="Path_5248" data-name="Path 5248" d="M351.059,305h-.206a3.644,3.644,0,0,1,0,1.816h.206a2.331,2.331,0,0,1,0,4.662H345.1a3.645,3.645,0,0,1,0,1.816h5.958a4.147,4.147,0,0,0,0-8.295Z" transform="translate(-324.206 -286.533)" fill="#2e303a"/>
|
||||
<path id="Path_5249" data-name="Path 5249" d="M167.02,412l.795,1.816h2.952a3.644,3.644,0,0,1,0-1.816Z" transform="translate(-156.907 -387.055)" fill="#2e303a"/>
|
||||
<path id="Path_5250" data-name="Path 5250" d="M5.982,322.476a.908.908,0,0,0-1.664,0L.08,332.164a.908.908,0,0,0,1.283,1.153l3.788-2.164,3.788,2.164a.908.908,0,0,0,1.283-1.153Z" transform="translate(0 -302.44)" fill="#2e303a"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
@ -0,0 +1,3 @@
|
||||
<svg width="23" height="29" viewBox="0 0 23 29" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M19.2821 9.01172C18.9238 9.01172 18.5814 9.08629 18.2671 9.22183C17.9481 7.9542 16.8772 7.01953 15.6088 7.01953C14.9039 7.01953 14.2599 7.3082 13.7722 7.78227C13.2844 7.3082 12.6405 7.01953 11.9356 7.01953C11.6137 7.01953 11.3046 7.0797 11.0173 7.1902V3.96484C11.0173 2.31711 9.78138 0.976562 8.2623 0.976562C6.74323 0.976562 5.50736 2.31711 5.50736 3.96484V12.7547C5.06406 12.2739 4.70028 11.8793 4.70028 11.8793C3.68187 10.7746 2.03312 10.7115 0.9489 11.7334C-0.14065 12.7546 -0.316355 14.5345 0.548882 15.7856C0.558678 15.7998 0.568841 15.8136 0.57937 15.8272L4.66385 21.1185C5.1074 21.6931 5.74741 22.0491 6.31205 22.3632C6.72296 22.5918 7.34399 22.9373 7.34399 23.1565V26.0117C7.34399 27.6595 8.57986 29 10.0989 29H17.4455C18.9645 29 20.2004 27.6595 20.2004 26.0117V23.9531C20.2004 23.5591 20.5492 23.0843 20.9185 22.5818C21.4428 21.8683 22.037 21.0596 22.037 19.9688V12C22.037 10.3523 20.8012 9.01172 19.2821 9.01172ZM19.4823 21.3401C18.958 22.0536 18.3638 22.8623 18.3638 23.9531V26.0117C18.3638 26.561 17.9518 27.0078 17.4455 27.0078H10.0989C9.59258 27.0078 9.18062 26.561 9.18062 26.0117V23.1564C9.18062 21.72 8.00707 21.0672 7.1501 20.5904C6.72064 20.3515 6.2766 20.1046 6.072 19.8395L2.006 14.572C1.73131 14.1561 1.79259 13.5755 2.15165 13.2389C2.51304 12.8982 3.06213 12.9197 3.4016 13.2879C3.4016 13.2879 5.62662 15.7015 5.77685 15.8641C6.35294 16.4878 7.34393 16.0456 7.34393 15.1591V3.96484C7.34393 3.4156 7.75588 2.96875 8.26224 2.96875C8.7686 2.96875 9.18056 3.4156 9.18056 3.96484V12C9.18056 12.5501 9.59172 12.9961 10.0989 12.9961C10.606 12.9961 11.0172 12.5501 11.0172 12V10.0078C11.0172 9.45857 11.4291 9.01172 11.9355 9.01172C12.4419 9.01172 12.8538 9.45857 12.8538 10.0078V12C12.8538 12.5501 13.265 12.9961 13.7721 12.9961C14.2793 12.9961 14.6905 12.5501 14.6905 12V10.0078C14.6905 9.45857 15.1024 9.01172 15.6088 9.01172C16.1151 9.01172 16.5271 9.45857 16.5271 10.0078V12C16.5271 12.5501 16.9382 12.9961 17.4454 12.9961C17.9526 12.9961 18.3637 12.5501 18.3637 12C18.3637 11.4508 18.7757 11.0039 19.282 11.0039C19.7884 11.0039 20.2003 11.4508 20.2003 12V19.9688H20.2004C20.2004 20.3628 19.8516 20.8375 19.4823 21.3401Z" fill="#2E303A"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="31" height="31" viewBox="0 0 31 31">
|
||||
<g id="Group_8325" data-name="Group 8325" transform="translate(-75 -236)">
|
||||
<circle id="Ellipse_223" data-name="Ellipse 223" cx="15.5" cy="15.5" r="15.5" transform="translate(75 236)" fill="#359846"/>
|
||||
<path id="hour-glass" d="M8.73,10.811a1.46,1.46,0,0,0,0-2.122L8.647,8.61C7.085,7.119,5.878,5.968,5.515,3.556A1.413,1.413,0,0,1,6.992,2h7.091A1.413,1.413,0,0,1,15.56,3.556C15.2,5.968,13.99,7.119,12.429,8.61l-.083.079a1.46,1.46,0,0,0,0,2.122l.083.079c1.562,1.491,2.768,2.642,3.132,5.054A1.413,1.413,0,0,1,14.083,17.5H6.992a1.413,1.413,0,0,1-1.477-1.556c.364-2.412,1.57-3.563,3.132-5.054Zm.529,1.316-.006,0c-1.19,1.064-2.076,1.856-2.191,3.816a.363.363,0,0,0,.13.3.382.382,0,0,0,.247.09h6.194a.382.382,0,0,0,.282-.122.361.361,0,0,0,.1-.268c-.115-1.959-1-2.752-2.191-3.816-.315-.281-.651-.582-1-.928a.4.4,0,0,0-.569,0c-.347.344-.681.643-.993.923Z" transform="translate(80.35 241.75)" fill="#fff" fill-rule="evenodd"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1021 B |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 222 B |
|
After Width: | Height: | Size: 412 B |
@ -0,0 +1,22 @@
|
||||
export const icons = {
|
||||
chatSend: require('./chat-send.png'),
|
||||
defaultAvatar: require('./default-avatar.png'),
|
||||
locked: require('./locked.png'),
|
||||
more: require('./more.png'),
|
||||
mute: require('./mute.png'),
|
||||
muted: require('./muted.png'),
|
||||
shareOn: require('./share-on.png'),
|
||||
shareOff: require('./share-off.png'),
|
||||
speakerOn: require('./speaker-on.png'),
|
||||
speakerOff: require('./speaker-off.png'),
|
||||
switchCamera: require('./switch-camera.png'),
|
||||
hamburger: require('./hamburger.png'),
|
||||
questionBalloon: require('./question-ballon.png'),
|
||||
talking: require('./talking.png'),
|
||||
unmute: require('./unmute.png'),
|
||||
unlocked: require('./unlocked.png'),
|
||||
videoOn: require('./video-on.png'),
|
||||
videoOff: require('./video-off.png'),
|
||||
};
|
||||
|
||||
export type IconTypes = keyof typeof icons;
|
||||
|
After Width: | Height: | Size: 376 B |
|
After Width: | Height: | Size: 567 B |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 5.7 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 877 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 9.3 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 384 B |
|
After Width: | Height: | Size: 634 B |
|
After Width: | Height: | Size: 7.3 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 119 KiB |
@ -0,0 +1,8 @@
|
||||
<svg data-name="Group 8404" height="26" id="Group_8404" viewBox="0 0 26 26"
|
||||
width="26" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect data-name="Rectangle 17531" fill="#69a6e2" height="26" id="Rectangle_17531" rx="4"
|
||||
width="26" />
|
||||
<path d="M2.914,17.807s.731-.005,1.246-.005l3.9.019c.466,0,.854-.488.876-1.193l0-3.213c0-.685.311-1.221.793-1.252l1.2-.009c.483.029.814.572.814,1.253l0,3.231c.021.7.346,1.165.814,1.165l5.254.014.01-3.971c0-.683-.333-1.214-.82-1.245l-2.11-.01c-.467,0-.834-.486-.854-1.191l-.008-1.074c.023-.7.392-1.189.86-1.189l2.122.006c.482-.031.8-.592.8-1.274l.005-4.957a2.126,2.126,0,0,1-.693.69,2.164,2.164,0,0,1-.933.312l-3.569,0c-.465,0-.854.5-.876,1.2V8.295c-.022.7-.387,1.2-.854,1.2l-1.08-.008c-.468,0-.842-.482-.864-1.183l0-3.218c-.021-.705-.392-1.178-.859-1.178l-5.179,0V7.87c0,.684.324,1.231.808,1.263l2.122-.009c.48.031.82.595.82,1.275l-.007.916c0,.683-.328,1.23-.81,1.261l-2.126-.005c-.484.034-.808.572-.808,1.256Z" data-name="Path 5276"
|
||||
fill="#fff"
|
||||
id="Path_5276" transform="translate(2.327 2.327)" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
@ -0,0 +1,8 @@
|
||||
<svg data-name="Group 8404" height="26" id="Group_8404" viewBox="0 0 26 26"
|
||||
width="26" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect data-name="Rectangle 17531" fill="#cc2229" height="26" id="Rectangle_17531" rx="4"
|
||||
width="26" />
|
||||
<path d="M2.914,17.807s.731-.005,1.246-.005l3.9.019c.466,0,.854-.488.876-1.193l0-3.213c0-.685.311-1.221.793-1.252l1.2-.009c.483.029.814.572.814,1.253l0,3.231c.021.7.346,1.165.814,1.165l5.254.014.01-3.971c0-.683-.333-1.214-.82-1.245l-2.11-.01c-.467,0-.834-.486-.854-1.191l-.008-1.074c.023-.7.392-1.189.86-1.189l2.122.006c.482-.031.8-.592.8-1.274l.005-4.957a2.126,2.126,0,0,1-.693.69,2.164,2.164,0,0,1-.933.312l-3.569,0c-.465,0-.854.5-.876,1.2V8.295c-.022.7-.387,1.2-.854,1.2l-1.08-.008c-.468,0-.842-.482-.864-1.183l0-3.218c-.021-.705-.392-1.178-.859-1.178l-5.179,0V7.87c0,.684.324,1.231.808,1.263l2.122-.009c.48.031.82.595.82,1.275l-.007.916c0,.683-.328,1.23-.81,1.261l-2.126-.005c-.484.034-.808.572-.808,1.256Z" data-name="Path 5276"
|
||||
fill="#fff"
|
||||
id="Path_5276" transform="translate(2.327 2.327)" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
@ -0,0 +1,10 @@
|
||||
<svg height="11" viewBox="0 0 8.442 11" width="8.442" xmlns="http://www.w3.org/2000/svg">
|
||||
<g data-name="Group 8411" id="Group_8411" transform="translate(-3.75 -1.25)">
|
||||
<path d="M3.75,5.515A4.281,4.281,0,0,1,7.971,1.25a4.281,4.281,0,0,1,4.221,4.265c0,2.386-1.969,4-3.623,5.036l-.006,0-.006,0a1.175,1.175,0,0,1-1.173,0l-.007,0-.007,0C5.724,9.51,3.75,7.91,3.75,5.515Zm2.43-.044A1.791,1.791,0,1,1,7.971,7.262,1.791,1.791,0,0,1,6.18,5.471Z" data-name="Path 5277"
|
||||
fill="#2d343d"
|
||||
fill-rule="evenodd" id="Path_5277" />
|
||||
<path d="M6.021,19.214A.512.512,0,0,0,5,19.262a1.032,1.032,0,0,0,.436.8,2.707,2.707,0,0,0,.813.409,7.651,7.651,0,0,0,2.332.326,7.651,7.651,0,0,0,2.332-.326,2.708,2.708,0,0,0,.813-.409,1.032,1.032,0,0,0,.436-.8.512.512,0,0,0-1.021-.047.408.408,0,0,1-.048.044,1.727,1.727,0,0,1-.5.242,6.648,6.648,0,0,1-2.009.273A6.648,6.648,0,0,1,6.573,19.5a1.727,1.727,0,0,1-.5-.242A.407.407,0,0,1,6.021,19.214Z" data-name="Path 5278"
|
||||
fill="#2d343d"
|
||||
id="Path_5278" transform="translate(-0.61 -8.547)" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |