mirror of
https://gitlab.linphone.org/BC/public/linphone-iphone.git
synced 2026-01-19 12:08:11 +00:00
Compare commits
2271 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b348307b6c | ||
|
|
c5c970d177 | ||
|
|
986276c04f | ||
|
|
221f0b10d7 | ||
|
|
aed6876065 | ||
|
|
4f7e4b0c36 | ||
|
|
6575a4b0f2 | ||
|
|
9723c0de04 | ||
|
|
990d2f36af | ||
|
|
8d5c0ce79b | ||
|
|
61931138b2 | ||
|
|
1dbbe6a53d | ||
|
|
4c45a9bb1e | ||
|
|
4feae7fccd | ||
|
|
1501dae019 | ||
|
|
84ec09173c | ||
|
|
4cd63b53b2 | ||
|
|
d4b10d38ae | ||
|
|
6827bdc1dc | ||
|
|
ed08190ff4 | ||
|
|
57b7b857bc | ||
|
|
f16a0f42ae | ||
|
|
c7ddf2d8d0 | ||
|
|
7decb12a3f | ||
|
|
da1abd75ae | ||
|
|
33b379285f | ||
|
|
b45a328ad4 | ||
|
|
c9f2915ca0 | ||
|
|
fe8432f128 | ||
|
|
36fa752ccf | ||
|
|
0f8df65dff | ||
|
|
221e3cbb4b | ||
|
|
2b64c26518 | ||
|
|
5492a3e3a9 | ||
|
|
773102e4bd | ||
|
|
b462657a77 | ||
|
|
5d13a2b49d | ||
|
|
7bdb8fa92d | ||
|
|
0daba4fe03 | ||
|
|
07dbf407b0 | ||
|
|
7972fd7c1f | ||
|
|
fa1f8386b4 | ||
|
|
a421d90d0c | ||
|
|
b904f71f79 | ||
|
|
e748a001bf | ||
|
|
4fbb43f38c | ||
|
|
bcee4439f5 | ||
|
|
b49445d50d | ||
|
|
a3d2c74592 | ||
|
|
4f6dc2c0c7 | ||
|
|
08ab9a1078 | ||
|
|
db72bdf242 | ||
|
|
9413f6f5dc | ||
|
|
7237a5f4a7 | ||
|
|
8c9784a21d | ||
|
|
bb4134ede0 | ||
|
|
8cd322ff0e | ||
|
|
f8b7e3b319 | ||
|
|
aefa334038 | ||
|
|
9559701a5e | ||
|
|
5bb757d150 | ||
|
|
ac6b478eb1 | ||
|
|
41f9db8199 | ||
|
|
4b3d99245f | ||
|
|
aae7c290be | ||
|
|
0a06644473 | ||
|
|
b75db70d19 | ||
|
|
9beadaadd9 | ||
|
|
888b75a2d4 | ||
|
|
068b93cf1c | ||
|
|
e9eebbd45a | ||
|
|
1c3680df65 | ||
|
|
1389565b83 | ||
|
|
4fde1933dd | ||
|
|
a33a8666ae | ||
|
|
3b2ce2ed4b | ||
|
|
4cf1dbd8b5 | ||
|
|
1d0df11c61 | ||
|
|
ee1c09e98f | ||
|
|
8bd84ca8a5 | ||
|
|
1e53619eaa | ||
|
|
112029d0df | ||
|
|
8737bcb40d | ||
|
|
5837e5e85d | ||
|
|
e81699052a | ||
|
|
147682a0e5 | ||
|
|
0dfdb5551c | ||
|
|
880967d2e3 | ||
|
|
b36f220911 | ||
|
|
a2564c4cc0 | ||
|
|
d3984b4b1a | ||
|
|
91c6f7a311 | ||
|
|
de9656d94d | ||
|
|
43d63ae081 | ||
|
|
c7f7606859 | ||
|
|
54ca929f88 | ||
|
|
c6291f61d6 | ||
|
|
42997d6891 | ||
|
|
014e7c575e | ||
|
|
773696260b | ||
|
|
304f46ba02 | ||
|
|
e0229fde0f | ||
|
|
108df56148 | ||
|
|
c7a9edf25f | ||
|
|
90f2ad7e58 | ||
|
|
1485e7a574 | ||
|
|
8f131ad335 | ||
|
|
bc1c737973 | ||
|
|
926107061a | ||
|
|
3aa9419c5d | ||
|
|
a5bef93587 | ||
|
|
525e705b59 | ||
|
|
a7e2ebb600 | ||
|
|
14635250f8 | ||
|
|
357418287c | ||
|
|
3c56f09130 | ||
|
|
5b6e2e1c0a | ||
|
|
53a135a4b6 | ||
|
|
5035c6a924 | ||
|
|
8511a46985 | ||
|
|
240116edfe | ||
|
|
92aada9537 | ||
|
|
140f6d5e2b | ||
|
|
e3106a3f50 | ||
|
|
72ac7e25f8 | ||
|
|
1e6df2cd62 | ||
|
|
5ff4484ec5 | ||
|
|
f7b64b365f | ||
|
|
53ab111d32 | ||
|
|
7ddc584a2a | ||
|
|
8079921236 | ||
|
|
06b76b2935 | ||
|
|
106e628e41 | ||
|
|
c54fda28f3 | ||
|
|
3ce27ad496 | ||
|
|
750c27001f | ||
|
|
a5db77fd7c | ||
|
|
3c3f3549ab | ||
|
|
3b2f97db6c | ||
|
|
9325485da3 | ||
|
|
a11d23af33 | ||
|
|
65f965385c | ||
|
|
6d81455b56 | ||
|
|
1a19012613 | ||
|
|
cdad4a05bd | ||
|
|
f15ef58613 | ||
|
|
0e254f4371 | ||
|
|
7f9e1cc2c9 | ||
|
|
ab3cf55f49 | ||
|
|
80a8d24730 | ||
|
|
82d1af7a2c | ||
|
|
c6d58693eb | ||
|
|
64a3876a95 | ||
|
|
647e51380c | ||
|
|
a7bab90efb | ||
|
|
bfd85489ff | ||
|
|
2d2e9d7c21 | ||
|
|
19eb44882f | ||
|
|
5b4d1bee69 | ||
|
|
1910536fd6 | ||
|
|
4bc9b2a783 | ||
|
|
1ab630c0f5 | ||
|
|
43ebb20646 | ||
|
|
7e22ae310e | ||
|
|
fe1e68f197 | ||
|
|
6626a0d1a1 | ||
|
|
6b88006faa | ||
|
|
beee998627 | ||
|
|
bf4e6fd23c | ||
|
|
9d861a7b81 | ||
|
|
24501f3ce2 | ||
|
|
c3e3af65b5 | ||
|
|
db66abc5b9 | ||
|
|
4767f6deea | ||
|
|
ad80fb3cfb | ||
|
|
ac4839dcae | ||
|
|
dc03349aae | ||
|
|
927ef5fbbc | ||
|
|
5e267dc2de | ||
|
|
93094b1bec | ||
|
|
917d22b1ec | ||
|
|
e2432683ae | ||
|
|
ad736c8fc5 | ||
|
|
b775f41ae0 | ||
|
|
914177000b | ||
|
|
a7e1a8b210 | ||
|
|
992bd6c369 | ||
|
|
d3a3e91361 | ||
|
|
8cbc4682e9 | ||
|
|
0217c167dc | ||
|
|
af5e25262c | ||
|
|
64a72c0704 | ||
|
|
ff8fb2d179 | ||
|
|
36ac07fefa | ||
|
|
d170e1e52e | ||
|
|
d17a9bbe4c | ||
|
|
fcaedf8c02 | ||
|
|
fd7242d9bb | ||
|
|
707f8aa3b9 | ||
|
|
67041c20f8 | ||
|
|
2a04fb7254 | ||
|
|
abe0f2db1b | ||
|
|
c6179c973c | ||
|
|
cfcd55a622 | ||
|
|
8ee693a092 | ||
|
|
37b913d692 | ||
|
|
b4d342479b | ||
|
|
4b87be84bd | ||
|
|
737a9880b6 | ||
|
|
e981d5e0fe | ||
|
|
1c858a4d9b | ||
|
|
05d955b698 | ||
|
|
cb26bc0bae | ||
|
|
9692a310d5 | ||
|
|
60352dbc23 | ||
|
|
c97e0045c8 | ||
|
|
fe261f3127 | ||
|
|
2b79b95079 | ||
|
|
ec44690cfe | ||
|
|
0335d4efaf | ||
|
|
3aba3bc975 | ||
|
|
fd100e8378 | ||
|
|
401c4c048e | ||
|
|
9d9f46f4e7 | ||
|
|
2788bb2132 | ||
|
|
cba7621413 | ||
|
|
c0916af3ce | ||
|
|
1d7a10c16b | ||
|
|
43094e66a4 | ||
|
|
faf84164a4 | ||
|
|
54fa7be51d | ||
|
|
dc722938c1 | ||
|
|
2a365f3baa | ||
|
|
64dc7b5efe | ||
|
|
8db22b6b52 | ||
|
|
decb2ef753 | ||
|
|
1ecc1232a1 | ||
|
|
8731387351 | ||
|
|
7f16eb7ec2 | ||
|
|
8b53f55e7a | ||
|
|
8aa5b32787 | ||
|
|
0d149c7b54 | ||
|
|
dcd80e14bc | ||
|
|
44f8ee4ae1 | ||
|
|
c90fef2c56 | ||
|
|
3883d89aa7 | ||
|
|
b4a19c9fd0 | ||
|
|
06847bc82e | ||
|
|
f534ccb560 | ||
|
|
865f889a3c | ||
|
|
cd223dcf06 | ||
|
|
0bc0eb8e19 | ||
|
|
9465f7bc68 | ||
|
|
80efed4f0a | ||
|
|
645144a938 | ||
|
|
0b51bd55ce | ||
|
|
0fceedc0aa | ||
|
|
323987f1d9 | ||
|
|
90d79c01db | ||
|
|
dd4284162c | ||
|
|
c8dc64b7fd | ||
|
|
db437bccf3 | ||
|
|
de03c3e759 | ||
|
|
9c2ce60b04 | ||
|
|
0da7f36619 | ||
|
|
4f1fcbbcf6 | ||
|
|
7d6b2d8e0b | ||
|
|
713526ac57 | ||
|
|
fdfc7b2af9 | ||
|
|
6eaaf3c9c5 | ||
|
|
3d6338effa | ||
|
|
896a908f3f | ||
|
|
1215ae0950 | ||
|
|
97eec83915 | ||
|
|
f85e7772c8 | ||
|
|
16da763e5e | ||
|
|
90231749c4 | ||
|
|
49736388cf | ||
|
|
eb41590ed0 | ||
|
|
05fc902790 | ||
|
|
7219731c0e | ||
|
|
5989887723 | ||
|
|
b83ae7fde6 | ||
|
|
21b8f02e65 | ||
|
|
0179c12b07 | ||
|
|
03bd42d750 | ||
|
|
512ca5afe8 | ||
|
|
f2615b89e0 | ||
|
|
5cadd63d1e | ||
|
|
6b9857b11b | ||
|
|
a760a98366 | ||
|
|
b7ef60692d | ||
|
|
5c14429eda | ||
|
|
2f95e7b4d3 | ||
|
|
273c77edbe | ||
|
|
0b81887728 | ||
|
|
63a1886ff5 | ||
|
|
2a6abbe183 | ||
|
|
ed6f3215b9 | ||
|
|
ad893ab16e | ||
|
|
7ae256b566 | ||
|
|
acdd201bbe | ||
|
|
ce24ddc919 | ||
|
|
ad48ff8bca | ||
|
|
095705ad37 | ||
|
|
1510a1b045 | ||
|
|
abf294625a | ||
|
|
0c573e6e5c | ||
|
|
ac4ea27a78 | ||
|
|
a524d3c362 | ||
|
|
f1fcb9129c | ||
|
|
b376328f33 | ||
|
|
413e1b4082 | ||
|
|
56f732144d | ||
|
|
db24bd842f | ||
|
|
be53335b67 | ||
|
|
0bc9aa977c | ||
|
|
ad54e09253 | ||
|
|
4641ef680c | ||
|
|
46f5f21216 | ||
|
|
00bbf41f9a | ||
|
|
cf109f9787 | ||
|
|
a3c20e3ae7 | ||
|
|
a9854bc378 | ||
|
|
20da49167c | ||
|
|
b71267eed5 | ||
|
|
d353a9416e | ||
|
|
4d10b44da5 | ||
|
|
7e1e3adf8d | ||
|
|
e74df76301 | ||
|
|
34ff5bcf16 | ||
|
|
e3dd3f5a86 | ||
|
|
3ca2bca27c | ||
|
|
9a208e36b2 | ||
|
|
ac0e70f719 | ||
|
|
940c3519a6 | ||
|
|
1047a01fd4 | ||
|
|
a130e83d60 | ||
|
|
93abf64da6 | ||
|
|
e01989c9c9 | ||
|
|
511c6e4093 | ||
|
|
b3d83c1580 | ||
|
|
0b910ca190 | ||
|
|
ae1180c222 | ||
|
|
b40110f919 | ||
|
|
f538301efa | ||
|
|
8ec47edf25 | ||
|
|
10a400351a | ||
|
|
7f2c276b6a | ||
|
|
9b31eb3d99 | ||
|
|
eb68b50a43 | ||
|
|
fe0d0f166c | ||
|
|
19d0be524b | ||
|
|
45def92bfa | ||
|
|
57c823ba4e | ||
|
|
0aba4044a1 | ||
|
|
992afa16cf | ||
|
|
6d116b6cec | ||
|
|
35eb8cb8df | ||
|
|
11053b2ca3 | ||
|
|
e383826e91 | ||
|
|
35f32d623c | ||
|
|
b7446f6d26 | ||
|
|
fdd0925184 | ||
|
|
5c71c34801 | ||
|
|
e4b90b58e8 | ||
|
|
8609f880fb | ||
|
|
0e635ec9fc | ||
|
|
284b0433d8 | ||
|
|
97f5a2270d | ||
|
|
9421135fac | ||
|
|
7d394f5313 | ||
|
|
c2c5b26d4b | ||
|
|
a68c9f5da8 | ||
|
|
8d96b08f14 | ||
|
|
715b92ab3f | ||
|
|
82008d5a5f | ||
|
|
e32e22de76 | ||
|
|
bd769e71bb | ||
|
|
9366a2f13a | ||
|
|
8cd335e649 | ||
|
|
2e4b0dc1e4 | ||
|
|
17c91784ad | ||
|
|
9f796aa412 | ||
|
|
4cfea6ba80 | ||
|
|
1763f21359 | ||
|
|
f51e92adee | ||
|
|
8fb0b8a5df | ||
|
|
6ca88dfb0f | ||
|
|
3171f0d97d | ||
|
|
7c42e7ed5c | ||
|
|
533cb11b24 | ||
|
|
e59c9efb09 | ||
|
|
3f154651ea | ||
|
|
c6c25ce88b | ||
|
|
faa748fd8c | ||
|
|
7ea925e233 | ||
|
|
fb47e4b577 | ||
|
|
17e7c05576 | ||
|
|
60d006248b | ||
|
|
aad4b89e3f | ||
|
|
a07f69e1df | ||
|
|
d47cd3b06c | ||
|
|
4b17ecb173 | ||
|
|
1c9210ceb2 | ||
|
|
94e387dac2 | ||
|
|
d1489d2287 | ||
|
|
bde4d0622e | ||
|
|
8491ce02ed | ||
|
|
ecea020da3 | ||
|
|
d4b6fe6d8e | ||
|
|
bff25fc3f2 | ||
|
|
a839c7d643 | ||
|
|
75588af0e2 | ||
|
|
70405b0f1b | ||
|
|
26476c0606 | ||
|
|
c6c0793b59 | ||
|
|
311e245861 | ||
|
|
50d8bfaf15 | ||
|
|
03f1ca2a4a | ||
|
|
f3491bf9c5 | ||
|
|
97bfdaab04 | ||
|
|
9a78e75722 | ||
|
|
f548037fa2 | ||
|
|
f6813f7d97 | ||
|
|
de59f3e889 | ||
|
|
8e13089798 | ||
|
|
00a8e964b1 | ||
|
|
aa10440bc9 | ||
|
|
34d125eff6 | ||
|
|
a5e822c94d | ||
|
|
ec3053a780 | ||
|
|
4b2f10280e | ||
|
|
d84f10de39 | ||
|
|
baf1fcc0b9 | ||
|
|
0a162390a3 | ||
|
|
bd8a89a9d3 | ||
|
|
4a369dbb23 | ||
|
|
3000304543 | ||
|
|
51ac365db7 | ||
|
|
4201395b4a | ||
|
|
1f46fa240a | ||
|
|
01e14dd06b | ||
|
|
dfdaf9cfac | ||
|
|
6d3577379f | ||
|
|
d27ff560e9 | ||
|
|
6336d4fae9 | ||
|
|
ac8253e47e | ||
|
|
73ea3362b0 | ||
|
|
ed619e58e1 | ||
|
|
15b511a388 | ||
|
|
1b02fafc43 | ||
|
|
349a290ec5 | ||
|
|
1bce467959 | ||
|
|
d7d1b195c6 | ||
|
|
37b70f4f32 | ||
|
|
1615f5caa9 | ||
|
|
6b2a6573be | ||
|
|
3fb50958b3 | ||
|
|
26e2defbe3 | ||
|
|
532332ad94 | ||
|
|
c41d38679f | ||
|
|
e4c64cc4af | ||
|
|
efa34110c2 | ||
|
|
b523315e82 | ||
|
|
79dc832684 | ||
|
|
4f3699e72b | ||
|
|
cc1bcd1666 | ||
|
|
0933b71618 | ||
|
|
67b5f7f563 | ||
|
|
8f66998a03 | ||
|
|
42821c983a | ||
|
|
fa6034a426 | ||
|
|
3203cb3ccc | ||
|
|
27e0757c5f | ||
|
|
d3ca95b46f | ||
|
|
54f1c2a27d | ||
|
|
eaefc50626 | ||
|
|
51ca670369 | ||
|
|
1957fa7b15 | ||
|
|
764b8f860c | ||
|
|
a8f7756241 | ||
|
|
a13f44e189 | ||
|
|
33fae2447b | ||
|
|
2b80c5b78b | ||
|
|
2eee40a7ae | ||
|
|
137abcfe74 | ||
|
|
00187e97a2 | ||
|
|
0b28aa5179 | ||
|
|
4666678f37 | ||
|
|
f41a236d1b | ||
|
|
f3271778cc | ||
|
|
33c67e78b9 | ||
|
|
d2afeb483a | ||
|
|
5d330ce7dc | ||
|
|
9bbd554547 | ||
|
|
c58610d6f8 | ||
|
|
423fb56401 | ||
|
|
d1148cca1c | ||
|
|
b79541295f | ||
|
|
be09800b5a | ||
|
|
bbce741911 | ||
|
|
423d9a7ac5 | ||
|
|
86cd7f452e | ||
|
|
dc4c3833f7 | ||
|
|
062aea1df3 | ||
|
|
5ea8c2917f | ||
|
|
aa5b0abd67 | ||
|
|
233ff399ff | ||
|
|
b715cf1cfd | ||
|
|
e0e0970481 | ||
|
|
ce9021df3b | ||
|
|
a1b580b78a | ||
|
|
9308c4d104 | ||
|
|
e380431767 | ||
|
|
6034d41a10 | ||
|
|
035f74f59e | ||
|
|
cb58b50e84 | ||
|
|
62ab791cd0 | ||
|
|
9f7c4e7304 | ||
|
|
62aaf57b3f | ||
|
|
57d4e3cc1f | ||
|
|
72e8ecfd7e | ||
|
|
8bfcb185d7 | ||
|
|
502747d72e | ||
|
|
bcd5792c86 | ||
|
|
3261cebd5f | ||
|
|
70267b6d3b | ||
|
|
8d8966407a | ||
|
|
a25441a467 | ||
|
|
17e3633cb6 | ||
|
|
8af6977085 | ||
|
|
4fa2d92382 | ||
|
|
1693c21e2e | ||
|
|
68f740658b | ||
|
|
d6293be80f | ||
|
|
29d3770280 | ||
|
|
b56912b729 | ||
|
|
69242599f8 | ||
|
|
473c486ccf | ||
|
|
ae4dcda49b | ||
|
|
6478fbf03e | ||
|
|
b2a7a11dba | ||
|
|
64763565da | ||
|
|
66500e42b5 | ||
|
|
df8f515601 | ||
|
|
321e1065ac | ||
|
|
26cbad1e46 | ||
|
|
cec5d99915 | ||
|
|
1674a4127b | ||
|
|
fa44e97232 | ||
|
|
89eb159a50 | ||
|
|
5ed0fc1f76 | ||
|
|
c2f9f34ba8 | ||
|
|
8261e8d5c1 | ||
|
|
22d37cfce9 | ||
|
|
8059dd4470 | ||
|
|
96d8a879b8 | ||
|
|
356803051f | ||
|
|
2b371db0fe | ||
|
|
b75c756991 | ||
|
|
e95045dab4 | ||
|
|
923c290fa0 | ||
|
|
be414f3c14 | ||
|
|
24435dcb92 | ||
|
|
ace392528b | ||
|
|
e792810c3c | ||
|
|
e01a27f538 | ||
|
|
c821b960ed | ||
|
|
4eaee9d36d | ||
|
|
179fbaff14 | ||
|
|
1abc35de0c | ||
|
|
885c14ef9c | ||
|
|
e870b74758 | ||
|
|
846a938498 | ||
|
|
3ba5fd5f38 | ||
|
|
8045c4af2d | ||
|
|
5d27d11c06 | ||
|
|
f5c074e0bc | ||
|
|
5c82815644 | ||
|
|
6742904342 | ||
|
|
4667301464 | ||
|
|
39363f1096 | ||
|
|
00eb9c4f7c | ||
|
|
69c3648c15 | ||
|
|
76d4a8cdb3 | ||
|
|
2e2dac6807 | ||
|
|
c78a77268e | ||
|
|
e0d5254648 | ||
|
|
da68a15694 | ||
|
|
4ec30c477d | ||
|
|
8f8877b759 | ||
|
|
aee88f8c87 | ||
|
|
153c2ae238 | ||
|
|
6143724f0c | ||
|
|
62db361b13 | ||
|
|
3ef0db8645 | ||
|
|
fcce09843e | ||
|
|
d729f7570a | ||
|
|
e94611273a | ||
|
|
4e2a7d4158 | ||
|
|
30d9baf766 | ||
|
|
ca7bedfd14 | ||
|
|
a851537428 | ||
|
|
bd3b8d8731 | ||
|
|
69a878d245 | ||
|
|
c5f780eead | ||
|
|
3588d97116 | ||
|
|
6c072aafa0 | ||
|
|
8692d628f5 | ||
|
|
f21831ab2c | ||
|
|
65a98c6030 | ||
|
|
8d425c40e6 | ||
|
|
06557fa3a3 | ||
|
|
340db54af1 | ||
|
|
1ee6ef3150 | ||
|
|
afa7496e82 | ||
|
|
a96ae05dd6 | ||
|
|
7bae9fd342 | ||
|
|
39c7c6a4b1 | ||
|
|
b84e116336 | ||
|
|
c750a8cfb2 | ||
|
|
ea921badfb | ||
|
|
21ab16271c | ||
|
|
f2312a2e36 | ||
|
|
befad07719 | ||
|
|
09ea819b55 | ||
|
|
b92690865f | ||
|
|
8afe787d2a | ||
|
|
4884997db6 | ||
|
|
b5e3f72cf6 | ||
|
|
bdd38a80b6 | ||
|
|
3994129177 | ||
|
|
cef2e693ea | ||
|
|
858094ecc5 | ||
|
|
6bb74b028d | ||
|
|
ef56935228 | ||
|
|
e3a04b9b2f | ||
|
|
bb3cf12498 | ||
|
|
5b3f412bb7 | ||
|
|
5b5a5d88fa | ||
|
|
268bff0ca3 | ||
|
|
4b46322264 | ||
|
|
8875e2ba54 | ||
|
|
2221d14ffc | ||
|
|
85be73b84f | ||
|
|
9c949e632d | ||
|
|
ffe8c0fd45 | ||
|
|
89367bb7cd | ||
|
|
82d1d15779 | ||
|
|
282310f6c2 | ||
|
|
e74b2dd4f3 | ||
|
|
570007c2c6 | ||
|
|
0aeef2f022 | ||
|
|
16a034e50d | ||
|
|
ae57bcc60c | ||
|
|
c19f2283c7 | ||
|
|
dbba065933 | ||
|
|
2b441f3557 | ||
|
|
b5d98cc45a | ||
|
|
9befe0695a | ||
|
|
02a89a08c3 | ||
|
|
2c28474ca5 | ||
|
|
02e6baf9ba | ||
|
|
dfcd501dc3 | ||
|
|
9e314aa205 | ||
|
|
c441e2cb43 | ||
|
|
a9eb5caad4 | ||
|
|
7fb63c19dd | ||
|
|
eca85b80ad | ||
|
|
e0374d458d | ||
|
|
ef471b2e1d | ||
|
|
0fff983b0a | ||
|
|
e91e722587 | ||
|
|
fafedeef42 | ||
|
|
8e3bd3b5ab | ||
|
|
dbb667fd9e | ||
|
|
290d842843 | ||
|
|
0e00819a67 | ||
|
|
2d0f50d11a | ||
|
|
0cf8346c89 | ||
|
|
2ef76ae47b | ||
|
|
b885963d7a | ||
|
|
5215256f72 | ||
|
|
bd9e4a000f | ||
|
|
b3fa81b537 | ||
|
|
1b879a5c61 | ||
|
|
088f3a7506 | ||
|
|
bd29389a40 | ||
|
|
1e16dbaa61 | ||
|
|
c69ca4c971 | ||
|
|
45714fa633 | ||
|
|
00a7f305a5 | ||
|
|
7dca3300e1 | ||
|
|
fad30689b4 | ||
|
|
ad701fb952 | ||
|
|
9f3aeb63ac | ||
|
|
57c8efe310 | ||
|
|
476f1f22ef | ||
|
|
e94065ee2e | ||
|
|
e7707c0b2b | ||
|
|
d0feb5b047 | ||
|
|
472bf46938 | ||
|
|
0682489645 | ||
|
|
84ad957568 | ||
|
|
ae19bad388 | ||
|
|
415cf274b1 | ||
|
|
a011e7643b | ||
|
|
d7a7615616 | ||
|
|
5beb5c088c | ||
|
|
14daf5bd40 | ||
|
|
b46c2ef778 | ||
|
|
965ae0e35a | ||
|
|
cb8af8deea | ||
|
|
eeb8c94c69 | ||
|
|
ad58d80939 | ||
|
|
d2d8c9cd8d | ||
|
|
18c4b46d63 | ||
|
|
2ba2e40958 | ||
|
|
69165aa3ed | ||
|
|
6d8dfbf1a1 | ||
|
|
ec842f2830 | ||
|
|
4eafaa1dc6 | ||
|
|
7da5b9567f | ||
|
|
45f2475634 | ||
|
|
2306d338a8 | ||
|
|
517ff07904 | ||
|
|
cfe3bef32d | ||
|
|
32dc6ea345 | ||
|
|
4949ca329a | ||
|
|
46c41c1218 | ||
|
|
f6e935c65f | ||
|
|
5c5fd2ad8d | ||
|
|
19da4e0d64 | ||
|
|
1f0c3fa5f7 | ||
|
|
b16372c420 | ||
|
|
0e818ee772 | ||
|
|
960d421ae7 | ||
|
|
0a2d4a1682 | ||
|
|
582c1b1d66 | ||
|
|
16c386dcc8 | ||
|
|
f99f1c6d32 | ||
|
|
deeef8507c | ||
|
|
a34a426827 | ||
|
|
e6e1087d85 | ||
|
|
6dfc870624 | ||
|
|
0ab7450b46 | ||
|
|
6c10018788 | ||
|
|
f106f54021 | ||
|
|
2b574cd896 | ||
|
|
9bdd3c088e | ||
|
|
4647b00b9e | ||
|
|
0f57545a2a | ||
|
|
352cfae6f5 | ||
|
|
269eeba480 | ||
|
|
08f164fc88 | ||
|
|
924a7413fa | ||
|
|
36bfadcfde | ||
|
|
0730e9b738 | ||
|
|
20f7d54c01 | ||
|
|
d21c026bc9 | ||
|
|
da75af008e | ||
|
|
62a027b397 | ||
|
|
728678a02c | ||
|
|
f320769b12 | ||
|
|
b3a602c330 | ||
|
|
866bc9dd81 | ||
|
|
1e4d8f55a7 | ||
|
|
0432c9799d | ||
|
|
550859d51d | ||
|
|
5f22d7e473 | ||
|
|
ee735ceace | ||
|
|
dd7661e851 | ||
|
|
0d210dea6d | ||
|
|
ea18eaa3d6 | ||
|
|
d96abf1514 | ||
|
|
b62a806359 | ||
|
|
a37972abaf | ||
|
|
cd1ae4c19d | ||
|
|
c350def616 | ||
|
|
2133934e28 | ||
|
|
601be3ebed | ||
|
|
0299640c2c | ||
|
|
6c59bd6581 | ||
|
|
f771bdc790 | ||
|
|
027cb1ec2d | ||
|
|
ab3b883442 | ||
|
|
bf4e4042d3 | ||
|
|
f3d2f1cf6a | ||
|
|
75ae95007b | ||
|
|
0d74e6651a | ||
|
|
a822a0895d | ||
|
|
af3a0fbd31 | ||
|
|
73d6f805d3 | ||
|
|
8d6f096582 | ||
|
|
533bc26d6d | ||
|
|
56caacfe1c | ||
|
|
66361d7309 | ||
|
|
8e5a3b703f | ||
|
|
3b20c47f1d | ||
|
|
c2a1f7bc28 | ||
|
|
a0fdd54b70 | ||
|
|
944115fb4d | ||
|
|
d8d867d798 | ||
|
|
be09968a31 | ||
|
|
4196fed865 | ||
|
|
0d4efd7a19 | ||
|
|
c0a16e62be | ||
|
|
ea1420356d | ||
|
|
fd9ede62f8 | ||
|
|
3d6888b8ba | ||
|
|
b999f2f1e3 | ||
|
|
89d4926798 | ||
|
|
3461b096eb | ||
|
|
fd61bca29f | ||
|
|
6c77fe7850 | ||
|
|
90624e633a | ||
|
|
56e93a77a7 | ||
|
|
c02dcc754e | ||
|
|
9094c9cea8 | ||
|
|
621eca1893 | ||
|
|
d91996c351 | ||
|
|
61c2c048bb | ||
|
|
cacc61252d | ||
|
|
da9d90e368 | ||
|
|
98da1d956f | ||
|
|
b9dadb51f4 | ||
|
|
dc84803a17 | ||
|
|
85ebe742cb | ||
|
|
89cae39b6d | ||
|
|
012b96798c | ||
|
|
60d128f4f2 | ||
|
|
f0b19b8fd3 | ||
|
|
e467312008 | ||
|
|
4c475925b8 | ||
|
|
122a9c4a57 | ||
|
|
caa3543202 | ||
|
|
efc912965a | ||
|
|
132465b5a5 | ||
|
|
e53d9ab406 | ||
|
|
3b894f2653 | ||
|
|
c3df599069 | ||
|
|
6295b0f319 | ||
|
|
5b3c8d4d1a | ||
|
|
3513afc8c7 | ||
|
|
433e28e945 | ||
|
|
4048fa3075 | ||
|
|
d91aa94c9a | ||
|
|
ffb60daaea | ||
|
|
5ab64968e3 | ||
|
|
4320f9dcce | ||
|
|
05cc8277d8 | ||
|
|
55631bf4f4 | ||
|
|
7b93ff8998 | ||
|
|
df2da7c774 | ||
|
|
fbd578ea37 | ||
|
|
dedd68326a | ||
|
|
9ef28d00f6 | ||
|
|
99b4868f7e | ||
|
|
35fdb0de9b | ||
|
|
1c87718854 | ||
|
|
e23309765a | ||
|
|
bca8612eab | ||
|
|
33b07f1440 | ||
|
|
2e5ba428a0 | ||
|
|
2fc711b63f | ||
|
|
054d622491 | ||
|
|
bd631a7237 | ||
|
|
e9784ddc61 | ||
|
|
9c020f94f9 | ||
|
|
937444c5d0 | ||
|
|
2f1bd572b0 | ||
|
|
6bf6aa3aa6 | ||
|
|
1b498258a3 | ||
|
|
3f4e8d79cf | ||
|
|
4efc28da9e | ||
|
|
e66a0802f5 | ||
|
|
aa1c585024 | ||
|
|
aa18757a48 | ||
|
|
12f9829331 | ||
|
|
5aaf01250b | ||
|
|
04dbce540c | ||
|
|
1ddf2602b9 | ||
|
|
d97f07942f | ||
|
|
8469e8583e | ||
|
|
96bdf5150c | ||
|
|
7abacc3caf | ||
|
|
e2a7ac7f56 | ||
|
|
ea1382e801 | ||
|
|
1b44d902b1 | ||
|
|
5c7d76a572 | ||
|
|
db7ccff9f5 | ||
|
|
341d8171a0 | ||
|
|
3046336e57 | ||
|
|
5173b655f2 | ||
|
|
111fef6603 | ||
|
|
bcf4eefe35 | ||
|
|
d0ae11c880 | ||
|
|
81448d8006 | ||
|
|
d98ecb8f37 | ||
|
|
ccc1e52538 | ||
|
|
6603702fe0 | ||
|
|
63d83b13f6 | ||
|
|
cc6d599ec5 | ||
|
|
1253cccbcc | ||
|
|
99e3643ba4 | ||
|
|
d89e616f37 | ||
|
|
f7f9ee32b6 | ||
|
|
6cf84fdd37 | ||
|
|
723227b87e | ||
|
|
bb9f850704 | ||
|
|
70ff69aa63 | ||
|
|
035149bd47 | ||
|
|
3bb0d06787 | ||
|
|
2a1bd88741 | ||
|
|
76b7681bf4 | ||
|
|
4e44d764f8 | ||
|
|
8523f110d7 | ||
|
|
26dd731f84 | ||
|
|
52b4bd9f56 | ||
|
|
5b3176c031 | ||
|
|
8e6df8867a | ||
|
|
50f8564981 | ||
|
|
d3cc7091ac | ||
|
|
1dde8873a8 | ||
|
|
77951adaa1 | ||
|
|
e47a04c5d9 | ||
|
|
2db146787e | ||
|
|
8b14538fcd | ||
|
|
7b476904cb | ||
|
|
422f84e92d | ||
|
|
07b2c1e04e | ||
|
|
b576785399 | ||
|
|
a209349f95 | ||
|
|
84da8a367b | ||
|
|
d7da763dae | ||
|
|
0142a9146b | ||
|
|
81a9dd9124 | ||
|
|
773d9584f4 | ||
|
|
375c8b0ce6 | ||
|
|
ce9f6c454c | ||
|
|
5cf66f2853 | ||
|
|
ae1ea15558 | ||
|
|
6b5e456242 | ||
|
|
568b9eaae2 | ||
|
|
ada6065b21 | ||
|
|
1d38941383 | ||
|
|
3b625b9063 | ||
|
|
19da1739f0 | ||
|
|
8aae1b2020 | ||
|
|
5d0ce2c8f3 | ||
|
|
53b190a5c8 | ||
|
|
abd5461f54 | ||
|
|
a3befe61cf | ||
|
|
3fe7dd8884 | ||
|
|
ac7f4da260 | ||
|
|
a71d86e34f | ||
|
|
2292512e4d | ||
|
|
5dc38b6c91 | ||
|
|
219ee2d438 | ||
|
|
b7f8f4a2c6 | ||
|
|
9ef96bbd78 | ||
|
|
34ff4d642d | ||
|
|
7e0b3347f1 | ||
|
|
91d933827b | ||
|
|
146682e555 | ||
|
|
e4a16c804b | ||
|
|
baf17d6919 | ||
|
|
6ff33bb0d9 | ||
|
|
8f733195d4 | ||
|
|
0f2cb9143f | ||
|
|
2e77d7bc84 | ||
|
|
f28a38d838 | ||
|
|
99445a04c4 | ||
|
|
43e91ae33d | ||
|
|
1c2b726016 | ||
|
|
3a065eaac8 | ||
|
|
368a8e1bf4 | ||
|
|
b12c508e69 | ||
|
|
30a350b0dc | ||
|
|
91614236e8 | ||
|
|
4b88022c44 | ||
|
|
74303f7130 | ||
|
|
35f4dec79f | ||
|
|
b966c34868 | ||
|
|
31c57e5b28 | ||
|
|
1fb44f32f0 | ||
|
|
ff9924df32 | ||
|
|
f8562a45de | ||
|
|
0ed4f948ca | ||
|
|
056a71d887 | ||
|
|
3bd7a7f19c | ||
|
|
f25211a9f1 | ||
|
|
669736cc20 | ||
|
|
03aec21ded | ||
|
|
2c47087a80 | ||
|
|
6f88231cdd | ||
|
|
be8062ff9b | ||
|
|
9b4cf3aaab | ||
|
|
7c79e1bea7 | ||
|
|
8c0f52c28e | ||
|
|
2abc2e6500 | ||
|
|
d7663de622 | ||
|
|
ad09a2511a | ||
|
|
adc8b00d6d | ||
|
|
3669674eae | ||
|
|
b967b67598 | ||
|
|
55d7bf8de7 | ||
|
|
7bc754195b | ||
|
|
ae5f3a6c41 | ||
|
|
e0d77cdb06 | ||
|
|
fb212eeb9f | ||
|
|
392be31c5c | ||
|
|
731b6bd66b | ||
|
|
32452cbeeb | ||
|
|
0b72427247 | ||
|
|
5f09c25eee | ||
|
|
2e02db69a8 | ||
|
|
284739639a | ||
|
|
3eb289b274 | ||
|
|
551f2b5068 | ||
|
|
daeec87404 | ||
|
|
f1c2a672a5 | ||
|
|
04adc613a6 | ||
|
|
0c4eab494b | ||
|
|
9a01ab5025 | ||
|
|
fdbadd3b70 | ||
|
|
95a939e73e | ||
|
|
3e428ac8cf | ||
|
|
c943477f65 | ||
|
|
5b0d6b7ada | ||
|
|
3b878b9fa6 | ||
|
|
c58cbad002 | ||
|
|
f13e13326f | ||
|
|
f023a1b108 | ||
|
|
1fef65020d | ||
|
|
9a9a9bf002 | ||
|
|
6863ea3f10 | ||
|
|
2d9c4c8c78 | ||
|
|
247d3047e4 | ||
|
|
abf2d63b5b | ||
|
|
1192b80906 | ||
|
|
a5d421f9f9 | ||
|
|
697c719659 | ||
|
|
39f76dc874 | ||
|
|
6e398ffb3a | ||
|
|
fd566c5a01 | ||
|
|
94a31d774e | ||
|
|
c0d0aedfba | ||
|
|
735ecf739a | ||
|
|
d54e71bb1c | ||
|
|
b38d858692 | ||
|
|
4645b776ee | ||
|
|
3c15f7ff20 | ||
|
|
3b1462cbe1 | ||
|
|
07489f68f9 | ||
|
|
194ddcabf8 | ||
|
|
2789c59c6b | ||
|
|
5113a74839 | ||
|
|
806975edeb | ||
|
|
0ede98bcf6 | ||
|
|
51df1a836c | ||
|
|
58ccee0a39 | ||
|
|
20ef204f42 | ||
|
|
91be4e530b | ||
|
|
32f264d8e4 | ||
|
|
3265e27eb1 | ||
|
|
4f31af47a3 | ||
|
|
9741c844f2 | ||
|
|
0d602260be | ||
|
|
329193d2fa | ||
|
|
becc375f12 | ||
|
|
70a85bcaa7 | ||
|
|
0964dcec5c | ||
|
|
cec6e221b9 | ||
|
|
fc47f41aa2 | ||
|
|
7126085638 | ||
|
|
ef94fd8eb8 | ||
|
|
f2d7155aa2 | ||
|
|
7b70ff88d4 | ||
|
|
20053396cb | ||
|
|
6c1beb6f06 | ||
|
|
384c5ccf65 | ||
|
|
d4e5c1fed8 | ||
|
|
468706fb0e | ||
|
|
2582bbf782 | ||
|
|
d96228ef44 | ||
|
|
8894132986 | ||
|
|
7d9b79a9f8 | ||
|
|
cfb71d14c4 | ||
|
|
726a4afdd1 | ||
|
|
24b00bdd07 | ||
|
|
cd56030c41 | ||
|
|
3c453119b3 | ||
|
|
5e3906e578 | ||
|
|
89112ccc3e | ||
|
|
9439819ca4 | ||
|
|
44c2e97f92 | ||
|
|
7d8b511d3e | ||
|
|
eeec7e38d7 | ||
|
|
9655948f35 | ||
|
|
a6b7182bd0 | ||
|
|
1e886125b9 | ||
|
|
6a29d1d0e2 | ||
|
|
f25423445f | ||
|
|
452bcc2aaf | ||
|
|
587e15a112 | ||
|
|
a66fe73aa9 | ||
|
|
417e93ca30 | ||
|
|
afd22ede17 | ||
|
|
b0f5efae59 | ||
|
|
7e308427d0 | ||
|
|
df1a2c3ea4 | ||
|
|
b9430bffc2 | ||
|
|
0ccb7e4913 | ||
|
|
25aa487e58 | ||
|
|
bb4c8bfe91 | ||
|
|
575b9d01c7 | ||
|
|
2301a26758 | ||
|
|
f8f9b99718 | ||
|
|
3ba84b99d8 | ||
|
|
2c98100035 | ||
|
|
67e38623c1 | ||
|
|
c7c950876d | ||
|
|
4b873086ea | ||
|
|
d524cbaaf0 | ||
|
|
c8bc8793c6 | ||
|
|
91b6334d34 | ||
|
|
c74f37e95d | ||
|
|
368d6fa90a | ||
|
|
16a46d94dd | ||
|
|
3268fc4b55 | ||
|
|
ec70c161f3 | ||
|
|
5040e6dae9 | ||
|
|
b55aa86ba4 | ||
|
|
d8389e0ac1 | ||
|
|
b3f9c18f95 | ||
|
|
9fe2a38455 | ||
|
|
7d9c923a79 | ||
|
|
67e20f3175 | ||
|
|
7db3a0fe7b | ||
|
|
89d93ee7d3 | ||
|
|
a610640f6f | ||
|
|
f86064d9b0 | ||
|
|
e7f3e840ce | ||
|
|
b2a3077198 | ||
|
|
238b0d3be5 | ||
|
|
d157ffbd3d | ||
|
|
0cb680d8a8 | ||
|
|
524d429960 | ||
|
|
54c3d391cb | ||
|
|
2f5789a6f6 | ||
|
|
885b88e1c3 | ||
|
|
2f673c051d | ||
|
|
9dfbcd8aaa | ||
|
|
c99352f0b1 | ||
|
|
36e9bdf745 | ||
|
|
03b14fc239 | ||
|
|
aacee0b373 | ||
|
|
706850f0b9 | ||
|
|
95449cc7c5 | ||
|
|
be80f0d342 | ||
|
|
8d2ea6d037 | ||
|
|
0d63c3a14c | ||
|
|
faa378c8ea | ||
|
|
0dfb387fb6 | ||
|
|
df6834beae | ||
|
|
5cfda32547 | ||
|
|
0bfa04fce6 | ||
|
|
80c4b2e45e | ||
|
|
2f48008050 | ||
|
|
18910129b5 | ||
|
|
770c9252a2 | ||
|
|
4e7db0c33e | ||
|
|
876f22da36 | ||
|
|
ecad9c86b3 | ||
|
|
64d33a67fb | ||
|
|
e8274983cd | ||
|
|
cc4d8c8fe7 | ||
|
|
12e623e176 | ||
|
|
8c9772ae4b | ||
|
|
698bb7882a | ||
|
|
8c66c4f96a | ||
|
|
44df5523ef | ||
|
|
fe56c6d946 | ||
|
|
7caecad1fb | ||
|
|
877483201c | ||
|
|
601a1450ea | ||
|
|
f762c8b018 | ||
|
|
dadd035bb2 | ||
|
|
03f4bd62d2 | ||
|
|
2a7260ed38 | ||
|
|
756bd123ea | ||
|
|
1a9c6060c2 | ||
|
|
f33ed2f7f9 | ||
|
|
1f2aa259be | ||
|
|
deb4fbb71e | ||
|
|
f396cdf5a4 | ||
|
|
bd1ea4a5e3 | ||
|
|
176cfd8b4b | ||
|
|
0ee549f5e2 | ||
|
|
1c8fdb1924 | ||
|
|
9581d88f09 | ||
|
|
137eb6de29 | ||
|
|
d0d3f2e403 | ||
|
|
e9a960ec30 | ||
|
|
e0af3af18b | ||
|
|
8c8825790d | ||
|
|
2264103eee | ||
|
|
88713cf1db | ||
|
|
cf9cfe7b35 | ||
|
|
3bdab389f1 | ||
|
|
c844b36a47 | ||
|
|
cc472ef0f9 | ||
|
|
e10cb36cad | ||
|
|
6ff68174b1 | ||
|
|
41496d1ee1 | ||
|
|
8f0bc8e3ea | ||
|
|
64a290ac4a | ||
|
|
08ce19533b | ||
|
|
7553f0b85f | ||
|
|
1d2d6f7605 | ||
|
|
5c0092351f | ||
|
|
0ceb1f9043 | ||
|
|
29266d8ab4 | ||
|
|
5f7b4f3bcd | ||
|
|
4fb127c135 | ||
|
|
59e2343072 | ||
|
|
5adf3d8a3f | ||
|
|
b4d6b8c351 | ||
|
|
1e45f7d58c | ||
|
|
64d08445b6 | ||
|
|
ce93af2566 | ||
|
|
e4da04b464 | ||
|
|
f452f010bb | ||
|
|
38a9e888da | ||
|
|
4f4d8a2a09 | ||
|
|
c55a0677e2 | ||
|
|
9456e7c229 | ||
|
|
20a91c776f | ||
|
|
a84760b271 | ||
|
|
9db3531730 | ||
|
|
fab524f5d0 | ||
|
|
c47580beaf | ||
|
|
2e883b02a3 | ||
|
|
669a64af46 | ||
|
|
e9526989e7 | ||
|
|
74d3f23a4b | ||
|
|
34ee6da00b | ||
|
|
ed964d8736 | ||
|
|
640cb70ebf | ||
|
|
eb26a33d75 | ||
|
|
9740a18219 | ||
|
|
8a86ce82f8 | ||
|
|
cd9f2d21ca | ||
|
|
b272c08e9b | ||
|
|
b8b6344ee0 | ||
|
|
8ea799e1f6 | ||
|
|
e574f00415 | ||
|
|
ba64e81d61 | ||
|
|
4c0530ea9b | ||
|
|
190a7d83e1 | ||
|
|
dbf1859657 | ||
|
|
df1b24f86b | ||
|
|
8890395fa0 | ||
|
|
d4d3f95b96 | ||
|
|
d1f57d4f3c | ||
|
|
a9e4c40f92 | ||
|
|
8a3030d4fb | ||
|
|
5374471827 | ||
|
|
528ed943ed | ||
|
|
f05416af2b | ||
|
|
9dcd761b6d | ||
|
|
fd9a110c8f | ||
|
|
e9666f588e | ||
|
|
a2112ba9f0 | ||
|
|
3bed20a221 | ||
|
|
2c8a87f8bc | ||
|
|
fb82e69db3 | ||
|
|
2291d70411 | ||
|
|
dfded88404 | ||
|
|
9d2589535b | ||
|
|
a6fb4e42b7 | ||
|
|
ee8acb5e16 | ||
|
|
9b77cea175 | ||
|
|
cfecd42524 | ||
|
|
308f47ad97 | ||
|
|
82a013c23e | ||
|
|
234152a2f9 | ||
|
|
69a885df4f | ||
|
|
14f61e3cef | ||
|
|
d6a8209e85 | ||
|
|
462a79b22a | ||
|
|
f3212343d7 | ||
|
|
306162228e | ||
|
|
e23a4a7951 | ||
|
|
e5831781fc | ||
|
|
7c44c5f9bf | ||
|
|
e4fe4607a4 | ||
|
|
0afc2036d6 | ||
|
|
be282ff47b | ||
|
|
5f640551dd | ||
|
|
615f8f612d | ||
|
|
608577034d | ||
|
|
41069f27db | ||
|
|
f9feac7b5e | ||
|
|
e2dc4dad8b | ||
|
|
3ab4afd23a | ||
|
|
ce97c85cc8 | ||
|
|
7c3e20cd54 | ||
|
|
b2d7738704 | ||
|
|
4dd347a297 | ||
|
|
bb1d160373 | ||
|
|
41cfad6ad8 | ||
|
|
ea03700aba | ||
|
|
6e0c86e632 | ||
|
|
de4684199e | ||
|
|
8183282466 | ||
|
|
b6aefc2de9 | ||
|
|
0d55c0ca2f | ||
|
|
ccbf220270 | ||
|
|
ef744eb068 | ||
|
|
8413ae5518 | ||
|
|
1ca9e0379c | ||
|
|
b3a5168191 | ||
|
|
04aded6a48 | ||
|
|
8a8ea78fc4 | ||
|
|
2f24e77bb6 | ||
|
|
e23f80ca51 | ||
|
|
3dc747cf6e | ||
|
|
7968c65055 | ||
|
|
17a4580d16 | ||
|
|
aa4b7e5554 | ||
|
|
77f096a38d | ||
|
|
daadc1023a | ||
|
|
b66c3ad916 | ||
|
|
bcf19d6742 | ||
|
|
ebbc05bf6a | ||
|
|
0f50d114bb | ||
|
|
88e807c529 | ||
|
|
68860ba25f | ||
|
|
55027dbc82 | ||
|
|
96787efe4c | ||
|
|
2becb86ab9 | ||
|
|
e4ea67b716 | ||
|
|
fc4f6fa658 | ||
|
|
4216ecdc13 | ||
|
|
7936214997 | ||
|
|
ed0fe3bb69 | ||
|
|
15ff3fd9a6 | ||
|
|
7bafd37081 | ||
|
|
a4d2c8342b | ||
|
|
de3321646f | ||
|
|
942db35732 | ||
|
|
b58b974392 | ||
|
|
7387bf6330 | ||
|
|
1b96a21993 | ||
|
|
82cb8660d7 | ||
|
|
55a9850b38 | ||
|
|
1fde3a87bc | ||
|
|
c90658d1ac | ||
|
|
1390768f53 | ||
|
|
d42c8d0053 | ||
|
|
f489d4747a | ||
|
|
26a14ab5bd | ||
|
|
c0292d9123 | ||
|
|
f0c5c07341 | ||
|
|
64ac2c6871 | ||
|
|
372ac02eb8 | ||
|
|
1cb6c12ad4 | ||
|
|
c58b9784e6 | ||
|
|
a05064edaf | ||
|
|
173d957914 | ||
|
|
fbf2b92f6b | ||
|
|
1153a0a0e8 | ||
|
|
edea29fd49 | ||
|
|
9c27bcc0df | ||
|
|
f47eb4f204 | ||
|
|
600fdc1eda | ||
|
|
b627c87d21 | ||
|
|
69c6e93d6f | ||
|
|
710df1fa41 | ||
|
|
7e3ff94ed1 | ||
|
|
fa6ba6a8e9 | ||
|
|
fe8e29542c | ||
|
|
4b0838225e | ||
|
|
88970c0e04 | ||
|
|
5e6329e40d | ||
|
|
636e4cd67b | ||
|
|
7ea46b5aab | ||
|
|
a1e3989d0a | ||
|
|
d88641c31c | ||
|
|
7183116b4b | ||
|
|
4f33de229f | ||
|
|
7d9329adab | ||
|
|
831295f680 | ||
|
|
6ef77ebdaa | ||
|
|
c9e189e0ae | ||
|
|
0161430180 | ||
|
|
deb245bcec | ||
|
|
2605090212 | ||
|
|
eee2ae66f3 | ||
|
|
aee1b05517 | ||
|
|
443152f867 | ||
|
|
765f449c94 | ||
|
|
e42b2b010e | ||
|
|
9bcf407285 | ||
|
|
8a689af705 | ||
|
|
3dee6c83b5 | ||
|
|
d86a33e435 | ||
|
|
03ee02ded8 | ||
|
|
01bb34843d | ||
|
|
f5aeea9c96 | ||
|
|
4c026f68c4 | ||
|
|
fa27a5f14b | ||
|
|
7237aa729d | ||
|
|
9166fbd4a8 | ||
|
|
e4f5dbbe26 | ||
|
|
a5499efad8 | ||
|
|
8d10ccb3b1 | ||
|
|
c273564d60 | ||
|
|
b5df5110d3 | ||
|
|
7f436ecf40 | ||
|
|
164b0f58c3 | ||
|
|
565ad48532 | ||
|
|
470e7add1f | ||
|
|
b71f35d1b6 | ||
|
|
a51bee7786 | ||
|
|
e57a36a950 | ||
|
|
2d0af97d23 | ||
|
|
7d00b0fcd1 | ||
|
|
b5a186a991 | ||
|
|
ccf78595cb | ||
|
|
ec829e80ad | ||
|
|
46fefb6988 | ||
|
|
947ec611de | ||
|
|
2e2647f043 | ||
|
|
8a023fab61 | ||
|
|
fd56b1adab | ||
|
|
368f1e1810 | ||
|
|
317665a90b | ||
|
|
f5b683e9d7 | ||
|
|
8164a2d944 | ||
|
|
bf3d9129e0 | ||
|
|
15ae79d561 | ||
|
|
007bea2eaf | ||
|
|
629397d5f6 | ||
|
|
13acb88907 | ||
|
|
5cfa7933a8 | ||
|
|
c67a3fbd99 | ||
|
|
dc60be7eda | ||
|
|
71a9b8ef41 | ||
|
|
faa4e15462 | ||
|
|
9dd1e92821 | ||
|
|
5a30382991 | ||
|
|
e7cc4e922f | ||
|
|
b62fe18ff3 | ||
|
|
bf33513300 | ||
|
|
779c939e78 | ||
|
|
f8dda2f1a7 | ||
|
|
7e6a0f9e75 | ||
|
|
244d580bf8 | ||
|
|
daf5fba2d0 | ||
|
|
9f01c08aa4 | ||
|
|
894367f33b | ||
|
|
98449ef104 | ||
|
|
1492e59dca | ||
|
|
4bf9105c30 | ||
|
|
4908f4d96d | ||
|
|
87f3c62e64 | ||
|
|
698c4066a9 | ||
|
|
43f303fa43 | ||
|
|
537cda59aa | ||
|
|
4cc09f5428 | ||
|
|
1ff46fe25f | ||
|
|
dccab97503 | ||
|
|
8face6c0ca | ||
|
|
4c83d285cf | ||
|
|
8638dea085 | ||
|
|
a8cd49c741 | ||
|
|
bd29182dd2 | ||
|
|
47a16429ae | ||
|
|
68023ef595 | ||
|
|
360e0ac79b | ||
|
|
67a3899ffb | ||
|
|
895d50adb4 | ||
|
|
cdfeebd241 | ||
|
|
ebb3d6a7e0 | ||
|
|
1418f81ecc | ||
|
|
caadaa0958 | ||
|
|
2e386351e1 | ||
|
|
cced8b3258 | ||
|
|
91b0c38a2f | ||
|
|
7c1f9968fe | ||
|
|
7618b03704 | ||
|
|
a87e625e06 | ||
|
|
2d7ec02625 | ||
|
|
7d14a35da5 | ||
|
|
eb687a0520 | ||
|
|
82a8a8689c | ||
|
|
21156a7746 | ||
|
|
44dbf13a58 | ||
|
|
1a35ffcb12 | ||
|
|
bb85becf49 | ||
|
|
f2b1e7bc29 | ||
|
|
99de0f1da3 | ||
|
|
d701e31ef6 | ||
|
|
af2683a2e4 | ||
|
|
5179ac7615 | ||
|
|
b48704b59d | ||
|
|
df15b6cd27 | ||
|
|
466db3ef07 | ||
|
|
ecd80706bc | ||
|
|
6a68a0ad19 | ||
|
|
092b003c3a | ||
|
|
526b587af7 | ||
|
|
9656a0a08c | ||
|
|
3521745f28 | ||
|
|
9eb004469a | ||
|
|
bbd4ad16c5 | ||
|
|
21fbc51405 | ||
|
|
1b3bc34fca | ||
|
|
29d484ea34 | ||
|
|
f1bc077efa | ||
|
|
dd762b6714 | ||
|
|
e9b39b5423 | ||
|
|
c54948e334 | ||
|
|
f74a404252 | ||
|
|
ae24afbf22 | ||
|
|
785b57c4a7 | ||
|
|
6b39af2b00 | ||
|
|
8b54fb0f6c | ||
|
|
c6d0dfb21f | ||
|
|
dd57e366eb | ||
|
|
e06da76068 | ||
|
|
b4d3992d25 | ||
|
|
5cf6db0dd9 | ||
|
|
506d7b3703 | ||
|
|
69a11ef639 | ||
|
|
6ad10719a4 | ||
|
|
8d54620295 | ||
|
|
3e191259aa | ||
|
|
88a0d9302d | ||
|
|
ee9e1f2b92 | ||
|
|
2f69199305 | ||
|
|
94d7ef6a79 | ||
|
|
998e316570 | ||
|
|
15d1a39c03 | ||
|
|
48d2d48c3d | ||
|
|
5e82036dbf | ||
|
|
658edc86a6 | ||
|
|
2520d5be7f | ||
|
|
a952f7724f | ||
|
|
05608ae8fb | ||
|
|
732f044262 | ||
|
|
b2c851875a | ||
|
|
03fb8479f4 | ||
|
|
6896a819ca | ||
|
|
e5957aef2f | ||
|
|
dc3b9fbc9f | ||
|
|
0e8918ae0c | ||
|
|
1f149cd824 | ||
|
|
83b3725771 | ||
|
|
6fecd10768 | ||
|
|
9afdbc5d26 | ||
|
|
05f9fdb15a | ||
|
|
b7fb7f3ce6 | ||
|
|
db3495a33d | ||
|
|
b841f611f2 | ||
|
|
f18f83364f | ||
|
|
0a09e9ae0e | ||
|
|
e98469ec9c | ||
|
|
a286d457db | ||
|
|
a702c8ffbb | ||
|
|
589f8763de | ||
|
|
ef89cab29b | ||
|
|
a15cb46837 | ||
|
|
a35eaf8217 | ||
|
|
f249caf0c6 | ||
|
|
3e777b5cc2 | ||
|
|
041c395424 | ||
|
|
7b4427e785 | ||
|
|
a0b7dd0dda | ||
|
|
ebc591f6c4 | ||
|
|
54dfce82a7 | ||
|
|
05de1c3783 | ||
|
|
9775889ad3 | ||
|
|
44354f4f5e | ||
|
|
dca88588d4 | ||
|
|
a9952c479d | ||
|
|
f43ad2d447 | ||
|
|
ce8d0ea359 | ||
|
|
7ed3c5bbf7 | ||
|
|
972aabfe05 | ||
|
|
8cc619da3b | ||
|
|
92815c79cf | ||
|
|
3c1b675252 | ||
|
|
693455a225 | ||
|
|
aa48e7c36c | ||
|
|
9acc53daf0 | ||
|
|
d680e7a2e4 | ||
|
|
6b8c96348d | ||
|
|
89598d2497 | ||
|
|
15fda66881 | ||
|
|
080907dc82 | ||
|
|
d2a5913d09 | ||
|
|
f749195935 | ||
|
|
8075595fbe | ||
|
|
cd61f24054 | ||
|
|
f5bac47add | ||
|
|
4d05de7bc9 | ||
|
|
da0dcd030b | ||
|
|
e58437ecb2 | ||
|
|
08654f3144 | ||
|
|
2423e64fe2 | ||
|
|
10432eb1ca | ||
|
|
79ed950062 | ||
|
|
5982b8cb6d | ||
|
|
6de9ffd2ee | ||
|
|
bda65d8a9f | ||
|
|
d7e9cf6234 | ||
|
|
763d56a0bc | ||
|
|
0ca42b5d18 | ||
|
|
80ede4726b | ||
|
|
43d31c1cdb | ||
|
|
8352b7a37f | ||
|
|
5ff4e6a4dd | ||
|
|
b830262ccd | ||
|
|
c20948ebf8 | ||
|
|
becd5e2b14 | ||
|
|
b0e83b970a | ||
|
|
10390bd67a | ||
|
|
6921587447 | ||
|
|
ca38aaa90a | ||
|
|
e0759d7912 | ||
|
|
7fdfe63632 | ||
|
|
65746e68a1 | ||
|
|
8fdbf0ba40 | ||
|
|
61932234d9 | ||
|
|
16c0b59def | ||
|
|
01b7d920a5 | ||
|
|
e0e8d35a19 | ||
|
|
179d2718e8 | ||
|
|
bbfe62e108 | ||
|
|
06b461ec5b | ||
|
|
c893a77d57 | ||
|
|
a65774698a | ||
|
|
13535fa2c4 | ||
|
|
bcb2112ffd | ||
|
|
0fafe0d16b | ||
|
|
ca83b41c52 | ||
|
|
e7ed8d60bb | ||
|
|
b6fe76753e | ||
|
|
eb1eaeec40 | ||
|
|
2e2f1dcb73 | ||
|
|
6a62f35fff | ||
|
|
0ce5843ac8 | ||
|
|
0730a10d2a | ||
|
|
d4ef51fefa | ||
|
|
d1614e271e | ||
|
|
0029f580aa | ||
|
|
d644c0d60c | ||
|
|
56232de930 | ||
|
|
9ae49edc66 | ||
|
|
84e71bddb0 | ||
|
|
157922a960 | ||
|
|
14e0ce4e4f | ||
|
|
da4d9c7215 | ||
|
|
d159b4cbf1 | ||
|
|
3d96726934 | ||
|
|
57512d95ee | ||
|
|
60652074ce | ||
|
|
98a7938b86 | ||
|
|
c4b5d1207f | ||
|
|
7a4d625fa2 | ||
|
|
a85e4c9827 | ||
|
|
b79287afef | ||
|
|
59e4034633 | ||
|
|
6e1904e9f5 | ||
|
|
e22c9421c4 | ||
|
|
bed90815c2 | ||
|
|
ebc8f136f4 | ||
|
|
5fe9e65be6 | ||
|
|
d1fc3684ef | ||
|
|
01d40be896 | ||
|
|
55ffc04353 | ||
|
|
a709e1e372 | ||
|
|
e287fd6580 | ||
|
|
bf052251bd | ||
|
|
e94cbabddf | ||
|
|
0fdfc24b44 | ||
|
|
a88c501154 | ||
|
|
ab9351bb78 | ||
|
|
05728f24f3 | ||
|
|
e94552901c | ||
|
|
5a03a29077 | ||
|
|
2c44d164c5 | ||
|
|
878de9b561 | ||
|
|
be7e1b3c87 | ||
|
|
1ceec3d44e | ||
|
|
c2b6d44e29 | ||
|
|
a8a0804740 | ||
|
|
836437d74f | ||
|
|
6b25584c6f | ||
|
|
e7c79bbc24 | ||
|
|
1027d47e53 | ||
|
|
0c2090064b | ||
|
|
e7d60c6227 | ||
|
|
4e69d62f10 | ||
|
|
c8521fb01a | ||
|
|
24c270d892 | ||
|
|
1ff2cbfd7b | ||
|
|
2285414d01 | ||
|
|
37eb749a58 | ||
|
|
9ecc78d82f | ||
|
|
37a34b41e0 | ||
|
|
a2321eb739 | ||
|
|
133c808600 | ||
|
|
ee772e0809 | ||
|
|
4405d39260 | ||
|
|
29e48ebd3f | ||
|
|
9d0175c42a | ||
|
|
88da8d4e0b | ||
|
|
1546c34b75 | ||
|
|
f0754f3f78 | ||
|
|
27a5dec6b9 | ||
|
|
3d015540cd | ||
|
|
98e28caae7 | ||
|
|
d24c7d8df7 | ||
|
|
daf03f56c5 | ||
|
|
3e412b9fdf | ||
|
|
dce25fef43 | ||
|
|
d07a6e534b | ||
|
|
3b3ec5156d | ||
|
|
9fdd0f7aff | ||
|
|
451537bfc2 | ||
|
|
9c8f9dec99 | ||
|
|
973e8262d8 | ||
|
|
e28875d5f8 | ||
|
|
707f07e17a | ||
|
|
90eba600da | ||
|
|
729bd6a556 | ||
|
|
29204b253a | ||
|
|
576030d612 | ||
|
|
6b0d1c27f2 | ||
|
|
e3274a5465 | ||
|
|
a225082067 | ||
|
|
882cf5afa3 | ||
|
|
12b9bdeb84 | ||
|
|
8e41e153f9 | ||
|
|
a0b6350bd6 | ||
|
|
637f678bd8 | ||
|
|
601dda0508 | ||
|
|
01f6e5001a | ||
|
|
b532c09a83 | ||
|
|
8cb3e0db37 | ||
|
|
da49a20fc9 | ||
|
|
60fba52521 | ||
|
|
b2513d760a | ||
|
|
e76955d8ab | ||
|
|
005d1aa465 | ||
|
|
d6eb2eb443 | ||
|
|
9d90f78276 | ||
|
|
9baabe0735 | ||
|
|
fb0818cf75 | ||
|
|
2ff978fa00 | ||
|
|
df865e3369 | ||
|
|
84c744575d | ||
|
|
0107ea2079 | ||
|
|
74b4118dae | ||
|
|
57662b35ed | ||
|
|
ef08adee42 | ||
|
|
2c4b5c04fa | ||
|
|
92908a30a8 | ||
|
|
fdf02d7655 | ||
|
|
766d142003 | ||
|
|
c56bc6919b | ||
|
|
045365958f | ||
|
|
8b937f5749 | ||
|
|
36cf387cea | ||
|
|
b50175040a | ||
|
|
ff4a0d0d1f | ||
|
|
380bbe3416 | ||
|
|
e8e8506ba3 | ||
|
|
319cc03c85 | ||
|
|
ad47d9b24e | ||
|
|
c283f4d549 | ||
|
|
121e661a2c | ||
|
|
ff2545b8bf | ||
|
|
85d3e56e3d | ||
|
|
88f07bb158 | ||
|
|
1a3af675d2 | ||
|
|
46a5652511 | ||
|
|
7895036464 | ||
|
|
78399e99ca | ||
|
|
6d24d353a2 | ||
|
|
290226de6c | ||
|
|
78da1e602c | ||
|
|
a44edf189c | ||
|
|
00fb35f7eb | ||
|
|
2bf17d315c | ||
|
|
6001b2cdf3 | ||
|
|
62402c1ed8 | ||
|
|
b746d9e8ed | ||
|
|
670392f80e | ||
|
|
14a75365df | ||
|
|
c0cc822f47 | ||
|
|
721f724a74 | ||
|
|
62d80ce36c | ||
|
|
b35c949a87 | ||
|
|
b8051bdd99 | ||
|
|
f5b7ebf56e | ||
|
|
93546ff0aa | ||
|
|
a53b163067 | ||
|
|
ed986c2d94 | ||
|
|
4e12510377 | ||
|
|
d666cf7d4e | ||
|
|
f2e731b3f7 | ||
|
|
8baea8c6c5 | ||
|
|
86f6e73283 | ||
|
|
30baa29cfc | ||
|
|
434d1ff26c | ||
|
|
8b8164d1d8 | ||
|
|
8e096e3ec7 | ||
|
|
b94f43be03 | ||
|
|
b86f534c22 | ||
|
|
5a43b837ae | ||
|
|
652bed7b7b | ||
|
|
a86d42ec65 | ||
|
|
b7d1487eaf | ||
|
|
47114c4c98 | ||
|
|
202e33a736 | ||
|
|
19ab701f63 | ||
|
|
a9545e30e6 | ||
|
|
4c069f4444 | ||
|
|
b70fcd5586 | ||
|
|
5e1341d7e0 | ||
|
|
0573560381 | ||
|
|
73e702c188 | ||
|
|
9b979bdba8 | ||
|
|
fe8edab650 | ||
|
|
46c4337bc3 | ||
|
|
433568ea3d | ||
|
|
957a14e1af | ||
|
|
4ea81a0730 | ||
|
|
47b86c03e3 | ||
|
|
faba1d00d8 | ||
|
|
a09af1dc02 | ||
|
|
dbdba3828e | ||
|
|
52f9dcf40e | ||
|
|
0082544cfa | ||
|
|
ff09dc09b3 | ||
|
|
4c2fe06f50 | ||
|
|
f9328106d0 | ||
|
|
0dd411b427 | ||
|
|
82de302e46 | ||
|
|
695896987e | ||
|
|
984652e41e | ||
|
|
c3580036f0 | ||
|
|
ca117fddee | ||
|
|
029759955f | ||
|
|
9ebeee98b1 | ||
|
|
9670776645 | ||
|
|
740cfa7e18 | ||
|
|
6a19fe2f9a | ||
|
|
e6e5fced08 | ||
|
|
cc8f7cded0 | ||
|
|
04fdabc948 | ||
|
|
f5c64116c0 | ||
|
|
19acd2981b | ||
|
|
992dbb8415 | ||
|
|
c84ba5fe5f | ||
|
|
1075515bb9 | ||
|
|
ab279345ae | ||
|
|
3d92614919 | ||
|
|
14b172f2ad | ||
|
|
b62cf43995 | ||
|
|
d84809f1ce | ||
|
|
dc1353ea65 | ||
|
|
e42f3bd63f | ||
|
|
4ad1c3c05c | ||
|
|
332cf26349 | ||
|
|
e96684371d | ||
|
|
8d2ea39119 | ||
|
|
896165ae06 | ||
|
|
4905b4cd1e | ||
|
|
977f530379 | ||
|
|
9413a28869 | ||
|
|
03ebd79ace | ||
|
|
aba528ede5 | ||
|
|
888c135469 | ||
|
|
04169647c2 | ||
|
|
3bc738431f | ||
|
|
cb38cc3b93 | ||
|
|
5ad93ec6f4 | ||
|
|
cfd0edf2f8 | ||
|
|
b7d1d18d44 | ||
|
|
db487a5fb1 | ||
|
|
6a5e3da605 | ||
|
|
0c1a68b237 | ||
|
|
e4e0c5aac8 | ||
|
|
ebe3c0133b | ||
|
|
ddb81ab171 | ||
|
|
5f94b2295f | ||
|
|
a62b5b932c | ||
|
|
d5c11c70ba | ||
|
|
9269c05e56 | ||
|
|
117bf25eec | ||
|
|
f161769e03 | ||
|
|
24befe7501 | ||
|
|
fb42a12d7f | ||
|
|
4180a8ed9c | ||
|
|
6e1ee5b516 | ||
|
|
e2ab43b007 | ||
|
|
dadfaebf07 | ||
|
|
3d07968904 | ||
|
|
186da72c04 | ||
|
|
38c389bf64 | ||
|
|
653e79e280 | ||
|
|
e631c6b81e | ||
|
|
cbfdb96de7 | ||
|
|
78c67fb4ec | ||
|
|
4a216d6109 | ||
|
|
d7b27d7b7f | ||
|
|
bcca4099a2 | ||
|
|
25ff201116 | ||
|
|
445b620be5 | ||
|
|
5b1ef49919 | ||
|
|
aace9c26e3 | ||
|
|
588b986005 | ||
|
|
9e2d313c53 | ||
|
|
8fa127fc8f | ||
|
|
9283e69bff | ||
|
|
2492991a6a | ||
|
|
40c58b3bf0 | ||
|
|
cf7c3ad0a1 | ||
|
|
4bbf4d8b9a | ||
|
|
5ef016ebec | ||
|
|
562ff9bbed | ||
|
|
ed67eb1f9e | ||
|
|
24260cc6b5 | ||
|
|
1c492208c0 | ||
|
|
f5bdbb04e8 | ||
|
|
bc90383cd4 | ||
|
|
b9d7c07fda | ||
|
|
52d83cc40e | ||
|
|
db6dccbcd4 | ||
|
|
e2c72e780e | ||
|
|
4c1279cc45 | ||
|
|
d841c0388e | ||
|
|
e8765370c6 | ||
|
|
f4692392a4 | ||
|
|
2beaf5db15 | ||
|
|
7f9cbd2a48 | ||
|
|
1fb6787dba | ||
|
|
301a857add | ||
|
|
7ad43fb200 | ||
|
|
537ee64b64 | ||
|
|
c0d8eb4b8f | ||
|
|
9480d0068d | ||
|
|
24caed4abc | ||
|
|
799bd7a203 | ||
|
|
d3d0ea518d | ||
|
|
d687aeabf9 | ||
|
|
5b10aaaacf | ||
|
|
6ed3a86018 | ||
|
|
13b76b83ab | ||
|
|
e62ca22d23 | ||
|
|
74174dd4b1 | ||
|
|
c65d87e3fc | ||
|
|
6a66c97f97 | ||
|
|
122cbcfbb7 | ||
|
|
8d2081df6b | ||
|
|
a58d549b9a | ||
|
|
a388334f01 | ||
|
|
a8e393ba16 | ||
|
|
87999fabfd | ||
|
|
111eb96b4b | ||
|
|
63d571faeb | ||
|
|
ebeefb0777 | ||
|
|
e321e1b772 | ||
|
|
9645f1bb3e | ||
|
|
bda4e22278 | ||
|
|
6e1ad09d58 | ||
|
|
416b271460 | ||
|
|
5e6cd81d5d | ||
|
|
08d1331471 | ||
|
|
1e68cf1adc | ||
|
|
f898634855 | ||
|
|
d2ac41082a | ||
|
|
4f0666d0f9 | ||
|
|
86db25c8b6 | ||
|
|
c0cacf0481 | ||
|
|
9503782650 | ||
|
|
1689c7530a | ||
|
|
598d572d39 | ||
|
|
aa881f2a6e | ||
|
|
a45df60b87 | ||
|
|
672c8d2899 | ||
|
|
3392b883c7 | ||
|
|
b2d482abcc | ||
|
|
f5dfc387be | ||
|
|
e16e401882 | ||
|
|
a6a7a89794 | ||
|
|
7aa0172d42 | ||
|
|
0b2979a843 | ||
|
|
5ac8c9d92b | ||
|
|
ed08b8c7bf | ||
|
|
ff07f934f9 | ||
|
|
5f2005e17c | ||
|
|
be3dac0b07 | ||
|
|
fdb83d1ce2 | ||
|
|
66c0f07dd9 | ||
|
|
820c999ea9 | ||
|
|
0d1882f544 | ||
|
|
5120deaf30 | ||
|
|
3bf495343b | ||
|
|
34abdb7e7c | ||
|
|
3f7728797d | ||
|
|
c8c40003d6 | ||
|
|
859c4fea29 | ||
|
|
a76cbad1fe | ||
|
|
dae0d9a093 | ||
|
|
f3aa7b4555 | ||
|
|
f5716b1570 | ||
|
|
e704c7317a | ||
|
|
f37a75de71 | ||
|
|
eaae6b72d6 | ||
|
|
061a7799b9 | ||
|
|
6c7c599aac | ||
|
|
397e8d1173 | ||
|
|
f68bdec57b | ||
|
|
7ba42ce009 | ||
|
|
5d142d781b | ||
|
|
a0e71781e4 | ||
|
|
f3949dc262 | ||
|
|
d0fe7921e7 | ||
|
|
60bafa6a9b | ||
|
|
af655e4c3f | ||
|
|
7b37d061c8 | ||
|
|
51cd195457 | ||
|
|
c7802c6aa7 | ||
|
|
7a1de272b7 | ||
|
|
19f75b53bc | ||
|
|
6ff6b63bb5 | ||
|
|
9bcce4943a | ||
|
|
1cdc784349 | ||
|
|
461b9bd88b | ||
|
|
0485880cdb | ||
|
|
95f23242fd | ||
|
|
4900283e5f | ||
|
|
d631501931 | ||
|
|
212c614879 | ||
|
|
85db9025a6 | ||
|
|
72c79e8eaa | ||
|
|
c98fa55dba | ||
|
|
68f938161b | ||
|
|
c930695eed | ||
|
|
f65f0af7c0 | ||
|
|
b9f9277cb5 | ||
|
|
381a648a9b | ||
|
|
60f3f6a121 | ||
|
|
8765e4ab38 | ||
|
|
ade06f3f95 | ||
|
|
f11fb7388a | ||
|
|
8796f8b2d8 | ||
|
|
03ddc73484 | ||
|
|
5c01e447b8 | ||
|
|
d5c9088893 | ||
|
|
f0cfb5db97 | ||
|
|
52d3b3c4ed | ||
|
|
e237caa1be | ||
|
|
498d5fa25b | ||
|
|
0dc670ccb7 | ||
|
|
191c8d8a2f | ||
|
|
d21a79d29b | ||
|
|
d8d8236d54 | ||
|
|
cefb35d792 | ||
|
|
9d1afa7cee | ||
|
|
1895fd6169 | ||
|
|
aed54c9c3b | ||
|
|
f5921762b0 | ||
|
|
941ab3a3a7 | ||
|
|
f5490e29c3 | ||
|
|
9f0689f297 | ||
|
|
8ccc66b149 | ||
|
|
77f8fd3809 | ||
|
|
20ef3e8f44 | ||
|
|
754b1cf7d9 | ||
|
|
cc492414c3 | ||
|
|
df14dc66dc | ||
|
|
0a3cc7424e | ||
|
|
852a4dfc25 | ||
|
|
5d506072dd | ||
|
|
03e83258b3 | ||
|
|
6932649a33 | ||
|
|
edb7cd5255 | ||
|
|
4fbc902eee | ||
|
|
accac28dc4 | ||
|
|
4239b6d464 | ||
|
|
04cd24ad44 | ||
|
|
c120375fc6 | ||
|
|
9ed65f1343 | ||
|
|
c3265fcb93 | ||
|
|
38bfeddc74 | ||
|
|
1e413edd8b | ||
|
|
875d97e12d | ||
|
|
a592f89d70 | ||
|
|
dfc9dfed50 | ||
|
|
2054659f8f | ||
|
|
9dc9ad0c97 | ||
|
|
afd3d7a880 | ||
|
|
5214bf5dbb | ||
|
|
5210a8a94b | ||
|
|
7e2b064c8c | ||
|
|
2ca758ff6e | ||
|
|
40eb0d5208 | ||
|
|
421212f2f1 | ||
|
|
b31dfadfa4 | ||
|
|
1753ddc032 | ||
|
|
feb2a9a461 | ||
|
|
59d81cd2ef | ||
|
|
9d2226c7db | ||
|
|
7cc12f25ee | ||
|
|
257ec4ea67 | ||
|
|
7eba833021 | ||
|
|
0c12553f0e | ||
|
|
e203a6cbb4 | ||
|
|
de106ce4d9 | ||
|
|
7e0634cfed | ||
|
|
9e6c045a35 | ||
|
|
03a4c7174a | ||
|
|
56ac97d5a9 | ||
|
|
3ed305e4b1 | ||
|
|
40dac1cabb | ||
|
|
de1b8cefc0 | ||
|
|
3bed6a18b0 | ||
|
|
607d5f4ffd | ||
|
|
5cacbd50c1 | ||
|
|
f1e04a31fc | ||
|
|
5f2e5ea349 | ||
|
|
33b57bd9ac | ||
|
|
00cc748e7f | ||
|
|
0e9bd19b26 | ||
|
|
6023bbff6c | ||
|
|
0ec09ef8d5 | ||
|
|
704b9cc679 | ||
|
|
4ef1c71c96 | ||
|
|
4a43ea3e21 | ||
|
|
be10db777b | ||
|
|
028eb71cb6 | ||
|
|
7866d9c022 | ||
|
|
30d1dad606 | ||
|
|
c7319e644e | ||
|
|
68552eb770 | ||
|
|
ee3643f7df | ||
|
|
0eaccadef8 | ||
|
|
8879880762 | ||
|
|
61f3ec162c | ||
|
|
113ae51c98 | ||
|
|
d91c416896 | ||
|
|
05baef50b9 | ||
|
|
2493c167c1 | ||
|
|
f286538020 | ||
|
|
4bd43161cf | ||
|
|
7d5fbbbd11 | ||
|
|
8b5e0610e1 | ||
|
|
4c39dafbe7 | ||
|
|
def60d20d1 | ||
|
|
3f58738719 | ||
|
|
385c828389 | ||
|
|
f25f0c74be | ||
|
|
a3a7bc02fa | ||
|
|
27ffab0ac8 | ||
|
|
58de233295 | ||
|
|
b081df9394 | ||
|
|
5740496380 | ||
|
|
7b2f1b70ce | ||
|
|
97eb5f115f | ||
|
|
c4bfa0f394 | ||
|
|
7ea78c8952 | ||
|
|
1d27eabdd4 | ||
|
|
50000e66e5 | ||
|
|
0ede215f8b | ||
|
|
0a98bd59a4 | ||
|
|
081a994a7e | ||
|
|
22f691c948 | ||
|
|
88a8820f95 | ||
|
|
48f717f0ae | ||
|
|
142977ac19 | ||
|
|
5b6e9f6edb | ||
|
|
622aa98108 | ||
|
|
21515b5a2e | ||
|
|
ae0917cc83 | ||
|
|
a5e9f0cccb | ||
|
|
3065a9a78c | ||
|
|
4a6f6beb45 | ||
|
|
7c87dd18c0 | ||
|
|
88341280b6 | ||
|
|
cdf2e45403 | ||
|
|
fdc8853f9c | ||
|
|
9e1d0fa796 | ||
|
|
fb3394001c | ||
|
|
cf6b974161 | ||
|
|
be8ebf1152 | ||
|
|
f4841da4eb | ||
|
|
0eae455c29 | ||
|
|
1b982d5faf | ||
|
|
84c92835bc | ||
|
|
fb98d8f5ff | ||
|
|
e82cfa3211 | ||
|
|
bb7458e276 | ||
|
|
55cd730d5d | ||
|
|
d83c869e65 | ||
|
|
5142a70dc1 | ||
|
|
3996fbcb88 | ||
|
|
8f35d37d2d | ||
|
|
531dcf691b | ||
|
|
59c1b30709 | ||
|
|
8c392058f5 | ||
|
|
d20ac76f2e | ||
|
|
ab15c63731 | ||
|
|
de81aed0cf | ||
|
|
b53fb9cb30 | ||
|
|
12890783bb | ||
|
|
3e83433a0f | ||
|
|
774b19c649 | ||
|
|
e20ac86e6a | ||
|
|
d509e2dca9 | ||
|
|
8809753f21 | ||
|
|
6fdbd615b6 | ||
|
|
7568e51af6 | ||
|
|
c72c1f03b6 | ||
|
|
28c752ce8d | ||
|
|
98af982655 | ||
|
|
e1fe6a61ac | ||
|
|
64542e96e3 | ||
|
|
5bfbd6e6d5 | ||
|
|
77bbd1d07d | ||
|
|
6328716134 | ||
|
|
1c058b489d | ||
|
|
a1263b8b4c | ||
|
|
c2339f7eb4 | ||
|
|
ce9cc56c68 | ||
|
|
4541f540f5 | ||
|
|
6928dcbe62 | ||
|
|
bd79cb997c | ||
|
|
641bf8dd84 | ||
|
|
9389797aae | ||
|
|
23525ef943 | ||
|
|
e4a4232c29 | ||
|
|
3bcf21af25 | ||
|
|
0269738960 | ||
|
|
24739357e3 | ||
|
|
7d14f5392e | ||
|
|
2e390e13b9 | ||
|
|
3960675de7 | ||
|
|
190552d467 | ||
|
|
c898b72b7e | ||
|
|
dd8ad97456 | ||
|
|
34352e8af5 | ||
|
|
566bba0d2f | ||
|
|
eea0b8e329 | ||
|
|
ff6adcb5e6 | ||
|
|
b3c053f8e8 | ||
|
|
ad882406f9 | ||
|
|
5b821df4ea | ||
|
|
2a595c83a2 | ||
|
|
870852c522 | ||
|
|
e28918bbdf | ||
|
|
51bf02f8d7 |
2446 changed files with 61036 additions and 62488 deletions
23
.gitignore
vendored
23
.gitignore
vendored
|
|
@ -1,21 +1,8 @@
|
||||||
build-*
|
Linphone.xcworkspace
|
||||||
*.locuser
|
Pods
|
||||||
.DS_Store
|
Podfile.lock
|
||||||
liblinphone-sdk
|
|
||||||
liblinphone-iphone-sdk*.zip
|
|
||||||
xcuserdata/
|
xcuserdata/
|
||||||
Classes/LinphoneIOSVersion.h
|
|
||||||
Pods/
|
Pods/
|
||||||
|
.DS_Store
|
||||||
build
|
build
|
||||||
test-reports
|
Linphone.xcodeproj/xcuserdata
|
||||||
WORK
|
|
||||||
Makefile
|
|
||||||
OUTPUT
|
|
||||||
git-clang-format.diff
|
|
||||||
submodules/tunnel
|
|
||||||
submodules/binaries/dummy-*.a
|
|
||||||
linphone-iphone.ipa
|
|
||||||
TutorialHellowWorld/hello-world.xcodeproj/project.xcworkspace/
|
|
||||||
diff-format.patch
|
|
||||||
*.xcscmblueprint
|
|
||||||
liblinphone-iphone-sdk-*
|
|
||||||
99
.gitlab-ci.yml
Normal file
99
.gitlab-ci.yml
Normal file
|
|
@ -0,0 +1,99 @@
|
||||||
|
# COMMENTED FOR NOW - TODO : ENABLE CALLUI TESTS IN THE CI
|
||||||
|
# USE ONLY THE release/5.1 VERSION OF THIS FILE FOR NOW
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#variables:
|
||||||
|
# workspace: linphone.xcworkspace
|
||||||
|
# scheme: linphone
|
||||||
|
# destination: name=iPhone 13 Pro
|
||||||
|
# testResult_path: derivedData/Logs/Test
|
||||||
|
|
||||||
|
#stages:
|
||||||
|
# - Build
|
||||||
|
# - UITests
|
||||||
|
|
||||||
|
#before_script:
|
||||||
|
# - pod install
|
||||||
|
# - pwd
|
||||||
|
# - sed 's/fileprivate let tableView =/public let tableView =/g' ./Pods/DropDown/DropDown/src/DropDown.swift > tmp.swift && mv -f tmp.swift ./Pods/DropDown/DropDown/src/DropDown.swift
|
||||||
|
|
||||||
|
#Compile & Build:
|
||||||
|
# stage: Build
|
||||||
|
# tags: ["macmini-m1-xcode13"]
|
||||||
|
# before_script:
|
||||||
|
# - pod install --repo-update
|
||||||
|
# - pwd
|
||||||
|
# - sed 's/fileprivate let tableView =/public let tableView =/g' ./Pods/DropDown/DropDown/src/DropDown.swift > tmp.swift && mv -f tmp.swift ./Pods/DropDown/DropDown/src/DropDown.swift
|
||||||
|
# - xcrun simctl shutdown "$destination" && xcrun simctl erase "$destination"
|
||||||
|
# script:
|
||||||
|
# - xcodebuild -workspace $workspace -scheme $scheme -UseModernBuildSystem=YES -destination "$destination" -derivedDataPath derivedData
|
||||||
|
# after_script: []
|
||||||
|
#
|
||||||
|
# stage: build
|
||||||
|
# tags: [ "macos-xcode13" ]
|
||||||
|
|
||||||
|
# script:
|
||||||
|
# - pod install --repo-update
|
||||||
|
# - pwd
|
||||||
|
# - sed 's/fileprivate let tableView =/public let tableView =/g' ./Pods/DropDown/DropDown/src/DropDown.swift > tmp.swift && mv -f tmp.swift ./Pods/DropDown/DropDown/src/DropDown.swift
|
||||||
|
# - xcodebuild archive -scheme $archive_scheme -archivePath ./$archive_path -configuration Release -workspace ./linphone.xcworkspace -UseModernBuildSystem=YES -destination 'generic/platform=iOS'
|
||||||
|
# - xcodebuild -exportArchive -archivePath ./$archive_path -exportPath ./$export_path -exportOptionsPlist ./$export_options_plist -allowProvisioningUpdates -UseModernBuildSystem=YES -destination 'generic/platform=iOS'
|
||||||
|
|
||||||
|
# artifacts:
|
||||||
|
# paths:
|
||||||
|
# - derivedData/Build
|
||||||
|
# when: always
|
||||||
|
# expire_in: 2 hour
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#after_script:
|
||||||
|
# - ${TRAINER_EXE} -p $testResult_path/*.xcresult -o $testResult_path/
|
||||||
|
# - ${XCPARSE_EXE} attachments $testResult_path/*.xcresult results --uti public.image
|
||||||
|
# - mv $testResult_path/*.xcresult results && mv derivedData/logs.txt results
|
||||||
|
|
||||||
|
#Call Views:
|
||||||
|
# stage: UITests
|
||||||
|
# tags: ["macmini-m1-xcode13"]
|
||||||
|
# dependencies: ["Compile & Build"]
|
||||||
|
# script:
|
||||||
|
# - xcodebuild test -workspace $workspace -scheme $scheme -sdk iphonesimulator -destination "$destination" -UseModernBuildSystem=YES -testPlan Default -derivedDataPath derivedData | tee derivedData/logs.txt
|
||||||
|
|
||||||
|
# artifacts:
|
||||||
|
# paths:
|
||||||
|
# - results/*
|
||||||
|
# when: always
|
||||||
|
# reports:
|
||||||
|
# junit:
|
||||||
|
# - $testResult_path/*.xml
|
||||||
|
# expire_in: 4 week
|
||||||
|
|
||||||
|
|
||||||
|
variables:
|
||||||
|
archive_scheme: Linphone
|
||||||
|
archive_path: Linphone.xcarchive
|
||||||
|
export_path: Linphone-adhoc-ipa
|
||||||
|
export_options_plist: Linphone-adhoc.plist
|
||||||
|
|
||||||
|
job-ios:
|
||||||
|
|
||||||
|
stage: build
|
||||||
|
tags: [ "macos-xcode15" ]
|
||||||
|
allow_failure: true
|
||||||
|
script:
|
||||||
|
# - pod install --repo-update
|
||||||
|
- exit 1
|
||||||
|
# - sed 's/fileprivate let tableView =/public let tableView =/g' ./Pods/DropDown/DropDown/src/DropDown.swift > tmp.swift && mv -f tmp.swift ./Pods/DropDown/DropDown/src/DropDown.swift
|
||||||
|
# - xcodebuild archive -scheme $archive_scheme -archivePath ./$archive_path -configuration Release -workspace ./Linphone.xcworkspace -UseModernBuildSystem=YES -destination 'generic/platform=iOS'
|
||||||
|
# - xcodebuild -exportArchive -archivePath ./$archive_path -exportPath ./$export_path -exportOptionsPlist ./$export_options_plist -allowProvisioningUpdates -UseModernBuildSystem=YES -destination 'generic/platform=iOS'
|
||||||
|
|
||||||
|
|
||||||
|
artifacts:
|
||||||
|
paths:
|
||||||
|
- $archive_path
|
||||||
|
- $export_path
|
||||||
|
when: always
|
||||||
|
expire_in: 1 week
|
||||||
|
|
||||||
|
|
||||||
119
.gitmodules
vendored
119
.gitmodules
vendored
|
|
@ -1,119 +0,0 @@
|
||||||
[submodule "submodules/linphone"]
|
|
||||||
path = submodules/linphone
|
|
||||||
url = git://git.linphone.org/linphone.git
|
|
||||||
[submodule "submodules/externals/gsm"]
|
|
||||||
path = submodules/externals/gsm
|
|
||||||
url = git://git.linphone.org/gsm.git
|
|
||||||
[submodule "submodules/externals/speex"]
|
|
||||||
path = submodules/externals/speex
|
|
||||||
url = git://git.linphone.org/speex.git
|
|
||||||
[submodule "submodules/externals/opencore-amr"]
|
|
||||||
path = submodules/externals/opencore-amr
|
|
||||||
url = git://git.linphone.org/opencore-amr.git
|
|
||||||
ignore = dirty
|
|
||||||
[submodule "submodules/msamr"]
|
|
||||||
path = submodules/msamr
|
|
||||||
url = git://git.linphone.org/msamr.git
|
|
||||||
[submodule "submodules/externals/ffmpeg"]
|
|
||||||
path = submodules/externals/ffmpeg
|
|
||||||
url = git://git.linphone.org/ffmpeg.git
|
|
||||||
[submodule "submodules/externals/x264"]
|
|
||||||
path = submodules/externals/x264
|
|
||||||
url = git://git.linphone.org/x264.git
|
|
||||||
ignore = dirty
|
|
||||||
[submodule "submodules/msx264"]
|
|
||||||
path = submodules/msx264
|
|
||||||
url = git://git.linphone.org/msx264.git
|
|
||||||
[submodule "submodules/externals/libvpx"]
|
|
||||||
path = submodules/externals/libvpx
|
|
||||||
url = git://git.linphone.org/libvpx.git
|
|
||||||
ignore = dirty
|
|
||||||
[submodule "submodules/bzrtp"]
|
|
||||||
path = submodules/bzrtp
|
|
||||||
url = git://git.linphone.org/bzrtp.git
|
|
||||||
[submodule "submodules/mssilk"]
|
|
||||||
path = submodules/mssilk
|
|
||||||
url = git://git.linphone.org/mssilk.git
|
|
||||||
[submodule "submodules/externals/srtp"]
|
|
||||||
path = submodules/externals/srtp
|
|
||||||
url = git://git.linphone.org/srtp.git
|
|
||||||
[submodule "submodules/bcg729"]
|
|
||||||
path = submodules/bcg729
|
|
||||||
url = git://git.linphone.org/bcg729.git
|
|
||||||
[submodule "submodules/belle-sip"]
|
|
||||||
path = submodules/belle-sip
|
|
||||||
url = git://git.linphone.org/belle-sip.git
|
|
||||||
[submodule "submodules/externals/opus"]
|
|
||||||
path = submodules/externals/opus
|
|
||||||
url = git://git.linphone.org/opus.git
|
|
||||||
ignore = dirty
|
|
||||||
[submodule "submodules/externals/libxml2"]
|
|
||||||
path = submodules/externals/libxml2
|
|
||||||
url = https://github.com/GNOME/libxml2.git
|
|
||||||
ignore = dirty
|
|
||||||
[submodule "submodules/externals/openh264"]
|
|
||||||
path = submodules/externals/openh264
|
|
||||||
url = https://github.com/cisco/openh264
|
|
||||||
ignore = dirty
|
|
||||||
[submodule "submodules/msopenh264"]
|
|
||||||
path = submodules/msopenh264
|
|
||||||
url = git://git.linphone.org/msopenh264.git
|
|
||||||
[submodule "submodules/mswebrtc"]
|
|
||||||
path = submodules/mswebrtc
|
|
||||||
url = git://git.linphone.org/mswebrtc.git
|
|
||||||
[submodule "Classes/KIF"]
|
|
||||||
path = Classes/KIF
|
|
||||||
url = https://github.com/kif-framework/KIF
|
|
||||||
ignore = dirty
|
|
||||||
[submodule "submodules/cmake-builder"]
|
|
||||||
path = submodules/cmake-builder
|
|
||||||
url = git://git.linphone.org/linphone-cmake-builder.git
|
|
||||||
[submodule "submodules/externals/vo-amrwbenc"]
|
|
||||||
path = submodules/externals/vo-amrwbenc
|
|
||||||
url = git://git.linphone.org/vo-amrwbenc.git
|
|
||||||
ignore = dirty
|
|
||||||
[submodule "submodules/belr"]
|
|
||||||
path = submodules/belr
|
|
||||||
url = git://git.linphone.org/belr
|
|
||||||
[submodule "submodules/belcard"]
|
|
||||||
path = submodules/belcard
|
|
||||||
url = git://git.linphone.org/belcard
|
|
||||||
[submodule "submodules/bctoolbox"]
|
|
||||||
path = submodules/bctoolbox
|
|
||||||
url = git://git.linphone.org/bctoolbox
|
|
||||||
[submodule "submodules/externals/mbedtls"]
|
|
||||||
path = submodules/externals/mbedtls
|
|
||||||
url = git://git.linphone.org/mbedtls.git
|
|
||||||
[submodule "submodules/externals/codec2"]
|
|
||||||
path = submodules/externals/codec2
|
|
||||||
url = git://git.linphone.org/codec2.git
|
|
||||||
[submodule "submodules/mscodec2"]
|
|
||||||
path = submodules/mscodec2
|
|
||||||
url = git://git.linphone.org/mscodec2.git
|
|
||||||
[submodule "submodules/externals/bv16-floatingpoint"]
|
|
||||||
path = submodules/externals/bv16-floatingpoint
|
|
||||||
url = git://git.linphone.org/bv16-floatingpoint.git
|
|
||||||
[submodule "submodules/bcunit"]
|
|
||||||
path = submodules/bcunit
|
|
||||||
url = git://git.linphone.org/bcunit.git
|
|
||||||
[submodule "submodules/externals/libjpeg-turbo"]
|
|
||||||
path = submodules/externals/libjpeg-turbo
|
|
||||||
url = git://git.linphone.org/libjpeg-turbo.git
|
|
||||||
[submodule "submodules/mediastreamer2"]
|
|
||||||
path = submodules/mediastreamer2
|
|
||||||
url = git://git.linphone.org/mediastreamer2.git
|
|
||||||
[submodule "submodules/ortp"]
|
|
||||||
path = submodules/ortp
|
|
||||||
url = git://git.linphone.org/ortp.git
|
|
||||||
[submodule "submodules/bcmatroska2"]
|
|
||||||
path = submodules/bcmatroska2
|
|
||||||
url = git://git.linphone.org/bcmatroska2.git
|
|
||||||
[submodule "submodules/externals/libxsd"]
|
|
||||||
path = submodules/externals/libxsd
|
|
||||||
url = git://git.linphone.org/libxsd
|
|
||||||
[submodule "submodules/externals/xerces-c"]
|
|
||||||
path = submodules/externals/xerces-c
|
|
||||||
url = git://git.linphone.org/xerces-c
|
|
||||||
[submodule "submodules/externals/soci"]
|
|
||||||
path = submodules/externals/soci
|
|
||||||
url = git://git.linphone.org/soci
|
|
||||||
32
.swiftlint.yml
Normal file
32
.swiftlint.yml
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
disabled_rules:
|
||||||
|
- trailing_whitespace
|
||||||
|
opt_in_rules:
|
||||||
|
- empty_count
|
||||||
|
- empty_string
|
||||||
|
excluded:
|
||||||
|
- Carthage
|
||||||
|
- Pods
|
||||||
|
- SwiftLint/Common/3rdPartyLib
|
||||||
|
line_length:
|
||||||
|
warning: 150
|
||||||
|
error: 200
|
||||||
|
ignores_function_declarations: true
|
||||||
|
ignores_comments: true
|
||||||
|
ignores_urls: true
|
||||||
|
function_body_length:
|
||||||
|
warning: 300
|
||||||
|
error: 500
|
||||||
|
function_parameter_count:
|
||||||
|
warning: 6
|
||||||
|
error: 8
|
||||||
|
type_body_length:
|
||||||
|
warning: 300
|
||||||
|
error: 500
|
||||||
|
file_length:
|
||||||
|
warning: 1000
|
||||||
|
error: 1500
|
||||||
|
ignore_comment_only_lines: true
|
||||||
|
cyclomatic_complexity:
|
||||||
|
warning: 15
|
||||||
|
error: 25
|
||||||
|
reporter: "xcode"
|
||||||
28
.travis.yml
28
.travis.yml
|
|
@ -1,28 +0,0 @@
|
||||||
language: objective-c
|
|
||||||
osx_image: xcode7.2
|
|
||||||
|
|
||||||
env:
|
|
||||||
global:
|
|
||||||
- secure: "JPPcWdmNIJiR3YcIwe0LRYce6qDdsiagO+eKKAp7eVk/wD9UHbz96Ms2FFkXxPhRJB1PA6Pf8FpAzIL2YRiJL9jRtKHSvtdF1cSto+57XyBkCsw7PkMVUIxp7fg6Wiwn3H3tucF8jisIkv/Pn7R+9EqePkZSqqu3+ig5AX9ApQ4="
|
|
||||||
- KIF_SCREENSHOTS=$PWD/Screens
|
|
||||||
|
|
||||||
before_install:
|
|
||||||
- brew update 1>/dev/null
|
|
||||||
- brew install doxygen nasm yasm optipng imagemagick intltool ninja antlr cmake
|
|
||||||
- wget --no-check-certificate https://raw.githubusercontent.com/FFmpeg/gas-preprocessor/master/gas-preprocessor.pl
|
|
||||||
- chmod +x gas-preprocessor.pl
|
|
||||||
- sudo mv gas-preprocessor.pl /usr/local/bin
|
|
||||||
- sudo ln -s /usr/local/bin/glibtoolize /usr/local/bin/libtoolize
|
|
||||||
- git submodule update --init --recursive
|
|
||||||
|
|
||||||
install:
|
|
||||||
- ./prepare.py -d x86_64 -G Ninja
|
|
||||||
- make -j4 -s
|
|
||||||
- mkdir -p $KIF_SCREENSHOTS
|
|
||||||
|
|
||||||
script:
|
|
||||||
- xctool -project linphone.xcodeproj -scheme linphone -sdk iphonesimulator -destination name='iPhone 6' build 1>/dev/null
|
|
||||||
- xctool -project linphone.xcodeproj -scheme linphone -sdk iphonesimulator -destination name='iPhone 6' test
|
|
||||||
|
|
||||||
after_script:
|
|
||||||
- ./Tools/imgur_upload.sh
|
|
||||||
309
.tx/config
309
.tx/config
|
|
@ -1,309 +0,0 @@
|
||||||
[main]
|
|
||||||
host = https://www.transifex.com
|
|
||||||
minimum_perc = 1
|
|
||||||
|
|
||||||
[linphone-ios.localizablestrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Resources/<lang>.lproj/Localizable.strings
|
|
||||||
source_file = Resources/en.lproj/Localizable.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.aboutviewstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/<lang>.lproj/AboutView.strings
|
|
||||||
source_file = Classes/Base.lproj/AboutView.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.assistantviewstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/<lang>.lproj/AssistantView.strings
|
|
||||||
source_file = Classes/Base.lproj/AssistantView.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.assistantviewscreensstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/<lang>.lproj/AssistantViewScreens.strings
|
|
||||||
source_file = Classes/Base.lproj/AssistantViewScreens.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.callincomingviewstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/<lang>.lproj/CallIncomingView.strings
|
|
||||||
source_file = Classes/Base.lproj/CallIncomingView.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.calloutgoingviewstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/<lang>.lproj/CallOutgoingView.strings
|
|
||||||
source_file = Classes/Base.lproj/CallOutgoingView.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.callviewstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/<lang>.lproj/CallView.strings
|
|
||||||
source_file = Classes/Base.lproj/CallView.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.callviewipadstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/<lang>.lproj/CallView~ipad.strings
|
|
||||||
source_file = Classes/Base.lproj/CallView~ipad.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.chatconversationcreateviewstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/<lang>.lproj/ChatConversationCreateView.strings
|
|
||||||
source_file = Classes/Base.lproj/ChatConversationCreateView.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.chatconversationviewstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/<lang>.lproj/ChatConversationView.strings
|
|
||||||
source_file = Classes/Base.lproj/ChatConversationView.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.chatslistviewstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/<lang>.lproj/ChatsListView.strings
|
|
||||||
source_file = Classes/Base.lproj/ChatsListView.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.contactdetailsviewstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/<lang>.lproj/ContactDetailsView.strings
|
|
||||||
source_file = Classes/Base.lproj/ContactDetailsView.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.contactslistviewstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/<lang>.lproj/ContactsListView.strings
|
|
||||||
source_file = Classes/Base.lproj/ContactsListView.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.dialerviewstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/<lang>.lproj/DialerView.strings
|
|
||||||
source_file = Classes/Base.lproj/DialerView.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.dialerviewipadstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/<lang>.lproj/DialerView~ipad.strings
|
|
||||||
source_file = Classes/Base.lproj/DialerView~ipad.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.firstloginviewstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/<lang>.lproj/FirstLoginView.strings
|
|
||||||
source_file = Classes/Base.lproj/FirstLoginView.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.historydetailsviewstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/<lang>.lproj/HistoryDetailsView.strings
|
|
||||||
source_file = Classes/Base.lproj/HistoryDetailsView.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.historylistviewstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/<lang>.lproj/HistoryListView.strings
|
|
||||||
source_file = Classes/Base.lproj/HistoryListView.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.imageviewstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/<lang>.lproj/ImageView.strings
|
|
||||||
source_file = Classes/Base.lproj/ImageView.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.settingsviewstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/<lang>.lproj/SettingsView.strings
|
|
||||||
source_file = Classes/Base.lproj/SettingsView.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.sidemenuviewstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/<lang>.lproj/SideMenuView.strings
|
|
||||||
source_file = Classes/Base.lproj/SideMenuView.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.sidemenuviewipadstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/<lang>.lproj/SideMenuView~ipad.strings
|
|
||||||
source_file = Classes/Base.lproj/SideMenuView~ipad.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.statusbarviewstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/LinphoneUI/<lang>.lproj/StatusBarView.strings
|
|
||||||
source_file = Classes/LinphoneUI/Base.lproj/StatusBarView.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.tabbarviewstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/LinphoneUI/<lang>.lproj/TabBarView.strings
|
|
||||||
source_file = Classes/LinphoneUI/Base.lproj/TabBarView.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.uicallconferencecellstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/LinphoneUI/<lang>.lproj/UICallConferenceCell.strings
|
|
||||||
source_file = Classes/LinphoneUI/Base.lproj/UICallConferenceCell.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.uicallpausedcellstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/LinphoneUI/<lang>.lproj/UICallPausedCell.strings
|
|
||||||
source_file = Classes/LinphoneUI/Base.lproj/UICallPausedCell.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.uichatbubblephotocellstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/LinphoneUI/<lang>.lproj/UIChatBubblePhotoCell.strings
|
|
||||||
source_file = Classes/LinphoneUI/Base.lproj/UIChatBubblePhotoCell.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.uichatbubbletextcellstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/LinphoneUI/<lang>.lproj/UIChatBubbleTextCell.strings
|
|
||||||
source_file = Classes/LinphoneUI/Base.lproj/UIChatBubbleTextCell.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.uichatcellstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/LinphoneUI/<lang>.lproj/UIChatCell.strings
|
|
||||||
source_file = Classes/LinphoneUI/Base.lproj/UIChatCell.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.uichatcreatecellstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/LinphoneUI/<lang>.lproj/UIChatCreateCell.strings
|
|
||||||
source_file = Classes/LinphoneUI/Base.lproj/UIChatCreateCell.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.uiconfirmationdialogstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/LinphoneUI/<lang>.lproj/UIConfirmationDialog.strings
|
|
||||||
source_file = Classes/LinphoneUI/Base.lproj/UIConfirmationDialog.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.uicontactcellstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/LinphoneUI/<lang>.lproj/UIContactCell.strings
|
|
||||||
source_file = Classes/LinphoneUI/Base.lproj/UIContactCell.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.uicontactdetailscellstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/LinphoneUI/<lang>.lproj/UIContactDetailsCell.strings
|
|
||||||
source_file = Classes/LinphoneUI/Base.lproj/UIContactDetailsCell.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.uihistorycellstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/LinphoneUI/<lang>.lproj/UIHistoryCell.strings
|
|
||||||
source_file = Classes/LinphoneUI/Base.lproj/UIHistoryCell.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.inappsettingsaccountstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Settings/InAppSettings.bundle/<lang>.lproj/Account.strings
|
|
||||||
source_file = Settings/InAppSettings.bundle/en.lproj/Account.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.inappsettingsadvancedstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Settings/InAppSettings.bundle/<lang>.lproj/Advanced.strings
|
|
||||||
source_file = Settings/InAppSettings.bundle/en.lproj/Advanced.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.inappsettingsaudiostrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Settings/InAppSettings.bundle/<lang>.lproj/Audio.strings
|
|
||||||
source_file = Settings/InAppSettings.bundle/en.lproj/Audio.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.inappsettingscallstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Settings/InAppSettings.bundle/<lang>.lproj/Call.strings
|
|
||||||
source_file = Settings/InAppSettings.bundle/en.lproj/Call.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.inappsettingsnetworkstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Settings/InAppSettings.bundle/<lang>.lproj/Network.strings
|
|
||||||
source_file = Settings/InAppSettings.bundle/en.lproj/Network.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.inappsettingsrootstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Settings/InAppSettings.bundle/<lang>.lproj/Root.strings
|
|
||||||
source_file = Settings/InAppSettings.bundle/en.lproj/Root.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.inappsettingstunnelstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Settings/InAppSettings.bundle/<lang>.lproj/Tunnel.strings
|
|
||||||
source_file = Settings/InAppSettings.bundle/en.lproj/Tunnel.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.inappsettingsvideostrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Settings/InAppSettings.bundle/<lang>.lproj/Video.strings
|
|
||||||
source_file = Settings/InAppSettings.bundle/en.lproj/Video.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.shopviewstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/<lang>.lproj/ShopView.strings
|
|
||||||
source_file = Classes/en.lproj/ShopView.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.assistantlinkviewstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/<lang>.lproj/AssistantLinkView.strings
|
|
||||||
source_file = Classes/Base.lproj/AssistantLinkView.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.countrylistviewstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/<lang>.lproj/CountryListView.strings
|
|
||||||
source_file = Classes/Base.lproj/CountryListView.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.inappsettingschatstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Settings/InAppSettings.bundle/<lang>.lproj/Chat.strings
|
|
||||||
source_file = Settings/InAppSettings.bundle/en.lproj/Chat.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.uichatconversationinfotableviewcellstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/LinphoneUI/<lang>.lproj/UIChatConversationInfoTableViewCell.strings
|
|
||||||
source_file = Classes/LinphoneUI/Base.lproj/UIChatConversationInfoTableViewCell.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.uichatconversationimdntableviewcellstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/LinphoneUI/<lang>.lproj/UIChatConversationImdnTableViewCell.strings
|
|
||||||
source_file = Classes/LinphoneUI/Base.lproj/UIChatConversationImdnTableViewCell.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.uichatcreatecollectionviewcellstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/LinphoneUI/<lang>.lproj/UIChatCreateCollectionViewCell.strings
|
|
||||||
source_file = Classes/LinphoneUI/Base.lproj/UIChatCreateCollectionViewCell.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.chatconversationinfoviewstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/<lang>.lproj/ChatConversationInfoView.strings
|
|
||||||
source_file = Classes/Base.lproj/ChatConversationInfoView.strings
|
|
||||||
type = STRINGS
|
|
||||||
|
|
||||||
[linphone-ios.chatconversationimdnviewstrings]
|
|
||||||
source_lang = en
|
|
||||||
file_filter = Classes/<lang>.lproj/ChatConversationImdnView.strings
|
|
||||||
source_file = Classes/Base.lproj/ChatConversationImdnView.strings
|
|
||||||
type = STRINGS
|
|
||||||
413
CHANGELOG.md
413
CHANGELOG.md
|
|
@ -3,12 +3,413 @@ All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
Group changes to describe their impact on the project, as follows:
|
Group changes to describe their impact on the project, as follows:
|
||||||
|
|
||||||
Added for new features.
|
Added for new features.
|
||||||
Changed for changes in existing functionality.
|
Changed for changes in existing functionality.
|
||||||
Deprecated for once-stable features removed in upcoming releases.
|
Deprecated for once-stable features removed in upcoming releases.
|
||||||
Removed for deprecated features removed in this release.
|
Removed for deprecated features removed in this release.
|
||||||
Fixed for any bug fixes.
|
Fixed for any bug fixes.
|
||||||
Security to invite users to upgrade in case of vulnerabilities.
|
Security to invite users to upgrade in case of vulnerabilities.
|
||||||
|
|
||||||
|
|
||||||
|
## [6.1.0] - 2025-12-08
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- LDAP and CardDAV settings
|
||||||
|
- Advanced settings in third-party SIP account login view
|
||||||
|
- Phone number calls in contact details
|
||||||
|
- Recording player
|
||||||
|
- Recording list
|
||||||
|
- Automatic Git commit, branch, and tag info for Help views
|
||||||
|
- Message deletion feature
|
||||||
|
- Message editing feature
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Launch Screen (Splash Screen)
|
||||||
|
- Updated translations from Weblate
|
||||||
|
- Updated SPM dependencies
|
||||||
|
- Disabled meetings view when audio/video conference factory address is missing
|
||||||
|
- Moved disable_chat_feature to UI section
|
||||||
|
- Updated configuration files
|
||||||
|
- Updated last message text in conversation list
|
||||||
|
- Updated PopupView UI
|
||||||
|
- Display core call logs instead of account call logs when the user has only one account
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- International prefix reset in settings
|
||||||
|
- Prevent editing of read-only (LDAP) contacts
|
||||||
|
- Crash when editing a contact (safe unwrapping of friend/photo)
|
||||||
|
- EditContactFragment view and “+” allowed in dialer
|
||||||
|
- Dial plan selector and default dial plan
|
||||||
|
- Encryption update when call state changes
|
||||||
|
- Unread message counter update in onMessageRetracted
|
||||||
|
- French translation of message_content_deleted
|
||||||
|
- Stop composing when the user stops typing
|
||||||
|
- Refresh presence info in history detail
|
||||||
|
- Refresh displayed friend when the contacts list is updated
|
||||||
|
- Prefix handling in interpretUrl when calling a phone number
|
||||||
|
- SIP contacts filter
|
||||||
|
|
||||||
|
|
||||||
|
## [6.0.2] - 2025-09-26
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- Advanced settings to third-party SIP account login view
|
||||||
|
- Burger button to open the side menu
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Layout icon in conference call
|
||||||
|
- Translations from Weblate
|
||||||
|
- Disable meetings view when audio/video conference factory address is missing
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- EditContactFragment view and allow '+' in number dialer
|
||||||
|
- Dial plan selector and dial plan default
|
||||||
|
- Crash when editing a contact by safely unwrapping friend/photo
|
||||||
|
- Meeting scheduler
|
||||||
|
|
||||||
|
|
||||||
|
## [6.0.1] - 2025-09-12
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- Done button toolbar to number pads
|
||||||
|
- Help view to login page
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- textToImage updated to generate image on the core queue
|
||||||
|
- Send DTMF execution moved to the core queue
|
||||||
|
- Use saveImage on core queue
|
||||||
|
- Use point_to_point string for encrypted calls in conference
|
||||||
|
- Hide VFS setting
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Avatar photo refresh
|
||||||
|
- onEphemeralMessageTimerStarted callback
|
||||||
|
- Crash in updateEncryption by safely handling optional currentCall
|
||||||
|
- Sorted list in MagicSearch when friend is nil
|
||||||
|
- Friend list refresh triggered by onPresenceReceived
|
||||||
|
- Crash when adding or removing SIP addresses and phone numbers in EditContactFragment
|
||||||
|
- awaitDataWrite execution on main queue
|
||||||
|
- Crash by copying Friend addresses and phone numbers before removal
|
||||||
|
- Ensure core is On before stopping it on background entry
|
||||||
|
- textToImage crash
|
||||||
|
|
||||||
|
|
||||||
|
## [6.0.0] - 2025-09-01
|
||||||
|
|
||||||
|
6.0.0 release is a complete rework of Linphone, with a fully redesigned UI, so it is impossible to list everything here.
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Separated threads: Contrary to previous versions, our SDK is now running in it's own thread, meaning it won't freeze the UI anymore in case of heavy work.
|
||||||
|
- Asymmetrical video : you no longer need to send your own camera feed to receive the one from the remote end of the call, and vice versa.
|
||||||
|
- Improved multi account: you'll only see history, conversations, meetings etc... related to currently selected account, and you can switch the default account in two clicks.
|
||||||
|
- User can only send up to 12 files in a single chat message.
|
||||||
|
- IMDNs are now only sent to the message sender, preventing huge traffic in large groups, and thus the delivery status icon for received messages is now hidden in groups (as it was in 1-1 conversations).
|
||||||
|
- Settings: a lot of them are gone, the one that are still there have been reworked to increase user friendliness.
|
||||||
|
- Default screen (between contacts, call history, conversations & meetings list) will change depending on where you were when the app was paused or killed, and you will return to that last visited screen on the next startup.
|
||||||
|
- Account creation no longer allows you to use your phone number as username, but it is still required to provide it to receive activation code by SMS.
|
||||||
|
- Minimum supported iOS version is now 15.
|
||||||
|
- Some settings have changed name and/or section in linphonerc file.
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- You can now react to a chat message using any emoji.
|
||||||
|
- Chat while in call: a shortcut to a conversation screen with the remote.
|
||||||
|
- Chat while in a conference: if the conference has a text stream enabled, you can chat with the other participants of the conference while it lasts. At the end, you'll find the messages history in the call history (and not in the list of conversations).
|
||||||
|
- Security focus: security & trust is more visible than ever, and unsecure conversations & calls are even more visible than before.
|
||||||
|
- OpenID: when used with a SSO compliant SIP server (such as Flexisip), we support single-sign-on login.
|
||||||
|
- MWI support: display and allow to call your voicemail when you have new messages (if supported by your VoIP provider and properly configured in your account params).
|
||||||
|
- CCMP support: if you configure a CCMP server URL in your accounts params, it will be used when scheduling meetings & to fetch list of meetings you've organized/been invited to.
|
||||||
|
- Devices list: check on which device your sip.linphone.org account is connected and the last connection date & time (like on subscribe.linphone.org).
|
||||||
|
- Dialer & in-call numpad show letters under the digit.
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
- Dialer: the previous home screen (dialer) has been removed, you'll find it as an input option in the new start call screen.
|
||||||
|
- Peer-to-peer: a SIP account (sip.linphone.org or other) is now required.
|
||||||
|
|
||||||
|
|
||||||
|
## [5.2.0] - 2023-28-12
|
||||||
|
### Added
|
||||||
|
- Added extra Czech and Japanese translations
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Update linphone SDK to 5.3.4
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Re-enabled the G729 audio codec
|
||||||
|
|
||||||
|
## [5.2.0] - 2023-21-12
|
||||||
|
### Added
|
||||||
|
- Chat messages emoji "reactions"
|
||||||
|
- Hardware video codecs (H264, H265) are now used in priority when possible (SDK)
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Minimum iOS version is now 13
|
||||||
|
- Update linphone SDK to 5.3.1
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Several crashes in chat conversation when receiving files
|
||||||
|
- Various UI fixes in conference views
|
||||||
|
- Fix crash upon refreshing register
|
||||||
|
|
||||||
|
## [5.1.0] - 2023-21-08
|
||||||
|
### Added
|
||||||
|
- In contacts and chat conversations view, show short term presence for contacts whom publish it + added setting to disable it (enabled by default for sip.linphone.org accounts)
|
||||||
|
- Advanced settings - option to prevent the taking of screenshot
|
||||||
|
- Emoji picker in chat conversations
|
||||||
|
- Add Organization label to contacts, and the possibility to filter through it
|
||||||
|
- Possibility to make an attended transfer from one call to another
|
||||||
|
- Contact names, phone numbers and sip addresses are now copyable through with long press action
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Switched Account Creator backend from XMLRPC to FlexiAPI, it now requires to be able to receive a push notification
|
||||||
|
- Chat conversation view (one-to-one and group) completely remade with Swift, with various quality of life improvements.
|
||||||
|
- Minimum iOS version is now 11.2
|
||||||
|
- Update linphone SDK to 5.2.95
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Several crashes in the chat conversation view and background mode
|
||||||
|
- Url scheme handler : can now properly do a remote configuration when opening a linphone-config:URL from another app
|
||||||
|
- Bug that could cause push notification to stop working after killing the app manually
|
||||||
|
|
||||||
|
## [5.0.2] - 2023-16-03
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Update linphone SDK to 5.2.32
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Performance issue causing a global slowing of the app, especially at launch
|
||||||
|
- Fix several memory leaks and crashes
|
||||||
|
|
||||||
|
## [5.0.1] - 2023-10-01
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Update linphone SDK to 5.2.11
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Makes sure sip.linphone.org accounts have a LIME X3DH server URL for E2E chat messages encryption
|
||||||
|
- Fix potential crash when displaying images received in a chatroom
|
||||||
|
- Fix bug that would cause the previous call to be terminated when resuming another call that was paused
|
||||||
|
- Fix participant video display in conferences when a second participant joined with video enabled
|
||||||
|
|
||||||
|
## [5.0.0] - 2022-12-06
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- Post Quantum encryption when using ZRTP
|
||||||
|
- Conference creation with scheduling, video, different layouts, showing who is speaking and who is muted, etc...
|
||||||
|
- Group calls directly from group chat rooms
|
||||||
|
- Chat rooms can be individually muted (no notification when receiving a chat message)
|
||||||
|
- Outgoing call video in early-media if requested by callee
|
||||||
|
- Call recordings can be exported
|
||||||
|
- Setting to prevent international prefix from account to be applied to call & chat
|
||||||
|
- Add a "Never ask again" option to the "Link my account" pop-up when starting the app
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- In-call views have been re-designed
|
||||||
|
- Improved how contact avatars are generated
|
||||||
|
- 3-dots menu even for basic chat rooms with more options
|
||||||
|
- Update linphone SDK to 5.2.0
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Chatroom appearing as empty when being logged on multiple accounts
|
||||||
|
- Chatroom appearing as empty after playing a video file inside it
|
||||||
|
- Fix potential crash when entering a chatroom
|
||||||
|
- Fix potential crash when accessing to the delivery infos of a message in a group chat.
|
||||||
|
- IMDN logo not properly displayed when transfering or replying to a message with media (voice message, photo...)
|
||||||
|
- Clarified view when sending an image from the galery
|
||||||
|
- Various audio route fixes for CallKit and IOS 16
|
||||||
|
|
||||||
|
## [4.6.4] - 2022-08-06
|
||||||
|
### Changed
|
||||||
|
- Update linphone SDK to 5.1.42
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Prevent possible application freeze and crash when creating a new chatroom, depending on the phone's contacts.
|
||||||
|
|
||||||
|
## [4.6.3] - 2022-02-06
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- New "Contacts" menu in the settings, which allows the use of LDAP configurations
|
||||||
|
- Using new MagicSearch API to improve contacts list performances, and search contacts using LDAP if appropriate
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Update linphone SDK to 5.1.41
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Prevent read-only 1-1 chat room
|
||||||
|
- Small quality of life fixes for voice recording messages
|
||||||
|
- Display bug when changing audio device
|
||||||
|
|
||||||
|
|
||||||
|
## [4.6.2] - 2022-07-03
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Bug preventing the activation of the phone speaker during calls
|
||||||
|
- Bug with "reply" feature in chatrooms
|
||||||
|
- Bug causing IMDNs to be missing in some chatrooms
|
||||||
|
- Update linphone SDK to 5.1.7
|
||||||
|
|
||||||
|
## [4.6.1] - 2022-04-03
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Crash in chatroom info view after entering background and re-entering foreground
|
||||||
|
- Crash in local call conferences when pausing/resuming
|
||||||
|
- Hard to see text (written in black) on dark mode
|
||||||
|
- Removed duplicate push authorization request pop up on install
|
||||||
|
|
||||||
|
## [4.6.0] - 2022-31-02
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- Reply to chat message feature (with original message preview)
|
||||||
|
- Transfert chat message feature
|
||||||
|
- Swipe action on chat messages to reply / delete
|
||||||
|
- Voice recordings in chat feature
|
||||||
|
- SIP URIs in chat messages are clickable to easily initiate a call
|
||||||
|
- New fragment explaining generic SIP account limitations contrary to sip.linphone.org SIP accounts
|
||||||
|
- Link to Weblate added in about page
|
||||||
|
- New 'scroll to bottom' button in chat conversations, which a "unread message count" badge
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Removed beta feature of ephemeral messages in the settings, now always available.
|
||||||
|
- SDK updated to 5.1.0 release
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Potential crash when editing a contact avatar image.
|
||||||
|
- App extension logs missing when exporting logs
|
||||||
|
|
||||||
|
## [4.5.0] - 2021-07-08
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- Add option to enable VFS
|
||||||
|
- Ephemeral messages (beta)
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Updating SDK to 5.0 version
|
||||||
|
- Using linphone SDK 5.0 API to better handle audio route
|
||||||
|
- Replaced all notions of "Proxy configs" with "Accounts" from the 5.0 SDK
|
||||||
|
- Removed most of the code related to remote and VOIP Push Notification receptions, now handled in the SDK
|
||||||
|
- No longer pause all calls when receiving a new call.
|
||||||
|
- No longer switch to speaker during video call if another output device (bluetooth headset) is already connected
|
||||||
|
- When answering a video call while the phone is locked, send the "No camera available" image until the video is enabled through the CallKit button
|
||||||
|
- Chat messages containing both text and file are now displayed in the same chat bubble
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Fix several memory leaks
|
||||||
|
- Various crashs and issues.
|
||||||
|
- When the App is started through a Push Notification, properly redirect the view to the corresponding chat rather than going to the home page
|
||||||
|
|
||||||
|
## [4.4.0] - 2021-03-30
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- Option to store chat files in Gallery.
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Updating SDK to 4.5 version
|
||||||
|
- Asking user to read and accept privacy policy and general terms
|
||||||
|
- Updated translations
|
||||||
|
- Store chat files in App Groups instead of Gallery.
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
- Location permission request.
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Various crashs and issues.
|
||||||
|
|
||||||
|
|
||||||
|
## [4.3.0] - 2020-06-23
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- "push notification application extension" to manage message reception.
|
||||||
|
- Dark Mode.
|
||||||
|
- CI to test the build and archive the application.
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Presenting the callkit view upon receipt of the push notification.
|
||||||
|
- Using PushKit only for calls.
|
||||||
|
- Moving db files from app containers to App Groups.
|
||||||
|
- Updating SDK to 4.4 version
|
||||||
|
- Some files are written in Swift.
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Various crashs and issues.
|
||||||
|
|
||||||
|
## [4.2.0] - 2019-12-09
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- Possiblity to enable Media Encryption Mandatory in Settings.
|
||||||
|
- Possiblity to not show app's calls in iphone's history
|
||||||
|
- Using new AAudio & Camera2 frameworks for better performances (if available)
|
||||||
|
- Asking the user to agree to access location information from ios 13.
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Improved performances to reduce startup time.
|
||||||
|
- Added our own devices in LIME encrypted chatrooms' security view.
|
||||||
|
- License changed from GPLv2 to GPLv3.
|
||||||
|
- Switched from MD5 to SHA-256 as password protection algorithm.
|
||||||
|
- Updated translations, mainly French and English.
|
||||||
|
- Disable bitcode by Xcode.
|
||||||
|
- Modify some views for iphone, XR and Xs.
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Automatically downloaded images are copied when shared in a chat room.
|
||||||
|
- Some UI errors from ios 13.
|
||||||
|
|
||||||
|
## [4.1.0] - 2019-05-06
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- End-to-end encryption for instant messaging, for both one-to-one and group conversations.
|
||||||
|
- Video H.265 codec support, based on iOS VideoToolbox framework.
|
||||||
|
- Enhanced call and IM notifications, so that it is possible to answer, decline, reply or mark as read directly from them.
|
||||||
|
- Setting to request attachments to be automatically downloaded, unconditionnally or based on their size.
|
||||||
|
- Possibility to send multiple attachments (images, documents) in a same message.
|
||||||
|
- Possibility to open all kinds of documents received in a conversation.
|
||||||
|
- Possibility to share an image through Linphone from an external application (ex: photo app)
|
||||||
|
- Button to invite contacts to use Linphone by sending them a SMS.
|
||||||
|
- Possibility to record calls (audio only), and replay them from the "Recordings" menu.
|
||||||
|
- Remote provisioning from a QR code providing the http(s) url of a provisioning server.
|
||||||
|
- Optional Crashlythics support.
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Compilation procedure is simplified: a binary SDK containing dependencies (liblinphone) is retrieved automatically from a CocoaPods repository.
|
||||||
|
Full compilation remains absolutely supported. Please check local README.md for more details.
|
||||||
|
- Updated translations, mainly French and English.
|
||||||
|
- Use of Photokit instead of Asset Library for image handling.
|
||||||
|
- Auto-layout of images in chat messages.
|
||||||
|
- Use Xcode test navigator for tests.
|
||||||
|
- Move important files from `Documents` folder to `Application Library`.
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Issues around Bluetooth devices management.
|
||||||
|
- Loss of audio after accepting a second call while already in a call.
|
||||||
|
- Crashes when during calls.
|
||||||
|
- Nowebcam when leaving conference.
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
- Static build of iOS linphone SDK.
|
||||||
|
- All git submodules previously containing dependencies.
|
||||||
|
- Some resource files now provided by linphone-sdk.
|
||||||
|
|
||||||
|
## [4.0.2] - 2018-10-15
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- fix IOS12 crash
|
||||||
|
- fix bluethooth issue with some cars
|
||||||
|
- fix nat helper (sdk)
|
||||||
|
|
||||||
|
## [4.0.1] - 2018-06-26
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Fix TURN
|
||||||
|
- Start video stream on first call
|
||||||
|
- Fix audio unit management in case of call time out
|
||||||
|
- Fix registration issue with some SIP services (ie: Asterix)
|
||||||
|
|
||||||
|
## [4.0] - 2018-06-11
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- Supports of group chat
|
||||||
|
- New address search algorithm
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Minor bugs fixes
|
||||||
|
|
||||||
## [3.16.5] - 2017-11-28
|
## [3.16.5] - 2017-11-28
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
||||||
/* AboutViewController.h
|
|
||||||
*
|
|
||||||
* Copyright (C) 2009 Belledonne Comunications, Grenoble, France
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
|
|
||||||
#import "UICompositeView.h"
|
|
||||||
|
|
||||||
@interface AboutView : TPMultiLayoutViewController <UICompositeViewDelegate>
|
|
||||||
|
|
||||||
@property(weak, nonatomic) IBOutlet UILabel *nameLabel;
|
|
||||||
@property(weak, nonatomic) IBOutlet UILabel *descriptionLabel;
|
|
||||||
@property(weak, nonatomic) IBOutlet UILabel *appVersionLabel;
|
|
||||||
@property(weak, nonatomic) IBOutlet UILabel *libVersionLabel;
|
|
||||||
@property(weak, nonatomic) IBOutlet UILabel *licenceLabel;
|
|
||||||
@property(weak, nonatomic) IBOutlet UILabel *policyLabel;
|
|
||||||
- (IBAction)onLinkTap:(id)sender;
|
|
||||||
- (IBAction)onLicenceTap;
|
|
||||||
- (IBAction)onPolicyTap;
|
|
||||||
- (IBAction)onDialerBackClick:(id)sender;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
@ -1,93 +0,0 @@
|
||||||
/* AboutViewController.m
|
|
||||||
*
|
|
||||||
* Copyright (C) 2009 Belledonne Comunications, Grenoble, France
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "PhoneMainView.h"
|
|
||||||
#import "LinphoneManager.h"
|
|
||||||
#import "LinphoneIOSVersion.h"
|
|
||||||
|
|
||||||
@implementation AboutView
|
|
||||||
|
|
||||||
#pragma mark - UICompositeViewDelegate Functions
|
|
||||||
|
|
||||||
static UICompositeViewDescription *compositeDescription = nil;
|
|
||||||
+ (UICompositeViewDescription *)compositeViewDescription {
|
|
||||||
if (compositeDescription == nil) {
|
|
||||||
compositeDescription = [[UICompositeViewDescription alloc] init:self.class
|
|
||||||
statusBar:StatusBarView.class
|
|
||||||
tabBar:nil
|
|
||||||
sideMenu:SideMenuView.class
|
|
||||||
fullscreen:false
|
|
||||||
isLeftFragment:YES
|
|
||||||
fragmentWith:nil];
|
|
||||||
}
|
|
||||||
return compositeDescription;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UICompositeViewDescription *)compositeViewDescription {
|
|
||||||
return self.class.compositeViewDescription;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - ViewController Functions
|
|
||||||
|
|
||||||
- (void)viewDidLoad {
|
|
||||||
[super viewDidLoad];
|
|
||||||
NSString *name = [NSBundle.mainBundle objectForInfoDictionaryKey:@"CFBundleDisplayName"];
|
|
||||||
_nameLabel.text = name;
|
|
||||||
_appVersionLabel.text = [NSString stringWithFormat:@"%@ iOS %s", name, LINPHONE_IOS_VERSION];
|
|
||||||
_libVersionLabel.text = [NSString stringWithFormat:@"%@ Core %s", name, linphone_core_get_version()];
|
|
||||||
UITapGestureRecognizer *tapGestureRecognizer =
|
|
||||||
[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onLicenceTap)];
|
|
||||||
tapGestureRecognizer.numberOfTapsRequired = 1;
|
|
||||||
[_licenceLabel addGestureRecognizer:tapGestureRecognizer];
|
|
||||||
_licenceLabel.userInteractionEnabled = YES;
|
|
||||||
UITapGestureRecognizer *tapGestureRecognizerPolicy =
|
|
||||||
[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onPolicyTap)];
|
|
||||||
tapGestureRecognizerPolicy.numberOfTapsRequired = 1;
|
|
||||||
[_policyLabel addGestureRecognizer:tapGestureRecognizerPolicy];
|
|
||||||
_policyLabel.userInteractionEnabled = YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - Action Functions
|
|
||||||
|
|
||||||
- (IBAction)onLinkTap:(id)sender {
|
|
||||||
UIGestureRecognizer *gest = sender;
|
|
||||||
NSString *url = ((UILabel *)gest.view).text;
|
|
||||||
if (![UIApplication.sharedApplication openURL:[NSURL URLWithString:url]]) {
|
|
||||||
LOGE(@"Failed to open %@, invalid URL", url);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onPolicyTap {
|
|
||||||
NSString *url = @"http://www.linphone.org/privacy-policy.html";
|
|
||||||
if (![UIApplication.sharedApplication openURL:[NSURL URLWithString:url]]) {
|
|
||||||
LOGE(@"Failed to open %@, invalid URL", url);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onLicenceTap {
|
|
||||||
NSString *url = @"https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html";
|
|
||||||
if (![UIApplication.sharedApplication openURL:[NSURL URLWithString:url]]) {
|
|
||||||
LOGE(@"Failed to open %@, invalid URL", url);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onDialerBackClick:(id)sender {
|
|
||||||
[PhoneMainView.instance popToView:DialerView.compositeViewDescription];
|
|
||||||
}
|
|
||||||
@end
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
||||||
//
|
|
||||||
// AssistantLinkView.h
|
|
||||||
// linphone
|
|
||||||
//
|
|
||||||
// Created by Gautier Pelloux-Prayer on 29/08/16.
|
|
||||||
//
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "PhoneMainView.h"
|
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
|
|
||||||
@interface AssistantLinkView : UIViewController <UITextFieldDelegate, UICompositeViewDelegate>
|
|
||||||
@property(weak, nonatomic) IBOutlet UIView *linkAccountView;
|
|
||||||
@property(weak, nonatomic) IBOutlet UIView *activateSMSView;
|
|
||||||
|
|
||||||
@property(weak, nonatomic) IBOutlet UIButton *countryButton;
|
|
||||||
@property(weak, nonatomic) IBOutlet UITextField *countryCodeField;
|
|
||||||
@property(weak, nonatomic) IBOutlet UITextField *activationCodeField;
|
|
||||||
@property(weak, nonatomic) IBOutlet UIRoundBorderedButton *linkAccountButton;
|
|
||||||
@property(weak, nonatomic) IBOutlet UIRoundBorderedButton *checkValidationButton;
|
|
||||||
@property(weak, nonatomic) IBOutlet UIView *waitView;
|
|
||||||
@property(weak, nonatomic) IBOutlet UITextField *phoneField;
|
|
||||||
@property (weak, nonatomic) IBOutlet UILabel *linkSMSText;
|
|
||||||
@property BOOL firstTime;
|
|
||||||
|
|
||||||
- (IBAction)onLinkAccount:(id)sender;
|
|
||||||
- (IBAction)onCheckValidationButton:(id)sender;
|
|
||||||
- (IBAction)onCountryClick:(id)sender;
|
|
||||||
- (IBAction)onDialerClick:(id)sender;
|
|
||||||
- (IBAction)onPhoneNumberDisclosureClick:(id)sender;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
@ -1,311 +0,0 @@
|
||||||
//
|
|
||||||
// AssistantLinkView.m
|
|
||||||
// linphone
|
|
||||||
//
|
|
||||||
// Created by Gautier Pelloux-Prayer on 29/08/16.
|
|
||||||
//
|
|
||||||
//
|
|
||||||
|
|
||||||
#import <CoreTelephony/CTCarrier.h>
|
|
||||||
#import <CoreTelephony/CTTelephonyNetworkInfo.h>
|
|
||||||
|
|
||||||
#import "AssistantLinkView.h"
|
|
||||||
#import "UITextField+DoneButton.h"
|
|
||||||
#import "UIAssistantTextField.h"
|
|
||||||
|
|
||||||
@implementation AssistantLinkView {
|
|
||||||
LinphoneAccountCreator *account_creator;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewDidLoad {
|
|
||||||
[super viewDidLoad];
|
|
||||||
// every UITextField subviews with phone keyboard must be tweaked to have a done button
|
|
||||||
[self addDoneButtonRecursivelyInView:self.view];
|
|
||||||
self.phoneField.delegate = self; self.firstTime = TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)addDoneButtonRecursivelyInView:(UIView *)subview {
|
|
||||||
for (UIView *child in [subview subviews]) {
|
|
||||||
if ([child isKindOfClass:UITextField.class]) {
|
|
||||||
UITextField *tf = (UITextField *)child;
|
|
||||||
if (tf.keyboardType == UIKeyboardTypePhonePad || tf.keyboardType == UIKeyboardTypeNumberPad) {
|
|
||||||
[tf addDoneButton];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
[self addDoneButtonRecursivelyInView:child];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewDidAppear:(BOOL)animated {
|
|
||||||
[super viewDidAppear:animated];
|
|
||||||
|
|
||||||
_linkAccountView.hidden = _activateSMSView.userInteractionEnabled = NO;
|
|
||||||
_activateSMSView.hidden = _linkAccountView.userInteractionEnabled = YES;
|
|
||||||
|
|
||||||
if (!account_creator) {
|
|
||||||
account_creator = linphone_account_creator_new(
|
|
||||||
LC,
|
|
||||||
[LinphoneManager.instance lpConfigStringForKey:@"xmlrpc_url" inSection:@"assistant" withDefault:@""]
|
|
||||||
.UTF8String);
|
|
||||||
}
|
|
||||||
|
|
||||||
linphone_account_creator_set_user_data(account_creator, (__bridge void *)(self));
|
|
||||||
linphone_account_creator_cbs_set_link_account(linphone_account_creator_get_callbacks(account_creator),
|
|
||||||
assistant_link_phone_number_with_account);
|
|
||||||
linphone_account_creator_cbs_set_activate_alias(linphone_account_creator_get_callbacks(account_creator),
|
|
||||||
assistant_activate_phone_number_link);
|
|
||||||
|
|
||||||
LinphoneProxyConfig *cfg = linphone_core_get_default_proxy_config(LC);
|
|
||||||
if (cfg &&
|
|
||||||
strcmp([LinphoneManager.instance lpConfigStringForKey:@"domain_name"
|
|
||||||
inSection:@"app"
|
|
||||||
withDefault:@"sip.linphone.org"]
|
|
||||||
.UTF8String,
|
|
||||||
linphone_proxy_config_get_domain(cfg)) == 0) {
|
|
||||||
linphone_account_creator_set_username(
|
|
||||||
account_creator, linphone_address_get_username(linphone_proxy_config_get_identity_address(cfg)));
|
|
||||||
const LinphoneAuthInfo *info = linphone_proxy_config_find_auth_info(cfg);
|
|
||||||
if (info) {
|
|
||||||
if (linphone_auth_info_get_passwd(info))
|
|
||||||
linphone_account_creator_set_password(account_creator, linphone_auth_info_get_passwd(info));
|
|
||||||
else
|
|
||||||
linphone_account_creator_set_ha1(account_creator, linphone_auth_info_get_ha1(info));
|
|
||||||
}
|
|
||||||
linphone_account_creator_set_domain(account_creator, linphone_proxy_config_get_domain(cfg));
|
|
||||||
} else {
|
|
||||||
LOGW(@"Default proxy is NOT a sip.linphone.org, aborting");
|
|
||||||
[PhoneMainView.instance popToView:DialerView.compositeViewDescription];
|
|
||||||
}
|
|
||||||
|
|
||||||
CTTelephonyNetworkInfo *networkInfo = [CTTelephonyNetworkInfo new];
|
|
||||||
CTCarrier *carrier = networkInfo.subscriberCellularProvider;
|
|
||||||
NSDictionary *country = [CountryListView countryWithIso:carrier.isoCountryCode];
|
|
||||||
if (!country) {
|
|
||||||
// fetch phone locale
|
|
||||||
for (NSString *lang in [NSLocale preferredLanguages]) {
|
|
||||||
NSUInteger idx = [lang rangeOfString:@"-"].location;
|
|
||||||
idx = (idx == NSNotFound) ? idx = 0 : idx + 1;
|
|
||||||
if ((country = [CountryListView countryWithIso:[lang substringFromIndex:idx]]) != nil)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (country && self.firstTime) {
|
|
||||||
[self didSelectCountry:country];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewDidDisappear:(BOOL)animated {
|
|
||||||
if (account_creator) {
|
|
||||||
linphone_account_creator_unref(account_creator);
|
|
||||||
}
|
|
||||||
account_creator = NULL;
|
|
||||||
[super viewDidDisappear:animated];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - UICompositeViewDelegate Functions
|
|
||||||
|
|
||||||
static UICompositeViewDescription *compositeDescription = nil;
|
|
||||||
|
|
||||||
+ (UICompositeViewDescription *)compositeViewDescription {
|
|
||||||
if (compositeDescription == nil) {
|
|
||||||
compositeDescription = [[UICompositeViewDescription alloc] init:self.class
|
|
||||||
statusBar:StatusBarView.class
|
|
||||||
tabBar:nil
|
|
||||||
sideMenu:SideMenuView.class
|
|
||||||
fullscreen:false
|
|
||||||
isLeftFragment:NO
|
|
||||||
fragmentWith:nil];
|
|
||||||
|
|
||||||
compositeDescription.darkBackground = true;
|
|
||||||
}
|
|
||||||
return compositeDescription;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UICompositeViewDescription *)compositeViewDescription {
|
|
||||||
return self.class.compositeViewDescription;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - popup
|
|
||||||
|
|
||||||
- (void)showErrorPopup:(const char *)err {
|
|
||||||
if (strcmp(err, "ERROR_KEY_DOESNT_MATCH") == 0) {
|
|
||||||
UIAlertController *errView =
|
|
||||||
[UIAlertController alertControllerWithTitle:NSLocalizedString(@"Account configuration issue", nil)
|
|
||||||
message:[AssistantView StringForXMLRPCError:err]
|
|
||||||
preferredStyle:UIAlertControllerStyleAlert];
|
|
||||||
|
|
||||||
UIAlertAction *defaultAction = [UIAlertAction actionWithTitle:@"OK"
|
|
||||||
style:UIAlertActionStyleDefault
|
|
||||||
handler:^(UIAlertAction *action) {
|
|
||||||
self.linkAccountView.hidden = NO;
|
|
||||||
self.linkAccountView.userInteractionEnabled = YES;
|
|
||||||
self.activateSMSView.userInteractionEnabled = NO;
|
|
||||||
self.activateSMSView.hidden = YES;
|
|
||||||
self.activationCodeField.text = @"";
|
|
||||||
}];
|
|
||||||
|
|
||||||
[errView addAction:defaultAction];
|
|
||||||
[self presentViewController:errView animated:YES completion:nil];
|
|
||||||
} else {
|
|
||||||
UIAlertController *errView =
|
|
||||||
[UIAlertController alertControllerWithTitle:NSLocalizedString(@"Account configuration issue", nil)
|
|
||||||
message:[AssistantView StringForXMLRPCError:err]
|
|
||||||
preferredStyle:UIAlertControllerStyleAlert];
|
|
||||||
|
|
||||||
UIAlertAction *defaultAction = [UIAlertAction actionWithTitle:@"OK"
|
|
||||||
style:UIAlertActionStyleDefault
|
|
||||||
handler:^(UIAlertAction *action){
|
|
||||||
}];
|
|
||||||
|
|
||||||
[errView addAction:defaultAction];
|
|
||||||
[self presentViewController:errView animated:YES completion:nil];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - cbs
|
|
||||||
|
|
||||||
void assistant_link_phone_number_with_account(LinphoneAccountCreator *creator, LinphoneAccountCreatorStatus status,
|
|
||||||
const char *resp) {
|
|
||||||
AssistantLinkView *thiz = (__bridge AssistantLinkView *)(linphone_account_creator_get_user_data(creator));
|
|
||||||
thiz.waitView.hidden = YES;
|
|
||||||
if (status == LinphoneAccountCreatorStatusRequestOk) {
|
|
||||||
thiz.linkAccountView.hidden = thiz.activateSMSView.userInteractionEnabled = YES;
|
|
||||||
NSString* phoneNumber = [NSString stringWithUTF8String:linphone_account_creator_get_phone_number(creator)];
|
|
||||||
thiz.linkSMSText.text = [NSString stringWithFormat:NSLocalizedString(@"We have sent a SMS with a validation code to %@. To complete your phone number verification, please enter the 4 digit code below:",nil), phoneNumber];
|
|
||||||
thiz.activateSMSView.hidden = thiz.linkAccountView.userInteractionEnabled = NO;
|
|
||||||
} else {
|
|
||||||
if (strcmp(resp, "Missing required parameters") == 0) {
|
|
||||||
[thiz showErrorPopup:"ERROR_NO_PHONE_NUMBER"];
|
|
||||||
} else {
|
|
||||||
[thiz showErrorPopup:resp];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void assistant_activate_phone_number_link(LinphoneAccountCreator *creator, LinphoneAccountCreatorStatus status,
|
|
||||||
const char *resp) {
|
|
||||||
AssistantLinkView *thiz = (__bridge AssistantLinkView *)(linphone_account_creator_get_user_data(creator));
|
|
||||||
thiz.waitView.hidden = YES;
|
|
||||||
if (status == LinphoneAccountCreatorStatusAccountActivated) {
|
|
||||||
[LinphoneManager.instance lpConfigSetInt:0 forKey:@"must_link_account_time"];
|
|
||||||
// save country code prefix if none is already entered
|
|
||||||
LinphoneProxyConfig *cfg = linphone_core_get_default_proxy_config(LC);
|
|
||||||
if (linphone_proxy_config_get_dial_prefix(cfg) == NULL) {
|
|
||||||
const char *prefix = thiz.countryCodeField.text.UTF8String;
|
|
||||||
linphone_proxy_config_edit(cfg);
|
|
||||||
linphone_proxy_config_set_dial_prefix(cfg, prefix[0] == '+' ? &prefix[1] : prefix);
|
|
||||||
linphone_proxy_config_done(cfg);
|
|
||||||
}
|
|
||||||
[PhoneMainView.instance popToView:DialerView.compositeViewDescription];
|
|
||||||
[[NSNotificationCenter defaultCenter] postNotificationName:kLinphoneAddressBookUpdate object:NULL];
|
|
||||||
[LinphoneManager.instance.fastAddressBook fetchContactsInBackGroundThread];
|
|
||||||
} else {
|
|
||||||
[thiz showErrorPopup:resp];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - other
|
|
||||||
- (void)updateCountry:(BOOL)force {
|
|
||||||
NSDictionary *c = [CountryListView countryWithCountryCode:_countryCodeField.text];
|
|
||||||
if (c || force) {
|
|
||||||
[_countryButton setTitle:c ? [c objectForKey:@"name"] : NSLocalizedString(@"Unknown country code", nil)
|
|
||||||
forState:UIControlStateNormal];
|
|
||||||
}
|
|
||||||
if ([[_countryButton currentTitle] isEqualToString:NSLocalizedString(@"Unknown country code", nil)]) {
|
|
||||||
_countryCodeField.layer.borderWidth = .8;
|
|
||||||
_countryCodeField.layer.cornerRadius = 4.f;
|
|
||||||
_countryCodeField.layer.borderColor = [[UIColor redColor] CGColor];
|
|
||||||
self.linkAccountButton.enabled = FALSE;
|
|
||||||
} else {
|
|
||||||
_countryCodeField.layer.borderColor = [[UIColor clearColor] CGColor];
|
|
||||||
if (_phoneField.layer.borderColor != [[UIColor redColor] CGColor]) {
|
|
||||||
self.linkAccountButton.enabled = TRUE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onCountryCodeFieldChange:(id)sender {
|
|
||||||
[self updateCountry:NO];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onCountryCodeFieldEnd:(id)sender {
|
|
||||||
[self updateCountry:YES];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onCountryClick:(id)sender {
|
|
||||||
self.firstTime = FALSE;
|
|
||||||
CountryListView *view = VIEW(CountryListView);
|
|
||||||
[view setDelegate:(id)self];
|
|
||||||
[PhoneMainView.instance changeCurrentView:view.compositeViewDescription];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onLinkAccount:(id)sender {
|
|
||||||
_waitView.hidden = NO;
|
|
||||||
NSString *newStr = [_countryCodeField.text substringWithRange:NSMakeRange(1, [_countryCodeField.text length]-1)];
|
|
||||||
linphone_account_creator_set_phone_number(account_creator, _phoneField.text.UTF8String,
|
|
||||||
newStr.UTF8String);
|
|
||||||
|
|
||||||
NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0];
|
|
||||||
linphone_account_creator_set_language(account_creator, [[language substringToIndex:2] UTF8String]);
|
|
||||||
linphone_account_creator_link_account(account_creator);
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onCheckValidationButton:(id)sender {
|
|
||||||
_waitView.hidden = NO;
|
|
||||||
linphone_account_creator_set_activation_code(account_creator, _activationCodeField.text.UTF8String);
|
|
||||||
linphone_account_creator_activate_alias(account_creator);
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onDialerClick:(id)sender {
|
|
||||||
[PhoneMainView.instance popToView:DialerView.compositeViewDescription];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onPhoneNumberDisclosureClick:(id)sender {
|
|
||||||
UIAlertController *errView = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"What will my phone number be used for?", nil)
|
|
||||||
message:NSLocalizedString(@"Your friends will find your more easily if you link your account to your "
|
|
||||||
@"phone number. \n\nYou will see in your address book who is using "
|
|
||||||
@"Linphone and your friends will know that they can reach you on Linphone "
|
|
||||||
@"as well. \n\nYou can use your phone number with only one Linphone "
|
|
||||||
@"account. If you had already linked your number to an other account but "
|
|
||||||
@"you prefer to use this one, simply link it now and your number will "
|
|
||||||
@"automatically be moved to this account.",
|
|
||||||
nil)
|
|
||||||
preferredStyle:UIAlertControllerStyleAlert];
|
|
||||||
|
|
||||||
UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK"
|
|
||||||
style:UIAlertActionStyleDefault
|
|
||||||
handler:^(UIAlertAction * action) {}];
|
|
||||||
[errView addAction:defaultAction];
|
|
||||||
[self presentViewController:errView animated:YES completion:nil];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - select country delegate
|
|
||||||
|
|
||||||
- (void)didSelectCountry:(NSDictionary *)country {
|
|
||||||
[_countryButton setTitle:[country objectForKey:@"name"] forState:UIControlStateNormal];
|
|
||||||
_countryCodeField.text = [country objectForKey:@"code"];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - UITextFieldDelegate Functions
|
|
||||||
|
|
||||||
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
|
|
||||||
//remove the + from the country code to avoir error when checking its validity
|
|
||||||
NSString *newStr = [_countryCodeField.text substringWithRange:NSMakeRange(1, [_countryCodeField.text length]-1)];
|
|
||||||
LinphoneAccountCreatorStatus status = linphone_account_creator_set_phone_number(account_creator, [_phoneField.text UTF8String], [newStr UTF8String]);
|
|
||||||
if (status == LinphoneAccountCreatorPhoneNumberStatusTooLong ||
|
|
||||||
status == LinphoneAccountCreatorPhoneNumberStatusTooShort) {
|
|
||||||
self.phoneField.layer.borderWidth = .8;
|
|
||||||
self.phoneField.layer.cornerRadius = 4.f;
|
|
||||||
self.phoneField.layer.borderColor = [[UIColor redColor] CGColor];
|
|
||||||
self.linkAccountButton.enabled = FALSE;
|
|
||||||
} else {
|
|
||||||
self.phoneField.layer.borderColor = [[UIColor clearColor] CGColor];
|
|
||||||
if (_countryCodeField.layer.borderColor != [[UIColor redColor] CGColor]){
|
|
||||||
self.linkAccountButton.enabled = TRUE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
@ -1,103 +0,0 @@
|
||||||
/* AssistantViewController.h
|
|
||||||
*
|
|
||||||
* Copyright (C) 2012 Belledonne Comunications, Grenoble, France
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Library General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
#import "UICompositeView.h"
|
|
||||||
#import "TPKeyboardAvoidingScrollView.h"
|
|
||||||
#import "PhoneMainView.h"
|
|
||||||
|
|
||||||
@interface AssistantView : UIViewController <UITextFieldDelegate, UICompositeViewDelegate> {
|
|
||||||
|
|
||||||
@private
|
|
||||||
LinphoneAccountCreator *account_creator;
|
|
||||||
UIView *currentView;
|
|
||||||
UIView *nextView;
|
|
||||||
NSMutableArray *historyViews;
|
|
||||||
LinphoneProxyConfig *new_config;
|
|
||||||
size_t number_of_configs_before;
|
|
||||||
BOOL mustRestoreView;
|
|
||||||
long phone_number_length;
|
|
||||||
}
|
|
||||||
|
|
||||||
@property(nonatomic) UICompositeViewDescription *outgoingView;
|
|
||||||
@property (weak, nonatomic) IBOutlet UILabel *subtileLabel_useLinphoneAccount;
|
|
||||||
|
|
||||||
@property(nonatomic, strong) IBOutlet TPKeyboardAvoidingScrollView *contentView;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIView *waitView;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIButton *backButton;
|
|
||||||
@property (weak, nonatomic) IBOutlet UIButton *infoLoginButton;
|
|
||||||
|
|
||||||
@property(nonatomic, strong) IBOutlet UIView *welcomeView;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIView *createAccountView;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIView *createAccountActivateEmailView;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIView *linphoneLoginView;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIView *loginView;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIView *remoteProvisioningLoginView;
|
|
||||||
@property(strong, nonatomic) IBOutlet UIView *remoteProvisioningView;
|
|
||||||
@property (strong, nonatomic) IBOutlet UIView *createAccountActivateSMSView;
|
|
||||||
|
|
||||||
@property(nonatomic, strong) IBOutlet UIImageView *welcomeLogoImage;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIButton *gotoCreateAccountButton;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIButton *gotoLinphoneLoginButton;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIButton *gotoLoginButton;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIButton *gotoRemoteProvisioningButton;
|
|
||||||
@property (weak, nonatomic) IBOutlet UILabel *phoneLabel;
|
|
||||||
@property (weak, nonatomic) IBOutlet UILabel *phoneTitle;
|
|
||||||
@property (weak, nonatomic) IBOutlet UILabel *activationTitle;
|
|
||||||
@property (weak, nonatomic) IBOutlet UILabel *activationEmailText;
|
|
||||||
@property (weak, nonatomic) IBOutlet UILabel *activationSMSText;
|
|
||||||
|
|
||||||
@property (weak, nonatomic) IBOutlet UILabel *accountLabel;
|
|
||||||
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *createAccountNextButtonPositionConstraint;
|
|
||||||
|
|
||||||
+ (NSString *)StringForXMLRPCError:(const char *)err;
|
|
||||||
+ (NSString *)errorForLinphoneAccountCreatorPhoneNumberStatus:(LinphoneAccountCreatorPhoneNumberStatus)status;
|
|
||||||
+ (NSString *)errorForLinphoneAccountCreatorUsernameStatus:(LinphoneAccountCreatorUsernameStatus)status;
|
|
||||||
+ (NSString *)errorForLinphoneAccountCreatorEmailStatus:(LinphoneAccountCreatorEmailStatus)status;
|
|
||||||
+ (NSString *)errorForLinphoneAccountCreatorPasswordStatus:(LinphoneAccountCreatorPasswordStatus)status;
|
|
||||||
+ (NSString *)errorForLinphoneAccountCreatorActivationCodeStatus:(LinphoneAccountCreatorActivationCodeStatus)status;
|
|
||||||
+ (NSString *)errorForLinphoneAccountCreatorStatus:(LinphoneAccountCreatorStatus)status;
|
|
||||||
+ (NSString *)errorForLinphoneAccountCreatorDomainStatus:(LinphoneAccountCreatorDomainStatus)status;
|
|
||||||
|
|
||||||
- (void)reset;
|
|
||||||
- (void)fillDefaultValues;
|
|
||||||
|
|
||||||
- (IBAction)onBackClick:(id)sender;
|
|
||||||
- (IBAction)onDialerClick:(id)sender;
|
|
||||||
|
|
||||||
- (IBAction)onGotoCreateAccountClick:(id)sender;
|
|
||||||
- (IBAction)onGotoLinphoneLoginClick:(id)sender;
|
|
||||||
- (IBAction)onGotoLoginClick:(id)sender;
|
|
||||||
- (IBAction)onGotoRemoteProvisioningClick:(id)sender;
|
|
||||||
|
|
||||||
- (IBAction)onCreateAccountClick:(id)sender;
|
|
||||||
- (IBAction)onCreateAccountActivationClick:(id)sender;
|
|
||||||
- (IBAction)onLinphoneLoginClick:(id)sender;
|
|
||||||
- (IBAction)onLoginClick:(id)sender;
|
|
||||||
- (IBAction)onRemoteProvisioningLoginClick:(id)sender;
|
|
||||||
- (IBAction)onRemoteProvisioningDownloadClick:(id)sender;
|
|
||||||
- (IBAction)onCreateAccountCheckActivatedClick:(id)sender;
|
|
||||||
- (IBAction)onLinkAccountClick:(id)sender;
|
|
||||||
|
|
||||||
- (IBAction)onFormSwitchToggle:(id)sender;
|
|
||||||
- (IBAction)onCountryCodeClick:(id)sender;
|
|
||||||
- (IBAction)onCountryCodeFieldChange:(id)sender;
|
|
||||||
- (IBAction)onCountryCodeFieldEnd:(id)sender;
|
|
||||||
- (IBAction)onPhoneNumberDisclosureClick:(id)sender;
|
|
||||||
@end
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,41 +0,0 @@
|
||||||
//
|
|
||||||
// AudioHelper.m
|
|
||||||
// linphone
|
|
||||||
//
|
|
||||||
// Created by REIS Benjamin on 01/03/2017.
|
|
||||||
//
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "AudioHelper.h"
|
|
||||||
|
|
||||||
@implementation AudioHelper
|
|
||||||
|
|
||||||
+ (NSArray *)bluetoothRoutes {
|
|
||||||
return @[ AVAudioSessionPortBluetoothA2DP, AVAudioSessionPortBluetoothLE, AVAudioSessionPortBluetoothHFP ];
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (AVAudioSessionPortDescription *)bluetoothAudioDevice {
|
|
||||||
return [AudioHelper audioDeviceFromTypes:[AudioHelper bluetoothRoutes]];
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (AVAudioSessionPortDescription *)builtinAudioDevice {
|
|
||||||
NSArray *builtinRoutes = @[ AVAudioSessionPortBuiltInMic ];
|
|
||||||
return [AudioHelper audioDeviceFromTypes:builtinRoutes];
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (AVAudioSessionPortDescription *)speakerAudioDevice {
|
|
||||||
NSArray *builtinRoutes = @[ AVAudioSessionPortBuiltInSpeaker ];
|
|
||||||
return [AudioHelper audioDeviceFromTypes:builtinRoutes];
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (AVAudioSessionPortDescription *)audioDeviceFromTypes:(NSArray *)types {
|
|
||||||
NSArray *routes = [[AVAudioSession sharedInstance] availableInputs];
|
|
||||||
for (AVAudioSessionPortDescription *route in routes) {
|
|
||||||
if ([types containsObject:route.portType]) {
|
|
||||||
return route;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
Binary file not shown.
|
|
@ -1,289 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14109" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" colorMatched="YES">
|
|
||||||
<device id="retina4_0" orientation="portrait">
|
|
||||||
<adaptation id="fullscreen"/>
|
|
||||||
</device>
|
|
||||||
<dependencies>
|
|
||||||
<deployment identifier="iOS"/>
|
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
|
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
|
||||||
</dependencies>
|
|
||||||
<objects>
|
|
||||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="AboutView">
|
|
||||||
<connections>
|
|
||||||
<outlet property="appVersionLabel" destination="gLk-Bc-zvx" id="81L-RE-1ad"/>
|
|
||||||
<outlet property="landscapeView" destination="sVO-4a-t1s" id="9ye-NV-onQ"/>
|
|
||||||
<outlet property="libVersionLabel" destination="ZYk-v1-CYZ" id="E4g-U8-zyp"/>
|
|
||||||
<outlet property="licenceLabel" destination="gVK-Xc-S59" id="XPV-ct-oGP"/>
|
|
||||||
<outlet property="policyLabel" destination="5Nl-Fs-ggi" id="xXc-PS-Eda"/>
|
|
||||||
<outlet property="portraitView" destination="HJH-1o-RXN" id="Hoa-uk-q9s"/>
|
|
||||||
<outlet property="view" destination="HJH-1o-RXN" id="t5Y-ob-1WC"/>
|
|
||||||
</connections>
|
|
||||||
</placeholder>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
|
||||||
<view contentMode="scaleToFill" id="eP3-Qs-BZl" userLabel="iphone6MetricsView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view tag="1" contentMode="scaleToFill" id="HJH-1o-RXN">
|
|
||||||
<rect key="frame" x="0.0" y="66" width="320" height="502"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view tag="2" contentMode="scaleToFill" id="Whz-oo-Pwx" userLabel="topBar">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="3" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_F.png" id="h54-RV-eE6" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<button opaque="NO" tag="4" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="ETk-tB-ZNl" userLabel="dialerBackButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="255" y="0.0" width="65" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Add contact"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="dialer_back_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="dialer_back_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onDialerBackClick:" destination="-1" eventType="touchUpInside" id="PJX-d2-pSh"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="5" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="ABOUT" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="iNt-9d-7si" userLabel="titleLabel">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="27"/>
|
|
||||||
<color key="textColor" red="0.98766469955444336" green="0.27512490749359131" blue="0.029739789664745331" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
<view clipsSubviews="YES" multipleTouchEnabled="YES" tag="6" contentMode="scaleToFill" id="er6-WR-NP1">
|
|
||||||
<rect key="frame" x="0.0" y="66" width="320" height="535"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="7" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" image="color_C.png" id="fbO-x9-0Ue" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="262"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="11" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" text="Linphone iOS 8.0" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="gLk-Bc-zvx" userLabel="appVersionLabel">
|
|
||||||
<rect key="frame" x="-8" y="221" width="320" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.85415387153625488" green="0.85412830114364624" blue="0.85414278507232666" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="12" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" text="Linphone Core 3.14.0" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="ZYk-v1-CYZ" userLabel="libVersionLabel">
|
|
||||||
<rect key="frame" x="-8" y="241" width="320" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.85415387153625488" green="0.85412830114364624" blue="0.85414278507232666" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<label opaque="NO" tag="13" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" text="https://www.linphone.org" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="1pe-zf-cQh" userLabel="siteURLLabel">
|
|
||||||
<rect key="frame" x="0.0" y="270" width="320" height="29"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.98766469955444336" green="0.27512490749359131" blue="0.029739789664745331" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
<connections>
|
|
||||||
<outletCollection property="gestureRecognizers" destination="l7c-wq-pii" appends="YES" id="olo-CD-gM3"/>
|
|
||||||
</connections>
|
|
||||||
</label>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="14" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" text="Visit our privacy policy" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="7" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" id="5Nl-Fs-ggi" userLabel="policyLabel">
|
|
||||||
<rect key="frame" x="0.0" y="298" width="320" height="29"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.33333333329999998" green="0.33333333329999998" blue="0.33333333329999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="8" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" image="splashscreen.png" id="wSQ-YD-dIQ" userLabel="logoImage">
|
|
||||||
<rect key="frame" x="0.0" y="8" width="320" height="166"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="10" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" usesAttributedText="YES" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.10000000149011612" id="siH-xH-Z5X" userLabel="descLabel">
|
|
||||||
<rect key="frame" x="68" y="179" width="185" height="34"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<attributedString key="attributedText">
|
|
||||||
<fragment content="The ">
|
|
||||||
<attributes>
|
|
||||||
<color key="NSColor" red="0.98766469955444336" green="0.27512490749359131" blue="0.029739789664745331" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<font key="NSFont" size="26" name="HelveticaNeue"/>
|
|
||||||
<paragraphStyle key="NSParagraphStyle" alignment="center" lineBreakMode="truncatingTail" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
|
|
||||||
</attributes>
|
|
||||||
</fragment>
|
|
||||||
<fragment content="libre">
|
|
||||||
<attributes>
|
|
||||||
<color key="NSColor" red="0.98766469955444336" green="0.27512490749359131" blue="0.029739789664745331" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<font key="NSFont" size="26" name="HelveticaNeue-Italic"/>
|
|
||||||
<paragraphStyle key="NSParagraphStyle" alignment="center" lineBreakMode="truncatingTail" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
|
|
||||||
</attributes>
|
|
||||||
</fragment>
|
|
||||||
<fragment content=" SIP client">
|
|
||||||
<attributes>
|
|
||||||
<color key="NSColor" red="0.98766469955444336" green="0.27512490749359131" blue="0.029739789664745331" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<font key="NSFont" size="26" name="HelveticaNeue"/>
|
|
||||||
<paragraphStyle key="NSParagraphStyle" alignment="center" lineBreakMode="truncatingTail" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
|
|
||||||
</attributes>
|
|
||||||
</fragment>
|
|
||||||
</attributedString>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="14" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="7" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" id="gVK-Xc-S59" userLabel="licenseLabel">
|
|
||||||
<rect key="frame" x="-8" y="335" width="320" height="61"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<string key="text">GNU General Public License V2
|
|
||||||
© 2010-2018 Belledonne Communications</string>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.33333333333333331" green="0.33333333333333331" blue="0.33333333333333331" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<point key="canvasLocation" x="235" y="318"/>
|
|
||||||
</view>
|
|
||||||
<view contentMode="scaleToFill" id="FcM-rg-Qrt" userLabel="iphone6MetricsView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view tag="1" contentMode="scaleToFill" misplaced="YES" id="sVO-4a-t1s">
|
|
||||||
<rect key="frame" x="0.0" y="66" width="320" height="391"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view tag="2" contentMode="scaleToFill" id="OGe-ZS-scH" userLabel="topBar">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="3" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_F.png" id="Vi5-Wh-iOm" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<button opaque="NO" tag="4" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="vX8-wO-ZEN" userLabel="dialerBackButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="255" y="0.0" width="65" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Add contact"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="dialer_back_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="dialer_back_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onDialerBackClick:" destination="-1" eventType="touchUpInside" id="vfB-jG-YPr"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="5" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="ABOUT" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="wKp-iH-ojJ" userLabel="titleLabel">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="27"/>
|
|
||||||
<color key="textColor" red="0.98766469955444336" green="0.27512490749359131" blue="0.029739789664745331" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
<view clipsSubviews="YES" multipleTouchEnabled="YES" tag="6" contentMode="scaleToFill" id="Wvv-4f-Oa6">
|
|
||||||
<rect key="frame" x="0.0" y="66" width="320" height="243"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="7" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" image="color_C.png" id="UBx-Gi-qTi" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="152"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="10" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" usesAttributedText="YES" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.10000000149011612" id="ASG-VC-Riv" userLabel="descLabel">
|
|
||||||
<rect key="frame" x="152" y="35" width="124" height="45"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<attributedString key="attributedText">
|
|
||||||
<fragment content="The ">
|
|
||||||
<attributes>
|
|
||||||
<color key="NSColor" red="0.98766469955444336" green="0.27512490749359131" blue="0.029739789664745331" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<font key="NSFont" size="26" name="HelveticaNeue"/>
|
|
||||||
<paragraphStyle key="NSParagraphStyle" alignment="center" lineBreakMode="truncatingTail" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
|
|
||||||
</attributes>
|
|
||||||
</fragment>
|
|
||||||
<fragment content="libre">
|
|
||||||
<attributes>
|
|
||||||
<color key="NSColor" red="0.98766469955444336" green="0.27512490749359131" blue="0.029739789664745331" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<font key="NSFont" size="26" name="HelveticaNeue-Italic"/>
|
|
||||||
<paragraphStyle key="NSParagraphStyle" alignment="center" lineBreakMode="truncatingTail" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
|
|
||||||
</attributes>
|
|
||||||
</fragment>
|
|
||||||
<fragment content=" SIP client">
|
|
||||||
<attributes>
|
|
||||||
<color key="NSColor" red="0.98766469955444336" green="0.27512490749359131" blue="0.029739789664745331" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<font key="NSFont" size="26" name="HelveticaNeue"/>
|
|
||||||
<paragraphStyle key="NSParagraphStyle" alignment="center" lineBreakMode="truncatingTail" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/>
|
|
||||||
</attributes>
|
|
||||||
</fragment>
|
|
||||||
</attributedString>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="11" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" text="Linphone iPhone 3.0" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="oYk-ih-BBi" userLabel="appVersionLabel">
|
|
||||||
<rect key="frame" x="109" y="88" width="211" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.85415387153625488" green="0.85412830114364624" blue="0.85414278507232666" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<label opaque="NO" tag="13" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" text="https://www.linphone.org" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="jGU-DX-XcO" userLabel="siteURLLabel">
|
|
||||||
<rect key="frame" x="0.0" y="154" width="320" height="29"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.98766469960000003" green="0.27512490750000002" blue="0.029739789660000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="14" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" text="Visit our privacy policy" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="7" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" id="nld-cR-eba" userLabel="policyLabel">
|
|
||||||
<rect key="frame" x="0.0" y="173" width="320" height="41"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.33333333329999998" green="0.33333333329999998" blue="0.33333333329999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="12" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" text="Linphone Core 3.9.0" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="g2W-u5-yxg" userLabel="libVersionLabel">
|
|
||||||
<rect key="frame" x="109" y="117" width="211" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.85415387153625488" green="0.85412830114364624" blue="0.85414278507232666" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="8" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" image="splashscreen.png" id="UhZ-5i-eU5" userLabel="logoImage">
|
|
||||||
<rect key="frame" x="6" y="0.0" width="121" height="152"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
</imageView>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="14" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" text="GNU General Public License V2 © 2010-2018 Belledonne Communications" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="7" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" id="vqn-sI-DiC" userLabel="licenseLabel">
|
|
||||||
<rect key="frame" x="0.0" y="226" width="520" height="35"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.33333333329999998" green="0.33333333329999998" blue="0.33333333329999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<point key="canvasLocation" x="871" y="248"/>
|
|
||||||
</view>
|
|
||||||
<tapGestureRecognizer id="l7c-wq-pii" userLabel="onLinkTap">
|
|
||||||
<connections>
|
|
||||||
<action selector="onLinkTap:" destination="-1" id="Ay5-Uz-RDo"/>
|
|
||||||
</connections>
|
|
||||||
</tapGestureRecognizer>
|
|
||||||
</objects>
|
|
||||||
<resources>
|
|
||||||
<image name="color_C.png" width="2" height="2"/>
|
|
||||||
<image name="color_E.png" width="2" height="2"/>
|
|
||||||
<image name="color_F.png" width="2" height="2"/>
|
|
||||||
<image name="dialer_back_default.png" width="27" height="27"/>
|
|
||||||
<image name="dialer_back_disabled.png" width="27" height="27"/>
|
|
||||||
<image name="splashscreen.png" width="533" height="386"/>
|
|
||||||
</resources>
|
|
||||||
</document>
|
|
||||||
Binary file not shown.
|
|
@ -1,250 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="11201" systemVersion="16A323" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" colorMatched="YES">
|
|
||||||
<dependencies>
|
|
||||||
<deployment identifier="iOS"/>
|
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11161"/>
|
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
|
||||||
</dependencies>
|
|
||||||
<objects>
|
|
||||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="AssistantLinkView">
|
|
||||||
<connections>
|
|
||||||
<outlet property="activateSMSView" destination="2Nl-QG-fTA" id="kfz-Eh-D1e"/>
|
|
||||||
<outlet property="activationCodeField" destination="PXL-cl-haZ" id="faz-N0-sjR"/>
|
|
||||||
<outlet property="checkValidationButton" destination="bIM-bh-Huy" id="yr2-9j-ejj"/>
|
|
||||||
<outlet property="countryButton" destination="rLT-uU-cJS" id="lNp-Qo-AKx"/>
|
|
||||||
<outlet property="countryCodeField" destination="DBr-NA-Ibx" id="cRz-xe-r5D"/>
|
|
||||||
<outlet property="linkAccountButton" destination="D25-6f-qRg" id="aid-PS-8mU"/>
|
|
||||||
<outlet property="linkAccountView" destination="ImD-Y4-3nC" id="8yc-Dr-cZ8"/>
|
|
||||||
<outlet property="linkSMSText" destination="Dvq-wa-3k8" id="4Ne-Ud-aA1"/>
|
|
||||||
<outlet property="phoneField" destination="cEN-WO-5qv" id="Ftl-EA-afz"/>
|
|
||||||
<outlet property="view" destination="FBm-gC-sIQ" id="Bhr-VA-MJs"/>
|
|
||||||
<outlet property="waitView" destination="J3A-Fb-Dpg" id="zbb-YB-ace"/>
|
|
||||||
</connections>
|
|
||||||
</placeholder>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
|
||||||
<view contentMode="scaleToFill" id="fhP-nP-aaU" userLabel="iphone6MetricsView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view tag="1" contentMode="scaleToFill" id="FBm-gC-sIQ">
|
|
||||||
<frame key="frameInset" minY="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view tag="2" contentMode="scaleToFill" misplaced="YES" id="c7I-Cv-d4R" userLabel="topBar">
|
|
||||||
<frame key="frameInset" height="66" maxX="8"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="3" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" image="color_F.png" id="q79-qx-kgb" userLabel="backgroundColor">
|
|
||||||
<frame key="frameInset" height="66" maxX="-8"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<button opaque="NO" tag="4" contentMode="scaleToFill" misplaced="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="VlN-Em-1V6" userLabel="dialerBackButton" customClass="UIIconButton">
|
|
||||||
<frame key="frameInset" width="76" height="66" maxX="-9"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Add contact"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="dialer_back_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="dialer_back_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onDialerClick:" destination="-1" eventType="touchUpInside" id="WUU-Oh-Ofu"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="5" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="ASSISTANT" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="zrj-TX-1RP" userLabel="titleLabel">
|
|
||||||
<frame key="frameInset" width="375" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="27"/>
|
|
||||||
<color key="textColor" red="0.98766469955444336" green="0.27512490749359131" blue="0.029739789664745331" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
<view hidden="YES" contentMode="scaleToFill" id="ImD-Y4-3nC" userLabel="linkAccountView">
|
|
||||||
<frame key="frameInset" minY="66" height="535"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="LINK YOUR ACCOUNT" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="0xQ-6c-cAc" userLabel="titleLabel">
|
|
||||||
<frame key="frameInset" minX="50.00%" width="299" height="59"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Account setup assistant"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" weight="light" pointSize="24"/>
|
|
||||||
<color key="textColor" red="0.20521381499999999" green="0.20520767570000001" blue="0.2052111626" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
<size key="shadowOffset" width="-1" height="-1"/>
|
|
||||||
</label>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Please confirm your country code and enter your phone number" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" minimumFontSize="11" id="RQz-tT-5vp" userLabel="subtitleLabel">
|
|
||||||
<frame key="frameInset" minX="10.13%" minY="13.04%" width="79.73%" height="29"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Account setup assistant"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="15"/>
|
|
||||||
<color key="textColor" red="0.4266758859" green="0.42666310070000002" blue="0.42667034269999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
<size key="shadowOffset" width="-1" height="-1"/>
|
|
||||||
</label>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="122" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" text="PHONE NUMBER" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="v2Q-jf-BdL" userLabel="phoneLabel">
|
|
||||||
<frame key="frameInset" minX="10.13%" minY="25.14%" width="79.73%" height="14"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="13"/>
|
|
||||||
<color key="textColor" red="0.4266758859" green="0.42666310070000002" blue="0.42667034269999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<button opaque="NO" tag="150" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="rLT-uU-cJS" userLabel="countryButton" customClass="UIRoundBorderedButton">
|
|
||||||
<frame key="frameInset" minX="10.13%" minY="30.30%" width="79.73%" height="30"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<state key="normal" title="Select your country">
|
|
||||||
<color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" title="Choose your country" backgroundImage="color_F.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onCountryClick:" destination="-1" eventType="touchUpInside" id="AUl-nx-xOA"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<view contentMode="scaleToFill" misplaced="YES" id="88g-7g-gGM" userLabel="phoneNumberView">
|
|
||||||
<frame key="frameInset" minX="10.13%" minY="189" width="79.73%" height="43"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<textField opaque="NO" clipsSubviews="YES" tag="109" contentMode="scaleToFill" misplaced="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="+1" textAlignment="center" minimumFontSize="5" id="DBr-NA-Ibx" userLabel="countryCodeField">
|
|
||||||
<frame key="frameInset" minX="1" minY="53.85%" width="18.12%" height="30"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" red="0.85415387149999999" green="0.85412830110000004" blue="0.85414278509999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<textInputTraits key="textInputTraits" keyboardType="phonePad"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onCountryCodeFieldChange:" destination="-1" eventType="editingChanged" id="cot-au-ukn"/>
|
|
||||||
<action selector="onCountryCodeFieldEnd:" destination="-1" eventType="editingDidEnd" id="5v7-YR-eTh"/>
|
|
||||||
</connections>
|
|
||||||
</textField>
|
|
||||||
<textField opaque="NO" clipsSubviews="YES" tag="107" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" adjustsFontSizeToFit="NO" minimumFontSize="10" id="cEN-WO-5qv" userLabel="phoneField">
|
|
||||||
<frame key="frameInset" minY="53.85%" width="80.67%" height="30" maxX="-1"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" red="0.85415387149999999" green="0.85412830110000004" blue="0.85414278509999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Username"/>
|
|
||||||
<color key="textColor" red="0.20521381499999999" green="0.20520767570000001" blue="0.2052111626" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
|
||||||
<textInputTraits key="textInputTraits" autocorrectionType="no" keyboardType="phonePad" returnKeyType="next"/>
|
|
||||||
</textField>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
<inset key="insetFor6xAndEarlier" minX="0.0" minY="0.0" maxX="299" maxY="0.0"/>
|
|
||||||
</view>
|
|
||||||
<button opaque="NO" contentMode="scaleToFill" misplaced="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="infoDark" showsTouchWhenHighlighted="YES" lineBreakMode="middleTruncation" id="9cd-3u-fU5" userLabel="infoButton">
|
|
||||||
<frame key="frameInset" minX="84.99%" minY="24.76%" width="22" height="22"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onPhoneNumberDisclosureClick:" destination="-1" eventType="touchUpInside" id="FEb-Xm-Pyx"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="130" contentMode="scaleToFill" misplaced="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="D25-6f-qRg" userLabel="linkAccountButton" customClass="UIRoundBorderedButton">
|
|
||||||
<frame key="frameInset" minX="10.13%" minY="50.91%" width="79.73%" height="40"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Create account">
|
|
||||||
<bool key="isElement" value="YES"/>
|
|
||||||
</accessibility>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
|
||||||
<state key="normal" title="LINK ACCOUNT">
|
|
||||||
<color key="titleColor" red="0.20521381499999999" green="0.20520767570000001" blue="0.2052111626" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled">
|
|
||||||
<color key="titleColor" red="0.71885228160000003" green="0.71883076430000004" blue="0.71884298319999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" backgroundImage="color_F.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onLinkAccount:" destination="-1" eventType="touchUpInside" id="wd4-6V-tMa"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</view>
|
|
||||||
<view contentMode="scaleToFill" id="2Nl-QG-fTA" userLabel="activateSMSView">
|
|
||||||
<frame key="frameInset" minY="66" height="535"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="LINK YOUR ACCOUNT" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="5aj-17-dC2" userLabel="titleLabel">
|
|
||||||
<frame key="frameInset" minX="52.78%" width="303" height="59"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Account setup assistant"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" weight="light" pointSize="24"/>
|
|
||||||
<color key="textColor" red="0.20521381499999999" green="0.20520767570000001" blue="0.2052111626" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
<size key="shadowOffset" width="-1" height="-1"/>
|
|
||||||
</label>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="2/2" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" minimumFontSize="10" id="bU8-Tu-9O4" userLabel="subtitleLabel">
|
|
||||||
<frame key="frameInset" minX="10.13%" minY="13.04%" width="80.80%" height="29"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Account setup assistant"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="13"/>
|
|
||||||
<color key="textColor" red="0.4266758859" green="0.42666310070000002" blue="0.42667034269999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
<size key="shadowOffset" width="-1" height="-1"/>
|
|
||||||
</label>
|
|
||||||
<textField opaque="NO" clipsSubviews="YES" tag="108" contentMode="scaleToFill" misplaced="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Activation code" textAlignment="center" minimumFontSize="17" clearButtonMode="always" id="PXL-cl-haZ" userLabel="activationCodeField">
|
|
||||||
<frame key="frameInset" minX="10.13%" minY="42.38%" width="80.80%" height="30"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" red="0.85415387153625488" green="0.85412830114364624" blue="0.85414278507232666" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="26"/>
|
|
||||||
<textInputTraits key="textInputTraits" autocorrectionType="no" spellCheckingType="no" keyboardType="numberPad" returnKeyType="done"/>
|
|
||||||
</textField>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" misplaced="YES" text="We have sent you a SMS with a validation code. To complete your phone number verification, please enter the 4 digit code below:" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="8" baselineAdjustment="alignBaselines" minimumFontSize="10" id="Dvq-wa-3k8" userLabel="activateDescLabel">
|
|
||||||
<frame key="frameInset" minX="10.13%" minY="23.46%" width="80.80%" height="96"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Account setup assistant"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="13"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
<size key="shadowOffset" width="-1" height="-1"/>
|
|
||||||
</label>
|
|
||||||
<button opaque="NO" tag="130" contentMode="scaleToFill" misplaced="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="bIM-bh-Huy" userLabel="checkValidationButton" customClass="UIRoundBorderedButton">
|
|
||||||
<frame key="frameInset" minX="10.13%" minY="50.91%" width="79.73%" height="40"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Finish configuration">
|
|
||||||
<bool key="isElement" value="YES"/>
|
|
||||||
</accessibility>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
|
||||||
<state key="normal" title="LINK ACCOUNT">
|
|
||||||
<color key="titleColor" red="0.20521381499999999" green="0.20520767570000001" blue="0.2052111626" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled">
|
|
||||||
<color key="titleColor" red="0.71885228160000003" green="0.71883076430000004" blue="0.71884298319999995" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" backgroundImage="color_F.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onCheckValidationButton:" destination="-1" eventType="touchUpInside" id="v0K-hd-CHi"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</view>
|
|
||||||
<view hidden="YES" tag="8" contentMode="scaleToFill" id="J3A-Fb-Dpg" userLabel="waitView">
|
|
||||||
<frame key="frameInset" minY="-33" maxY="-33"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<activityIndicatorView opaque="NO" tag="9" contentMode="scaleToFill" animating="YES" style="gray" id="mQl-pi-5rq" userLabel="activityIndicatorView">
|
|
||||||
<frame key="frameInset" minX="50.42%" minY="49.77%" width="20" height="20"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
</activityIndicatorView>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="0.5" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<gestureRecognizers/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<point key="canvasLocation" x="235.5" y="318.5"/>
|
|
||||||
</view>
|
|
||||||
</objects>
|
|
||||||
<resources>
|
|
||||||
<image name="color_E.png" width="2" height="2"/>
|
|
||||||
<image name="color_F.png" width="2" height="2"/>
|
|
||||||
<image name="dialer_back_default.png" width="27" height="27"/>
|
|
||||||
<image name="dialer_back_disabled.png" width="27" height="27"/>
|
|
||||||
</resources>
|
|
||||||
<simulatedMetricsContainer key="defaultSimulatedMetrics">
|
|
||||||
<simulatedStatusBarMetrics key="statusBar"/>
|
|
||||||
<simulatedOrientationMetrics key="orientation"/>
|
|
||||||
<simulatedScreenMetrics key="destination" type="retina4_7.fullscreen"/>
|
|
||||||
</simulatedMetricsContainer>
|
|
||||||
</document>
|
|
||||||
Binary file not shown.
Binary file not shown.
|
|
@ -1,104 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9531" systemVersion="15C50" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
|
||||||
<dependencies>
|
|
||||||
<deployment identifier="iOS"/>
|
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9529"/>
|
|
||||||
</dependencies>
|
|
||||||
<objects>
|
|
||||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="AssistantView">
|
|
||||||
<connections>
|
|
||||||
<outlet property="backButton" destination="edC-CG-eZr" id="aXO-xT-kQ1"/>
|
|
||||||
<outlet property="contentView" destination="98" id="99"/>
|
|
||||||
<outlet property="view" destination="12" id="20"/>
|
|
||||||
<outlet property="waitView" destination="91" id="96"/>
|
|
||||||
</connections>
|
|
||||||
</placeholder>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
|
||||||
<view contentMode="scaleToFill" id="BrP-Xy-m1Y">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view contentMode="scaleToFill" id="12">
|
|
||||||
<rect key="frame" x="0.0" y="42" width="375" height="625"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view tag="2" contentMode="scaleToFill" id="Vsu-Ew-BxE" userLabel="topBar">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="3" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_F.png" id="vhv-dn-tHv" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<button opaque="NO" tag="4" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="TFl-cN-1Vb" userLabel="dialerBackButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="300" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Dialer"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="dialer_back_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="dialer_back_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onDialerClick:" destination="-1" eventType="touchUpInside" id="h0C-4C-ALM"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="5" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="ASSISTANT" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="1EG-3g-3uU" userLabel="titleLabel">
|
|
||||||
<rect key="frame" x="83" y="0.0" width="209" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="27"/>
|
|
||||||
<color key="textColor" red="1" green="0.36862745099999999" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<button opaque="NO" tag="6" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="edC-CG-eZr" userLabel="backButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Back"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="back_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="back_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onBackClick:" destination="-1" eventType="touchUpInside" id="KeZ-8e-Ci2"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
<scrollView clipsSubviews="YES" multipleTouchEnabled="YES" tag="7" contentMode="scaleToFill" bounces="NO" id="98" userLabel="contentView" customClass="TPKeyboardAvoidingScrollView">
|
|
||||||
<rect key="frame" x="0.0" y="66" width="375" height="559"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</scrollView>
|
|
||||||
<view hidden="YES" tag="8" contentMode="scaleToFill" id="91" userLabel="waitView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="625"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<activityIndicatorView opaque="NO" tag="9" contentMode="scaleToFill" animating="YES" style="gray" id="90" userLabel="activityIndicatorView">
|
|
||||||
<rect key="frame" x="179" y="302" width="20" height="20"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
</activityIndicatorView>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="1" alpha="0.5" colorSpace="calibratedWhite"/>
|
|
||||||
<gestureRecognizers/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina47"/>
|
|
||||||
<point key="canvasLocation" x="40.5" y="263.5"/>
|
|
||||||
</view>
|
|
||||||
</objects>
|
|
||||||
<resources>
|
|
||||||
<image name="back_default.png" width="24" height="21"/>
|
|
||||||
<image name="back_disabled.png" width="24" height="21"/>
|
|
||||||
<image name="color_E.png" width="2" height="2"/>
|
|
||||||
<image name="color_F.png" width="2" height="2"/>
|
|
||||||
<image name="dialer_back_default.png" width="27" height="27"/>
|
|
||||||
<image name="dialer_back_disabled.png" width="27" height="27"/>
|
|
||||||
</resources>
|
|
||||||
</document>
|
|
||||||
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1,307 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9531" systemVersion="15C50" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
|
||||||
<dependencies>
|
|
||||||
<deployment identifier="iOS"/>
|
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9529"/>
|
|
||||||
</dependencies>
|
|
||||||
<objects>
|
|
||||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="CallIncomingView">
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressLabel" destination="78f-eb-xdx" id="Qjw-7G-oqG"/>
|
|
||||||
<outlet property="avatarImage" destination="19" id="20"/>
|
|
||||||
<outlet property="landscapeView" destination="r7T-Et-xrQ" id="rA1-2K-fUf"/>
|
|
||||||
<outlet property="nameLabel" destination="hjQ-4P-bKP" id="Elh-o8-zM9"/>
|
|
||||||
<outlet property="portraitView" destination="25" id="6Gy-ZX-kTl"/>
|
|
||||||
<outlet property="tabBar" destination="4" id="9gd-FT-jaI"/>
|
|
||||||
<outlet property="tabVideoBar" destination="vIQ-QP-ooa" id="JZq-9l-pOy"/>
|
|
||||||
<outlet property="view" destination="25" id="26"/>
|
|
||||||
</connections>
|
|
||||||
</placeholder>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
|
||||||
<view contentMode="scaleToFill" id="6e0-76-KvA" userLabel="iphone6MetricsView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view tag="1" contentMode="scaleToFill" id="25">
|
|
||||||
<rect key="frame" x="0.0" y="42" width="375" height="625"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="3" contentMode="scaleAspectFit" image="avatar.png" id="19" userLabel="avatarImage" customClass="UIRoundedImageView">
|
|
||||||
<rect key="frame" x="87" y="276" width="200" height="200"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Contact avatar">
|
|
||||||
<accessibilityTraits key="traits" image="YES" notEnabled="YES"/>
|
|
||||||
<bool key="isElement" value="YES"/>
|
|
||||||
</accessibility>
|
|
||||||
</imageView>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="5" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="john.doe@sip.linphone.org" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="8" id="78f-eb-xdx" userLabel="addressLabel">
|
|
||||||
<rect key="frame" x="0.0" y="209" width="375" height="34"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="18"/>
|
|
||||||
<color key="textColor" red="1" green="0.36862745099999999" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="4" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="John Doe" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="19" id="hjQ-4P-bKP" userLabel="nameLabel">
|
|
||||||
<rect key="frame" x="0.0" y="149" width="375" height="52"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="33"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<button opaque="NO" tag="2" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="Cro-ww-VIC" userLabel="headerBar">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration">
|
|
||||||
<accessibilityTraits key="traits" button="YES" notEnabled="YES"/>
|
|
||||||
</accessibility>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="27"/>
|
|
||||||
<state key="normal" title="INCOMING CALL" backgroundImage="color_F.png">
|
|
||||||
<color key="titleColor" red="1" green="0.36862745099999999" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
</button>
|
|
||||||
<view tag="6" contentMode="scaleToFill" id="4" userLabel="tabBar">
|
|
||||||
<rect key="frame" x="0.0" y="562" width="375" height="63"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<button opaque="NO" tag="7" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="6" userLabel="declineButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="188" height="63"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Decline"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<state key="normal" image="call_hangup_default.png" backgroundImage="color_D.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="call_hangup_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_I.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onDeclineClick:" destination="-1" eventType="touchUpInside" id="16"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="8" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="7" userLabel="acceptButton">
|
|
||||||
<rect key="frame" x="187" y="0.0" width="188" height="63"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Accept"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<state key="normal" image="call_audio_start_default.png" backgroundImage="color_A.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="call_audio_start_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_L.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onAcceptClick:" destination="-1" eventType="touchUpInside" id="15"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="0.36862745099999999" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</view>
|
|
||||||
<view hidden="YES" tag="9" contentMode="scaleToFill" id="vIQ-QP-ooa" userLabel="tabVideoBar">
|
|
||||||
<rect key="frame" x="0.0" y="562" width="375" height="63"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<button opaque="NO" tag="10" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="KnH-hj-g47" userLabel="declineButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="125" height="63"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Decline"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<state key="normal" image="call_hangup_default.png" backgroundImage="color_D.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="call_hangup_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_I.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onDeclineClick:" destination="-1" eventType="touchUpInside" id="Nrs-UR-Hb9"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="11" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="wYo-ty-Rwk" userLabel="acceptAudioOnlyButton">
|
|
||||||
<rect key="frame" x="125" y="0.0" width="125" height="63"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Accept"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<state key="normal" image="call_audio_start_default.png" backgroundImage="color_A.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="call_audio_start_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_L.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onAcceptAudioOnlyClick:" destination="-1" eventType="touchUpInside" id="N9h-i1-ejZ"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="12" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="tX0-eE-di5" userLabel="acceptButton">
|
|
||||||
<rect key="frame" x="250" y="0.0" width="125" height="63"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Accept"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<state key="normal" image="call_video_start_default.png" backgroundImage="color_A.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="call_video_start_disabled.png"/>
|
|
||||||
<state key="selected" image="call_video_start_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_L.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onAcceptClick:" destination="-1" eventType="touchUpInside" id="XvK-9T-J2j"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="0.36862745099999999" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina47"/>
|
|
||||||
<point key="canvasLocation" x="-88.5" y="47.5"/>
|
|
||||||
</view>
|
|
||||||
<view contentMode="scaleToFill" id="Znq-C0-ZAc" userLabel="iphone6MetricsView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="667" height="375"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view tag="1" contentMode="scaleToFill" id="r7T-Et-xrQ">
|
|
||||||
<rect key="frame" x="0.0" y="42" width="667" height="333"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<button opaque="NO" tag="2" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="E9b-qt-GBq" userLabel="headerBar">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="667" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration">
|
|
||||||
<accessibilityTraits key="traits" button="YES" notEnabled="YES"/>
|
|
||||||
</accessibility>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="27"/>
|
|
||||||
<state key="normal" title="INCOMING CALL" backgroundImage="color_F.png">
|
|
||||||
<color key="titleColor" red="1" green="0.36862745099999999" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
</button>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="5" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="john.doe@sip.linphone.org" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="8" id="tsb-6p-cAk" userLabel="addressLabel">
|
|
||||||
<rect key="frame" x="298" y="166" width="369" height="33"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="18"/>
|
|
||||||
<color key="textColor" red="1" green="0.36862745099999999" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="4" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="John Doe" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="19" id="WsB-At-ejv" userLabel="nameLabel">
|
|
||||||
<rect key="frame" x="298" y="121" width="369" height="37"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="33"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<view tag="6" contentMode="scaleToFill" id="0Tc-7G-eqT" userLabel="tabBar">
|
|
||||||
<rect key="frame" x="0.0" y="270" width="667" height="63"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<button opaque="NO" tag="7" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="qpN-iY-3Ao" userLabel="declineButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="334" height="63"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Decline"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<state key="normal" image="call_hangup_default.png" backgroundImage="color_D.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="call_hangup_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_I.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onDeclineClick:" destination="-1" eventType="touchUpInside" id="JKz-8y-c9T"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="8" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="8dX-3c-mba" userLabel="acceptButton">
|
|
||||||
<rect key="frame" x="333" y="0.0" width="334" height="63"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Accept"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<state key="normal" image="call_audio_start_default.png" backgroundImage="color_A.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="call_audio_start_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_L.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onAcceptClick:" destination="-1" eventType="touchUpInside" id="17v-kE-yOu"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="0.36862745099999999" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</view>
|
|
||||||
<view hidden="YES" tag="9" contentMode="scaleToFill" id="PPE-Fd-wDf" userLabel="tabVideoBar">
|
|
||||||
<rect key="frame" x="0.0" y="270" width="667" height="63"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<button opaque="NO" tag="10" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="i8b-dr-IYG" userLabel="declineButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="222" height="63"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Decline"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<state key="normal" image="call_hangup_default.png" backgroundImage="color_D.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="call_hangup_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_I.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onDeclineClick:" destination="-1" eventType="touchUpInside" id="mjN-BB-4ph"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="11" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="QYg-9G-We0" userLabel="acceptAudioOnlyButton">
|
|
||||||
<rect key="frame" x="222" y="0.0" width="223" height="63"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Accept"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<state key="normal" image="call_audio_start_default.png" backgroundImage="color_A.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="call_audio_start_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_L.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onAcceptAudioOnlyClick:" destination="-1" eventType="touchUpInside" id="veh-c0-GOe"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="12" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="sbd-NW-OZx" userLabel="acceptButton">
|
|
||||||
<rect key="frame" x="445" y="0.0" width="222" height="63"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Accept"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<state key="normal" image="call_video_start_default.png" backgroundImage="color_A.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="call_video_start_disabled.png"/>
|
|
||||||
<state key="selected" image="call_video_start_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_L.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onAcceptClick:" destination="-1" eventType="touchUpInside" id="RLl-y6-yhs"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="0.36862745099999999" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</view>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="3" contentMode="scaleAspectFit" image="avatar.png" id="Q0C-CO-AYR" userLabel="avatarImage" customClass="UIRoundedImageView">
|
|
||||||
<rect key="frame" x="110" y="74" width="180" height="180"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Contact avatar">
|
|
||||||
<accessibilityTraits key="traits" image="YES" notEnabled="YES"/>
|
|
||||||
<bool key="isElement" value="YES"/>
|
|
||||||
</accessibility>
|
|
||||||
</imageView>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
|
|
||||||
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina47"/>
|
|
||||||
<point key="canvasLocation" x="476.5" y="-98.5"/>
|
|
||||||
</view>
|
|
||||||
</objects>
|
|
||||||
<resources>
|
|
||||||
<image name="avatar.png" width="1271" height="1271"/>
|
|
||||||
<image name="call_audio_start_default.png" width="36" height="36"/>
|
|
||||||
<image name="call_audio_start_disabled.png" width="36" height="36"/>
|
|
||||||
<image name="call_hangup_default.png" width="41" height="36"/>
|
|
||||||
<image name="call_hangup_disabled.png" width="41" height="36"/>
|
|
||||||
<image name="call_video_start_default.png" width="39" height="36"/>
|
|
||||||
<image name="call_video_start_disabled.png" width="39" height="36"/>
|
|
||||||
<image name="color_A.png" width="2" height="2"/>
|
|
||||||
<image name="color_D.png" width="2" height="2"/>
|
|
||||||
<image name="color_F.png" width="2" height="2"/>
|
|
||||||
<image name="color_I.png" width="2" height="2"/>
|
|
||||||
<image name="color_L.png" width="2" height="2"/>
|
|
||||||
</resources>
|
|
||||||
</document>
|
|
||||||
Binary file not shown.
|
|
@ -1,416 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9531" systemVersion="15D21" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
|
||||||
<dependencies>
|
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9529"/>
|
|
||||||
</dependencies>
|
|
||||||
<objects>
|
|
||||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="CallOutgoingView">
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressLabel" destination="2fa-Ag-3GW" id="2Oe-UW-rPC"/>
|
|
||||||
<outlet property="avatarImage" destination="bNo-O5-DWh" id="eqo-0s-UoN"/>
|
|
||||||
<outlet property="landscapeView" destination="Czn-ec-dh8" id="ZIk-2g-9Qk"/>
|
|
||||||
<outlet property="microButton" destination="26e-Pj-2Oh" id="jXh-0n-yg7"/>
|
|
||||||
<outlet property="nameLabel" destination="d5s-yP-8VE" id="0VY-HP-ovD"/>
|
|
||||||
<outlet property="portraitView" destination="25" id="26I-da-00C"/>
|
|
||||||
<outlet property="routesBluetoothButton" destination="SH1-xD-Agw" id="ifX-Dy-Tcb"/>
|
|
||||||
<outlet property="routesButton" destination="29K-Sd-aHF" id="MVM-Mb-OWE"/>
|
|
||||||
<outlet property="routesEarpieceButton" destination="zs4-Zy-FrP" id="TOt-D3-635"/>
|
|
||||||
<outlet property="routesSpeakerButton" destination="oKz-6p-EAF" id="yIx-qF-Gd7"/>
|
|
||||||
<outlet property="routesView" destination="iyf-nk-ORJ" id="LBJ-Rm-VUX"/>
|
|
||||||
<outlet property="speakerButton" destination="G7m-Av-QlR" id="UHW-L2-NDM"/>
|
|
||||||
<outlet property="view" destination="25" id="26"/>
|
|
||||||
</connections>
|
|
||||||
</placeholder>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
|
||||||
<view contentMode="scaleToFill" id="HpM-if-114" userLabel="iphone6MetricsView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view tag="1" contentMode="scaleToFill" id="25">
|
|
||||||
<rect key="frame" x="0.0" y="42" width="375" height="625"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<button opaque="NO" tag="2" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="NFl-sb-0TV" userLabel="headerBar">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration">
|
|
||||||
<accessibilityTraits key="traits" button="YES" notEnabled="YES"/>
|
|
||||||
</accessibility>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="27"/>
|
|
||||||
<state key="normal" title="OUTGOING CALL" backgroundImage="color_F.png">
|
|
||||||
<color key="titleColor" red="1" green="0.36862745099999999" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
</button>
|
|
||||||
<view hidden="YES" tag="37" contentMode="scaleToFill" id="iyf-nk-ORJ" userLabel="routesView">
|
|
||||||
<rect key="frame" x="282" y="364" width="94" height="198"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="38" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_F.png" id="xEp-Iw-uII" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="94" height="198"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<button opaque="NO" tag="39" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="SH1-xD-Agw" userLabel="routesBluetoothButton" customClass="UIBluetoothButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="94" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Bluetooth"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="13"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="28" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="route_bluetooth_default.png">
|
|
||||||
<color key="titleColor" red="0.25490196079999999" green="0.28235294119999998" blue="0.30980392159999998" alpha="1" colorSpace="deviceRGB"/>
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="route_bluetooth_disabled.png">
|
|
||||||
<color key="titleColor" red="0.65098039220000004" green="0.70196078429999997" blue="0.74901960779999999" alpha="1" colorSpace="deviceRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="selected" image="route_bluetooth_selected.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png">
|
|
||||||
<color key="titleColor" red="0.81176470590000005" green="0.29803921570000003" blue="0.16078431369999999" alpha="1" colorSpace="deviceRGB"/>
|
|
||||||
</state>
|
|
||||||
<connections>
|
|
||||||
<action selector="onRoutesBluetoothClick:" destination="-1" eventType="touchUpInside" id="0bq-3n-xii"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="40" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="zs4-Zy-FrP" userLabel="routesEarpieceButton">
|
|
||||||
<rect key="frame" x="0.0" y="66" width="94" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Receiver"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="13"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="28" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="route_earpiece_default.png">
|
|
||||||
<color key="titleColor" red="0.25490196079999999" green="0.28235294119999998" blue="0.30980392159999998" alpha="1" colorSpace="deviceRGB"/>
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="route_earpiece_disabled.png">
|
|
||||||
<color key="titleColor" red="0.65098039220000004" green="0.70196078429999997" blue="0.74901960779999999" alpha="1" colorSpace="deviceRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="selected" image="route_earpiece_selected.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png">
|
|
||||||
<color key="titleColor" red="0.81176470590000005" green="0.29803921570000003" blue="0.16078431369999999" alpha="1" colorSpace="deviceRGB"/>
|
|
||||||
</state>
|
|
||||||
<connections>
|
|
||||||
<action selector="onRoutesEarpieceClick:" destination="-1" eventType="touchUpInside" id="YRr-Kn-GgV"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="41" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="oKz-6p-EAF" userLabel="routesSpeakerButton" customClass="UISpeakerButton">
|
|
||||||
<rect key="frame" x="0.0" y="132" width="94" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Speaker"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="13"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="28" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="route_speaker_default.png">
|
|
||||||
<color key="titleColor" red="0.25490196079999999" green="0.28235294119999998" blue="0.30980392159999998" alpha="1" colorSpace="deviceRGB"/>
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="route_speaker_disabled.png">
|
|
||||||
<color key="titleColor" red="0.65098039220000004" green="0.70196078429999997" blue="0.74901960779999999" alpha="1" colorSpace="deviceRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="selected" image="route_speaker_selected.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png">
|
|
||||||
<color key="titleColor" red="0.81176470590000005" green="0.29803921570000003" blue="0.16078431369999999" alpha="1" colorSpace="deviceRGB"/>
|
|
||||||
</state>
|
|
||||||
<connections>
|
|
||||||
<action selector="onRoutesSpeakerClick:" destination="-1" eventType="touchUpInside" id="g4L-6P-Iqw"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
<view tag="7" contentMode="scaleToFill" id="8Qi-Cq-3XH" userLabel="tabBar">
|
|
||||||
<rect key="frame" x="0.0" y="562" width="375" height="63"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="8" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_F.png" id="vyh-Us-8kj" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="63"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<button opaque="NO" tag="11" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="AaM-cH-pvW" userLabel="declineButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="188" height="63"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Decline"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<state key="normal" image="call_hangup_default.png" backgroundImage="color_D.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="call_hangup_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_I.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onDeclineClick:" destination="-1" eventType="touchUpInside" id="Ebl-hM-8F9"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="9" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="26e-Pj-2Oh" userLabel="microButton" customClass="UIMutedMicroButton">
|
|
||||||
<rect key="frame" x="188" y="0.0" width="94" height="63"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Accept"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<state key="normal" image="micro_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="micro_disabled.png"/>
|
|
||||||
<state key="selected" image="micro_selected.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
</button>
|
|
||||||
<button hidden="YES" opaque="NO" tag="54" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="29K-Sd-aHF" userLabel="routesButton" customClass="UIToggleButton">
|
|
||||||
<rect key="frame" x="282" y="0.0" width="94" height="63"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Route"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="38" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="routes_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="routes_disabled.png"/>
|
|
||||||
<state key="selected" image="routes_selected.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onRoutesClick:" destination="-1" eventType="touchUpInside" id="hXX-8a-7M4"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="10" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="G7m-Av-QlR" userLabel="speakerButton" customClass="UISpeakerButton">
|
|
||||||
<rect key="frame" x="282" y="0.0" width="94" height="63"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Accept"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<state key="normal" image="speaker_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="speaker_disabled.png"/>
|
|
||||||
<state key="selected" image="speaker_selected.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
|
||||||
</view>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="5" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="john.doe@sip.linphone.org" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" id="2fa-Ag-3GW" userLabel="addressLabel">
|
|
||||||
<rect key="frame" x="4" y="206" width="367" height="34"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="18"/>
|
|
||||||
<color key="textColor" red="1" green="0.36862745099999999" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="4" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="John Doe" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" id="d5s-yP-8VE" userLabel="nameLabel">
|
|
||||||
<rect key="frame" x="0.0" y="152" width="375" height="52"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="33"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="6" contentMode="scaleAspectFit" image="avatar.png" id="bNo-O5-DWh" userLabel="avatarImage" customClass="UIRoundedImageView">
|
|
||||||
<rect key="frame" x="87" y="274" width="200" height="200"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Contact avatar">
|
|
||||||
<accessibilityTraits key="traits" image="YES" notEnabled="YES"/>
|
|
||||||
<bool key="isElement" value="YES"/>
|
|
||||||
</accessibility>
|
|
||||||
</imageView>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina47"/>
|
|
||||||
<point key="canvasLocation" x="29.5" y="166.5"/>
|
|
||||||
</view>
|
|
||||||
<view contentMode="scaleToFill" id="YAs-im-wvR" userLabel="iphone6MetricsView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="667" height="375"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view tag="1" contentMode="scaleToFill" id="Czn-ec-dh8">
|
|
||||||
<rect key="frame" x="0.0" y="42" width="667" height="333"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<button opaque="NO" tag="2" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="oAv-Cz-FaR" userLabel="headerBar">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="667" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration">
|
|
||||||
<accessibilityTraits key="traits" button="YES" notEnabled="YES"/>
|
|
||||||
</accessibility>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="27"/>
|
|
||||||
<state key="normal" title="OUTGOING CALL" backgroundImage="color_F.png">
|
|
||||||
<color key="titleColor" red="1" green="0.36862745099999999" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
</button>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="5" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="john.doe@sip.linphone.org" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="8" id="Fj8-Pu-ShI" userLabel="addressLabel">
|
|
||||||
<rect key="frame" x="298" y="166" width="368" height="33"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="18"/>
|
|
||||||
<color key="textColor" red="1" green="0.36862745099999999" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="4" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="John Doe" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="19" id="ubQ-ZN-AhT" userLabel="nameLabel">
|
|
||||||
<rect key="frame" x="298" y="121" width="369" height="37"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="33"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="6" contentMode="scaleAspectFit" image="avatar.png" id="1ZH-n6-QZ0" userLabel="avatarImage" customClass="UIRoundedImageView">
|
|
||||||
<rect key="frame" x="110" y="74" width="180" height="180"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Contact avatar">
|
|
||||||
<accessibilityTraits key="traits" image="YES" notEnabled="YES"/>
|
|
||||||
<bool key="isElement" value="YES"/>
|
|
||||||
</accessibility>
|
|
||||||
</imageView>
|
|
||||||
<view hidden="YES" tag="37" contentMode="scaleToFill" id="EaW-SR-bqv" userLabel="routesView">
|
|
||||||
<rect key="frame" x="501" y="72" width="167" height="198"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="38" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_F.png" id="Tvo-Jg-0h8" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="167" height="198"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<button opaque="NO" tag="39" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="N7s-YH-dJQ" userLabel="routesBluetoothButton" customClass="UIBluetoothButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="167" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Bluetooth"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="13"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="28" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="route_bluetooth_default.png">
|
|
||||||
<color key="titleColor" red="0.25490196079999999" green="0.28235294119999998" blue="0.30980392159999998" alpha="1" colorSpace="deviceRGB"/>
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="route_bluetooth_disabled.png">
|
|
||||||
<color key="titleColor" red="0.65098039220000004" green="0.70196078429999997" blue="0.74901960779999999" alpha="1" colorSpace="deviceRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="selected" image="route_bluetooth_selected.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png">
|
|
||||||
<color key="titleColor" red="0.81176470590000005" green="0.29803921570000003" blue="0.16078431369999999" alpha="1" colorSpace="deviceRGB"/>
|
|
||||||
</state>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="40" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="bg7-Cv-tyO" userLabel="routesEarpieceButton">
|
|
||||||
<rect key="frame" x="0.0" y="66" width="167" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Receiver"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="13"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="28" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="route_earpiece_default.png">
|
|
||||||
<color key="titleColor" red="0.25490196079999999" green="0.28235294119999998" blue="0.30980392159999998" alpha="1" colorSpace="deviceRGB"/>
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="route_earpiece_disabled.png">
|
|
||||||
<color key="titleColor" red="0.65098039220000004" green="0.70196078429999997" blue="0.74901960779999999" alpha="1" colorSpace="deviceRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="selected" image="route_earpiece_selected.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png">
|
|
||||||
<color key="titleColor" red="0.81176470590000005" green="0.29803921570000003" blue="0.16078431369999999" alpha="1" colorSpace="deviceRGB"/>
|
|
||||||
</state>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="41" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="yd8-ed-g8u" userLabel="routesSpeakerButton" customClass="UISpeakerButton">
|
|
||||||
<rect key="frame" x="0.0" y="132" width="167" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Speaker"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="13"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="28" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="route_speaker_default.png">
|
|
||||||
<color key="titleColor" red="0.25490196079999999" green="0.28235294119999998" blue="0.30980392159999998" alpha="1" colorSpace="deviceRGB"/>
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="route_speaker_disabled.png">
|
|
||||||
<color key="titleColor" red="0.65098039220000004" green="0.70196078429999997" blue="0.74901960779999999" alpha="1" colorSpace="deviceRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="selected" image="route_speaker_selected.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png">
|
|
||||||
<color key="titleColor" red="0.81176470590000005" green="0.29803921570000003" blue="0.16078431369999999" alpha="1" colorSpace="deviceRGB"/>
|
|
||||||
</state>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
<view tag="7" contentMode="scaleToFill" id="vJ1-A8-eFV" userLabel="tabBar">
|
|
||||||
<rect key="frame" x="0.0" y="270" width="667" height="63"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="8" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_F.png" id="eYb-yI-yVB" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="667" height="63"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<button opaque="NO" tag="11" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="jfG-HJ-FPI" userLabel="declineButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="334" height="63"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Decline"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<state key="normal" image="call_hangup_default.png" backgroundImage="color_D.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="call_hangup_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_I.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onDeclineClick:" destination="-1" eventType="touchUpInside" id="voJ-Cd-XHg"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="9" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="jLg-1u-ulZ" userLabel="microButton" customClass="UIMutedMicroButton">
|
|
||||||
<rect key="frame" x="334" y="0.0" width="167" height="63"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Accept"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<state key="normal" image="micro_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="micro_disabled.png"/>
|
|
||||||
<state key="selected" image="micro_selected.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
</button>
|
|
||||||
<button hidden="YES" opaque="NO" tag="54" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="61B-DK-jZ6" userLabel="routesButton" customClass="UIToggleButton">
|
|
||||||
<rect key="frame" x="501" y="0.0" width="167" height="63"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Route"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="38" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="routes_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="routes_disabled.png"/>
|
|
||||||
<state key="selected" image="routes_selected.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="10" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="5CY-aN-NLX" userLabel="speakerButton" customClass="UISpeakerButton">
|
|
||||||
<rect key="frame" x="501" y="0.0" width="167" height="63"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Accept"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<state key="normal" image="speaker_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="speaker_disabled.png"/>
|
|
||||||
<state key="selected" image="speaker_selected.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
|
|
||||||
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina47"/>
|
|
||||||
<point key="canvasLocation" x="346.5" y="59.5"/>
|
|
||||||
</view>
|
|
||||||
</objects>
|
|
||||||
<resources>
|
|
||||||
<image name="avatar.png" width="1271" height="1271"/>
|
|
||||||
<image name="call_hangup_default.png" width="41" height="36"/>
|
|
||||||
<image name="call_hangup_disabled.png" width="41" height="36"/>
|
|
||||||
<image name="color_D.png" width="2" height="2"/>
|
|
||||||
<image name="color_E.png" width="2" height="2"/>
|
|
||||||
<image name="color_F.png" width="2" height="2"/>
|
|
||||||
<image name="color_I.png" width="2" height="2"/>
|
|
||||||
<image name="micro_default.png" width="29" height="37"/>
|
|
||||||
<image name="micro_disabled.png" width="29" height="37"/>
|
|
||||||
<image name="micro_selected.png" width="29" height="37"/>
|
|
||||||
<image name="route_bluetooth_default.png" width="16" height="25"/>
|
|
||||||
<image name="route_bluetooth_disabled.png" width="16" height="25"/>
|
|
||||||
<image name="route_bluetooth_selected.png" width="16" height="25"/>
|
|
||||||
<image name="route_earpiece_default.png" width="23" height="24"/>
|
|
||||||
<image name="route_earpiece_disabled.png" width="23" height="24"/>
|
|
||||||
<image name="route_earpiece_selected.png" width="23" height="24"/>
|
|
||||||
<image name="route_speaker_default.png" width="27" height="25"/>
|
|
||||||
<image name="route_speaker_disabled.png" width="27" height="25"/>
|
|
||||||
<image name="route_speaker_selected.png" width="27" height="25"/>
|
|
||||||
<image name="routes_default.png" width="37" height="25"/>
|
|
||||||
<image name="routes_disabled.png" width="37" height="25"/>
|
|
||||||
<image name="routes_selected.png" width="37" height="25"/>
|
|
||||||
<image name="speaker_default.png" width="27" height="25"/>
|
|
||||||
<image name="speaker_disabled.png" width="27" height="25"/>
|
|
||||||
<image name="speaker_selected.png" width="27" height="25"/>
|
|
||||||
</resources>
|
|
||||||
</document>
|
|
||||||
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
|
|
@ -1,193 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14109" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" colorMatched="YES">
|
|
||||||
<device id="retina4_7" orientation="portrait">
|
|
||||||
<adaptation id="fullscreen"/>
|
|
||||||
</device>
|
|
||||||
<dependencies>
|
|
||||||
<deployment identifier="iOS"/>
|
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
|
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
|
||||||
</dependencies>
|
|
||||||
<objects>
|
|
||||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="ChatConversationCreateView">
|
|
||||||
<connections>
|
|
||||||
<outlet property="allButton" destination="r3z-SM-lMq" id="DUC-gQ-gKu"/>
|
|
||||||
<outlet property="backButton" destination="fNt-yb-wsf" id="3Xj-Dv-LmO"/>
|
|
||||||
<outlet property="collectionView" destination="KRQ-Fm-3cQ" id="otM-cN-lEg"/>
|
|
||||||
<outlet property="linphoneButton" destination="8lQ-fv-INK" id="zaP-UT-K4y"/>
|
|
||||||
<outlet property="nextButton" destination="rBc-dQ-eIj" id="QHB-Xp-PTA"/>
|
|
||||||
<outlet property="selectedButtonImage" destination="ibu-Ra-oZO" id="jvl-ay-cfh"/>
|
|
||||||
<outlet property="tableController" destination="4" id="18"/>
|
|
||||||
<outlet property="view" destination="5" id="14"/>
|
|
||||||
<outlet property="waitView" destination="Ztm-hK-aBp" id="qYh-M5-heN"/>
|
|
||||||
</connections>
|
|
||||||
</placeholder>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
|
||||||
<view contentMode="scaleToFill" id="WKv-mw-S2B" userLabel="iphone6MetricsView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="5">
|
|
||||||
<rect key="frame" x="0.0" y="42" width="375" height="559"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="7" userLabel="topBar">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="color_F.png" translatesAutoresizingMaskIntoConstraints="NO" id="jVg-vj-VOw" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<view contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="d5Q-XR-FNz" userLabel="switchView">
|
|
||||||
<rect key="frame" x="112" y="0.0" width="150" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="r3z-SM-lMq" userLabel="allButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="All contacts filter"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="9"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="-38" minY="15" maxX="0.0" maxY="0.0"/>
|
|
||||||
<inset key="imageEdgeInsets" minX="16" minY="0.0" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="contacts_all_default.png">
|
|
||||||
<color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="contacts_all_disabled.png"/>
|
|
||||||
<state key="selected" image="contacts_all_selected.png">
|
|
||||||
<color key="titleColor" red="0.98766469960000003" green="0.27512490750000002" blue="0.029739789660000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onAllClick:" destination="-1" eventType="touchUpInside" id="TG9-Df-iTU"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="color_A.png" translatesAutoresizingMaskIntoConstraints="NO" id="ibu-Ra-oZO" userLabel="selectedButtonImage">
|
|
||||||
<rect key="frame" x="0.0" y="63" width="75" height="3"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="8lQ-fv-INK" userLabel="sipButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="75" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Linphone contacts filter"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="9"/>
|
|
||||||
<state key="normal" image="contacts_sip_default.png">
|
|
||||||
<color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="contacts_sip_disabled.png"/>
|
|
||||||
<state key="selected" image="contacts_sip_selected.png">
|
|
||||||
<color key="titleColor" red="0.98766469960000003" green="0.27512490750000002" blue="0.029739789660000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onLinphoneClick:" destination="-1" eventType="touchUpInside" id="wNL-jl-TU6"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="fNt-yb-wsf" userLabel="backButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Back"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="back_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="back_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onBackClick:" destination="-1" eventType="touchUpInside" id="463-Qr-hJG"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="rBc-dQ-eIj" userLabel="nextButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="300" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Back">
|
|
||||||
<bool key="isElement" value="YES"/>
|
|
||||||
</accessibility>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="next_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="next_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onNextClick:" destination="-1" eventType="touchUpInside" id="yFF-js-mRx"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
<view contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="KRQ-Fm-3cQ" userLabel="addedContacts" customClass="UICollectionView">
|
|
||||||
<rect key="frame" x="8" y="110" width="359" height="70"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="addedContacts"/>
|
|
||||||
</view>
|
|
||||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" fixedFrame="YES" alwaysBounceVertical="YES" style="plain" separatorStyle="default" allowsSelectionDuringEditing="YES" allowsMultipleSelectionDuringEditing="YES" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" translatesAutoresizingMaskIntoConstraints="NO" id="6">
|
|
||||||
<rect key="frame" x="5" y="178" width="365" height="381"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<color key="separatorColor" red="0.67030966281890869" green="0.71867996454238892" blue="0.75078284740447998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="dataSource" destination="4" id="11"/>
|
|
||||||
<outlet property="delegate" destination="4" id="12"/>
|
|
||||||
</connections>
|
|
||||||
</tableView>
|
|
||||||
<searchBar contentMode="redraw" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Rd9-hK-nqR" userLabel="Contact address">
|
|
||||||
<rect key="frame" x="0.0" y="66" width="375" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<textInputTraits key="textInputTraits" autocorrectionType="no" spellCheckingType="no"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="delegate" destination="4" id="MJr-oP-Hib"/>
|
|
||||||
</connections>
|
|
||||||
</searchBar>
|
|
||||||
<view hidden="YES" tag="8" contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Ztm-hK-aBp" userLabel="waitView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="559"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<activityIndicatorView opaque="NO" tag="9" contentMode="scaleToFill" fixedFrame="YES" animating="YES" style="gray" translatesAutoresizingMaskIntoConstraints="NO" id="nqH-qD-vgE" userLabel="activityIndicatorView">
|
|
||||||
<rect key="frame" x="179" y="267" width="20" height="20"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
</activityIndicatorView>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<gestureRecognizers/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<point key="canvasLocation" x="33.5" y="89.5"/>
|
|
||||||
</view>
|
|
||||||
<tableViewController autoresizesArchivedViewToFullSize="NO" id="4" userLabel="Suggested addresses" customClass="ChatConversationCreateTableView">
|
|
||||||
<extendedEdge key="edgesForExtendedLayout"/>
|
|
||||||
<nil key="simulatedStatusBarMetrics"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="searchBar" destination="Rd9-hK-nqR" id="rLn-7q-CwC"/>
|
|
||||||
<outlet property="view" destination="6" id="13"/>
|
|
||||||
<outlet property="waitView" destination="Ztm-hK-aBp" id="uSB-4b-n7e"/>
|
|
||||||
</connections>
|
|
||||||
<point key="canvasLocation" x="463" y="90"/>
|
|
||||||
</tableViewController>
|
|
||||||
</objects>
|
|
||||||
<resources>
|
|
||||||
<image name="back_default.png" width="24" height="22"/>
|
|
||||||
<image name="back_disabled.png" width="24" height="22"/>
|
|
||||||
<image name="color_A.png" width="2" height="2"/>
|
|
||||||
<image name="color_E.png" width="2" height="2"/>
|
|
||||||
<image name="color_F.png" width="2" height="2"/>
|
|
||||||
<image name="contacts_all_default.png" width="32" height="27"/>
|
|
||||||
<image name="contacts_all_disabled.png" width="32" height="27"/>
|
|
||||||
<image name="contacts_all_selected.png" width="32" height="27"/>
|
|
||||||
<image name="contacts_sip_default.png" width="39" height="39"/>
|
|
||||||
<image name="contacts_sip_disabled.png" width="38" height="30"/>
|
|
||||||
<image name="contacts_sip_selected.png" width="39" height="39"/>
|
|
||||||
<image name="next_default.png" width="24" height="22"/>
|
|
||||||
<image name="next_disabled.png" width="24" height="22"/>
|
|
||||||
</resources>
|
|
||||||
</document>
|
|
||||||
Binary file not shown.
|
|
@ -1,128 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14109" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
|
|
||||||
<device id="retina4_7" orientation="portrait">
|
|
||||||
<adaptation id="fullscreen"/>
|
|
||||||
</device>
|
|
||||||
<dependencies>
|
|
||||||
<deployment identifier="iOS"/>
|
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
|
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
|
||||||
</dependencies>
|
|
||||||
<objects>
|
|
||||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="ChatConversationImdnView">
|
|
||||||
<connections>
|
|
||||||
<outlet property="msgAvatarImage" destination="LGG-kB-TaR" id="U4L-qV-ea2"/>
|
|
||||||
<outlet property="msgBackgroundColorImage" destination="wJQ-zl-d5O" id="D3d-vT-rFx"/>
|
|
||||||
<outlet property="msgBottomBar" destination="Mxm-1h-7dz" id="wS1-AL-B5M"/>
|
|
||||||
<outlet property="msgDateLabel" destination="jaE-4d-bbo" id="W3u-tE-pGo"/>
|
|
||||||
<outlet property="msgText" destination="V21-2s-obu" id="iTL-AZ-o7h"/>
|
|
||||||
<outlet property="msgView" destination="VK8-0e-Hsa" id="sWi-sR-kan"/>
|
|
||||||
<outlet property="tableView" destination="HjO-C8-Itr" id="cuC-QY-xbT"/>
|
|
||||||
<outlet property="view" destination="1g1-pp-Uhi" id="Km4-Mj-txf"/>
|
|
||||||
</connections>
|
|
||||||
</placeholder>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
|
||||||
<view contentMode="scaleToFill" id="1g1-pp-Uhi" userLabel="iphone6MetricsView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="7Tm-Jz-Rvb">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view contentMode="scaleToFill" fixedFrame="YES" insetsLayoutMarginsFromSafeArea="NO" translatesAutoresizingMaskIntoConstraints="NO" id="X8x-9L-bCY" userLabel="topBar">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="color_F.png" translatesAutoresizingMaskIntoConstraints="NO" id="oDU-Wj-g7Q" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="5" contentMode="left" fixedFrame="YES" text="Delivery status" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="bc0-Ql-lPE" userLabel="addressLabel">
|
|
||||||
<rect key="frame" x="112" y="0.0" width="150" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Contact name">
|
|
||||||
<accessibilityTraits key="traits" none="YES"/>
|
|
||||||
</accessibility>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="22"/>
|
|
||||||
<color key="textColor" red="0.33333333329999998" green="0.33333333329999998" blue="0.33333333329999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="JYS-Be-ffH" userLabel="backButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Back"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="back_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="back_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onBackClick:" destination="-1" eventType="touchUpInside" id="7Fg-hr-OL1"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
<view clipsSubviews="YES" contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="VK8-0e-Hsa" userLabel="msgView">
|
|
||||||
<rect key="frame" x="8" y="74" width="359" height="89"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" alpha="0.20000000298023224" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="color_A.png" translatesAutoresizingMaskIntoConstraints="NO" id="wJQ-zl-d5O" userLabel="backgroundColorImage">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="359" height="89"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" fixedFrame="YES" image="avatar.png" translatesAutoresizingMaskIntoConstraints="NO" id="LGG-kB-TaR" userLabel="avatarImage" customClass="UIRoundedImageView">
|
|
||||||
<rect key="frame" x="7" y="7" width="40" height="40"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Contact avatar">
|
|
||||||
<accessibilityTraits key="traits" image="YES" notEnabled="YES"/>
|
|
||||||
<bool key="isElement" value="YES"/>
|
|
||||||
</accessibility>
|
|
||||||
</imageView>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" fixedFrame="YES" text="11:35 John Doe" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="jaE-4d-bbo" userLabel="contactDateLabel">
|
|
||||||
<rect key="frame" x="55" y="8" width="279" height="14"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Contact name"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
|
||||||
<color key="textColor" red="0.98766469960000003" green="0.27512490750000002" blue="0.029739789660000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="color_A.png" translatesAutoresizingMaskIntoConstraints="NO" id="Mxm-1h-7dz" userLabel="bottomBarColor">
|
|
||||||
<rect key="frame" x="0.0" y="88" width="359" height="1"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<textView clipsSubviews="YES" contentMode="scaleToFill" fixedFrame="YES" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" editable="NO" text="Lore ipsum..." translatesAutoresizingMaskIntoConstraints="NO" id="V21-2s-obu" userLabel="messageText" customClass="UITextViewNoDefine">
|
|
||||||
<rect key="frame" x="52" y="29" width="296" height="49"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
|
|
||||||
<dataDetectorType key="dataDetectorTypes" link="YES"/>
|
|
||||||
</textView>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
|
||||||
</view>
|
|
||||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" fixedFrame="YES" alwaysBounceVertical="YES" style="plain" separatorStyle="default" allowsSelectionDuringEditing="YES" allowsMultipleSelectionDuringEditing="YES" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" translatesAutoresizingMaskIntoConstraints="NO" id="HjO-C8-Itr">
|
|
||||||
<rect key="frame" x="8" y="171" width="359" height="496"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES"/>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<color key="separatorColor" red="0.67030966280000004" green="0.71867996450000005" blue="0.75078284740000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</tableView>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<point key="canvasLocation" x="-247.5" y="14.5"/>
|
|
||||||
</view>
|
|
||||||
</objects>
|
|
||||||
<resources>
|
|
||||||
<image name="avatar.png" width="259" height="259"/>
|
|
||||||
<image name="back_default.png" width="24" height="22"/>
|
|
||||||
<image name="back_disabled.png" width="24" height="22"/>
|
|
||||||
<image name="color_A.png" width="2" height="2"/>
|
|
||||||
<image name="color_E.png" width="2" height="2"/>
|
|
||||||
<image name="color_F.png" width="2" height="2"/>
|
|
||||||
</resources>
|
|
||||||
</document>
|
|
||||||
Binary file not shown.
|
|
@ -1,181 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14109" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
|
|
||||||
<device id="retina5_5" orientation="portrait">
|
|
||||||
<adaptation id="fullscreen"/>
|
|
||||||
</device>
|
|
||||||
<dependencies>
|
|
||||||
<deployment identifier="iOS"/>
|
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
|
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
|
||||||
</dependencies>
|
|
||||||
<objects>
|
|
||||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="ChatConversationInfoView">
|
|
||||||
<connections>
|
|
||||||
<outlet property="addButton" destination="XSI-9T-NtW" id="BlB-bn-XWt"/>
|
|
||||||
<outlet property="nameLabel" destination="69I-Un-ASz" id="qmU-o2-TmF"/>
|
|
||||||
<outlet property="nextButton" destination="0v1-qv-lPd" id="nPu-w2-iy3"/>
|
|
||||||
<outlet property="participantsBar" destination="n8e-tx-jlu" id="kNr-kM-7MJ"/>
|
|
||||||
<outlet property="quitButton" destination="Hnm-7C-dBQ" id="Kp1-Aw-FQq"/>
|
|
||||||
<outlet property="tableView" destination="pMq-Gv-0uu" id="ELS-RQ-olX"/>
|
|
||||||
<outlet property="view" destination="zgv-a8-72k" id="1Cq-i3-h2W"/>
|
|
||||||
<outlet property="waitView" destination="nt8-fb-6Re" id="zRw-iF-DnL"/>
|
|
||||||
</connections>
|
|
||||||
</placeholder>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
|
||||||
<view contentMode="scaleToFill" id="BKk-x7-cO3" userLabel="iphone6MetricsView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="zgv-a8-72k">
|
|
||||||
<rect key="frame" x="0.0" y="42" width="414" height="628"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" fixedFrame="YES" alwaysBounceVertical="YES" style="plain" separatorStyle="default" allowsSelectionDuringEditing="YES" allowsMultipleSelectionDuringEditing="YES" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" translatesAutoresizingMaskIntoConstraints="NO" id="pMq-Gv-0uu">
|
|
||||||
<rect key="frame" x="8" y="148" width="398" height="421"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<color key="separatorColor" red="0.67030966280000004" green="0.71867996450000005" blue="0.75078284740000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</tableView>
|
|
||||||
<view contentMode="scaleToFill" fixedFrame="YES" insetsLayoutMarginsFromSafeArea="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Meo-HD-uD0" userLabel="topBar">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="414" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="color_F.png" translatesAutoresizingMaskIntoConstraints="NO" id="Sna-Ku-1Aq" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="414" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="5" contentMode="left" fixedFrame="YES" text="Info" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="tJn-Nv-Duq" userLabel="addressLabel">
|
|
||||||
<rect key="frame" x="124" y="0.0" width="166" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Contact name">
|
|
||||||
<accessibilityTraits key="traits" none="YES"/>
|
|
||||||
</accessibility>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="22"/>
|
|
||||||
<color key="textColor" red="0.33333333329999998" green="0.33333333329999998" blue="0.33333333329999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="HVD-Ql-SJG" userLabel="backButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="83" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Back"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="back_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="back_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onBackClick:" destination="-1" eventType="touchUpInside" id="MaN-Ja-qM2"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="0v1-qv-lPd" userLabel="nextButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="331" y="0.0" width="83" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Back"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="valid_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="valid_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onNextClick:" destination="-1" eventType="touchUpInside" id="OC1-up-De3"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
<view contentMode="scaleToFill" fixedFrame="YES" insetsLayoutMarginsFromSafeArea="NO" translatesAutoresizingMaskIntoConstraints="NO" id="n8e-tx-jlu" userLabel="particpantsBar">
|
|
||||||
<rect key="frame" x="0.0" y="112" width="414" height="28"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="color_G.png" translatesAutoresizingMaskIntoConstraints="NO" id="t4R-zd-mU3" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="414" height="28"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="5" contentMode="left" fixedFrame="YES" text="Participants" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="vof-h9-AN3" userLabel="participantsLabel">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="414" height="28"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Contact name">
|
|
||||||
<accessibilityTraits key="traits" none="YES"/>
|
|
||||||
</accessibility>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<color key="textColor" red="0.33333333329999998" green="0.33333333329999998" blue="0.33333333329999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="XSI-9T-NtW" userLabel="addButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="382" y="4" width="24" height="21"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Back"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="chat_group_add.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="valid_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onAddClick:" destination="-1" eventType="touchUpInside" id="Dcn-sR-xRc"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="wordWrap" translatesAutoresizingMaskIntoConstraints="NO" id="Hnm-7C-dBQ" userLabel="quitButton" customClass="UIRoundBorderedButton">
|
|
||||||
<rect key="frame" x="113" y="577" width="189" height="43"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES"/>
|
|
||||||
<color key="backgroundColor" red="0.98273354768753052" green="0.36591529846191406" blue="0.0092478422448039055" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Use SIP account">
|
|
||||||
<bool key="isElement" value="YES"/>
|
|
||||||
</accessibility>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
|
||||||
<state key="normal" title="LEAVE THE GROUP">
|
|
||||||
<color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" backgroundImage="color_F.png">
|
|
||||||
<color key="titleColor" red="0.67030966280000004" green="0.71867996450000005" blue="0.75078284740000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<connections>
|
|
||||||
<action selector="onQuitClick:" destination="-1" eventType="touchUpInside" id="TT0-hW-JMh"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<textField opaque="NO" clipsSubviews="YES" tag="100" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Name the group" textAlignment="center" adjustsFontSizeToFit="NO" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="69I-Un-ASz" userLabel="chatRoomNameField">
|
|
||||||
<rect key="frame" x="9" y="74" width="396" height="30"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" red="0.85415387149999999" green="0.85412830110000004" blue="0.85414278509999997" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="ChatRoomName"/>
|
|
||||||
<color key="textColor" red="0.20521381499999999" green="0.20520767570000001" blue="0.2052111626" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
|
||||||
<textInputTraits key="textInputTraits" autocorrectionType="no" returnKeyType="next" enablesReturnKeyAutomatically="YES"/>
|
|
||||||
</textField>
|
|
||||||
<view hidden="YES" tag="8" contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="nt8-fb-6Re" userLabel="waitView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="414" height="628"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<activityIndicatorView opaque="NO" tag="9" contentMode="scaleToFill" fixedFrame="YES" animating="YES" style="gray" translatesAutoresizingMaskIntoConstraints="NO" id="SNK-Vt-iQa" userLabel="activityIndicatorView">
|
|
||||||
<rect key="frame" x="199" y="301" width="20" height="20"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
</activityIndicatorView>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<gestureRecognizers/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<point key="canvasLocation" x="31" y="88"/>
|
|
||||||
</view>
|
|
||||||
</objects>
|
|
||||||
<resources>
|
|
||||||
<image name="back_default.png" width="24" height="22"/>
|
|
||||||
<image name="back_disabled.png" width="24" height="22"/>
|
|
||||||
<image name="chat_group_add.png" width="42" height="42"/>
|
|
||||||
<image name="color_E.png" width="2" height="2"/>
|
|
||||||
<image name="color_F.png" width="2" height="2"/>
|
|
||||||
<image name="color_G.png" width="2" height="2"/>
|
|
||||||
<image name="valid_default.png" width="28" height="19"/>
|
|
||||||
<image name="valid_disabled.png" width="28" height="19"/>
|
|
||||||
</resources>
|
|
||||||
</document>
|
|
||||||
Binary file not shown.
|
|
@ -1,573 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13196" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" colorMatched="YES">
|
|
||||||
<device id="retina4_7" orientation="landscape">
|
|
||||||
<adaptation id="fullscreen"/>
|
|
||||||
</device>
|
|
||||||
<dependencies>
|
|
||||||
<deployment identifier="iOS"/>
|
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13174"/>
|
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
|
||||||
</dependencies>
|
|
||||||
<objects>
|
|
||||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="ChatConversationView">
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressLabel" destination="40" id="43"/>
|
|
||||||
<outlet property="backButton" destination="9" id="Jcb-ET-bKd"/>
|
|
||||||
<outlet property="backToCallButton" destination="Hc0-GX-fC5" id="pYe-gN-Z64"/>
|
|
||||||
<outlet property="callButton" destination="Wzg-i0-spp" id="w9L-aT-1AD"/>
|
|
||||||
<outlet property="chatView" destination="49" id="Rxt-Zy-19x"/>
|
|
||||||
<outlet property="composeIndicatorView" destination="fx4-ao-53M" id="xk5-nK-lur"/>
|
|
||||||
<outlet property="composeLabel" destination="fpY-Fv-ht2" id="4L6-ik-ZAe"/>
|
|
||||||
<outlet property="infoButton" destination="Vqb-Un-4xv" id="pa1-Iz-5QQ"/>
|
|
||||||
<outlet property="landscapeView" destination="VoU-7Q-fgp" id="iRJ-sh-thF"/>
|
|
||||||
<outlet property="listSwipeGestureRecognizer" destination="dzw-n4-l9i" id="JVP-Vl-lIa"/>
|
|
||||||
<outlet property="listTapGestureRecognizer" destination="tkk-Tm-A7C" id="gqU-iJ-RGm"/>
|
|
||||||
<outlet property="messageField" destination="pqa-tg-5ml" id="emj-yI-K60"/>
|
|
||||||
<outlet property="messageView" destination="14" id="89"/>
|
|
||||||
<outlet property="particpantsLabel" destination="Ncq-Zc-X6j" id="tQM-q1-cey"/>
|
|
||||||
<outlet property="pictureButton" destination="73" id="84"/>
|
|
||||||
<outlet property="portraitView" destination="6" id="xJJ-1H-6N6"/>
|
|
||||||
<outlet property="sendButton" destination="15" id="27"/>
|
|
||||||
<outlet property="tableController" destination="29" id="32"/>
|
|
||||||
<outlet property="topBar" destination="7" id="JH8-F4-Bdq"/>
|
|
||||||
<outlet property="view" destination="6" id="11"/>
|
|
||||||
</connections>
|
|
||||||
</placeholder>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
|
||||||
<view contentMode="scaleToFill" id="v2I-ka-LYa" userLabel="iphone6MetricsView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="667" height="375"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view tag="1" contentMode="scaleToFill" id="6">
|
|
||||||
<rect key="frame" x="0.0" y="42" width="667" height="267"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view tag="2" contentMode="scaleToFill" id="7" userLabel="topBar">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="667" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="3" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_F.png" id="v5G-Qf-X82" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="667" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<button opaque="NO" tag="4" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="9" userLabel="backButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="133" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Back"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="back_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="back_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onBackClick:" destination="-1" eventType="touchUpInside" id="12"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button hidden="YES" opaque="NO" tag="11" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="bci-3K-AcG" userLabel="cancelButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="133" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Cancel"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="cancel_edit_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="cancel_edit_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onCancelClick:" destination="29" eventType="touchUpInside" id="tdO-wP-Ttr"/>
|
|
||||||
<action selector="onEditionChangeClick:" destination="-1" eventType="touchUpInside" id="c6C-ow-Yhi"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="5" contentMode="left" misplaced="YES" text="Contact1" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="40" userLabel="addressLabel">
|
|
||||||
<rect key="frame" x="133" y="0.0" width="253" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Contact name">
|
|
||||||
<accessibilityTraits key="traits" none="YES"/>
|
|
||||||
</accessibility>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="22"/>
|
|
||||||
<color key="textColor" red="0.33333333333333331" green="0.33333333333333331" blue="0.33333333333333331" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<button opaque="NO" tag="6" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="Wzg-i0-spp" userLabel="callButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="400" y="0.0" width="134" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<state key="normal" image="call_alt_start_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="call_alt_start_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onCallClick:" destination="-1" eventType="touchUpInside" id="Dsf-nS-K3V"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button hidden="YES" opaque="NO" tag="7" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="Hc0-GX-fC5" userLabel="backToCallButton" customClass="UIBackToCallButton">
|
|
||||||
<rect key="frame" x="400" y="0.0" width="134" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<state key="normal" image="call_back_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="call_back_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onBackToCallClick:" destination="-2" eventType="touchUpInside" id="bOG-ra-UpM"/>
|
|
||||||
<outlet property="tableView" destination="8" id="w1i-Px-Wdf"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button hidden="YES" opaque="NO" tag="8" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="Wag-Nx-kd6" userLabel="deleteButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="534" y="0.0" width="133" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Delete all"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="delete_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="delete_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onDeleteClick:" destination="-1" eventType="touchUpInside" id="JoY-wC-JQy"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="9" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="FqM-Ud-i58" userLabel="editButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="534" y="0.0" width="133" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Edit"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="edit_list_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="edit_list_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onEditClick:" destination="29" eventType="touchUpInside" id="2Q7-xM-Shx"/>
|
|
||||||
<action selector="onEditionChangeClick:" destination="-1" eventType="touchUpInside" id="0we-lw-TyJ"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button hidden="YES" opaque="NO" tag="10" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" reversesTitleShadowWhenHighlighted="YES" showsTouchWhenHighlighted="YES" lineBreakMode="middleTruncation" id="c9z-aq-2UP" userLabel="toggleSelectionButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="400" y="0.0" width="134" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Select all"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="deselect_all.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="select_all_disabled.png"/>
|
|
||||||
<state key="selected" image="select_all_default.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onSelectionToggle:" destination="29" eventType="touchUpInside" id="eP5-bU-LEA"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button hidden="YES" opaque="NO" tag="10" contentMode="scaleToFill" misplaced="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" reversesTitleShadowWhenHighlighted="YES" showsTouchWhenHighlighted="YES" lineBreakMode="middleTruncation" id="Vqb-Un-4xv" userLabel="infoButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="400" y="0.0" width="134" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Select all"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="chat_group_informations.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="select_all_disabled.png"/>
|
|
||||||
<state key="selected" image="select_all_default.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onInfoClick:" destination="-1" eventType="touchUpInside" id="VfD-K7-V15"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="5" contentMode="left" misplaced="YES" text="addresses" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="Ncq-Zc-X6j" userLabel="participantsLabel">
|
|
||||||
<rect key="frame" x="133" y="41" width="253" height="25"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Contact name">
|
|
||||||
<accessibilityTraits key="traits" none="YES"/>
|
|
||||||
</accessibility>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="15"/>
|
|
||||||
<color key="textColor" red="0.33333333329999998" green="0.33333333329999998" blue="0.33333333329999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
<view tag="12" contentMode="scaleToFill" id="49" userLabel="contentView">
|
|
||||||
<rect key="frame" x="0.0" y="66" width="667" height="201"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<tableView clipsSubviews="YES" tag="13" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" allowsSelection="NO" allowsSelectionDuringEditing="YES" allowsMultipleSelectionDuringEditing="YES" rowHeight="60" sectionHeaderHeight="22" sectionFooterHeight="22" id="8" userLabel="messagesTableView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="667" height="113"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<gestureRecognizers/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="dataSource" destination="29" id="6U9-NJ-Z7W"/>
|
|
||||||
<outlet property="delegate" destination="29" id="8Lv-aI-a0V"/>
|
|
||||||
<outletCollection property="gestureRecognizers" destination="dzw-n4-l9i" appends="YES" id="ba4-aY-7EA"/>
|
|
||||||
<outletCollection property="gestureRecognizers" destination="tkk-Tm-A7C" appends="YES" id="rxU-cr-Kav"/>
|
|
||||||
</connections>
|
|
||||||
</tableView>
|
|
||||||
<view hidden="YES" tag="14" contentMode="scaleToFill" id="fx4-ao-53M" userLabel="composeIndicatorView">
|
|
||||||
<rect key="frame" x="0.0" y="113" width="667" height="22"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="15" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="%@ is composing..." lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" id="fpY-Fv-ht2" userLabel="composeLabel">
|
|
||||||
<rect key="frame" x="0.0" y="1" width="667" height="22"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label=""/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</view>
|
|
||||||
<label hidden="YES" opaque="NO" userInteractionEnabled="NO" tag="16" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="No conversation." textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="p7C-WH-uR1" userLabel="emptyTableLabel">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="667" height="174"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<view tag="17" contentMode="scaleToFill" id="14" userLabel="messageView">
|
|
||||||
<rect key="frame" x="0.0" y="135" width="667" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="18" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_F.png" id="pGT-LQ-zpg" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="667" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<button opaque="NO" tag="19" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="73" userLabel="pictureButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="66" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Send picture"/>
|
|
||||||
<state key="normal" image="chat_attachment_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="chat_attachment_disabled.png"/>
|
|
||||||
<state key="highlighted" image="chat_attachment_over.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onPictureClick:" destination="-1" eventType="touchUpInside" id="87"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="21" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="15" userLabel="sendButton">
|
|
||||||
<rect key="frame" x="602" y="0.0" width="66" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Send"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="30" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="chat_send_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="chat_send_disabled.png"/>
|
|
||||||
<state key="highlighted" image="chat_send_over.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onSendClick:" destination="-1" eventType="touchUpInside" id="25"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<view tag="20" contentMode="scaleToFill" id="pqa-tg-5ml" userLabel="messageField" customClass="HPGrowingTextView">
|
|
||||||
<rect key="frame" x="117" y="13" width="433" height="40"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Message field"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<gestureRecognizers/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<point key="canvasLocation" x="228.5" y="-40.5"/>
|
|
||||||
</view>
|
|
||||||
<view contentMode="scaleToFill" id="680-UL-sil" userLabel="iphone6MetricsView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="667" height="375"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view tag="1" contentMode="scaleToFill" id="VoU-7Q-fgp">
|
|
||||||
<rect key="frame" x="90" y="42" width="577" height="333"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view tag="2" contentMode="scaleToFill" id="Z3y-hY-5xp" userLabel="topBar">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="577" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="3" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_F.png" id="Uvs-m3-GPj" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="577" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<button opaque="NO" tag="4" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="N2g-vL-3x8" userLabel="backButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="67" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Back"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="back_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="back_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onBackClick:" destination="-1" eventType="touchUpInside" id="oLf-ke-zgQ"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button hidden="YES" opaque="NO" tag="11" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="Bqf-Gg-2Rw" userLabel="cancelButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="67" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Cancel"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="cancel_edit_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="cancel_edit_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onCancelClick:" destination="29" eventType="touchUpInside" id="EVj-uP-wVf"/>
|
|
||||||
<action selector="onEditionChangeClick:" destination="-1" eventType="touchUpInside" id="hGj-xz-K5n"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="5" contentMode="left" misplaced="YES" text="Contact1" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="uEp-mD-eik" userLabel="addressLabel">
|
|
||||||
<rect key="frame" x="67" y="1" width="366" height="57"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Contact name">
|
|
||||||
<accessibilityTraits key="traits" none="YES"/>
|
|
||||||
</accessibility>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="22"/>
|
|
||||||
<color key="textColor" red="0.33333333333333331" green="0.33333333333333331" blue="0.33333333333333331" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<button hidden="YES" opaque="NO" tag="8" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="RDW-7W-25T" userLabel="deleteButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="508" y="0.0" width="69" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Delete all"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="delete_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="delete_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onDeleteClick:" destination="-1" eventType="touchUpInside" id="NWL-CQ-eNR"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="9" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="KeL-Ej-92j" userLabel="editButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="508" y="0.0" width="69" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Edit"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="edit_list_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="edit_list_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onEditClick:" destination="29" eventType="touchUpInside" id="4ei-sX-oIk"/>
|
|
||||||
<action selector="onEditionChangeClick:" destination="-1" eventType="touchUpInside" id="fNp-ya-dag"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button hidden="YES" opaque="NO" tag="10" contentMode="scaleToFill" misplaced="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" reversesTitleShadowWhenHighlighted="YES" showsTouchWhenHighlighted="YES" lineBreakMode="middleTruncation" id="uVy-PC-gn9" userLabel="infoButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="441" y="0.0" width="67" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Select all"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="chat_group_informations.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="select_all_disabled.png"/>
|
|
||||||
<state key="selected" image="select_all_default.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onInfoClick:" destination="-1" eventType="touchUpInside" id="HQo-52-fEq"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="6" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="wag-QV-oUD" userLabel="callButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="441" y="0.0" width="67" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<state key="normal" image="call_alt_start_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="call_alt_start_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onCallClick:" destination="-1" eventType="touchUpInside" id="gcb-ac-VkW"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button hidden="YES" opaque="NO" tag="7" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="t25-en-4LP" userLabel="backToCallButton" customClass="UIBackToCallButton">
|
|
||||||
<rect key="frame" x="441" y="0.0" width="67" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<state key="normal" image="call_back_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="call_back_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onBackToCallClick:" destination="-2" eventType="touchUpInside" id="5cp-dW-Oc7"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button hidden="YES" opaque="NO" tag="10" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" reversesTitleShadowWhenHighlighted="YES" showsTouchWhenHighlighted="YES" lineBreakMode="middleTruncation" id="4RV-US-Kr1" userLabel="toggleSelectionButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="441" y="0.0" width="67" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Select all"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="deselect_all.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="select_all_disabled.png"/>
|
|
||||||
<state key="selected" image="select_all_default.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onSelectionToggle:" destination="29" eventType="touchUpInside" id="17V-y4-JHi"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="5" contentMode="left" misplaced="YES" text="addresses" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="tyU-Wy-rLs" userLabel="participantsLabel">
|
|
||||||
<rect key="frame" x="67" y="37" width="366" height="25"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Contact name">
|
|
||||||
<accessibilityTraits key="traits" none="YES"/>
|
|
||||||
</accessibility>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="15"/>
|
|
||||||
<color key="textColor" red="0.33333333329999998" green="0.33333333329999998" blue="0.33333333329999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
<view tag="12" contentMode="scaleToFill" id="OTt-fc-941" userLabel="contentView">
|
|
||||||
<rect key="frame" x="0.0" y="66" width="577" height="267"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<tableView clipsSubviews="YES" tag="13" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" allowsSelection="NO" allowsSelectionDuringEditing="YES" allowsMultipleSelectionDuringEditing="YES" rowHeight="60" sectionHeaderHeight="22" sectionFooterHeight="22" id="CU7-Za-RwN" userLabel="messagesTableView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="577" height="179"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<gestureRecognizers/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="dataSource" destination="29" id="hC0-KH-0e3"/>
|
|
||||||
<outlet property="delegate" destination="29" id="sSq-5N-DaD"/>
|
|
||||||
</connections>
|
|
||||||
</tableView>
|
|
||||||
<label hidden="YES" opaque="NO" userInteractionEnabled="NO" tag="16" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="No conversation." textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="pzm-tk-LH0" userLabel="emptyTableLabel">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="577" height="209"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<view hidden="YES" tag="14" contentMode="scaleToFill" id="nTf-7h-Z4z" userLabel="composeIndicatorView">
|
|
||||||
<rect key="frame" x="0.0" y="179" width="577" height="22"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="15" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="%@ is composing..." lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" id="I34-aL-yuS" userLabel="composeLabel">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="577" height="22"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label=""/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</view>
|
|
||||||
<view tag="17" contentMode="scaleToFill" id="LA5-wD-ftj" userLabel="messageView">
|
|
||||||
<rect key="frame" x="0.0" y="201" width="577" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="18" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_F.png" id="kKc-DG-gwg" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="577" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<button opaque="NO" tag="19" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="gSL-jE-GYO" userLabel="pictureButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="66" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Send picture"/>
|
|
||||||
<state key="normal" image="chat_attachment_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="chat_attachment_disabled.png"/>
|
|
||||||
<state key="highlighted" image="chat_attachment_over.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onPictureClick:" destination="-1" eventType="touchUpInside" id="Ag3-po-DGR"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<view tag="20" contentMode="scaleToFill" id="C02-2r-vXK" userLabel="messageField" customClass="HPGrowingTextView">
|
|
||||||
<rect key="frame" x="59" y="13" width="457" height="40"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Message field"/>
|
|
||||||
</view>
|
|
||||||
<button opaque="NO" tag="21" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="nV9-xZ-oSM" userLabel="sendButton">
|
|
||||||
<rect key="frame" x="511" y="0.0" width="66" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Send"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="30" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="chat_send_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="chat_send_disabled.png"/>
|
|
||||||
<state key="highlighted" image="chat_send_over.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onSendClick:" destination="-1" eventType="touchUpInside" id="dx4-lF-ekG"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<gestureRecognizers/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<point key="canvasLocation" x="-546.5" y="-152.5"/>
|
|
||||||
</view>
|
|
||||||
<tableViewController autoresizesArchivedViewToFullSize="NO" id="29" userLabel="messagesTableView" customClass="ChatConversationTableView">
|
|
||||||
<extendedEdge key="edgesForExtendedLayout"/>
|
|
||||||
<nil key="simulatedStatusBarMetrics"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="cancelButton" destination="bci-3K-AcG" id="ZTI-gJ-SEL"/>
|
|
||||||
<outlet property="deleteButton" destination="Wag-Nx-kd6" id="hOb-3g-mnR"/>
|
|
||||||
<outlet property="editButton" destination="FqM-Ud-i58" id="9L7-rC-Aqy"/>
|
|
||||||
<outlet property="toggleSelectionButton" destination="c9z-aq-2UP" id="a2J-JQ-rhX"/>
|
|
||||||
<outlet property="view" destination="8" id="g4m-ne-lbP"/>
|
|
||||||
</connections>
|
|
||||||
<point key="canvasLocation" x="639" y="328"/>
|
|
||||||
</tableViewController>
|
|
||||||
<swipeGestureRecognizer direction="left" id="dzw-n4-l9i">
|
|
||||||
<connections>
|
|
||||||
<action selector="onListSwipe:" destination="-1" id="bd8-v2-u8H"/>
|
|
||||||
</connections>
|
|
||||||
</swipeGestureRecognizer>
|
|
||||||
<tapGestureRecognizer enabled="NO" id="tkk-Tm-A7C">
|
|
||||||
<connections>
|
|
||||||
<action selector="onListTap:" destination="-1" id="ejK-2Q-qkC"/>
|
|
||||||
</connections>
|
|
||||||
</tapGestureRecognizer>
|
|
||||||
</objects>
|
|
||||||
<resources>
|
|
||||||
<image name="back_default.png" width="24" height="22"/>
|
|
||||||
<image name="back_disabled.png" width="24" height="22"/>
|
|
||||||
<image name="call_alt_start_default.png" width="29" height="29"/>
|
|
||||||
<image name="call_alt_start_disabled.png" width="29" height="29"/>
|
|
||||||
<image name="call_back_default.png" width="38" height="27"/>
|
|
||||||
<image name="call_back_disabled.png" width="38" height="27"/>
|
|
||||||
<image name="cancel_edit_default.png" width="29" height="29"/>
|
|
||||||
<image name="cancel_edit_disabled.png" width="29" height="29"/>
|
|
||||||
<image name="chat_attachment_default.png" width="41" height="41"/>
|
|
||||||
<image name="chat_attachment_disabled.png" width="41" height="41"/>
|
|
||||||
<image name="chat_attachment_over.png" width="41" height="41"/>
|
|
||||||
<image name="chat_group_informations.png" width="38" height="38"/>
|
|
||||||
<image name="chat_send_default.png" width="41" height="41"/>
|
|
||||||
<image name="chat_send_disabled.png" width="41" height="41"/>
|
|
||||||
<image name="chat_send_over.png" width="41" height="41"/>
|
|
||||||
<image name="color_E.png" width="2" height="2"/>
|
|
||||||
<image name="color_F.png" width="2" height="2"/>
|
|
||||||
<image name="delete_default.png" width="21" height="28"/>
|
|
||||||
<image name="delete_disabled.png" width="21" height="28"/>
|
|
||||||
<image name="deselect_all.png" width="27" height="27"/>
|
|
||||||
<image name="edit_list_default.png" width="30" height="28"/>
|
|
||||||
<image name="edit_list_disabled.png" width="30" height="28"/>
|
|
||||||
<image name="select_all_default.png" width="27" height="27"/>
|
|
||||||
<image name="select_all_disabled.png" width="27" height="27"/>
|
|
||||||
</resources>
|
|
||||||
</document>
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1,196 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13771" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" colorMatched="YES">
|
|
||||||
<device id="retina4_7" orientation="portrait">
|
|
||||||
<adaptation id="fullscreen"/>
|
|
||||||
</device>
|
|
||||||
<dependencies>
|
|
||||||
<deployment identifier="iOS"/>
|
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13772"/>
|
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
|
||||||
</dependencies>
|
|
||||||
<objects>
|
|
||||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="ChatsListView">
|
|
||||||
<connections>
|
|
||||||
<outlet property="addButton" destination="Z5G-IF-PBY" id="Tzw-rz-Bwe"/>
|
|
||||||
<outlet property="backToCallButton" destination="Fac-hy-za4" id="8I3-TM-oJ7"/>
|
|
||||||
<outlet property="tableController" destination="4" id="18"/>
|
|
||||||
<outlet property="view" destination="5" id="14"/>
|
|
||||||
<outlet property="waitView" destination="cpj-Jc-imm" id="t7Q-YM-znJ"/>
|
|
||||||
</connections>
|
|
||||||
</placeholder>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
|
||||||
<view contentMode="scaleToFill" id="WKv-mw-S2B" userLabel="iphone6MetricsView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view contentMode="scaleToFill" id="5">
|
|
||||||
<rect key="frame" x="0.0" y="42" width="375" height="559"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view contentMode="scaleToFill" id="7" userLabel="topBar">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_F.png" id="jVg-vj-VOw" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="Z5G-IF-PBY" userLabel="addButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="New discussion"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="chat_add_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="chat_add_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onAddClick:" destination="-1" eventType="touchUpInside" id="g4q-By-6nW"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="KhE-c3-2Zj" userLabel="cancelButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Delete all"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="cancel_edit_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="cancel_edit_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onCancelClick:" destination="4" eventType="touchUpInside" id="8xd-cU-loG"/>
|
|
||||||
<action selector="onEditionChangeClick:" destination="-1" eventType="touchUpInside" id="hKF-q1-5DJ"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="Fac-hy-za4" userLabel="backToCallButton" customClass="UIBackToCallButton">
|
|
||||||
<rect key="frame" x="75" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<state key="normal" image="call_back_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="call_back_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onBackToCallClick:" destination="-2" eventType="touchUpInside" id="eUD-Gk-qji"/>
|
|
||||||
<outlet property="tableView" destination="6" id="ePS-cV-S6m"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" reversesTitleShadowWhenHighlighted="YES" showsTouchWhenHighlighted="YES" lineBreakMode="middleTruncation" id="uqG-2T-VOa" userLabel="toggleSelectionButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="225" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Select all"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="deselect_all.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="select_all_disabled.png"/>
|
|
||||||
<state key="selected" image="select_all_default.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onSelectionToggle:" destination="4" eventType="touchUpInside" id="ct6-0c-d1q"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="Rxo-0W-iqY" userLabel="deleteButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="300" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Delete all"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="delete_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="delete_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onDeleteClick:" destination="-1" eventType="touchUpInside" id="m6p-pf-GLX"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="qem-Y1-v78" userLabel="editButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="300" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Edit"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="edit_list_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="edit_list_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onEditClick:" destination="4" eventType="touchUpInside" id="COv-sY-0TU"/>
|
|
||||||
<action selector="onEditionChangeClick:" destination="-1" eventType="touchUpInside" id="e2C-A0-kjU"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" allowsSelectionDuringEditing="YES" allowsMultipleSelectionDuringEditing="YES" rowHeight="60" sectionHeaderHeight="22" sectionFooterHeight="22" id="6" userLabel="tableView">
|
|
||||||
<rect key="frame" x="0.0" y="66" width="375" height="493"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<inset key="contentInset" minX="0.0" minY="0.0" maxX="0.0" maxY="10"/>
|
|
||||||
<inset key="scrollIndicatorInsets" minX="0.0" minY="0.0" maxX="0.0" maxY="10"/>
|
|
||||||
<color key="separatorColor" red="0.67030966281890869" green="0.71867996454238892" blue="0.75078284740447998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="dataSource" destination="4" id="11"/>
|
|
||||||
<outlet property="delegate" destination="4" id="12"/>
|
|
||||||
</connections>
|
|
||||||
</tableView>
|
|
||||||
<label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="No conversations" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="MSn-PY-yf1" userLabel="emptyTableLabel">
|
|
||||||
<rect key="frame" x="0.0" y="66" width="375" height="493"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<view hidden="YES" tag="8" contentMode="scaleToFill" misplaced="YES" id="cpj-Jc-imm" userLabel="waitView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="559"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<activityIndicatorView opaque="NO" tag="9" contentMode="scaleToFill" animating="YES" style="gray" id="DjR-Dv-uoX" userLabel="activityIndicatorView">
|
|
||||||
<rect key="frame" x="179" y="267" width="20" height="20"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
</activityIndicatorView>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<gestureRecognizers/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<point key="canvasLocation" x="32.5" y="103.5"/>
|
|
||||||
</view>
|
|
||||||
<tableViewController autoresizesArchivedViewToFullSize="NO" id="4" userLabel="tableController" customClass="ChatsListTableView">
|
|
||||||
<extendedEdge key="edgesForExtendedLayout"/>
|
|
||||||
<nil key="simulatedStatusBarMetrics"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="cancelButton" destination="KhE-c3-2Zj" id="0BM-Q1-ZaR"/>
|
|
||||||
<outlet property="deleteButton" destination="Rxo-0W-iqY" id="vsb-dD-1zl"/>
|
|
||||||
<outlet property="editButton" destination="qem-Y1-v78" id="Ba4-I1-fI5"/>
|
|
||||||
<outlet property="emptyView" destination="MSn-PY-yf1" id="C72-01-4pD"/>
|
|
||||||
<outlet property="toggleSelectionButton" destination="uqG-2T-VOa" id="ytx-bj-7Qr"/>
|
|
||||||
<outlet property="view" destination="6" id="13"/>
|
|
||||||
</connections>
|
|
||||||
</tableViewController>
|
|
||||||
</objects>
|
|
||||||
<resources>
|
|
||||||
<image name="call_back_default.png" width="38" height="27"/>
|
|
||||||
<image name="call_back_disabled.png" width="38" height="27"/>
|
|
||||||
<image name="cancel_edit_default.png" width="29" height="29"/>
|
|
||||||
<image name="cancel_edit_disabled.png" width="29" height="29"/>
|
|
||||||
<image name="chat_add_default.png" width="33" height="29"/>
|
|
||||||
<image name="chat_add_disabled.png" width="33" height="29"/>
|
|
||||||
<image name="color_E.png" width="2" height="2"/>
|
|
||||||
<image name="color_F.png" width="2" height="2"/>
|
|
||||||
<image name="delete_default.png" width="21" height="28"/>
|
|
||||||
<image name="delete_disabled.png" width="21" height="28"/>
|
|
||||||
<image name="deselect_all.png" width="27" height="27"/>
|
|
||||||
<image name="edit_list_default.png" width="30" height="28"/>
|
|
||||||
<image name="edit_list_disabled.png" width="30" height="28"/>
|
|
||||||
<image name="select_all_default.png" width="27" height="27"/>
|
|
||||||
<image name="select_all_disabled.png" width="27" height="27"/>
|
|
||||||
</resources>
|
|
||||||
</document>
|
|
||||||
Binary file not shown.
|
|
@ -1,333 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13529" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" colorMatched="YES">
|
|
||||||
<device id="retina4_7" orientation="portrait">
|
|
||||||
<adaptation id="fullscreen"/>
|
|
||||||
</device>
|
|
||||||
<dependencies>
|
|
||||||
<deployment identifier="iOS"/>
|
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13527"/>
|
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
|
||||||
</dependencies>
|
|
||||||
<objects>
|
|
||||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="ContactDetailsView">
|
|
||||||
<connections>
|
|
||||||
<outlet property="avatarImage" destination="B6X-C9-2vm" id="tQc-xv-nJg"/>
|
|
||||||
<outlet property="backButton" destination="9" id="50"/>
|
|
||||||
<outlet property="cancelButton" destination="bPQ-aJ-Lk6" id="QHN-qi-QNv"/>
|
|
||||||
<outlet property="contentView" destination="8D6-vy-obt" id="GZW-ov-Wfv"/>
|
|
||||||
<outlet property="deleteButton" destination="MuB-yy-R9o" id="cni-lk-awn"/>
|
|
||||||
<outlet property="editButton" destination="8" id="31"/>
|
|
||||||
<outlet property="emptyLabel" destination="Mdj-Pz-nu4" id="ijc-2c-waE"/>
|
|
||||||
<outlet property="landscapeView" destination="lgD-Mw-h57" id="DTS-80-rMM"/>
|
|
||||||
<outlet property="nameLabel" destination="moZ-Bg-zcv" id="Lt9-h0-2o1"/>
|
|
||||||
<outlet property="portraitView" destination="1" id="k69-5P-ieM"/>
|
|
||||||
<outlet property="tableController" destination="20" id="27"/>
|
|
||||||
<outlet property="view" destination="1" id="3"/>
|
|
||||||
<outlet property="waitView" destination="JK8-Td-I1i" id="nFS-hz-vYl"/>
|
|
||||||
</connections>
|
|
||||||
</placeholder>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
|
||||||
<view contentMode="scaleToFill" id="XnN-PU-Vk7" userLabel="iphone6MetricsView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view contentMode="scaleToFill" id="1">
|
|
||||||
<rect key="frame" x="0.0" y="42" width="375" height="559"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view tag="1" contentMode="scaleToFill" id="4" userLabel="topBar">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="2" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_F.png" id="Lb6-xa-LB6" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<button hidden="YES" opaque="NO" tag="3" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="bPQ-aJ-Lk6" userLabel="cancelButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Delete all"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="cancel_edit_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="cancel_edit_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onCancelClick:" destination="-1" eventType="touchUpInside" id="yyu-9r-MIh"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="4" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="9" userLabel="backButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Back"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="back_default.png">
|
|
||||||
<color key="titleColor" red="0.28619974851608276" green="0.32144349813461304" blue="0.35980013012886047" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="back_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onBackClick:" destination="-1" eventType="touchUpInside" id="10"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="MuB-yy-R9o" userLabel="deleteButton" customClass="UIToggleButton">
|
|
||||||
<rect key="frame" x="225" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Delete"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="delete_default.png">
|
|
||||||
<color key="titleColor" red="0.28619974851608276" green="0.32144349813461304" blue="0.35980013012886047" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="delete_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onDeleteClick:" destination="-1" eventType="touchUpInside" id="vxj-6p-8lE"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="6" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="8" userLabel="editButton" customClass="UIToggleButton">
|
|
||||||
<rect key="frame" x="300" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Edit"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="edit_default.png">
|
|
||||||
<color key="titleColor" red="0.28619974851608276" green="0.32144349813461304" blue="0.35980013012886047" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="edit_disabled.png"/>
|
|
||||||
<state key="selected" image="valid_default.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onEditClick:" destination="-1" eventType="touchUpInside" id="30"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
<scrollView clipsSubviews="YES" multipleTouchEnabled="YES" tag="7" contentMode="scaleToFill" directionalLockEnabled="YES" showsHorizontalScrollIndicator="NO" id="8D6-vy-obt" userLabel="contentView">
|
|
||||||
<rect key="frame" x="0.0" y="66" width="375" height="493"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView tag="8" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="avatar.png" id="B6X-C9-2vm" userLabel="avatarImage" customClass="UIRoundedImageView">
|
|
||||||
<rect key="frame" x="142" y="10" width="90" height="90"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<connections>
|
|
||||||
<outletCollection property="gestureRecognizers" destination="8bV-f4-pLL" appends="YES" id="4V5-Px-aHT"/>
|
|
||||||
</connections>
|
|
||||||
</imageView>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="9" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="John Doe" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="moZ-Bg-zcv" userLabel="nameLabel">
|
|
||||||
<rect key="frame" x="0.0" y="108" width="375" height="40"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="27"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<tableView clipsSubviews="YES" tag="10" contentMode="scaleToFill" directionalLockEnabled="YES" alwaysBounceVertical="YES" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" style="plain" allowsSelection="NO" allowsSelectionDuringEditing="YES" rowHeight="44" sectionHeaderHeight="1" sectionFooterHeight="1" id="19" userLabel="tableView">
|
|
||||||
<rect key="frame" x="0.0" y="156" width="375" height="337"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<inset key="contentInset" minX="0.0" minY="0.0" maxX="0.0" maxY="10"/>
|
|
||||||
<inset key="scrollIndicatorInsets" minX="0.0" minY="0.0" maxX="0.0" maxY="10"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="dataSource" destination="20" id="28"/>
|
|
||||||
<outlet property="delegate" destination="20" id="29"/>
|
|
||||||
</connections>
|
|
||||||
</tableView>
|
|
||||||
</subviews>
|
|
||||||
</scrollView>
|
|
||||||
<label hidden="YES" opaque="NO" userInteractionEnabled="NO" tag="40" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="No contact selected" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Mdj-Pz-nu4" userLabel="emptyLabel">
|
|
||||||
<rect key="frame" x="0.0" y="66" width="375" height="493"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<view hidden="YES" tag="8" contentMode="scaleToFill" misplaced="YES" id="JK8-Td-I1i" userLabel="waitView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="559"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<activityIndicatorView opaque="NO" tag="9" contentMode="scaleToFill" animating="YES" style="gray" id="J67-KE-kHm" userLabel="activityIndicatorView">
|
|
||||||
<rect key="frame" x="179" y="267" width="20" height="20"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
</activityIndicatorView>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<gestureRecognizers/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<point key="canvasLocation" x="-436.5" y="192.5"/>
|
|
||||||
</view>
|
|
||||||
<view contentMode="scaleToFill" id="gnD-7x-PSh" userLabel="iphone6MetricsView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="667" height="375"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view contentMode="scaleToFill" id="lgD-Mw-h57">
|
|
||||||
<rect key="frame" x="0.0" y="42" width="667" height="333"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view tag="1" contentMode="scaleToFill" id="L0a-sZ-jGX" userLabel="topBar">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="667" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="2" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_F.png" id="WKb-RL-2xW" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="667" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<button hidden="YES" opaque="NO" tag="3" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="XGy-cw-7de" userLabel="cancelButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="133" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Delete all"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="cancel_edit_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="cancel_edit_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onCancelClick:" destination="-1" eventType="touchUpInside" id="v96-rt-8t6"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="4" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="XFH-3u-WFI" userLabel="backButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="133" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Back"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="back_default.png">
|
|
||||||
<color key="titleColor" red="0.28619974851608276" green="0.32144349813461304" blue="0.35980013012886047" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="back_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onBackClick:" destination="-1" eventType="touchUpInside" id="9Bf-9b-t68"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="XSh-gg-HmZ" userLabel="deleteButton" customClass="UIToggleButton">
|
|
||||||
<rect key="frame" x="400" y="0.0" width="134" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Delete"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="delete_default.png">
|
|
||||||
<color key="titleColor" red="0.28619974851608276" green="0.32144349813461304" blue="0.35980013012886047" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="delete_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onDeleteClick:" destination="-1" eventType="touchUpInside" id="9ng-e2-HNr"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="6" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="tQx-Wr-TFA" userLabel="editButton" customClass="UIToggleButton">
|
|
||||||
<rect key="frame" x="534" y="0.0" width="133" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Edit"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="edit_default.png">
|
|
||||||
<color key="titleColor" red="0.28619974851608276" green="0.32144349813461304" blue="0.35980013012886047" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="edit_disabled.png"/>
|
|
||||||
<state key="selected" image="valid_default.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onEditClick:" destination="-1" eventType="touchUpInside" id="ZOh-tv-N0H"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
<scrollView clipsSubviews="YES" multipleTouchEnabled="YES" tag="7" contentMode="scaleToFill" directionalLockEnabled="YES" showsHorizontalScrollIndicator="NO" id="8D6-vy-oby" userLabel="contentView">
|
|
||||||
<rect key="frame" x="0.0" y="66" width="667" height="267"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView tag="8" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="avatar.png" id="IJJ-eZ-rC2" userLabel="avatarImage" customClass="UIRoundedImageView">
|
|
||||||
<rect key="frame" x="46" y="8" width="62" height="62"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="9" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="John Doe" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Ozv-hZ-xHz" userLabel="nameLabel">
|
|
||||||
<rect key="frame" x="116" y="8" width="551" height="62"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="27"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<tableView clipsSubviews="YES" tag="10" contentMode="scaleToFill" directionalLockEnabled="YES" alwaysBounceVertical="YES" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" style="plain" allowsSelection="NO" allowsSelectionDuringEditing="YES" rowHeight="44" sectionHeaderHeight="1" sectionFooterHeight="1" id="WMA-Yo-NbI" userLabel="tableView" customClass="TPKeyboardAvoidingTableView">
|
|
||||||
<rect key="frame" x="0.0" y="84" width="667" height="183"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<inset key="contentInset" minX="0.0" minY="0.0" maxX="0.0" maxY="10"/>
|
|
||||||
<inset key="scrollIndicatorInsets" minX="0.0" minY="0.0" maxX="0.0" maxY="10"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="dataSource" destination="20" id="YTH-Qp-Xwq"/>
|
|
||||||
<outlet property="delegate" destination="20" id="C42-FH-IyU"/>
|
|
||||||
</connections>
|
|
||||||
</tableView>
|
|
||||||
</subviews>
|
|
||||||
</scrollView>
|
|
||||||
<label hidden="YES" opaque="NO" userInteractionEnabled="NO" tag="40" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="No contact selected" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="oFA-SG-IDe" userLabel="emptyLabel">
|
|
||||||
<rect key="frame" x="0.0" y="66" width="667" height="267"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<view hidden="YES" tag="8" contentMode="scaleToFill" misplaced="YES" id="EdP-53-rq9" userLabel="waitView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="667" height="333"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<activityIndicatorView opaque="NO" tag="9" contentMode="scaleToFill" animating="YES" style="gray" id="T1j-jc-5iP" userLabel="activityIndicatorView">
|
|
||||||
<rect key="frame" x="326" y="155" width="20" height="20"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
</activityIndicatorView>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<gestureRecognizers/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
|
|
||||||
<point key="canvasLocation" x="25.5" y="275.5"/>
|
|
||||||
</view>
|
|
||||||
<tableViewController id="20" userLabel="tableController" customClass="ContactDetailsTableView">
|
|
||||||
<extendedEdge key="edgesForExtendedLayout"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="editButton" destination="8" id="wZf-wX-YIu"/>
|
|
||||||
<outlet property="view" destination="19" id="26"/>
|
|
||||||
</connections>
|
|
||||||
</tableViewController>
|
|
||||||
<tapGestureRecognizer id="8bV-f4-pLL" userLabel="onAvatarClick">
|
|
||||||
<connections>
|
|
||||||
<action selector="onAvatarClick:" destination="-1" id="olM-C9-dHO"/>
|
|
||||||
</connections>
|
|
||||||
</tapGestureRecognizer>
|
|
||||||
</objects>
|
|
||||||
<resources>
|
|
||||||
<image name="avatar.png" width="259" height="259"/>
|
|
||||||
<image name="back_default.png" width="24" height="22"/>
|
|
||||||
<image name="back_disabled.png" width="24" height="22"/>
|
|
||||||
<image name="cancel_edit_default.png" width="29" height="29"/>
|
|
||||||
<image name="cancel_edit_disabled.png" width="29" height="29"/>
|
|
||||||
<image name="color_E.png" width="2" height="2"/>
|
|
||||||
<image name="color_F.png" width="2" height="2"/>
|
|
||||||
<image name="delete_default.png" width="21" height="28"/>
|
|
||||||
<image name="delete_disabled.png" width="21" height="28"/>
|
|
||||||
<image name="edit_default.png" width="29" height="29"/>
|
|
||||||
<image name="edit_disabled.png" width="29" height="29"/>
|
|
||||||
<image name="valid_default.png" width="28" height="19"/>
|
|
||||||
</resources>
|
|
||||||
</document>
|
|
||||||
Binary file not shown.
|
|
@ -1,234 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="11198.2" systemVersion="15G31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" colorMatched="NO">
|
|
||||||
<dependencies>
|
|
||||||
<deployment identifier="iOS"/>
|
|
||||||
<development version="7000" identifier="xcode"/>
|
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11161"/>
|
|
||||||
</dependencies>
|
|
||||||
<objects>
|
|
||||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="ContactsListView">
|
|
||||||
<connections>
|
|
||||||
<outlet property="addButton" destination="6" id="91"/>
|
|
||||||
<outlet property="allButton" destination="4" id="27"/>
|
|
||||||
<outlet property="linphoneButton" destination="5" id="31"/>
|
|
||||||
<outlet property="searchBar" destination="5jE-oF-d45" id="xfS-xo-2Bm"/>
|
|
||||||
<outlet property="selectedButtonImage" destination="A9k-KU-Dlm" id="4dX-pd-Y2D"/>
|
|
||||||
<outlet property="tableController" destination="TJG-JZ-YRR" id="0lt-gC-EOm"/>
|
|
||||||
<outlet property="topBar" destination="3" id="w1O-2o-b18"/>
|
|
||||||
<outlet property="view" destination="2" id="16"/>
|
|
||||||
</connections>
|
|
||||||
</placeholder>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
|
||||||
<view contentMode="scaleToFill" id="1YR-9t-hRk" userLabel="iphone6MetricsView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="480"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view contentMode="scaleToFill" id="2">
|
|
||||||
<rect key="frame" x="0.0" y="42" width="375" height="559"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view contentMode="scaleToFill" id="3" userLabel="topBar">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_F.png" id="Ehd-EB-dCJ" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<view contentMode="scaleToFill" id="93" userLabel="switchView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="150" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="4" userLabel="allButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="All contacts filter"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="9"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="-38" minY="15" maxX="0.0" maxY="0.0"/>
|
|
||||||
<inset key="imageEdgeInsets" minX="16" minY="0.0" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="contacts_all_default.png">
|
|
||||||
<color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="contacts_all_disabled.png"/>
|
|
||||||
<state key="selected" image="contacts_all_selected.png">
|
|
||||||
<color key="titleColor" red="0.98766469955444336" green="0.27512490749359131" blue="0.029739789664745331" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onAllClick:" destination="-1" eventType="touchUpInside" id="29"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_A.png" id="A9k-KU-Dlm" userLabel="selectedButtonImage">
|
|
||||||
<rect key="frame" x="0.0" y="63" width="75" height="3"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="5" userLabel="sipButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="75" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Linphone contacts filter"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="9"/>
|
|
||||||
<state key="normal" image="contacts_sip_default.png">
|
|
||||||
<color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="contacts_sip_disabled.png"/>
|
|
||||||
<state key="selected" image="contacts_sip_selected.png">
|
|
||||||
<color key="titleColor" red="0.98766469955444336" green="0.27512490749359131" blue="0.029739789664745331" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onLinphoneClick:" destination="-1" eventType="touchUpInside" id="47"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
<button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="MZP-cb-ntf" userLabel="cancelButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Delete all"/>
|
|
||||||
<state key="normal" image="cancel_edit_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="cancel_edit_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onCancelClick:" destination="TJG-JZ-YRR" eventType="touchUpInside" id="1nW-5f-kbI"/>
|
|
||||||
<action selector="onEditionChangeClick:" destination="-1" eventType="touchUpInside" id="PL4-Js-Xvg"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="tFB-Vf-lUX" userLabel="deleteButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="300" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Delete all"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="delete_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="delete_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onDeleteClick:" destination="-1" eventType="touchUpInside" id="VJS-p2-Jsp"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="DZc-zR-1Q7" userLabel="editButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="300" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Edit"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="edit_list_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="edit_list_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onEditClick:" destination="TJG-JZ-YRR" eventType="touchUpInside" id="CKU-6b-3F2"/>
|
|
||||||
<action selector="onEditionChangeClick:" destination="-1" eventType="touchUpInside" id="uvi-82-4ka"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="5lZ-u7-Yex" userLabel="toggleSelectionButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="225" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Select all"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="deselect_all.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="select_all_disabled.png"/>
|
|
||||||
<state key="selected" image="select_all_default.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onSelectionToggle:" destination="TJG-JZ-YRR" eventType="touchUpInside" id="YcH-HT-zyi"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="6" userLabel="addButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="225" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Add contact"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="contact_add_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="contact_add_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onAddContactClick:" destination="-1" eventType="touchUpInside" id="86"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
<searchBar contentMode="redraw" showsCancelButton="YES" id="5jE-oF-d45" userLabel="searchBar">
|
|
||||||
<rect key="frame" x="0.0" y="66" width="375" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<textInputTraits key="textInputTraits"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="delegate" destination="-1" id="Fk3-Tl-dY0"/>
|
|
||||||
</connections>
|
|
||||||
</searchBar>
|
|
||||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" allowsSelectionDuringEditing="YES" allowsMultipleSelectionDuringEditing="YES" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="zOo-FS-W6l" userLabel="tableView">
|
|
||||||
<rect key="frame" x="0.0" y="110" width="375" height="449"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<inset key="contentInset" minX="0.0" minY="0.0" maxX="0.0" maxY="10"/>
|
|
||||||
<inset key="scrollIndicatorInsets" minX="0.0" minY="0.0" maxX="0.0" maxY="10"/>
|
|
||||||
<color key="separatorColor" red="0.67030966281890869" green="0.71867996454238892" blue="0.75078284740447998" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="dataSource" destination="TJG-JZ-YRR" id="334-RR-jEi"/>
|
|
||||||
<outlet property="delegate" destination="TJG-JZ-YRR" id="V1N-gI-U4J"/>
|
|
||||||
</connections>
|
|
||||||
</tableView>
|
|
||||||
<label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="No contact found in your address book" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="JR3-k7-gVP" userLabel="emptyTableLabel">
|
|
||||||
<rect key="frame" x="0.0" y="110" width="375" height="449"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<point key="canvasLocation" x="4.5" y="212.5"/>
|
|
||||||
</view>
|
|
||||||
<tableViewController id="TJG-JZ-YRR" userLabel="tableController" customClass="ContactsListTableView">
|
|
||||||
<connections>
|
|
||||||
<outlet property="cancelButton" destination="MZP-cb-ntf" id="4Hf-l6-Qyp"/>
|
|
||||||
<outlet property="deleteButton" destination="tFB-Vf-lUX" id="dF5-uF-nhK"/>
|
|
||||||
<outlet property="editButton" destination="DZc-zR-1Q7" id="TkL-MM-OFA"/>
|
|
||||||
<outlet property="emptyView" destination="JR3-k7-gVP" id="3vV-F3-Eit"/>
|
|
||||||
<outlet property="toggleSelectionButton" destination="5lZ-u7-Yex" id="C99-nu-2wJ"/>
|
|
||||||
<outlet property="view" destination="zOo-FS-W6l" id="cM7-Da-i7e"/>
|
|
||||||
</connections>
|
|
||||||
<point key="canvasLocation" x="510" y="206"/>
|
|
||||||
</tableViewController>
|
|
||||||
</objects>
|
|
||||||
<resources>
|
|
||||||
<image name="cancel_edit_default.png" width="29" height="29"/>
|
|
||||||
<image name="cancel_edit_disabled.png" width="29" height="29"/>
|
|
||||||
<image name="color_A.png" width="2" height="2"/>
|
|
||||||
<image name="color_E.png" width="2" height="2"/>
|
|
||||||
<image name="color_F.png" width="2" height="2"/>
|
|
||||||
<image name="contact_add_default.png" width="34" height="29"/>
|
|
||||||
<image name="contact_add_disabled.png" width="34" height="29"/>
|
|
||||||
<image name="contacts_all_default.png" width="32" height="27"/>
|
|
||||||
<image name="contacts_all_disabled.png" width="32" height="27"/>
|
|
||||||
<image name="contacts_all_selected.png" width="32" height="27"/>
|
|
||||||
<image name="contacts_sip_default.png" width="38" height="30"/>
|
|
||||||
<image name="contacts_sip_disabled.png" width="38" height="30"/>
|
|
||||||
<image name="contacts_sip_selected.png" width="38" height="30"/>
|
|
||||||
<image name="delete_default.png" width="21" height="28"/>
|
|
||||||
<image name="delete_disabled.png" width="21" height="28"/>
|
|
||||||
<image name="deselect_all.png" width="27" height="27"/>
|
|
||||||
<image name="edit_list_default.png" width="30" height="28"/>
|
|
||||||
<image name="edit_list_disabled.png" width="30" height="28"/>
|
|
||||||
<image name="select_all_default.png" width="27" height="27"/>
|
|
||||||
<image name="select_all_disabled.png" width="27" height="27"/>
|
|
||||||
</resources>
|
|
||||||
<simulatedMetricsContainer key="defaultSimulatedMetrics">
|
|
||||||
<simulatedStatusBarMetrics key="statusBar"/>
|
|
||||||
<simulatedOrientationMetrics key="orientation"/>
|
|
||||||
<simulatedScreenMetrics key="destination"/>
|
|
||||||
</simulatedMetricsContainer>
|
|
||||||
</document>
|
|
||||||
Binary file not shown.
Binary file not shown.
|
|
@ -1,99 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="11542" systemVersion="16B2555" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" colorMatched="YES">
|
|
||||||
<device id="retina4_7" orientation="portrait">
|
|
||||||
<adaptation id="fullscreen"/>
|
|
||||||
</device>
|
|
||||||
<dependencies>
|
|
||||||
<deployment identifier="iOS"/>
|
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11524"/>
|
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
|
||||||
</dependencies>
|
|
||||||
<objects>
|
|
||||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="CountryListView">
|
|
||||||
<connections>
|
|
||||||
<outlet property="searchDisplayController" destination="Fzt-cO-ZZd" id="yWw-yG-tfg"/>
|
|
||||||
<outlet property="tableView" destination="UcW-gD-iwL" id="878-PR-Gn9"/>
|
|
||||||
<outlet property="view" destination="1" id="3"/>
|
|
||||||
</connections>
|
|
||||||
</placeholder>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
|
||||||
<view contentMode="scaleToFill" id="1">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view tag="2" contentMode="scaleToFill" id="418-8u-hzT" userLabel="topBar">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="3" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_F.png" id="Rq2-JR-1jE" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="5" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="SELECT A COUNTRY" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="MLt-gO-M3J" userLabel="titleLabel">
|
|
||||||
<rect key="frame" x="83" y="0.0" width="209" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.98766469955444336" green="0.27512490749359131" blue="0.029739789664745331" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<button opaque="NO" tag="6" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="hOj-Kl-K9W" userLabel="backButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Back"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="back_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="back_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onCancelClick:" destination="-1" eventType="touchUpInside" id="DTU-Ur-aPJ"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" rowHeight="40" sectionHeaderHeight="22" sectionFooterHeight="22" id="UcW-gD-iwL">
|
|
||||||
<rect key="frame" x="0.0" y="109" width="375" height="558"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<color key="separatorColor" red="0.66666666666666663" green="0.66666666666666663" blue="0.66666666666666663" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<inset key="separatorInset" minX="15" minY="0.0" maxX="0.0" maxY="0.0"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="dataSource" destination="-1" id="29f-d6-ctV"/>
|
|
||||||
<outlet property="delegate" destination="-1" id="Dg5-gz-Qgm"/>
|
|
||||||
</connections>
|
|
||||||
</tableView>
|
|
||||||
<searchBar contentMode="redraw" id="Ipz-Nn-2z3">
|
|
||||||
<rect key="frame" x="0.0" y="65" width="375" height="44"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<textInputTraits key="textInputTraits"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="delegate" destination="-1" id="iL7-Xf-Ila"/>
|
|
||||||
</connections>
|
|
||||||
</searchBar>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="0.93620026111602783" green="0.94070994853973389" blue="0.95069998502731323" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="simulatedStatusBarMetrics"/>
|
|
||||||
</view>
|
|
||||||
<searchDisplayController id="Fzt-cO-ZZd">
|
|
||||||
<connections>
|
|
||||||
<outlet property="delegate" destination="-1" id="TiS-Oi-O2O"/>
|
|
||||||
<outlet property="searchBar" destination="Ipz-Nn-2z3" id="MMD-qU-wyt"/>
|
|
||||||
<outlet property="searchContentsController" destination="-1" id="CXr-Rc-c3m"/>
|
|
||||||
<outlet property="searchResultsDataSource" destination="-1" id="D0N-dF-fAE"/>
|
|
||||||
<outlet property="searchResultsDelegate" destination="-1" id="hKg-ZM-V4D"/>
|
|
||||||
</connections>
|
|
||||||
</searchDisplayController>
|
|
||||||
</objects>
|
|
||||||
<resources>
|
|
||||||
<image name="back_default.png" width="24" height="22"/>
|
|
||||||
<image name="back_disabled.png" width="24" height="22"/>
|
|
||||||
<image name="color_E.png" width="2" height="2"/>
|
|
||||||
<image name="color_F.png" width="2" height="2"/>
|
|
||||||
</resources>
|
|
||||||
<simulatedMetricsContainer key="defaultSimulatedMetrics">
|
|
||||||
<simulatedStatusBarMetrics key="statusBar"/>
|
|
||||||
<simulatedOrientationMetrics key="orientation"/>
|
|
||||||
<simulatedScreenMetrics key="destination" type="retina4_7.fullscreen"/>
|
|
||||||
</simulatedMetricsContainer>
|
|
||||||
</document>
|
|
||||||
Binary file not shown.
|
|
@ -1,343 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="10116" systemVersion="15E65" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
|
||||||
<dependencies>
|
|
||||||
<deployment identifier="iOS"/>
|
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
|
|
||||||
</dependencies>
|
|
||||||
<objects>
|
|
||||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="DialerView">
|
|
||||||
<connections>
|
|
||||||
<outlet property="addContactButton" destination="222" id="225"/>
|
|
||||||
<outlet property="addressField" destination="4" id="205"/>
|
|
||||||
<outlet property="backButton" destination="183" id="d75-ly-K6w"/>
|
|
||||||
<outlet property="backspaceButton" destination="8dc-hj-rvt" id="6p9-p4-QAN"/>
|
|
||||||
<outlet property="callButton" destination="224" id="231"/>
|
|
||||||
<outlet property="eightButton" destination="35" id="204"/>
|
|
||||||
<outlet property="fiveButton" destination="31" id="195"/>
|
|
||||||
<outlet property="fourButton" destination="30" id="194"/>
|
|
||||||
<outlet property="hashButton" destination="41" id="4Vx-Tl-ywI"/>
|
|
||||||
<outlet property="landscapeView" destination="171" id="mdM-t5-k4V"/>
|
|
||||||
<outlet property="nineButton" destination="36" id="200"/>
|
|
||||||
<outlet property="oneButton" destination="38" id="191"/>
|
|
||||||
<outlet property="padView" destination="180" id="bxG-9v-Pvj"/>
|
|
||||||
<outlet property="portraitView" destination="171" id="GLX-cG-iOA"/>
|
|
||||||
<outlet property="sevenButton" destination="34" id="197"/>
|
|
||||||
<outlet property="sixButton" destination="33" id="196"/>
|
|
||||||
<outlet property="starButton" destination="39" id="199"/>
|
|
||||||
<outlet property="threeButton" destination="29" id="193"/>
|
|
||||||
<outlet property="twoButton" destination="37" id="192"/>
|
|
||||||
<outlet property="view" destination="171" id="176"/>
|
|
||||||
<outlet property="zeroButton" destination="40" id="198"/>
|
|
||||||
</connections>
|
|
||||||
</placeholder>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
|
||||||
<view contentMode="scaleToFill" id="qaB-qV-B0p" userLabel="iphone6MetricsView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="540" height="960"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view contentMode="scaleToFill" id="171">
|
|
||||||
<rect key="frame" x="0.0" y="42" width="540" height="852"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view clipsSubviews="YES" contentMode="scaleToFill" id="178" userLabel="dialer">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="540" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_F.png" id="56Z-ia-Pln" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="540" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<textField opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter a number or an address" adjustsFontSizeToFit="NO" minimumFontSize="5" id="4" userLabel="addressField" customClass="UIAddressTextField">
|
|
||||||
<rect key="frame" x="31" y="0.0" width="426" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Enter an address"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="33"/>
|
|
||||||
<textInputTraits key="textInputTraits" autocorrectionType="no" keyboardType="alphabet" returnKeyType="join"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onAddressChange:" destination="-1" eventType="editingChanged" id="FdS-Kl-3dS"/>
|
|
||||||
<outlet property="delegate" destination="-1" id="190"/>
|
|
||||||
</connections>
|
|
||||||
</textField>
|
|
||||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="8dc-hj-rvt" userLabel="backspaceButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="475" y="0.0" width="60" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<state key="normal" image="backspace_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="backspace_disabled.png"/>
|
|
||||||
<state key="highlighted" image="backspace_over.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onBackspaceClick:" destination="-1" eventType="touchUpInside" id="sWE-Ch-kAr"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="2" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="dialer_background.png" id="AH0-S5-0Ku" userLabel="logoImage">
|
|
||||||
<rect key="frame" x="100" y="279" width="340" height="294"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<view contentMode="scaleToFill" id="180" userLabel="pad">
|
|
||||||
<rect key="frame" x="0.0" y="66" width="540" height="720"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="38" userLabel="1" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="173" height="170"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" red="0.40000001000000002" green="1" blue="1" alpha="0.0" colorSpace="calibratedRGB"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="1"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_1_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_1_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="4" id="240"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="37" userLabel="2" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="184" y="0.0" width="173" height="170"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="2"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_2_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_2_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="4" id="241"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="29" userLabel="3" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="367" y="0.0" width="173" height="170"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="3"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_3_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_3_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="4" id="242"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="30" userLabel="4" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="0.0" y="180" width="173" height="171"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="4"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_4_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_4_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="4" id="243"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="31" userLabel="5" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="184" y="180" width="173" height="171"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="5"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_5_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_5_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="4" id="244"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="33" userLabel="6" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="367" y="180" width="173" height="171"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="6"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_6_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_6_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="4" id="245"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="34" userLabel="7" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="0.0" y="361" width="173" height="170"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="7"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_7_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_7_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="4" id="246"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="35" userLabel="8" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="184" y="361" width="173" height="170"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="8"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_8_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_8_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="4" id="247"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="36" userLabel="9" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="367" y="361" width="173" height="170"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="9"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_9_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_9_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="4" id="248"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="39" userLabel="*" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="0.0" y="543" width="173" height="170"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Star"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_star_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_star_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="4" id="249"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="40" userLabel="0" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="184" y="543" width="173" height="170"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="0"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_0_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_0_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="4" id="250"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="41" userLabel="#" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="367" y="543" width="173" height="170"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Hash"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_hash_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_hash_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="4" id="251"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</view>
|
|
||||||
<view contentMode="scaleToFill" id="182" userLabel="bottomBar">
|
|
||||||
<rect key="frame" x="0.0" y="786" width="540" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="183" userLabel="backButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="180" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Back"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<state key="normal" image="call_alt_back_default.png" backgroundImage="color_F.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="call_alt_back_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onBackClick:" destination="-1" eventType="touchUpInside" id="233"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="222" userLabel="addContactButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="180" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Add to contact"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<state key="normal" image="contact_add_default.png" backgroundImage="color_F.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="contact_add_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onAddContactClick:" destination="-1" eventType="touchUpInside" id="230"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="224" userLabel="callButton" customClass="UICallButton">
|
|
||||||
<rect key="frame" x="180" y="0.0" width="360" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Call"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<state key="normal" image="call_audio_start_default.png" backgroundImage="color_A.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="call_audio_start_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_L.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="4" id="235"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="1" alpha="0.0" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
|
|
||||||
<point key="canvasLocation" x="-68" y="223"/>
|
|
||||||
</view>
|
|
||||||
</objects>
|
|
||||||
<resources>
|
|
||||||
<image name="backspace_default.png" width="36" height="19"/>
|
|
||||||
<image name="backspace_disabled.png" width="36" height="19"/>
|
|
||||||
<image name="backspace_over.png" width="36" height="19"/>
|
|
||||||
<image name="call_alt_back_default.png" width="50" height="36"/>
|
|
||||||
<image name="call_alt_back_disabled.png" width="50" height="36"/>
|
|
||||||
<image name="call_audio_start_default.png" width="36" height="36"/>
|
|
||||||
<image name="call_audio_start_disabled.png" width="36" height="36"/>
|
|
||||||
<image name="color_A.png" width="2" height="2"/>
|
|
||||||
<image name="color_E.png" width="2" height="2"/>
|
|
||||||
<image name="color_F.png" width="2" height="2"/>
|
|
||||||
<image name="color_L.png" width="2" height="2"/>
|
|
||||||
<image name="contact_add_default.png" width="34" height="29"/>
|
|
||||||
<image name="contact_add_disabled.png" width="34" height="29"/>
|
|
||||||
<image name="dialer_background.png" width="408" height="350"/>
|
|
||||||
<image name="numpad_0_default.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_0_over.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_1_default.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_1_over.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_2_default.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_2_over.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_3_default.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_3_over.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_4_default.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_4_over.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_5_default.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_5_over.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_6_default.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_6_over.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_7_default.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_7_over.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_8_default.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_8_over.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_9_default.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_9_over.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_hash_default.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_hash_over.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_over_background.png" width="2" height="2"/>
|
|
||||||
<image name="numpad_star_default.png" width="52" height="50"/>
|
|
||||||
<image name="numpad_star_over.png" width="52" height="50"/>
|
|
||||||
</resources>
|
|
||||||
</document>
|
|
||||||
Binary file not shown.
|
|
@ -1,677 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="10116" systemVersion="15E65" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
|
||||||
<dependencies>
|
|
||||||
<deployment identifier="iOS"/>
|
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
|
|
||||||
</dependencies>
|
|
||||||
<objects>
|
|
||||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="DialerView">
|
|
||||||
<connections>
|
|
||||||
<outlet property="addContactButton" destination="222" id="225"/>
|
|
||||||
<outlet property="addressField" destination="4" id="205"/>
|
|
||||||
<outlet property="backButton" destination="183" id="d75-ly-K6w"/>
|
|
||||||
<outlet property="backspaceButton" destination="8dc-hj-rvt" id="6p9-p4-QAN"/>
|
|
||||||
<outlet property="callButton" destination="224" id="231"/>
|
|
||||||
<outlet property="eightButton" destination="35" id="204"/>
|
|
||||||
<outlet property="fiveButton" destination="31" id="195"/>
|
|
||||||
<outlet property="fourButton" destination="30" id="194"/>
|
|
||||||
<outlet property="hashButton" destination="41" id="4Vx-Tl-ywI"/>
|
|
||||||
<outlet property="landscapeView" destination="MqR-YI-CLm" id="18Z-8w-XWB"/>
|
|
||||||
<outlet property="nineButton" destination="36" id="200"/>
|
|
||||||
<outlet property="oneButton" destination="38" id="191"/>
|
|
||||||
<outlet property="portraitView" destination="171" id="yo2-xo-4wI"/>
|
|
||||||
<outlet property="sevenButton" destination="34" id="197"/>
|
|
||||||
<outlet property="sixButton" destination="33" id="196"/>
|
|
||||||
<outlet property="starButton" destination="39" id="199"/>
|
|
||||||
<outlet property="threeButton" destination="29" id="193"/>
|
|
||||||
<outlet property="twoButton" destination="37" id="192"/>
|
|
||||||
<outlet property="videoPreview" destination="30b-JN-Ibj" id="Kwj-av-WIg"/>
|
|
||||||
<outlet property="view" destination="171" id="176"/>
|
|
||||||
<outlet property="zeroButton" destination="40" id="198"/>
|
|
||||||
</connections>
|
|
||||||
</placeholder>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
|
||||||
<view contentMode="scaleToFill" id="qaB-qV-B0p" userLabel="iphone6MetricsView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="800" height="1290"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view contentMode="scaleToFill" id="171">
|
|
||||||
<rect key="frame" x="0.0" y="60" width="800" height="1130"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="1" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_D.png" id="PI3-CU-FXR" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="800" height="1130"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="2" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="dialer_background.png" id="tsy-aZ-cHg" userLabel="logoImage">
|
|
||||||
<rect key="frame" x="8" y="112" width="784" height="480"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<view tag="3" contentMode="scaleAspectFill" id="30b-JN-Ibj" userLabel="preview">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="800" height="1210"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
|
||||||
</view>
|
|
||||||
<view tag="4" contentMode="scaleAspectFit" id="g6f-Xa-Veg">
|
|
||||||
<rect key="frame" x="245" y="600" width="310" height="450"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view clipsSubviews="YES" tag="5" contentMode="scaleToFill" id="178" userLabel="dialer">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="310" height="80"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="6" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_F.png" id="56Z-ia-Pln" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="310" height="80"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<textField opaque="NO" clearsContextBeforeDrawing="NO" tag="7" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter a number or an address" adjustsFontSizeToFit="NO" minimumFontSize="5" id="4" userLabel="addressField" customClass="UIAddressTextField">
|
|
||||||
<rect key="frame" x="8" y="0.0" width="239" height="80"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Enter an address"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="21"/>
|
|
||||||
<textInputTraits key="textInputTraits" autocorrectionType="no" keyboardType="alphabet" returnKeyType="join"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onAddressChange:" destination="-1" eventType="editingChanged" id="FdS-Kl-3dS"/>
|
|
||||||
<outlet property="delegate" destination="-1" id="190"/>
|
|
||||||
</connections>
|
|
||||||
</textField>
|
|
||||||
<button opaque="NO" tag="8" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="8dc-hj-rvt" userLabel="backspaceButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="245" y="0.0" width="60" height="80"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<state key="normal" image="backspace_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="backspace_disabled.png"/>
|
|
||||||
<state key="highlighted" image="backspace_over.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onBackspaceClick:" destination="-1" eventType="touchUpInside" id="sWE-Ch-kAr"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
<view tag="9" contentMode="scaleToFill" id="180" userLabel="pad">
|
|
||||||
<rect key="frame" x="0.0" y="80" width="310" height="290"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="10" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="38" userLabel="1" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="27" y="8" width="50" height="59"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" red="0.40000001000000002" green="1" blue="1" alpha="0.0" colorSpace="calibratedRGB"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="1"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_1_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_1_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="4" id="240"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="11" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="37" userLabel="2" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="130" y="8" width="49" height="59"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="2"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_2_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_2_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="4" id="241"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="12" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="29" userLabel="3" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="232" y="8" width="50" height="59"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="3"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_3_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_3_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="4" id="242"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="13" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="30" userLabel="4" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="27" y="78" width="50" height="59"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="4"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_4_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_4_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="4" id="243"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="14" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="31" userLabel="5" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="130" y="78" width="49" height="59"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="5"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_5_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_5_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="4" id="244"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="15" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="33" userLabel="6" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="232" y="78" width="50" height="59"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="6"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_6_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_6_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="4" id="245"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="16" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="34" userLabel="7" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="27" y="150" width="50" height="59"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="7"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_7_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_7_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="4" id="246"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="17" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="35" userLabel="8" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="130" y="150" width="49" height="59"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="8"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_8_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_8_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="4" id="247"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="18" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="36" userLabel="9" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="232" y="150" width="50" height="59"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="9"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_9_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_9_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="4" id="248"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="19" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="39" userLabel="*" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="27" y="223" width="50" height="61"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Star"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_star_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_star_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="4" id="249"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="20" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="40" userLabel="0" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="130" y="223" width="49" height="61"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="0"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_0_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_0_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="4" id="250"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="21" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="41" userLabel="#" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="232" y="223" width="50" height="61"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Hash"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_hash_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_hash_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="4" id="251"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
|
||||||
</view>
|
|
||||||
<view tag="22" contentMode="scaleToFill" id="182" userLabel="bottomBar">
|
|
||||||
<rect key="frame" x="0.0" y="370" width="310" height="80"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<button hidden="YES" opaque="NO" tag="23" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="183" userLabel="backButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="102" height="80"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Back"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<state key="normal" image="call_alt_back_default.png" backgroundImage="color_F.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="call_alt_back_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onBackClick:" destination="-1" eventType="touchUpInside" id="233"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="24" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="222" userLabel="addContactButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="102" height="80"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Add to contact"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<state key="normal" image="contact_add_default.png" backgroundImage="color_F.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="contact_add_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onAddContactClick:" destination="-1" eventType="touchUpInside" id="230"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="25" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="224" userLabel="callButton" customClass="UICallButton">
|
|
||||||
<rect key="frame" x="102" y="0.0" width="208" height="80"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Call"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<state key="normal" image="call_audio_start_default.png" backgroundImage="color_A.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="call_audio_start_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_L.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="4" id="235"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="1" alpha="0.0" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</view>
|
|
||||||
<button opaque="NO" tag="28" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="Ufj-N6-yzz" userLabel="videoCameraSwitch" customClass="UICamSwitch">
|
|
||||||
<rect key="frame" x="52" y="52" width="52" height="52"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Switch camera"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<state key="normal" image="camera_switch_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="camera_switch_disabled.png"/>
|
|
||||||
<state key="selected" image="camera_switch_over.png"/>
|
|
||||||
<state key="highlighted" image="camera_switch_over.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="preview" destination="30b-JN-Ibj" id="k1G-ea-6Rx"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
|
|
||||||
<point key="canvasLocation" x="-68" y="222"/>
|
|
||||||
</view>
|
|
||||||
<view contentMode="scaleToFill" id="bb3-7f-P2J" userLabel="iphone6MetricsView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="1290" height="800"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view contentMode="scaleToFill" id="MqR-YI-CLm">
|
|
||||||
<rect key="frame" x="50" y="30" width="1240" height="770"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="1" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_D.png" id="zau-s9-ek6" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="1240" height="770"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="2" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="dialer_background.png" id="bV0-6N-YFL" userLabel="logoImage">
|
|
||||||
<rect key="frame" x="143" y="265" width="240" height="240"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<view tag="3" contentMode="scaleAspectFill" id="lTn-ab-KJ5" userLabel="preview">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="1240" height="770"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
|
||||||
</view>
|
|
||||||
<view tag="4" contentMode="scaleToFill" id="PoL-pc-Siz">
|
|
||||||
<rect key="frame" x="800" y="150" width="308" height="450"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view clipsSubviews="YES" tag="5" contentMode="scaleToFill" id="bWv-bb-iGU" userLabel="dialer">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="308" height="80"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="6" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_F.png" id="oRb-An-MG9" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="308" height="80"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<textField opaque="NO" clearsContextBeforeDrawing="NO" tag="7" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter a number or an address" adjustsFontSizeToFit="NO" minimumFontSize="5" id="Omx-NU-xKz" userLabel="addressField" customClass="UIAddressTextField">
|
|
||||||
<rect key="frame" x="8" y="0.0" width="237" height="80"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Enter an address"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="21"/>
|
|
||||||
<textInputTraits key="textInputTraits" autocorrectionType="no" keyboardType="alphabet" returnKeyType="join"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onAddressChange:" destination="-1" eventType="editingChanged" id="Mrk-Jf-aVG"/>
|
|
||||||
<outlet property="delegate" destination="-1" id="I1Q-pW-WqW"/>
|
|
||||||
</connections>
|
|
||||||
</textField>
|
|
||||||
<button opaque="NO" tag="8" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="Zzz-qk-9Nv" userLabel="backspaceButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="243" y="0.0" width="60" height="80"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<state key="normal" image="backspace_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="backspace_disabled.png"/>
|
|
||||||
<state key="highlighted" image="backspace_over.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onBackspaceClick:" destination="-1" eventType="touchUpInside" id="a6G-bZ-MUN"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
<view tag="9" contentMode="scaleToFill" id="WVV-JM-vAB" userLabel="pad">
|
|
||||||
<rect key="frame" x="0.0" y="80" width="308" height="290"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="10" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="XNH-ME-cgh" userLabel="1" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="27" y="9" width="50" height="57"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" red="0.40000001000000002" green="1" blue="1" alpha="0.0" colorSpace="calibratedRGB"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="1"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_1_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_1_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="Omx-NU-xKz" id="fde-ao-erE"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="11" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="80y-z2-xNu" userLabel="2" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="127" y="9" width="50" height="57"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="2"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_2_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_2_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="Omx-NU-xKz" id="dgP-Dh-hKr"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="12" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="2VD-Qx-3nV" userLabel="3" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="231" y="9" width="48" height="57"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="3"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_3_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_3_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="Omx-NU-xKz" id="GJu-8d-P6C"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="13" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="0v7-Yf-R1e" userLabel="4" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="27" y="74" width="50" height="62"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="4"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_4_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_4_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="Omx-NU-xKz" id="LLR-dd-7Bw"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="14" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="uoL-3m-hHe" userLabel="5" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="127" y="74" width="50" height="62"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="5"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_5_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_5_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="Omx-NU-xKz" id="aYv-Av-5ln"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="15" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="O8K-fk-DbU" userLabel="6" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="231" y="74" width="48" height="62"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="6"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_6_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_6_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="Omx-NU-xKz" id="18X-Wm-Y74"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="16" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="bc0-Lq-cOG" userLabel="7" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="27" y="148" width="50" height="63"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="7"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_7_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_7_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="Omx-NU-xKz" id="WlQ-5m-Q74"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="17" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="4qk-Qr-8je" userLabel="8" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="127" y="148" width="50" height="63"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="8"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_8_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_8_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="Omx-NU-xKz" id="Flg-0Q-Ajz"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="18" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="EXT-Ir-0wP" userLabel="9" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="231" y="148" width="48" height="63"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="9"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_9_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_9_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="Omx-NU-xKz" id="HhR-xs-sWe"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="19" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="G19-A6-Rxb" userLabel="*" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="27" y="223" width="50" height="59"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Star"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_star_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_star_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="Omx-NU-xKz" id="r6k-FB-rTc"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="20" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="X2v-mg-lUX" userLabel="0" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="127" y="223" width="50" height="59"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="0"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_0_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_0_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="Omx-NU-xKz" id="5FS-Ah-Er0"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="21" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="Gy0-g6-fkd" userLabel="#" customClass="UIDigitButton">
|
|
||||||
<rect key="frame" x="231" y="223" width="48" height="59"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Hash"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<state key="normal" image="numpad_hash_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="highlighted" image="numpad_hash_over.png" backgroundImage="numpad_over_background.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="Omx-NU-xKz" id="XHz-7y-W70"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
|
||||||
</view>
|
|
||||||
<view tag="22" contentMode="scaleToFill" id="uZC-xM-Vr8" userLabel="bottomBar">
|
|
||||||
<rect key="frame" x="0.0" y="370" width="308" height="80"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<button hidden="YES" opaque="NO" tag="23" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="NXp-Xe-hoC" userLabel="backButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="101" height="80"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Back"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<state key="normal" image="call_alt_back_default.png" backgroundImage="color_F.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="call_alt_back_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onBackClick:" destination="-1" eventType="touchUpInside" id="Spu-0j-69j"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="24" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="J9S-Iv-omW" userLabel="addContactButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="101" height="80"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Add to contact"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<state key="normal" image="contact_add_default.png" backgroundImage="color_F.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="contact_add_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onAddContactClick:" destination="-1" eventType="touchUpInside" id="h8a-GJ-PF6"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="25" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="bDX-Vc-MA9" userLabel="callButton" customClass="UICallButton">
|
|
||||||
<rect key="frame" x="101" y="0.0" width="207" height="80"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Call"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<state key="normal" image="call_audio_start_default.png" backgroundImage="color_A.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="call_audio_start_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_L.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressField" destination="Omx-NU-xKz" id="L5w-fg-hu4"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="1" alpha="0.0" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</view>
|
|
||||||
<button opaque="NO" tag="28" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="jLj-JN-7LZ" userLabel="videoCameraSwitch" customClass="UICamSwitch">
|
|
||||||
<rect key="frame" x="52" y="52" width="52" height="52"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Switch camera"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
|
||||||
<state key="normal" image="camera_switch_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="camera_switch_disabled.png"/>
|
|
||||||
<state key="selected" image="camera_switch_over.png"/>
|
|
||||||
<state key="highlighted" image="camera_switch_over.png"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="preview" destination="lTn-ab-KJ5" id="iAl-HJ-S5k"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
|
|
||||||
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
|
|
||||||
<point key="canvasLocation" x="-68" y="222.5"/>
|
|
||||||
</view>
|
|
||||||
</objects>
|
|
||||||
<resources>
|
|
||||||
<image name="backspace_default.png" width="36" height="19"/>
|
|
||||||
<image name="backspace_disabled.png" width="36" height="19"/>
|
|
||||||
<image name="backspace_over.png" width="36" height="19"/>
|
|
||||||
<image name="call_alt_back_default.png" width="50" height="36"/>
|
|
||||||
<image name="call_alt_back_disabled.png" width="50" height="36"/>
|
|
||||||
<image name="call_audio_start_default.png" width="36" height="36"/>
|
|
||||||
<image name="call_audio_start_disabled.png" width="36" height="36"/>
|
|
||||||
<image name="camera_switch_default.png" width="51" height="50"/>
|
|
||||||
<image name="camera_switch_disabled.png" width="51" height="50"/>
|
|
||||||
<image name="camera_switch_over.png" width="51" height="50"/>
|
|
||||||
<image name="color_A.png" width="2" height="2"/>
|
|
||||||
<image name="color_D.png" width="2" height="2"/>
|
|
||||||
<image name="color_E.png" width="2" height="2"/>
|
|
||||||
<image name="color_F.png" width="2" height="2"/>
|
|
||||||
<image name="color_L.png" width="2" height="2"/>
|
|
||||||
<image name="contact_add_default.png" width="34" height="29"/>
|
|
||||||
<image name="contact_add_disabled.png" width="34" height="29"/>
|
|
||||||
<image name="dialer_background.png" width="408" height="350"/>
|
|
||||||
<image name="numpad_0_default.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_0_over.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_1_default.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_1_over.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_2_default.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_2_over.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_3_default.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_3_over.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_4_default.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_4_over.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_5_default.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_5_over.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_6_default.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_6_over.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_7_default.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_7_over.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_8_default.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_8_over.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_9_default.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_9_over.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_hash_default.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_hash_over.png" width="52" height="48"/>
|
|
||||||
<image name="numpad_over_background.png" width="2" height="2"/>
|
|
||||||
<image name="numpad_star_default.png" width="52" height="50"/>
|
|
||||||
<image name="numpad_star_over.png" width="52" height="50"/>
|
|
||||||
</resources>
|
|
||||||
</document>
|
|
||||||
Binary file not shown.
|
|
@ -1,310 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9531" systemVersion="15D21" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
|
||||||
<dependencies>
|
|
||||||
<deployment identifier="iOS"/>
|
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9529"/>
|
|
||||||
</dependencies>
|
|
||||||
<objects>
|
|
||||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="FirstLoginView">
|
|
||||||
<connections>
|
|
||||||
<outlet property="domainField" destination="w8z-ad-o8e" id="QC5-dU-UKn"/>
|
|
||||||
<outlet property="landscapeView" destination="fFD-iL-Jo0" id="RoE-70-E4p"/>
|
|
||||||
<outlet property="loginButton" destination="8H9-Gf-7ZL" id="e1g-x6-PCO"/>
|
|
||||||
<outlet property="passwordField" destination="BBC-uD-FIM" id="JEo-he-9QU"/>
|
|
||||||
<outlet property="portraitView" destination="Wa7-dw-UAu" id="cFs-v7-z1R"/>
|
|
||||||
<outlet property="usernameField" destination="vaw-qL-SCR" id="KTu-qn-3am"/>
|
|
||||||
<outlet property="view" destination="Wa7-dw-UAu" id="6r1-Cb-nOi"/>
|
|
||||||
<outlet property="waitView" destination="31" id="57"/>
|
|
||||||
</connections>
|
|
||||||
</placeholder>
|
|
||||||
<view contentMode="scaleToFill" id="Wa7-dw-UAu">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<scrollView clipsSubviews="YES" multipleTouchEnabled="YES" tag="1" contentMode="scaleToFill" id="Be1-UD-ZIL" customClass="TPKeyboardAvoidingScrollView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="2" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="linphone_logo.png" id="JsZ-cm-gih" userLabel="logoImage">
|
|
||||||
<rect key="frame" x="20" y="46" width="93" height="93"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="3" contentMode="left" text="Welcome" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="ddC-mF-O2L" userLabel="titleLabel">
|
|
||||||
<rect key="frame" x="121" y="46" width="254" height="48"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Welcome"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="33"/>
|
|
||||||
<color key="textColor" red="0.2666666667" green="0.2666666667" blue="0.2666666667" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
<size key="shadowOffset" width="-1" height="-1"/>
|
|
||||||
</label>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="4" contentMode="left" text="Enter your credentials" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" minimumFontSize="10" id="h9m-R1-9c4" userLabel="subtitleLabel">
|
|
||||||
<rect key="frame" x="121" y="98" width="254" height="42"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label=""/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="19"/>
|
|
||||||
<color key="textColor" red="1" green="0.36862745099999999" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
<size key="shadowOffset" width="-1" height="-1"/>
|
|
||||||
</label>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="5" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="USERNAME" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="aM8-yf-s5d" userLabel="usernameLabel">
|
|
||||||
<rect key="frame" x="20" y="186" width="335" height="20"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="13"/>
|
|
||||||
<color key="textColor" red="0.50196078430000002" green="0.50196078430000002" blue="0.50196078430000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<textField opaque="NO" clipsSubviews="YES" tag="6" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" adjustsFontSizeToFit="NO" minimumFontSize="10" id="vaw-qL-SCR" userLabel="usernameField" customClass="UIAssistantTextField">
|
|
||||||
<rect key="frame" x="20" y="214" width="335" height="43"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" red="0.88235294119999996" green="0.88235294119999996" blue="0.88235294119999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Username"/>
|
|
||||||
<color key="textColor" red="0.2666666667" green="0.2666666667" blue="0.2666666667" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
|
||||||
<textInputTraits key="textInputTraits" autocorrectionType="no" returnKeyType="next"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="delegate" destination="-1" id="Fml-De-aww"/>
|
|
||||||
<outlet property="errorLabel" destination="Ym3-AJ-VDD" id="YzJ-Uo-FtX"/>
|
|
||||||
</connections>
|
|
||||||
</textField>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="7" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Invalid username" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" id="Ym3-AJ-VDD" userLabel="usernameErrorLabel">
|
|
||||||
<rect key="frame" x="20" y="259" width="335" height="15"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="9"/>
|
|
||||||
<color key="textColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="8" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="DOMAIN" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="FdB-x1-lgt" userLabel="domainLabel">
|
|
||||||
<rect key="frame" x="20" y="288" width="335" height="14"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="13"/>
|
|
||||||
<color key="textColor" red="0.50196078430000002" green="0.50196078430000002" blue="0.50196078430000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<textField opaque="NO" clipsSubviews="YES" tag="9" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="sip.linphone.org" borderStyle="roundedRect" adjustsFontSizeToFit="NO" minimumFontSize="10" id="w8z-ad-o8e" userLabel="domainField" customClass="UIAssistantTextField">
|
|
||||||
<rect key="frame" x="20" y="312" width="335" height="43"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" red="0.88235294119999996" green="0.88235294119999996" blue="0.88235294119999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Domain"/>
|
|
||||||
<color key="textColor" red="0.2666666667" green="0.2666666667" blue="0.2666666667" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
|
||||||
<textInputTraits key="textInputTraits" autocorrectionType="no" returnKeyType="next"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="delegate" destination="-1" id="CgQ-c2-2d9"/>
|
|
||||||
<outlet property="errorLabel" destination="sng-3P-5z8" id="DHj-OF-TIc"/>
|
|
||||||
</connections>
|
|
||||||
</textField>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="10" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Invalid domain" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" id="sng-3P-5z8" userLabel="domainErrorLabel">
|
|
||||||
<rect key="frame" x="20" y="357" width="335" height="15"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="9"/>
|
|
||||||
<color key="textColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="11" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="PASSWORD" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="kjU-P0-ji6" userLabel="passwordLabel">
|
|
||||||
<rect key="frame" x="20" y="386" width="335" height="14"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="13"/>
|
|
||||||
<color key="textColor" red="0.50196078430000002" green="0.50196078430000002" blue="0.50196078430000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<textField opaque="NO" clipsSubviews="YES" tag="12" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" adjustsFontSizeToFit="NO" minimumFontSize="10" id="BBC-uD-FIM" userLabel="passwordField" customClass="UIAssistantTextField">
|
|
||||||
<rect key="frame" x="20" y="408" width="335" height="43"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" red="0.88235294119999996" green="0.88235294119999996" blue="0.88235294119999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Password"/>
|
|
||||||
<color key="textColor" red="0.2666666667" green="0.2666666667" blue="0.2666666667" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
|
||||||
<textInputTraits key="textInputTraits" autocorrectionType="no" returnKeyType="done" secureTextEntry="YES"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="delegate" destination="-1" id="e4F-kt-Udb"/>
|
|
||||||
<outlet property="errorLabel" destination="zTY-fc-a6l" id="uAR-NP-WXe"/>
|
|
||||||
</connections>
|
|
||||||
</textField>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="13" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Invalid password" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" id="zTY-fc-a6l" userLabel="passwordErrorLabel">
|
|
||||||
<rect key="frame" x="20" y="459" width="335" height="15"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="9"/>
|
|
||||||
<color key="textColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<button opaque="NO" tag="14" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="8H9-Gf-7ZL" userLabel="downloadButton" customClass="UIRoundBorderedButton">
|
|
||||||
<rect key="frame" x="20" y="498" width="335" height="54"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" red="0.2666666667" green="0.2666666667" blue="0.2666666667" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Fetch and apply">
|
|
||||||
<bool key="isElement" value="YES"/>
|
|
||||||
</accessibility>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
|
||||||
<state key="normal" title="LOGIN"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onLoginClick:" destination="-1" eventType="touchUpInside" id="BX7-xj-kmf"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</scrollView>
|
|
||||||
<view hidden="YES" clearsContextBeforeDrawing="NO" tag="16" contentMode="scaleToFill" id="31" userLabel="waitView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<activityIndicatorView opaque="NO" clearsContextBeforeDrawing="NO" userInteractionEnabled="NO" tag="17" contentMode="scaleToFill" animating="YES" style="whiteLarge" id="32" userLabel="activityIndicator">
|
|
||||||
<rect key="frame" x="169" y="314" width="37" height="37"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
</activityIndicatorView>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="1" alpha="0.66000000000000003" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina47"/>
|
|
||||||
</view>
|
|
||||||
<view contentMode="scaleToFill" id="fFD-iL-Jo0">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="667" height="375"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<scrollView clipsSubviews="YES" multipleTouchEnabled="YES" tag="1" contentMode="scaleToFill" id="i7c-YH-msu" customClass="TPKeyboardAvoidingScrollView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="667" height="375"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="2" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="linphone_logo.png" id="eAY-9z-N0l" userLabel="logoImage">
|
|
||||||
<rect key="frame" x="158" y="23" width="64" height="64"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="3" contentMode="left" text="Welcome" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="HUU-k8-6kx" userLabel="titleLabel">
|
|
||||||
<rect key="frame" x="238" y="23" width="270" height="31"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Welcome"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="33"/>
|
|
||||||
<color key="textColor" red="0.2666666667" green="0.2666666667" blue="0.2666666667" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
<size key="shadowOffset" width="-1" height="-1"/>
|
|
||||||
</label>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="4" contentMode="left" text="Enter your credentials" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" minimumFontSize="10" id="0qN-Jr-OXT" userLabel="subtitleLabel">
|
|
||||||
<rect key="frame" x="238" y="62" width="270" height="25"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label=""/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="19"/>
|
|
||||||
<color key="textColor" red="1" green="0.36862745099999999" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
<size key="shadowOffset" width="-1" height="-1"/>
|
|
||||||
</label>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="5" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="USERNAME" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="qbs-8f-pLW" userLabel="usernameLabel">
|
|
||||||
<rect key="frame" x="158" y="105" width="350" height="20"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="13"/>
|
|
||||||
<color key="textColor" red="0.50196078430000002" green="0.50196078430000002" blue="0.50196078430000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<textField opaque="NO" clipsSubviews="YES" tag="6" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" adjustsFontSizeToFit="NO" minimumFontSize="10" id="0Yf-d2-ElR" userLabel="usernameField" customClass="UIAssistantTextField">
|
|
||||||
<rect key="frame" x="158" y="123" width="350" height="24"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" red="0.88235294119999996" green="0.88235294119999996" blue="0.88235294119999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Username"/>
|
|
||||||
<color key="textColor" red="0.2666666667" green="0.2666666667" blue="0.2666666667" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
|
||||||
<textInputTraits key="textInputTraits" autocorrectionType="no" returnKeyType="next"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="delegate" destination="-1" id="98R-AI-m4z"/>
|
|
||||||
<outlet property="errorLabel" destination="Bgv-t3-ZGF" id="s0p-Zx-jPj"/>
|
|
||||||
</connections>
|
|
||||||
</textField>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="7" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Invalid username" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" id="Bgv-t3-ZGF" userLabel="usernameErrorLabel">
|
|
||||||
<rect key="frame" x="158" y="146" width="350" height="15"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="9"/>
|
|
||||||
<color key="textColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="8" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="DOMAIN" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="1GT-Pk-UQT" userLabel="domainLabel">
|
|
||||||
<rect key="frame" x="158" y="182" width="350" height="14"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="13"/>
|
|
||||||
<color key="textColor" red="0.50196078430000002" green="0.50196078430000002" blue="0.50196078430000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<textField opaque="NO" clipsSubviews="YES" tag="9" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="sip.linphone.org" borderStyle="roundedRect" adjustsFontSizeToFit="NO" minimumFontSize="10" id="xOE-NA-3hm" userLabel="domainField" customClass="UIAssistantTextField">
|
|
||||||
<rect key="frame" x="158" y="200" width="350" height="25"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" red="0.88235294119999996" green="0.88235294119999996" blue="0.88235294119999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Domain"/>
|
|
||||||
<color key="textColor" red="0.2666666667" green="0.2666666667" blue="0.2666666667" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
|
||||||
<textInputTraits key="textInputTraits" autocorrectionType="no" returnKeyType="next"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="delegate" destination="-1" id="65y-5D-Gja"/>
|
|
||||||
<outlet property="errorLabel" destination="Q6W-CO-Qyo" id="SeN-ng-mAi"/>
|
|
||||||
</connections>
|
|
||||||
</textField>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="10" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Invalid domain" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" id="Q6W-CO-Qyo" userLabel="domainErrorLabel">
|
|
||||||
<rect key="frame" x="158" y="223" width="350" height="15"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="9"/>
|
|
||||||
<color key="textColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="11" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="PASSWORD" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="3ie-wD-Jq5" userLabel="passwordLabel">
|
|
||||||
<rect key="frame" x="158" y="259" width="350" height="14"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="13"/>
|
|
||||||
<color key="textColor" red="0.50196078430000002" green="0.50196078430000002" blue="0.50196078430000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<textField opaque="NO" clipsSubviews="YES" tag="12" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" adjustsFontSizeToFit="NO" minimumFontSize="10" id="iFV-rZ-JMe" userLabel="passwordField" customClass="UIAssistantTextField">
|
|
||||||
<rect key="frame" x="158" y="277" width="350" height="25"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" red="0.88235294119999996" green="0.88235294119999996" blue="0.88235294119999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Password"/>
|
|
||||||
<color key="textColor" red="0.2666666667" green="0.2666666667" blue="0.2666666667" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
|
||||||
<textInputTraits key="textInputTraits" autocorrectionType="no" returnKeyType="done" secureTextEntry="YES"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="delegate" destination="-1" id="EGl-fH-SOC"/>
|
|
||||||
<outlet property="errorLabel" destination="sac-b3-hPk" id="Cfh-39-Ehh"/>
|
|
||||||
</connections>
|
|
||||||
</textField>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="13" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Invalid password" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" id="sac-b3-hPk" userLabel="passwordErrorLabel">
|
|
||||||
<rect key="frame" x="158" y="300" width="350" height="15"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="9"/>
|
|
||||||
<color key="textColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<button opaque="NO" tag="14" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="0lR-zp-xF9" userLabel="downloadButton" customClass="UIRoundBorderedButton">
|
|
||||||
<rect key="frame" x="158" y="328" width="350" height="39"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" red="0.2666666667" green="0.2666666667" blue="0.2666666667" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Fetch and apply">
|
|
||||||
<bool key="isElement" value="YES"/>
|
|
||||||
</accessibility>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
|
||||||
<state key="normal" title="LOGIN"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onLoginClick:" destination="-1" eventType="touchUpInside" id="mzP-1O-F9z"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</scrollView>
|
|
||||||
<view hidden="YES" clearsContextBeforeDrawing="NO" tag="16" contentMode="scaleToFill" id="lh1-8l-fdW" userLabel="waitView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="667" height="375"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<activityIndicatorView opaque="NO" clearsContextBeforeDrawing="NO" userInteractionEnabled="NO" tag="17" contentMode="scaleToFill" animating="YES" style="whiteLarge" id="U6u-rm-UlH" userLabel="activityIndicator">
|
|
||||||
<rect key="frame" x="315" y="168" width="37" height="37"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
</activityIndicatorView>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="1" alpha="0.66000000000000003" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
<simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
|
|
||||||
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina47"/>
|
|
||||||
</view>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
|
||||||
</objects>
|
|
||||||
<resources>
|
|
||||||
<image name="linphone_logo.png" width="26" height="22"/>
|
|
||||||
</resources>
|
|
||||||
</document>
|
|
||||||
Binary file not shown.
|
|
@ -1,334 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13529" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" colorMatched="YES">
|
|
||||||
<device id="retina4_7" orientation="portrait">
|
|
||||||
<adaptation id="fullscreen"/>
|
|
||||||
</device>
|
|
||||||
<dependencies>
|
|
||||||
<deployment identifier="iOS"/>
|
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13527"/>
|
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
|
||||||
</dependencies>
|
|
||||||
<objects>
|
|
||||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="HistoryDetailsView">
|
|
||||||
<connections>
|
|
||||||
<outlet property="addContactButton" destination="50" id="52"/>
|
|
||||||
<outlet property="addressLabel" destination="EoB-ux-sD7" id="Ajw-2s-M6X"/>
|
|
||||||
<outlet property="avatarImage" destination="23" id="43"/>
|
|
||||||
<outlet property="backButton" destination="9" id="Pqj-y9-hqc"/>
|
|
||||||
<outlet property="contactLabel" destination="25" id="rTL-Ut-42o"/>
|
|
||||||
<outlet property="emptyLabel" destination="hvz-CS-NME" id="Qws-r1-XMh"/>
|
|
||||||
<outlet property="headerView" destination="33" id="iv2-Rj-j3j"/>
|
|
||||||
<outlet property="landscapeView" destination="NHC-7w-48z" id="kTJ-YT-Ejm"/>
|
|
||||||
<outlet property="portraitView" destination="4" id="0gH-12-O02"/>
|
|
||||||
<outlet property="tableView" destination="baU-d4-eu3" id="3q4-5X-yCB"/>
|
|
||||||
<outlet property="view" destination="4" id="10"/>
|
|
||||||
<outlet property="waitView" destination="dEJ-xc-518" id="ofo-cG-8s5"/>
|
|
||||||
</connections>
|
|
||||||
</placeholder>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
|
||||||
<view contentMode="scaleToFill" id="HKr-sq-hGv" userLabel="iphone6MetricsView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view tag="1" contentMode="scaleToFill" id="4">
|
|
||||||
<rect key="frame" x="0.0" y="42" width="375" height="559"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view tag="2" contentMode="scaleToFill" id="6" userLabel="topBar">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="3" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_F.png" id="gee-PW-IqY" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<button opaque="NO" tag="4" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="9" userLabel="backButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="72" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Back"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="back_default.png"/>
|
|
||||||
<state key="disabled" image="back_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onBackClick:" destination="-1" eventType="touchUpInside" id="11"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="50" userLabel="addButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="303" y="0.0" width="72" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Add to contact"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="contact_add_default.png"/>
|
|
||||||
<state key="disabled" image="contact_add_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onAddContactClick:" destination="-1" eventType="touchUpInside" id="53"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
<view tag="7" contentMode="scaleToFill" id="33" userLabel="headerView">
|
|
||||||
<rect key="frame" x="0.0" y="66" width="375" height="250"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="8" contentMode="scaleAspectFit" image="avatar.png" id="23" userLabel="avatarImage" customClass="UIRoundedImageView">
|
|
||||||
<rect key="frame" x="137" y="8" width="100" height="100"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Contact avatar">
|
|
||||||
<accessibilityTraits key="traits" image="YES" notEnabled="YES"/>
|
|
||||||
<bool key="isElement" value="YES"/>
|
|
||||||
</accessibility>
|
|
||||||
</imageView>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="9" contentMode="left" text="John Doe" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="17" id="25" userLabel="contactLabel">
|
|
||||||
<rect key="frame" x="0.0" y="110" width="375" height="40"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Contact name"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="33"/>
|
|
||||||
<color key="textColor" red="0.33333333333333331" green="0.33333333333333331" blue="0.33333333333333331" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<imageView hidden="YES" userInteractionEnabled="NO" tag="10" contentMode="scaleAspectFit" image="linphone_user.png" id="mfN-Ai-9RX" userLabel="linphoneImage" customClass="UIRoundedImageView">
|
|
||||||
<rect key="frame" x="245" y="39" width="21" height="37"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Contact avatar">
|
|
||||||
<accessibilityTraits key="traits" image="YES" notEnabled="YES"/>
|
|
||||||
<bool key="isElement" value="YES"/>
|
|
||||||
</accessibility>
|
|
||||||
</imageView>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="11" contentMode="left" text="johndoe@sip.linphone.org" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="EoB-ux-sD7" userLabel="addressLabel">
|
|
||||||
<rect key="frame" x="0.0" y="158" width="375" height="23"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Contact name"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="18"/>
|
|
||||||
<color key="textColor" red="0.98766469955444336" green="0.27512490749359131" blue="0.029739789664745331" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<button opaque="NO" tag="12" contentMode="scaleAspectFit" contentHorizontalAlignment="left" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="obZ-W7-q8P" userLabel="chatButton">
|
|
||||||
<rect key="frame" x="202" y="189" width="51" height="51"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<state key="normal" image="chat_start_body_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="chat_start_body_disabled.png"/>
|
|
||||||
<state key="highlighted" image="chat_start_body_over.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onChatClick:" destination="-1" eventType="touchUpInside" id="Dd5-7a-ev8"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="13" contentMode="scaleAspectFit" contentHorizontalAlignment="left" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="5eX-W0-T4B" userLabel="callButton">
|
|
||||||
<rect key="frame" x="122" y="189" width="51" height="51"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<state key="normal" image="call_start_body_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="call_start_body_disabled.png"/>
|
|
||||||
<state key="highlighted" image="call_start_body_over.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onCallClick:" destination="-1" eventType="touchUpInside" id="Vlx-14-3CH"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</view>
|
|
||||||
<tableView clipsSubviews="YES" tag="6" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" allowsSelection="NO" rowHeight="30" sectionHeaderHeight="28" sectionFooterHeight="28" id="k6N-Av-eOu">
|
|
||||||
<rect key="frame" x="0.0" y="316" width="375" height="243"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="dataSource" destination="baU-d4-eu3" id="p7o-Mx-Kmc"/>
|
|
||||||
<outlet property="delegate" destination="baU-d4-eu3" id="iS5-xg-0C2"/>
|
|
||||||
</connections>
|
|
||||||
</tableView>
|
|
||||||
<label hidden="YES" opaque="NO" userInteractionEnabled="NO" tag="40" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="No log selected" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="hvz-CS-NME" userLabel="emptyLabel">
|
|
||||||
<rect key="frame" x="0.0" y="66" width="375" height="493"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<view hidden="YES" tag="8" contentMode="scaleToFill" misplaced="YES" id="dEJ-xc-518" userLabel="waitView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="559"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<activityIndicatorView opaque="NO" tag="9" contentMode="scaleToFill" animating="YES" style="gray" id="NK3-ME-9jd" userLabel="activityIndicatorView">
|
|
||||||
<rect key="frame" x="179" y="267" width="20" height="20"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
</activityIndicatorView>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<gestureRecognizers/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<point key="canvasLocation" x="254.5" y="288.5"/>
|
|
||||||
</view>
|
|
||||||
<view contentMode="scaleToFill" id="LBc-mh-ozk" userLabel="iphone6MetricsView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view tag="1" contentMode="scaleToFill" id="NHC-7w-48z">
|
|
||||||
<rect key="frame" x="0.0" y="42" width="375" height="625"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view tag="2" contentMode="scaleToFill" id="Rtv-hu-bCz" userLabel="topBar">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="3" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_F.png" id="JOe-5t-C7f" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<button opaque="NO" tag="4" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="NJl-Lb-CU6" userLabel="backButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="40" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Back"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="back_default.png"/>
|
|
||||||
<state key="disabled" image="back_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onBackClick:" destination="-1" eventType="touchUpInside" id="zZF-e0-7RY"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="O7r-6t-b7w" userLabel="addButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="334" y="0.0" width="41" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Add to contact"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="contact_add_default.png"/>
|
|
||||||
<state key="disabled" image="contact_add_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onAddContactClick:" destination="-1" eventType="touchUpInside" id="pow-32-7RJ"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
<tableView clipsSubviews="YES" tag="6" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" allowsSelection="NO" rowHeight="30" sectionHeaderHeight="44" sectionFooterHeight="22" id="2jK-gw-ULv">
|
|
||||||
<rect key="frame" x="0.0" y="168" width="375" height="457"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="dataSource" destination="baU-d4-eu3" id="fI9-T2-u1D"/>
|
|
||||||
<outlet property="delegate" destination="baU-d4-eu3" id="xk6-7r-gBl"/>
|
|
||||||
</connections>
|
|
||||||
</tableView>
|
|
||||||
<view tag="7" contentMode="scaleToFill" id="Mwp-y3-g1b" userLabel="headerView">
|
|
||||||
<rect key="frame" x="0.0" y="66" width="375" height="102"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="8" contentMode="scaleAspectFit" image="avatar.png" id="d9m-G0-1u3" userLabel="avatarImage" customClass="UIRoundedImageView">
|
|
||||||
<rect key="frame" x="16" y="8" width="49" height="86"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Contact avatar">
|
|
||||||
<accessibilityTraits key="traits" image="YES" notEnabled="YES"/>
|
|
||||||
<bool key="isElement" value="YES"/>
|
|
||||||
</accessibility>
|
|
||||||
</imageView>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="9" contentMode="left" text="John Doe" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="17" id="Qbg-hm-bd7" userLabel="contactLabel">
|
|
||||||
<rect key="frame" x="90" y="8" width="200" height="50"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Contact name"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="33"/>
|
|
||||||
<color key="textColor" red="0.33333333333333331" green="0.33333333333333331" blue="0.33333333333333331" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="11" contentMode="left" text="johndoe@sip.linphone.org" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="XJa-f6-K0y" userLabel="addressLabel">
|
|
||||||
<rect key="frame" x="90" y="56" width="200" height="38"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Contact name"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="18"/>
|
|
||||||
<color key="textColor" red="0.98766469955444336" green="0.27512490749359131" blue="0.029739789664745331" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<button opaque="NO" tag="12" contentMode="scaleAspectFit" contentHorizontalAlignment="left" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="MRH-yi-acw" userLabel="chatButton">
|
|
||||||
<rect key="frame" x="319" y="25" width="51" height="51"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<state key="normal" image="chat_start_body_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="chat_start_body_disabled.png"/>
|
|
||||||
<state key="highlighted" image="chat_start_body_over.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onChatClick:" destination="-1" eventType="touchUpInside" id="ygZ-jT-J3b"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" tag="13" contentMode="scaleAspectFit" contentHorizontalAlignment="left" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="zZo-Pc-EVi" userLabel="callButton">
|
|
||||||
<rect key="frame" x="276" y="25" width="51" height="51"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<state key="normal" image="call_start_body_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="call_start_body_disabled.png"/>
|
|
||||||
<state key="highlighted" image="call_start_body_over.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onCallClick:" destination="-1" eventType="touchUpInside" id="xBV-3j-apE"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<imageView hidden="YES" userInteractionEnabled="NO" tag="10" contentMode="scaleAspectFit" image="linphone_user.png" id="G2O-Yh-fZA" userLabel="linphoneImage">
|
|
||||||
<rect key="frame" x="69" y="8" width="17" height="25"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Contact avatar">
|
|
||||||
<accessibilityTraits key="traits" image="YES" notEnabled="YES"/>
|
|
||||||
<bool key="isElement" value="YES"/>
|
|
||||||
</accessibility>
|
|
||||||
</imageView>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</view>
|
|
||||||
<label hidden="YES" opaque="NO" userInteractionEnabled="NO" tag="40" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="No log selected" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="IHY-Yg-pkN" userLabel="emptyLabel">
|
|
||||||
<rect key="frame" x="0.0" y="66" width="375" height="559"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<view hidden="YES" tag="8" contentMode="scaleToFill" misplaced="YES" id="X29-vB-VIz" userLabel="waitView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="625"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<activityIndicatorView opaque="NO" tag="9" contentMode="scaleToFill" animating="YES" style="gray" id="7l5-ZU-CbW" userLabel="activityIndicatorView">
|
|
||||||
<rect key="frame" x="179" y="300" width="20" height="20"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
</activityIndicatorView>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<gestureRecognizers/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<point key="canvasLocation" x="348.5" y="-44.5"/>
|
|
||||||
</view>
|
|
||||||
<tableViewController id="baU-d4-eu3" customClass="HistoryDetailsTableView">
|
|
||||||
<connections>
|
|
||||||
<outlet property="view" destination="k6N-Av-eOu" id="Dos-d4-5l5"/>
|
|
||||||
</connections>
|
|
||||||
<point key="canvasLocation" x="823" y="263"/>
|
|
||||||
</tableViewController>
|
|
||||||
</objects>
|
|
||||||
<resources>
|
|
||||||
<image name="avatar.png" width="259" height="259"/>
|
|
||||||
<image name="back_default.png" width="24" height="22"/>
|
|
||||||
<image name="back_disabled.png" width="24" height="22"/>
|
|
||||||
<image name="call_start_body_default.png" width="51" height="51"/>
|
|
||||||
<image name="call_start_body_disabled.png" width="51" height="51"/>
|
|
||||||
<image name="call_start_body_over.png" width="51" height="51"/>
|
|
||||||
<image name="chat_start_body_default.png" width="51" height="51"/>
|
|
||||||
<image name="chat_start_body_disabled.png" width="51" height="51"/>
|
|
||||||
<image name="chat_start_body_over.png" width="51" height="51"/>
|
|
||||||
<image name="color_E.png" width="2" height="2"/>
|
|
||||||
<image name="color_F.png" width="2" height="2"/>
|
|
||||||
<image name="contact_add_default.png" width="34" height="29"/>
|
|
||||||
<image name="contact_add_disabled.png" width="34" height="29"/>
|
|
||||||
<image name="linphone_user.png" width="26" height="22"/>
|
|
||||||
</resources>
|
|
||||||
</document>
|
|
||||||
Binary file not shown.
|
|
@ -1,209 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9060" systemVersion="15B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
|
||||||
<dependencies>
|
|
||||||
<deployment identifier="iOS"/>
|
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9051"/>
|
|
||||||
</dependencies>
|
|
||||||
<objects>
|
|
||||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="HistoryListView">
|
|
||||||
<connections>
|
|
||||||
<outlet property="allButton" destination="4" id="27"/>
|
|
||||||
<outlet property="missedButton" destination="5" id="28"/>
|
|
||||||
<outlet property="selectedButtonImage" destination="o8E-gw-vhI" id="hNf-FA-7aQ"/>
|
|
||||||
<outlet property="tableController" destination="18" id="26"/>
|
|
||||||
<outlet property="view" destination="2" id="16"/>
|
|
||||||
</connections>
|
|
||||||
</placeholder>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
|
||||||
<view contentMode="scaleToFill" id="o8E-Bz-RWL" userLabel="iphone6MetricsView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view contentMode="scaleToFill" id="2">
|
|
||||||
<rect key="frame" x="0.0" y="42" width="375" height="559"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view contentMode="scaleToFill" id="3" userLabel="topBar">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_F.png" id="upG-IP-6mg" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<animations/>
|
|
||||||
</imageView>
|
|
||||||
<view contentMode="scaleToFill" id="38" userLabel="switchView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="150" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="4" userLabel="allButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<animations/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="All contacts filter"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="16" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="history_all_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="history_all_disabled.png"/>
|
|
||||||
<state key="selected" image="history_all_selected.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onAllClick:" destination="-1" eventType="touchUpInside" id="29"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" contentMode="bottom" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="5" userLabel="missedButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="75" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<animations/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Missed contacts filter"/>
|
|
||||||
<state key="normal" image="history_missed_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="history_missed_disabled.png"/>
|
|
||||||
<state key="selected" image="history_missed_selected.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onMissedClick:" destination="-1" eventType="touchUpInside" id="30"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_A.png" id="o8E-gw-vhI" userLabel="selectedButtonImage">
|
|
||||||
<rect key="frame" x="0.0" y="63" width="75" height="3"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES"/>
|
|
||||||
<animations/>
|
|
||||||
</imageView>
|
|
||||||
</subviews>
|
|
||||||
<animations/>
|
|
||||||
</view>
|
|
||||||
<button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="00K-MU-NUc" userLabel="cancelButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<animations/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Delete all"/>
|
|
||||||
<state key="normal" image="cancel_edit_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="cancel_edit_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onCancelClick:" destination="18" eventType="touchUpInside" id="DAX-W6-l0H"/>
|
|
||||||
<action selector="onEditionChangeClick:" destination="-1" eventType="touchUpInside" id="WQf-rB-DUt"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" reversesTitleShadowWhenHighlighted="YES" showsTouchWhenHighlighted="YES" lineBreakMode="middleTruncation" id="nhN-oH-LQ9" userLabel="toggleSelectionButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="225" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<animations/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Select all"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="deselect_all.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="select_all_disabled.png"/>
|
|
||||||
<state key="selected" image="select_all_default.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onSelectionToggle:" destination="18" eventType="touchUpInside" id="ADr-KR-SmA"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="35" userLabel="deleteButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="300" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<animations/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Delete all"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="delete_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="delete_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onDeleteClick:" destination="-1" eventType="touchUpInside" id="37"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="6" userLabel="editButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="300" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<animations/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Edit"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="edit_list_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="edit_list_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onEditClick:" destination="18" eventType="touchUpInside" id="5Ft-HW-cVh"/>
|
|
||||||
<action selector="onEditionChangeClick:" destination="-1" eventType="touchUpInside" id="9gC-6R-w0j"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
<animations/>
|
|
||||||
</view>
|
|
||||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" allowsSelectionDuringEditing="YES" allowsMultipleSelectionDuringEditing="YES" rowHeight="44" sectionHeaderHeight="35" sectionFooterHeight="1" id="17" userLabel="tableView">
|
|
||||||
<rect key="frame" x="0.0" y="66" width="375" height="493"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<animations/>
|
|
||||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
<inset key="contentInset" minX="0.0" minY="0.0" maxX="0.0" maxY="10"/>
|
|
||||||
<inset key="scrollIndicatorInsets" minX="0.0" minY="0.0" maxX="0.0" maxY="10"/>
|
|
||||||
<color key="separatorColor" red="0.7254902124" green="0.76862746479999999" blue="0.79607844350000001" alpha="1" colorSpace="deviceRGB"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="dataSource" destination="18" id="23"/>
|
|
||||||
<outlet property="delegate" destination="18" id="24"/>
|
|
||||||
</connections>
|
|
||||||
</tableView>
|
|
||||||
<label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="No call in your history" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="xtr-Fp-60Z" userLabel="emptyTableLabel">
|
|
||||||
<rect key="frame" x="0.0" y="66" width="375" height="493"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<animations/>
|
|
||||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
<animations/>
|
|
||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<animations/>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina47"/>
|
|
||||||
<point key="canvasLocation" x="245.5" y="373.5"/>
|
|
||||||
</view>
|
|
||||||
<tableViewController autoresizesArchivedViewToFullSize="NO" id="18" userLabel="tableController" customClass="HistoryListTableView">
|
|
||||||
<extendedEdge key="edgesForExtendedLayout"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="cancelButton" destination="00K-MU-NUc" id="KSi-MC-Usk"/>
|
|
||||||
<outlet property="deleteButton" destination="35" id="n8o-lE-u1t"/>
|
|
||||||
<outlet property="editButton" destination="6" id="Sgc-Z3-NeQ"/>
|
|
||||||
<outlet property="emptyView" destination="xtr-Fp-60Z" id="hgd-7A-cLI"/>
|
|
||||||
<outlet property="toggleSelectionButton" destination="nhN-oH-LQ9" id="77r-l0-3Yi"/>
|
|
||||||
<outlet property="view" destination="17" id="25"/>
|
|
||||||
</connections>
|
|
||||||
<point key="canvasLocation" x="596" y="305"/>
|
|
||||||
</tableViewController>
|
|
||||||
</objects>
|
|
||||||
<resources>
|
|
||||||
<image name="cancel_edit_default.png" width="29" height="29"/>
|
|
||||||
<image name="cancel_edit_disabled.png" width="29" height="29"/>
|
|
||||||
<image name="color_A.png" width="2" height="2"/>
|
|
||||||
<image name="color_E.png" width="2" height="2"/>
|
|
||||||
<image name="color_F.png" width="2" height="2"/>
|
|
||||||
<image name="delete_default.png" width="21" height="27"/>
|
|
||||||
<image name="delete_disabled.png" width="21" height="27"/>
|
|
||||||
<image name="deselect_all.png" width="26" height="26"/>
|
|
||||||
<image name="edit_list_default.png" width="29" height="28"/>
|
|
||||||
<image name="edit_list_disabled.png" width="29" height="28"/>
|
|
||||||
<image name="history_all_default.png" width="32" height="31"/>
|
|
||||||
<image name="history_all_disabled.png" width="32" height="31"/>
|
|
||||||
<image name="history_all_selected.png" width="32" height="31"/>
|
|
||||||
<image name="history_missed_default.png" width="32" height="32"/>
|
|
||||||
<image name="history_missed_disabled.png" width="32" height="32"/>
|
|
||||||
<image name="history_missed_selected.png" width="32" height="32"/>
|
|
||||||
<image name="select_all_default.png" width="26" height="26"/>
|
|
||||||
<image name="select_all_disabled.png" width="26" height="26"/>
|
|
||||||
</resources>
|
|
||||||
</document>
|
|
||||||
Binary file not shown.
Binary file not shown.
|
|
@ -1,74 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9060" systemVersion="15B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
|
||||||
<dependencies>
|
|
||||||
<deployment identifier="iOS"/>
|
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9051"/>
|
|
||||||
</dependencies>
|
|
||||||
<objects>
|
|
||||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="ImageView">
|
|
||||||
<connections>
|
|
||||||
<outlet property="backButton" destination="RW1-kp-wn7" id="DJc-Ps-J3p"/>
|
|
||||||
<outlet property="scrollView" destination="12" id="13"/>
|
|
||||||
<outlet property="view" destination="1" id="3"/>
|
|
||||||
</connections>
|
|
||||||
</placeholder>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
|
||||||
<view contentMode="scaleToFill" id="zEp-6r-r9n" userLabel="iphone6MetricsView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view contentMode="scaleToFill" id="1">
|
|
||||||
<rect key="frame" x="0.0" y="42" width="375" height="559"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view contentMode="scaleToFill" id="2E4-s5-jYL" userLabel="topBar">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_F.png" id="Rir-PV-D7o" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<animations/>
|
|
||||||
</imageView>
|
|
||||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="RW1-kp-wn7" userLabel="backButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<animations/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="New Discussion"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="back_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="back_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onBackClick:" destination="-1" eventType="touchUpInside" id="vyb-kn-xSQ"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
<animations/>
|
|
||||||
</view>
|
|
||||||
<scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" minimumZoomScale="0.0" maximumZoomScale="10" id="12" userLabel="scrollView" customClass="UIImageScrollView">
|
|
||||||
<rect key="frame" x="0.0" y="66" width="375" height="493"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<animations/>
|
|
||||||
<color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</scrollView>
|
|
||||||
</subviews>
|
|
||||||
<animations/>
|
|
||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<animations/>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina47"/>
|
|
||||||
</view>
|
|
||||||
</objects>
|
|
||||||
<resources>
|
|
||||||
<image name="back_default.png" width="24" height="21"/>
|
|
||||||
<image name="back_disabled.png" width="24" height="21"/>
|
|
||||||
<image name="color_E.png" width="2" height="2"/>
|
|
||||||
<image name="color_F.png" width="2" height="2"/>
|
|
||||||
</resources>
|
|
||||||
</document>
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1,50 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13529" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" colorMatched="YES">
|
|
||||||
<device id="retina4_7" orientation="portrait">
|
|
||||||
<adaptation id="fullscreen"/>
|
|
||||||
</device>
|
|
||||||
<dependencies>
|
|
||||||
<deployment identifier="iOS"/>
|
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13527"/>
|
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
|
||||||
</dependencies>
|
|
||||||
<objects>
|
|
||||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="PhoneMainView">
|
|
||||||
<connections>
|
|
||||||
<outlet property="mainViewController" destination="208" id="209"/>
|
|
||||||
<outlet property="statusBarBG" destination="6sv-JD-j8Z" id="CCl-1v-2B7"/>
|
|
||||||
<outlet property="view" destination="152" id="WV3-Jd-QMD"/>
|
|
||||||
</connections>
|
|
||||||
</placeholder>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
|
||||||
<view contentMode="scaleToFill" id="Po9-aN-gz9" userLabel="iphone6MetricsView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view contentMode="scaleToFill" id="152">
|
|
||||||
<rect key="frame" x="0.0" y="42" width="375" height="559"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view tag="1" contentMode="scaleToFill" id="avX-6g-QDq" userLabel="background">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="559"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</view>
|
|
||||||
<view contentMode="scaleToFill" misplaced="YES" id="6sv-JD-j8Z" userLabel="statusBarBG">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="35"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<point key="canvasLocation" x="32.5" y="86.5"/>
|
|
||||||
</view>
|
|
||||||
<viewController nibName="UICompositeView" wantsFullScreenLayout="YES" id="208" userLabel="mainViewController" customClass="UICompositeView">
|
|
||||||
<extendedEdge key="edgesForExtendedLayout"/>
|
|
||||||
<nil key="simulatedStatusBarMetrics"/>
|
|
||||||
</viewController>
|
|
||||||
</objects>
|
|
||||||
</document>
|
|
||||||
Binary file not shown.
|
|
@ -1,116 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9060" systemVersion="15B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
|
||||||
<dependencies>
|
|
||||||
<deployment identifier="iOS"/>
|
|
||||||
<development version="6000" identifier="xcode"/>
|
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9051"/>
|
|
||||||
</dependencies>
|
|
||||||
<objects>
|
|
||||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="SettingsView">
|
|
||||||
<connections>
|
|
||||||
<outlet property="backButton" destination="gTj-vM-UtG" id="RTt-uX-4Lf"/>
|
|
||||||
<outlet property="navigationController" destination="10" id="15"/>
|
|
||||||
<outlet property="settingsController" destination="6" id="8"/>
|
|
||||||
<outlet property="subView" destination="Qjf-HX-coQ" id="f2I-hh-aOI"/>
|
|
||||||
<outlet property="titleLabel" destination="SqM-h2-idp" id="shs-j2-U5I"/>
|
|
||||||
<outlet property="view" destination="4" id="9"/>
|
|
||||||
</connections>
|
|
||||||
</placeholder>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
|
||||||
<view contentMode="scaleToFill" id="20" userLabel="iphone6MetricsView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view contentMode="scaleToFill" id="4">
|
|
||||||
<rect key="frame" x="0.0" y="42" width="375" height="579"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view contentMode="scaleToFill" id="SRV-nz-KWT" userLabel="topBar">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_F.png" id="RyH-Uy-VKo" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<animations/>
|
|
||||||
</imageView>
|
|
||||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="Ccu-go-gvn" userLabel="dialerBackButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="300" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<animations/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Add contact"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="dialer_back_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="dialer_back_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onDialerBackClick:" destination="-1" eventType="touchUpInside" id="hSX-Xt-zaC"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="SETTINGS" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="SqM-h2-idp" userLabel="titleLabel">
|
|
||||||
<rect key="frame" x="83" y="0.0" width="209" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<animations/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="27"/>
|
|
||||||
<color key="textColor" red="1" green="0.36862745099999999" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<button opaque="NO" tag="6" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="gTj-vM-UtG" userLabel="backButton" customClass="UIIconButton">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="75" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<animations/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Back"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="back_default.png">
|
|
||||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="back_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onBackClick:" destination="-1" eventType="touchUpInside" id="0PT-42-Pyi"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
</subviews>
|
|
||||||
<animations/>
|
|
||||||
</view>
|
|
||||||
<view contentMode="scaleToFill" id="Qjf-HX-coQ" userLabel="subView">
|
|
||||||
<rect key="frame" x="0.0" y="66" width="375" height="513"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<animations/>
|
|
||||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<animations/>
|
|
||||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<animations/>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina47"/>
|
|
||||||
<point key="canvasLocation" x="-42.5" y="261.5"/>
|
|
||||||
</view>
|
|
||||||
<navigationController definesPresentationContext="YES" navigationBarHidden="YES" id="10" userLabel="navigationController" customClass="UINavigationControllerEx">
|
|
||||||
<extendedEdge key="edgesForExtendedLayout"/>
|
|
||||||
<nil key="simulatedStatusBarMetrics"/>
|
|
||||||
<nil key="simulatedTopBarMetrics"/>
|
|
||||||
<navigationBar key="navigationBar" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" barStyle="black" translucent="NO" id="11" userLabel="navigationBar" customClass="UINavigationBarEx">
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<animations/>
|
|
||||||
</navigationBar>
|
|
||||||
</navigationController>
|
|
||||||
<viewController autoresizesArchivedViewToFullSize="NO" id="6" userLabel="settingsController" customClass="IASKAppSettingsViewControllerEx">
|
|
||||||
<extendedEdge key="edgesForExtendedLayout"/>
|
|
||||||
<navigationItem key="navigationItem" id="14" userLabel="settingsItem"/>
|
|
||||||
</viewController>
|
|
||||||
</objects>
|
|
||||||
<resources>
|
|
||||||
<image name="back_default.png" width="24" height="21"/>
|
|
||||||
<image name="back_disabled.png" width="24" height="21"/>
|
|
||||||
<image name="color_E.png" width="2" height="2"/>
|
|
||||||
<image name="color_F.png" width="2" height="2"/>
|
|
||||||
<image name="dialer_back_default.png" width="27" height="27"/>
|
|
||||||
<image name="dialer_back_disabled.png" width="27" height="27"/>
|
|
||||||
</resources>
|
|
||||||
</document>
|
|
||||||
Binary file not shown.
|
|
@ -1,103 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="11198.2" systemVersion="15G31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" colorMatched="YES">
|
|
||||||
<dependencies>
|
|
||||||
<deployment identifier="iOS"/>
|
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11161"/>
|
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
|
||||||
</dependencies>
|
|
||||||
<objects>
|
|
||||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="ShopView">
|
|
||||||
<connections>
|
|
||||||
<outlet property="tableViewController" destination="sBe-ML-IzT" id="8zr-PW-7c4"/>
|
|
||||||
<outlet property="view" destination="HJH-1o-RXN" id="AhB-ik-484"/>
|
|
||||||
<outlet property="waitingView" destination="tuB-rE-DiO" id="1cH-Ht-tQE"/>
|
|
||||||
</connections>
|
|
||||||
</placeholder>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
|
||||||
<view contentMode="scaleToFill" id="eP3-Qs-BZl" userLabel="iphone6MetricsView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view tag="299" contentMode="scaleToFill" id="HJH-1o-RXN">
|
|
||||||
<frame key="frameInset" minY="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view tag="2" contentMode="scaleToFill" id="Whz-oo-Pwx" userLabel="topBar">
|
|
||||||
<frame key="frameInset" height="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView userInteractionEnabled="NO" tag="3" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_F.png" id="h54-RV-eE6" userLabel="backgroundColor">
|
|
||||||
<frame key="frameInset" height="100.00%"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<button opaque="NO" tag="4" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="ETk-tB-ZNl" userLabel="dialerBackButton" customClass="UIIconButton">
|
|
||||||
<frame key="frameInset" minY="0.0%" width="20.80%" height="100.00%"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<accessibility key="accessibilityConfiguration" label="Add contact"/>
|
|
||||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
|
||||||
<state key="normal" image="dialer_back_default.png">
|
|
||||||
<color key="titleShadowColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</state>
|
|
||||||
<state key="disabled" image="dialer_back_disabled.png"/>
|
|
||||||
<state key="highlighted" backgroundImage="color_E.png"/>
|
|
||||||
<connections>
|
|
||||||
<action selector="onDialerBackClick:" destination="-1" eventType="touchUpInside" id="IrL-W4-g5z"/>
|
|
||||||
</connections>
|
|
||||||
</button>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" tag="5" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="SHOP" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="iNt-9d-7si" userLabel="titleLabel">
|
|
||||||
<frame key="frameInset" minX="0.0%" minY="0.0%" width="100.00%" height="100.00%"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="27"/>
|
|
||||||
<color key="textColor" red="0.98766469955444336" green="0.27512490749359131" blue="0.029739789664745331" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
</view>
|
|
||||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" misplaced="YES" bounces="NO" style="plain" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" id="cnd-cB-B4W">
|
|
||||||
<frame key="frameInset" minY="66"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="dataSource" destination="sBe-ML-IzT" id="EPO-Za-dkU"/>
|
|
||||||
<outlet property="delegate" destination="sBe-ML-IzT" id="T0H-aj-0UQ"/>
|
|
||||||
</connections>
|
|
||||||
</tableView>
|
|
||||||
<view hidden="YES" tag="288" contentMode="scaleToFill" misplaced="YES" id="tuB-rE-DiO" userLabel="waitView">
|
|
||||||
<frame key="frameInset" minY="66" maxY="-33"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<activityIndicatorView opaque="NO" tag="9" contentMode="scaleToFill" animating="YES" style="gray" id="7Jb-oC-FC5" userLabel="activityIndicatorView">
|
|
||||||
<frame key="frameInset" minX="50.42%" minY="49.82%" width="20" height="20"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
|
||||||
</activityIndicatorView>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="0.5" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<gestureRecognizers/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<point key="canvasLocation" x="-414.5" y="-738.5"/>
|
|
||||||
</view>
|
|
||||||
<tableViewController id="sBe-ML-IzT" customClass="ShopTableView">
|
|
||||||
<simulatedStatusBarMetrics key="simulatedStatusBarMetrics"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="view" destination="cnd-cB-B4W" id="hcK-9Y-fd5"/>
|
|
||||||
</connections>
|
|
||||||
<point key="canvasLocation" x="34" y="-724"/>
|
|
||||||
</tableViewController>
|
|
||||||
</objects>
|
|
||||||
<resources>
|
|
||||||
<image name="color_E.png" width="2" height="2"/>
|
|
||||||
<image name="color_F.png" width="2" height="2"/>
|
|
||||||
<image name="dialer_back_default.png" width="27" height="27"/>
|
|
||||||
<image name="dialer_back_disabled.png" width="27" height="27"/>
|
|
||||||
</resources>
|
|
||||||
<simulatedMetricsContainer key="defaultSimulatedMetrics">
|
|
||||||
<simulatedStatusBarMetrics key="statusBar"/>
|
|
||||||
<simulatedOrientationMetrics key="orientation"/>
|
|
||||||
<simulatedScreenMetrics key="destination" type="retina4_7.fullscreen"/>
|
|
||||||
</simulatedMetricsContainer>
|
|
||||||
</document>
|
|
||||||
Binary file not shown.
|
|
@ -1,136 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="11198.2" systemVersion="15G31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" colorMatched="YES">
|
|
||||||
<dependencies>
|
|
||||||
<deployment identifier="iOS"/>
|
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11161"/>
|
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
|
||||||
</dependencies>
|
|
||||||
<objects>
|
|
||||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="SideMenuView">
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressLabel" destination="V8A-tK-4iV" id="YMm-ry-yJa"/>
|
|
||||||
<outlet property="avatarImage" destination="BNQ-7N-NGT" id="LXr-Yr-zSK"/>
|
|
||||||
<outlet property="grayBackground" destination="ccB-VK-LF9" id="Rbz-Ix-k62"/>
|
|
||||||
<outlet property="nameLabel" destination="XbU-2B-u1b" id="rKF-4e-1HA"/>
|
|
||||||
<outlet property="presenceImage" destination="C88-Ag-nm7" id="LH2-Mq-xLz"/>
|
|
||||||
<outlet property="sideMenuTableViewController" destination="Yyh-z6-IGO" id="6Xq-OQ-vYm"/>
|
|
||||||
<outlet property="swipeGestureRecognizer" destination="JRs-i1-zCl" id="YA3-UP-6Dc"/>
|
|
||||||
<outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
|
|
||||||
</connections>
|
|
||||||
</placeholder>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
|
||||||
<swipeGestureRecognizer direction="left" id="JRs-i1-zCl" userLabel="OnLateralSwipe">
|
|
||||||
<connections>
|
|
||||||
<action selector="onLateralSwipe:" destination="-1" id="5td-pZ-6Vc"/>
|
|
||||||
<outlet property="delegate" destination="-1" id="yhK-9x-aT0"/>
|
|
||||||
</connections>
|
|
||||||
</swipeGestureRecognizer>
|
|
||||||
<view contentMode="scaleToFill" id="82U-ej-eJb" userLabel="iphone6MetricsView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
|
|
||||||
<frame key="frameInset" minY="42"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view hidden="YES" alpha="0.69999999999999996" contentMode="scaleToFill" id="ccB-VK-LF9">
|
|
||||||
<frame key="frameInset"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<connections>
|
|
||||||
<outletCollection property="gestureRecognizers" destination="56h-cQ-B5V" appends="YES" id="umX-R7-2IR"/>
|
|
||||||
</connections>
|
|
||||||
</view>
|
|
||||||
<view contentMode="scaleToFill" id="i1P-cG-q8h" userLabel="headerView">
|
|
||||||
<frame key="frameInset" width="300" height="100"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_F.png" id="90B-Re-hmt" userLabel="backgroundColor">
|
|
||||||
<frame key="frameInset" height="100.00%"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="John Doe" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="19" id="XbU-2B-u1b" userLabel="nameLabel">
|
|
||||||
<frame key="frameInset" minX="76" minY="15" width="100.00%" height="31"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="25"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="john.doe@sip.linphone.org" lineBreakMode="middleTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" id="V8A-tK-4iV" userLabel="addressLabel">
|
|
||||||
<frame key="frameInset" minX="76" minY="54" width="92.86%" height="38"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.98766469955444336" green="0.27512490749359131" blue="0.029739789664745331" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="led_connected.png" id="C88-Ag-nm7" userLabel="presenceImage">
|
|
||||||
<frame key="frameInset" minY="58" width="16" height="29"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<imageView contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="avatar.png" id="BNQ-7N-NGT" userLabel="avatarImage" customClass="UIRoundedImageView">
|
|
||||||
<frame key="frameInset" minX="3" minY="15" width="68" height="77"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<connections>
|
|
||||||
<outletCollection property="gestureRecognizers" destination="Kej-uL-ntg" appends="YES" id="eog-XV-xok"/>
|
|
||||||
</connections>
|
|
||||||
</imageView>
|
|
||||||
</subviews>
|
|
||||||
<gestureRecognizers/>
|
|
||||||
<connections>
|
|
||||||
<outletCollection property="gestureRecognizers" destination="1kD-az-BAx" appends="YES" id="OGc-fj-HQy"/>
|
|
||||||
</connections>
|
|
||||||
</view>
|
|
||||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" bounces="NO" style="plain" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" id="Ttt-1k-jAm">
|
|
||||||
<frame key="frameInset" minY="100" width="300" height="100.00%"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="dataSource" destination="Yyh-z6-IGO" id="ytx-b8-NGX"/>
|
|
||||||
<outlet property="delegate" destination="Yyh-z6-IGO" id="c1j-vG-TbB"/>
|
|
||||||
</connections>
|
|
||||||
</tableView>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<gestureRecognizers/>
|
|
||||||
<connections>
|
|
||||||
<outletCollection property="gestureRecognizers" destination="JRs-i1-zCl" appends="YES" id="SPs-Nb-Y0e"/>
|
|
||||||
</connections>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<point key="canvasLocation" x="322.5" y="209.5"/>
|
|
||||||
</view>
|
|
||||||
<tableViewController id="Yyh-z6-IGO" customClass="SideMenuTableView">
|
|
||||||
<simulatedStatusBarMetrics key="simulatedStatusBarMetrics"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="view" destination="Ttt-1k-jAm" id="Njc-lf-vXv"/>
|
|
||||||
</connections>
|
|
||||||
<point key="canvasLocation" x="815" y="194"/>
|
|
||||||
</tableViewController>
|
|
||||||
<tapGestureRecognizer id="Kej-uL-ntg" userLabel="OnAvatarClicked">
|
|
||||||
<connections>
|
|
||||||
<action selector="onAvatarClick:" destination="-1" id="KyX-RA-m6A"/>
|
|
||||||
</connections>
|
|
||||||
</tapGestureRecognizer>
|
|
||||||
<tapGestureRecognizer id="1kD-az-BAx" userLabel="OnHeaderClicked">
|
|
||||||
<connections>
|
|
||||||
<action selector="onHeaderClick:" destination="-1" id="yqn-58-lbb"/>
|
|
||||||
</connections>
|
|
||||||
</tapGestureRecognizer>
|
|
||||||
<tapGestureRecognizer id="56h-cQ-B5V" userLabel="onBackgroundClicked">
|
|
||||||
<connections>
|
|
||||||
<action selector="onBackgroundClicked:" destination="-1" id="U5P-C2-4FD"/>
|
|
||||||
</connections>
|
|
||||||
</tapGestureRecognizer>
|
|
||||||
</objects>
|
|
||||||
<resources>
|
|
||||||
<image name="avatar.png" width="259" height="259"/>
|
|
||||||
<image name="color_F.png" width="2" height="2"/>
|
|
||||||
<image name="led_connected.png" width="12" height="12"/>
|
|
||||||
</resources>
|
|
||||||
<simulatedMetricsContainer key="defaultSimulatedMetrics">
|
|
||||||
<simulatedStatusBarMetrics key="statusBar"/>
|
|
||||||
<simulatedOrientationMetrics key="orientation"/>
|
|
||||||
<simulatedScreenMetrics key="destination" type="retina4_7.fullscreen"/>
|
|
||||||
</simulatedMetricsContainer>
|
|
||||||
</document>
|
|
||||||
Binary file not shown.
|
|
@ -1,132 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="10116" systemVersion="15E65" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
|
||||||
<dependencies>
|
|
||||||
<deployment identifier="iOS"/>
|
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
|
|
||||||
</dependencies>
|
|
||||||
<objects>
|
|
||||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="SideMenuView">
|
|
||||||
<connections>
|
|
||||||
<outlet property="addressLabel" destination="ypg-P8-Els" id="gRv-Fz-Dbk"/>
|
|
||||||
<outlet property="avatarImage" destination="BNQ-7N-NGT" id="LXr-Yr-zSK"/>
|
|
||||||
<outlet property="grayBackground" destination="ccB-VK-LF9" id="Rbz-Ix-k62"/>
|
|
||||||
<outlet property="nameLabel" destination="XbU-2B-u1b" id="rKF-4e-1HA"/>
|
|
||||||
<outlet property="presenceImage" destination="tNM-uE-Eum" id="dfy-Sb-hgE"/>
|
|
||||||
<outlet property="sideMenuTableViewController" destination="Yyh-z6-IGO" id="6Xq-OQ-vYm"/>
|
|
||||||
<outlet property="swipeGestureRecognizer" destination="JRs-i1-zCl" id="YA3-UP-6Dc"/>
|
|
||||||
<outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
|
|
||||||
</connections>
|
|
||||||
</placeholder>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
|
||||||
<swipeGestureRecognizer direction="left" id="JRs-i1-zCl" userLabel="OnLateralSwipe">
|
|
||||||
<connections>
|
|
||||||
<action selector="onLateralSwipe:" destination="-1" id="5td-pZ-6Vc"/>
|
|
||||||
<outlet property="delegate" destination="-1" id="yhK-9x-aT0"/>
|
|
||||||
</connections>
|
|
||||||
</swipeGestureRecognizer>
|
|
||||||
<view contentMode="scaleToFill" id="82U-ej-eJb" userLabel="iphone6MetricsView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
|
|
||||||
<rect key="frame" x="0.0" y="42" width="375" height="625"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view hidden="YES" alpha="0.80000000000000004" contentMode="scaleToFill" id="ccB-VK-LF9">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="625"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
<connections>
|
|
||||||
<outletCollection property="gestureRecognizers" destination="56h-cQ-B5V" appends="YES" id="umX-R7-2IR"/>
|
|
||||||
</connections>
|
|
||||||
</view>
|
|
||||||
<view contentMode="scaleToFill" id="i1P-cG-q8h" userLabel="headerView">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="187" height="100"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<imageView contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="color_F.png" id="90B-Re-hmt" userLabel="backgroundColor">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="187" height="100"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="John Doe" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="19" id="XbU-2B-u1b" userLabel="nameLabel">
|
|
||||||
<rect key="frame" x="76" y="15" width="111" height="31"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="25"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="john.doe@sip.linphone.org" lineBreakMode="middleTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" id="ypg-P8-Els" userLabel="addressLabel">
|
|
||||||
<rect key="frame" x="74" y="54" width="95" height="22"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="1" green="0.36862745099999999" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="led_connected.png" id="tNM-uE-Eum" userLabel="presenceImage">
|
|
||||||
<rect key="frame" x="169" y="54" width="16" height="22"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
|
||||||
</imageView>
|
|
||||||
<imageView contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="avatar.png" id="BNQ-7N-NGT" userLabel="avatarImage" customClass="UIRoundedImageView">
|
|
||||||
<rect key="frame" x="8" y="20" width="60" height="60"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
|
||||||
<connections>
|
|
||||||
<outletCollection property="gestureRecognizers" destination="Kej-uL-ntg" appends="YES" id="eog-XV-xok"/>
|
|
||||||
</connections>
|
|
||||||
</imageView>
|
|
||||||
</subviews>
|
|
||||||
<gestureRecognizers/>
|
|
||||||
<connections>
|
|
||||||
<outletCollection property="gestureRecognizers" destination="1kD-az-BAx" appends="YES" id="OGc-fj-HQy"/>
|
|
||||||
</connections>
|
|
||||||
</view>
|
|
||||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" bounces="NO" style="plain" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" id="Ttt-1k-jAm">
|
|
||||||
<rect key="frame" x="0.0" y="100" width="187" height="525"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
|
||||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="dataSource" destination="Yyh-z6-IGO" id="ytx-b8-NGX"/>
|
|
||||||
<outlet property="delegate" destination="Yyh-z6-IGO" id="c1j-vG-TbB"/>
|
|
||||||
</connections>
|
|
||||||
</tableView>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
|
||||||
<gestureRecognizers/>
|
|
||||||
<connections>
|
|
||||||
<outletCollection property="gestureRecognizers" destination="JRs-i1-zCl" appends="YES" id="SPs-Nb-Y0e"/>
|
|
||||||
</connections>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" red="1" green="1" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina47"/>
|
|
||||||
<point key="canvasLocation" x="322.5" y="209.5"/>
|
|
||||||
</view>
|
|
||||||
<tableViewController id="Yyh-z6-IGO" customClass="SideMenuTableView">
|
|
||||||
<simulatedStatusBarMetrics key="simulatedStatusBarMetrics"/>
|
|
||||||
<simulatedOrientationMetrics key="simulatedOrientationMetrics"/>
|
|
||||||
<connections>
|
|
||||||
<outlet property="view" destination="Ttt-1k-jAm" id="Njc-lf-vXv"/>
|
|
||||||
</connections>
|
|
||||||
<point key="canvasLocation" x="815" y="194"/>
|
|
||||||
</tableViewController>
|
|
||||||
<tapGestureRecognizer id="Kej-uL-ntg" userLabel="OnAvatarClicked">
|
|
||||||
<connections>
|
|
||||||
<action selector="onAvatarClick:" destination="-1" id="KyX-RA-m6A"/>
|
|
||||||
</connections>
|
|
||||||
</tapGestureRecognizer>
|
|
||||||
<tapGestureRecognizer id="1kD-az-BAx" userLabel="OnHeaderClicked">
|
|
||||||
<connections>
|
|
||||||
<action selector="onHeaderClick:" destination="-1" id="yqn-58-lbb"/>
|
|
||||||
</connections>
|
|
||||||
</tapGestureRecognizer>
|
|
||||||
<tapGestureRecognizer id="56h-cQ-B5V" userLabel="onBackgroundClicked">
|
|
||||||
<connections>
|
|
||||||
<action selector="onBackgroundClicked:" destination="-1" id="U5P-C2-4FD"/>
|
|
||||||
</connections>
|
|
||||||
</tapGestureRecognizer>
|
|
||||||
</objects>
|
|
||||||
<resources>
|
|
||||||
<image name="avatar.png" width="255" height="255"/>
|
|
||||||
<image name="color_F.png" width="2" height="2"/>
|
|
||||||
<image name="led_connected.png" width="11" height="11"/>
|
|
||||||
</resources>
|
|
||||||
</document>
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
//
|
|
||||||
// CallConferenceTableView.h
|
|
||||||
// linphone
|
|
||||||
//
|
|
||||||
// Created by Gautier Pelloux-Prayer on 14/10/15.
|
|
||||||
//
|
|
||||||
//
|
|
||||||
|
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
|
|
||||||
@interface CallConferenceTableView : UITableViewController
|
|
||||||
|
|
||||||
- (void)update;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
@ -1,83 +0,0 @@
|
||||||
/* InCallTableViewController.h
|
|
||||||
*
|
|
||||||
* Copyright (C) 2012 Belledonne Comunications, Grenoble, France
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "CallConferenceTableView.h"
|
|
||||||
#import "UICallConferenceCell.h"
|
|
||||||
#import "LinphoneManager.h"
|
|
||||||
#import "Utils.h"
|
|
||||||
|
|
||||||
@implementation CallConferenceTableView
|
|
||||||
|
|
||||||
#pragma mark - UI change
|
|
||||||
|
|
||||||
- (void)update {
|
|
||||||
[self.tableView reloadData];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - UITableViewDataSource Functions
|
|
||||||
- (LinphoneCall *)conferenceCallForRow:(NSInteger)row {
|
|
||||||
const MSList *calls = linphone_core_get_calls(LC);
|
|
||||||
int i = -1;
|
|
||||||
while (calls) {
|
|
||||||
if (linphone_call_params_get_local_conference_mode(linphone_call_get_current_params(calls->data))) {
|
|
||||||
i++;
|
|
||||||
if (i == row)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
calls = calls->next;
|
|
||||||
}
|
|
||||||
return (calls ? calls->data : NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - UITableViewDataSource Functions
|
|
||||||
|
|
||||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
|
||||||
NSString *kCellId = NSStringFromClass(UICallConferenceCell.class);
|
|
||||||
UICallConferenceCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellId];
|
|
||||||
if (cell == nil) {
|
|
||||||
cell = [[UICallConferenceCell alloc] initWithIdentifier:kCellId];
|
|
||||||
}
|
|
||||||
[cell setCall:[self conferenceCallForRow:indexPath.row]];
|
|
||||||
return cell;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
|
||||||
const MSList *calls = linphone_core_get_calls(LC);
|
|
||||||
int count = 0;
|
|
||||||
while (calls) {
|
|
||||||
if (linphone_call_params_get_local_conference_mode(linphone_call_get_current_params(calls->data))) {
|
|
||||||
count++;
|
|
||||||
}
|
|
||||||
calls = calls->next;
|
|
||||||
}
|
|
||||||
return count;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
|
|
||||||
return 1e-5;
|
|
||||||
}
|
|
||||||
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
|
|
||||||
return 1e-5;
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
@ -1,49 +0,0 @@
|
||||||
/* IncomingCallViewController.h
|
|
||||||
*
|
|
||||||
* Copyright (C) 2012 Belledonne Comunications, Grenoble, France
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
|
|
||||||
#import "UICompositeView.h"
|
|
||||||
#import "TPMultiLayoutViewController.h"
|
|
||||||
#import "UIRoundedImageView.h"
|
|
||||||
#include "LinphoneManager.h"
|
|
||||||
|
|
||||||
@protocol IncomingCallViewDelegate <NSObject>
|
|
||||||
|
|
||||||
- (void)incomingCallAccepted:(LinphoneCall *)call evenWithVideo:(BOOL)video;
|
|
||||||
- (void)incomingCallDeclined:(LinphoneCall *)call;
|
|
||||||
- (void)incomingCallAborted:(LinphoneCall *)call;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@interface CallIncomingView : TPMultiLayoutViewController <UICompositeViewDelegate> {
|
|
||||||
}
|
|
||||||
@property(weak, nonatomic) IBOutlet UILabel *nameLabel;
|
|
||||||
@property(nonatomic, strong) IBOutlet UILabel *addressLabel;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIRoundedImageView *avatarImage;
|
|
||||||
@property(nonatomic, assign) LinphoneCall *call;
|
|
||||||
@property(nonatomic, strong) id<IncomingCallViewDelegate> delegate;
|
|
||||||
@property(weak, nonatomic) IBOutlet UIView *tabVideoBar;
|
|
||||||
@property(weak, nonatomic) IBOutlet UIView *tabBar;
|
|
||||||
|
|
||||||
- (IBAction)onAcceptClick:(id)event;
|
|
||||||
- (IBAction)onDeclineClick:(id)event;
|
|
||||||
- (IBAction)onAcceptAudioOnlyClick:(id)sender;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
@ -1,129 +0,0 @@
|
||||||
/* IncomingCallViewController.m
|
|
||||||
*
|
|
||||||
* Copyright (C) 2012 Belledonne Comunications, Grenoble, France
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "CallIncomingView.h"
|
|
||||||
#import "LinphoneManager.h"
|
|
||||||
#import "FastAddressBook.h"
|
|
||||||
#import "PhoneMainView.h"
|
|
||||||
#import "Utils.h"
|
|
||||||
|
|
||||||
@implementation CallIncomingView
|
|
||||||
|
|
||||||
#pragma mark - ViewController Functions
|
|
||||||
|
|
||||||
- (void)viewWillAppear:(BOOL)animated {
|
|
||||||
[super viewWillAppear:animated];
|
|
||||||
|
|
||||||
[NSNotificationCenter.defaultCenter addObserver:self
|
|
||||||
selector:@selector(callUpdateEvent:)
|
|
||||||
name:kLinphoneCallUpdate
|
|
||||||
object:nil];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewWillDisappear:(BOOL)animated {
|
|
||||||
[super viewWillDisappear:animated];
|
|
||||||
[NSNotificationCenter.defaultCenter removeObserver:self name:kLinphoneCallUpdate object:nil];
|
|
||||||
_call = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - UICompositeViewDelegate Functions
|
|
||||||
|
|
||||||
static UICompositeViewDescription *compositeDescription = nil;
|
|
||||||
|
|
||||||
+ (UICompositeViewDescription *)compositeViewDescription {
|
|
||||||
if (compositeDescription == nil) {
|
|
||||||
compositeDescription = [[UICompositeViewDescription alloc] init:self.class
|
|
||||||
statusBar:StatusBarView.class
|
|
||||||
tabBar:nil
|
|
||||||
sideMenu:CallSideMenuView.class
|
|
||||||
fullscreen:false
|
|
||||||
isLeftFragment:YES
|
|
||||||
fragmentWith:nil];
|
|
||||||
compositeDescription.darkBackground = true;
|
|
||||||
}
|
|
||||||
return compositeDescription;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UICompositeViewDescription *)compositeViewDescription {
|
|
||||||
return self.class.compositeViewDescription;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
|
|
||||||
[super didRotateFromInterfaceOrientation:fromInterfaceOrientation];
|
|
||||||
if (_call) {
|
|
||||||
[self update];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - Event Functions
|
|
||||||
|
|
||||||
- (void)callUpdateEvent:(NSNotification *)notif {
|
|
||||||
LinphoneCall *acall = [[notif.userInfo objectForKey:@"call"] pointerValue];
|
|
||||||
LinphoneCallState astate = [[notif.userInfo objectForKey:@"state"] intValue];
|
|
||||||
[self callUpdate:acall state:astate];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)callUpdate:(LinphoneCall *)acall state:(LinphoneCallState)astate {
|
|
||||||
if (_call == acall && (astate == LinphoneCallEnd || astate == LinphoneCallError)) {
|
|
||||||
[_delegate incomingCallAborted:_call];
|
|
||||||
} else if ([LinphoneManager.instance lpConfigBoolForKey:@"auto_answer"]) {
|
|
||||||
LinphoneCallState state = linphone_call_get_state(_call);
|
|
||||||
if (state == LinphoneCallIncomingReceived) {
|
|
||||||
LOGI(@"Auto answering call");
|
|
||||||
[self onAcceptClick:nil];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark -
|
|
||||||
|
|
||||||
- (void)update {
|
|
||||||
const LinphoneAddress *addr = linphone_call_get_remote_address(_call);
|
|
||||||
[ContactDisplay setDisplayNameLabel:_nameLabel forAddress:addr withAddressLabel:_addressLabel];
|
|
||||||
char *uri = linphone_address_as_string_uri_only(addr);
|
|
||||||
ms_free(uri);
|
|
||||||
[_avatarImage setImage:[FastAddressBook imageForAddress:addr] bordered:YES withRoundedRadius:YES];
|
|
||||||
|
|
||||||
_tabBar.hidden = linphone_call_params_video_enabled(linphone_call_get_remote_params(_call));
|
|
||||||
_tabVideoBar.hidden = !_tabBar.hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - Property Functions
|
|
||||||
|
|
||||||
- (void)setCall:(LinphoneCall *)call {
|
|
||||||
_call = call;
|
|
||||||
[self update];
|
|
||||||
[self callUpdate:_call state:linphone_call_get_state(call)];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - Action Functions
|
|
||||||
|
|
||||||
- (IBAction)onAcceptClick:(id)event {
|
|
||||||
[_delegate incomingCallAccepted:_call evenWithVideo:YES];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onDeclineClick:(id)event {
|
|
||||||
[_delegate incomingCallDeclined:_call];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onAcceptAudioOnlyClick:(id)sender {
|
|
||||||
[_delegate incomingCallAccepted:_call evenWithVideo:NO];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
@ -1,42 +0,0 @@
|
||||||
/* OutgoingCallViewController.h
|
|
||||||
*
|
|
||||||
* Copyright (C) 2012 Belledonne Comunications, Grenoble, France
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
|
|
||||||
#import "UICompositeView.h"
|
|
||||||
#import "TPMultiLayoutViewController.h"
|
|
||||||
#include "linphone/linphonecore.h"
|
|
||||||
#import "UIRoundedImageView.h"
|
|
||||||
|
|
||||||
@interface CallOutgoingView : TPMultiLayoutViewController <UICompositeViewDelegate> {
|
|
||||||
}
|
|
||||||
@property(weak, nonatomic) IBOutlet UIRoundedImageView *avatarImage;
|
|
||||||
@property(weak, nonatomic) IBOutlet UILabel *nameLabel;
|
|
||||||
@property(weak, nonatomic) IBOutlet UISpeakerButton *speakerButton;
|
|
||||||
@property(weak, nonatomic) IBOutlet UILabel *addressLabel;
|
|
||||||
@property(weak, nonatomic) IBOutlet UIToggleButton *routesButton;
|
|
||||||
@property(weak, nonatomic) IBOutlet UIView *routesView;
|
|
||||||
@property(weak, nonatomic) IBOutlet UIBluetoothButton *routesBluetoothButton;
|
|
||||||
@property(weak, nonatomic) IBOutlet UIButton *routesEarpieceButton;
|
|
||||||
@property(weak, nonatomic) IBOutlet UISpeakerButton *routesSpeakerButton;
|
|
||||||
@property(weak, nonatomic) IBOutlet UIMutedMicroButton *microButton;
|
|
||||||
|
|
||||||
- (IBAction)onDeclineClick:(id)sender;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
@ -1,157 +0,0 @@
|
||||||
/* OutgoingCallViewController.m
|
|
||||||
*
|
|
||||||
* Copyright (C) 2012 Belledonne Comunications, Grenoble, France
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "CallOutgoingView.h"
|
|
||||||
#import "PhoneMainView.h"
|
|
||||||
|
|
||||||
@implementation CallOutgoingView
|
|
||||||
|
|
||||||
#pragma mark - UICompositeViewDelegate Functions
|
|
||||||
|
|
||||||
static UICompositeViewDescription *compositeDescription = nil;
|
|
||||||
|
|
||||||
+ (UICompositeViewDescription *)compositeViewDescription {
|
|
||||||
if (compositeDescription == nil) {
|
|
||||||
compositeDescription = [[UICompositeViewDescription alloc] init:self.class
|
|
||||||
statusBar:StatusBarView.class
|
|
||||||
tabBar:nil
|
|
||||||
sideMenu:CallSideMenuView.class
|
|
||||||
fullscreen:false
|
|
||||||
isLeftFragment:NO
|
|
||||||
fragmentWith:nil];
|
|
||||||
|
|
||||||
compositeDescription.darkBackground = true;
|
|
||||||
}
|
|
||||||
return compositeDescription;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UICompositeViewDescription *)compositeViewDescription {
|
|
||||||
return self.class.compositeViewDescription;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewDidLoad {
|
|
||||||
_routesEarpieceButton.enabled = !IPAD;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewWillAppear:(BOOL)animated {
|
|
||||||
[super viewWillAppear:animated];
|
|
||||||
|
|
||||||
[NSNotificationCenter.defaultCenter addObserver:self
|
|
||||||
selector:@selector(bluetoothAvailabilityUpdateEvent:)
|
|
||||||
name:kLinphoneBluetoothAvailabilityUpdate
|
|
||||||
object:nil];
|
|
||||||
|
|
||||||
LinphoneCall *call = linphone_core_get_current_call(LC);
|
|
||||||
if (!call) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const LinphoneAddress *addr = linphone_call_get_remote_address(call);
|
|
||||||
[ContactDisplay setDisplayNameLabel:_nameLabel forAddress:addr withAddressLabel:_addressLabel];
|
|
||||||
char *uri = linphone_address_as_string_uri_only(addr);
|
|
||||||
ms_free(uri);
|
|
||||||
[_avatarImage setImage:[FastAddressBook imageForAddress:addr] bordered:NO withRoundedRadius:YES];
|
|
||||||
|
|
||||||
[self hideSpeaker:LinphoneManager.instance.bluetoothAvailable];
|
|
||||||
|
|
||||||
[_speakerButton update];
|
|
||||||
[_microButton update];
|
|
||||||
[_routesButton update];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewDidAppear:(BOOL)animated {
|
|
||||||
[super viewDidAppear:animated];
|
|
||||||
// if there is no call (for whatever reason), we must wait viewDidAppear method
|
|
||||||
// before popping current view, because UICompositeView cannot handle view change
|
|
||||||
// directly in viewWillAppear (this would lead to crash in deallocated memory - easily
|
|
||||||
// reproductible on iPad mini).
|
|
||||||
if (!linphone_core_get_current_call(LC)) {
|
|
||||||
[PhoneMainView.instance popCurrentView];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewWillDisappear:(BOOL)animated {
|
|
||||||
[super viewWillDisappear:animated];
|
|
||||||
[NSNotificationCenter.defaultCenter removeObserver:self];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onRoutesBluetoothClick:(id)sender {
|
|
||||||
[self hideRoutes:TRUE animated:TRUE];
|
|
||||||
[LinphoneManager.instance setSpeakerEnabled:FALSE];
|
|
||||||
[LinphoneManager.instance setBluetoothEnabled:TRUE];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onRoutesEarpieceClick:(id)sender {
|
|
||||||
[self hideRoutes:TRUE animated:TRUE];
|
|
||||||
[LinphoneManager.instance setSpeakerEnabled:FALSE];
|
|
||||||
[LinphoneManager.instance setBluetoothEnabled:FALSE];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onRoutesSpeakerClick:(id)sender {
|
|
||||||
[self hideRoutes:TRUE animated:TRUE];
|
|
||||||
[LinphoneManager.instance setBluetoothEnabled:FALSE];
|
|
||||||
[LinphoneManager.instance setSpeakerEnabled:TRUE];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onRoutesClick:(id)sender {
|
|
||||||
if ([_routesView isHidden]) {
|
|
||||||
[self hideRoutes:FALSE animated:ANIMATED];
|
|
||||||
} else {
|
|
||||||
[self hideRoutes:TRUE animated:ANIMATED];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onDeclineClick:(id)sender {
|
|
||||||
LinphoneCall *call = linphone_core_get_current_call(LC);
|
|
||||||
if (call) {
|
|
||||||
linphone_call_terminate(call);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)hideRoutes:(BOOL)hidden animated:(BOOL)animated {
|
|
||||||
if (hidden) {
|
|
||||||
[_routesButton setOff];
|
|
||||||
} else {
|
|
||||||
[_routesButton setOn];
|
|
||||||
}
|
|
||||||
|
|
||||||
_routesBluetoothButton.selected = LinphoneManager.instance.bluetoothEnabled;
|
|
||||||
_routesSpeakerButton.selected = LinphoneManager.instance.speakerEnabled;
|
|
||||||
_routesEarpieceButton.selected = !_routesBluetoothButton.selected && !_routesSpeakerButton.selected;
|
|
||||||
|
|
||||||
if (hidden != _routesView.hidden) {
|
|
||||||
[_routesView setHidden:hidden];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)hideSpeaker:(BOOL)hidden {
|
|
||||||
_speakerButton.hidden = hidden;
|
|
||||||
_routesButton.hidden = !hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - Event Functions
|
|
||||||
|
|
||||||
- (void)bluetoothAvailabilityUpdateEvent:(NSNotification *)notif {
|
|
||||||
bool available = [[notif.userInfo objectForKey:@"available"] intValue];
|
|
||||||
dispatch_async(dispatch_get_main_queue(), ^{
|
|
||||||
[self hideSpeaker:available];
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
/* InCallTableViewController.h
|
|
||||||
*
|
|
||||||
* Copyright (C) 2012 Belledonne Comunications, Grenoble, France
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
|
|
||||||
@interface CallPausedTableView : UITableViewController
|
|
||||||
|
|
||||||
- (void)update;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
@ -1,96 +0,0 @@
|
||||||
/* InCallTableViewController.h
|
|
||||||
*
|
|
||||||
* Copyright (C) 2012 Belledonne Comunications, Grenoble, France
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "CallPausedTableView.h"
|
|
||||||
#import "UICallPausedCell.h"
|
|
||||||
#import "LinphoneManager.h"
|
|
||||||
#import "Utils.h"
|
|
||||||
|
|
||||||
@implementation CallPausedTableView
|
|
||||||
|
|
||||||
#pragma mark - UI change
|
|
||||||
|
|
||||||
- (void)update {
|
|
||||||
[self.tableView reloadData];
|
|
||||||
CGRect newOrigin = self.tableView.frame;
|
|
||||||
newOrigin.size.height =
|
|
||||||
[self tableView:self.tableView heightForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]] *
|
|
||||||
[self tableView:self.tableView numberOfRowsInSection:0];
|
|
||||||
newOrigin.origin.y += self.tableView.frame.size.height - newOrigin.size.height;
|
|
||||||
self.tableView.frame = newOrigin;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - UITableViewDataSource Functions
|
|
||||||
- (LinphoneCall *)conferenceCallForRow:(NSInteger)row {
|
|
||||||
const MSList *calls = linphone_core_get_calls(LC);
|
|
||||||
int i = -1;
|
|
||||||
while (calls) {
|
|
||||||
if (linphone_call_get_state(calls->data) == LinphoneCallPaused) {
|
|
||||||
i++;
|
|
||||||
if (i == row)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
calls = calls->next;
|
|
||||||
}
|
|
||||||
// we should reach this only when we are querying for conference
|
|
||||||
return (calls ? calls->data : NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - UITableViewDataSource Functions
|
|
||||||
|
|
||||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
|
||||||
NSString *kCellId = NSStringFromClass(UICallPausedCell.class);
|
|
||||||
UICallPausedCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellId];
|
|
||||||
if (cell == nil) {
|
|
||||||
cell = [[UICallPausedCell alloc] initWithIdentifier:kCellId];
|
|
||||||
}
|
|
||||||
[cell setCall:[self conferenceCallForRow:indexPath.row]];
|
|
||||||
return cell;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
|
||||||
const MSList *calls = linphone_core_get_calls(LC);
|
|
||||||
int count = 0;
|
|
||||||
int conference_in_pause = 0;
|
|
||||||
while (calls) {
|
|
||||||
LinphoneCall *call = calls->data;
|
|
||||||
if (linphone_call_get_state(call) == LinphoneCallPaused) {
|
|
||||||
count++;
|
|
||||||
}
|
|
||||||
if (linphone_call_params_get_local_conference_mode(linphone_call_get_current_params(call)) &&
|
|
||||||
!linphone_core_is_in_conference(LC)) {
|
|
||||||
conference_in_pause = 1;
|
|
||||||
}
|
|
||||||
calls = calls->next;
|
|
||||||
}
|
|
||||||
return count + conference_in_pause;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
|
|
||||||
return 1e-5;
|
|
||||||
}
|
|
||||||
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
|
|
||||||
return 1e-5;
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
//
|
|
||||||
// SideMenuViewController.h
|
|
||||||
// linphone
|
|
||||||
//
|
|
||||||
// Created by Gautier Pelloux-Prayer on 28/07/15.
|
|
||||||
//
|
|
||||||
//
|
|
||||||
|
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
|
|
||||||
#import "SideMenuTableView.h"
|
|
||||||
#import "PhoneMainView.h"
|
|
||||||
|
|
||||||
@interface CallSideMenuView : UIViewController
|
|
||||||
|
|
||||||
@property(weak, nonatomic) IBOutlet UILabel *statsLabel;
|
|
||||||
|
|
||||||
- (IBAction)onLateralSwipe:(id)sender;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
@ -1,219 +0,0 @@
|
||||||
//
|
|
||||||
// SideMenuViewController.m
|
|
||||||
// linphone
|
|
||||||
//
|
|
||||||
// Created by Gautier Pelloux-Prayer on 28/07/15.
|
|
||||||
//
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "CallSideMenuView.h"
|
|
||||||
#import "LinphoneManager.h"
|
|
||||||
#import "PhoneMainView.h"
|
|
||||||
|
|
||||||
@implementation CallSideMenuView {
|
|
||||||
NSTimer *updateTimer;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - ViewController Functions
|
|
||||||
|
|
||||||
- (void)viewWillAppear:(BOOL)animated {
|
|
||||||
[super viewWillAppear:animated];
|
|
||||||
if (updateTimer != nil) {
|
|
||||||
[updateTimer invalidate];
|
|
||||||
}
|
|
||||||
updateTimer = [NSTimer scheduledTimerWithTimeInterval:1
|
|
||||||
target:self
|
|
||||||
selector:@selector(updateStats:)
|
|
||||||
userInfo:nil
|
|
||||||
repeats:YES];
|
|
||||||
|
|
||||||
[self updateStats:nil];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewWillDisappear:(BOOL)animated {
|
|
||||||
[super viewWillDisappear:animated];
|
|
||||||
if (updateTimer != nil) {
|
|
||||||
[updateTimer invalidate];
|
|
||||||
updateTimer = nil;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onLateralSwipe:(id)sender {
|
|
||||||
[PhoneMainView.instance.mainViewController hideSideMenu:YES];
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (NSString *)iceToString:(LinphoneIceState)state {
|
|
||||||
switch (state) {
|
|
||||||
case LinphoneIceStateNotActivated:
|
|
||||||
return NSLocalizedString(@"Not activated", @"ICE has not been activated for this call");
|
|
||||||
break;
|
|
||||||
case LinphoneIceStateFailed:
|
|
||||||
return NSLocalizedString(@"Failed", @"ICE processing has failed");
|
|
||||||
break;
|
|
||||||
case LinphoneIceStateInProgress:
|
|
||||||
return NSLocalizedString(@"In progress", @"ICE process is in progress");
|
|
||||||
break;
|
|
||||||
case LinphoneIceStateHostConnection:
|
|
||||||
return NSLocalizedString(@"Direct connection",
|
|
||||||
@"ICE has established a direct connection to the remote host");
|
|
||||||
break;
|
|
||||||
case LinphoneIceStateReflexiveConnection:
|
|
||||||
return NSLocalizedString(
|
|
||||||
@"NAT(s) connection",
|
|
||||||
@"ICE has established a connection to the remote host through one or several NATs");
|
|
||||||
break;
|
|
||||||
case LinphoneIceStateRelayConnection:
|
|
||||||
return NSLocalizedString(@"Relay connection", @"ICE has established a connection through a relay");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (NSString*)afinetToString:(int)remote_family {
|
|
||||||
return (remote_family == LinphoneAddressFamilyUnspec) ? @"Unspecified":(remote_family == LinphoneAddressFamilyInet) ? @"IPv4" : @"IPv6";
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (NSString *)mediaEncryptionToString:(LinphoneMediaEncryption)enc {
|
|
||||||
switch (enc) {
|
|
||||||
case LinphoneMediaEncryptionDTLS:
|
|
||||||
return @"DTLS";
|
|
||||||
case LinphoneMediaEncryptionSRTP:
|
|
||||||
return @"SRTP";
|
|
||||||
case LinphoneMediaEncryptionZRTP:
|
|
||||||
return @"ZRTP";
|
|
||||||
case LinphoneMediaEncryptionNone:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return NSLocalizedString(@"None", nil);
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)updateStatsForCall:(LinphoneCall *)call stream:(LinphoneStreamType)stream {
|
|
||||||
NSMutableString *result = [[NSMutableString alloc] init];
|
|
||||||
const PayloadType *payload = NULL;
|
|
||||||
const LinphoneCallStats *stats;
|
|
||||||
const LinphoneCallParams *params = linphone_call_get_current_params(call);
|
|
||||||
NSString *name;
|
|
||||||
|
|
||||||
switch (stream) {
|
|
||||||
case LinphoneStreamTypeAudio:
|
|
||||||
name = @"Audio";
|
|
||||||
payload = linphone_call_params_get_used_audio_codec(params);
|
|
||||||
stats = linphone_call_get_audio_stats(call);
|
|
||||||
break;
|
|
||||||
case LinphoneStreamTypeText:
|
|
||||||
name = @"Text";
|
|
||||||
payload = linphone_call_params_get_used_text_codec(params);
|
|
||||||
stats = linphone_call_get_text_stats(call);
|
|
||||||
break;
|
|
||||||
case LinphoneStreamTypeVideo:
|
|
||||||
name = @"Video";
|
|
||||||
payload = linphone_call_params_get_used_video_codec(params);
|
|
||||||
stats = linphone_call_get_video_stats(call);
|
|
||||||
break;
|
|
||||||
case LinphoneStreamTypeUnknown:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (payload == NULL) {
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
[result appendString:@"\n"];
|
|
||||||
[result appendString:name];
|
|
||||||
[result appendString:@"\n"];
|
|
||||||
|
|
||||||
[result appendString:[NSString stringWithFormat:@"Codec: %s/%iHz", payload->mime_type, payload->clock_rate]];
|
|
||||||
if (stream == LinphoneStreamTypeAudio) {
|
|
||||||
[result appendString:[NSString stringWithFormat:@"/%i channels", payload->channels]];
|
|
||||||
}
|
|
||||||
[result appendString:@"\n"];
|
|
||||||
// Encoder & decoder descriptions
|
|
||||||
const char *enc_desc = ms_factory_get_encoder(linphone_core_get_ms_factory(LC), payload->mime_type)->text;
|
|
||||||
const char *dec_desc = ms_factory_get_decoder(linphone_core_get_ms_factory(LC), payload->mime_type)->text;
|
|
||||||
if (strcmp(enc_desc, dec_desc) == 0) {
|
|
||||||
[result appendString:[NSString stringWithFormat:@"Encoder/Decoder: %s", enc_desc]];
|
|
||||||
[result appendString:@"\n"];
|
|
||||||
} else {
|
|
||||||
[result appendString:[NSString stringWithFormat:@"Encoder: %s", enc_desc]];
|
|
||||||
[result appendString:@"\n"];
|
|
||||||
[result appendString:[NSString stringWithFormat:@"Decoder: %s", dec_desc]];
|
|
||||||
[result appendString:@"\n"];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (stats != NULL) {
|
|
||||||
[result appendString:[NSString stringWithFormat:@"Download bandwidth: %1.1f kbits/s",
|
|
||||||
linphone_call_stats_get_download_bandwidth(stats)]];
|
|
||||||
[result appendString:@"\n"];
|
|
||||||
[result appendString:[NSString stringWithFormat:@"Upload bandwidth: %1.1f kbits/s",
|
|
||||||
linphone_call_stats_get_upload_bandwidth(stats)]];
|
|
||||||
[result appendString:@"\n"];
|
|
||||||
if (stream == LinphoneStreamTypeVideo) {
|
|
||||||
/*[result appendString:[NSString stringWithFormat:@"Estimated download bandwidth: %1.1f kbits/s",
|
|
||||||
linphone_call_stats_get_estimated_download_bandwidth(stats)]];
|
|
||||||
[result appendString:@"\n"];*/
|
|
||||||
}
|
|
||||||
[result
|
|
||||||
appendString:[NSString stringWithFormat:@"ICE state: %@",
|
|
||||||
[self.class iceToString:linphone_call_stats_get_ice_state(stats)]]];
|
|
||||||
[result appendString:@"\n"];
|
|
||||||
[result
|
|
||||||
appendString:[NSString
|
|
||||||
stringWithFormat:@"Afinet: %@",
|
|
||||||
[self.class afinetToString:linphone_call_stats_get_ip_family_of_remote(
|
|
||||||
stats)]]];
|
|
||||||
[result appendString:@"\n"];
|
|
||||||
|
|
||||||
// RTP stats section (packet loss count, etc)
|
|
||||||
const rtp_stats_t rtp_stats = *linphone_call_stats_get_rtp_stats(stats);
|
|
||||||
[result
|
|
||||||
appendString:[NSString stringWithFormat:
|
|
||||||
@"RTP packets: %llu total, %lld cum loss, %llu discarded, %llu OOT, %llu bad",
|
|
||||||
rtp_stats.packet_recv, rtp_stats.cum_packet_loss, rtp_stats.discarded,
|
|
||||||
rtp_stats.outoftime, rtp_stats.bad]];
|
|
||||||
[result appendString:@"\n"];
|
|
||||||
[result appendString:[NSString stringWithFormat:@"Sender loss rate: %.2f%%",
|
|
||||||
linphone_call_stats_get_sender_loss_rate(stats)]];
|
|
||||||
[result appendString:@"\n"];
|
|
||||||
[result appendString:[NSString stringWithFormat:@"Receiver loss rate: %.2f%%",
|
|
||||||
linphone_call_stats_get_receiver_loss_rate(stats)]];
|
|
||||||
[result appendString:@"\n"];
|
|
||||||
|
|
||||||
if (stream == LinphoneStreamTypeVideo) {
|
|
||||||
const LinphoneVideoDefinition *recv_definition = linphone_call_params_get_received_video_definition(params);
|
|
||||||
const LinphoneVideoDefinition *sent_definition = linphone_call_params_get_sent_video_definition(params);
|
|
||||||
float sentFPS = linphone_call_params_get_sent_framerate(params);
|
|
||||||
float recvFPS = linphone_call_params_get_received_framerate(params);
|
|
||||||
[result appendString:[NSString stringWithFormat:@"Sent video resolution: %dx%d (%.1fFPS)", linphone_video_definition_get_width(sent_definition),
|
|
||||||
linphone_video_definition_get_height(sent_definition), sentFPS]];
|
|
||||||
[result appendString:@"\n"];
|
|
||||||
[result appendString:[NSString stringWithFormat:@"Received video resolution: %dx%d (%.1fFPS)",
|
|
||||||
linphone_video_definition_get_width(recv_definition),
|
|
||||||
linphone_video_definition_get_height(recv_definition), recvFPS]];
|
|
||||||
[result appendString:@"\n"];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)updateStats:(NSTimer *)timer {
|
|
||||||
LinphoneCall *call = linphone_core_get_current_call(LC);
|
|
||||||
|
|
||||||
if (!call) {
|
|
||||||
_statsLabel.text = NSLocalizedString(@"No call in progress", nil);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
NSMutableString *stats = [[NSMutableString alloc] init];
|
|
||||||
|
|
||||||
LinphoneMediaEncryption enc = linphone_call_params_get_media_encryption(linphone_call_get_current_params(call));
|
|
||||||
if (enc != LinphoneMediaEncryptionNone) {
|
|
||||||
[stats appendString:[NSString
|
|
||||||
stringWithFormat:@"Call encrypted using %@", [self.class mediaEncryptionToString:enc]]];
|
|
||||||
}
|
|
||||||
|
|
||||||
[stats appendString:[self updateStatsForCall:call stream:LinphoneStreamTypeAudio]];
|
|
||||||
[stats appendString:[self updateStatsForCall:call stream:LinphoneStreamTypeVideo]];
|
|
||||||
[stats appendString:[self updateStatsForCall:call stream:LinphoneStreamTypeText]];
|
|
||||||
|
|
||||||
_statsLabel.text = stats;
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
@ -1,50 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9531" systemVersion="15D21" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
|
||||||
<dependencies>
|
|
||||||
<deployment identifier="iOS"/>
|
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9529"/>
|
|
||||||
</dependencies>
|
|
||||||
<objects>
|
|
||||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="CallSideMenuView">
|
|
||||||
<connections>
|
|
||||||
<outlet property="statsLabel" destination="ZYY-EM-M2s" id="Syl-sZ-upy"/>
|
|
||||||
<outlet property="view" destination="YEG-7O-7jE" id="VGG-cE-thT"/>
|
|
||||||
</connections>
|
|
||||||
</placeholder>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
|
||||||
<view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="YEG-7O-7jE">
|
|
||||||
<rect key="frame" x="0.0" y="42" width="375" height="625"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
|
||||||
<subviews>
|
|
||||||
<label opaque="NO" userInteractionEnabled="NO" alpha="0.69999999999999973" contentMode="center" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="100" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" id="ZYY-EM-M2s" userLabel="statsLabel">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="300" height="625"/>
|
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
|
||||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
|
||||||
<string key="text">Audio: upr
|
|
||||||
Video: down</string>
|
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
|
||||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
|
||||||
<nil key="highlightedColor"/>
|
|
||||||
</label>
|
|
||||||
</subviews>
|
|
||||||
<gestureRecognizers/>
|
|
||||||
<connections>
|
|
||||||
<outletCollection property="gestureRecognizers" destination="EB5-NY-DqU" appends="YES" id="Bz9-rW-UqV"/>
|
|
||||||
</connections>
|
|
||||||
</view>
|
|
||||||
</subviews>
|
|
||||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
|
||||||
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina47"/>
|
|
||||||
<point key="canvasLocation" x="473.5" y="318.5"/>
|
|
||||||
</view>
|
|
||||||
<tapGestureRecognizer id="EB5-NY-DqU">
|
|
||||||
<connections>
|
|
||||||
<action selector="onLateralSwipe:" destination="-1" id="Li9-LU-Om1"/>
|
|
||||||
</connections>
|
|
||||||
</tapGestureRecognizer>
|
|
||||||
</objects>
|
|
||||||
</document>
|
|
||||||
|
|
@ -1,111 +0,0 @@
|
||||||
/* InCallViewController.h
|
|
||||||
*
|
|
||||||
* Copyright (C) 2009 Belledonne Comunications, Grenoble, France
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
|
|
||||||
#import "VideoZoomHandler.h"
|
|
||||||
#import "UICamSwitch.h"
|
|
||||||
|
|
||||||
#import "UICompositeView.h"
|
|
||||||
#import "CallPausedTableView.h"
|
|
||||||
|
|
||||||
#import "UIMutedMicroButton.h"
|
|
||||||
#import "UIPauseButton.h"
|
|
||||||
#import "UISpeakerButton.h"
|
|
||||||
#import "UIVideoButton.h"
|
|
||||||
#import "UIHangUpButton.h"
|
|
||||||
#import "UIDigitButton.h"
|
|
||||||
#import "UIRoundedImageView.h"
|
|
||||||
#import "UIBouncingView.h"
|
|
||||||
|
|
||||||
@class VideoView;
|
|
||||||
|
|
||||||
@interface CallView : TPMultiLayoutViewController <UIGestureRecognizerDelegate, UICompositeViewDelegate> {
|
|
||||||
@private
|
|
||||||
UITapGestureRecognizer *singleFingerTap;
|
|
||||||
NSTimer *hideControlsTimer;
|
|
||||||
NSTimer *videoDismissTimer;
|
|
||||||
BOOL videoHidden;
|
|
||||||
VideoZoomHandler *videoZoomHandler;
|
|
||||||
}
|
|
||||||
|
|
||||||
@property(nonatomic, strong) IBOutlet CallPausedTableView *pausedCallsTable;
|
|
||||||
|
|
||||||
@property(nonatomic, strong) IBOutlet UIView *videoGroup;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIView *videoView;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIView *videoPreview;
|
|
||||||
@property(nonatomic, strong) IBOutlet UICamSwitch *videoCameraSwitch;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIActivityIndicatorView *videoWaitingForFirstImage;
|
|
||||||
@property(weak, nonatomic) IBOutlet UIView *callView;
|
|
||||||
|
|
||||||
@property(nonatomic, strong) IBOutlet UIPauseButton *callPauseButton;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIButton *optionsConferenceButton;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIVideoButton *videoButton;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIMutedMicroButton *microButton;
|
|
||||||
@property(nonatomic, strong) IBOutlet UISpeakerButton *speakerButton;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIToggleButton *routesButton;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIToggleButton *optionsButton;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIHangUpButton *hangupButton;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIView *numpadView;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIView *routesView;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIView *optionsView;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIButton *routesEarpieceButton;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIButton *routesSpeakerButton;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIButton *routesBluetoothButton;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIButton *optionsAddButton;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIButton *optionsTransferButton;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIToggleButton *numpadButton;
|
|
||||||
@property(weak, nonatomic) IBOutlet UIPauseButton *conferencePauseButton;
|
|
||||||
@property(weak, nonatomic) IBOutlet UIBouncingView *chatNotificationView;
|
|
||||||
@property(weak, nonatomic) IBOutlet UILabel *chatNotificationLabel;
|
|
||||||
|
|
||||||
@property(weak, nonatomic) IBOutlet UIView *bottomBar;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIDigitButton *oneButton;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIDigitButton *twoButton;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIDigitButton *threeButton;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIDigitButton *fourButton;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIDigitButton *fiveButton;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIDigitButton *sixButton;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIDigitButton *sevenButton;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIDigitButton *eightButton;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIDigitButton *nineButton;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIDigitButton *starButton;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIDigitButton *zeroButton;
|
|
||||||
@property(nonatomic, strong) IBOutlet UIDigitButton *hashButton;
|
|
||||||
@property(weak, nonatomic) IBOutlet UIRoundedImageView *avatarImage;
|
|
||||||
@property(weak, nonatomic) IBOutlet UILabel *nameLabel;
|
|
||||||
@property(weak, nonatomic) IBOutlet UILabel *durationLabel;
|
|
||||||
@property(weak, nonatomic) IBOutlet UIView *pausedByRemoteView;
|
|
||||||
@property(weak, nonatomic) IBOutlet UIView *noActiveCallView;
|
|
||||||
@property(weak, nonatomic) IBOutlet UIView *conferenceView;
|
|
||||||
@property(strong, nonatomic) IBOutlet CallPausedTableView *conferenceCallsTable;
|
|
||||||
@property (weak, nonatomic) IBOutlet UIView *waitView;
|
|
||||||
|
|
||||||
- (IBAction)onRoutesClick:(id)sender;
|
|
||||||
- (IBAction)onRoutesBluetoothClick:(id)sender;
|
|
||||||
- (IBAction)onRoutesEarpieceClick:(id)sender;
|
|
||||||
- (IBAction)onRoutesSpeakerClick:(id)sender;
|
|
||||||
- (IBAction)onOptionsClick:(id)sender;
|
|
||||||
- (IBAction)onOptionsTransferClick:(id)sender;
|
|
||||||
- (IBAction)onOptionsAddClick:(id)sender;
|
|
||||||
- (IBAction)onOptionsConferenceClick:(id)sender;
|
|
||||||
- (IBAction)onNumpadClick:(id)sender;
|
|
||||||
- (IBAction)onChatClick:(id)sender;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
@ -1,830 +0,0 @@
|
||||||
/* InCallViewController.h
|
|
||||||
*
|
|
||||||
* Copyright (C) 2009 Belledonne Comunications, Grenoble, France
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <AVFoundation/AVAudioSession.h>
|
|
||||||
#import <AddressBook/AddressBook.h>
|
|
||||||
#import <AudioToolbox/AudioToolbox.h>
|
|
||||||
#import <OpenGLES/EAGL.h>
|
|
||||||
#import <OpenGLES/EAGLDrawable.h>
|
|
||||||
#import <QuartzCore/CAAnimation.h>
|
|
||||||
#import <QuartzCore/QuartzCore.h>
|
|
||||||
#import <UserNotifications/UserNotifications.h>
|
|
||||||
|
|
||||||
#import "CallView.h"
|
|
||||||
#import "CallSideMenuView.h"
|
|
||||||
#import "LinphoneManager.h"
|
|
||||||
#import "PhoneMainView.h"
|
|
||||||
#import "Utils.h"
|
|
||||||
|
|
||||||
#include "linphone/linphonecore.h"
|
|
||||||
|
|
||||||
const NSInteger SECURE_BUTTON_TAG = 5;
|
|
||||||
|
|
||||||
@implementation CallView {
|
|
||||||
BOOL hiddenVolume;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - Lifecycle Functions
|
|
||||||
|
|
||||||
- (id)init {
|
|
||||||
self = [super initWithNibName:NSStringFromClass(self.class) bundle:[NSBundle mainBundle]];
|
|
||||||
if (self != nil) {
|
|
||||||
singleFingerTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(toggleControls:)];
|
|
||||||
videoZoomHandler = [[VideoZoomHandler alloc] init];
|
|
||||||
videoHidden = TRUE;
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - UICompositeViewDelegate Functions
|
|
||||||
|
|
||||||
static UICompositeViewDescription *compositeDescription = nil;
|
|
||||||
|
|
||||||
+ (UICompositeViewDescription *)compositeViewDescription {
|
|
||||||
if (compositeDescription == nil) {
|
|
||||||
compositeDescription = [[UICompositeViewDescription alloc] init:self.class
|
|
||||||
statusBar:StatusBarView.class
|
|
||||||
tabBar:nil
|
|
||||||
sideMenu:CallSideMenuView.class
|
|
||||||
fullscreen:false
|
|
||||||
isLeftFragment:YES
|
|
||||||
fragmentWith:nil];
|
|
||||||
compositeDescription.darkBackground = true;
|
|
||||||
}
|
|
||||||
return compositeDescription;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UICompositeViewDescription *)compositeViewDescription {
|
|
||||||
return self.class.compositeViewDescription;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - ViewController Functions
|
|
||||||
|
|
||||||
- (void)viewDidLoad {
|
|
||||||
[super viewDidLoad];
|
|
||||||
|
|
||||||
_routesEarpieceButton.enabled = !IPAD;
|
|
||||||
|
|
||||||
// TODO: fixme! video preview frame is too big compared to openGL preview
|
|
||||||
// frame, so until this is fixed, temporary disabled it.
|
|
||||||
#if 0
|
|
||||||
_videoPreview.layer.borderColor = UIColor.whiteColor.CGColor;
|
|
||||||
_videoPreview.layer.borderWidth = 1;
|
|
||||||
#endif
|
|
||||||
[singleFingerTap setNumberOfTapsRequired:1];
|
|
||||||
[singleFingerTap setCancelsTouchesInView:FALSE];
|
|
||||||
[self.videoView addGestureRecognizer:singleFingerTap];
|
|
||||||
|
|
||||||
[videoZoomHandler setup:_videoGroup];
|
|
||||||
_videoGroup.alpha = 0;
|
|
||||||
|
|
||||||
[_videoCameraSwitch setPreview:_videoPreview];
|
|
||||||
|
|
||||||
UIPanGestureRecognizer *dragndrop =
|
|
||||||
[[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(moveVideoPreview:)];
|
|
||||||
dragndrop.minimumNumberOfTouches = 1;
|
|
||||||
[_videoPreview addGestureRecognizer:dragndrop];
|
|
||||||
|
|
||||||
[_zeroButton setDigit:'0'];
|
|
||||||
[_zeroButton setDtmf:true];
|
|
||||||
[_oneButton setDigit:'1'];
|
|
||||||
[_oneButton setDtmf:true];
|
|
||||||
[_twoButton setDigit:'2'];
|
|
||||||
[_twoButton setDtmf:true];
|
|
||||||
[_threeButton setDigit:'3'];
|
|
||||||
[_threeButton setDtmf:true];
|
|
||||||
[_fourButton setDigit:'4'];
|
|
||||||
[_fourButton setDtmf:true];
|
|
||||||
[_fiveButton setDigit:'5'];
|
|
||||||
[_fiveButton setDtmf:true];
|
|
||||||
[_sixButton setDigit:'6'];
|
|
||||||
[_sixButton setDtmf:true];
|
|
||||||
[_sevenButton setDigit:'7'];
|
|
||||||
[_sevenButton setDtmf:true];
|
|
||||||
[_eightButton setDigit:'8'];
|
|
||||||
[_eightButton setDtmf:true];
|
|
||||||
[_nineButton setDigit:'9'];
|
|
||||||
[_nineButton setDtmf:true];
|
|
||||||
[_starButton setDigit:'*'];
|
|
||||||
[_starButton setDtmf:true];
|
|
||||||
[_hashButton setDigit:'#'];
|
|
||||||
[_hashButton setDtmf:true];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dealloc {
|
|
||||||
[PhoneMainView.instance.view removeGestureRecognizer:singleFingerTap];
|
|
||||||
// Remove all observer
|
|
||||||
[NSNotificationCenter.defaultCenter removeObserver:self];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewWillAppear:(BOOL)animated {
|
|
||||||
[super viewWillAppear:animated];
|
|
||||||
_waitView.hidden = TRUE;
|
|
||||||
LinphoneManager.instance.nextCallIsTransfer = NO;
|
|
||||||
|
|
||||||
[self updateUnreadMessage:FALSE];
|
|
||||||
|
|
||||||
// Update on show
|
|
||||||
[self hideRoutes:TRUE animated:FALSE];
|
|
||||||
[self hideOptions:TRUE animated:FALSE];
|
|
||||||
[self hidePad:TRUE animated:FALSE];
|
|
||||||
[self hideSpeaker:LinphoneManager.instance.bluetoothAvailable];
|
|
||||||
[self callDurationUpdate];
|
|
||||||
[self onCurrentCallChange];
|
|
||||||
// Set windows (warn memory leaks)
|
|
||||||
linphone_core_set_native_video_window_id(LC, (__bridge void *)(_videoView));
|
|
||||||
linphone_core_set_native_preview_window_id(LC, (__bridge void *)(_videoPreview));
|
|
||||||
|
|
||||||
[self previewTouchLift];
|
|
||||||
// Enable tap
|
|
||||||
[singleFingerTap setEnabled:TRUE];
|
|
||||||
|
|
||||||
[NSNotificationCenter.defaultCenter addObserver:self
|
|
||||||
selector:@selector(messageReceived:)
|
|
||||||
name:kLinphoneMessageReceived
|
|
||||||
object:nil];
|
|
||||||
[NSNotificationCenter.defaultCenter addObserver:self
|
|
||||||
selector:@selector(bluetoothAvailabilityUpdateEvent:)
|
|
||||||
name:kLinphoneBluetoothAvailabilityUpdate
|
|
||||||
object:nil];
|
|
||||||
[NSNotificationCenter.defaultCenter addObserver:self
|
|
||||||
selector:@selector(callUpdateEvent:)
|
|
||||||
name:kLinphoneCallUpdate
|
|
||||||
object:nil];
|
|
||||||
|
|
||||||
[NSTimer scheduledTimerWithTimeInterval:1
|
|
||||||
target:self
|
|
||||||
selector:@selector(callDurationUpdate)
|
|
||||||
userInfo:nil
|
|
||||||
repeats:YES];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewDidAppear:(BOOL)animated {
|
|
||||||
[super viewDidAppear:animated];
|
|
||||||
|
|
||||||
[[UIApplication sharedApplication] setIdleTimerDisabled:YES];
|
|
||||||
[[UIDevice currentDevice] setProximityMonitoringEnabled:TRUE];
|
|
||||||
|
|
||||||
[PhoneMainView.instance setVolumeHidden:TRUE];
|
|
||||||
hiddenVolume = TRUE;
|
|
||||||
|
|
||||||
// we must wait didAppear to reset fullscreen mode because we cannot change it in viewwillappear
|
|
||||||
LinphoneCall *call = linphone_core_get_current_call(LC);
|
|
||||||
LinphoneCallState state = (call != NULL) ? linphone_call_get_state(call) : 0;
|
|
||||||
[self callUpdate:call state:state animated:FALSE];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewWillDisappear:(BOOL)animated {
|
|
||||||
[super viewWillDisappear:animated];
|
|
||||||
[[UIDevice currentDevice] setProximityMonitoringEnabled:FALSE];
|
|
||||||
[self disableVideoDisplay:TRUE animated:NO];
|
|
||||||
|
|
||||||
if (hideControlsTimer != nil) {
|
|
||||||
[hideControlsTimer invalidate];
|
|
||||||
hideControlsTimer = nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (hiddenVolume) {
|
|
||||||
[PhoneMainView.instance setVolumeHidden:FALSE];
|
|
||||||
hiddenVolume = FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (videoDismissTimer) {
|
|
||||||
[self dismissVideoActionSheet:videoDismissTimer];
|
|
||||||
[videoDismissTimer invalidate];
|
|
||||||
videoDismissTimer = nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Remove observer
|
|
||||||
[NSNotificationCenter.defaultCenter removeObserver:self];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewDidDisappear:(BOOL)animated {
|
|
||||||
[super viewDidDisappear:animated];
|
|
||||||
|
|
||||||
[[UIApplication sharedApplication] setIdleTimerDisabled:false];
|
|
||||||
[[UIDevice currentDevice] setProximityMonitoringEnabled:FALSE];
|
|
||||||
|
|
||||||
[PhoneMainView.instance fullScreen:false];
|
|
||||||
// Disable tap
|
|
||||||
[singleFingerTap setEnabled:FALSE];
|
|
||||||
|
|
||||||
if (linphone_core_get_calls_nb(LC) == 0) {
|
|
||||||
// reseting speaker button because no more call
|
|
||||||
_speakerButton.selected = FALSE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
|
|
||||||
[super didRotateFromInterfaceOrientation:fromInterfaceOrientation];
|
|
||||||
[self updateUnreadMessage:NO];
|
|
||||||
[self previewTouchLift];
|
|
||||||
[self hideStatusBar:!videoHidden && (_nameLabel.alpha <= 0.f)];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - UI modification
|
|
||||||
|
|
||||||
- (void)hideSpinnerIndicator:(LinphoneCall *)call {
|
|
||||||
_videoWaitingForFirstImage.hidden = TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void hideSpinner(LinphoneCall *call, void *user_data) {
|
|
||||||
CallView *thiz = (__bridge CallView *)user_data;
|
|
||||||
[thiz hideSpinnerIndicator:call];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)updateBottomBar:(LinphoneCall *)call state:(LinphoneCallState)state {
|
|
||||||
[_speakerButton update];
|
|
||||||
[_microButton update];
|
|
||||||
[_callPauseButton update];
|
|
||||||
[_conferencePauseButton update];
|
|
||||||
[_videoButton update];
|
|
||||||
[_hangupButton update];
|
|
||||||
|
|
||||||
_optionsButton.enabled = (!call || !linphone_core_sound_resources_locked(LC));
|
|
||||||
_optionsTransferButton.enabled = call && !linphone_core_sound_resources_locked(LC);
|
|
||||||
// enable conference button if 2 calls are presents and at least one is not in the conference
|
|
||||||
int confSize = linphone_core_get_conference_size(LC) - (linphone_core_is_in_conference(LC) ? 1 : 0);
|
|
||||||
_optionsConferenceButton.enabled =
|
|
||||||
((linphone_core_get_calls_nb(LC) > 1) && (linphone_core_get_calls_nb(LC) != confSize));
|
|
||||||
|
|
||||||
// Disable transfert in conference
|
|
||||||
if (linphone_core_get_current_call(LC) == NULL) {
|
|
||||||
[_optionsTransferButton setEnabled:FALSE];
|
|
||||||
} else {
|
|
||||||
[_optionsTransferButton setEnabled:TRUE];
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (state) {
|
|
||||||
case LinphoneCallEnd:
|
|
||||||
case LinphoneCallError:
|
|
||||||
case LinphoneCallIncoming:
|
|
||||||
case LinphoneCallOutgoing:
|
|
||||||
[self hidePad:TRUE animated:TRUE];
|
|
||||||
[self hideOptions:TRUE animated:TRUE];
|
|
||||||
[self hideRoutes:TRUE animated:TRUE];
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)toggleControls:(id)sender {
|
|
||||||
bool controlsHidden = (_bottomBar.alpha == 0.0);
|
|
||||||
[self hideControls:!controlsHidden sender:sender];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)timerHideControls:(id)sender {
|
|
||||||
[self hideControls:TRUE sender:sender];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)hideControls:(BOOL)hidden sender:(id)sender {
|
|
||||||
if (videoHidden && hidden)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (hideControlsTimer) {
|
|
||||||
[hideControlsTimer invalidate];
|
|
||||||
hideControlsTimer = nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ([[PhoneMainView.instance currentView] equal:CallView.compositeViewDescription]) {
|
|
||||||
// show controls
|
|
||||||
[UIView beginAnimations:nil context:nil];
|
|
||||||
[UIView setAnimationDuration:0.35];
|
|
||||||
_pausedCallsTable.tableView.alpha = _videoCameraSwitch.alpha = _callPauseButton.alpha = _routesView.alpha =
|
|
||||||
_optionsView.alpha = _numpadView.alpha = _bottomBar.alpha = (hidden ? 0 : 1);
|
|
||||||
_nameLabel.alpha = _durationLabel.alpha = (hidden ? 0 : .8f);
|
|
||||||
|
|
||||||
[self hideStatusBar:hidden];
|
|
||||||
|
|
||||||
[UIView commitAnimations];
|
|
||||||
|
|
||||||
[PhoneMainView.instance hideTabBar:hidden];
|
|
||||||
|
|
||||||
if (!hidden) {
|
|
||||||
// hide controls in 5 sec
|
|
||||||
hideControlsTimer = [NSTimer scheduledTimerWithTimeInterval:5.0
|
|
||||||
target:self
|
|
||||||
selector:@selector(timerHideControls:)
|
|
||||||
userInfo:nil
|
|
||||||
repeats:NO];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)disableVideoDisplay:(BOOL)disabled animated:(BOOL)animation {
|
|
||||||
if (disabled == videoHidden && animation)
|
|
||||||
return;
|
|
||||||
videoHidden = disabled;
|
|
||||||
|
|
||||||
if (!disabled) {
|
|
||||||
[videoZoomHandler resetZoom];
|
|
||||||
}
|
|
||||||
if (animation) {
|
|
||||||
[UIView beginAnimations:nil context:nil];
|
|
||||||
[UIView setAnimationDuration:1.0];
|
|
||||||
}
|
|
||||||
|
|
||||||
[_videoGroup setAlpha:disabled ? 0 : 1];
|
|
||||||
|
|
||||||
[self hideControls:!disabled sender:nil];
|
|
||||||
|
|
||||||
if (animation) {
|
|
||||||
[UIView commitAnimations];
|
|
||||||
}
|
|
||||||
|
|
||||||
// only show camera switch button if we have more than 1 camera
|
|
||||||
_videoCameraSwitch.hidden = (disabled || !LinphoneManager.instance.frontCamId);
|
|
||||||
_videoPreview.hidden = (disabled || !linphone_core_self_view_enabled(LC));
|
|
||||||
|
|
||||||
if (hideControlsTimer != nil) {
|
|
||||||
[hideControlsTimer invalidate];
|
|
||||||
hideControlsTimer = nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(![PhoneMainView.instance isIphoneXDevice]){
|
|
||||||
[PhoneMainView.instance fullScreen:!disabled];
|
|
||||||
}
|
|
||||||
[PhoneMainView.instance hideTabBar:!disabled];
|
|
||||||
|
|
||||||
if (!disabled) {
|
|
||||||
#ifdef TEST_VIDEO_VIEW_CHANGE
|
|
||||||
[NSTimer scheduledTimerWithTimeInterval:5.0
|
|
||||||
target:self
|
|
||||||
selector:@selector(_debugChangeVideoView)
|
|
||||||
userInfo:nil
|
|
||||||
repeats:YES];
|
|
||||||
#endif
|
|
||||||
// [self batteryLevelChanged:nil];
|
|
||||||
|
|
||||||
[_videoWaitingForFirstImage setHidden:NO];
|
|
||||||
[_videoWaitingForFirstImage startAnimating];
|
|
||||||
|
|
||||||
LinphoneCall *call = linphone_core_get_current_call(LC);
|
|
||||||
// linphone_call_params_get_used_video_codec return 0 if no video stream enabled
|
|
||||||
if (call != NULL && linphone_call_params_get_used_video_codec(linphone_call_get_current_params(call))) {
|
|
||||||
linphone_call_set_next_video_frame_decoded_callback(call, hideSpinner, (__bridge void *)(self));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)displayVideoCall:(BOOL)animated {
|
|
||||||
[self disableVideoDisplay:FALSE animated:animated];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)displayAudioCall:(BOOL)animated {
|
|
||||||
[self disableVideoDisplay:TRUE animated:animated];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)hideStatusBar:(BOOL)hide {
|
|
||||||
/* we cannot use [PhoneMainView.instance show]; because it will automatically
|
|
||||||
resize current view to fill empty space, which will resize video. This is
|
|
||||||
indesirable since we do not want to crop/rescale video view */
|
|
||||||
PhoneMainView.instance.mainViewController.statusBarView.hidden = hide;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)callDurationUpdate {
|
|
||||||
int duration =
|
|
||||||
linphone_core_get_current_call(LC) ? linphone_call_get_duration(linphone_core_get_current_call(LC)) : 0;
|
|
||||||
_durationLabel.text = [LinphoneUtils durationToString:duration];
|
|
||||||
|
|
||||||
[_pausedCallsTable update];
|
|
||||||
[_conferenceCallsTable update];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)onCurrentCallChange {
|
|
||||||
LinphoneCall *call = linphone_core_get_current_call(LC);
|
|
||||||
|
|
||||||
_noActiveCallView.hidden = (call || linphone_core_is_in_conference(LC));
|
|
||||||
_callView.hidden = !call;
|
|
||||||
_conferenceView.hidden = !linphone_core_is_in_conference(LC);
|
|
||||||
_callPauseButton.hidden = !call && !linphone_core_is_in_conference(LC);
|
|
||||||
|
|
||||||
[_callPauseButton setType:UIPauseButtonType_CurrentCall call:call];
|
|
||||||
[_conferencePauseButton setType:UIPauseButtonType_Conference call:call];
|
|
||||||
|
|
||||||
if (!_callView.hidden) {
|
|
||||||
const LinphoneAddress *addr = linphone_call_get_remote_address(call);
|
|
||||||
[ContactDisplay setDisplayNameLabel:_nameLabel forAddress:addr];
|
|
||||||
char *uri = linphone_address_as_string_uri_only(addr);
|
|
||||||
ms_free(uri);
|
|
||||||
[_avatarImage setImage:[FastAddressBook imageForAddress:addr] bordered:YES withRoundedRadius:YES];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)hidePad:(BOOL)hidden animated:(BOOL)animated {
|
|
||||||
if (hidden) {
|
|
||||||
[_numpadButton setOff];
|
|
||||||
} else {
|
|
||||||
[_numpadButton setOn];
|
|
||||||
}
|
|
||||||
if (hidden != _numpadView.hidden) {
|
|
||||||
if (animated) {
|
|
||||||
[self hideAnimation:hidden forView:_numpadView completion:nil];
|
|
||||||
} else {
|
|
||||||
[_numpadView setHidden:hidden];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)hideRoutes:(BOOL)hidden animated:(BOOL)animated {
|
|
||||||
if (hidden) {
|
|
||||||
[_routesButton setOff];
|
|
||||||
} else {
|
|
||||||
[_routesButton setOn];
|
|
||||||
}
|
|
||||||
|
|
||||||
_routesBluetoothButton.selected = LinphoneManager.instance.bluetoothEnabled;
|
|
||||||
_routesSpeakerButton.selected = LinphoneManager.instance.speakerEnabled;
|
|
||||||
_routesEarpieceButton.selected = !_routesBluetoothButton.selected && !_routesSpeakerButton.selected;
|
|
||||||
|
|
||||||
if (hidden != _routesView.hidden) {
|
|
||||||
if (animated) {
|
|
||||||
[self hideAnimation:hidden forView:_routesView completion:nil];
|
|
||||||
} else {
|
|
||||||
[_routesView setHidden:hidden];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)hideOptions:(BOOL)hidden animated:(BOOL)animated {
|
|
||||||
if (hidden) {
|
|
||||||
[_optionsButton setOff];
|
|
||||||
} else {
|
|
||||||
[_optionsButton setOn];
|
|
||||||
}
|
|
||||||
if (hidden != _optionsView.hidden) {
|
|
||||||
if (animated) {
|
|
||||||
[self hideAnimation:hidden forView:_optionsView completion:nil];
|
|
||||||
} else {
|
|
||||||
[_optionsView setHidden:hidden];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)hideSpeaker:(BOOL)hidden {
|
|
||||||
_speakerButton.hidden = hidden;
|
|
||||||
_routesButton.hidden = !hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - Event Functions
|
|
||||||
|
|
||||||
- (void)bluetoothAvailabilityUpdateEvent:(NSNotification *)notif {
|
|
||||||
bool available = [[notif.userInfo objectForKey:@"available"] intValue];
|
|
||||||
[self hideSpeaker:available];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)callUpdateEvent:(NSNotification *)notif {
|
|
||||||
LinphoneCall *call = [[notif.userInfo objectForKey:@"call"] pointerValue];
|
|
||||||
LinphoneCallState state = [[notif.userInfo objectForKey:@"state"] intValue];
|
|
||||||
[self callUpdate:call state:state animated:TRUE];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)callUpdate:(LinphoneCall *)call state:(LinphoneCallState)state animated:(BOOL)animated {
|
|
||||||
[self updateBottomBar:call state:state];
|
|
||||||
if (hiddenVolume) {
|
|
||||||
[PhoneMainView.instance setVolumeHidden:FALSE];
|
|
||||||
hiddenVolume = FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update tables
|
|
||||||
[_pausedCallsTable update];
|
|
||||||
[_conferenceCallsTable update];
|
|
||||||
|
|
||||||
static LinphoneCall *currentCall = NULL;
|
|
||||||
if (!currentCall || linphone_core_get_current_call(LC) != currentCall) {
|
|
||||||
currentCall = linphone_core_get_current_call(LC);
|
|
||||||
[self onCurrentCallChange];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Fake call update
|
|
||||||
if (call == NULL) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
BOOL shouldDisableVideo =
|
|
||||||
(!currentCall || !linphone_call_params_video_enabled(linphone_call_get_current_params(currentCall)));
|
|
||||||
if (videoHidden != shouldDisableVideo) {
|
|
||||||
if (!shouldDisableVideo) {
|
|
||||||
[self displayVideoCall:animated];
|
|
||||||
} else {
|
|
||||||
[self displayAudioCall:animated];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (state != LinphoneCallPausedByRemote) {
|
|
||||||
_pausedByRemoteView.hidden = YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (state) {
|
|
||||||
case LinphoneCallIncomingReceived:
|
|
||||||
case LinphoneCallOutgoingInit:
|
|
||||||
case LinphoneCallConnected:
|
|
||||||
case LinphoneCallStreamsRunning: {
|
|
||||||
// check video
|
|
||||||
if (!linphone_call_params_video_enabled(linphone_call_get_current_params(call))) {
|
|
||||||
const LinphoneCallParams *param = linphone_call_get_current_params(call);
|
|
||||||
const LinphoneCallAppData *callAppData =
|
|
||||||
(__bridge const LinphoneCallAppData *)(linphone_call_get_user_data(call));
|
|
||||||
if (state == LinphoneCallStreamsRunning && callAppData->videoRequested &&
|
|
||||||
linphone_call_params_low_bandwidth_enabled(param)) {
|
|
||||||
// too bad video was not enabled because low bandwidth
|
|
||||||
UIAlertController *errView = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Low bandwidth", nil)
|
|
||||||
message:NSLocalizedString(@"Video cannot be activated because of low bandwidth "
|
|
||||||
@"condition, only audio is available",
|
|
||||||
nil)
|
|
||||||
preferredStyle:UIAlertControllerStyleAlert];
|
|
||||||
|
|
||||||
UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Continue", nil)
|
|
||||||
style:UIAlertActionStyleDefault
|
|
||||||
handler:^(UIAlertAction * action) {}];
|
|
||||||
|
|
||||||
[errView addAction:defaultAction];
|
|
||||||
[self presentViewController:errView animated:YES completion:nil];
|
|
||||||
callAppData->videoRequested = FALSE; /*reset field*/
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case LinphoneCallUpdatedByRemote: {
|
|
||||||
const LinphoneCallParams *current = linphone_call_get_current_params(call);
|
|
||||||
const LinphoneCallParams *remote = linphone_call_get_remote_params(call);
|
|
||||||
|
|
||||||
/* remote wants to add video */
|
|
||||||
if ((linphone_core_video_display_enabled(LC) && !linphone_call_params_video_enabled(current) &&
|
|
||||||
linphone_call_params_video_enabled(remote)) &&
|
|
||||||
(!linphone_core_get_video_policy(LC)->automatically_accept ||
|
|
||||||
(([UIApplication sharedApplication].applicationState != UIApplicationStateActive) &&
|
|
||||||
floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_9_x_Max))) {
|
|
||||||
linphone_core_defer_call_update(LC, call);
|
|
||||||
[self displayAskToEnableVideoCall:call];
|
|
||||||
} else if (linphone_call_params_video_enabled(current) && !linphone_call_params_video_enabled(remote)) {
|
|
||||||
[self displayAudioCall:animated];
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case LinphoneCallPausing:
|
|
||||||
case LinphoneCallPaused:
|
|
||||||
[self displayAudioCall:animated];
|
|
||||||
break;
|
|
||||||
case LinphoneCallPausedByRemote:
|
|
||||||
[self displayAudioCall:animated];
|
|
||||||
if (call == linphone_core_get_current_call(LC)) {
|
|
||||||
_pausedByRemoteView.hidden = NO;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case LinphoneCallEnd:
|
|
||||||
case LinphoneCallError:
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - ActionSheet Functions
|
|
||||||
|
|
||||||
- (void)displayAskToEnableVideoCall:(LinphoneCall *)call {
|
|
||||||
if (linphone_call_params_get_local_conference_mode(linphone_call_get_current_params(call))) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (linphone_core_get_video_policy(LC)->automatically_accept &&
|
|
||||||
!([UIApplication sharedApplication].applicationState != UIApplicationStateActive))
|
|
||||||
return;
|
|
||||||
|
|
||||||
NSString *username = [FastAddressBook displayNameForAddress:linphone_call_get_remote_address(call)];
|
|
||||||
NSString *title = [NSString stringWithFormat:NSLocalizedString(@"%@ would like to enable video", nil), username];
|
|
||||||
if ([UIApplication sharedApplication].applicationState != UIApplicationStateActive &&
|
|
||||||
floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_9_x_Max) {
|
|
||||||
UNMutableNotificationContent *content = [[UNMutableNotificationContent alloc] init];
|
|
||||||
content.title = NSLocalizedString(@"Video request", nil);
|
|
||||||
content.body = title;
|
|
||||||
content.categoryIdentifier = @"video_request";
|
|
||||||
content.userInfo = @{
|
|
||||||
@"CallId" : [NSString stringWithUTF8String:linphone_call_log_get_call_id(linphone_call_get_call_log(call))]
|
|
||||||
};
|
|
||||||
|
|
||||||
UNNotificationRequest *req =
|
|
||||||
[UNNotificationRequest requestWithIdentifier:@"video_request" content:content trigger:NULL];
|
|
||||||
[[UNUserNotificationCenter currentNotificationCenter] addNotificationRequest:req
|
|
||||||
withCompletionHandler:^(NSError *_Nullable error) {
|
|
||||||
// Enable or disable features based on authorization.
|
|
||||||
if (error) {
|
|
||||||
LOGD(@"Error while adding notification request :");
|
|
||||||
LOGD(error.description);
|
|
||||||
}
|
|
||||||
}];
|
|
||||||
} else {
|
|
||||||
UIConfirmationDialog *sheet = [UIConfirmationDialog ShowWithMessage:title
|
|
||||||
cancelMessage:nil
|
|
||||||
confirmMessage:NSLocalizedString(@"ACCEPT", nil)
|
|
||||||
onCancelClick:^() {
|
|
||||||
LOGI(@"User declined video proposal");
|
|
||||||
if (call == linphone_core_get_current_call(LC)) {
|
|
||||||
LinphoneCallParams *params = linphone_core_create_call_params(LC, call);
|
|
||||||
linphone_call_accept_update(call, params);
|
|
||||||
linphone_call_params_destroy(params);
|
|
||||||
[videoDismissTimer invalidate];
|
|
||||||
videoDismissTimer = nil;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
onConfirmationClick:^() {
|
|
||||||
LOGI(@"User accept video proposal");
|
|
||||||
if (call == linphone_core_get_current_call(LC)) {
|
|
||||||
LinphoneCallParams *params = linphone_core_create_call_params(LC, call);
|
|
||||||
linphone_call_params_enable_video(params, TRUE);
|
|
||||||
linphone_call_accept_update(call, params);
|
|
||||||
linphone_call_params_destroy(params);
|
|
||||||
[videoDismissTimer invalidate];
|
|
||||||
videoDismissTimer = nil;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
inController:self];
|
|
||||||
videoDismissTimer = [NSTimer scheduledTimerWithTimeInterval:30
|
|
||||||
target:self
|
|
||||||
selector:@selector(dismissVideoActionSheet:)
|
|
||||||
userInfo:sheet
|
|
||||||
repeats:NO];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dismissVideoActionSheet:(NSTimer *)timer {
|
|
||||||
UIConfirmationDialog *sheet = (UIConfirmationDialog *)timer.userInfo;
|
|
||||||
[sheet dismiss];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark VideoPreviewMoving
|
|
||||||
|
|
||||||
- (void)moveVideoPreview:(UIPanGestureRecognizer *)dragndrop {
|
|
||||||
CGPoint center = [dragndrop locationInView:_videoPreview.superview];
|
|
||||||
_videoPreview.center = center;
|
|
||||||
if (dragndrop.state == UIGestureRecognizerStateEnded) {
|
|
||||||
[self previewTouchLift];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (CGFloat)coerce:(CGFloat)value betweenMin:(CGFloat)min andMax:(CGFloat)max {
|
|
||||||
return MAX(min, MIN(value, max));
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)previewTouchLift {
|
|
||||||
CGRect previewFrame = _videoPreview.frame;
|
|
||||||
previewFrame.origin.x = [self coerce:previewFrame.origin.x
|
|
||||||
betweenMin:5
|
|
||||||
andMax:(UIScreen.mainScreen.bounds.size.width - 5 - previewFrame.size.width)];
|
|
||||||
previewFrame.origin.y = [self coerce:previewFrame.origin.y
|
|
||||||
betweenMin:5
|
|
||||||
andMax:(UIScreen.mainScreen.bounds.size.height - 5 - previewFrame.size.height)];
|
|
||||||
|
|
||||||
if (!CGRectEqualToRect(previewFrame, _videoPreview.frame)) {
|
|
||||||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
|
||||||
[UIView animateWithDuration:0.3
|
|
||||||
animations:^{
|
|
||||||
LOGD(@"Recentering preview to %@", NSStringFromCGRect(previewFrame));
|
|
||||||
_videoPreview.frame = previewFrame;
|
|
||||||
}];
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - Action Functions
|
|
||||||
|
|
||||||
- (IBAction)onNumpadClick:(id)sender {
|
|
||||||
if ([_numpadView isHidden]) {
|
|
||||||
[self hidePad:FALSE animated:ANIMATED];
|
|
||||||
} else {
|
|
||||||
[self hidePad:TRUE animated:ANIMATED];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onChatClick:(id)sender {
|
|
||||||
const LinphoneCall *currentCall = linphone_core_get_current_call(LC);
|
|
||||||
const LinphoneAddress *addr = currentCall ? linphone_call_get_remote_address(currentCall) : NULL;
|
|
||||||
[PhoneMainView.instance getOrCreateOneToOneChatRoom:addr waitView:_waitView];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onRoutesBluetoothClick:(id)sender {
|
|
||||||
[self hideRoutes:TRUE animated:TRUE];
|
|
||||||
[LinphoneManager.instance setSpeakerEnabled:FALSE];
|
|
||||||
[LinphoneManager.instance setBluetoothEnabled:TRUE];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onRoutesEarpieceClick:(id)sender {
|
|
||||||
[self hideRoutes:TRUE animated:TRUE];
|
|
||||||
[LinphoneManager.instance setSpeakerEnabled:FALSE];
|
|
||||||
[LinphoneManager.instance setBluetoothEnabled:FALSE];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onRoutesSpeakerClick:(id)sender {
|
|
||||||
[self hideRoutes:TRUE animated:TRUE];
|
|
||||||
[LinphoneManager.instance setBluetoothEnabled:FALSE];
|
|
||||||
[LinphoneManager.instance setSpeakerEnabled:TRUE];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onRoutesClick:(id)sender {
|
|
||||||
if ([_routesView isHidden]) {
|
|
||||||
[self hideRoutes:FALSE animated:ANIMATED];
|
|
||||||
} else {
|
|
||||||
[self hideRoutes:TRUE animated:ANIMATED];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onOptionsClick:(id)sender {
|
|
||||||
if ([_optionsView isHidden]) {
|
|
||||||
[self hideOptions:FALSE animated:ANIMATED];
|
|
||||||
} else {
|
|
||||||
[self hideOptions:TRUE animated:ANIMATED];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onOptionsTransferClick:(id)sender {
|
|
||||||
[self hideOptions:TRUE animated:TRUE];
|
|
||||||
DialerView *view = VIEW(DialerView);
|
|
||||||
[view setAddress:@""];
|
|
||||||
LinphoneManager.instance.nextCallIsTransfer = YES;
|
|
||||||
[PhoneMainView.instance changeCurrentView:view.compositeViewDescription];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onOptionsAddClick:(id)sender {
|
|
||||||
[self hideOptions:TRUE animated:TRUE];
|
|
||||||
DialerView *view = VIEW(DialerView);
|
|
||||||
[view setAddress:@""];
|
|
||||||
LinphoneManager.instance.nextCallIsTransfer = NO;
|
|
||||||
[PhoneMainView.instance changeCurrentView:view.compositeViewDescription];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onOptionsConferenceClick:(id)sender {
|
|
||||||
[self hideOptions:TRUE animated:TRUE];
|
|
||||||
linphone_core_add_all_to_conference(LC);
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - Animation
|
|
||||||
|
|
||||||
- (void)hideAnimation:(BOOL)hidden forView:(UIView *)target completion:(void (^)(BOOL finished))completion {
|
|
||||||
if (hidden) {
|
|
||||||
int original_y = target.frame.origin.y;
|
|
||||||
CGRect newFrame = target.frame;
|
|
||||||
newFrame.origin.y = self.view.frame.size.height;
|
|
||||||
[UIView animateWithDuration:0.5
|
|
||||||
delay:0.0
|
|
||||||
options:UIViewAnimationOptionCurveEaseIn
|
|
||||||
animations:^{
|
|
||||||
target.frame = newFrame;
|
|
||||||
}
|
|
||||||
completion:^(BOOL finished) {
|
|
||||||
CGRect originFrame = target.frame;
|
|
||||||
originFrame.origin.y = original_y;
|
|
||||||
target.hidden = YES;
|
|
||||||
target.frame = originFrame;
|
|
||||||
if (completion)
|
|
||||||
completion(finished);
|
|
||||||
}];
|
|
||||||
} else {
|
|
||||||
CGRect frame = target.frame;
|
|
||||||
int original_y = frame.origin.y;
|
|
||||||
frame.origin.y = self.view.frame.size.height;
|
|
||||||
target.frame = frame;
|
|
||||||
frame.origin.y = original_y;
|
|
||||||
target.hidden = NO;
|
|
||||||
|
|
||||||
[UIView animateWithDuration:0.5
|
|
||||||
delay:0.0
|
|
||||||
options:UIViewAnimationOptionCurveEaseOut
|
|
||||||
animations:^{
|
|
||||||
target.frame = frame;
|
|
||||||
}
|
|
||||||
completion:^(BOOL finished) {
|
|
||||||
target.frame = frame; // in case application did not finish
|
|
||||||
if (completion)
|
|
||||||
completion(finished);
|
|
||||||
}];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - Bounce
|
|
||||||
- (void)messageReceived:(NSNotification *)notif {
|
|
||||||
[self updateUnreadMessage:TRUE];
|
|
||||||
}
|
|
||||||
- (void)updateUnreadMessage:(BOOL)appear {
|
|
||||||
int unreadMessage = [LinphoneManager unreadMessageCount];
|
|
||||||
if (unreadMessage > 0) {
|
|
||||||
_chatNotificationLabel.text = [NSString stringWithFormat:@"%i", unreadMessage];
|
|
||||||
[_chatNotificationView startAnimating:appear];
|
|
||||||
} else {
|
|
||||||
[_chatNotificationView stopAnimating:appear];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@end
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
//
|
|
||||||
// ChatConversationCreateCollectionViewController.h
|
|
||||||
// linphone
|
|
||||||
//
|
|
||||||
// Created by REIS Benjamin on 03/10/2017.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
|
|
||||||
@interface ChatConversationCreateCollectionViewController : UICollectionViewController
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
//
|
|
||||||
// ChatConversationCreateCollectionViewController.m
|
|
||||||
// linphone
|
|
||||||
//
|
|
||||||
// Created by REIS Benjamin on 03/10/2017.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "ChatConversationCreateCollectionViewController.h"
|
|
||||||
|
|
||||||
@interface ChatConversationCreateCollectionViewController ()
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@implementation ChatConversationCreateCollectionViewController
|
|
||||||
|
|
||||||
static NSString * const reuseIdentifier = @"Cell";
|
|
||||||
|
|
||||||
- (void)viewDidLoad {
|
|
||||||
[super viewDidLoad];
|
|
||||||
|
|
||||||
// Register cell classes
|
|
||||||
[self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:reuseIdentifier];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)didReceiveMemoryWarning {
|
|
||||||
[super didReceiveMemoryWarning];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
//
|
|
||||||
// ChatConversationSearchTableView.h
|
|
||||||
// linphone
|
|
||||||
//
|
|
||||||
// Created by Gautier Pelloux-Prayer on 30/09/15.
|
|
||||||
//
|
|
||||||
//
|
|
||||||
|
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
|
|
||||||
@interface ChatConversationCreateTableView : UITableViewController <UISearchBarDelegate>
|
|
||||||
@property(nonatomic) Boolean allFilter;
|
|
||||||
@property(nonatomic) Boolean notFirstTime;
|
|
||||||
@property(nonatomic, strong) NSMutableArray *contactsGroup;
|
|
||||||
@property(nonatomic) LinphoneMagicSearch *magicSearch;
|
|
||||||
|
|
||||||
@property(weak, nonatomic) IBOutlet UISearchBar *searchBar;
|
|
||||||
@property (weak, nonatomic) IBOutlet UICollectionView *collectionView;
|
|
||||||
@property (weak, nonatomic) IBOutlet UIIconButton *controllerNextButton;
|
|
||||||
@property (weak, nonatomic) IBOutlet UIView *waitView;
|
|
||||||
|
|
||||||
@property(nonatomic) Boolean isForEditing;
|
|
||||||
- (void) loadData;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
@ -1,259 +0,0 @@
|
||||||
//
|
|
||||||
// MyTableViewController.m
|
|
||||||
// UISearchDisplayController
|
|
||||||
//
|
|
||||||
// Created by Phillip Harris on 4/19/14.
|
|
||||||
// Copyright (c) 2014 Phillip Harris. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "ChatConversationCreateTableView.h"
|
|
||||||
#import "UIChatCreateCell.h"
|
|
||||||
#import "LinphoneManager.h"
|
|
||||||
#import "PhoneMainView.h"
|
|
||||||
#import "UIChatCreateCollectionViewCell.h"
|
|
||||||
|
|
||||||
@interface ChatConversationCreateTableView ()
|
|
||||||
|
|
||||||
@property(nonatomic, strong) NSMutableArray *addresses;
|
|
||||||
@property(nonatomic, strong) NSMutableArray *phoneOrAddr;
|
|
||||||
@end
|
|
||||||
|
|
||||||
@implementation ChatConversationCreateTableView
|
|
||||||
|
|
||||||
- (void)viewWillAppear:(BOOL)animated {
|
|
||||||
[super viewWillAppear:animated];
|
|
||||||
|
|
||||||
_magicSearch = linphone_core_create_magic_search(LC);
|
|
||||||
int y = _contactsGroup.count > 0
|
|
||||||
? _collectionView.frame.origin.y + _collectionView.frame.size.height
|
|
||||||
: _searchBar.frame.origin.y + _searchBar.frame.size.height;
|
|
||||||
[UIView animateWithDuration:0
|
|
||||||
delay:0
|
|
||||||
options:UIViewAnimationOptionCurveEaseOut
|
|
||||||
animations:^{
|
|
||||||
[self.tableView setFrame:CGRectMake(self.tableView.frame.origin.x,
|
|
||||||
y,
|
|
||||||
self.tableView.frame.size.width,
|
|
||||||
_waitView.frame.size.height - _waitView.frame.origin.y - y)];
|
|
||||||
}
|
|
||||||
completion:nil];
|
|
||||||
|
|
||||||
_addresses = [[NSMutableArray alloc] initWithCapacity:LinphoneManager.instance.fastAddressBook.addressBookMap.allKeys.count];
|
|
||||||
_phoneOrAddr = [[NSMutableArray alloc] initWithCapacity:LinphoneManager.instance.fastAddressBook.addressBookMap.allKeys.count];
|
|
||||||
if(_notFirstTime) {
|
|
||||||
for(NSString *addr in _contactsGroup) {
|
|
||||||
[_collectionView registerClass:UIChatCreateCollectionViewCell.class forCellWithReuseIdentifier:addr];
|
|
||||||
}
|
|
||||||
[self searchBar:_searchBar textDidChange:_searchBar.text];
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
_contactsGroup = [[NSMutableArray alloc] init];
|
|
||||||
[_searchBar setText:@""];
|
|
||||||
[self searchBar:_searchBar textDidChange:_searchBar.text];
|
|
||||||
self.tableView.accessibilityIdentifier = @"Suggested addresses";
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) viewWillDisappear:(BOOL)animated {
|
|
||||||
_notFirstTime = FALSE;
|
|
||||||
linphone_magic_search_unref(_magicSearch);
|
|
||||||
_magicSearch = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) loadData {
|
|
||||||
[self reloadDataWithFilter:_searchBar.text];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)reloadDataWithFilter:(NSString *)filter {
|
|
||||||
[_addresses removeAllObjects];
|
|
||||||
[_phoneOrAddr removeAllObjects];
|
|
||||||
|
|
||||||
if (!_magicSearch)
|
|
||||||
return;
|
|
||||||
|
|
||||||
bctbx_list_t *results = linphone_magic_search_get_contact_list_from_filter(_magicSearch, filter.UTF8String, _allFilter ? "" : "*");
|
|
||||||
while (results) {
|
|
||||||
LinphoneSearchResult *result = results->data;
|
|
||||||
const LinphoneAddress *addr = linphone_search_result_get_address(result);
|
|
||||||
const char *phoneNumber = NULL;
|
|
||||||
if (!addr) {
|
|
||||||
phoneNumber = linphone_search_result_get_phone_number(result);
|
|
||||||
if (!phoneNumber) {
|
|
||||||
results = results->next;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
LinphoneProxyConfig *cfg = linphone_core_get_default_proxy_config(LC);
|
|
||||||
const char *normalizedPhoneNumber = linphone_proxy_config_normalize_phone_number(cfg, phoneNumber);
|
|
||||||
addr = linphone_proxy_config_normalize_sip_uri(cfg, normalizedPhoneNumber);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!addr) {
|
|
||||||
results = results->next;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
char *uri = linphone_address_as_string_uri_only(addr);
|
|
||||||
NSString *address = [NSString stringWithUTF8String:uri];
|
|
||||||
ms_free(uri);
|
|
||||||
[_addresses addObject:address];
|
|
||||||
[_phoneOrAddr addObject:phoneNumber ? [NSString stringWithUTF8String:phoneNumber] : address];
|
|
||||||
|
|
||||||
results = results->next;
|
|
||||||
}
|
|
||||||
|
|
||||||
[self.tableView reloadData];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - TableView methods
|
|
||||||
|
|
||||||
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
|
||||||
return _addresses.count;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
|
||||||
NSString *kCellId = NSStringFromClass(UIChatCreateCell.class);
|
|
||||||
UIChatCreateCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellId];
|
|
||||||
if (cell == nil)
|
|
||||||
cell = [[UIChatCreateCell alloc] initWithIdentifier:kCellId];
|
|
||||||
|
|
||||||
NSString *key = [_addresses objectAtIndex:indexPath.row];
|
|
||||||
NSString *phoneOrAddr = [_phoneOrAddr objectAtIndex:indexPath.row];
|
|
||||||
Contact *contact = [LinphoneManager.instance.fastAddressBook.addressBookMap objectForKey:key];
|
|
||||||
Boolean linphoneContact = [FastAddressBook contactHasValidSipDomain:contact]
|
|
||||||
|| (contact.friend && linphone_presence_model_get_basic_status(linphone_friend_get_presence_model(contact.friend)) == LinphonePresenceBasicStatusOpen);
|
|
||||||
LinphoneAddress *addr = [LinphoneUtils normalizeSipOrPhoneAddress:key];
|
|
||||||
if (!addr)
|
|
||||||
return cell;
|
|
||||||
|
|
||||||
cell.linphoneImage.hidden = !linphoneContact;
|
|
||||||
cell.displayNameLabel.text = [FastAddressBook displayNameForAddress:addr];
|
|
||||||
cell.addressLabel.text = linphoneContact ? [NSString stringWithUTF8String:linphone_address_as_string(addr)] : phoneOrAddr;
|
|
||||||
cell.selectedImage.hidden = ![_contactsGroup containsObject:cell.addressLabel.text];
|
|
||||||
return cell;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
|
|
||||||
UIChatCreateCell *cell = [tableView cellForRowAtIndexPath:indexPath];
|
|
||||||
|
|
||||||
if (!linphone_proxy_config_get_conference_factory_uri(linphone_core_get_default_proxy_config(LC))) {
|
|
||||||
// Create directly a basic chat room if there's no factory uri
|
|
||||||
bctbx_list_t *addresses = NULL;
|
|
||||||
LinphoneAddress *addr = linphone_address_new(cell.addressLabel.text.UTF8String);
|
|
||||||
addresses = bctbx_list_append(addresses, addr);
|
|
||||||
[PhoneMainView.instance createChatRoomWithSubject:NULL addresses:addresses andWaitView:NULL];
|
|
||||||
linphone_address_unref(addr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
[tableView deselectRowAtIndexPath:indexPath animated:YES];
|
|
||||||
NSInteger index = 0;
|
|
||||||
_searchBar.text = @"";
|
|
||||||
[self searchBar:_searchBar textDidChange:@""];
|
|
||||||
if(cell.selectedImage.hidden) {
|
|
||||||
if(![_contactsGroup containsObject:cell.addressLabel.text]) {
|
|
||||||
[_contactsGroup addObject:cell.addressLabel.text];
|
|
||||||
[_collectionView registerClass:UIChatCreateCollectionViewCell.class forCellWithReuseIdentifier:cell.addressLabel.text];
|
|
||||||
}
|
|
||||||
} else if([_contactsGroup containsObject:cell.addressLabel.text]) {
|
|
||||||
index = (NSInteger)[_contactsGroup indexOfObject:cell.addressLabel.text];
|
|
||||||
[_contactsGroup removeObject:cell.addressLabel.text];
|
|
||||||
if(index == _contactsGroup.count)
|
|
||||||
index = index-1;
|
|
||||||
}
|
|
||||||
cell.selectedImage.hidden = !cell.selectedImage.hidden;
|
|
||||||
_controllerNextButton.enabled = (_contactsGroup.count > 0) || _isForEditing;
|
|
||||||
if (_contactsGroup.count > 1 || (_contactsGroup.count == 1 && cell.selectedImage.hidden)) {
|
|
||||||
[UIView animateWithDuration:0.2
|
|
||||||
delay:0
|
|
||||||
options:UIViewAnimationOptionCurveEaseOut
|
|
||||||
animations:^{
|
|
||||||
[tableView setFrame:CGRectMake(tableView.frame.origin.x,
|
|
||||||
_collectionView.frame.origin.y + _collectionView.frame.size.height,
|
|
||||||
tableView.frame.size.width,
|
|
||||||
tableView.frame.size.height)];
|
|
||||||
|
|
||||||
}
|
|
||||||
completion:nil];
|
|
||||||
} else if (_contactsGroup.count == 1 && !cell.selectedImage.hidden) {
|
|
||||||
[UIView animateWithDuration:0.2
|
|
||||||
delay:0
|
|
||||||
options:UIViewAnimationOptionCurveEaseOut
|
|
||||||
animations:^{
|
|
||||||
[tableView setFrame:CGRectMake(tableView.frame.origin.x,
|
|
||||||
_collectionView.frame.origin.y + _collectionView.frame.size.height,
|
|
||||||
tableView.frame.size.width,
|
|
||||||
tableView.frame.size.height - _collectionView.frame.size.height)];
|
|
||||||
|
|
||||||
}
|
|
||||||
completion:nil];
|
|
||||||
} else {
|
|
||||||
[UIView animateWithDuration:0.2
|
|
||||||
delay:0
|
|
||||||
options:UIViewAnimationOptionCurveEaseOut
|
|
||||||
animations:^{
|
|
||||||
[tableView setFrame:CGRectMake(tableView.frame.origin.x,
|
|
||||||
_searchBar.frame.origin.y + _searchBar.frame.size.height,
|
|
||||||
tableView.frame.size.width,
|
|
||||||
tableView.frame.size.height + _collectionView.frame.size.height)];
|
|
||||||
}
|
|
||||||
completion:nil];
|
|
||||||
}
|
|
||||||
[_collectionView reloadData];
|
|
||||||
if (!cell.selectedImage.hidden) {
|
|
||||||
index = _contactsGroup.count - 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
dispatch_async(dispatch_get_main_queue(), ^{
|
|
||||||
if(index > 0) {
|
|
||||||
NSIndexPath *path = [NSIndexPath indexPathForItem:index inSection:0];
|
|
||||||
[_collectionView scrollToItemAtIndexPath:path
|
|
||||||
atScrollPosition:(UICollectionViewScrollPositionCenteredHorizontally | UICollectionViewScrollPositionCenteredVertically)
|
|
||||||
animated:YES];
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - Searchbar delegates
|
|
||||||
|
|
||||||
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
|
|
||||||
searchBar.showsCancelButton = (searchText.length > 0);
|
|
||||||
[self reloadDataWithFilter:searchText];
|
|
||||||
if ([searchText isEqualToString:@""]) {
|
|
||||||
if (_magicSearch)
|
|
||||||
linphone_magic_search_reset_search_cache(_magicSearch);
|
|
||||||
|
|
||||||
[_searchBar resignFirstResponder];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(nonnull NSString *)text {
|
|
||||||
if (text.length < _searchBar.text.length && _magicSearch)
|
|
||||||
linphone_magic_search_reset_search_cache(_magicSearch);
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar {
|
|
||||||
[searchBar setShowsCancelButton:FALSE animated:TRUE];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar {
|
|
||||||
[searchBar setShowsCancelButton:(searchBar.text.length > 0) animated:TRUE];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
|
|
||||||
[searchBar resignFirstResponder];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar {
|
|
||||||
if (_magicSearch)
|
|
||||||
linphone_magic_search_reset_search_cache(_magicSearch);
|
|
||||||
|
|
||||||
[searchBar resignFirstResponder];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
||||||
//
|
|
||||||
// ChatConversationCreateViewViewController.h
|
|
||||||
// linphone
|
|
||||||
//
|
|
||||||
// Created by Gautier Pelloux-Prayer on 12/10/15.
|
|
||||||
//
|
|
||||||
//
|
|
||||||
|
|
||||||
#ifndef ChatConversationCreateView_h
|
|
||||||
#define ChatConversationCreateView_h
|
|
||||||
|
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
#import "ChatConversationCreateTableView.h"
|
|
||||||
#import "ChatConversationCreateCollectionViewController.h"
|
|
||||||
#import "UICompositeView.h"
|
|
||||||
|
|
||||||
@interface ChatConversationCreateView : UIViewController <UICompositeViewDelegate, UIGestureRecognizerDelegate, UICollectionViewDataSource>
|
|
||||||
|
|
||||||
@property(strong, nonatomic) IBOutlet ChatConversationCreateTableView *tableController;
|
|
||||||
@property(strong, nonatomic) IBOutlet ChatConversationCreateCollectionViewController *collectionController;
|
|
||||||
@property (weak, nonatomic) IBOutlet UICollectionView *collectionView;
|
|
||||||
@property (weak, nonatomic) IBOutlet UIIconButton *backButton;
|
|
||||||
@property (weak, nonatomic) IBOutlet UIIconButton *nextButton;
|
|
||||||
@property (weak, nonatomic) IBOutlet UIIconButton *allButton;
|
|
||||||
@property (weak, nonatomic) IBOutlet UIIconButton *linphoneButton;
|
|
||||||
@property (weak, nonatomic) IBOutlet UIImageView *selectedButtonImage;
|
|
||||||
@property (weak, nonatomic) IBOutlet UIView *waitView;
|
|
||||||
|
|
||||||
@property(nonatomic) Boolean isForEditing;
|
|
||||||
|
|
||||||
- (IBAction)onBackClick:(id)sender;
|
|
||||||
- (IBAction)onNextClick:(id)sender;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
#endif /* ChatConversationCreateView_h */
|
|
||||||
|
|
@ -1,181 +0,0 @@
|
||||||
//
|
|
||||||
// ChatConversationCreateViewViewController.m
|
|
||||||
// linphone
|
|
||||||
//
|
|
||||||
// Created by Gautier Pelloux-Prayer on 12/10/15.
|
|
||||||
//
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "ChatConversationCreateView.h"
|
|
||||||
#import "PhoneMainView.h"
|
|
||||||
#import "UIChatCreateCollectionViewCell.h"
|
|
||||||
|
|
||||||
@implementation ChatConversationCreateView
|
|
||||||
|
|
||||||
#pragma mark - UICompositeViewDelegate Functions
|
|
||||||
|
|
||||||
static UICompositeViewDescription *compositeDescription = nil;
|
|
||||||
|
|
||||||
+ (UICompositeViewDescription *)compositeViewDescription {
|
|
||||||
if (compositeDescription == nil) {
|
|
||||||
compositeDescription = [[UICompositeViewDescription alloc] init:self.class
|
|
||||||
statusBar:StatusBarView.class
|
|
||||||
tabBar:TabBarView.class
|
|
||||||
sideMenu:SideMenuView.class
|
|
||||||
fullscreen:false
|
|
||||||
isLeftFragment:NO
|
|
||||||
fragmentWith:ChatsListView.class];
|
|
||||||
}
|
|
||||||
return compositeDescription;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UICompositeViewDescription *)compositeViewDescription {
|
|
||||||
return self.class.compositeViewDescription;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewDidLoad {
|
|
||||||
[super viewDidLoad];
|
|
||||||
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]
|
|
||||||
initWithTarget:self
|
|
||||||
action:@selector(dismissKeyboards)];
|
|
||||||
tap.delegate = self;
|
|
||||||
[self.view addGestureRecognizer:tap];
|
|
||||||
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
|
|
||||||
layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
|
|
||||||
layout.itemSize = CGSizeMake(100.0 , 50.0);
|
|
||||||
_collectionController.collectionView = _collectionView;
|
|
||||||
_collectionController = (ChatConversationCreateCollectionViewController *)[[UICollectionViewController alloc] initWithCollectionViewLayout:layout];
|
|
||||||
_collectionView.dataSource = self;
|
|
||||||
[_collectionView setCollectionViewLayout:layout];
|
|
||||||
_tableController.collectionView = _collectionView;
|
|
||||||
_tableController.controllerNextButton = _nextButton;
|
|
||||||
_isForEditing = FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewWillAppear:(BOOL)animated {
|
|
||||||
[super viewWillAppear:animated];
|
|
||||||
_waitView.hidden = YES;
|
|
||||||
_backButton.hidden = IPAD;
|
|
||||||
if(_tableController.contactsGroup.count == 0) {
|
|
||||||
if (!_isForEditing)
|
|
||||||
_nextButton.enabled = FALSE;
|
|
||||||
|
|
||||||
_tableController.tableView.frame = CGRectMake(_tableController.tableView.frame.origin.x,
|
|
||||||
_tableController.searchBar.frame.origin.y + _tableController.searchBar.frame.size.height,
|
|
||||||
_tableController.tableView.frame.size.width,
|
|
||||||
_tableController.tableView.frame.size.height + _collectionView.frame.size.height);
|
|
||||||
} else {
|
|
||||||
_tableController.tableView.frame = CGRectMake(_tableController.tableView.frame.origin.x,
|
|
||||||
_collectionView.frame.origin.y + _collectionView.frame.size.height,
|
|
||||||
_tableController.tableView.frame.size.width,
|
|
||||||
_tableController.tableView.frame.size.height);
|
|
||||||
}
|
|
||||||
[_collectionView reloadData];
|
|
||||||
_tableController.isForEditing = _isForEditing;
|
|
||||||
[self changeView:ContactsLinphone];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - Chat room functions
|
|
||||||
|
|
||||||
- (void)createChatRoom {
|
|
||||||
NSString *addr = _tableController.contactsGroup[0];
|
|
||||||
LinphoneAddress *remoteAddress = linphone_address_new(addr.UTF8String);
|
|
||||||
[PhoneMainView.instance getOrCreateOneToOneChatRoom:remoteAddress waitView:_waitView];
|
|
||||||
linphone_address_unref(remoteAddress);
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - Buttons signals
|
|
||||||
|
|
||||||
- (IBAction)onBackClick:(id)sender {
|
|
||||||
[_tableController.contactsGroup removeAllObjects];
|
|
||||||
if (_tableController.isForEditing)
|
|
||||||
[PhoneMainView.instance popToView:ChatConversationInfoView.compositeViewDescription];
|
|
||||||
else
|
|
||||||
[PhoneMainView.instance popToView:ChatsListView.compositeViewDescription];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onNextClick:(id)sender {
|
|
||||||
if (_tableController.contactsGroup.count == 1 && !_isForEditing) {
|
|
||||||
[self createChatRoom];
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
ChatConversationInfoView *view = VIEW(ChatConversationInfoView);
|
|
||||||
view.contacts = _tableController.contactsGroup;
|
|
||||||
view.create = !_isForEditing;
|
|
||||||
[PhoneMainView.instance changeCurrentView:view.compositeViewDescription];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dismissKeyboards {
|
|
||||||
if ([self.tableController.searchBar isFirstResponder])
|
|
||||||
[self.tableController.searchBar resignFirstResponder];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - Contacts filter
|
|
||||||
|
|
||||||
typedef enum { ContactsAll, ContactsLinphone, ContactsMAX } ContactsCategory;
|
|
||||||
|
|
||||||
- (void)changeView:(ContactsCategory)view {
|
|
||||||
CGRect frame = _selectedButtonImage.frame;
|
|
||||||
if (_tableController.magicSearch)
|
|
||||||
linphone_magic_search_reset_search_cache(_tableController.magicSearch);
|
|
||||||
|
|
||||||
if (view == ContactsAll && !_allButton.selected) {
|
|
||||||
frame.origin.x = _allButton.frame.origin.x;
|
|
||||||
_allButton.selected = TRUE;
|
|
||||||
_linphoneButton.selected = FALSE;
|
|
||||||
_tableController.allFilter = TRUE;
|
|
||||||
[_tableController loadData];
|
|
||||||
} else if (view == ContactsLinphone && !_linphoneButton.selected) {
|
|
||||||
frame.origin.x = _linphoneButton.frame.origin.x;
|
|
||||||
_linphoneButton.selected = TRUE;
|
|
||||||
_allButton.selected = FALSE;
|
|
||||||
_tableController.allFilter = FALSE;
|
|
||||||
[_tableController loadData];
|
|
||||||
}
|
|
||||||
_selectedButtonImage.frame = frame;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onAllClick:(id)event {
|
|
||||||
[self changeView:ContactsAll];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onLinphoneClick:(id)event {
|
|
||||||
[self changeView:ContactsLinphone];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - GestureRecognizerDelegate
|
|
||||||
|
|
||||||
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
|
|
||||||
{
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - UICollectionViewDataSource
|
|
||||||
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
|
|
||||||
return _tableController.contactsGroup.count;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UIChatCreateCollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
|
|
||||||
NSString *uri = _tableController.contactsGroup[indexPath.item];
|
|
||||||
UIChatCreateCollectionViewCell *cell = (UIChatCreateCollectionViewCell *)[_collectionView dequeueReusableCellWithReuseIdentifier:uri forIndexPath:indexPath];
|
|
||||||
cell.controller = self;
|
|
||||||
cell.uri = uri;
|
|
||||||
LinphoneAddress *addr = NULL;
|
|
||||||
LinphoneProxyConfig *cfg = linphone_core_get_default_proxy_config(LC);
|
|
||||||
if (cfg && linphone_proxy_config_is_phone_number(cfg, uri.UTF8String)) {
|
|
||||||
char *phone = linphone_proxy_config_normalize_phone_number(cfg, uri.UTF8String);
|
|
||||||
addr = linphone_proxy_config_normalize_sip_uri(cfg, phone);
|
|
||||||
ms_free(phone);
|
|
||||||
} else
|
|
||||||
addr = linphone_address_new(uri.UTF8String);
|
|
||||||
cell = [cell initWithName:[FastAddressBook displayNameForAddress:addr]];
|
|
||||||
linphone_address_unref(addr);
|
|
||||||
return cell;
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
||||||
//
|
|
||||||
// ChatConversationImdnView.h
|
|
||||||
// linphone
|
|
||||||
//
|
|
||||||
// Created by REIS Benjamin on 25/04/2018.
|
|
||||||
//
|
|
||||||
|
|
||||||
#ifndef ChatConversationImdnView_h
|
|
||||||
#define ChatConversationImdnView_h
|
|
||||||
|
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
|
|
||||||
#import "UICompositeView.h"
|
|
||||||
#import "UIRoundBorderedButton.h"
|
|
||||||
|
|
||||||
@interface ChatConversationImdnView : UIViewController <UICompositeViewDelegate, UITableViewDelegate, UITableViewDataSource>
|
|
||||||
|
|
||||||
@property(nonatomic) LinphoneChatMessage *msg;
|
|
||||||
@property(nonatomic) bctbx_list_t *displayedList;
|
|
||||||
@property(nonatomic) bctbx_list_t *receivedList;
|
|
||||||
@property(nonatomic) bctbx_list_t *notReceivedList;
|
|
||||||
@property(nonatomic) bctbx_list_t *errorList;
|
|
||||||
|
|
||||||
@property (weak, nonatomic) IBOutlet UIView *msgView;
|
|
||||||
@property (weak, nonatomic) IBOutlet UIImageView *msgBackgroundColorImage;
|
|
||||||
@property (weak, nonatomic) IBOutlet UIRoundedImageView *msgAvatarImage;
|
|
||||||
@property (weak, nonatomic) IBOutlet UIImageView *msgBottomBar;
|
|
||||||
@property (weak, nonatomic) IBOutlet UILabel *msgDateLabel;
|
|
||||||
@property (weak, nonatomic) IBOutlet UITextViewNoDefine *msgText;
|
|
||||||
@property (weak, nonatomic) IBOutlet UITableView *tableView;
|
|
||||||
|
|
||||||
- (IBAction)onBackClick:(id)sender;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
#endif /* ChatConversationImdnView_h */
|
|
||||||
|
|
@ -1,248 +0,0 @@
|
||||||
//
|
|
||||||
// ChatConversationImdnView.m
|
|
||||||
// linphone
|
|
||||||
//
|
|
||||||
// Created by REIS Benjamin on 25/04/2018.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
|
|
||||||
#import "ChatConversationImdnView.h"
|
|
||||||
#import "PhoneMainView.h"
|
|
||||||
#import "UIChatBubbleTextCell.h"
|
|
||||||
#import "UIChatConversationImdnTableViewCell.h"
|
|
||||||
|
|
||||||
@implementation ChatConversationImdnView
|
|
||||||
|
|
||||||
static UICompositeViewDescription *compositeDescription = nil;
|
|
||||||
|
|
||||||
+ (UICompositeViewDescription *)compositeViewDescription {
|
|
||||||
if (compositeDescription == nil) {
|
|
||||||
compositeDescription = [[UICompositeViewDescription alloc] init:self.class
|
|
||||||
statusBar:StatusBarView.class
|
|
||||||
tabBar:TabBarView.class
|
|
||||||
sideMenu:SideMenuView.class
|
|
||||||
fullscreen:false
|
|
||||||
isLeftFragment:NO
|
|
||||||
fragmentWith:ChatsListView.class];
|
|
||||||
}
|
|
||||||
return compositeDescription;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UICompositeViewDescription *)compositeViewDescription {
|
|
||||||
return self.class.compositeViewDescription;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewDidLoad {
|
|
||||||
[super viewDidLoad];
|
|
||||||
_msg = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewWillAppear:(BOOL)animated {
|
|
||||||
[super viewWillAppear:animated];
|
|
||||||
const LinphoneAddress *addr = linphone_chat_message_get_from_address(_msg);
|
|
||||||
BOOL outgoing = linphone_chat_message_is_outgoing(_msg);
|
|
||||||
|
|
||||||
_msgDateLabel.text = [NSString stringWithFormat:@"%@ - %@",
|
|
||||||
[LinphoneUtils timeToString:linphone_chat_message_get_time(_msg) withFormat:LinphoneDateChatBubble],
|
|
||||||
[FastAddressBook displayNameForAddress:addr]];
|
|
||||||
_msgAvatarImage.image = outgoing ? [LinphoneUtils selfAvatar] : [FastAddressBook imageForAddress:addr];
|
|
||||||
if (linphone_chat_message_has_text_content(_msg))
|
|
||||||
_msgText.text = [NSString stringWithUTF8String:linphone_chat_message_get_text(_msg)];
|
|
||||||
else
|
|
||||||
_msgText.text = [NSString stringWithUTF8String: linphone_content_get_name(linphone_chat_message_get_file_transfer_information(_msg))];
|
|
||||||
|
|
||||||
_msgBackgroundColorImage.image = _msgBottomBar.image = [UIImage imageNamed:(outgoing ? @"color_A.png" : @"color_D.png")];
|
|
||||||
_msgDateLabel.textColor = [UIColor colorWithPatternImage:_msgBackgroundColorImage.image];
|
|
||||||
|
|
||||||
_tableView.delegate = self;
|
|
||||||
_tableView.dataSource = self;
|
|
||||||
|
|
||||||
_displayedList = linphone_chat_message_get_participants_by_imdn_state(_msg, LinphoneChatMessageStateDisplayed);
|
|
||||||
_receivedList = linphone_chat_message_get_participants_by_imdn_state(_msg, LinphoneChatMessageStateDeliveredToUser);
|
|
||||||
_notReceivedList = linphone_chat_message_get_participants_by_imdn_state(_msg, LinphoneChatMessageStateDelivered);
|
|
||||||
_errorList = linphone_chat_message_get_participants_by_imdn_state(_msg, LinphoneChatMessageStateNotDelivered);
|
|
||||||
|
|
||||||
[_tableView reloadData];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)fitContent {
|
|
||||||
BOOL outgoing = linphone_chat_message_is_outgoing(_msg);
|
|
||||||
_msgBackgroundColorImage.image = _msgBottomBar.image = [UIImage imageNamed:(outgoing ? @"color_A.png" : @"color_D.png")];
|
|
||||||
_msgDateLabel.textColor = [UIColor colorWithPatternImage:_msgBackgroundColorImage.image];
|
|
||||||
[_msgView setFrame:CGRectMake(_msgView.frame.origin.x,
|
|
||||||
_msgView.frame.origin.y,
|
|
||||||
_msgView.frame.size.width,
|
|
||||||
[UIChatBubbleTextCell ViewHeightForMessage:_msg withWidth:self.view.frame.size.width].height)];
|
|
||||||
|
|
||||||
[_tableView setFrame:CGRectMake(_tableView.frame.origin.x,
|
|
||||||
_msgView.frame.origin.y + _msgView.frame.size.height + 10,
|
|
||||||
_tableView.frame.size.width,
|
|
||||||
self.view.frame.size.height - (_msgView.frame.origin.y + _msgView.frame.size.height))];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
|
|
||||||
[self fitContent];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - TableView
|
|
||||||
|
|
||||||
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
|
|
||||||
NSInteger numberOfSection = 0;
|
|
||||||
if (_displayedList) numberOfSection++;
|
|
||||||
if (_receivedList) numberOfSection++;
|
|
||||||
if (_notReceivedList) numberOfSection++;
|
|
||||||
if (_errorList) numberOfSection++;
|
|
||||||
return numberOfSection;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
|
|
||||||
return 23.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(nonnull NSIndexPath *)indexPath {
|
|
||||||
return 44.0;
|
|
||||||
}
|
|
||||||
- (nullable UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
|
|
||||||
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
|
|
||||||
label.numberOfLines = 1;
|
|
||||||
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 23)];
|
|
||||||
UIImage *image = NULL;
|
|
||||||
|
|
||||||
if (section == 0) {
|
|
||||||
if (_displayedList) {
|
|
||||||
label.text = NSLocalizedString(@"Read", nil);
|
|
||||||
label.textColor = [UIColor colorWithRed:(24 / 255.0) green:(167 / 255.0) blue:(175 / 255.0) alpha:1.0];
|
|
||||||
image = [UIImage imageNamed:@"chat_read"];
|
|
||||||
} else if (_receivedList) {
|
|
||||||
label.text = NSLocalizedString(@"Delivered", nil);
|
|
||||||
label.textColor = [UIColor grayColor];
|
|
||||||
image = [UIImage imageNamed:@"chat_delivered"];
|
|
||||||
} else if (_notReceivedList) {
|
|
||||||
label.text = NSLocalizedString(@"Sent", nil);
|
|
||||||
label.textColor = [UIColor grayColor];
|
|
||||||
} else if (_errorList) {
|
|
||||||
label.text = NSLocalizedString(@"Error", nil);
|
|
||||||
label.textColor = [UIColor redColor];
|
|
||||||
image = [UIImage imageNamed:@"chat_error"];
|
|
||||||
}
|
|
||||||
} else if (section == 1) {
|
|
||||||
if (_displayedList && _receivedList) {
|
|
||||||
label.text = NSLocalizedString(@"Delivered", nil);
|
|
||||||
label.textColor = [UIColor grayColor];
|
|
||||||
image = [UIImage imageNamed:@"chat_delivered"];
|
|
||||||
} else if (_notReceivedList) {
|
|
||||||
label.text = NSLocalizedString(@"Sent", nil);
|
|
||||||
label.textColor = [UIColor grayColor];
|
|
||||||
} else if (_errorList) {
|
|
||||||
label.text = NSLocalizedString(@"Error", nil);
|
|
||||||
label.textColor = [UIColor redColor];
|
|
||||||
image = [UIImage imageNamed:@"chat_error"];
|
|
||||||
}
|
|
||||||
} else if (section == 2) {
|
|
||||||
if (_displayedList && _receivedList && _notReceivedList) {
|
|
||||||
label.text = NSLocalizedString(@"Sent", nil);
|
|
||||||
label.textColor = [UIColor grayColor];
|
|
||||||
} else if (_errorList) {
|
|
||||||
label.text = NSLocalizedString(@"Error", nil);
|
|
||||||
label.textColor = [UIColor redColor];
|
|
||||||
image = [UIImage imageNamed:@"chat_error"];
|
|
||||||
}
|
|
||||||
} else if (section == 3) {
|
|
||||||
label.text = NSLocalizedString(@"Error", nil);
|
|
||||||
label.textColor = [UIColor redColor];
|
|
||||||
image = [UIImage imageNamed:@"chat_error"];
|
|
||||||
}
|
|
||||||
|
|
||||||
[view addSubview:label];
|
|
||||||
[label sizeToFit];
|
|
||||||
[label setCenter:view.center];
|
|
||||||
|
|
||||||
if (image) {
|
|
||||||
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
|
|
||||||
[view addSubview:imageView];
|
|
||||||
[imageView setFrame:CGRectMake(label.frame.origin.x + label.frame.size.width + 5, 2, 19, 19)];
|
|
||||||
}
|
|
||||||
[view setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"color_G.png"]]];
|
|
||||||
return view;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
|
||||||
if (section == 0) {
|
|
||||||
if (_displayedList)
|
|
||||||
return bctbx_list_size(_displayedList);
|
|
||||||
else if (_receivedList)
|
|
||||||
return bctbx_list_size(_receivedList);
|
|
||||||
else if (_notReceivedList)
|
|
||||||
return bctbx_list_size(_notReceivedList);
|
|
||||||
else if (_errorList)
|
|
||||||
return bctbx_list_size(_errorList);
|
|
||||||
} else if (section == 1) {
|
|
||||||
if (_displayedList &&_receivedList)
|
|
||||||
return bctbx_list_size(_receivedList);
|
|
||||||
else if (_notReceivedList)
|
|
||||||
return bctbx_list_size(_notReceivedList);
|
|
||||||
else if (_errorList)
|
|
||||||
return bctbx_list_size(_errorList);
|
|
||||||
} else if (section == 2) {
|
|
||||||
if (_displayedList && _receivedList && _notReceivedList)
|
|
||||||
return bctbx_list_size(_notReceivedList);
|
|
||||||
else if (_errorList)
|
|
||||||
return bctbx_list_size(_errorList);
|
|
||||||
} else if (section == 3)
|
|
||||||
return bctbx_list_size(_errorList);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
|
||||||
bctbx_list_t *list = NULL;
|
|
||||||
if (indexPath.section == 0) {
|
|
||||||
if (_displayedList)
|
|
||||||
list = _displayedList;
|
|
||||||
else if (_receivedList)
|
|
||||||
list = _receivedList;
|
|
||||||
else if (_notReceivedList)
|
|
||||||
list = _notReceivedList;
|
|
||||||
else if (_errorList)
|
|
||||||
list = _errorList;
|
|
||||||
} else if (indexPath.section == 1) {
|
|
||||||
if (_displayedList &&_receivedList)
|
|
||||||
list = _receivedList;
|
|
||||||
else if (_notReceivedList)
|
|
||||||
list = _notReceivedList;
|
|
||||||
else if (_errorList)
|
|
||||||
list = _errorList;
|
|
||||||
} else if (indexPath.section == 2) {
|
|
||||||
if (_displayedList && _receivedList && _notReceivedList)
|
|
||||||
list = _notReceivedList;
|
|
||||||
else if (_errorList)
|
|
||||||
list = _errorList;
|
|
||||||
} else if (indexPath.section == 3)
|
|
||||||
list = _errorList;
|
|
||||||
|
|
||||||
if (!list)
|
|
||||||
return nil;
|
|
||||||
|
|
||||||
NSString *kCellId = NSStringFromClass(UIChatConversationImdnTableViewCell.class);
|
|
||||||
UIChatConversationImdnTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellId];
|
|
||||||
if (cell == nil) {
|
|
||||||
cell = [[UIChatConversationImdnTableViewCell alloc] initWithIdentifier:kCellId];
|
|
||||||
}
|
|
||||||
LinphoneParticipantImdnState *state = bctbx_list_nth_data(list, (int)indexPath.row);
|
|
||||||
const LinphoneParticipant *participant = linphone_participant_imdn_state_get_participant(state);
|
|
||||||
time_t time = linphone_participant_imdn_state_get_state_change_time(state);
|
|
||||||
const LinphoneAddress *addr = linphone_participant_get_address(participant);
|
|
||||||
cell.displayName.text = [FastAddressBook displayNameForAddress:addr];
|
|
||||||
cell.avatar.image = [FastAddressBook imageForAddress:addr];
|
|
||||||
cell.dateLabel.text = [LinphoneUtils timeToString:time withFormat:LinphoneDateChatBubble];
|
|
||||||
cell.userInteractionEnabled = false;
|
|
||||||
|
|
||||||
return cell;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onBackClick:(id)sender {
|
|
||||||
[PhoneMainView.instance popCurrentView];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
||||||
//
|
|
||||||
// ChatConversationInfoView.h
|
|
||||||
// linphone
|
|
||||||
//
|
|
||||||
// Created by REIS Benjamin on 23/10/2017.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
|
|
||||||
#import "UICompositeView.h"
|
|
||||||
#import "UIRoundBorderedButton.h"
|
|
||||||
|
|
||||||
@interface ChatConversationInfoView : UIViewController <UICompositeViewDelegate, UIGestureRecognizerDelegate, UITextFieldDelegate, UITableViewDelegate, UITableViewDataSource>
|
|
||||||
|
|
||||||
@property(nonatomic) BOOL create;
|
|
||||||
@property(nonatomic) BOOL imAdmin;
|
|
||||||
@property(nonatomic, strong) NSMutableArray *contacts;
|
|
||||||
@property(nonatomic, strong) NSMutableArray *admins;
|
|
||||||
@property(nonatomic, strong) NSMutableArray *oldContacts;
|
|
||||||
@property(nonatomic, strong) NSMutableArray *oldAdmins;
|
|
||||||
@property(nonatomic) NSString *oldSubject;
|
|
||||||
@property(nonatomic) LinphoneChatRoom *room;
|
|
||||||
@property(nonatomic) LinphoneChatRoomCbs *chatRoomCbs;
|
|
||||||
|
|
||||||
@property (weak, nonatomic) IBOutlet UIIconButton *nextButton;
|
|
||||||
@property (weak, nonatomic) IBOutlet UIRoundBorderedButton *quitButton;
|
|
||||||
@property (weak, nonatomic) IBOutlet UIIconButton *addButton;
|
|
||||||
@property (weak, nonatomic) IBOutlet UITextField *nameLabel;
|
|
||||||
@property (weak, nonatomic) IBOutlet UITableView *tableView;
|
|
||||||
@property (weak, nonatomic) IBOutlet UIView *waitView;
|
|
||||||
@property (weak, nonatomic) IBOutlet UIView *participantsBar;
|
|
||||||
|
|
||||||
+ (void)displayCreationError;
|
|
||||||
|
|
||||||
- (IBAction)onNextClick:(id)sender;
|
|
||||||
- (IBAction)onBackClick:(id)sender;
|
|
||||||
- (IBAction)onQuitClick:(id)sender;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
@ -1,380 +0,0 @@
|
||||||
//
|
|
||||||
// ChatConversationInfoView.m
|
|
||||||
// linphone
|
|
||||||
//
|
|
||||||
// Created by REIS Benjamin on 23/10/2017.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
|
|
||||||
#import "ChatConversationInfoView.h"
|
|
||||||
#import "PhoneMainView.h"
|
|
||||||
#import "UIChatConversationInfoTableViewCell.h"
|
|
||||||
|
|
||||||
#import "linphone/core.h"
|
|
||||||
|
|
||||||
@implementation ChatConversationInfoView
|
|
||||||
|
|
||||||
#pragma mark - UICompositeViewDelegate Functions
|
|
||||||
|
|
||||||
static UICompositeViewDescription *compositeDescription = nil;
|
|
||||||
|
|
||||||
+ (UICompositeViewDescription *)compositeViewDescription {
|
|
||||||
if (compositeDescription == nil) {
|
|
||||||
compositeDescription = [[UICompositeViewDescription alloc] init:self.class
|
|
||||||
statusBar:StatusBarView.class
|
|
||||||
tabBar:TabBarView.class
|
|
||||||
sideMenu:SideMenuView.class
|
|
||||||
fullscreen:false
|
|
||||||
isLeftFragment:NO
|
|
||||||
fragmentWith:ChatsListView.class];
|
|
||||||
}
|
|
||||||
return compositeDescription;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UICompositeViewDescription *)compositeViewDescription {
|
|
||||||
return self.class.compositeViewDescription;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (void)displayCreationError {
|
|
||||||
static UIAlertController *errorView = nil;
|
|
||||||
// avoid having multiple popups
|
|
||||||
[PhoneMainView.instance dismissViewControllerAnimated:YES completion:nil];
|
|
||||||
errorView = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Chat room creation error", nil)
|
|
||||||
message:NSLocalizedString(@"Chat room could not be created on server", nil)
|
|
||||||
preferredStyle:UIAlertControllerStyleAlert];
|
|
||||||
|
|
||||||
UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"OK", nil)
|
|
||||||
style:UIAlertActionStyleDefault
|
|
||||||
handler:^(UIAlertAction * action) {}];
|
|
||||||
[errorView addAction:defaultAction];
|
|
||||||
[PhoneMainView.instance presentViewController:errorView animated:YES completion:nil];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewDidLoad {
|
|
||||||
[super viewDidLoad];
|
|
||||||
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self
|
|
||||||
action:@selector(dismissKeyboards)];
|
|
||||||
tap.delegate = self;
|
|
||||||
[self.view addGestureRecognizer:tap];
|
|
||||||
|
|
||||||
UITapGestureRecognizer *particpantsBarTap = [[UITapGestureRecognizer alloc] initWithTarget:self
|
|
||||||
action:@selector(onAddClick:)];
|
|
||||||
particpantsBarTap.delegate = self;
|
|
||||||
[_participantsBar addGestureRecognizer:particpantsBarTap];
|
|
||||||
|
|
||||||
_nameLabel.delegate = self;
|
|
||||||
_tableView.dataSource = self;
|
|
||||||
_tableView.delegate = self;
|
|
||||||
_admins = [[NSMutableArray alloc] init];
|
|
||||||
_oldAdmins = [[NSMutableArray alloc] init];
|
|
||||||
_oldContacts = [[NSMutableArray alloc] init];
|
|
||||||
_room = NULL;
|
|
||||||
_chatRoomCbs = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewWillAppear:(BOOL)animated {
|
|
||||||
[super viewWillAppear:animated];
|
|
||||||
_waitView.hidden = YES;
|
|
||||||
|
|
||||||
if (_create)
|
|
||||||
_room = NULL;
|
|
||||||
|
|
||||||
_nameLabel.text = _room && linphone_chat_room_get_subject(_room)
|
|
||||||
? [NSString stringWithUTF8String:linphone_chat_room_get_subject(_room)]
|
|
||||||
: @"";
|
|
||||||
_nextButton.enabled = _nameLabel.text.length > 0 && _contacts.count > 0;
|
|
||||||
LinphoneParticipant *me = _room && !linphone_chat_room_has_been_left(_room)
|
|
||||||
? linphone_chat_room_get_me(_room)
|
|
||||||
: NULL;
|
|
||||||
_imAdmin = me
|
|
||||||
? linphone_participant_is_admin(me)
|
|
||||||
: false;
|
|
||||||
_quitButton.hidden = _create || (me == NULL);
|
|
||||||
_nameLabel.enabled = _create || _imAdmin;
|
|
||||||
_addButton.hidden = !_create && !_imAdmin;
|
|
||||||
_nextButton.hidden = !_create && !_imAdmin;
|
|
||||||
|
|
||||||
CGFloat height = _quitButton.hidden
|
|
||||||
? self.view.frame.size.height - _tableView.frame.origin.y
|
|
||||||
: _quitButton.frame.origin.y - _tableView.frame.origin.y - 10;
|
|
||||||
[_tableView setFrame:CGRectMake(
|
|
||||||
_tableView.frame.origin.x,
|
|
||||||
_tableView.frame.origin.y,
|
|
||||||
_tableView.frame.size.width,
|
|
||||||
height
|
|
||||||
)];
|
|
||||||
|
|
||||||
if (_room) {
|
|
||||||
_chatRoomCbs = linphone_factory_create_chat_room_cbs(linphone_factory_get());
|
|
||||||
linphone_chat_room_cbs_set_state_changed(_chatRoomCbs, main_view_chat_room_state_changed);
|
|
||||||
linphone_chat_room_cbs_set_subject_changed(_chatRoomCbs, chat_room_subject_changed);
|
|
||||||
linphone_chat_room_cbs_set_participant_added(_chatRoomCbs, chat_room_participant_added);
|
|
||||||
linphone_chat_room_cbs_set_participant_removed(_chatRoomCbs, chat_room_participant_removed);
|
|
||||||
linphone_chat_room_cbs_set_participant_admin_status_changed(_chatRoomCbs, chat_room_participant_admin_status_changed);
|
|
||||||
linphone_chat_room_cbs_set_user_data(_chatRoomCbs, (__bridge void*)self);
|
|
||||||
linphone_chat_room_add_callbacks(_room, _chatRoomCbs);
|
|
||||||
}
|
|
||||||
|
|
||||||
[_tableView reloadData];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)viewWillDisappear:(BOOL)animated {
|
|
||||||
if (!_room || !_chatRoomCbs)
|
|
||||||
return;
|
|
||||||
|
|
||||||
linphone_chat_room_remove_callbacks(_room, _chatRoomCbs);
|
|
||||||
_chatRoomCbs = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - next functions
|
|
||||||
|
|
||||||
- (void)onCreate {
|
|
||||||
bctbx_list_t *addresses = NULL;
|
|
||||||
for (NSString *addr in _contacts) {
|
|
||||||
LinphoneAddress *linphoneAddress = linphone_address_new(addr.UTF8String);
|
|
||||||
if (!linphoneAddress)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (!addresses) {
|
|
||||||
addresses = bctbx_list_new((void *)linphoneAddress);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
addresses = bctbx_list_append(addresses, (void *)linphoneAddress);
|
|
||||||
}
|
|
||||||
[PhoneMainView.instance createChatRoomWithSubject:_nameLabel.text.UTF8String addresses:addresses andWaitView:_waitView];
|
|
||||||
bctbx_list_free_with_data(addresses, (void (*)(void *))linphone_address_unref);
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)onValidate {
|
|
||||||
ChatConversationView *view = VIEW(ChatConversationView);
|
|
||||||
// Change subject if necessary
|
|
||||||
if (![_oldSubject isEqualToString:_nameLabel.text])
|
|
||||||
linphone_chat_room_set_subject(_room, _nameLabel.text.UTF8String);
|
|
||||||
|
|
||||||
// Add participants if necessary
|
|
||||||
bctbx_list_t *addedPartipants = NULL;
|
|
||||||
for (NSString *uri in _contacts) {
|
|
||||||
if ([_oldContacts containsObject:uri])
|
|
||||||
continue;
|
|
||||||
|
|
||||||
LinphoneAddress *addr = linphone_address_new(uri.UTF8String);
|
|
||||||
if (addedPartipants)
|
|
||||||
addedPartipants = bctbx_list_append(addedPartipants, addr);
|
|
||||||
else
|
|
||||||
addedPartipants = bctbx_list_new(addr);
|
|
||||||
}
|
|
||||||
if (addedPartipants) {
|
|
||||||
linphone_chat_room_add_participants(_room, addedPartipants);
|
|
||||||
bctbx_list_free_with_data(addedPartipants, (void (*)(void *))linphone_address_unref);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Remove participants if necessary
|
|
||||||
bctbx_list_t *removedPartipants = NULL;
|
|
||||||
for (NSString *uri in _oldContacts) {
|
|
||||||
if ([_contacts containsObject:uri])
|
|
||||||
continue;
|
|
||||||
|
|
||||||
LinphoneAddress *addr = linphone_address_new(uri.UTF8String);
|
|
||||||
LinphoneParticipant *participant = linphone_participant_ref(linphone_chat_room_find_participant(_room, addr));
|
|
||||||
if (!participant)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (removedPartipants)
|
|
||||||
removedPartipants = bctbx_list_append(removedPartipants, participant);
|
|
||||||
else
|
|
||||||
removedPartipants = bctbx_list_new(participant);
|
|
||||||
|
|
||||||
linphone_address_unref(addr);
|
|
||||||
}
|
|
||||||
if (removedPartipants) {
|
|
||||||
linphone_chat_room_remove_participants(_room, removedPartipants);
|
|
||||||
bctbx_list_free_with_data(removedPartipants, (void (*)(void *))linphone_participant_unref);
|
|
||||||
}
|
|
||||||
|
|
||||||
// add admins if necessary
|
|
||||||
for (NSString *admin in _admins) {
|
|
||||||
if ([_oldAdmins containsObject:admin])
|
|
||||||
continue;
|
|
||||||
|
|
||||||
LinphoneAddress *addr = linphone_address_new(admin.UTF8String);
|
|
||||||
LinphoneParticipant *participant = linphone_chat_room_find_participant(_room, addr);
|
|
||||||
if (!participant)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
linphone_chat_room_set_participant_admin_status(_room, participant, true);
|
|
||||||
linphone_address_unref(addr);
|
|
||||||
}
|
|
||||||
|
|
||||||
// remove admins if necessary
|
|
||||||
for (NSString *admin in _oldAdmins) {
|
|
||||||
if ([_admins containsObject:admin])
|
|
||||||
continue;
|
|
||||||
|
|
||||||
LinphoneAddress *addr = linphone_address_new(admin.UTF8String);
|
|
||||||
LinphoneParticipant *participant = linphone_chat_room_find_participant(_room, addr);
|
|
||||||
if (!participant)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
linphone_chat_room_set_participant_admin_status(_room, participant, false);
|
|
||||||
linphone_address_unref(addr);
|
|
||||||
}
|
|
||||||
[PhoneMainView.instance changeCurrentView:view.compositeViewDescription];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - Buttons responders
|
|
||||||
|
|
||||||
- (IBAction)onNextClick:(id)sender {
|
|
||||||
if(_create)
|
|
||||||
[self onCreate];
|
|
||||||
else
|
|
||||||
[self onValidate];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onBackClick:(id)sender {
|
|
||||||
if(_create) {
|
|
||||||
ChatConversationCreateView *view = VIEW(ChatConversationCreateView);
|
|
||||||
view.tableController.contactsGroup = [_contacts mutableCopy];
|
|
||||||
view.tableController.notFirstTime = TRUE;
|
|
||||||
view.isForEditing = FALSE;
|
|
||||||
[PhoneMainView.instance popToView:view.compositeViewDescription];
|
|
||||||
} else {
|
|
||||||
ChatConversationView *view = VIEW(ChatConversationView);
|
|
||||||
[PhoneMainView.instance popToView:view.compositeViewDescription];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onQuitClick:(id)sender {
|
|
||||||
NSString *msg =
|
|
||||||
[NSString stringWithFormat:NSLocalizedString(@"Do you want to leave this conversation?", nil)];
|
|
||||||
[UIConfirmationDialog ShowWithMessage:msg
|
|
||||||
cancelMessage:nil
|
|
||||||
confirmMessage:NSLocalizedString(@"LEAVE", nil)
|
|
||||||
onCancelClick:^() {}
|
|
||||||
onConfirmationClick:^() {
|
|
||||||
linphone_chat_room_leave(_room);
|
|
||||||
}];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IBAction)onAddClick:(id)sender {
|
|
||||||
ChatConversationCreateView *view = VIEW(ChatConversationCreateView);
|
|
||||||
view.tableController.notFirstTime = TRUE;
|
|
||||||
view.isForEditing = !_create;
|
|
||||||
view.tableController.contactsGroup = [_contacts mutableCopy];
|
|
||||||
[PhoneMainView.instance popToView:view.compositeViewDescription];
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - TableView
|
|
||||||
|
|
||||||
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
|
||||||
return _contacts.count;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
|
||||||
NSString *kCellId = NSStringFromClass(UIChatConversationInfoTableViewCell.class);
|
|
||||||
UIChatConversationInfoTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellId];
|
|
||||||
if (cell == nil) {
|
|
||||||
cell = [[UIChatConversationInfoTableViewCell alloc] initWithIdentifier:kCellId];
|
|
||||||
}
|
|
||||||
cell.uri = _contacts[indexPath.row];
|
|
||||||
LinphoneAddress *addr = linphone_address_new(cell.uri.UTF8String);
|
|
||||||
cell.nameLabel.text = [FastAddressBook displayNameForAddress:addr];
|
|
||||||
[cell.avatarImage setImage:[FastAddressBook imageForAddress:addr] bordered:YES withRoundedRadius:YES];
|
|
||||||
cell.controllerView = self;
|
|
||||||
if(![_admins containsObject:cell.uri]) {
|
|
||||||
cell.adminLabel.enabled = FALSE;
|
|
||||||
cell.adminImage.image = [UIImage imageNamed:@"check_unselected.png"];
|
|
||||||
}
|
|
||||||
cell.adminButton.hidden = _create || (!_imAdmin && !cell.adminLabel.enabled) || ![_oldContacts containsObject:cell.uri];
|
|
||||||
cell.adminButton.userInteractionEnabled = _imAdmin;
|
|
||||||
cell.removeButton.hidden = !_create && !_imAdmin;
|
|
||||||
linphone_address_unref(addr);
|
|
||||||
|
|
||||||
return cell;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - searchBar delegate
|
|
||||||
|
|
||||||
- (void)dismissKeyboards {
|
|
||||||
if ([_nameLabel isFirstResponder]) {
|
|
||||||
[_nameLabel resignFirstResponder];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - UITextFieldDelegate
|
|
||||||
|
|
||||||
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
|
|
||||||
_nextButton.enabled = (!((string.length == 0 || string == nil || [string isEqual:@""]) && (textField.text.length == 1))
|
|
||||||
&& _contacts.count > 0);
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - chat room callbacks
|
|
||||||
|
|
||||||
- (void)myAdminStatusChanged:(BOOL)admin {
|
|
||||||
NSString *message = admin
|
|
||||||
? NSLocalizedString(@"You are now an admin of the chat room", nil)
|
|
||||||
: NSLocalizedString(@"You are no longer an admin of the chat room", nil);
|
|
||||||
|
|
||||||
static UIAlertController *alertView = nil;
|
|
||||||
// avoid having multiple popups
|
|
||||||
[PhoneMainView.instance dismissViewControllerAnimated:YES completion:nil];
|
|
||||||
alertView = [UIAlertController alertControllerWithTitle:[NSString stringWithFormat:@"%@", message]
|
|
||||||
message:nil
|
|
||||||
preferredStyle:UIAlertControllerStyleAlert];
|
|
||||||
|
|
||||||
UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"OK", nil)
|
|
||||||
style:UIAlertActionStyleDefault
|
|
||||||
handler:^(UIAlertAction * action) {}];
|
|
||||||
[alertView addAction:defaultAction];
|
|
||||||
[PhoneMainView.instance presentViewController:alertView animated:YES completion:nil];
|
|
||||||
}
|
|
||||||
|
|
||||||
void chat_room_subject_changed(LinphoneChatRoom *cr, const LinphoneEventLog *event_log) {
|
|
||||||
ChatConversationInfoView *view = (__bridge ChatConversationInfoView *)linphone_chat_room_cbs_get_user_data(linphone_chat_room_get_current_callbacks(cr));
|
|
||||||
view.nameLabel.text = [NSString stringWithUTF8String:linphone_event_log_get_subject(event_log)];
|
|
||||||
}
|
|
||||||
|
|
||||||
void chat_room_participant_added(LinphoneChatRoom *cr, const LinphoneEventLog *event_log) {
|
|
||||||
ChatConversationInfoView *view = (__bridge ChatConversationInfoView *)linphone_chat_room_cbs_get_user_data(linphone_chat_room_get_current_callbacks(cr));
|
|
||||||
NSString *participantAddress = [NSString stringWithUTF8String:linphone_address_as_string(linphone_event_log_get_participant_address(event_log))];
|
|
||||||
[view.oldContacts addObject:participantAddress];
|
|
||||||
[view.contacts addObject:participantAddress];
|
|
||||||
[view.tableView reloadData];
|
|
||||||
}
|
|
||||||
|
|
||||||
void chat_room_participant_removed(LinphoneChatRoom *cr, const LinphoneEventLog *event_log) {
|
|
||||||
ChatConversationInfoView *view = (__bridge ChatConversationInfoView *)linphone_chat_room_cbs_get_user_data(linphone_chat_room_get_current_callbacks(cr));
|
|
||||||
NSString *participantAddress = [NSString stringWithUTF8String:linphone_address_as_string(linphone_event_log_get_participant_address(event_log))];
|
|
||||||
[view.oldContacts removeObject:participantAddress];
|
|
||||||
[view.contacts removeObject:participantAddress];
|
|
||||||
[view.tableView reloadData];
|
|
||||||
}
|
|
||||||
|
|
||||||
void chat_room_participant_admin_status_changed(LinphoneChatRoom *cr, const LinphoneEventLog *event_log) {
|
|
||||||
ChatConversationInfoView *view = (__bridge ChatConversationInfoView *)linphone_chat_room_cbs_get_user_data(linphone_chat_room_get_current_callbacks(cr));
|
|
||||||
NSString *participantAddress = [NSString stringWithUTF8String:linphone_address_as_string(linphone_event_log_get_participant_address(event_log))];
|
|
||||||
|
|
||||||
LinphoneParticipant *me = linphone_chat_room_get_me(cr);
|
|
||||||
if (me && linphone_address_equal(linphone_participant_get_address(me), linphone_event_log_get_participant_address(event_log))) {
|
|
||||||
[view myAdminStatusChanged:(linphone_event_log_get_type(event_log) == LinphoneEventLogTypeConferenceParticipantSetAdmin)];
|
|
||||||
[view viewWillAppear:TRUE];
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (linphone_event_log_get_type(event_log) == LinphoneEventLogTypeConferenceParticipantSetAdmin) {
|
|
||||||
[view.admins addObject:participantAddress];
|
|
||||||
[view.oldAdmins addObject:participantAddress];
|
|
||||||
} else { // linphone_event_log_get_type(event_log) == LinphoneEventLogTypeConferenceParticipantUnsetAdmin
|
|
||||||
[view.admins removeObject:participantAddress];
|
|
||||||
[view.oldAdmins removeObject:participantAddress];
|
|
||||||
}
|
|
||||||
[view.tableView reloadData];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue