1
0
mirror of https://github.com/nerzhul/ownCloud-SMS-App.git synced 2025-06-09 17:06:13 +00:00

Compare commits

...

578 Commits

Author SHA1 Message Date
Nextcloud bot
bbb6f939ba
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-18 03:09:05 +00:00
Nextcloud bot
edbf7d74e9
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-04 03:09:07 +00:00
Nextcloud bot
a93d1ce4bc
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-02 03:09:49 +00:00
Nextcloud bot
733727c478
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-01 03:10:02 +00:00
Nextcloud bot
a2b4715f5c
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-04-30 03:10:07 +00:00
Nextcloud bot
8a6d42477e
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-04-29 03:10:15 +00:00
Nextcloud bot
7cd8d5f66f
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-04-25 03:08:27 +00:00
Nextcloud bot
57302f6689
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-04-19 03:10:01 +00:00
Nextcloud bot
d34c0474b8
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-04-04 03:10:58 +00:00
Nextcloud bot
2144f32b65
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-03-18 03:19:33 +00:00
Nextcloud bot
a83ffff1e0
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-03-17 03:09:25 +00:00
Nextcloud bot
3c37a8a22f
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-02-26 03:09:30 +00:00
Nextcloud bot
46f56742cd
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-02-25 03:18:13 +00:00
Nextcloud bot
33a1b5542e
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-02-24 03:04:37 +00:00
Nextcloud bot
8a0c8bb569
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-02-20 03:06:57 +00:00
Nextcloud bot
7b7e55853d
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-02-16 03:34:10 +00:00
Nextcloud bot
7c41ec2e42
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-02-13 03:07:17 +00:00
Nextcloud bot
e5f96a7a9e
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-02-09 03:08:10 +00:00
Nextcloud bot
e773058e6a
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-02-06 03:05:55 +00:00
Nextcloud bot
44773ffc75
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-01-29 03:02:25 +00:00
Nextcloud bot
edfbc5a77a
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-01-24 03:04:07 +00:00
Dmitriy Bogdanov
7d677a9fe2
Fix notifications not being shown on modern Androids (#221)
* Add notification channels support

* Update Travis CI config
2025-01-23 18:47:17 +01:00
Nextcloud bot
5ea03be8d6
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-01-21 03:05:12 +00:00
Nextcloud bot
4c7dd797f2
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-12-28 03:05:42 +00:00
Nextcloud bot
cd45e0ba95
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-11-18 03:01:21 +00:00
Nextcloud bot
679e39c019
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-11-11 02:59:30 +00:00
Nextcloud bot
5a975b2843
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-11-04 03:02:00 +00:00
Nextcloud bot
cdcb26b2de
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-10-24 03:21:30 +00:00
Nextcloud bot
3c889b8727
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-10-22 02:58:07 +00:00
Nextcloud bot
0fcd5e1b90
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-10-19 03:07:40 +00:00
Nextcloud bot
874444e8eb
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-10-18 03:02:38 +00:00
Nextcloud bot
b9a78a0262
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-10-13 02:58:53 +00:00
Nextcloud bot
a8479b59bf
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-10-12 02:52:12 +00:00
Nextcloud bot
fa56c85969
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-10-11 03:02:02 +00:00
Nextcloud bot
fd592fb39e
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-10-04 02:54:14 +00:00
Nextcloud bot
ba24fa7fed
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-09-18 02:55:21 +00:00
Nextcloud bot
d4cd898a05
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-09-11 03:00:37 +00:00
Nextcloud bot
cda7c306c8
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-09-02 02:57:18 +00:00
Nextcloud bot
989946263d
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-08-28 02:57:27 +00:00
Nextcloud bot
3233007191
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-08-02 02:46:55 +00:00
Nextcloud bot
6364bccfba
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-07-15 02:44:58 +00:00
Nextcloud bot
130b45a901
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-07-14 02:46:39 +00:00
Nextcloud bot
90358e07f7
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-06-02 02:44:16 +00:00
Nextcloud bot
2b18901a97
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-05-25 02:44:31 +00:00
Nextcloud bot
3834633d78
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-05-21 02:40:18 +00:00
Nextcloud bot
74b74d1265
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-05-17 02:39:43 +00:00
Nextcloud bot
18982eed14
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-04-25 02:48:04 +00:00
Nextcloud bot
8f7ce34a02
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-04-19 02:49:10 +00:00
Nextcloud bot
8f6cec4501
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-04-12 02:45:38 +00:00
Nextcloud bot
b5f144cb16
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-04-05 02:46:03 +00:00
Nextcloud bot
802fc1b68d
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-03-30 02:55:35 +00:00
Nextcloud bot
8765a0bbbf
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-03-24 02:48:37 +00:00
Nextcloud bot
e60e1d5805
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-02-25 02:46:18 +00:00
Nextcloud bot
904c9fe870
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-01-13 02:49:54 +00:00
Nextcloud bot
eb58db193d
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-01-07 02:47:48 +00:00
Nextcloud bot
cc49a6e828
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-01-04 02:45:46 +00:00
Nextcloud bot
c5cd46cdef
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-12-23 02:47:16 +00:00
Nextcloud bot
4da04c6cb3
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-11-29 02:47:21 +00:00
Nextcloud bot
f16702b7c2
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-11-15 02:55:26 +00:00
Nextcloud bot
c2a2afaa88
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-11-11 02:47:28 +00:00
Nextcloud bot
02967d3640
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-10-31 02:53:51 +00:00
Nextcloud bot
9be7af764d
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-10-06 02:51:33 +00:00
Nextcloud bot
14063ef66a
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-09 03:11:21 +00:00
Nextcloud bot
769425ab94
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-05 02:49:16 +00:00
Nextcloud bot
8566985222
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-08-03 02:48:09 +00:00
Nextcloud bot
8e91e061ef
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-30 02:41:06 +00:00
Nextcloud bot
fb19382fd2
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-26 03:17:01 +00:00
Nextcloud bot
68ea2f80a3
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-20 02:42:42 +00:00
Nextcloud bot
8d2a1bab74
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-19 02:42:26 +00:00
Nextcloud bot
a5a9c7967d
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-17 02:38:54 +00:00
Nextcloud bot
2bae3bcc93
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-13 02:47:05 +00:00
Nextcloud bot
f25b6ea1e3
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-07-04 02:42:24 +00:00
Nextcloud bot
c652d1a6e6
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-25 02:45:10 +00:00
Nextcloud bot
2450a74c32
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-20 02:42:07 +00:00
Nextcloud bot
10cbe87f51
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-19 02:36:07 +00:00
Nextcloud bot
c0a6f565c7
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-18 02:29:45 +00:00
Nextcloud bot
eac20f4094
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-17 02:30:57 +00:00
Nextcloud bot
873678d1ec
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-11 02:49:49 +00:00
Nextcloud bot
7a446f3243
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-06-04 02:27:47 +00:00
Nextcloud bot
c7605ede18
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-30 02:31:29 +00:00
Nextcloud bot
1a1a88bd44
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-21 02:30:43 +00:00
Nextcloud bot
010db03f37
Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-05-12 04:44:33 +00:00
Nextcloud bot
24f3bba827
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-31 04:49:51 +00:00
Nextcloud bot
fbfb72acdf
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-16 04:39:30 +00:00
Nextcloud bot
237c695922
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-05 03:40:22 +00:00
Nextcloud bot
22218bb556
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-01-04 06:17:04 +00:00
Nextcloud bot
c25ebc819a
Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-12-31 08:06:31 +00:00
Nextcloud bot
8d29a90222
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-08 03:24:46 +00:00
Nextcloud bot
a056d07cdc
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-11-05 03:28:27 +00:00
Nextcloud bot
b0353c3de9
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-27 03:23:00 +00:00
Nextcloud bot
577ac531ee
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-20 18:09:42 +00:00
Nextcloud bot
a373de0b5d
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-19 03:27:23 +00:00
Nextcloud bot
72ff4c0d21
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-19 03:27:05 +00:00
Nextcloud bot
18b3380cdc
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-18 03:24:20 +00:00
Nextcloud bot
c1aa168642
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-18 03:24:02 +00:00
Nextcloud bot
534d4b5a3f
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-17 03:22:53 +00:00
Nextcloud bot
9e8733e4f6
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-17 03:22:37 +00:00
Nextcloud bot
e000f06939
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-16 03:22:41 +00:00
Nextcloud bot
2658f9ca62
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-16 03:22:26 +00:00
Nextcloud bot
083fc202c7
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-15 03:22:49 +00:00
Nextcloud bot
0c36ff37ac
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-15 03:22:33 +00:00
Nextcloud bot
106b615201
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-14 03:27:19 +00:00
Nextcloud bot
8040bd9b43
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-14 03:27:02 +00:00
Nextcloud bot
ddc837e580
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-13 03:22:28 +00:00
Nextcloud bot
e19b1048c5
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-13 03:22:11 +00:00
Nextcloud bot
30cfebaf87
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-12 03:22:34 +00:00
Nextcloud bot
95e6c294ae
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-12 03:22:18 +00:00
Nextcloud bot
10acdd47f8
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-11 03:20:57 +00:00
Nextcloud bot
fe052f0fdc
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-11 03:20:40 +00:00
Nextcloud bot
63b8c9c512
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-10 03:27:33 +00:00
Nextcloud bot
98698068b1
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-10 03:27:17 +00:00
Nextcloud bot
7101e5e714
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-09 03:38:10 +00:00
Nextcloud bot
7d8867da60
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-09 03:37:54 +00:00
Nextcloud bot
df68852fd5
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-08 03:22:53 +00:00
Nextcloud bot
72bb1858a6
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-08 03:22:37 +00:00
Nextcloud bot
6f56028b00
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-07 03:23:50 +00:00
Nextcloud bot
7a851a1684
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-07 03:23:35 +00:00
Nextcloud bot
527c6f535c
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-06 03:24:41 +00:00
Nextcloud bot
1cb7a81a47
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-06 03:24:25 +00:00
Nextcloud bot
93f83c216a
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-05 03:18:02 +00:00
Nextcloud bot
80ec02b767
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-05 03:17:46 +00:00
Nextcloud bot
5309e46d58
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-04 03:18:39 +00:00
Nextcloud bot
b61d82fe1e
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-04 03:18:23 +00:00
Nextcloud bot
0c6d16063c
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-03 03:23:08 +00:00
Nextcloud bot
74dd4b33a4
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-03 03:22:52 +00:00
Nextcloud bot
f0d6588c07
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-02 03:21:01 +00:00
Nextcloud bot
8302493940
[tx-robot] Update transifex configuration
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-10-02 03:20:41 +00:00
Nextcloud bot
fc5241d6f9
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-09-20 04:37:23 +00:00
Nextcloud bot
65e3c246d7
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-08-07 04:17:59 +00:00
Nextcloud bot
5ddf363b20
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-05-05 04:16:54 +00:00
Nextcloud bot
dbe2543fcf
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2022-04-24 04:17:58 +00:00
Nextcloud bot
3dd9acddc7
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-12-27 03:56:13 +00:00
Nextcloud bot
0a9d1cc191
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-11-19 04:44:13 +00:00
Nextcloud bot
643203c874
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-11-13 03:56:21 +00:00
Nextcloud bot
5fe15716ee
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-11-12 03:51:59 +00:00
Nextcloud bot
599fe53515
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-10-20 04:15:44 +00:00
Nextcloud bot
8a87e4d63a
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-09-21 04:05:52 +00:00
Nextcloud bot
ffd5119c98
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-09-15 04:04:00 +00:00
Nextcloud bot
11409cbead
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-09-02 04:00:32 +00:00
Nextcloud bot
78f3d79630
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-08-06 04:08:44 +00:00
Nextcloud bot
6687f92346
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-06-28 04:02:46 +00:00
Nextcloud bot
2836ac6869
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-06-21 04:04:46 +00:00
Nextcloud bot
59acbd9ef5
[tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-06-03 04:12:36 +00:00
Nextcloud bot
fcbaf713f3
[tx-robot] updated from transifex 2021-05-14 04:00:30 +00:00
Nextcloud bot
e515419d63
[tx-robot] updated from transifex 2021-05-04 04:03:32 +00:00
Nextcloud bot
17374d2183
[tx-robot] updated from transifex 2021-05-02 04:00:24 +00:00
Nextcloud bot
915617d79a
[tx-robot] updated from transifex 2021-04-28 04:04:27 +00:00
Nextcloud bot
786ee2b842
[tx-robot] updated from transifex 2021-04-27 04:06:19 +00:00
Nextcloud bot
a3d804325f
[tx-robot] updated from transifex 2021-04-18 03:59:35 +00:00
Nextcloud bot
991bde7231
[tx-robot] updated from transifex 2021-04-17 04:01:43 +00:00
Nextcloud bot
58205cc06c
[tx-robot] updated from transifex 2021-04-15 04:02:45 +00:00
Nextcloud bot
c07dabf789
[tx-robot] updated from transifex 2021-04-13 04:02:11 +00:00
Nextcloud bot
bd8b23f1e0
[tx-robot] updated from transifex 2021-04-12 04:02:11 +00:00
Nextcloud bot
3b682e25d6
[tx-robot] updated from transifex 2021-04-08 04:02:01 +00:00
Nextcloud bot
ea17951c0a
[tx-robot] updated from transifex 2021-04-07 04:03:04 +00:00
Nextcloud bot
b7e5690a81
[tx-robot] updated from transifex 2021-04-04 03:59:48 +00:00
Nextcloud bot
eabab3be02
[tx-robot] updated from transifex 2021-03-23 03:58:37 +00:00
Nextcloud bot
710e471811
[tx-robot] updated from transifex 2021-03-22 03:57:59 +00:00
Nextcloud bot
7c2eef2e88
[tx-robot] updated from transifex 2021-03-20 03:56:27 +00:00
Nextcloud bot
477e3f8319
[tx-robot] updated from transifex 2021-03-16 03:55:53 +00:00
Nextcloud bot
f49f575971
[tx-robot] updated from transifex 2021-03-04 04:00:10 +00:00
Nextcloud bot
0ceb01b2bd
[tx-robot] updated from transifex 2021-02-27 03:57:20 +00:00
Nextcloud bot
a240c1cbef
[tx-robot] updated from transifex 2021-02-24 04:02:48 +00:00
Nextcloud bot
29ff6635f2
[tx-robot] updated from transifex 2021-02-18 03:59:03 +00:00
Nextcloud bot
a63d9599e1
[tx-robot] updated from transifex 2021-02-15 03:49:58 +00:00
Nextcloud bot
5261961673
[tx-robot] updated from transifex 2021-02-13 03:51:13 +00:00
Nextcloud bot
8adc71c413
[tx-robot] updated from transifex 2021-02-09 03:50:58 +00:00
Nextcloud bot
3a0601d217
[tx-robot] updated from transifex 2021-02-08 03:51:03 +00:00
Nextcloud bot
cb1c6fb71a
[tx-robot] updated from transifex 2021-02-06 03:54:45 +00:00
Nextcloud bot
2e287d4dcb
[tx-robot] updated from transifex 2021-02-05 03:55:03 +00:00
Nextcloud bot
64e26551a6
[tx-robot] updated from transifex 2021-01-27 03:54:31 +00:00
Nextcloud bot
4ecf711a65
[tx-robot] updated from transifex 2021-01-26 03:52:56 +00:00
Nextcloud bot
8e6e5b64e4
[tx-robot] updated from transifex 2021-01-19 03:51:52 +00:00
Nextcloud bot
86ac855e9a
[tx-robot] updated from transifex 2021-01-18 03:51:00 +00:00
Nextcloud bot
aa530a204c
[tx-robot] updated from transifex 2021-01-14 03:53:41 +00:00
Nextcloud bot
bd0c9c0c97
[tx-robot] updated from transifex 2021-01-02 03:59:33 +00:00
Nextcloud bot
00c2c6e8ea
[tx-robot] updated from transifex 2020-12-30 03:55:05 +00:00
Nextcloud bot
18650d4d7b
[tx-robot] updated from transifex 2020-12-19 03:52:53 +00:00
Nextcloud bot
3b23a320bc
[tx-robot] updated from transifex 2020-12-15 03:54:07 +00:00
Nextcloud bot
1a18eb48a1
[tx-robot] updated from transifex 2020-12-10 03:59:56 +00:00
Nextcloud bot
4d17c9c5af
[tx-robot] updated from transifex 2020-12-08 03:54:22 +00:00
Nextcloud bot
07fb0e7a87
[tx-robot] updated from transifex 2020-11-30 03:49:06 +00:00
Nextcloud bot
e2c8f185f5
[tx-robot] updated from transifex 2020-11-09 03:49:02 +00:00
Nextcloud bot
c88c9bb5be
[tx-robot] updated from transifex 2020-11-08 03:49:00 +00:00
Nextcloud bot
dc04f5997b
[tx-robot] updated from transifex 2020-11-05 03:47:24 +00:00
Nextcloud bot
5e9bcc88ca
[tx-robot] updated from transifex 2020-11-02 03:48:01 +00:00
Nextcloud bot
b99951c444
[tx-robot] updated from transifex 2020-11-01 03:47:16 +00:00
Nextcloud bot
353145693d
[tx-robot] updated from transifex 2020-10-31 03:48:53 +00:00
Nextcloud bot
c57f5237ed
[tx-robot] updated from transifex 2020-10-29 03:47:24 +00:00
Nextcloud bot
be3a183633
[tx-robot] updated from transifex 2020-10-27 03:48:38 +00:00
Nextcloud bot
511e11e454
[tx-robot] updated from transifex 2020-10-19 03:43:59 +00:00
Nextcloud bot
837a3effb1
[tx-robot] updated from transifex 2020-10-17 03:44:32 +00:00
Nextcloud bot
739ac51931
[tx-robot] updated from transifex 2020-10-15 03:43:43 +00:00
Nextcloud bot
1b58f45a9f
[tx-robot] updated from transifex 2020-10-14 03:47:57 +00:00
Nextcloud bot
e5f6719d22
[tx-robot] updated from transifex 2020-10-13 03:46:24 +00:00
Nextcloud bot
151b1488d4
[tx-robot] updated from transifex 2020-10-11 03:41:24 +00:00
Nextcloud bot
171890e507
[tx-robot] updated from transifex 2020-10-10 03:48:31 +00:00
Nextcloud bot
6a4c2363e7
[tx-robot] updated from transifex 2020-09-30 03:45:27 +00:00
Nextcloud bot
598f3413cf
[tx-robot] updated from transifex 2020-09-28 03:43:36 +00:00
Nextcloud bot
ec9729ebeb
[tx-robot] updated from transifex 2020-09-22 03:43:06 +00:00
Nextcloud bot
ab60df2369
[tx-robot] updated from transifex 2020-09-21 03:37:46 +00:00
Nextcloud bot
e11bed3f31
[tx-robot] updated from transifex 2020-09-20 03:37:19 +00:00
Nextcloud bot
02375e41c5
[tx-robot] updated from transifex 2020-09-18 03:36:44 +00:00
Nextcloud bot
05380b2d39
[tx-robot] updated from transifex 2020-09-15 03:27:54 +00:00
Nextcloud bot
c19248555d
[tx-robot] updated from transifex 2020-09-14 03:25:55 +00:00
Nextcloud bot
b0785093a9
[tx-robot] updated from transifex 2020-09-12 03:25:24 +00:00
Nextcloud bot
5d244ca55a
[tx-robot] updated from transifex 2020-09-10 03:32:13 +00:00
Nextcloud bot
46327119f8
[tx-robot] updated from transifex 2020-09-09 03:25:38 +00:00
Nextcloud bot
f682438980
[tx-robot] updated from transifex 2020-09-07 03:34:43 +00:00
Nextcloud bot
dd09e43818
[tx-robot] updated from transifex 2020-09-05 03:35:03 +00:00
Nextcloud bot
150284e27b
[tx-robot] updated from transifex 2020-09-04 03:35:18 +00:00
rakekniven
f8b9665963
l10n: Triple dot to ellipsis (#224)
Reported at Transifex.

Signed-off-by: rakekniven <mark.ziegler@rakekniven.de>
2020-09-03 13:26:46 +02:00
Nextcloud bot
2aacbb13b5
[tx-robot] updated from transifex 2020-08-26 03:36:10 +00:00
Nextcloud bot
e43a172079
[tx-robot] updated from transifex 2020-08-14 03:50:28 +00:00
Nextcloud bot
d96b8a7875
[tx-robot] updated from transifex 2020-08-06 03:37:22 +00:00
Nextcloud bot
478e3718fb
[tx-robot] updated from transifex 2020-08-04 03:36:16 +00:00
Nextcloud bot
3c19e328a2
[tx-robot] updated from transifex 2020-07-04 03:33:29 +00:00
Nextcloud bot
c9ed554c6d
[tx-robot] updated from transifex 2020-07-02 03:41:28 +00:00
Nextcloud bot
5bc84f9e7f
[tx-robot] updated from transifex 2020-07-01 03:31:43 +00:00
Nextcloud bot
a6ee12a195
[tx-robot] updated from transifex 2020-06-18 03:32:33 +00:00
Nextcloud bot
86d2dce73b
[tx-robot] updated from transifex 2020-06-06 03:34:09 +00:00
Nextcloud bot
236d348aba
[tx-robot] updated from transifex 2020-05-31 03:30:58 +00:00
Nextcloud bot
98daefe3df
[tx-robot] updated from transifex 2020-05-23 03:33:35 +00:00
Nextcloud bot
abce140b8f
[tx-robot] updated from transifex 2020-05-21 03:35:26 +00:00
Nextcloud bot
548e0d871f
[tx-robot] updated from transifex 2020-05-18 03:29:07 +00:00
Nextcloud bot
633901ea99
[tx-robot] updated from transifex 2020-05-17 03:29:47 +00:00
Nextcloud bot
889e365e03
[tx-robot] updated from transifex 2020-05-08 03:31:04 +00:00
e-alfred
b1688dbfed
Added screenshots (#231) 2020-05-02 08:17:22 +02:00
Nextcloud bot
93c954ec7c
[tx-robot] updated from transifex 2020-04-11 03:38:10 +00:00
Nextcloud bot
a7d74d4686
[tx-robot] updated from transifex 2020-03-30 03:38:08 +00:00
Nextcloud bot
961c731f60
[tx-robot] updated from transifex 2020-03-25 03:38:21 +00:00
Nextcloud bot
72702ab53e
[tx-robot] updated from transifex 2020-03-16 03:41:48 +00:00
Nextcloud bot
c199f6f60d
[tx-robot] updated from transifex 2020-02-25 03:42:19 +00:00
Nextcloud bot
dc41bf3798
[tx-robot] updated from transifex 2020-02-24 03:38:37 +00:00
Nextcloud bot
53d9431c15
[tx-robot] updated from transifex 2020-02-19 03:34:19 +00:00
Nextcloud bot
4d00647cc1
[tx-robot] updated from transifex 2020-02-12 03:33:27 +00:00
Nextcloud bot
8130af570f
[tx-robot] updated from transifex 2020-02-07 03:48:09 +00:00
Nextcloud bot
fee8902acb
[tx-robot] updated from transifex 2020-02-06 03:34:17 +00:00
Nextcloud bot
333a31b056
[tx-robot] updated from transifex 2020-02-05 03:35:49 +00:00
Nextcloud bot
48dca0fbb4
[tx-robot] updated from transifex 2020-02-01 03:31:48 +00:00
Nextcloud bot
6c63d8f89b
[tx-robot] updated from transifex 2020-01-28 03:37:13 +00:00
Maxime Sibellas
9bca7b4ca2 Fix typo in french translation for value title_activity_select_account (#222) 2020-01-27 17:07:13 +01:00
Nextcloud bot
79a56e2ada
[tx-robot] updated from transifex 2020-01-26 03:32:24 +00:00
Nextcloud bot
859147b69b
[tx-robot] updated from transifex 2020-01-24 03:31:38 +00:00
Nextcloud bot
00850485e9
[tx-robot] updated from transifex 2020-01-22 03:35:35 +00:00
Nextcloud bot
7bf6b842a0
[tx-robot] updated from transifex 2020-01-20 03:32:56 +00:00
Nextcloud bot
6ad684b650
[tx-robot] updated from transifex 2020-01-19 03:34:16 +00:00
Nextcloud bot
6554f343ae
[tx-robot] updated from transifex 2020-01-16 03:37:16 +00:00
Nextcloud bot
4fc26ff2d4
[tx-robot] updated from transifex 2020-01-14 03:34:11 +00:00
Nextcloud bot
d15945c1ca
[tx-robot] updated from transifex 2020-01-11 03:34:09 +00:00
Nextcloud bot
8bf4ab7c93
[tx-robot] updated from transifex 2020-01-09 04:29:15 +00:00
Niedermann IT-Dienstleistungen
600cb29c9c Update app icon background layer (#218)
see nextcloud/talk-android#695

Please do not forget to update the Play Store logo :)
2020-01-05 16:43:04 +01:00
Nextcloud bot
6840c982ca
[tx-robot] updated from transifex 2020-01-04 04:29:34 +00:00
Nextcloud bot
04b35c398d
[tx-robot] updated from transifex 2020-01-03 04:26:00 +00:00
Nextcloud bot
070a53167a
[tx-robot] updated from transifex 2020-01-02 04:26:26 +00:00
Nextcloud bot
badb5aaaa1
[tx-robot] updated from transifex 2020-01-01 04:26:08 +00:00
Nextcloud bot
7e73e2336b
[tx-robot] updated from transifex 2019-12-25 04:26:01 +00:00
Nextcloud bot
598f1fcf9a
[tx-robot] updated from transifex 2019-12-23 04:29:33 +00:00
Nextcloud bot
13f164b867
[tx-robot] updated from transifex 2019-12-22 04:32:42 +00:00
Nextcloud bot
0c5290118f
[tx-robot] updated from transifex 2019-12-06 03:20:24 +00:00
Nextcloud bot
58a4a7bc4e
[tx-robot] updated from transifex 2019-12-03 03:18:56 +00:00
Nextcloud bot
5bfbb005a5
[tx-robot] updated from transifex 2019-12-02 03:16:40 +00:00
Nextcloud bot
ad2f7c10f7
[tx-robot] updated from transifex 2019-11-28 03:19:20 +00:00
Nextcloud bot
82f43a885f
[tx-robot] updated from transifex 2019-11-22 03:15:02 +00:00
Nextcloud bot
76f2388f02
[tx-robot] updated from transifex 2019-11-21 03:14:32 +00:00
Nextcloud bot
e6e1f1a721
[tx-robot] updated from transifex 2019-11-20 03:15:31 +00:00
Nextcloud bot
961a760234
[tx-robot] updated from transifex 2019-11-03 03:17:31 +00:00
Nextcloud bot
5ea297104c
[tx-robot] updated from transifex 2019-10-28 03:12:20 +00:00
Nextcloud bot
855de0f86e
[tx-robot] updated from transifex 2019-10-25 03:13:09 +00:00
Nextcloud bot
191fabbca4
[tx-robot] updated from transifex 2019-09-24 03:14:06 +00:00
Nextcloud bot
d5149f729b
[tx-robot] updated from transifex 2019-09-21 03:09:17 +00:00
Nextcloud bot
5f5cc55259
[tx-robot] updated from transifex 2019-09-16 03:03:26 +00:00
Nextcloud bot
50d4de987e
[tx-robot] updated from transifex 2019-09-08 03:17:59 +00:00
Nextcloud bot
584524a1c9
[tx-robot] updated from transifex 2019-09-06 03:10:56 +00:00
Nextcloud bot
1730a48f23
[tx-robot] updated from transifex 2019-09-02 03:11:14 +00:00
Nextcloud bot
9f4219bd68
[tx-robot] updated from transifex 2019-08-30 03:14:03 +00:00
Nextcloud bot
3cdf1337f8
[tx-robot] updated from transifex 2019-08-28 03:18:15 +00:00
Nextcloud bot
9a1f187058
[tx-robot] updated from transifex 2019-08-20 03:10:47 +00:00
Nextcloud bot
b09f60cc4e
[tx-robot] updated from transifex 2019-08-18 03:15:36 +00:00
Nextcloud bot
9e5297f2aa
[tx-robot] updated from transifex 2019-08-12 03:10:29 +00:00
e-alfred
080ad35048 Remove dead Google Play links (#210) 2019-08-07 11:30:26 +02:00
Nextcloud bot
c64745d885
[tx-robot] updated from transifex 2019-07-19 03:22:56 +00:00
Nextcloud bot
f66e101e76
[tx-robot] updated from transifex 2019-06-26 03:03:11 +00:00
Nextcloud bot
33a62654cb
[tx-robot] updated from transifex 2019-06-18 03:02:18 +00:00
Nextcloud bot
dc13d4a21c
[tx-robot] updated from transifex 2019-06-08 02:53:19 +00:00
Nextcloud bot
bbef52e03a
[tx-robot] updated from transifex 2019-06-01 02:53:10 +00:00
Nextcloud bot
812c801042
[tx-robot] updated from transifex 2019-05-28 03:07:10 +00:00
Nextcloud bot
926182f997
[tx-robot] updated from transifex 2019-05-22 03:02:36 +00:00
Nextcloud bot
f75a6d40f1
[tx-robot] updated from transifex 2019-05-21 07:15:29 +00:00
Nextcloud bot
b3aca1c6b3
[tx-robot] updated from transifex 2019-05-13 00:53:15 +00:00
Nextcloud bot
5a02dfa045
[tx-robot] updated from transifex 2019-05-08 01:11:40 +00:00
Nextcloud bot
76f901c81f
[tx-robot] updated from transifex 2019-05-07 00:53:48 +00:00
Nextcloud bot
6a13d7ac83
[tx-robot] updated from transifex 2019-05-01 00:53:07 +00:00
Nextcloud bot
f1e5df9e02
[tx-robot] updated from transifex 2019-04-30 00:54:06 +00:00
Nextcloud bot
6bbd5da44f
[tx-robot] updated from transifex 2019-04-28 00:55:09 +00:00
Nextcloud bot
523603c1e3
[tx-robot] updated from transifex 2019-04-26 00:52:07 +00:00
Nextcloud bot
f953e6cd09
[tx-robot] updated from transifex 2019-04-20 00:53:01 +00:00
Nextcloud bot
123ce0adb3
[tx-robot] updated from transifex 2019-04-19 00:54:31 +00:00
Nextcloud bot
7c14bff700
[tx-robot] updated from transifex 2019-04-18 00:54:49 +00:00
Loïc Blot
d92ed7d4b1
Make gp_translation_version non translatable 2019-04-17 09:51:42 +02:00
Nextcloud bot
4f265773b8
[tx-robot] updated from transifex 2019-04-17 00:55:18 +00:00
Nextcloud bot
da0082ccac
[tx-robot] updated from transifex 2019-04-16 01:05:57 +00:00
Nextcloud bot
363248f580
[tx-robot] updated from transifex 2019-04-15 00:54:35 +00:00
Nextcloud bot
13a44da126
[tx-robot] updated from transifex 2019-04-13 00:56:52 +00:00
Nextcloud bot
9409ca64e2
[tx-robot] updated from transifex 2019-04-12 00:54:52 +00:00
Nextcloud bot
27942004b5
[tx-robot] updated from transifex 2019-04-11 00:54:39 +00:00
rakekniven
15aa29910d Update google_playstore_strings.xml (#204)
Changed project names.

Reported at Transifex
2019-04-10 11:20:57 +02:00
Nextcloud bot
6ceee7b012
[tx-robot] updated from transifex 2019-04-09 00:54:46 +00:00
Nextcloud bot
b5957f0c06
[tx-robot] updated from transifex 2019-04-01 00:57:54 +00:00
Nextcloud bot
d4d7fce3e8
[tx-robot] updated from transifex 2019-03-31 01:57:04 +00:00
Nextcloud bot
a7b33e58ac
[tx-robot] updated from transifex 2019-03-29 01:56:44 +00:00
Nextcloud bot
7d8db76067
[tx-robot] updated from transifex 2019-03-25 01:50:12 +00:00
Nextcloud bot
5106432c2b
[tx-robot] updated from transifex 2019-03-24 01:50:33 +00:00
Nextcloud bot
42a2a55cae
[tx-robot] updated from transifex 2019-03-22 01:50:19 +00:00
Nextcloud bot
a9cf377063
[tx-robot] updated from transifex 2019-03-19 01:58:13 +00:00
Loïc Blot
bccfbae82c
Mark pref_lastmsgdate as non translatable
Fix #202
2019-03-18 11:28:09 +01:00
Nextcloud bot
cfb605928d
[tx-robot] updated from transifex 2019-03-18 01:55:44 +00:00
Nextcloud bot
5cae31082b
[tx-robot] updated from transifex 2019-03-15 01:58:43 +00:00
Nextcloud bot
0cda521540
[tx-robot] updated from transifex 2019-03-14 01:51:18 +00:00
Nextcloud bot
d26712cd89
[tx-robot] updated from transifex 2019-03-12 01:50:08 +00:00
Nextcloud bot
a05a30b0e2
[tx-robot] updated from transifex 2019-03-05 02:01:04 +00:00
Nextcloud bot
d9ca696db0
[tx-robot] updated from transifex 2019-03-04 01:47:38 +00:00
Nextcloud bot
a81c5ad464
[tx-robot] updated from transifex 2019-03-03 01:48:24 +00:00
Nextcloud bot
dc593807d4
[tx-robot] updated from transifex 2019-03-02 01:48:18 +00:00
Nextcloud bot
3e5f5705d2
[tx-robot] updated from transifex 2019-03-01 01:55:28 +00:00
Nextcloud bot
8a10e28a1a
[tx-robot] updated from transifex 2019-02-24 01:57:16 +00:00
Nextcloud bot
2e0ce0706d
[tx-robot] updated from transifex 2019-02-17 01:55:59 +00:00
Nextcloud bot
484c25dabe
[tx-robot] updated from transifex 2019-02-16 01:53:12 +00:00
Nextcloud bot
5fc47f03e8
[tx-robot] updated from transifex 2019-02-14 01:53:18 +00:00
Nextcloud bot
b012971a8c
[tx-robot] updated from transifex 2019-02-10 01:56:16 +00:00
Nextcloud bot
816e975ca0
[tx-robot] updated from transifex 2019-02-09 01:54:53 +00:00
Nextcloud bot
649c97d31e
[tx-robot] updated from transifex 2019-02-07 01:57:15 +00:00
Nextcloud bot
4f139906a5
[tx-robot] updated from transifex 2019-02-06 01:48:33 +00:00
Nextcloud bot
1e206b55c8
[tx-robot] updated from transifex 2019-02-03 01:49:09 +00:00
Nextcloud bot
5b184b0490
[tx-robot] updated from transifex 2019-02-02 01:48:21 +00:00
Nextcloud bot
9847559732
[tx-robot] updated from transifex 2019-01-30 01:50:07 +00:00
Nextcloud bot
ceea85925f
[tx-robot] updated from transifex 2019-01-29 01:47:51 +00:00
Nextcloud bot
e81ed347e7
[tx-robot] updated from transifex 2019-01-28 01:48:48 +00:00
Nextcloud bot
32d6864e7c
[tx-robot] updated from transifex 2019-01-27 01:51:11 +00:00
Nextcloud bot
50683049fd
[tx-robot] updated from transifex 2019-01-26 01:52:45 +00:00
Nextcloud bot
edb117a020
[tx-robot] updated from transifex 2019-01-23 01:53:54 +00:00
Nextcloud bot
1a89b1d5f1
[tx-robot] updated from transifex 2019-01-21 01:52:57 +00:00
Nextcloud bot
67f60015ec
[tx-robot] updated from transifex 2019-01-19 01:55:08 +00:00
Nextcloud bot
90b651f3f1
[tx-robot] updated from transifex 2019-01-18 01:57:14 +00:00
Nextcloud bot
55e17986a9
[tx-robot] updated from transifex 2019-01-17 01:54:26 +00:00
Loïc Blot
2b4a1ecf9a
Update PRIVACY_POLICY.md 2019-01-16 17:23:21 +01:00
Loïc Blot
77ab787db7 Add privacy policy inside application and repository
This should permit to prevent Google play removal due to this missing information.
2019-01-16 16:56:53 +01:00
Loïc Blot
d88836e7d2
Update README.md links 2019-01-16 13:59:58 +01:00
Nextcloud bot
f5147e1bc0
[tx-robot] updated from transifex 2019-01-15 01:57:23 +00:00
Loic Blot
6bd1ce5ae9
Version 2.0.6 - ncsmsgo updated to latest golang runtime (1.11.4) 2019-01-14 19:54:10 +01:00
Nextcloud bot
58a753c921
[tx-robot] updated from transifex 2019-01-14 01:54:42 +00:00
Nextcloud bot
3668bbff51
[tx-robot] updated from transifex 2019-01-09 01:55:43 +00:00
Loic Blot
990de7450b
Version fixes 2018-12-22 18:38:14 +01:00
Loic Blot
6b9c825ed9
Version 2.0.5 2018-12-22 18:27:56 +01:00
Loic Blot
c4598208ac
Update maxSdkVersion 2018-12-22 18:24:31 +01:00
Loic Blot
03d18ae1e2
Update target version & dependencies 2018-12-22 18:23:40 +01:00
Loic Blot
3bb087663a
Gradle updates 2018-12-22 18:23:40 +01:00
Nextcloud bot
a43e3f410c
[tx-robot] updated from transifex 2018-12-01 01:50:21 +00:00
Nextcloud bot
a836408cae
[tx-robot] updated from transifex 2018-11-29 01:53:15 +00:00
Nextcloud bot
e2e7ff783d
[tx-robot] updated from transifex 2018-11-13 01:55:21 +00:00
Nextcloud bot
201da17578
[tx-robot] updated from transifex 2018-11-10 01:52:17 +00:00
Nextcloud bot
6e8a2d10b9
[tx-robot] updated from transifex 2018-11-06 01:52:33 +00:00
Nextcloud bot
dfc9f81695
[tx-robot] updated from transifex 2018-10-13 00:44:57 +00:00
Nextcloud bot
8d6b6b20e8
[tx-robot] updated from transifex 2018-09-27 00:54:37 +00:00
Nextcloud bot
261da28edb
[tx-robot] updated from transifex 2018-09-26 00:54:46 +00:00
Nextcloud bot
7d00089898
[tx-robot] updated from transifex 2018-09-25 00:54:42 +00:00
Nextcloud bot
ceefd6c5d7
[tx-robot] updated from transifex 2018-09-22 00:54:44 +00:00
Nextcloud bot
54ba895d1d
[tx-robot] updated from transifex 2018-09-21 01:01:52 +00:00
Nextcloud bot
75eb21fb4a
[tx-robot] updated from transifex 2018-09-17 00:55:16 +00:00
Nextcloud bot
3243292a66
[tx-robot] updated from transifex 2018-09-13 00:53:33 +00:00
Nextcloud bot
bc7d23970e
[tx-robot] updated from transifex 2018-09-08 00:53:13 +00:00
Nextcloud bot
28cfd0ce2a
[tx-robot] updated from transifex 2018-08-31 00:51:23 +00:00
Nextcloud bot
c50ce0e89c
[tx-robot] updated from transifex 2018-08-08 00:53:12 +00:00
Nextcloud bot
6594fee930
[tx-robot] updated from transifex 2018-07-23 00:49:25 +00:00
Nextcloud bot
753505141f
[tx-robot] updated from transifex 2018-07-20 00:49:11 +00:00
Nextcloud bot
c2cbee5cef
[tx-robot] updated from transifex 2018-07-17 00:48:35 +00:00
Nextcloud bot
cf3c7da645
[tx-robot] updated from transifex 2018-07-16 00:47:35 +00:00
Nextcloud bot
b500d02695
[tx-robot] updated from transifex 2018-07-14 00:47:55 +00:00
Nextcloud bot
e5573e7f56
[tx-robot] updated from transifex 2018-07-13 00:50:40 +00:00
Nextcloud bot
397a766663
[tx-robot] updated from transifex 2018-07-10 09:15:10 +00:00
Nextcloud bot
b06b50a8be
[tx-robot] updated from transifex 2018-07-06 00:44:19 +00:00
Nextcloud bot
8a628abb29
[tx-robot] updated from transifex 2018-06-21 00:53:11 +00:00
Nextcloud bot
cb2a8835d3
[tx-robot] updated from transifex 2018-06-15 00:52:29 +00:00
Loic Blot
7b9f035cd0
Update gradle tool 2018-06-10 16:16:25 +02:00
Loic Blot
96cdeaa2f0
Update deps & gradle 2018-06-10 16:08:42 +02:00
Nextcloud bot
92ef7cf592
[tx-robot] updated from transifex 2018-05-31 00:51:28 +00:00
Nextcloud bot
3b8f63d419
[tx-robot] updated from transifex 2018-05-20 00:51:48 +00:00
Nextcloud bot
c1fc5571bf
[tx-robot] updated from transifex 2018-05-18 00:56:43 +00:00
Nextcloud bot
f76798cb9e
[tx-robot] updated from transifex 2018-05-12 00:50:50 +00:00
Nextcloud bot
9ff749182b
[tx-robot] updated from transifex 2018-04-25 00:47:27 +00:00
Nextcloud bot
94818906ae
[tx-robot] updated from transifex 2018-04-22 00:46:31 +00:00
Niedermann IT-Dienstleistungen
9e597fb58c Adaptive icons and drawer adjustments (#188)
* Added adaptive icon

* Adjust drawer header to Notes app
2018-04-10 22:51:03 +02:00
Nextcloud bot
4a526730fa
[tx-robot] updated from transifex 2018-04-10 00:46:16 +00:00
Nextcloud bot
0bed763021
[tx-robot] updated from transifex 2018-04-09 00:51:35 +00:00
Nextcloud bot
5c8ba4b370
[tx-robot] updated from transifex 2018-03-27 00:44:02 +00:00
Nextcloud bot
77dd567593
[tx-robot] updated from transifex 2018-03-25 01:41:43 +00:00
Nextcloud bot
7d017c9919
[tx-robot] updated from transifex 2018-03-23 01:43:48 +00:00
Nextcloud bot
79cb5983a2
[tx-robot] updated from transifex 2018-03-20 01:43:37 +00:00
Loic Blot
e1fad991a8
Version 2.0.4 2018-03-18 12:26:16 +01:00
Loic Blot
160688d06f
Update android sdk & build tools 2018-03-18 12:25:31 +01:00
Loic Blot
449a6b2a81
Message date is a long, not a int 2018-03-18 12:16:25 +01:00
Loic Blot
15c9617a2b
Fix iteration on restore + add a log to understand where we are in restoration process 2018-03-18 11:37:36 +01:00
Loic Blot
7af398786e
Fix some restore issue (not complete yet) 2018-03-18 11:37:33 +01:00
Nextcloud bot
99560474fb
[tx-robot] updated from transifex 2018-03-17 01:44:00 +00:00
Nextcloud bot
9a1b28cb6d
[tx-robot] updated from transifex 2018-03-02 01:47:46 +00:00
Nextcloud bot
ae910f363b
[tx-robot] updated from transifex 2018-02-27 01:53:01 +00:00
Nextcloud bot
dd9be98ac8
[tx-robot] updated from transifex 2018-02-22 01:45:08 +00:00
Nextcloud bot
b1ab14f2b0
[tx-robot] updated from transifex 2018-02-21 01:45:41 +00:00
Nextcloud bot
cf7611999c
[tx-robot] updated from transifex 2018-02-20 01:48:56 +00:00
Loic Blot
60ac0afbea
Fix aar date issues due to overflow in 32b golang int in the JNI interface.
Use int64
2018-02-17 18:37:10 +01:00
Nextcloud bot
a1db1d3c03
[tx-robot] updated from transifex 2018-02-17 01:45:49 +00:00
Nextcloud bot
1451943e68
[tx-robot] updated from transifex 2018-02-14 01:43:43 +00:00
Nextcloud bot
6d82702a8d
[tx-robot] updated from transifex 2018-02-12 23:01:39 +00:00
Loic Blot
f2348d0a46
Version 2.0.2: fetch last http error issue properly from low level go client 2018-02-12 22:57:43 +01:00
Loic Blot
95d2bfe8f9
Bump version 2.0.1 2018-02-10 22:48:39 +01:00
Loïc Blot
61ed3d2791
SMS restore now used GoLang HTTP client. (#180)
This permits to remove the whole android HTTP client from source
2018-02-10 15:59:46 +01:00
Loic Blot
8ad3b251b0
Migrate getAllSmsIds to golang implementation 2018-02-10 11:23:46 +01:00
Loic Blot
db2cc05a3a
OCHttpClient::getPhoneList now used GoLang aar
* add handleEarlyHTTPStatus to properly handle http return codes in java part
* cleanup dead code
2018-02-10 10:44:53 +01:00
Loic Blot
1f26787983
Improve ASyncContactLoad performance by using addAll instead of looping + add 2018-02-10 09:49:41 +01:00
Loic Blot
5d0b5d377b
Prepare 2.0.0 version & add Go mobile mention 2018-02-10 00:10:01 +01:00
Loic Blot
d57810b5d8 Replace C++ with Cmake with GoLang gomobile
* Add ncsmsgo.arr which is the GoLang gomobile part
See: https://gitlab.com/nerzhul/ncsmsgo
* Android-NDK is not needed anymore
* Android app getVersion() now uses the Golang part
* Use the next getLastHTTPStatus() call in getVersion()
* Android app pushSms() now uses the Golang part
* JNI SmsBuffer has been replaced with GoLang aar bindings
-> This permits to remove some java code & increase performance
* Prepare a insecure switch flag to the Golang client
2018-02-09 23:59:01 +01:00
Nextcloud bot
5317dc4fd9
[tx-robot] updated from transifex 2018-02-09 01:43:46 +00:00
Loic Blot
62747ae33e
Update gradle version 2018-02-08 22:31:43 +01:00
Loic Blot
a8fad0bd3f
Fix the build 2018-02-08 22:31:30 +01:00
Nextcloud bot
f099ca95d2
[tx-robot] updated from transifex 2018-01-24 01:42:37 +00:00
Nextcloud bot
314016b5ca
[tx-robot] updated from transifex 2018-01-15 01:42:39 +00:00
Nextcloud bot
a7917c0b45
[tx-robot] updated from transifex 2018-01-05 01:43:58 +00:00
Nextcloud bot
da2a42ba91
[tx-robot] updated from transifex 2018-01-04 01:36:44 +00:00
Nextcloud bot
108c619fe7
[tx-robot] updated from transifex 2017-12-29 01:31:45 +00:00
Tobias Kaminsky
59db354042 Fix transifex
Transifex is using values-es_419 for spanish "latin america", but this is not supported on android. This changes "values-es_419" to "values-es-rUS", which works.
2017-12-28 16:20:43 +01:00
Nextcloud bot
92930ec758
[tx-robot] updated from transifex 2017-12-21 01:31:49 +00:00
Nextcloud bot
b877807f76
[tx-robot] updated from transifex 2017-12-20 01:32:20 +00:00
Nextcloud bot
8acf838b88
[tx-robot] updated from transifex 2017-12-19 01:33:19 +00:00
Nextcloud bot
3d27756f02
[tx-robot] updated from transifex 2017-12-18 01:31:22 +00:00
Nextcloud bot
c90d3c0fc2
[tx-robot] updated from transifex 2017-12-17 01:31:47 +00:00
Nextcloud bot
5b2c22e4ba
[tx-robot] updated from transifex 2017-12-11 01:40:45 +00:00
Nextcloud bot
14916aa092
[tx-robot] updated from transifex 2017-12-09 01:40:12 +00:00
Nextcloud bot
1553bc2e0e
[tx-robot] updated from transifex 2017-12-08 14:00:40 +00:00
Nextcloud bot
98f24bdf78
[tx-robot] updated from transifex 2017-12-08 01:38:58 +00:00
Nextcloud bot
3a04abe2d7
[tx-robot] updated from transifex 2017-12-07 01:39:40 +00:00
Loic Blot
89bf53de39
Release 1.3.4 2017-12-06 21:12:26 +01:00
Loic Blot
d12bd8b835
Add a new connection error type & fix periodic sync 2017-12-06 21:11:42 +01:00
Loic Blot
56857c16d4
Fix a wrong pref_slow_sync_frequency_titles in values-en 2017-12-06 19:44:26 +01:00
Loic Blot
011b78ba30
Update sdk to v27 & build tools to 27.0.2 2017-12-06 19:04:52 +01:00
Nextcloud bot
7ede7bb350
[tx-robot] updated from transifex 2017-12-06 01:40:18 +00:00
Nextcloud bot
f5b605c5f6
[tx-robot] updated from transifex 2017-12-05 01:40:02 +00:00
Nextcloud bot
33349000d4
[tx-robot] updated from transifex 2017-12-04 01:39:30 +00:00
Nextcloud bot
5f337bd8b0
[tx-robot] updated from transifex 2017-12-03 01:40:00 +00:00
Nextcloud bot
290312e4c9
[tx-robot] updated from transifex 2017-12-02 01:40:04 +00:00
Loic Blot
2fbb0e6ca5
Release 1.3.3
Help diagnose error + better HTTP options
2017-12-01 22:46:34 +01:00
Loic Blot
580d4c1588
Enhance connection error messages
Handle each exception in OCHttpClient::execute separately to help diagnose
2017-12-01 22:45:58 +01:00
Loic Blot
141dfa40ed
Add Transfer-Encoding option chunked in requests 2017-12-01 19:45:16 +01:00
Loic Blot
ff845bc079
update tools in travis 2017-12-01 19:44:59 +01:00
Loic Blot
05d1355b76
Fix build with NDK 16 2017-12-01 19:34:13 +01:00
Loic Blot
32ab866e55
update gradle build version 2017-12-01 19:07:45 +01:00
Nextcloud bot
3514305b60
[tx-robot] updated from transifex 2017-11-28 01:37:06 +00:00
Loic Blot
f4b20b5873
Release 1.3.2 2017-11-25 12:10:42 +01:00
Nextcloud bot
84134671be
[tx-robot] updated from transifex 2017-11-14 01:36:42 +00:00
Nextcloud bot
7ca2dbe089
[tx-robot] updated from transifex 2017-11-11 01:41:44 +00:00
Nextcloud bot
3ff9208004
[tx-robot] updated from transifex 2017-11-10 08:38:34 +00:00
Nextcloud bot
94856096ed
[tx-robot] updated from transifex 2017-11-10 01:40:33 +00:00
Nextcloud bot
395142b6b0
[tx-robot] updated from transifex 2017-11-09 01:36:37 +00:00
Loic Blot
2efc7d1436
Bump version code for play store (strange...) 2017-11-08 23:48:57 +01:00
Loic Blot
9f31d3ae53
Bump to 1.3.1 2017-11-08 23:41:13 +01:00
Loic Blot
08aba120e8
Translation fix 2017-11-08 23:40:35 +01:00
Loic Blot
fe2a27f4cb
Fix some HTTP client errors, especially closing write output
This fixes issue #162
2017-11-08 23:39:35 +01:00
Nextcloud bot
37c8f29f1e
[tx-robot] updated from transifex 2017-11-08 01:38:03 +00:00
Nextcloud bot
cda995fb57
[tx-robot] updated from transifex 2017-11-07 01:34:35 +00:00
Nextcloud bot
abe6d6b40a
[tx-robot] updated from transifex 2017-11-04 01:33:04 +00:00
Loic Blot
62df914e95
Bump to 1.3.0 2017-11-03 12:21:43 +01:00
Loic Blot
a17bffb68c
Re-initiate the SSL trust manager and remove org.apache.commons.httpclient
+ fix a wrong string
2017-11-03 12:21:16 +01:00
Loic Blot
5cb6c63f16
Refactor the whole OCHttpClient to use modern android http client 2017-11-03 12:16:54 +01:00
Nextcloud bot
605fbf5ad7
[tx-robot] updated from transifex 2017-11-03 01:38:04 +00:00
Nextcloud bot
d2e7621b88
[tx-robot] updated from transifex 2017-10-31 01:30:49 +00:00
Loic Blot
c08e0fbd51
use java.net.URL instead of URI 2017-10-30 09:17:02 +01:00
Loic Blot
5c0eb4ca14
Release 1.2.5 2017-10-30 08:43:06 +01:00
Loic Blot
1701065643
Revert "removed wrongly existing launcher icon"
This reverts commit 87538e351813f41b45a852b4bdf2b27c210cd960.
2017-10-30 08:40:10 +01:00
Loic Blot
d8855fd2c6
json::escape_string: if str is null return empty string 2017-10-30 08:38:20 +01:00
Loic Blot
8e15e18b09
Code style fixes 2017-10-30 08:37:08 +01:00
Loic Blot
8d0ba298ed
Update tools 2017-10-30 08:34:31 +01:00
Loic Blot
eae84dadfb
Fix a NullPointerException reported by Play store 2017-10-30 08:34:17 +01:00
Loic Blot
a72583894e
Translation fix 2017-10-30 08:33:53 +01:00
Nextcloud bot
ad70ad4100
[tx-robot] updated from transifex 2017-10-24 00:33:21 +00:00
Nextcloud bot
2da06bb1a9
[tx-robot] updated from transifex 2017-10-23 00:30:48 +00:00
AndyScherzinger
46650c4660 use mimap instead of drawable 2017-10-22 15:58:19 +02:00
AndyScherzinger
87538e3518 removed wrongly existing launcher icon 2017-10-22 15:58:19 +02:00
Nextcloud bot
94a57138a4
[tx-robot] updated from transifex 2017-10-20 00:31:13 +00:00
Nextcloud bot
81b60c4bd8
[tx-robot] updated from transifex 2017-10-11 00:30:18 +00:00
Nextcloud bot
7ddca6ee33
[tx-robot] updated from transifex 2017-10-10 00:32:17 +00:00
Nextcloud bot
1a57f78b5c
[tx-robot] updated from transifex 2017-09-29 00:31:11 +00:00
Nextcloud bot
35bc4f0017
[tx-robot] updated from transifex 2017-09-27 00:30:03 +00:00
Nextcloud bot
395f368052
[tx-robot] updated from transifex 2017-09-22 00:30:01 +00:00
Nextcloud bot
db86583571
[tx-robot] updated from transifex 2017-09-19 00:30:01 +00:00
Nextcloud bot
6ea0b5d317
[tx-robot] updated from transifex 2017-09-16 00:29:15 +00:00
Nextcloud bot
ee5929e9eb
[tx-robot] updated from transifex 2017-09-15 00:28:33 +00:00
Nextcloud bot
70c2d6ba34
[tx-robot] updated from transifex 2017-09-14 00:28:25 +00:00
Nextcloud bot
8bb64db9ed
[tx-robot] updated from transifex 2017-09-13 00:28:49 +00:00
Loic Blot
587099dba7
Fullsync: add a complete sync message when sync is done instead of telling nothing to sync 2017-09-12 08:10:58 +02:00
Loic Blot
47abfac7c3
Fix wrong Thread created Toast
This fixes #153
2017-09-12 08:03:06 +02:00
Loic Blot
b47a36dd99
Bump 1.2.3 2017-09-11 21:57:42 +02:00
Loic Blot
3edd898d7d
Full sync is now fixed
Full sync was previously not really good, Sms were ordered by date DESC, then the last date was good and when multiple loop iterations occurs, only 1 iteration happened
SmsBuffer now owns LastMessageDate instead of AndroidSmsFetcher
Full sync is now owned by AsyncsmsSync instead of MainActivity
Last message date is more accurate and less error prone
2017-09-11 21:56:34 +02:00
Loic Blot
bd2e70c7e7
Increase versioncode too 2017-09-04 22:37:43 +02:00
Loic Blot
3986e12313
Bump to 1.2.1 2017-09-04 22:37:31 +02:00
Loic Blot
fe67a6e012
Fix date type problem on some platforms 2017-09-04 22:36:22 +02:00
Loic Blot
56eecb98bc
Remove a useless try/catch 2017-09-04 22:28:42 +02:00
Loic Blot
0407f719ef
Add SmsEntry object to remove a JsonObject unoptimized storage object 2017-09-04 22:27:36 +02:00
Loic Blot
ebfd1ccfbf
SmsBuffer: add push helper function to factorize code 2017-09-04 20:26:25 +02:00
Nextcloud bot
d950fc73ed
[tx-robot] updated from transifex 2017-09-03 00:28:55 +00:00
Loic Blot
d092ba4a4d Fix JNI implementation, don't use static methods in Java 2017-08-24 08:27:24 +02:00
Loic Blot
38e529e3f6 Drop SDK cmake 2017-08-24 08:27:24 +02:00
Loic Blot
e037a1c9b2 try cmake like this 2017-08-24 08:27:24 +02:00
Loic Blot
139e5644eb Add cmake component to travis 2017-08-24 08:27:24 +02:00
Loic Blot
b216dc3ebb Try to accept cmake license 2017-08-24 08:27:24 +02:00
Loic Blot
11bbed02b8 Don't let Java choose when cleaning SmsBuffer, do it ourself 2017-08-24 08:27:24 +02:00
Loic Blot
5e6a1fc28e SmsBuffer is now working, replace json objects with the SmsBuffer on sync 2017-08-24 08:27:24 +02:00
Loic Blot
47c2923d0e Update tools versions & prepare JNI work to reduce memory & CPU usage 2017-08-24 08:27:24 +02:00
Nextcloud bot
c52168c939
[tx-robot] updated from transifex 2017-08-24 00:30:50 +00:00
Loïc Blot
c1abafc72c SmsDataProvider: factorize field names 2017-08-22 16:50:16 +02:00
Loïc Blot
c716107c3b Add more files to .gitignore 2017-08-22 15:39:45 +02:00
Loïc Blot
1986b941a6 Update build tools to 26.0.1 2017-08-22 14:39:01 +02:00
Loïc Blot
0a785692b4 Manage versionCode and versionString in gradle directly 2017-08-22 12:27:12 +02:00
Loïc Blot
7303534911 Update travis.yml components 2017-08-22 11:38:30 +02:00
Loic Blot
7c38679287
Re-bump version (play store problem) 2017-08-22 10:19:25 +02:00
Loic Blot
4aa0d0a500
Bump versioncode 2017-08-22 10:18:39 +02:00
Loic Blot
cd3b6bb02b
Bump android versioncode 2017-08-22 10:17:46 +02:00
Loic Blot
6c0de1ddef
Prepare for Android O 2017-08-22 10:12:56 +02:00
Nextcloud bot
70ed3a30c6
[tx-robot] updated from transifex 2017-08-22 00:29:49 +00:00
Nextcloud bot
8e27201e7f
[tx-robot] updated from transifex 2017-08-21 00:29:18 +00:00
Nextcloud bot
941654684b
[tx-robot] updated from transifex 2017-08-19 00:30:13 +00:00
Nextcloud bot
33152d3152
[tx-robot] updated from transifex 2017-08-18 00:29:29 +00:00
Nextcloud bot
94fffc2af3
[tx-robot] updated from transifex 2017-08-17 00:29:14 +00:00
Nextcloud bot
b0f97b3243
[tx-robot] updated from transifex 2017-08-16 00:29:28 +00:00
Nextcloud bot
c12acea373
[tx-robot] updated from transifex 2017-08-02 00:29:06 +00:00
Loic Blot
923a10b137
Update gradle version 2017-07-29 11:41:11 +02:00
Nextcloud bot
155da3c368
[tx-robot] updated from transifex 2017-07-28 00:27:55 +00:00
Nextcloud bot
8b944550e0
[tx-robot] updated from transifex 2017-07-22 00:27:49 +00:00
Nextcloud bot
c5e6bf4f15
[tx-robot] updated from transifex 2017-07-14 00:29:25 +00:00
Nextcloud bot
23d2aae40f
[tx-robot] updated from transifex 2017-07-13 00:29:02 +00:00
Nextcloud bot
e20de7ef54
[tx-robot] updated from transifex 2017-07-12 00:28:57 +00:00
Nextcloud bot
2bef4c1576
[tx-robot] updated from transifex 2017-07-11 00:30:01 +00:00
Nextcloud bot
4f56b9249f
[tx-robot] updated from transifex 2017-07-10 00:28:53 +00:00
Nextcloud bot
f665aea164
[tx-robot] updated from transifex 2017-07-08 00:28:26 +00:00
Nextcloud bot
e76d92daa8
[tx-robot] updated from transifex 2017-07-03 00:28:12 +00:00
Nextcloud bot
4a04a506e9
[tx-robot] updated from transifex 2017-06-30 00:28:30 +00:00
Nextcloud bot
7cd99f04b8
[tx-robot] updated from transifex 2017-06-26 00:28:38 +00:00
Nextcloud bot
179774d34c
[tx-robot] updated from transifex 2017-06-20 00:28:37 +00:00
Nextcloud bot
e1bc4d443c
[tx-robot] updated from transifex 2017-06-16 00:30:02 +00:00
Nextcloud bot
5c2194e8cb
[tx-robot] updated from transifex 2017-06-15 00:29:19 +00:00
Nextcloud bot
8b9dc8204a
[tx-robot] updated from transifex 2017-06-14 00:28:04 +00:00
Nextcloud bot
9701637007
[tx-robot] updated from transifex 2017-06-11 00:27:46 +00:00
Nextcloud bot
21db9c38f3
[tx-robot] updated from transifex 2017-06-10 00:28:07 +00:00
Nextcloud bot
97eb626795
[tx-robot] updated from transifex 2017-06-09 00:28:24 +00:00
Nextcloud bot
11361dfac9
[tx-robot] updated from transifex 2017-06-08 00:28:40 +00:00
Nextcloud bot
8f79d11e53
[tx-robot] updated from transifex 2017-06-07 00:30:32 +00:00
Loic Blot
c125201c4b
Code style fixes 2017-06-07 00:26:05 +02:00
Loic Blot
4f3a5d85dd
Version 1.1.0 2017-06-07 00:01:13 +02:00
Loic Blot
0eb1af2da8
BindObjectPref now takes resId and resolve setting directly 2017-06-07 00:00:43 +02:00
Loic Blot
1d45d0a318
Add an option to disable sync notification
Fix #150
2017-06-06 23:50:20 +02:00
Loic Blot
ceba0324e1
Fix TLS context create, TLSv1.2 > 1.1 > 1.0 > SSL 2017-06-06 23:35:04 +02:00
Nextcloud bot
697a02bfed
[tx-robot] updated from transifex 2017-06-05 00:27:29 +00:00
Nextcloud bot
35297c3d2a
[tx-robot] updated from transifex 2017-06-03 00:26:35 +00:00
Nextcloud bot
c03e7f3f4b
[tx-robot] updated from transifex 2017-06-02 00:28:31 +00:00
Nextcloud bot
24ce187e95
[tx-robot] updated from transifex 2017-06-01 00:26:32 +00:00
Nextcloud bot
af15291bcd
[tx-robot] updated from transifex 2017-05-29 00:28:36 +00:00
Nextcloud bot
75c3f70dbc
[tx-robot] updated from transifex 2017-05-28 00:27:10 +00:00
Nextcloud bot
53472e8a05
[tx-robot] updated from transifex 2017-05-26 00:26:54 +00:00
Nextcloud bot
ebba06ce79
[tx-robot] updated from transifex 2017-05-25 00:26:30 +00:00
Nextcloud bot
ec7dea1c3c
[tx-robot] updated from transifex 2017-05-23 00:27:18 +00:00
Loïc Blot
d4904797f7 Contactload code cleanup 2017-05-22 14:25:31 +02:00
Loïc Blot
a5a03dbfcd More code cleanup 2017-05-22 14:10:36 +02:00
Loïc Blot
e2c65cf867 Code cleanups 2017-05-22 13:26:04 +02:00
Loïc Blot
e46a7bccf2 Add codebeat badge 2017-05-22 12:40:02 +02:00
Loic Blot
ffa033ee95
Update android build tools & gradle 2017-05-21 15:16:01 +02:00
Nextcloud bot
4b02caf75a
[tx-robot] updated from transifex 2017-05-20 00:25:43 +00:00
Nextcloud bot
55db7a3340
[tx-robot] updated from transifex 2017-05-19 00:26:56 +00:00
Nextcloud bot
f67174b55a
[tx-robot] updated from transifex 2017-05-18 00:25:17 +00:00
Nextcloud bot
559026ca82
[tx-robot] updated from transifex 2017-05-08 00:22:38 +00:00
Nextcloud bot
349f87a888
[tx-robot] updated from transifex 2017-05-07 00:22:29 +00:00
212 changed files with 12477 additions and 2313 deletions

2
.gitignore vendored
View File

@ -5,3 +5,5 @@ ownCloudSMS-release.apk
lint.xml
.gradle/
.idea/
local.properties
ownCloud-SMS-App.iml

View File

@ -11,13 +11,16 @@ cache:
jdk:
- oraclejdk8
before_install:
- yes | sdkmanager "platforms;android-28"
android:
components:
- tools
- platform-tools
- extra
- build-tools-25.0.2
- android-25
- build-tools-28.0.3
- android-28
licenses:
- 'android-sdk-license-.+'
- 'google-gdk-license-.+'

View File

@ -1,16 +1,17 @@
[main]
host = https://www.transifex.com
[nextcloud.android-sms]
[o:nextcloud:p:nextcloud:r:android-sms]
file_filter = src/main/res/values-<lang>/strings.xml
source_file = src/main/res/values/strings.xml
type = ANDROID
source_lang = en
lang_map = af_ZA: af-rZA, am_ET: am-rET, ar_AE: ar-rAE, ar_BH: ar-rBH, ar_DZ: ar-rDZ, ar_EG: ar-rEG, ar_IQ: ar-rIQ, ar_JO: ar-rJO, ar_KW: ar-rKW, ar_LB: ar-rLB, ar_LY: ar-rLY, ar_MA: ar-rMA, ar_OM: ar-rOM, ar_QA: ar-rQA, ar_SA: ar-rSA, ar_SY: ar-rSY, ar_TN: ar-rTN, ar_YE: ar-rYE, arn_CL: arn-rCL, as_IN: as-rIN, az_AZ: az-rAZ, ba_RU: ba-rRU, be_BY: be-rBY, bg_BG: bg-rBG, bn_BD: bn-rBD, bn_IN: bn-rIN, bo_CN: bo-rCN, br_FR: br-rFR, bs_BA: bs-rBA, ca_ES: ca-rES, co_FR: co-rFR, cs_CZ: cs-rCZ, cy_GB: cy-rGB, da_DK: da-rDK, de_AT: de-rAT, de_CH: de-rCH, de_DE: de-rDE, de_LI: de-rLI, de_LU: de-rLU, dsb_DE: dsb-rDE, dv_MV: dv-rMV, el_GR: el-rGR, en_AU: en-rAU, en_BZ: en-rBZ, en_CA: en-rCA, en_GB: en-rGB, en_IE: en-rIE, en_IN: en-rIN, en_JM: en-rJM, en_MY: en-rMY, en_NZ: en-rNZ, en_PH: en-rPH, en_SG: en-rSG, en_TT: en-rTT, en_US: en-rUS, en_ZA: en-rZA, en_ZW: en-rZW, en@pirate: en-rpirate, es_AR: es-rAR, es_BO: es-rBO, es_CL: es-rCL, es_CO: es-rCO, es_CR: es-rCR, es_DO: es-rDO, es_EC: es-rEC, es_ES: es-rES, es_GT: es-rGT, es_HN: es-rHN, es_MX: es-rMX, es_NI: es-rNI, es_PA: es-rPA, es_PE: es-rPE, es_PR: es-rPR, es_PY: es-rPY, es_SV: es-rSV, es_US: es-rUS, es_UY: es-rUY, es_VE: es-rVE, et_EE: et-rEE, eu_ES: eu-rES, fa_IR: fa-rIR, fi_FI: fi-rFI, fil_PH: fil-rPH, fo_FO: fo-rFO, fr_BE: fr-rBE, fr_CA: fr-rCA, fr_CH: fr-rCH, fr_FR: fr-rFR, fr_LU: fr-rLU, fr_MC: fr-rMC, fy_NL: fy-rNL, ga_IE: ga-rIE, gd_GB: gd-rGB, gl_ES: gl-rES, gsw_FR: gsw-rFR, gu_IN: gu-rIN, ha_NG: ha-rNG, he_IL: he-rIL, hi_IN: hi-rIN, hr_BA: hr-rBA, hr_HR: hr-rHR, hsb_DE: hsb-rDE, hu_HU: hu-rHU, hy_AM: hy-rAM, id_ID: id-rID, ig_NG: ig-rNG, ii_CN: ii-rCN, is_IS: is-rIS, it_CH: it-rCH, it_IT: it-rIT, iu_CA: iu-rCA, ja_JP: ja-rJP, ka_GE: ka-rGE, kk_KZ: kk-rKZ, kl_GL: kl-rGL, km_KH: km-rKH, kn_IN: kn-rIN, ko_KR: ko-rKR, kok_IN: kok-rIN, ku_IQ: ku-rIQ, ky_KG: ky-rKG, lb_LU: lb-rLU, lo_LA: lo-rLA, lt_LT: lt-rLT, lv_LV: lv-rLV, mi_NZ: mi-rNZ, mk_MK: mk-rMK, ml_IN: ml-rIN, mn_CN: mn-rCN, mn_MN: mn-rMN, moh_CA: moh-rCA, mr_IN: mr-rIN, ms_BN: ms-rBN, ms_MY: ms-rMY, my_MM: my, mt_MT: mt-rMT, nb_NO: nb-rNO, ne_NP: ne-rNP, nl_BE: nl-rBE, nl_NL: nl-rNL, nn_NO: nn-rNO, nso_ZA: nso-rZA, oc_FR: oc-rFR, or_IN: or-rIN, pa_IN: pa-rIN, pl_PL: pl-rPL, prs_AF: prs-rAF, ps_AF: ps-rAF, pt_BR: pt-rBR, pt_PT: pt-rPT, qut_GT: qut-rGT, quz_BO: quz-rBO, quz_EC: quz-rEC, quz_PE: quz-rPE, rm_CH: rm-rCH, ro_RO: ro-rRO, ru_RU: ru-rRU, rw_RW: rw-rRW, sa_IN: sa-rIN, sah_RU: sah-rRU, se_FI: se-rFI, se_NO: se-rNO, se_SE: se-rSE, si_LK: si-rLK, sk_SK: sk-rSK, sl_SI: sl-rSI, sma_NO: sma-rNO, sma_SE: sma-rSE, smj_NO: smj-rNO, smj_SE: smj-rSE, smn_FI: smn-rFI, sms_FI: sms-rFI, sq_AL: sq-rAL, sr_BA: sr-rBA, sr_CS: sr-rCS, sr_ME: sr-rME, sr_RS: sr-rRS, sr@latin: sr-rSP, sv_FI: sv-rFI, sv_SE: sv-rSE, sw_KE: sw-rKE, syr_SY: syr-rSY, ta_IN: ta-rIN, ta_LK: ta-rLK, te_IN: te-rIN, tg_TJ: tg-rTJ, th_TH: th-rTH, tk_TM: tk-rTM, tn_ZA: tn-rZA, tr_TR: tr-rTR, tt_RU: tt-rRU, tzm_DZ: tzm-rDZ, ug_CN: ug-rCN, uk_UA: uk-rUA, ur_PK: ur-rPK, uz_UZ: uz-rUZ, vi_VN: vi-rVN, wo_SN: wo-rSN, xh_ZA: xh-rZA, yo_NG: yo-rNG, zh_CN: zh-rCN, zh_CN.GB2312:zh-rBG, zh_HK: zh-rHK, zh_MO: zh-rMO, zh_SG: zh-rSG, zh_TW: zh-rTW, zu_ZA: zu-rZA
type = ANDROID
lang_map = ar_EG: ar-rEG, ar_KW: ar-rKW, da_DK: da-rDK, hu_HU: hu-rHU, lb_LU: lb-rLU, tzm_DZ: tzm-rDZ, ar_DZ: ar-rDZ, ar_SA: ar-rSA, arn_CL: arn-rCL, de_LI: de-rLI, fr_MC: fr-rMC, se_FI: se-rFI, ta_LK: ta-rLK, tt_RU: tt-rRU, xh_ZA: xh-rZA, co_FR: co-rFR, cy_GB: cy-rGB, en_SG: en-rSG, es_PA: es-rPA, es_UY: es-rUY, ku_IQ: ku-rIQ, rm_CH: rm-rCH, smj_SE: smj-rSE, sq_AL: sq-rAL, tr_TR: tr-rTR, uz_UZ: uz-rUZ, en_AU: en-rAU, ar_OM: ar-rOM, el_GR: el-rGR, es_EC: es-rEC, ha_NG: ha-rNG, hr_HR: hr-rHR, or_IN: or-rIN, pt_BR: pt-rBR, se_NO: se-rNO, am_ET: am-rET, en_US: en-rUS, es_PE: es-rPE, fa_IR: fa-rIR, fr_CA: fr-rCA, fy_NL: fy-rNL, hr_BA: hr-rBA, hy_AM: hy-rAM, lt_LT: lt-rLT, ar_SY: ar-rSY, ca_ES: ca-rES, en_JM: en-rJM, es_AR: es-rAR, es_PY: es-rPY, it_CH: it-rCH, kk_KZ: kk-rKZ, vi_VN: vi-rVN, es_MX: es-rMX, pt_PT: pt-rPT, uk_UA: uk-rUA, zh_CN.GB2312: zh-rBG, zu_ZA: zu-rZA, bs_BA: bs-rBA, is_IS: is-rIS, my_MM: my, quz_PE: quz-rPE, ur_PK: ur-rPK, ar_AE: ar-rAE, ar_LY: ar-rLY, ar_QA: ar-rQA, ja_JP: ja-rJP, nl_BE: nl-rBE, nso_ZA: nso-rZA, rw_RW: rw-rRW, sr_BA: sr-rBA, te_IN: te-rIN, de_AT: de-rAT, dv_MV: dv-rMV, ro_RO: ro-rRO, sv_SE: sv-rSE, fr_FR: fr-rFR, he_IL: he-rIL, ne_NP: ne-rNP, sms_FI: sms-rFI, ar_TN: ar-rTN, az_AZ: az-rAZ, de_LU: de-rLU, es_CO: es-rCO, es_NI: es-rNI, id_ID: id-rID, quz_BO: quz-rBO, sr@latin: sr-rSP, en_GB: en-rGB, es_PR: es-rPR, es_SV: es-rSV, kn_IN: kn-rIN, ar_MA: ar-rMA, bo_CN: bo-rCN, dsb_DE: dsb-rDE, ig_NG: ig-rNG, mn_CN: mn-rCN, moh_CA: moh-rCA, pa_IN: pa-rIN, ps_AF: ps-rAF, smn_FI: smn-rFI, zh_MO: zh-rMO, en@pirate: en-rpirate, gl_ES: gl-rES, th_TH: th-rTH, fr_BE: fr-rBE, nb_NO: nb-rNO, prs_AF: prs-rAF, qut_GT: qut-rGT, en_ZW: en-rZW, eu_ES: eu-rES, hsb_DE: hsb-rDE, lo_LA: lo-rLA, mk_MK: mk-rMK, sk_SK: sk-rSK, sma_SE: sma-rSE, zh_HK: zh-rHK, as_IN: as-rIN, en_MY: en-rMY, en_NZ: en-rNZ, es_GT: es-rGT, es_HN: es-rHN, hi_IN: hi-rIN, mt_MT: mt-rMT, oc_FR: oc-rFR, sa_IN: sa-rIN, tk_TM: tk-rTM, ba_RU: ba-rRU, be_BY: be-rBY, kl_GL: kl-rGL, lv_LV: lv-rLV, sah_RU: sah-rRU, yo_NG: yo-rNG, de_DE: de-rDE, es_VE: es-rVE, gd_GB: gd-rGB, ko_KR: ko-rKR, sl_SI: sl-rSI, ug_CN: ug-rCN, ar_YE: ar-rYE, en_IN: en-rIN, es_BO: es-rBO, fr_LU: fr-rLU, bn_BD: bn-rBD, bn_IN: bn-rIN, gu_IN: gu-rIN, mr_IN: mr-rIN, ar_IQ: ar-rIQ, en_CA: en-rCA, es_CR: es-rCR, es_ES: es-rES, ga_IE: ga-rIE, gsw_FR: gsw-rFR, mn_MN: mn-rMN, ru_RU: ru-rRU, sr_CS: sr-rCS, tg_TJ: tg-rTJ, bg_BG: bg-rBG, iu_CA: iu-rCA, nl_NL: nl-rNL, quz_EC: quz-rEC, sma_NO: sma-rNO, sv_FI: sv-rFI, en_IE: en-rIE, fr_CH: fr-rCH, zh_TW: zh-rTW, ar_LB: ar-rLB, br_FR: br-rFR, cs_CZ: cs-rCZ, en_BZ: en-rBZ, en_TT: en-rTT, et_EE: et-rEE, fi_FI: fi-rFI, ii_CN: ii-rCN, km_KH: km-rKH, kok_IN: kok-rIN, ml_IN: ml-rIN, se_SE: se-rSE, syr_SY: syr-rSY, af_ZA: af-rZA, en_ZA: en-rZA, es_CL: es-rCL, mi_NZ: mi-rNZ, smj_NO: smj-rNO, wo_SN: wo-rSN, ar_BH: ar-rBH, fo_FO: fo-rFO, ky_KG: ky-rKG, ms_BN: ms-rBN, nn_NO: nn-rNO, zh_SG: zh-rSG, ar_JO: ar-rJO, en_PH: en-rPH, es_DO: es-rDO, ms_MY: ms-rMY, pl_PL: pl-rPL, sr_RS: sr-rRS, zh_CN: zh-rCN, es_419: es-rUS, it_IT: it-rIT, ka_GE: ka-rGE, si_LK: si-rLK, tn_ZA: tn-rZA, de_CH: de-rCH, fil_PH: fil-rPH, sr_ME: sr-rME, sw_KE: sw-rKE, ta_IN: ta-rIN
[nextcloud.android-sms-playstore]
[o:nextcloud:p:nextcloud:r:android-sms-playstore]
file_filter = src/main/res/values-<lang>/google_playstore_strings.xml
source_file = src/main/res/values/google_playstore_strings.xml
type = ANDROID
source_lang = en
lang_map = af_ZA: af-rZA, am_ET: am-rET, ar_AE: ar-rAE, ar_BH: ar-rBH, ar_DZ: ar-rDZ, ar_EG: ar-rEG, ar_IQ: ar-rIQ, ar_JO: ar-rJO, ar_KW: ar-rKW, ar_LB: ar-rLB, ar_LY: ar-rLY, ar_MA: ar-rMA, ar_OM: ar-rOM, ar_QA: ar-rQA, ar_SA: ar-rSA, ar_SY: ar-rSY, ar_TN: ar-rTN, ar_YE: ar-rYE, arn_CL: arn-rCL, as_IN: as-rIN, az_AZ: az-rAZ, ba_RU: ba-rRU, be_BY: be-rBY, bg_BG: bg-rBG, bn_BD: bn-rBD, bn_IN: bn-rIN, bo_CN: bo-rCN, br_FR: br-rFR, bs_BA: bs-rBA, ca_ES: ca-rES, co_FR: co-rFR, cs_CZ: cs-rCZ, cy_GB: cy-rGB, da_DK: da-rDK, de_AT: de-rAT, de_CH: de-rCH, de_DE: de-rDE, de_LI: de-rLI, de_LU: de-rLU, dsb_DE: dsb-rDE, dv_MV: dv-rMV, el_GR: el-rGR, en_AU: en-rAU, en_BZ: en-rBZ, en_CA: en-rCA, en_GB: en-rGB, en_IE: en-rIE, en_IN: en-rIN, en_JM: en-rJM, en_MY: en-rMY, en_NZ: en-rNZ, en_PH: en-rPH, en_SG: en-rSG, en_TT: en-rTT, en_US: en-rUS, en_ZA: en-rZA, en_ZW: en-rZW, en@pirate: en-rpirate, es_AR: es-rAR, es_BO: es-rBO, es_CL: es-rCL, es_CO: es-rCO, es_CR: es-rCR, es_DO: es-rDO, es_EC: es-rEC, es_ES: es-rES, es_GT: es-rGT, es_HN: es-rHN, es_MX: es-rMX, es_NI: es-rNI, es_PA: es-rPA, es_PE: es-rPE, es_PR: es-rPR, es_PY: es-rPY, es_SV: es-rSV, es_US: es-rUS, es_UY: es-rUY, es_VE: es-rVE, et_EE: et-rEE, eu_ES: eu-rES, fa_IR: fa-rIR, fi_FI: fi-rFI, fil_PH: fil-rPH, fo_FO: fo-rFO, fr_BE: fr-rBE, fr_CA: fr-rCA, fr_CH: fr-rCH, fr_FR: fr-rFR, fr_LU: fr-rLU, fr_MC: fr-rMC, fy_NL: fy-rNL, ga_IE: ga-rIE, gd_GB: gd-rGB, gl_ES: gl-rES, gsw_FR: gsw-rFR, gu_IN: gu-rIN, ha_NG: ha-rNG, he_IL: he-rIL, hi_IN: hi-rIN, hr_BA: hr-rBA, hr_HR: hr-rHR, hsb_DE: hsb-rDE, hu_HU: hu-rHU, hy_AM: hy-rAM, id_ID: id-rID, ig_NG: ig-rNG, ii_CN: ii-rCN, is_IS: is-rIS, it_CH: it-rCH, it_IT: it-rIT, iu_CA: iu-rCA, ja_JP: ja-rJP, ka_GE: ka-rGE, kk_KZ: kk-rKZ, kl_GL: kl-rGL, km_KH: km-rKH, kn_IN: kn-rIN, ko_KR: ko-rKR, kok_IN: kok-rIN, ku_IQ: ku-rIQ, ky_KG: ky-rKG, lb_LU: lb-rLU, lo_LA: lo-rLA, lt_LT: lt-rLT, lv_LV: lv-rLV, mi_NZ: mi-rNZ, mk_MK: mk-rMK, ml_IN: ml-rIN, mn_CN: mn-rCN, mn_MN: mn-rMN, moh_CA: moh-rCA, mr_IN: mr-rIN, ms_BN: ms-rBN, ms_MY: ms-rMY, my_MM: my, mt_MT: mt-rMT, nb_NO: nb-rNO, ne_NP: ne-rNP, nl_BE: nl-rBE, nl_NL: nl-rNL, nn_NO: nn-rNO, nso_ZA: nso-rZA, oc_FR: oc-rFR, or_IN: or-rIN, pa_IN: pa-rIN, pl_PL: pl-rPL, prs_AF: prs-rAF, ps_AF: ps-rAF, pt_BR: pt-rBR, pt_PT: pt-rPT, qut_GT: qut-rGT, quz_BO: quz-rBO, quz_EC: quz-rEC, quz_PE: quz-rPE, rm_CH: rm-rCH, ro_RO: ro-rRO, ru_RU: ru-rRU, rw_RW: rw-rRW, sa_IN: sa-rIN, sah_RU: sah-rRU, se_FI: se-rFI, se_NO: se-rNO, se_SE: se-rSE, si_LK: si-rLK, sk_SK: sk-rSK, sl_SI: sl-rSI, sma_NO: sma-rNO, sma_SE: sma-rSE, smj_NO: smj-rNO, smj_SE: smj-rSE, smn_FI: smn-rFI, sms_FI: sms-rFI, sq_AL: sq-rAL, sr_BA: sr-rBA, sr_CS: sr-rCS, sr_ME: sr-rME, sr_RS: sr-rRS, sr@latin: sr-rSP, sv_FI: sv-rFI, sv_SE: sv-rSE, sw_KE: sw-rKE, syr_SY: syr-rSY, ta_IN: ta-rIN, ta_LK: ta-rLK, te_IN: te-rIN, tg_TJ: tg-rTJ, th_TH: th-rTH, tk_TM: tk-rTM, tn_ZA: tn-rZA, tr_TR: tr-rTR, tt_RU: tt-rRU, tzm_DZ: tzm-rDZ, ug_CN: ug-rCN, uk_UA: uk-rUA, ur_PK: ur-rPK, uz_UZ: uz-rUZ, vi_VN: vi-rVN, wo_SN: wo-rSN, xh_ZA: xh-rZA, yo_NG: yo-rNG, zh_CN: zh-rCN, zh_CN.GB2312:zh-rBG, zh_HK: zh-rHK, zh_MO: zh-rMO, zh_SG: zh-rSG, zh_TW: zh-rTW, zu_ZA: zu-rZA
type = ANDROID
lang_map = ka_GE: ka-rGE, kn_IN: kn-rIN, sr_CS: sr-rCS, tr_TR: tr-rTR, bs_BA: bs-rBA, es_VE: es-rVE, gd_GB: gd-rGB, es_BO: es-rBO, es_HN: es-rHN, es_PE: es-rPE, eu_ES: eu-rES, rw_RW: rw-rRW, de_CH: de-rCH, de_DE: de-rDE, en_GB: en-rGB, sk_SK: sk-rSK, smj_NO: smj-rNO, zu_ZA: zu-rZA, es_ES: es-rES, mn_MN: mn-rMN, sa_IN: sa-rIN, ta_LK: ta-rLK, uk_UA: uk-rUA, fil_PH: fil-rPH, hr_BA: hr-rBA, ml_IN: ml-rIN, tg_TJ: tg-rTJ, uz_UZ: uz-rUZ, ar_LY: ar-rLY, ar_YE: ar-rYE, my_MM: my, ar_KW: ar-rKW, en_ZW: en-rZW, es_PA: es-rPA, it_CH: it-rCH, ku_IQ: ku-rIQ, ar_AE: ar-rAE, ar_BH: ar-rBH, ar_DZ: ar-rDZ, prs_AF: prs-rAF, pt_BR: pt-rBR, ug_CN: ug-rCN, oc_FR: oc-rFR, sma_NO: sma-rNO, es_PY: es-rPY, ms_MY: ms-rMY, mt_MT: mt-rMT, es_CR: es-rCR, fr_BE: fr-rBE, or_IN: or-rIN, quz_EC: quz-rEC, sr@latin: sr-rSP, zh_HK: zh-rHK, ar_JO: ar-rJO, ar_MA: ar-rMA, bn_BD: bn-rBD, en_ZA: en-rZA, it_IT: it-rIT, ko_KR: ko-rKR, mk_MK: mk-rMK, bo_CN: bo-rCN, co_FR: co-rFR, dsb_DE: dsb-rDE, nl_NL: nl-rNL, sah_RU: sah-rRU, se_SE: se-rSE, zh_CN.GB2312: zh-rBG, zh_TW: zh-rTW, az_AZ: az-rAZ, cy_GB: cy-rGB, nb_NO: nb-rNO, es_UY: es-rUY, fo_FO: fo-rFO, ig_NG: ig-rNG, lo_LA: lo-rLA, mi_NZ: mi-rNZ, en_MY: en-rMY, en_TT: en-rTT, es_SV: es-rSV, nso_ZA: nso-rZA, th_TH: th-rTH, ms_BN: ms-rBN, en_SG: en-rSG, es_EC: es-rEC, id_ID: id-rID, nl_BE: nl-rBE, fr_CH: fr-rCH, hi_IN: hi-rIN, is_IS: is-rIS, en_AU: en-rAU, et_EE: et-rEE, pt_PT: pt-rPT, hy_AM: hy-rAM, lv_LV: lv-rLV, tk_TM: tk-rTM, ur_PK: ur-rPK, en_NZ: en-rNZ, es_DO: es-rDO, es_GT: es-rGT, sv_FI: sv-rFI, tzm_DZ: tzm-rDZ, vi_VN: vi-rVN, ar_OM: ar-rOM, fa_IR: fa-rIR, hu_HU: hu-rHU, de_AT: de-rAT, en_IN: en-rIN, iu_CA: iu-rCA, qut_GT: qut-rGT, smj_SE: smj-rSE, ar_SY: ar-rSY, ar_TN: ar-rTN, cs_CZ: cs-rCZ, te_IN: te-rIN, zh_MO: zh-rMO, quz_BO: quz-rBO, ta_IN: ta-rIN, zh_CN: zh-rCN, de_LI: de-rLI, en_BZ: en-rBZ, ga_IE: ga-rIE, fy_NL: fy-rNL, ha_NG: ha-rNG, kk_KZ: kk-rKZ, rm_CH: rm-rCH, ro_RO: ro-rRO, ar_SA: ar-rSA, en_PH: en-rPH, es_419: es-rUS, hr_HR: hr-rHR, pa_IN: pa-rIN, pl_PL: pl-rPL, sma_SE: sma-rSE, xh_ZA: xh-rZA, dv_MV: dv-rMV, fi_FI: fi-rFI, fr_FR: fr-rFR, zh_SG: zh-rSG, ne_NP: ne-rNP, da_DK: da-rDK, gu_IN: gu-rIN, km_KH: km-rKH, mr_IN: mr-rIN, smn_FI: smn-rFI, el_GR: el-rGR, es_CL: es-rCL, ky_KG: ky-rKG, ps_AF: ps-rAF, ru_RU: ru-rRU, sms_FI: sms-rFI, sq_AL: sq-rAL, arn_CL: arn-rCL, es_AR: es-rAR, fr_LU: fr-rLU, sr_ME: sr-rME, sr_RS: sr-rRS, sw_KE: sw-rKE, yo_NG: yo-rNG, be_BY: be-rBY, es_MX: es-rMX, es_NI: es-rNI, ii_CN: ii-rCN, si_LK: si-rLK, sl_SI: sl-rSI, tn_ZA: tn-rZA, ar_EG: ar-rEG, ar_IQ: ar-rIQ, fr_MC: fr-rMC, moh_CA: moh-rCA, se_NO: se-rNO, en_CA: en-rCA, fr_CA: fr-rCA, kl_GL: kl-rGL, en_IE: en-rIE, en_JM: en-rJM, gl_ES: gl-rES, hsb_DE: hsb-rDE, lb_LU: lb-rLU, af_ZA: af-rZA, ba_RU: ba-rRU, bn_IN: bn-rIN, sv_SE: sv-rSE, wo_SN: wo-rSN, es_CO: es-rCO, br_FR: br-rFR, he_IL: he-rIL, ja_JP: ja-rJP, lt_LT: lt-rLT, tt_RU: tt-rRU, ar_LB: ar-rLB, ar_QA: ar-rQA, as_IN: as-rIN, de_LU: de-rLU, es_PR: es-rPR, gsw_FR: gsw-rFR, kok_IN: kok-rIN, mn_CN: mn-rCN, am_ET: am-rET, bg_BG: bg-rBG, ca_ES: ca-rES, quz_PE: quz-rPE, se_FI: se-rFI, sr_BA: sr-rBA, syr_SY: syr-rSY, en_US: en-rUS, en@pirate: en-rpirate, nn_NO: nn-rNO

20
PRIVACY_POLICY.md Normal file
View File

@ -0,0 +1,20 @@
# Overview
Nextcloud SMS is a free software developed by its contributors. This privacy policy
is intended to inform you about data gathered by this application."
# Information we collect
Only SMS and call log are collected by the application.
# Where information is sent.
Information is neither sent to Nextcloud team servers nor Nextcloud SMS team servers nor
any government nor another entity you don't want.
When you configure a Nextcloud account in the application, you agree with the Nextcloud
instance owner that your SMS and call log data will be stored in his infrastructure
under his responsibility.
We __don't__ recommend to use a public or a company Nextcloud instance account. Your privacy
must be under your control on your own Nextcloud instance.

View File

@ -1,17 +1,18 @@
# Nextcloud SMS (Android)
[![codebeat badge](https://codebeat.co/badges/df05cef7-6724-4a2f-b170-96ed1ab793f6)](https://codebeat.co/projects/github-com-nerzhul-owncloud-sms-app-master)
Nextcloud SMS app pushes your Android devices conversation into your Nextcloud instance, using [ocsms app](https://github.com/nerzhul/ocsms).
## :arrow_forward: Access
[![Download from Google Play](http://www.android.com/images/brand/android_app_on_play_large.png)](https://play.google.com/store/apps/details?id=fr.unix_experience.owncloud_sms)
[![Nextcloud Notes App on fdroid.org](https://camo.githubusercontent.com/7df0eafa4433fa4919a56f87c3d99cf81b68d01c/68747470733a2f2f662d64726f69642e6f72672f77696b692f696d616765732f632f63342f462d44726f69642d627574746f6e5f617661696c61626c652d6f6e2e706e67)](https://f-droid.org/repository/browse/?fdid=fr.unix_experience.owncloud_sms)
ocsms app sources are available here: https://github.com/nerzhul/ocsms/
ocsms app sources are available here: https://github.com/nextcloud/ocsms
## :notebook: Application documentation
You can find the application documentation here: https://github.com/nerzhul/ownCloud-SMS-App/wiki
You can find the application documentation here: https://github.com/nerzhul/ncsms-android/wiki
## :link: Requirements
- [Nextcloud](https://nextcloud.com/) instance running
@ -19,13 +20,14 @@ You can find the application documentation here: https://github.com/nerzhul/ownC
## :exclamation: Reporting issues
- **Client:** https://github.com/nerzhul/ownCloud-SMS-App/issues
- **Client:** https://github.com/nerzhul/ncsms-android/issues
- **Server:** https://github.com/nextcloud/ocsms/issues
## :rocket: Contributions
- We are searching for **translations** into others languages. To contribute please download `res/values/strings.xml` and `res/values/google_playstore_strings.xml` and provide a Pull Request with a translated version!
- You can also contribute by adding **patches** in Java code or cleanups.
- Application uses a [GoMobile AAR](https://gitlab.com/nerzhul/ncsmsgo) to have the best performance on phones with modern technologies like HTTP/2.0
### Build requirements
- gradle

View File

@ -2,17 +2,25 @@ buildscript {
repositories {
mavenCentral()
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.1'
classpath 'com.android.tools.build:gradle:3.2.1'
}
}
allprojects {
repositories {
jcenter()
google()
}
}
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
compileSdkVersion 28
buildToolsVersion "28.0.3"
lintOptions {
abortOnError false
@ -20,9 +28,17 @@ android {
defaultConfig {
applicationId "fr.unix_experience.owncloud_sms"
versionCode 70
versionName "2.0.6"
minSdkVersion 16
targetSdkVersion 25
maxSdkVersion 25
targetSdkVersion 28
maxSdkVersion 28
ndk {
// Specifies the ABI configurations of your native
// libraries Gradle should build and package with your APK.
abiFilters 'x86', 'x86_64', 'armeabi', 'armeabi-v7a',
'arm64-v8a', 'mips', 'mips64'
}
}
buildTypes {
@ -41,14 +57,15 @@ repositories {
url "https://jitpack.io"
}
mavenCentral()
google()
}
dependencies {
compile 'commons-httpclient:commons-httpclient:3.1'
compile 'com.android.support:support-v13:25.3.1'
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:design:25.3.1'
compile 'in.srain.cube:ultra-ptr:1.0.11'
compile 'com.github.dmytrodanylyk.android-process-button:library:1.0.4'
compile 'com.android.support:support-v4:25.3.1'
implementation 'com.android.support:support-v13:28.0.0'
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'
implementation 'in.srain.cube:ultra-ptr:1.0.11'
implementation 'com.github.dmytrodanylyk.android-process-button:library:1.0.4'
implementation 'com.android.support:support-v4:28.0.0'
implementation project(':ncsmsgo')
}

View File

@ -1,6 +1,6 @@
#Sat Aug 27 20:10:09 CEST 2016
#Sat Dec 22 18:14:31 CET 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip

2
ncsmsgo/build.gradle Normal file
View File

@ -0,0 +1,2 @@
configurations.maybeCreate("default")
artifacts.add("default", file('ncsmsgo.aar'))

BIN
ncsmsgo/ncsmsgo.aar Normal file

Binary file not shown.

25
ncsmsgo/ncsmsgo.iml Normal file
View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<module external.linked.project.id=":ncsmsgo" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="android-gradle" name="Android-Gradle">
<configuration>
<option name="GRADLE_PROJECT_PATH" value=":ncsmsgo" />
</configuration>
</facet>
<facet type="java-gradle" name="Java-Gradle">
<configuration>
<option name="BUILD_FOLDER_PATH" value="$MODULE_DIR$/build" />
<option name="BUILDABLE" value="false" />
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.gradle" />
<excludeFolder url="file://$MODULE_DIR$/build" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

BIN
screenshots/login.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
screenshots/settings.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

BIN
screenshots/settings2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

1
settings.gradle Normal file
View File

@ -0,0 +1 @@
include ':ncsmsgo'

View File

@ -1,43 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest package="fr.unix_experience.owncloud_sms"
xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="49"
android:versionName="1.0.1"> <!-- From Android 4.1 to O -->
<uses-sdk android:maxSdkVersion="26"/>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="fr.unix_experience.owncloud_sms"> <!-- From Android 4.1 to O -->
<uses-sdk android:maxSdkVersion="26" />
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />
<!-- For SMS Restore & Sending -->
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.SEND_SMS" />
<!-- For SMS Broadcaster -->
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- For syncer -->
<uses-permission android:name="android.permission.READ_SYNC_STATS"/>
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/>
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.READ_SYNC_STATS" />
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<!-- For account management -->
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"/>
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
<uses-permission android:name="android.permission.USE_CREDENTIALS"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<!-- For backup restauration -->
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:theme="@style/OcSmsTheme">
<!-- Related to periodic sync -->
@ -46,55 +46,59 @@
android:exported="true"
android:process=":sync">
<intent-filter>
<action android:name="android.content.SyncAdapter"/>
<action android:name="android.content.SyncAdapter" />
</intent-filter>
<meta-data
android:name="android.content.SyncAdapter"
android:resource="@xml/sync_adapter"/>
android:resource="@xml/sync_adapter" />
</service>
<provider
android:name=".providers.SmsDataProvider"
android:authorities="@string/account_authority"
android:label="@string/pref_title_sync">
</provider>
android:label="@string/pref_title_sync"></provider>
<!-- Related to Login -->
<service android:name=".authenticators.OwnCloudAuthenticatorService">
<intent-filter>
<action android:name="android.accounts.AccountAuthenticator"/>
<action android:name="android.accounts.AccountAuthenticator" />
</intent-filter>
<meta-data
android:name="android.accounts.AccountAuthenticator"
android:resource="@xml/owncloud_account_authenticator"/>
android:resource="@xml/owncloud_account_authenticator" />
</service>
<receiver android:name=".broadcast_receivers.IncomingSms"
android:permission="android.permission.BROADCAST_SMS">
<receiver
android:name=".broadcast_receivers.IncomingSms"
android:permission="android.permission.BROADCAST_SMS">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
<action android:name="android.provider.Telephony.SMS_DELIVER" />
</intent-filter>
</receiver>
<!-- BroadcastReceiver that listens for incoming MMS messages. Note: useless class, used only for restoring SMS -->
<receiver android:name=".misc.MmsReceiver"
android:permission="android.permission.BROADCAST_WAP_PUSH">
<receiver
android:name=".misc.MmsReceiver"
android:permission="android.permission.BROADCAST_WAP_PUSH">
<intent-filter>
<action android:name="android.provider.Telephony.WAP_PUSH_DELIVER" />
<data android:mimeType="application/vnd.wap.mms-message" />
</intent-filter>
</receiver>
<!-- Activity that allows the user to send new SMS/MMS messages Note: useless class, used only for restoring SMS -->
<activity android:name=".misc.ComposeSmsActivity" >
<activity android:name=".misc.ComposeSmsActivity">
<intent-filter>
<action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.SENDTO" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="sms" />
<data android:scheme="smsto" />
<data android:scheme="mms" />
@ -103,12 +107,15 @@
</activity>
<!-- Service that delivers messages from the phone "quick response" Note: useless class, used only for restoring SMS -->
<service android:name=".misc.HeadlessSmsSendService"
android:permission="android.permission.SEND_RESPOND_VIA_MESSAGE"
android:exported="true" >
<service
android:name=".misc.HeadlessSmsSendService"
android:exported="true"
android:permission="android.permission.SEND_RESPOND_VIA_MESSAGE">
<intent-filter>
<action android:name="android.intent.action.RESPOND_VIA_MESSAGE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="sms" />
<data android:scheme="smsto" />
<data android:scheme="mms" />
@ -118,45 +125,43 @@
<receiver android:name=".broadcast_receivers.ConnectivityChanged">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
<activity
android:name=".activities.LoginActivity"
android:label="@string/title_activity_login"
android:theme="@style/OcSmsTheme.Login">
</activity>
android:theme="@style/OcSmsTheme.Login"></activity>
<activity
android:name=".activities.remote_account.AccountListActivity"
android:label="@string/title_activity_select_account">
</activity>
android:label="@string/title_activity_select_account"></activity>
<activity
android:name=".activities.OCSMSSettingsActivity"
android:label="@string/title_activity_general_settings">
</activity>
android:label="@string/title_activity_general_settings"></activity>
<activity
android:name=".activities.MainActivity"
android:label="@string/app_name"
android:theme="@style/OcSmsTheme.Drawer">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".activities.remote_account.ContactListActivity"
android:label="@string/title_activity_select_contact">
</activity>
android:label="@string/title_activity_select_contact"></activity>
<activity
android:name=".activities.remote_account.AccountActionsActivity"
android:label="@string/account_actions">
</activity>
android:label="@string/account_actions"></activity>
<activity
android:name=".activities.remote_account.RestoreMessagesActivity"
android:label="@string/restore_all_messages">
</activity>
android:label="@string/restore_all_messages"></activity>
<activity
android:name=".activities.PrivacyPolicyActivity"
android:label="@string/action_appinfo_privacy_policy"
android:theme="@style/OcSmsTheme.NoActionBar"></activity>
</application>
</manifest>

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

View File

@ -208,7 +208,7 @@ public class AppCompatListActivity extends AppCompatActivity {
super.onContentChanged();
View emptyView = findViewById(R.id.empty);
mList = (ListView)findViewById(R.id.list);
mList = findViewById(R.id.list);
if (mList == null) {
throw new RuntimeException(
"Your content must have a ListView whose id attribute is " +

View File

@ -24,7 +24,6 @@ import android.animation.AnimatorListenerAdapter;
import android.annotation.TargetApi;
import android.content.ContentResolver;
import android.content.Intent;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
@ -33,6 +32,7 @@ import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.util.Log;
import android.util.Pair;
import android.view.KeyEvent;
import android.view.MenuItem;
import android.view.View;
@ -44,19 +44,22 @@ import android.widget.TextView;
import com.dd.processbutton.iml.ActionProcessButton;
import org.apache.commons.httpclient.methods.GetMethod;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import fr.unix_experience.owncloud_sms.R;
import fr.unix_experience.owncloud_sms.defines.DefaultPrefs;
import fr.unix_experience.owncloud_sms.engine.OCHttpClient;
import fr.unix_experience.owncloud_sms.exceptions.OCSyncException;
/**
* A login screen that offers login via email/password.
*/
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public class LoginActivity extends AppCompatActivity {
private static final String TAG = LoginActivity.class.getCanonicalName();
/**
* Keep track of the login task to ensure we can cancel it if requested.
*/
@ -80,11 +83,11 @@ public class LoginActivity extends AppCompatActivity {
actionBar.setDisplayHomeAsUpEnabled(true);
// Set up the login form.
_protocolView = (Spinner) findViewById(R.id.oc_protocol);
_serverView = (EditText) findViewById(R.id.oc_server);
_loginView = (EditText) findViewById(R.id.oc_login);
_protocolView = findViewById(R.id.oc_protocol);
_serverView = findViewById(R.id.oc_server);
_loginView = findViewById(R.id.oc_login);
_passwordView = (EditText) findViewById(R.id.oc_password);
_passwordView = findViewById(R.id.oc_password);
_passwordView
.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
@ -98,7 +101,7 @@ public class LoginActivity extends AppCompatActivity {
}
});
_signInButton = (ActionProcessButton) findViewById(R.id.oc_signin_button);
_signInButton = findViewById(R.id.oc_signin_button);
_signInButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
@ -192,8 +195,12 @@ public class LoginActivity extends AppCompatActivity {
_signInButton.setProgress(25);
showProgress(true);
String serverURL = protocol + serverAddr;
mAuthTask = new UserLoginTask(serverURL, login, password);
mAuthTask.execute((Void) null);
try {
mAuthTask = new UserLoginTask(serverURL, login, password);
mAuthTask.execute((Void) null);
} catch (MalformedURLException e) {
Log.e(TAG, "Invalid server URL " + serverURL);
}
}
}
@ -249,32 +256,30 @@ public class LoginActivity extends AppCompatActivity {
*/
public class UserLoginTask extends AsyncTask<Void, Void, Boolean> {
UserLoginTask(String serverURI, String login, String password) {
Log.i(TAG, "_serverURI = " + serverURI);
_serverURI = Uri.parse(serverURI);
UserLoginTask(String serverURL, String login, String password) throws MalformedURLException {
_serverURL = new URL(serverURL);
Log.i(TAG, "_serverURL = " + serverURL);
_login = login;
_password = password;
_last_http_error = null;
}
@Override
protected Boolean doInBackground(Void... params) {
_returnCode = 0;
OCHttpClient http = new OCHttpClient(getBaseContext(), _serverURI, _login, _password);
GetMethod testMethod = null;
OCHttpClient http = new OCHttpClient(getBaseContext(), _serverURL, _login, _password);
try {
testMethod = http.getVersion();
_returnCode = http.execute(testMethod);
Pair<Integer, Integer> vPair = http.getVersion();
_returnCode = vPair.first;
} catch (IllegalArgumentException e) {
Log.w(TAG, "Failed to getVersion, IllegalArgumentException occured: " + e.getMessage());
_returnCode = 597;
} catch (IOException e) {
Log.w(TAG, "Failed to login, IOException occured: " + e.getMessage());
} catch (OCSyncException e) {
Log.w(TAG, "Failed to login, OCSyncException occured: " + e.getMessage());
_returnCode = 599;
}
if (testMethod != null)
testMethod.releaseConnection();
_last_http_error = http.getLastError();
return (_returnCode == 200);
}
@ -292,13 +297,13 @@ public class LoginActivity extends AppCompatActivity {
}
// Generate a label
String accountLabel = _login + "@" + _serverURI.getHost();
String accountLabel = _login + "@" + _serverURL.getHost();
// We create the account
Account account = new Account(accountLabel, accountType);
Bundle accountBundle = new Bundle();
accountBundle.putString("ocLogin", _login);
accountBundle.putString("ocURI", _serverURI.toString());
accountBundle.putString("ocURI", _serverURL.toString());
// And we push it to Android
AccountManager accMgr = AccountManager.get(getApplicationContext());
@ -322,7 +327,12 @@ public class LoginActivity extends AppCompatActivity {
boolean serverViewRequestFocus = true;
switch (_returnCode) {
case 0:
_serverView.setError("UNK");
if (!_last_http_error.isEmpty()) {
_serverView.setError("Low level error: " + _last_http_error);
}
else {
_serverView.setError("Unknown error");
}
break;
case 404:
_serverView.setError(getString(R.string.error_connection_failed_not_found));
@ -365,9 +375,10 @@ public class LoginActivity extends AppCompatActivity {
showProgress(false);
}
private final Uri _serverURI;
private final URL _serverURL;
private final String _login;
private final String _password;
private String _last_http_error;
private int _returnCode;
static final String PARAM_AUTHTOKEN_TYPE = "auth.token";

View File

@ -44,16 +44,11 @@ import android.view.MenuItem;
import android.view.Window;
import android.widget.Toast;
import org.json.JSONArray;
import fr.unix_experience.owncloud_sms.R;
import fr.unix_experience.owncloud_sms.activities.remote_account.AccountListActivity;
import fr.unix_experience.owncloud_sms.engine.ASyncSMSSync.SyncTask;
import fr.unix_experience.owncloud_sms.engine.AndroidSmsFetcher;
import fr.unix_experience.owncloud_sms.engine.ConnectivityMonitor;
import fr.unix_experience.owncloud_sms.enums.OCSMSNotificationType;
import fr.unix_experience.owncloud_sms.enums.PermissionID;
import fr.unix_experience.owncloud_sms.notifications.OCSMSNotificationUI;
import fr.unix_experience.owncloud_sms.prefs.PermissionChecker;
import static fr.unix_experience.owncloud_sms.enums.PermissionID.REQUEST_MAX;
@ -78,10 +73,12 @@ public class MainActivity extends AppCompatActivity
setContentView(R.layout.activity_main);
setupToolbar();
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
if (getSupportActionBar() != null) {
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer = findViewById(R.id.drawer_layout);
setupDrawer();
drawer.openDrawer(GravityCompat.START);
}
@ -98,7 +95,7 @@ public class MainActivity extends AppCompatActivity
toggle.syncState();
toggle.setDrawerIndicatorEnabled(true);
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
NavigationView navigationView = findViewById(R.id.nav_view);
assert navigationView != null;
navigationView.setNavigationItemSelectedListener(this);
}
@ -158,7 +155,7 @@ public class MainActivity extends AppCompatActivity
}
@Override
public boolean onNavigationItemSelected(MenuItem item) {
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
int id = item.getItemId();
boolean res = true;
@ -181,6 +178,11 @@ public class MainActivity extends AppCompatActivity
case R.id.nav_appinfo_perms:
res = openAppInfos();
break;
case R.id.nav_appinfo_privacy_policy:
res = openPrivacyPolicy();
break;
default:
Log.e(TAG, "Unhandled navigation item " + Integer.toString(id));
}
closeDrawer();
return res;
@ -204,21 +206,13 @@ public class MainActivity extends AppCompatActivity
}
Context ctx = getApplicationContext();
if (_ConnectivityMonitor.isValid()) {
// Now fetch messages since last stored date
JSONArray smsList = new JSONArray();
new AndroidSmsFetcher(ctx).bufferMessagesSinceDate(smsList, (long) 0);
if (smsList.length() > 0) {
OCSMSNotificationUI.notify(ctx, ctx.getString(R.string.sync_title),
ctx.getString(R.string.sync_inprogress), OCSMSNotificationType.SYNC.ordinal());
new SyncTask(getApplicationContext(), smsList).execute();
} else {
Toast.makeText(ctx, ctx.getString(R.string.nothing_to_sync), Toast.LENGTH_SHORT).show();
}
} else {
if (!_ConnectivityMonitor.isValid()) {
Toast.makeText(ctx, ctx.getString(R.string.err_sync_no_connection_available), Toast.LENGTH_SHORT).show();
Log.v(MainActivity.TAG, "Finish syncAllMessages(): invalid connection");
return;
}
new SyncTask(this).execute();
Log.v(MainActivity.TAG, "Finish syncAllMessages()");
}
@ -231,7 +225,7 @@ public class MainActivity extends AppCompatActivity
Intent intent;
try {
intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + getPackageName()));
} catch (android.content.ActivityNotFoundException anfe) {
} catch (android.content.ActivityNotFoundException e) {
intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + getPackageName()));
}
@ -248,6 +242,11 @@ public class MainActivity extends AppCompatActivity
return true;
}
private boolean openPrivacyPolicy() {
startActivity(new Intent(this, PrivacyPolicyActivity.class));
return true;
}
/*
* Permissions
*/

View File

@ -1,7 +1,7 @@
package fr.unix_experience.owncloud_sms.activities;
/*
* Copyright (c) 2014-2015, Loic Blot <loic.blot@unix-experience.fr>
* Copyright (c) 2014-2017, Loic Blot <loic.blot@unix-experience.fr>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
@ -27,9 +27,11 @@ import android.preference.ListPreference;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatDelegate;
import android.util.Log;
import android.util.Pair;
import android.view.MenuItem;
import java.util.List;
import java.util.Vector;
import fr.unix_experience.owncloud_sms.R;
import fr.unix_experience.owncloud_sms.activities.virtual.VirtualSettingsActivity;
@ -45,6 +47,7 @@ public class OCSMSSettingsActivity extends VirtualSettingsActivity {
private static AccountManager _accountMgr;
private static String _accountAuthority;
private static String _accountType;
private static Vector<Pair<Integer, Boolean>> _boolSettings;
private AppCompatDelegate mDelegate;
@ -76,18 +79,30 @@ public class OCSMSSettingsActivity extends VirtualSettingsActivity {
VirtualSettingsActivity._prefsRessourceFile = R.xml.pref_data_sync;
// Bind our boolean preferences
VirtualSettingsActivity._boolPrefs.add(new BindObjectPref("push_on_receive", DefaultPrefs.pushOnReceive));
VirtualSettingsActivity._boolPrefs.add(new BindObjectPref("sync_wifi", DefaultPrefs.syncWifi));
VirtualSettingsActivity._boolPrefs.add(new BindObjectPref("sync_4g", DefaultPrefs.sync4G));
VirtualSettingsActivity._boolPrefs.add(new BindObjectPref("sync_3g", DefaultPrefs.sync3G));
VirtualSettingsActivity._boolPrefs.add(new BindObjectPref("sync_gprs", DefaultPrefs.syncGPRS));
VirtualSettingsActivity._boolPrefs.add(new BindObjectPref("sync_2g", DefaultPrefs.sync2G));
VirtualSettingsActivity._boolPrefs.add(new BindObjectPref("sync_others", DefaultPrefs.syncOthers));
VirtualSettingsActivity._boolPrefs.add(
new BindObjectPref(R.string.setting_push_on_receive, DefaultPrefs.pushOnReceive));
VirtualSettingsActivity._boolPrefs.add(
new BindObjectPref(R.string.setting_show_sync_notifications, DefaultPrefs.showSyncNotifications));
VirtualSettingsActivity._boolPrefs.add(
new BindObjectPref(R.string.setting_sync_wifi, DefaultPrefs.syncWifi));
VirtualSettingsActivity._boolPrefs.add(
new BindObjectPref(R.string.setting_sync_4g, DefaultPrefs.sync4G));
VirtualSettingsActivity._boolPrefs.add(
new BindObjectPref(R.string.setting_sync_3g, DefaultPrefs.sync3G));
VirtualSettingsActivity._boolPrefs.add(
new BindObjectPref(R.string.setting_sync_gprs, DefaultPrefs.syncGPRS));
VirtualSettingsActivity._boolPrefs.add(
new BindObjectPref(R.string.setting_sync_2g, DefaultPrefs.sync2G));
VirtualSettingsActivity._boolPrefs.add(
new BindObjectPref(R.string.setting_sync_others, DefaultPrefs.syncOthers));
// Bind our string preferences
VirtualSettingsActivity._stringPrefs.add(new BindObjectPref("sync_frequency", "15"));
VirtualSettingsActivity._stringPrefs.add(new BindObjectPref("sync_bulk_messages", "-1"));
VirtualSettingsActivity._stringPrefs.add(new BindObjectPref("minimum_sync_chars", "1"));
VirtualSettingsActivity._stringPrefs.add(
new BindObjectPref(R.string.setting_sync_frequency, "15"));
VirtualSettingsActivity._stringPrefs.add(
new BindObjectPref(R.string.setting_sync_bulk_messages, "-1"));
VirtualSettingsActivity._stringPrefs.add(
new BindObjectPref(R.string.setting_minimum_sync_chars, "1"));
// Must be at the end, after preference bind
super.onPostCreate(savedInstanceState);
@ -95,7 +110,7 @@ public class OCSMSSettingsActivity extends VirtualSettingsActivity {
protected void handleCheckboxPreference(String key, Boolean value) {
// Network types allowed for sync
if ("push_on_receive".equals(key) ||
if ("push_on_receive".equals(key) || "show_sync_notifications".equals(key) ||
"sync_wifi".equals(key) || "sync_2g".equals(key) ||
"sync_3g".equals(key) || "sync_gprs".equals(key) ||
"sync_4g".equals(key) || "sync_others".equals(key)) {
@ -113,9 +128,7 @@ public class OCSMSSettingsActivity extends VirtualSettingsActivity {
int index = preference.findIndexOfValue(value);
// Set the summary to reflect the new value.
preference
.setSummary((index >= 0) ? preference.getEntries()[index]
: null);
preference.setSummary((index >= 0) ? preference.getEntries()[index] : null);
Log.i(OCSMSSettingsActivity.TAG, "Modifying listPreference " + key);

View File

@ -0,0 +1,21 @@
package fr.unix_experience.owncloud_sms.activities;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import fr.unix_experience.owncloud_sms.R;
public class PrivacyPolicyActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_privacy_policy);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
}
}

View File

@ -49,41 +49,78 @@ public class ContactListActivity extends AppCompatActivity implements ASyncConta
assert getIntent().getExtras() != null;
String accountName = getIntent().getExtras().getString("account");
// accountName cannot be null, devel error
assert accountName != null;
ContactListActivity.mAccountMgr = AccountManager.get(getBaseContext());
Account[] myAccountList =
ContactListActivity.mAccountMgr.getAccountsByType(getString(R.string.account_type));
// Init view
mObjects = new ArrayList<>();
setContentView(R.layout.restore_activity_contactlist);
mLayout = (SwipeRefreshLayout) findViewById(R.id.contactlist_swipe_container);
mLayout = findViewById(R.id.contactlist_swipe_container);
mAdapter = new ContactListAdapter(getBaseContext(), mObjects);
final Spinner sp = (Spinner) findViewById(R.id.contact_spinner);
mContactInfos = (LinearLayout) findViewById(R.id.contactinfos_layout);
final ProgressBar contactProgressBar = (ProgressBar) findViewById(R.id.contactlist_pgbar);
ListView contactPhoneListView = (ListView) findViewById(R.id.contact_phonelistView);
mContactInfos = findViewById(R.id.contactinfos_layout);
ListView contactPhoneListView = findViewById(R.id.contact_phonelistView);
mContactPhoneListAdapter = new RecoveryPhoneNumberListViewAdapter(getBaseContext());
assert contactPhoneListView != null;
contactPhoneListView.setAdapter(mContactPhoneListAdapter);
mContactInfos.setVisibility(View.INVISIBLE);
assert sp != null;
sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
initSpinner();
createAccountList();
}
private void createAccountList() {
final ProgressBar contactProgressBar = findViewById(R.id.contactlist_pgbar);
assert contactProgressBar != null;
String accountName = getIntent().getExtras().getString("account");
assert accountName != null;
Account[] myAccountList =
ContactListActivity.mAccountMgr.getAccountsByType(getString(R.string.account_type));
for (final Account element : myAccountList) {
if (element.name.equals(accountName)) {
// Load "contacts"
contactProgressBar.setVisibility(View.VISIBLE);
new ContactLoadTask(element, getBaseContext(), mAdapter, mObjects, mLayout,
contactProgressBar, mContactInfos).execute();
// Add refresh handler
mLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
mLayout.setRefreshing(true);
mContactInfos.setVisibility(View.INVISIBLE);
contactProgressBar.setVisibility(View.VISIBLE);
(new Handler()).post(new Runnable() {
@Override
public void run() {
mObjects.clear();
mAdapter.notifyDataSetChanged();
new ContactLoadTask(element, getBaseContext(), mAdapter, mObjects,
mLayout, contactProgressBar, mContactInfos).execute();
}
});
}
});
return;
}
}
}
private void initSpinner() {
final Spinner sp = findViewById(R.id.contact_spinner);
assert sp != null;
sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
mContactInfos.setVisibility(View.INVISIBLE);
mContactPhoneListAdapter.clear();
mContactPhoneListAdapter.clear();
mFetchedContact = sp.getSelectedItem().toString();
mFetchedContact = sp.getSelectedItem().toString();
fetchContact(mFetchedContact);
}
@ -95,37 +132,9 @@ public class ContactListActivity extends AppCompatActivity implements ASyncConta
});
sp.setAdapter(mAdapter);
for (final Account element : myAccountList) {
if (element.name.equals(accountName)) {
// Load "contacts"
assert contactProgressBar != null;
contactProgressBar.setVisibility(View.VISIBLE);
new ContactLoadTask(element, getBaseContext(), mAdapter, mObjects, mLayout, contactProgressBar, mContactInfos).execute();
// Add refresh handler
mLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
mLayout.setRefreshing(true);
mContactInfos.setVisibility(View.INVISIBLE);
contactProgressBar.setVisibility(View.VISIBLE);
(new Handler()).post(new Runnable() {
@Override
public void run() {
mObjects.clear();
mAdapter.notifyDataSetChanged();
new ContactLoadTask(element, getBaseContext(), mAdapter, mObjects, mLayout, contactProgressBar, mContactInfos).execute();
}
});
}
});
return;
}
}
}
private void fetchContact(String name) {
private void fetchContact(String name) {
if (!PermissionChecker.checkPermission(this, Manifest.permission.READ_CONTACTS,
REQUEST_CONTACTS)) {
return;

View File

@ -73,9 +73,9 @@ public class RestoreMessagesActivity extends AppCompatActivity {
}
initInterface();
Button fix_button = (Button) findViewById(R.id.button_fix_permissions);
final Button launch_restore = (Button) findViewById(R.id.button_launch_restore);
final ProgressBar pb = (ProgressBar) findViewById(R.id.progressbar_restore);
Button fix_button = findViewById(R.id.button_fix_permissions);
final Button launch_restore = findViewById(R.id.button_launch_restore);
final ProgressBar pb = findViewById(R.id.progressbar_restore);
final RestoreMessagesActivity me = this;
fix_button.setOnClickListener(new View.OnClickListener() {
@ -130,13 +130,13 @@ public class RestoreMessagesActivity extends AppCompatActivity {
}
private void initInterface() {
TextView tv_error = (TextView) findViewById(R.id.tv_error_default_smsapp);
TextView tv_error = findViewById(R.id.tv_error_default_smsapp);
tv_error.setText(R.string.error_make_default_sms_app);
findViewById(R.id.tv_restore_finished).setVisibility(View.INVISIBLE);
findViewById(R.id.tv_progress_value).setVisibility(View.INVISIBLE);
Button fix_button = (Button) findViewById(R.id.button_fix_permissions);
Button launch_restore = (Button) findViewById(R.id.button_launch_restore);
ProgressBar pb = (ProgressBar) findViewById(R.id.progressbar_restore);
Button fix_button = findViewById(R.id.button_fix_permissions);
Button launch_restore = findViewById(R.id.button_launch_restore);
ProgressBar pb = findViewById(R.id.progressbar_restore);
pb.setVisibility(View.INVISIBLE);
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.KITKAT) {
@ -158,10 +158,10 @@ public class RestoreMessagesActivity extends AppCompatActivity {
}
private void errorNotification(int err) {
TextView tv = (TextView) findViewById(R.id.tv_error_default_smsapp);
Button fix_button = (Button) findViewById(R.id.button_fix_permissions);
Button launch_restore = (Button) findViewById(R.id.button_launch_restore);
ProgressBar pb = (ProgressBar) findViewById(R.id.progressbar_restore);
TextView tv = findViewById(R.id.tv_error_default_smsapp);
Button fix_button = findViewById(R.id.button_fix_permissions);
Button launch_restore = findViewById(R.id.button_launch_restore);
ProgressBar pb = findViewById(R.id.progressbar_restore);
tv.setText(err);
tv.setVisibility(View.VISIBLE);
fix_button.setVisibility(View.INVISIBLE);
@ -182,9 +182,9 @@ public class RestoreMessagesActivity extends AppCompatActivity {
switch (requestCode) {
case RestoreMessagesActivity.REQUEST_DEFAULT_SMSAPP:
if (resultCode == Activity.RESULT_OK) {
TextView tv = (TextView) findViewById(R.id.tv_error_default_smsapp);
Button fix_button = (Button) findViewById(R.id.button_fix_permissions);
Button launch_restore = (Button) findViewById(R.id.button_launch_restore);
TextView tv = findViewById(R.id.tv_error_default_smsapp);
Button fix_button = findViewById(R.id.button_fix_permissions);
Button launch_restore = findViewById(R.id.button_launch_restore);
tv.setVisibility(View.INVISIBLE);
fix_button.setVisibility(View.INVISIBLE);
launch_restore.setVisibility(View.VISIBLE);
@ -225,7 +225,7 @@ public class RestoreMessagesActivity extends AppCompatActivity {
}
public void onProgressUpdate(Integer value) {
TextView tv_progress = (TextView) findViewById(R.id.tv_progress_value);
TextView tv_progress = findViewById(R.id.tv_progress_value);
if (tv_progress.getVisibility() == View.INVISIBLE) {
tv_progress.setVisibility(View.VISIBLE);
}

View File

@ -177,9 +177,9 @@ public class VirtualSettingsActivity extends PreferenceActivity {
// The preference object, it's only a key value pair
protected class BindObjectPref {
public String name;
public Object value;
public BindObjectPref(String prefName, Object prefVal) {
name = prefName;
Object value;
public BindObjectPref(int resId, Object prefVal) {
name = getString(resId);
value = prefVal;
}
}

View File

@ -43,7 +43,7 @@ public class AndroidAccountAdapter extends ArrayAdapter<Account> {
final Account account = _accounts.get(position);
if (account != null) {
TextView label = (TextView) v.findViewById(AndroidAccountAdapter._accountFieldId);
TextView label = v.findViewById(AndroidAccountAdapter._accountFieldId);
if (label != null) {
label.setText(account.name + " >");
v.setOnClickListener(new OnClickListener() {

View File

@ -39,7 +39,7 @@ public class ContactListAdapter extends ArrayAdapter<String> {
String element = _objects.get(position);
if (element != null) {
TextView label = (TextView) v.findViewById(ContactListAdapter._fieldId);
TextView label = v.findViewById(ContactListAdapter._fieldId);
if (label != null) {
label.setText(element);
}

View File

@ -30,7 +30,7 @@ public class RecoveryPhoneNumberListViewAdapter extends ArrayAdapter<String> {
v = inflater.inflate(RecoveryPhoneNumberListViewAdapter._itemLayout, null);
}
TextView label = (TextView) v.findViewById(RecoveryPhoneNumberListViewAdapter._fieldId);
TextView label = v.findViewById(RecoveryPhoneNumberListViewAdapter._fieldId);
if (label != null) {
final String l = getItem(position).toString();
label.setText(getItem(position).toString());

View File

@ -25,8 +25,6 @@ import android.content.Context;
import android.content.Intent;
import android.util.Log;
import org.json.JSONArray;
import java.util.concurrent.atomic.AtomicReference;
import fr.unix_experience.owncloud_sms.R;
@ -36,6 +34,7 @@ import fr.unix_experience.owncloud_sms.engine.ConnectivityMonitor;
import fr.unix_experience.owncloud_sms.enums.PermissionID;
import fr.unix_experience.owncloud_sms.prefs.OCSMSSharedPrefs;
import fr.unix_experience.owncloud_sms.prefs.PermissionChecker;
import ncsmsgo.SmsBuffer;
public class ConnectivityChanged extends BroadcastReceiver implements ASyncSMSSync {
@ -82,14 +81,14 @@ public class ConnectivityChanged extends BroadcastReceiver implements ASyncSMSSy
Log.i(ConnectivityChanged.TAG,"Synced Last:" + lastMessageSynced);
// Now fetch messages since last stored date
JSONArray smsList = new JSONArray();
new AndroidSmsFetcher(context).bufferMessagesSinceDate(smsList, lastMessageSynced);
SmsBuffer smsBuffer = new SmsBuffer();
new AndroidSmsFetcher(context).bufferMessagesSinceDate(smsBuffer, lastMessageSynced);
AtomicReference<ConnectivityMonitor> cMon = new AtomicReference<>(new ConnectivityMonitor(context));
// Synchronize if network is valid and there are SMS
if (cMon.get().isValid() && (smsList.length() > 0)) {
new SyncTask(context, smsList).execute();
if (cMon.get().isValid() && !smsBuffer.empty()) {
new SyncTask(context, smsBuffer).execute();
}
}

View File

@ -4,6 +4,7 @@ public class DefaultPrefs {
public final static Integer syncInterval = 15;
public final static Integer minimumCharsForSync = 0;
public final static Boolean pushOnReceive = true;
public final static Boolean showSyncNotifications = true;
public final static Boolean syncWifi = true;
public final static Boolean sync2G = true;

View File

@ -12,15 +12,13 @@ import android.view.View;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import org.json.JSONArray;
import org.json.JSONException;
import java.util.ArrayList;
import java.util.Collections;
import fr.unix_experience.owncloud_sms.R;
import fr.unix_experience.owncloud_sms.adapters.ContactListAdapter;
import fr.unix_experience.owncloud_sms.exceptions.OCSyncException;
import ncsmsgo.SmsPhoneListResponse;
public interface ASyncContactLoad {
class ContactLoadTask extends AsyncTask<Void, Void, Boolean> {
@ -68,59 +66,24 @@ public interface ASyncContactLoad {
ArrayList<String> serverPhoneList = new ArrayList<>();
JSONArray phoneNumbers = _client.getServerPhoneNumbers();
for (int i = 0; i < phoneNumbers.length(); i++) {
String phone = phoneNumbers.getString(i);
serverPhoneList.add(phone);
SmsPhoneListResponse splr = _client.getServerPhoneNumbers();
if (splr == null) {
_objects.add(_context.getString(R.string.err_fetch_phonelist));
return false;
}
String phoneNumber;
while (!(phoneNumber = splr.getNextEntry()).equals("")) {
serverPhoneList.add(phoneNumber);
}
// Read all contacts
ContentResolver cr = _context.getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,
null, null, null, null);
if (((cur != null) ? cur.getCount() : 0) > 0) {
String id, name;
while ((cur != null) && cur.moveToNext()) {
id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
if (Integer.parseInt(cur.getString(
cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
readContacts(serverPhoneList);
// Fetch all phone numbers
Cursor pCur = cr.query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?",
new String[]{id}, null);
while ((pCur != null) && pCur.moveToNext()) {
String phoneNo = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER))
.replaceAll(" ", "");
if (serverPhoneList.contains(phoneNo)) {
if (!_objects.contains(name)) {
_objects.add(name);
}
serverPhoneList.remove(phoneNo);
}
}
if (pCur != null) {
pCur.close();
}
}
}
}
if (cur != null) {
cur.close();
}
for (String phone : serverPhoneList) {
_objects.add(phone);
}
_objects.addAll(serverPhoneList);
// Sort phone numbers
Collections.sort(_objects);
} catch (JSONException e) {
_objects.add(_context.getString(R.string.err_fetch_phonelist));
return false;
} catch (OCSyncException e) {
_objects.add(_context.getString(e.getErrorId()));
return false;
@ -128,6 +91,51 @@ public interface ASyncContactLoad {
return true;
}
private void readContacts(ArrayList<String> serverPhoneList) {
ContentResolver cr = _context.getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,
null, null, null, null);
if (cur == null) {
return;
}
if (cur.getCount() == 0) {
cur.close();
return;
}
String id, name;
while (cur.moveToNext()) {
id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
if (Integer.parseInt(cur.getString(
cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
// Fetch all phone numbers
Cursor pCur = cr.query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?",
new String[]{id}, null);
while ((pCur != null) && pCur.moveToNext()) {
String phoneNo = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER))
.replaceAll(" ", "");
if (serverPhoneList.contains(phoneNo)) {
if (!_objects.contains(name)) {
_objects.add(name);
}
serverPhoneList.remove(phoneNo);
}
}
if (pCur != null) {
pCur.close();
}
}
}
cur.close();
}
protected void onPostExecute(Boolean success) {
_adapter.notifyDataSetChanged();
_layout.setRefreshing(false);

View File

@ -7,14 +7,11 @@ import android.os.AsyncTask;
import android.provider.Telephony;
import android.util.Log;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.Iterator;
import fr.unix_experience.owncloud_sms.activities.remote_account.RestoreMessagesActivity;
import fr.unix_experience.owncloud_sms.enums.MailboxID;
import fr.unix_experience.owncloud_sms.providers.SmsDataProvider;
import ncsmsgo.SmsMessage;
import ncsmsgo.SmsMessagesResponse;
/*
* Copyright (c) 2014-2016, Loic Blot <loic.blot@unix-experience.fr>
@ -60,81 +57,70 @@ public interface ASyncSMSRecovery {
OCSMSOwnCloudClient client = new OCSMSOwnCloudClient(_context, _account);
SmsDataProvider smsDataProvider = new SmsDataProvider(_context);
JSONObject obj = client.retrieveSomeMessages(start, 500);
SmsMessagesResponse obj = client.retrieveSomeMessages(start, 500);
if (obj == null) {
Log.i(ASyncSMSRecovery.TAG, "Retrieved returns failure");
return null;
}
Integer nb = 0;
try {
while (obj.getLong("last_id") != start) {
JSONObject messages = obj.getJSONObject("messages");
Iterator<?> keys = messages.keys();
while (keys.hasNext()) {
String key = (String)keys.next();
if (messages.get(key) instanceof JSONObject) {
JSONObject msg = messages.getJSONObject(key);
int mbid = msg.getInt("mailbox");
// Ignore invalid mailbox
if (mbid > MailboxID.ALL.getId()) {
Log.e(ASyncSMSRecovery.TAG, "Invalid mailbox found: " + msg.getString("mailbox"));
continue;
}
String address;
String body;
int type;
try {
address = msg.getString("address");
body = msg.getString("msg");
type = msg.getInt("type");
}
catch (JSONException e) {
Log.e(ASyncSMSRecovery.TAG, "Invalid SMS data found: " + e.getMessage());
continue;
}
MailboxID mailbox_id = MailboxID.fromInt(mbid);
// Ignore already existing messages
if (smsDataProvider.messageExists(address, body, key, mailbox_id)) {
publishProgress(nb);
continue;
}
ContentValues values = new ContentValues();
values.put(Telephony.Sms.ADDRESS, address);
values.put(Telephony.Sms.BODY, body);
values.put(Telephony.Sms.DATE, key);
values.put(Telephony.Sms.TYPE, type);
values.put(Telephony.Sms.SEEN, 1);
values.put(Telephony.Sms.READ, 1);
// @TODO verify message exists before inserting it
_context.getContentResolver().insert(Uri.parse(mailbox_id.getURI()), values);
nb++;
if ((nb % 5) == 0) {
publishProgress(nb);
}
}
while ((obj != null) && (obj.getLastID() != start)) {
Log.i(TAG, "Retrieving messages from " + Long.toString(start)
+ " to " + Long.toString(obj.getLastID()));
SmsMessage message;
while ((message = obj.getNextMessage()) != null) {
int mbid = (int) message.getMailbox();
// Ignore invalid mailbox
if (mbid > MailboxID.ALL.getId()) {
Log.e(ASyncSMSRecovery.TAG, "Invalid mailbox found: " + mbid);
continue;
}
start = obj.getLong("last_id");
if (!new ConnectivityMonitor(_context).isValid()) {
Log.e(ASyncSMSRecovery.TAG, "Restore connectivity problems, aborting");
return null;
String address = message.getAddress();
String body = message.getMessage();
int type = (int) message.getType();
if (address.isEmpty() || body.isEmpty()) {
Log.e(ASyncSMSRecovery.TAG, "Invalid SMS message found: " + message.toString());
continue;
}
MailboxID mailbox_id = MailboxID.fromInt(mbid);
String date = Long.toString(message.getDate());
// Ignore already existing messages
if (smsDataProvider.messageExists(address, body, date, mailbox_id)) {
publishProgress(nb);
continue;
}
ContentValues values = new ContentValues();
values.put(Telephony.Sms.ADDRESS, address);
values.put(Telephony.Sms.BODY, body);
values.put(Telephony.Sms.DATE, date);
values.put(Telephony.Sms.TYPE, type);
values.put(Telephony.Sms.SEEN, 1);
values.put(Telephony.Sms.READ, 1);
_context.getContentResolver().insert(Uri.parse(mailbox_id.getURI()), values);
nb++;
if ((nb % 10) == 0) {
publishProgress(nb);
}
obj = client.retrieveSomeMessages(start, 500);
}
} catch (JSONException e) {
Log.e(ASyncSMSRecovery.TAG, "Missing last_id field!");
start = obj.getLastID();
if (!new ConnectivityMonitor(_context).isValid()) {
Log.e(ASyncSMSRecovery.TAG, "Restore connectivity problems, aborting");
return null;
}
obj = client.retrieveSomeMessages(start, 500);
}
// Force this refresh to fix dates
_context.getContentResolver().delete(Uri.parse("content://sms/conversations/-1"), null, null);
_context.getContentResolver().delete(Uri.parse("content://sms/conversations/-1"),
null, null);
publishProgress(nb);

View File

@ -19,28 +19,94 @@ package fr.unix_experience.owncloud_sms.engine;
import android.accounts.Account;
import android.accounts.AccountManager;
import android.app.Activity;
import android.content.Context;
import android.os.AsyncTask;
import android.util.Log;
import org.json.JSONArray;
import android.widget.Toast;
import fr.unix_experience.owncloud_sms.R;
import fr.unix_experience.owncloud_sms.enums.OCSMSNotificationType;
import fr.unix_experience.owncloud_sms.exceptions.OCSyncException;
import fr.unix_experience.owncloud_sms.notifications.OCSMSNotificationUI;
import fr.unix_experience.owncloud_sms.prefs.OCSMSSharedPrefs;
import ncsmsgo.SmsBuffer;
public interface ASyncSMSSync {
class SyncTask extends AsyncTask<Void, Void, Void> {
public SyncTask(Context context, JSONArray smsList) {
public SyncTask(Activity context) {
_activity = context;
_context = context;
_smsList = smsList;
_smsBuffer = null;
}
public SyncTask(Context context, SmsBuffer buffer) {
_activity = null;
_context = context;
_smsBuffer = buffer;
}
@Override
protected Void doInBackground(Void... params) {
Log.i(ASyncSMSSync.TAG, "Starting background sync");
// If no smsBuffer given it's a full sync
if (_smsBuffer == null) {
doFullSync();
}
else {
performSync(_smsBuffer);
}
Log.i(ASyncSMSSync.TAG, "Stopping background sync");
return null;
}
private void doFullSync() {
OCSMSSharedPrefs prefs = new OCSMSSharedPrefs(_context);
long syncStartupDate = prefs.getLastMessageDate();
Log.i(ASyncSMSSync.TAG, "Current message date is " + syncStartupDate);
boolean shouldSync = true;
boolean hasSyncSomething = false;
AndroidSmsFetcher fetcher = new AndroidSmsFetcher(_context);
while (shouldSync) {
SmsBuffer smsBuffer = new SmsBuffer();
fetcher.bufferMessagesSinceDate(smsBuffer, syncStartupDate);
if (smsBuffer.empty()) {
if (_activity != null) {
final boolean syncComplete = hasSyncSomething;
_activity.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(_context,
_context.getString(syncComplete ? R.string.sync_complete : R.string.nothing_to_sync),
Toast.LENGTH_SHORT).show();
}
});
}
Log.i(ASyncSMSSync.TAG, "Finish syncAllMessages(): no more sms");
smsBuffer.clear();
shouldSync = false;
continue;
}
if (prefs.showSyncNotifications()) {
OCSMSNotificationUI.notify(_context, _context.getString(R.string.sync_title),
_context.getString(R.string.sync_inprogress), OCSMSNotificationType.SYNC);
}
try {
syncStartupDate = smsBuffer.getLastMessageDate();
performSync(smsBuffer);
hasSyncSomething = true;
} finally {
OCSMSNotificationUI.cancel(_context, OCSMSNotificationType.SYNC);
}
}
}
private void performSync(SmsBuffer smsBuffer) {
// Get ownCloud SMS account list
AccountManager _accountMgr = AccountManager.get(_context);
Account[] myAccountList = _accountMgr.getAccountsByType(_context.getString(R.string.account_type));
@ -49,24 +115,25 @@ public interface ASyncSMSSync {
for (Account element : myAccountList) {
try {
OCSMSOwnCloudClient _client = new OCSMSOwnCloudClient(_context, element);
_client.doPushRequest(_smsList);
OCSMSNotificationUI.cancel(_context);
// Fetch API version first to do some early verifications
Log.i(ASyncSMSSync.TAG, "Server API version: " + _client.getServerAPIVersion());
_client.doPushRequest(smsBuffer);
OCSMSNotificationUI.cancel(_context, OCSMSNotificationType.SYNC_FAILED);
} catch (IllegalStateException e) { // Fail to read account data
OCSMSNotificationUI.notify(_context, _context.getString(R.string.fatal_error),
e.getMessage(), OCSMSNotificationType.SYNC_FAILED.ordinal());
e.getMessage(), OCSMSNotificationType.SYNC_FAILED);
} catch (OCSyncException e) {
Log.e(ASyncSMSSync.TAG, _context.getString(e.getErrorId()));
OCSMSNotificationUI.notify(_context, _context.getString(R.string.fatal_error),
e.getMessage(), OCSMSNotificationType.SYNC_FAILED.ordinal());
OCSMSNotificationUI.notify(_context, _context.getString(R.string.fatal_error),
e.getMessage(), OCSMSNotificationType.SYNC_FAILED);
}
}
OCSMSNotificationUI.cancel(_context);
Log.i(ASyncSMSSync.TAG, "Stopping background sync");
return null;
smsBuffer.clear();
}
private final SmsBuffer _smsBuffer;
private final Context _context;
private final JSONArray _smsList;
private final Activity _activity;
}
String TAG = ASyncSMSSync.class.getSimpleName();

View File

@ -23,14 +23,13 @@ import android.util.Log;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import fr.unix_experience.owncloud_sms.enums.MailboxID;
import fr.unix_experience.owncloud_sms.providers.SmsDataProvider;
import ncsmsgo.SmsBuffer;
public class AndroidSmsFetcher {
public AndroidSmsFetcher(Context ct) {
_lastMsgDate = (long) 0;
_context = ct;
_existingInboxMessages = null;
@ -38,13 +37,35 @@ public class AndroidSmsFetcher {
_existingDraftsMessages = null;
}
void fetchAllMessages(JSONArray result) {
void fetchAllMessages(SmsBuffer result) {
bufferMailboxMessages(result, MailboxID.INBOX);
bufferMailboxMessages(result, MailboxID.SENT);
bufferMailboxMessages(result, MailboxID.DRAFTS);
}
private void bufferMailboxMessages(JSONArray result, MailboxID mbID) {
private void readMailBox(Cursor c, SmsBuffer smsBuffer, MailboxID mbID) {
do {
SmsEntry entry = new SmsEntry();
for (int idx = 0; idx < c.getColumnCount(); idx++) {
handleProviderColumn(c, idx, entry);
}
// Mailbox ID is required by server
entry.mailboxId = mbID.ordinal();
smsBuffer.push(entry.id,
mbID.ordinal(),
entry.type,
entry.date,
entry.address,
entry.body,
entry.read ? "true" : "false",
entry.seen ? "true" : "false");
}
while (c.moveToNext());
}
private void bufferMailboxMessages(SmsBuffer smsBuffer, MailboxID mbID) {
if ((_context == null)) {
return;
}
@ -64,30 +85,14 @@ public class AndroidSmsFetcher {
}
// Reading mailbox
do {
JSONObject entry = new JSONObject();
try {
for (int idx = 0; idx < c.getColumnCount(); idx++) {
handleProviderColumn(c, idx, entry);
}
// Mailbox ID is required by server
entry.put("mbox", mbID.ordinal());
result.put(entry);
} catch (JSONException e) {
Log.e(AndroidSmsFetcher.TAG, "JSON Exception when reading SMS Mailbox", e);
}
}
while (c.moveToNext());
readMailBox(c, smsBuffer, mbID);
Log.i(AndroidSmsFetcher.TAG, c.getCount() + " messages read from " + mbID.getURI());
c.close();
}
// Used by Content Observer
public JSONArray getLastMessage(MailboxID mbID) {
public SmsBuffer getLastMessage(MailboxID mbID) {
if ((_context == null)) {
return null;
}
@ -99,44 +104,46 @@ public class AndroidSmsFetcher {
}
// We create a list of strings to store results
JSONArray results = new JSONArray();
JSONObject entry = new JSONObject();
SmsEntry entry = new SmsEntry();
SmsBuffer results = new SmsBuffer();
try {
Integer mboxId = -1;
for (int idx = 0; idx < c.getColumnCount(); idx++) {
Integer rid = handleProviderColumn(c, idx, entry);
if (rid != -1) {
mboxId = rid;
}
Integer mboxId = -1;
for (int idx = 0; idx < c.getColumnCount(); idx++) {
Integer rid = handleProviderColumn(c, idx, entry);
if (rid != -1) {
mboxId = rid;
}
/*
* Mailbox ID is required by server
* mboxId is greater than server mboxId by 1 because types
* aren't indexed in the same mean
*/
entry.put("mbox", (mboxId - 1));
results.put(entry);
} catch (JSONException e) {
Log.e(AndroidSmsFetcher.TAG, "JSON Exception when reading SMS Mailbox", e);
}
/*
* Mailbox ID is required by server
* mboxId is greater than server mboxId by 1 because types
* aren't indexed in the same mean
*/
entry.mailboxId = mboxId - 1;
results.push(entry.id,
mbID.ordinal(),
entry.type,
entry.date,
entry.address,
entry.body,
entry.read ? "true" : "false",
entry.seen ? "true" : "false");
c.close();
return results;
}
// Used by ConnectivityChanged Event
public void bufferMessagesSinceDate(JSONArray result, Long sinceDate) {
bufferMessagesSinceDate(result, MailboxID.INBOX, sinceDate);
bufferMessagesSinceDate(result, MailboxID.SENT, sinceDate);
bufferMessagesSinceDate(result, MailboxID.DRAFTS, sinceDate);
public void bufferMessagesSinceDate(SmsBuffer smsBuffer, Long sinceDate) {
bufferMessagesSinceDate(smsBuffer, MailboxID.INBOX, sinceDate);
bufferMessagesSinceDate(smsBuffer, MailboxID.SENT, sinceDate);
bufferMessagesSinceDate(smsBuffer, MailboxID.DRAFTS, sinceDate);
}
// Used by ConnectivityChanged Event
private void bufferMessagesSinceDate(JSONArray result, MailboxID mbID, Long sinceDate) {
private void bufferMessagesSinceDate(SmsBuffer smsBuffer, MailboxID mbID, Long sinceDate) {
Log.i(AndroidSmsFetcher.TAG, "bufferMessagesSinceDate for " + mbID.toString() + " sinceDate " + sinceDate.toString());
if ((_context == null)) {
return;
@ -150,37 +157,23 @@ public class AndroidSmsFetcher {
return;
}
do {
JSONObject entry = new JSONObject();
try {
for (int idx = 0; idx < c.getColumnCount(); idx++) {
handleProviderColumn(c, idx, entry);
}
// Mailbox ID is required by server
entry.put("mbox", mbID.ordinal());
result.put(entry);
} catch (JSONException e) {
Log.e(AndroidSmsFetcher.TAG, "JSON Exception when reading SMS Mailbox", e);
}
}
while (c.moveToNext());
// Read Mailbox
readMailBox(c, smsBuffer, mbID);
Log.i(AndroidSmsFetcher.TAG, c.getCount() + " messages read from " + mbID.getURI());
c.close();
}
private Integer handleProviderColumn(Cursor c, int idx, JSONObject entry) throws JSONException {
private Integer handleProviderColumn(Cursor c, int idx, SmsEntry entry) {
String colName = c.getColumnName(idx);
// Id column is must be an integer
switch (colName) {
case "_id":
entry.put(colName, c.getInt(idx));
entry.id = c.getInt(idx);
break;
case "type":
entry.put(colName, c.getInt(idx));
entry.type = c.getInt(idx);
return c.getInt(idx);
/* For debug purpose
case "length(address)":
@ -188,19 +181,22 @@ public class AndroidSmsFetcher {
break;*/
// Seen and read must be pseudo boolean
case "read":
entry.read = (c.getInt(idx) > 0);
break;
case "seen":
entry.put(colName, (c.getInt(idx) > 0) ? "true" : "false");
entry.seen = (c.getInt(idx) > 0);
break;
case "date":
// Special case for date, we need to record last without searching
Long tmpDate = c.getLong(idx);
if (tmpDate > _lastMsgDate) {
_lastMsgDate = tmpDate;
}
entry.put(colName, c.getString(idx));
entry.date = c.getLong(idx);
break;
case "address":
entry.address = c.getString(idx);
break;
case "body":
entry.body = c.getString(idx);
break;
default:
entry.put(colName, c.getString(idx));
// Unhandled column
break;
}
@ -249,16 +245,10 @@ public class AndroidSmsFetcher {
_existingDraftsMessages = draftMessages;
}
Long getLastMessageDate() {
return _lastMsgDate;
}
private final Context _context;
private JSONArray _existingInboxMessages;
private JSONArray _existingSentMessages;
private JSONArray _existingDraftsMessages;
private Long _lastMsgDate;
private static final String TAG = AndroidSmsFetcher.class.getSimpleName();
}

View File

@ -18,139 +18,97 @@ package fr.unix_experience.owncloud_sms.engine;
*/
import android.content.Context;
import android.net.Uri;
import android.util.Base64;
import android.util.Log;
import android.util.Pair;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.HttpVersion;
import org.apache.commons.httpclient.URI;
import org.apache.commons.httpclient.URIException;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.params.HttpClientParams;
import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
import org.apache.commons.httpclient.contrib.ssl.EasySSLProtocolSocketFactory;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.StringRequestEntity;
import org.apache.commons.httpclient.protocol.Protocol;
import org.apache.commons.httpclient.protocol.ProtocolSocketFactory;
import org.apache.commons.httpclient.params.HttpMethodParams;
import java.io.IOException;
import java.net.URL;
import fr.unix_experience.owncloud_sms.R;
import fr.unix_experience.owncloud_sms.enums.OCSyncErrorType;
import fr.unix_experience.owncloud_sms.exceptions.OCSyncException;
import fr.unix_experience.owncloud_sms.providers.AndroidVersionProvider;
import ncsmsgo.SmsBuffer;
import ncsmsgo.SmsHTTPClient;
import ncsmsgo.SmsIDListResponse;
import ncsmsgo.SmsMessagesResponse;
import ncsmsgo.SmsPhoneListResponse;
import ncsmsgo.SmsPushResponse;
public class OCHttpClient extends HttpClient {
public class OCHttpClient {
private SmsHTTPClient _smsHttpClient;
private static final String TAG = OCHttpClient.class.getCanonicalName();
private static final String PARAM_PROTOCOL_VERSION = "http.protocol.version";
private final Uri _serverURI;
private final String _username;
private final String _password;
// API v1 calls
private static final String OC_GET_VERSION = "/index.php/apps/ocsms/get/apiversion?format=json";
private static final String OC_GET_ALL_SMS_IDS = "/index.php/apps/ocsms/get/smsidlist?format=json";
private static final String OC_GET_LAST_MSG_TIMESTAMP = "/index.php/apps/ocsms/get/lastmsgtime?format=json";
private static final String OC_PUSH_ROUTE = "/index.php/apps/ocsms/push?format=json";
// API v2 calls
private static final String OC_V2_GET_PHONELIST = "/index.php/apps/ocsms/api/v2/phones/list?format=json";
private static final String OC_V2_GET_MESSAGES ="/index.php/apps/ocsms/api/v2/messages/[START]/[LIMIT]?format=json";
private static final String OC_V2_GET_MESSAGES_PHONE ="/index.php/apps/ocsms/api/v2/messages/[PHONENUMBER]/[START]/[LIMIT]?format=json";
private static final String OC_V2_GET_MESSAGES_SENDQUEUE = "/index.php/apps/ocsms/api/v2/messages/sendqueue?format=json";
public OCHttpClient(Context context, Uri serverURI, String accountName, String accountPassword) {
super(new MultiThreadedHttpConnectionManager());
Protocol easyhttps = new Protocol("https", (ProtocolSocketFactory)new EasySSLProtocolSocketFactory(), 443);
Protocol.registerProtocol("https", easyhttps);
_serverURI = serverURI;
_username = accountName;
_password = accountPassword;
getParams().setParameter(HttpClientParams.ALLOW_CIRCULAR_REDIRECTS, true);
getParams().setParameter(PARAM_PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
getParams().setCookiePolicy(CookiePolicy.IGNORE_COOKIES);
getParams().setParameter(HttpMethodParams.USER_AGENT,
"nextcloud-phonesync (" + new AndroidVersionProvider(context).getVersionCode() + ")");
public OCHttpClient(Context context, URL serverURL, String accountName, String accountPassword) {
_smsHttpClient = new SmsHTTPClient();
// @TODO: at a point add a flag to permit insecure connections somewhere instead of trusting them
_smsHttpClient.init(serverURL.toString(), new AndroidVersionProvider(context).getVersionCode(),
accountName, accountPassword, false);
}
private GetMethod get(String oc_call) {
Log.i(OCHttpClient.TAG, "Create GET " + _serverURI + oc_call);
return new GetMethod(_serverURI.toString() + oc_call);
}
GetMethod getAllSmsIds() {
return get(OCHttpClient.OC_GET_ALL_SMS_IDS);
}
public GetMethod getVersion() {
return get(OCHttpClient.OC_GET_VERSION);
}
PostMethod pushSms(StringRequestEntity ent) {
PostMethod post = new PostMethod(_serverURI.toString() + OCHttpClient.OC_PUSH_ROUTE);
post.setRequestEntity(ent);
return post;
}
GetMethod getPhoneList() {
return get(OCHttpClient.OC_V2_GET_PHONELIST);
}
GetMethod getMessages(Long start, Integer limit) {
return get(OCHttpClient.OC_V2_GET_MESSAGES.
replace("[START]", start.toString()).replace("[LIMIT]", limit.toString()));
}
private int followRedirections(HttpMethod httpMethod) throws IOException {
int redirectionsCount = 0;
int status = httpMethod.getStatusCode();
while (redirectionsCount < 3 &&
(status == HttpStatus.SC_MOVED_PERMANENTLY ||
status == HttpStatus.SC_MOVED_TEMPORARILY ||
status == HttpStatus.SC_TEMPORARY_REDIRECT)
) {
Header location = httpMethod.getResponseHeader("Location");
if (location == null) {
location = httpMethod.getResponseHeader("location");
}
if (location == null) {
Log.e(TAG, "No valid location header found when redirecting.");
return 500;
private void handleEarlyHTTPStatus(int httpStatus) throws OCSyncException {
switch (httpStatus) {
case 403: {
// Authentication failed
throw new OCSyncException(R.string.err_sync_auth_failed, OCSyncErrorType.AUTH);
}
}
}
try {
httpMethod.setURI(new URI(location.getValue()));
} catch (URIException e) {
Log.e(TAG, "Invalid URI in 302 FOUND response");
return 500;
}
public String getLastError() {
return _smsHttpClient.getLastError();
}
status = executeMethod(httpMethod);
redirectionsCount++;
Pair<Integer, SmsIDListResponse> getAllSmsIds() throws OCSyncException {
SmsIDListResponse silr = _smsHttpClient.doGetSmsIDList();
int httpStatus = (int) _smsHttpClient.getLastHTTPStatus();
handleEarlyHTTPStatus(httpStatus);
return new Pair<>(httpStatus, silr);
}
// Perform the GoLang doVersionCall and handle return
public Pair<Integer, Integer> getVersion() throws OCSyncException {
Integer serverAPIVersion = (int) _smsHttpClient.doVersionCall();
int httpStatus = (int) _smsHttpClient.getLastHTTPStatus();
handleEarlyHTTPStatus(httpStatus);
// If last status is not 200, send the wrong status now
if (httpStatus != 200) {
return new Pair<>(httpStatus, 0);
}
if (redirectionsCount >= 3 && status == HttpStatus.SC_MOVED_PERMANENTLY ||
status == HttpStatus.SC_MOVED_TEMPORARILY ||
status == HttpStatus.SC_TEMPORARY_REDIRECT) {
Log.e(TAG, "Too many redirection done. Aborting, please ensure your server is " +
"correctly configured");
return 400;
if (serverAPIVersion > 0) {
return new Pair<>(200, serverAPIVersion);
}
else if (serverAPIVersion == 0) {
// Return default version
return new Pair<>(200, 1);
}
else if (serverAPIVersion == -1) {
// This return code from API means I/O error
throw new OCSyncException(R.string.err_sync_http_request_ioexception, OCSyncErrorType.IO);
}
else {
throw new OCSyncException(R.string.err_sync_http_request_returncode_unhandled, OCSyncErrorType.SERVER_ERROR);
}
return status;
}
public int execute(HttpMethod req) throws IOException {
String basicAuth = "Basic " +
Base64.encodeToString((_username + ":" + _password).getBytes(), Base64.NO_WRAP);
req.setDoAuthentication(true);
req.addRequestHeader("Authorization", basicAuth);
executeMethod(req);
return followRedirections(req);
Pair<Integer, SmsPushResponse> pushSms(SmsBuffer smsBuf) throws OCSyncException {
SmsPushResponse spr = _smsHttpClient.doPushCall(smsBuf);
int httpStatus = (int) _smsHttpClient.getLastHTTPStatus();
handleEarlyHTTPStatus(httpStatus);
return new Pair<>(httpStatus, spr);
}
Pair<Integer, SmsPhoneListResponse> getPhoneList() throws OCSyncException {
SmsPhoneListResponse splr = _smsHttpClient.doGetPhoneList();
int httpStatus = (int) _smsHttpClient.getLastHTTPStatus();
handleEarlyHTTPStatus(httpStatus);
return new Pair<>(httpStatus, splr);
}
Pair<Integer, SmsMessagesResponse> getMessages(Long start, Integer limit) throws OCSyncException {
SmsMessagesResponse smr = _smsHttpClient.doGetMessagesCall(start, limit);
int httpStatus = (int) _smsHttpClient.getLastHTTPStatus();
handleEarlyHTTPStatus(httpStatus);
return new Pair<>(httpStatus, smr);
}
}

View File

@ -20,25 +20,21 @@ package fr.unix_experience.owncloud_sms.engine;
import android.accounts.Account;
import android.accounts.AccountManager;
import android.content.Context;
import android.net.Uri;
import android.util.Log;
import android.util.Pair;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.StringRequestEntity;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.ConnectException;
import java.net.MalformedURLException;
import java.net.URL;
import fr.unix_experience.owncloud_sms.R;
import fr.unix_experience.owncloud_sms.enums.OCSyncErrorType;
import fr.unix_experience.owncloud_sms.exceptions.OCSyncException;
import fr.unix_experience.owncloud_sms.prefs.OCSMSSharedPrefs;
import ncsmsgo.SmsBuffer;
import ncsmsgo.SmsIDListResponse;
import ncsmsgo.SmsMessagesResponse;
import ncsmsgo.SmsPhoneListResponse;
import ncsmsgo.SmsPushResponse;
@SuppressWarnings("deprecation")
public class OCSMSOwnCloudClient {
@ -55,327 +51,104 @@ public class OCSMSOwnCloudClient {
throw new IllegalStateException(context.getString(R.string.err_sync_account_unparsable));
}
Uri serverURI = Uri.parse(ocURI);
_http = new OCHttpClient(context,
serverURI, accountManager.getUserData(account, "ocLogin"),
accountManager.getPassword(account));
_connectivityMonitor = new ConnectivityMonitor(_context);
try {
URL serverURL = new URL(ocURI);
_http = new OCHttpClient(context,
serverURL, accountManager.getUserData(account, "ocLogin"),
accountManager.getPassword(account));
} catch (MalformedURLException e) {
throw new IllegalStateException(context.getString(R.string.err_sync_account_unparsable));
}
}
public Integer getServerAPIVersion() throws OCSyncException {
doHttpRequest(_http.getVersion(), true);
if (_jsonQueryBuffer == null) {
// Return default version
return 1;
Pair<Integer, Integer> vPair = _http.getVersion();
_serverAPIVersion = vPair.second;
if (vPair.first == 200 && _serverAPIVersion > 0) {
return _serverAPIVersion;
}
try {
_serverAPIVersion = _jsonQueryBuffer.getInt("version");
}
catch (JSONException e) {
Log.e(OCSMSOwnCloudClient.TAG, "No version received from server, assuming version 1", e);
_serverAPIVersion = 1;
}
return _serverAPIVersion;
return 0;
}
JSONArray getServerPhoneNumbers() throws OCSyncException {
doHttpRequest(_http.getPhoneList(), true);
if (_jsonQueryBuffer == null) {
SmsPhoneListResponse getServerPhoneNumbers() throws OCSyncException {
Pair<Integer, SmsPhoneListResponse> response = _http.getPhoneList();
if (response.second == null || response.first != 200) {
return null;
}
try {
return _jsonQueryBuffer.getJSONArray("phoneList");
} catch (JSONException e) {
Log.e(OCSMSOwnCloudClient.TAG, "No phonelist received from server, empty it", e);
return null;
}
return response.second;
}
public void doPushRequest(JSONArray smsList) throws OCSyncException {
public void doPushRequest(SmsBuffer smsBuffer) throws OCSyncException {
/*
* If we need other API push, set it here
*/
switch (_serverAPIVersion) {
case 1:
default: doPushRequestV1(smsList); break;
default: doPushRequestV1(smsBuffer); break;
}
}
private void doPushRequestV1(JSONArray smsList) throws OCSyncException {
// We need to save this date as a step for connectivity change
Long lastMsgDate = (long) 0;
if (smsList == null) {
doHttpRequest(_http.getAllSmsIds());
if (_jsonQueryBuffer == null) {
private void doPushRequestV1(SmsBuffer smsBuffer) throws OCSyncException {
if (smsBuffer == null) {
Pair<Integer, SmsIDListResponse> response = _http.getAllSmsIds();
if (response.second == null) {
return;
}
JSONObject smsBoxes = new JSONObject();
JSONArray inboxSmsList = null, sentSmsList = null, draftsSmsList = null;
try {
smsBoxes = _jsonQueryBuffer.getJSONObject("smslist");
} catch (JSONException e) {
try {
_jsonQueryBuffer.getJSONArray("smslist");
} catch (JSONException e2) {
Log.e(OCSMSOwnCloudClient.TAG, "Invalid datas received from server (doPushRequest, get SMS list)", e);
throw new OCSyncException(R.string.err_sync_get_smslist, OCSyncErrorType.PARSE);
}
}
try {
inboxSmsList = smsBoxes.getJSONArray("inbox");
} catch (JSONException e) {
Log.i(OCSMSOwnCloudClient.TAG, "No inbox Sms received from server (doPushRequest, get SMS list)");
}
try {
sentSmsList = smsBoxes.getJSONArray("sent");
} catch (JSONException e) {
Log.i(OCSMSOwnCloudClient.TAG, "No sent Sms received from server (doPushRequest, get SMS list)");
}
try {
draftsSmsList = smsBoxes.getJSONArray("drafts");
} catch (JSONException e) {
Log.i(OCSMSOwnCloudClient.TAG, "No drafts Sms received from server (doPushRequest, get SMS list)");
}
AndroidSmsFetcher fetcher = new AndroidSmsFetcher(_context);
fetcher.setExistingInboxMessages(inboxSmsList);
fetcher.setExistingSentMessages(sentSmsList);
fetcher.setExistingDraftsMessages(draftsSmsList);
smsList = new JSONArray();
fetcher.fetchAllMessages(smsList);
// Get maximum message date present in smsList to keep a step when connectivity changes
lastMsgDate = fetcher.getLastMessageDate();
// Create new SmsBuffer to get results
smsBuffer = new SmsBuffer();
}
if (smsList.length() == 0) {
if (smsBuffer.empty()) {
Log.i(OCSMSOwnCloudClient.TAG, "No new SMS to sync, sync done");
return;
}
PostMethod post = createPushRequest(smsList);
if (post == null) {
Log.e(OCSMSOwnCloudClient.TAG,"Push request for POST is null");
throw new OCSyncException(R.string.err_sync_craft_http_request, OCSyncErrorType.IO);
}
Pair<Integer, SmsPushResponse> response = _http.pushSms(smsBuffer);
doHttpRequest(post);
if (_jsonQueryBuffer == null) {
Log.e(OCSMSOwnCloudClient.TAG,"Request failed. It doesn't return a valid JSON Object");
if (response.second == null) {
Log.e(OCSMSOwnCloudClient.TAG,"Push request failed. GoLang response is empty.");
throw new OCSyncException(R.string.err_sync_push_request, OCSyncErrorType.IO);
}
Boolean pushStatus;
String pushMessage;
try {
pushStatus = _jsonQueryBuffer.getBoolean("status");
pushMessage = _jsonQueryBuffer.getString("msg");
}
catch (JSONException e) {
Log.e(OCSMSOwnCloudClient.TAG, "Invalid datas received from server", e);
throw new OCSyncException(R.string.err_sync_push_request_resp, OCSyncErrorType.PARSE);
}
// Push was OK, we can save the lastMessageDate which was saved to server
(new OCSMSSharedPrefs(_context)).setLastMessageDate(lastMsgDate);
(new OCSMSSharedPrefs(_context)).setLastMessageDate(smsBuffer.getLastMessageDate());
Log.i(OCSMSOwnCloudClient.TAG, "SMS Push request said: status " + pushStatus + " - " + pushMessage);
Log.i(OCSMSOwnCloudClient.TAG, "SMS Push request said: status " +
response.second.getStatus() + " - " + response.second.getMessage());
Log.i(OCSMSOwnCloudClient.TAG, "LastMessageDate set to: " + smsBuffer.getLastMessageDate());
}
private PostMethod createPushRequest(JSONArray smsList) throws OCSyncException {
JSONObject obj = createPushJSONObject(smsList);
if (obj == null) {
return null;
}
StringRequestEntity ent = createJSONRequestEntity(obj);
if (ent == null) {
return null;
}
return _http.pushSms(ent);
}
private JSONObject createPushJSONObject(JSONArray smsList) throws OCSyncException {
if (smsList == null) {
Log.e(OCSMSOwnCloudClient.TAG,"NULL SMS List");
throw new OCSyncException(R.string.err_sync_create_json_null_smslist, OCSyncErrorType.IO);
}
JSONObject reqJSON = new JSONObject();
try {
reqJSON.put("smsDatas", smsList);
reqJSON.put("smsCount", smsList.length());
} catch (JSONException e) {
Log.e(OCSMSOwnCloudClient.TAG,"JSON Exception when creating JSON request object");
throw new OCSyncException(R.string.err_sync_create_json_put_smslist, OCSyncErrorType.PARSE);
}
return reqJSON;
}
private StringRequestEntity createJSONRequestEntity(JSONObject obj) throws OCSyncException {
StringRequestEntity requestEntity;
try {
requestEntity = new StringRequestEntity(
obj.toString(),
"application/json",
"UTF-8");
} catch (UnsupportedEncodingException e) {
Log.e(OCSMSOwnCloudClient.TAG,"Unsupported encoding when generating request");
throw new OCSyncException(R.string.err_sync_create_json_request_encoding, OCSyncErrorType.PARSE);
}
return requestEntity;
}
JSONObject retrieveSomeMessages(Long start, Integer limit) {
SmsMessagesResponse retrieveSomeMessages(Long start, Integer limit) {
// This is not allowed by server
if (limit > OCSMSOwnCloudClient.SERVER_RECOVERY_MSG_LIMIT) {
Log.e(OCSMSOwnCloudClient.TAG, "Message recovery limit exceeded");
return null;
}
Pair<Integer, SmsMessagesResponse> response;
try {
doHttpRequest(_http.getMessages(start, limit));
response = _http.getMessages(start, limit);
} catch (OCSyncException e) {
_jsonQueryBuffer = null;
Log.e(OCSMSOwnCloudClient.TAG, "Request failed.");
return null;
}
if (!_jsonQueryBuffer.has("messages") || !_jsonQueryBuffer.has("last_id")) {
if (response.second == null) {
Log.e(OCSMSOwnCloudClient.TAG,
"Invalid response received from server, either messages or last_id field is missing.");
return null;
}
return _jsonQueryBuffer;
return response.second;
}
private void doHttpRequest(HttpMethod req) throws OCSyncException {
doHttpRequest(req, false);
}
// skipError permit to skip invalid JSON datas
private void doHttpRequest(HttpMethod req, Boolean skipError) throws OCSyncException {
// Reinit the queryBuffer
_jsonQueryBuffer = null;
int status = 0;
// We try maximumHttpReqTries because sometimes network is slow or unstable
int tryNb = 0;
while (tryNb < OCSMSOwnCloudClient.maximumHttpReqTries) {
tryNb++;
if (!_connectivityMonitor.isValid()) {
if (tryNb == OCSMSOwnCloudClient.maximumHttpReqTries) {
req.releaseConnection();
throw new OCSyncException(R.string.err_sync_no_connection_available, OCSyncErrorType.IO);
}
continue;
}
try {
status = _http.execute(req);
Log.i(OCSMSOwnCloudClient.TAG, "HTTP Request done at try " + tryNb);
// Force loop exit
tryNb = OCSMSOwnCloudClient.maximumHttpReqTries;
} catch (ConnectException e) {
Log.e(OCSMSOwnCloudClient.TAG, "Unable to perform a connection to ownCloud instance", e);
// If it's the last try
if (tryNb == OCSMSOwnCloudClient.maximumHttpReqTries) {
req.releaseConnection();
throw new OCSyncException(R.string.err_sync_http_request_connect, OCSyncErrorType.IO);
}
} catch (HttpException e) {
Log.e(OCSMSOwnCloudClient.TAG, "Unable to perform a connection to ownCloud instance", e);
// If it's the last try
if (tryNb == OCSMSOwnCloudClient.maximumHttpReqTries) {
req.releaseConnection();
throw new OCSyncException(R.string.err_sync_http_request_httpexception, OCSyncErrorType.IO);
}
} catch (IOException e) {
Log.e(OCSMSOwnCloudClient.TAG, "Unable to perform a connection to ownCloud instance", e);
// If it's the last try
if (tryNb == OCSMSOwnCloudClient.maximumHttpReqTries) {
req.releaseConnection();
throw new OCSyncException(R.string.err_sync_http_request_ioexception, OCSyncErrorType.IO);
}
}
}
if (status == 200) {
String response;
try {
response = req.getResponseBodyAsString();
} catch (IOException e) {
Log.e(OCSMSOwnCloudClient.TAG, "Unable to parse server response", e);
throw new OCSyncException(R.string.err_sync_http_request_resp, OCSyncErrorType.IO);
}
// Parse the response
try {
_jsonQueryBuffer = new JSONObject(response);
} catch (JSONException e) {
if (!skipError) {
if (response.contains("ownCloud") && response.contains("DOCTYPE")) {
Log.e(OCSMSOwnCloudClient.TAG, "OcSMS app not enabled or ownCloud upgrade is required");
throw new OCSyncException(R.string.err_sync_ocsms_not_installed_or_oc_upgrade_required,
OCSyncErrorType.SERVER_ERROR);
}
else {
Log.e(OCSMSOwnCloudClient.TAG, "Unable to parse server response", e);
throw new OCSyncException(R.string.err_sync_http_request_parse_resp, OCSyncErrorType.PARSE);
}
}
}
} else if (status == 403) {
// Authentication failed
throw new OCSyncException(R.string.err_sync_auth_failed, OCSyncErrorType.AUTH);
} else {
// Unk error
String response;
try {
response = req.getResponseBodyAsString();
} catch (IOException e) {
Log.e(OCSMSOwnCloudClient.TAG, "Unable to parse server response", e);
throw new OCSyncException(R.string.err_sync_http_request_resp, OCSyncErrorType.PARSE);
}
Log.e(OCSMSOwnCloudClient.TAG, "Server set unhandled HTTP return code " + status);
if (response != null) {
Log.e(OCSMSOwnCloudClient.TAG, "Status code: " + status + ". Response message: " + response);
} else {
Log.e(OCSMSOwnCloudClient.TAG, "Status code: " + status);
}
throw new OCSyncException(R.string.err_sync_http_request_returncode_unhandled, OCSyncErrorType.SERVER_ERROR);
}
}
private static final int maximumHttpReqTries = 3;
private final OCHttpClient _http;
private final Context _context;
private final ConnectivityMonitor _connectivityMonitor;
private Integer _serverAPIVersion;
private JSONObject _jsonQueryBuffer;
private static final String TAG = OCSMSOwnCloudClient.class.getSimpleName();

View File

@ -0,0 +1,29 @@
package fr.unix_experience.owncloud_sms.engine;
/*
* Copyright (c) 2014-2016, Loic Blot <loic.blot@unix-experience.fr>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
public class SmsEntry {
public int id;
public int mailboxId;
public int type;
public boolean read;
public boolean seen;
public long date;
public String address;
public String body;
}

View File

@ -0,0 +1,48 @@
package fr.unix_experience.owncloud_sms.enums;
import android.app.NotificationManager;
import android.os.Build;
import android.support.annotation.StringRes;
import fr.unix_experience.owncloud_sms.R;
public enum OCSMSNotificationChannel {
DEFAULT("OCSMS_DEFAULT", R.string.notification_channel_name_default, null),
SYNC("OCSMS_SYNC", R.string.notification_channel_name_sync, null);
static {
// well, that's a bit of a hack :/
// can be inlined in the future
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
DEFAULT.importance = NotificationManager.IMPORTANCE_DEFAULT;
SYNC.importance = NotificationManager.IMPORTANCE_LOW;
}
}
private final String channelId;
private final int nameResId;
private final Integer descResId;
private int importance;
OCSMSNotificationChannel(String channelId, @StringRes int nameResId, @StringRes Integer descResId) {
this.channelId = channelId;
this.nameResId = nameResId;
this.descResId = descResId;
}
public String getChannelId() {
return channelId;
}
public int getNameResId() {
return nameResId;
}
public Integer getDescResId() {
return descResId;
}
public int getImportance() {
return importance;
}
}

View File

@ -18,8 +18,23 @@ package fr.unix_experience.owncloud_sms.enums;
*/
public enum OCSMSNotificationType {
SYNC,
SYNC_FAILED,
DEBUG,
PERMISSION,
SYNC(OCSMSNotificationChannel.SYNC, 0),
SYNC_FAILED(OCSMSNotificationChannel.DEFAULT, 1),
PERMISSION(OCSMSNotificationChannel.DEFAULT, 2);
private final OCSMSNotificationChannel channel;
private final int notificationId;
OCSMSNotificationType(OCSMSNotificationChannel channel, int notificationId) {
this.channel = channel;
this.notificationId = notificationId;
}
public OCSMSNotificationChannel getChannel() {
return channel;
}
public int getNotificationId() {
return notificationId;
}
}

View File

@ -1,16 +1,33 @@
package fr.unix_experience.owncloud_sms.notifications;
import android.annotation.TargetApi;
/*
* Copyright (c) 2014-2017, Loic Blot <loic.blot@unix-experience.fr>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 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 Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Build;
import android.support.v4.app.NotificationCompat;
import fr.unix_experience.owncloud_sms.R;
import fr.unix_experience.owncloud_sms.enums.OCSMSNotificationChannel;
import fr.unix_experience.owncloud_sms.enums.OCSMSNotificationType;
/**
* Helper class for showing and canceling ui
@ -25,25 +42,30 @@ public class OCSMSNotificationUI {
*/
private static final String NOTIFICATION_TAG = "OCSMS_NOTIFICATION";
public static void notify(Context context, String titleString,
String contentString, OCSMSNotificationType type) {
notify(context, titleString, contentString,
type.getChannel().getChannelId(), type.getNotificationId());
}
/**
* Shows the notification, or updates a previously shown notification of
* this type, with the given parameters.
*
* @see #cancel(Context)
* @see #cancel(Context, OCSMSNotificationType)
*/
public static void notify(Context context, String titleString,
String contentString, int number) {
public static void notify(Context context, String titleString, String contentString,
String channelId, int notificationId) {
Resources res = context.getResources();
// This image is used as the notification's large icon (thumbnail).
// TODO: Remove this if your notification has no relevant thumbnail.
Bitmap picture = BitmapFactory.decodeResource(res, R.mipmap.ic_launcher);
// Bitmap picture = BitmapFactory.decodeResource(res, R.mipmap.ic_launcher);
String ticker = (titleString.length() > 20) ? titleString.substring(0, 20) : titleString;
// String ticker = (titleString.length() > 20) ? titleString.substring(0, 20) : titleString;
String title = res.getString(R.string.ui_notification_title_template, titleString);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
NotificationCompat.Builder builder = new NotificationCompat.Builder(context, channelId)
// Set appropriate defaults for the notification light, sound,
// and vibration.
@ -60,9 +82,6 @@ public class OCSMSNotificationUI {
// Set ticker text (preview) information for this notification.
//.setTicker(ticker)
// Show a number. This is useful when stacking notifications of
// a single type.
.setNumber(number)
.setStyle(new NotificationCompat.BigTextStyle()
.bigText(contentString)
.setBigContentTitle(title)
@ -70,24 +89,45 @@ public class OCSMSNotificationUI {
.setAutoCancel(true)
.setColor(context.getResources().getColor(R.color.oc_primary));
OCSMSNotificationUI.notify(context, builder.build());
notify(context, builder.build(), notificationId);
}
@TargetApi(Build.VERSION_CODES.ECLAIR)
private static void notify(Context context, Notification notification) {
private static void notify(Context context, Notification notification, int notificationId) {
NotificationManager nm = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
nm.notify(OCSMSNotificationUI.NOTIFICATION_TAG, 0, notification);
createNotificationChannels(context, nm);
nm.notify(OCSMSNotificationUI.NOTIFICATION_TAG, notificationId, notification);
}
/**
* Cancels any notifications of this type previously shown using
* {@link #notify(Context, String, String, int)}.
* {@link #notify(Context, String, String, OCSMSNotificationType)}.
*/
@TargetApi(Build.VERSION_CODES.ECLAIR)
public static void cancel(Context context) {
public static void cancel(Context context, OCSMSNotificationType type) {
cancel(context, type.getNotificationId());
}
public static void cancel(Context context, int notificationId) {
NotificationManager nm = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
nm.cancel(OCSMSNotificationUI.NOTIFICATION_TAG, 0);
nm.cancel(OCSMSNotificationUI.NOTIFICATION_TAG, notificationId);
}
private static void createNotificationChannels(Context context, NotificationManager nm) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
for (OCSMSNotificationChannel ocsmsChannel : OCSMSNotificationChannel.values()) {
NotificationChannel channel = new NotificationChannel(
ocsmsChannel.getChannelId(),
context.getString(ocsmsChannel.getNameResId()),
ocsmsChannel.getImportance());
if (ocsmsChannel.getDescResId() != null) {
channel.setDescription(context.getString(ocsmsChannel.getDescResId()));
}
nm.createNotificationChannel(channel);
}
}
}
}

View File

@ -25,8 +25,6 @@ import android.database.ContentObserver;
import android.os.Handler;
import android.util.Log;
import org.json.JSONArray;
import fr.unix_experience.owncloud_sms.R;
import fr.unix_experience.owncloud_sms.engine.ASyncSMSSync;
import fr.unix_experience.owncloud_sms.engine.AndroidSmsFetcher;
@ -35,6 +33,7 @@ import fr.unix_experience.owncloud_sms.engine.OCSMSOwnCloudClient;
import fr.unix_experience.owncloud_sms.enums.MailboxID;
import fr.unix_experience.owncloud_sms.enums.PermissionID;
import fr.unix_experience.owncloud_sms.prefs.PermissionChecker;
import ncsmsgo.SmsBuffer;
public class SmsObserver extends ContentObserver implements ASyncSMSSync {
@ -60,13 +59,13 @@ public class SmsObserver extends ContentObserver implements ASyncSMSSync {
}
AndroidSmsFetcher fetcher = new AndroidSmsFetcher(_context);
JSONArray smsList = fetcher.getLastMessage(MailboxID.ALL);
SmsBuffer smsBuffer = fetcher.getLastMessage(MailboxID.ALL);
ConnectivityMonitor cMon = new ConnectivityMonitor(_context);
// Synchronize if network is valid and there are SMS
if (cMon.isValid() && (smsList != null)) {
new SyncTask(_context, smsList).execute();
if (cMon.isValid() && (smsBuffer != null)) {
new SyncTask(_context, smsBuffer).execute();
}
}

View File

@ -43,6 +43,10 @@ public class OCSMSSharedPrefs extends SharedPrefs {
return _sPrefs.getBoolean("push_on_receive", DefaultPrefs.pushOnReceive);
}
public Boolean showSyncNotifications() {
return _sPrefs.getBoolean("show_sync_notifications", DefaultPrefs.showSyncNotifications);
}
public Boolean syncInWifi() {
return _sPrefs.getBoolean("sync_wifi", DefaultPrefs.syncWifi);
}

View File

@ -67,7 +67,7 @@ public class PermissionChecker {
// For context only show a notification
OCSMSNotificationUI.notify(context, context.getString(R.string.notif_permission_required),
context.getString(R.string.notif_permission_required_content),
OCSMSNotificationType.PERMISSION.ordinal());
OCSMSNotificationType.PERMISSION);
return false;
}

View File

@ -29,6 +29,17 @@ import fr.unix_experience.owncloud_sms.enums.MailboxID;
import fr.unix_experience.owncloud_sms.prefs.OCSMSSharedPrefs;
public class SmsDataProvider extends ContentProvider {
static String[] messageFields = {
"read",
"date",
"address",
"seen",
"body",
"_id",
"type",
//"length(address)" // For debug purposes
};
// WARNING: mandatory
public SmsDataProvider() {}
public SmsDataProvider (Context ct) {
@ -43,7 +54,7 @@ public class SmsDataProvider extends ContentProvider {
public Cursor query(String mailBox) {
return query(Uri.parse(mailBox),
new String[] { "read", "date", "address", "seen", "body", "_id", "type", },
SmsDataProvider.messageFields,
null, null, null
);
}
@ -52,16 +63,7 @@ public class SmsDataProvider extends ContentProvider {
public Cursor queryNonExistingMessages(String mailBox, String existingIds) {
Log.i(SmsDataProvider.TAG, "queryNonExistingMessages !");
if (!existingIds.isEmpty()) {
return query(Uri.parse(mailBox),
new String[] {
"read",
"date",
"address",
"seen",
"body",
"_id",
"type",
},
return query(Uri.parse(mailBox), SmsDataProvider.messageFields,
"_id NOT IN (" + existingIds + ")", null, null
);
}
@ -70,18 +72,8 @@ public class SmsDataProvider extends ContentProvider {
}
public Cursor queryMessagesSinceDate(String mailBox, Long sinceDate) {
return query(Uri.parse(mailBox),
new String[] {
"read",
"date",
"address",
"seen",
"body",
"_id",
"type",
//"length(address)" // For debug purposes
},
"date > ?", new String[] { sinceDate.toString() }, null
return query(Uri.parse(mailBox), SmsDataProvider.messageFields,
"date > ?", new String[] { sinceDate.toString() }, "date ASC"
);
}

View File

@ -31,6 +31,7 @@ import fr.unix_experience.owncloud_sms.enums.OCSMSNotificationType;
import fr.unix_experience.owncloud_sms.enums.OCSyncErrorType;
import fr.unix_experience.owncloud_sms.exceptions.OCSyncException;
import fr.unix_experience.owncloud_sms.notifications.OCSMSNotificationUI;
import fr.unix_experience.owncloud_sms.prefs.OCSMSSharedPrefs;
class SmsSyncAdapter extends AbstractThreadedSyncAdapter {
@ -41,8 +42,11 @@ class SmsSyncAdapter extends AbstractThreadedSyncAdapter {
@Override
public void onPerformSync(Account account, Bundle extras, String authority,
ContentProviderClient provider, SyncResult syncResult) {
OCSMSNotificationUI.notify(getContext(), getContext().getString(R.string.sync_title),
getContext().getString(R.string.sync_inprogress), OCSMSNotificationType.SYNC.ordinal());
if (new OCSMSSharedPrefs(getContext()).showSyncNotifications()) {
OCSMSNotificationUI.notify(getContext(), getContext().getString(R.string.sync_title),
getContext().getString(R.string.sync_inprogress), OCSMSNotificationType.SYNC);
}
try {
OCSMSOwnCloudClient _client = new OCSMSOwnCloudClient(getContext(), account);
@ -52,14 +56,13 @@ class SmsSyncAdapter extends AbstractThreadedSyncAdapter {
// and push datas
_client.doPushRequest(null);
OCSMSNotificationUI.cancel(getContext());
OCSMSNotificationUI.cancel(getContext(), OCSMSNotificationType.SYNC_FAILED);
} catch (IllegalStateException e) {
OCSMSNotificationUI.notify(getContext(), getContext().getString(R.string.fatal_error),
e.getMessage(), OCSMSNotificationType.SYNC_FAILED.ordinal());
e.getMessage(), OCSMSNotificationType.SYNC_FAILED);
} catch (OCSyncException e) {
OCSMSNotificationUI.cancel(getContext());
OCSMSNotificationUI.notify(getContext(), getContext().getString(R.string.fatal_error),
getContext().getString(e.getErrorId()), OCSMSNotificationType.SYNC_FAILED.ordinal());
getContext().getString(e.getErrorId()), OCSMSNotificationType.SYNC_FAILED);
if (e.getErrorType() == OCSyncErrorType.IO) {
syncResult.stats.numIoExceptions++;
}
@ -72,6 +75,8 @@ class SmsSyncAdapter extends AbstractThreadedSyncAdapter {
else {
Log.w(SmsSyncAdapter.TAG, "onPerformSync: unhandled response");
}
} finally {
OCSMSNotificationUI.cancel(getContext(), OCSMSNotificationType.SYNC);
}
}

View File

@ -1,224 +0,0 @@
/*
* $HeadURL$
* $Revision$
* $Date$
*
* ====================================================================
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package org.apache.commons.httpclient.contrib.ssl;
import java.io.IOException;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketAddress;
import java.net.UnknownHostException;
import javax.net.SocketFactory;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import org.apache.commons.httpclient.ConnectTimeoutException;
import org.apache.commons.httpclient.HttpClientError;
import org.apache.commons.httpclient.params.HttpConnectionParams;
import org.apache.commons.httpclient.protocol.SecureProtocolSocketFactory;
/**
* <p>
* EasySSLProtocolSocketFactory can be used to creats SSL {@link Socket}s
* that accept self-signed certificates.
* </p>
* <p>
* This socket factory SHOULD NOT be used for productive systems
* due to security reasons, unless it is a concious decision and
* you are perfectly aware of security implications of accepting
* self-signed certificates
* </p>
*
* <p>
* Example of using custom protocol socket factory for a specific host:
* <pre>
* Protocol easyhttps = new Protocol("https", new EasySSLProtocolSocketFactory(), 443);
*
* URI uri = new URI("https://localhost/", true);
* // use relative url only
* GetMethod httpget = new GetMethod(uri.getPathQuery());
* HostConfiguration hc = new HostConfiguration();
* hc.setHost(uri.getHost(), uri.getPort(), easyhttps);
* HttpClient client = new HttpClient();
* client.executeMethod(hc, httpget);
* </pre>
* </p>
* <p>
* Example of using custom protocol socket factory per default instead of the standard one:
* <pre>
* Protocol easyhttps = new Protocol("https", new EasySSLProtocolSocketFactory(), 443);
* Protocol.registerProtocol("https", easyhttps);
*
* HttpClient client = new HttpClient();
* GetMethod httpget = new GetMethod("https://localhost/");
* client.executeMethod(httpget);
* </pre>
* </p>
*
* @author <a href="mailto:oleg -at- ural.ru">Oleg Kalnichevski</a>
*
* <p>
* DISCLAIMER: HttpClient developers DO NOT actively support this component.
* The component is provided as a reference material, which may be inappropriate
* for use without additional customization.
* </p>
*/
public class EasySSLProtocolSocketFactory implements SecureProtocolSocketFactory {
private SSLContext sslcontext = null;
/**
* Constructor for EasySSLProtocolSocketFactory.
*/
public EasySSLProtocolSocketFactory() {
super();
}
private static SSLContext createEasySSLContext() {
try {
SSLContext context = SSLContext.getInstance("SSL");
context.init(
null,
new TrustManager[] {new EasyX509TrustManager(null)},
null);
return context;
} catch (Exception e) {
throw new HttpClientError(e.toString());
}
}
private SSLContext getSSLContext() {
if (this.sslcontext == null) {
this.sslcontext = createEasySSLContext();
}
return this.sslcontext;
}
/**
* @see SecureProtocolSocketFactory#createSocket(java.lang.String,int,java.net.InetAddress,int)
*/
public Socket createSocket(
String host,
int port,
InetAddress clientHost,
int clientPort)
throws IOException, UnknownHostException {
return getSSLContext().getSocketFactory().createSocket(
host,
port,
clientHost,
clientPort
);
}
/**
* Attempts to get a new socket connection to the given host within the given time limit.
* <p>
* To circumvent the limitations of older JREs that do not support connect timeout a
* controller thread is executed. The controller thread attempts to create a new socket
* within the given limit of time. If socket constructor does not return until the
* timeout expires, the controller terminates and throws an {@link ConnectTimeoutException}
* </p>
*
* @param host the host name/IP
* @param port the port on the host
* @param params {@link HttpConnectionParams Http connection parameters}
*
* @return Socket a new socket
*
* @throws IOException if an I/O error occurs while creating the socket
* @throws UnknownHostException if the IP address of the host cannot be
* determined
*/
public Socket createSocket(
final String host,
final int port,
final InetAddress localAddress,
final int localPort,
final HttpConnectionParams params
) throws IOException, UnknownHostException, ConnectTimeoutException {
if (params == null) {
throw new IllegalArgumentException("Parameters may not be null");
}
int timeout = params.getConnectionTimeout();
SocketFactory socketfactory = getSSLContext().getSocketFactory();
if (timeout == 0) {
return socketfactory.createSocket(host, port, localAddress, localPort);
} else {
Socket socket = socketfactory.createSocket();
SocketAddress localaddr = new InetSocketAddress(localAddress, localPort);
SocketAddress remoteaddr = new InetSocketAddress(host, port);
socket.bind(localaddr);
socket.connect(remoteaddr, timeout);
return socket;
}
}
/**
* @see SecureProtocolSocketFactory#createSocket(java.lang.String,int)
*/
public Socket createSocket(String host, int port)
throws IOException, UnknownHostException {
return getSSLContext().getSocketFactory().createSocket(
host,
port
);
}
/**
* @see SecureProtocolSocketFactory#createSocket(java.net.Socket,java.lang.String,int,boolean)
*/
public Socket createSocket(
Socket socket,
String host,
int port,
boolean autoClose)
throws IOException, UnknownHostException {
return getSSLContext().getSocketFactory().createSocket(
socket,
host,
port,
autoClose
);
}
public boolean equals(Object obj) {
return ((obj != null) && obj.getClass().equals(EasySSLProtocolSocketFactory.class));
}
public int hashCode() {
return EasySSLProtocolSocketFactory.class.hashCode();
}
}

View File

@ -1,103 +0,0 @@
/*
* ====================================================================
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package org.apache.commons.httpclient.contrib.ssl;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import javax.net.ssl.TrustManagerFactory;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
/**
* <p>
* EasyX509TrustManager unlike default {@link X509TrustManager} accepts
* self-signed certificates.
* </p>
* <p>
* This trust manager SHOULD NOT be used for productive systems
* due to security reasons, unless it is a concious decision and
* you are perfectly aware of security implications of accepting
* self-signed certificates
* </p>
*
* @author <a href="mailto:adrian.sutton@ephox.com">Adrian Sutton</a>
* @author <a href="mailto:oleg@ural.ru">Oleg Kalnichevski</a>
*
* <p>
* DISCLAIMER: HttpClient developers DO NOT actively support this component.
* The component is provided as a reference material, which may be inappropriate
* for use without additional customization.
* </p>
*/
public class EasyX509TrustManager implements X509TrustManager
{
private X509TrustManager standardTrustManager = null;
/**
* Constructor for EasyX509TrustManager.
*/
public EasyX509TrustManager(KeyStore keystore) throws NoSuchAlgorithmException, KeyStoreException {
super();
TrustManagerFactory factory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
factory.init(keystore);
TrustManager[] trustmanagers = factory.getTrustManagers();
if (trustmanagers.length == 0) {
throw new NoSuchAlgorithmException("no trust manager found");
}
this.standardTrustManager = (X509TrustManager)trustmanagers[0];
}
/**
* @see javax.net.ssl.X509TrustManager#checkClientTrusted(X509Certificate[],String authType)
*/
public void checkClientTrusted(X509Certificate[] certificates,String authType) throws CertificateException {
standardTrustManager.checkClientTrusted(certificates,authType);
}
/**
* @see javax.net.ssl.X509TrustManager#checkServerTrusted(X509Certificate[],String authType)
*/
public void checkServerTrusted(X509Certificate[] certificates,String authType) throws CertificateException {
if ((certificates != null) && (certificates.length == 1)) {
certificates[0].checkValidity();
} else {
standardTrustManager.checkServerTrusted(certificates,authType);
}
}
/**
* @see javax.net.ssl.X509TrustManager#getAcceptedIssuers()
*/
public X509Certificate[] getAcceptedIssuers() {
return this.standardTrustManager.getAcceptedIssuers();
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -0,0 +1,28 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp"
android:height="108dp"
android:autoMirrored="true"
android:viewportWidth="1344"
android:viewportHeight="1344">
<path
android:fillType="evenOdd"
android:pathData="M0,0h1344v1344h-1344z"
android:strokeLineJoin="round">
<aapt:attr name="android:fillColor">
<gradient
android:endX="1344"
android:endY="1.2959057E-4"
android:startX="163.34073"
android:startY="1344"
android:type="linear">
<item
android:color="#FF0082C9"
android:offset="0" />
<item
android:color="#FF1CAFFF"
android:offset="1" />
</gradient>
</aapt:attr>
</path>
</vector>

View File

@ -0,0 +1,22 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="816.5869"
android:viewportHeight="816.5869">
<group android:translateX="20.414673"
android:translateY="20.414673">
<group android:translateX="131.87878"
android:translateY="131.87878">
<path
android:pathData="m122.444,89.125c-18.459,0 -33.319,14.115 -33.319,31.648l0,143.74c0,17.533 14.86,31.648 33.319,31.648l38.249,0 152.528,126.434 -49.393,-126.434 125.728,0c18.459,0 33.319,-14.115 33.319,-31.648l0,-143.74c0,-17.533 -14.86,-31.648 -33.319,-31.648zM131.499,116.333 L380.501,116.333c9.089,0 16.405,5.854 16.405,13.126l0,8.539c0,7.271 -7.317,13.124 -16.405,13.124l-249.003,0c-9.089,0 -16.406,-5.852 -16.406,-13.124l0,-8.539c0,-7.271 7.317,-13.126 16.406,-13.126zM131.499,176.841 L380.501,176.841c9.089,0 16.405,5.854 16.405,13.126l0,8.537c0,7.271 -7.317,13.126 -16.405,13.126l-249.003,0c-9.089,0 -16.406,-5.854 -16.406,-13.126l0,-8.537c0,-7.271 7.317,-13.126 16.406,-13.126zM131.499,236.851 L221.453,236.851c9.089,0 16.405,7.988 16.405,15.259l0,6.404c0,7.271 -7.317,13.126 -16.405,13.126l-89.954,0c-9.089,0 -16.406,-5.854 -16.406,-13.126l0,-6.404c0,-7.271 7.317,-15.259 16.406,-15.259z"
android:strokeAlpha="0"
android:strokeLineJoin="miter"
android:strokeWidth="0.25007507"
android:fillColor="#ffffff"
android:strokeColor="#000000"
android:fillType="evenOdd"
android:fillAlpha="1"
android:strokeLineCap="butt"/>
</group>
</group>
</vector>

View File

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context=".activities.PrivacyPolicyActivity">
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar"
android:layout_width="match_parent"
android:layout_height="@dimen/app_bar_height"
android:fitsSystemWindows="true"
android:theme="@style/OcSmsTheme.AppBarOverlay">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/toolbar_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:toolbarId="@+id/toolbar">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
app:popupTheme="@style/OcSmsTheme.PopupOverlay" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_privacy_policy" />
</android.support.design.widget.CoordinatorLayout>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context=".activities.PrivacyPolicyActivity"
tools:showIn="@layout/activity_privacy_policy">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/text_margin"
android:text="@string/privacy_policy_large_text" />
</android.support.v4.widget.NestedScrollView>

View File

@ -1,24 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="@dimen/nav_header_height"
android:background="@drawable/side_nav_bar"
android:gravity="bottom"
android:orientation="vertical"
android:padding="@dimen/activity_horizontal_margin"
android:theme="@style/ThemeOverlay.AppCompat.Dark">
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/side_nav_bar"
android:gravity="bottom"
android:orientation="horizontal"
android:padding="10dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark">
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher"/>
android:contentDescription="@string/app_name"
android:paddingTop="24dp"
android:src="@mipmap/ic_launcher" />
<TextView
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/standard_half_padding"
android:layout_gravity="center_vertical"
android:paddingLeft="12dp"
android:paddingStart="12dp"
android:paddingTop="24dp"
android:text="@string/app_name"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"/>
android:textAppearance="@style/TextAppearance.AppCompat.Title" />
</LinearLayout>
</LinearLayout>

View File

@ -22,6 +22,10 @@
android:id="@+id/nav_appinfo_perms"
android:icon="@drawable/ic_information"
android:title="@string/action_appinfo_perms"/>
<item
android:id="@+id/nav_appinfo_privacy_policy"
android:icon="@drawable/ic_information"
android:title="@string/action_appinfo_privacy_policy"/>
</group>
<item android:title="@string/communicate">

View File

@ -0,0 +1,10 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="fr.unix_experience.owncloud_sms.activities.PrivacyPolicyActivity">
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:title="@string/action_settings"
app:showAsAction="never" />
</menu>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background"/>
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
</adaptive-icon>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background"/>
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
</adaptive-icon>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
* Copyright (c) 2014, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
-->
<resources
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingTranslation">
<!-- Translations must begin here -->
<string name="gp_short_description">يقوم تطبيق ناكست كلاود للرسائل القصيرة بمُزامنَة رسائلك النصية القصيرة المحلية مع خادمك النيكست كلاود.</string>
<string name="gp_description">
تطبيق نيكست كلاود الخاص بالرسائل القصيرة يقوم بمزامنة رسائلك القصيرة على خادم نيكست كلاود البعيد و يُمكّنك من قراءة رسائلك منه. إرسال الرسائل القصيرة سيكون متاحاً في المستقبل القريب.
التطبيق متوافق تماماً مع نسخ أندرويد من 4.0 إلى 6.0.</string>
</resources>

View File

@ -0,0 +1,200 @@
<?xml version="1.0" encoding="utf-8"?><!--
/*
* Copyright (c) 2014-2015, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
-->
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<!-- Translation version, reference for translators -->
<string name="translation_version">7</string>
<!-- System strings, do not translate -->
<string name="app_name">الرسائل القصيرة على نكست كلاود Nextcloud SMS</string>
<string name="login_logo">شعار تسجيل الدخول</string>
<!-- Translations must begin there -->
<!-- Preferences -->
<string name="pref_title_sync">الرسائل القصيرة SMS - سريع</string>
<string name="pref_title_sync_frequency">تردُّد المزامنة السريعة</string>
<string name="pref_title_slow_sync">الرسائل القصيرة SMS - بطيء و سريع</string>
<string name="pref_title_slow_sync_frequency">تردُّد المزامنة البطيء الآمن </string>
<string name="action_settings">الإعدادات</string>
<string name="sync_now">زامن الآن</string>
<string name="pref_category_sync">المُزامنة</string>
<string name="title_global_pref_to_general_prefs">الخيارات العامة</string>
<string name="summary_global_pref_to_general_prefs">خيارات المُزامنة</string>
<string name="summary_notif_prefs">الإشعارات</string>
<string name="pref_header_data_sync">بيانات &amp; مُزامَنة</string>
<string name="title_activity_general_settings">الإعدادات العامة</string>
<string-array name="pref_sync_frequency_titles">
<item>5 دقائق</item>
<item>15 دقيقة</item>
<item>30 دقيقة</item>
<item>1 ساعة</item>
<item>3 ساعات</item>
<item>6 ساعات</item>
<item>12 ساعة</item>
<item>24 ساعة</item>
<item>إطلاقاً</item>
</string-array>
<string-array name="pref_sync_bulk_max_messages_titles">
<item>100 رسالة قصيرة</item>
<item>1000 رسالة قصيرة</item>
<item>2000 رسالة قصيرة</item>
<item>5000 رسالة قصيرة</item>
<item>10000 رسالة قصيرة</item>
<item>25000 رسالة قصيرة</item>
<item>كل رسالة قصيرة لم تتم مُزامنتها</item>
</string-array>
<string-array name="pref_slow_sync_frequency_titles">
<item>1 ساعة</item>
<item>3 ساعات</item>
<item>6 ساعات</item>
<item>12 ساعة</item>
<item>24 ساعة</item>
<item>إطلاقاً</item>
</string-array>
<string name="pref_push_on_receive">زُجَّ بالرسائل القصيرة عند استلامها</string>
<string name="pref_sync_wifi">المزامنة عبر الواي فاي</string>
<string name="pref_sync_4g">المزامنة عبر 4G</string>
<string name="pref_sync_3g">المزامنة عبر 3G</string>
<string name="pref_sync_gprs">المزامنة في وضع 2.5G (GPRS)</string>
<string name="pref_sync_2g">المزامنة عبر 2G</string>
<string name="pref_sync_others">المزامنة في الأوضاع الأخرى</string>
<string name="title_activity_login">تسجيل الدخول</string>
<!-- Login -->
<string name="prompt_login">الدخول</string>
<string name="prompt_password">كلمة المرور</string>
<string name="action_sign_in">تسجيل الدخول أو إنشاء حساب</string>
<string name="action_sign_in_short">تسجيل الدخول</string>
<string name="error_invalid_login">اسم المستخدم أو كلمة المرور خاطئة</string>
<string name="error_invalid_password">كلمة المرور قصيرةٌ جداً</string>
<string name="error_field_required">هذا الحقل مطلوب</string>
<string name="prompt_serverURI">عنوان الخادم</string>
<string name="error_invalid_server_address">عنوان الخادم غير صالح</string>
<string name="error_connection_failed">تعذّر الاتصال. تأكد أن هذا هو الخادم الصحيح</string>
<string name="error_http_connection_failed">تعذّر أداء اتصال HTTP. رجاءً، تأكّد من وجود خادوم الويب</string>
<!-- Main activity -->
<string name="ma_title_rate_us">قم بتقييمنا !</string>
<string name="ma_title_add_account">إضافة حساب</string>
<string name="ma_title_welcome">مرحباً</string>
<string name="ma_content_welcome">مرحبًا بك في تطبيق \"الرسائل القصيرة على نكست كلاود\" Nextcloud SMS. يتيح لك هذا التطبيق مُزامنة رسائل SMS الخاصة بك مع خادوم نكست كلاود الخاص بك باستخدام تطبيق SMS.</string>
<string name="ma_title_remote_account">حسابٌ قَصِيٌّ</string>
<string name="choose_account">إختر حسابًا</string>
<!-- Restauration -->
<string name="title_activity_select_account">إختيار حساب</string>
<string name="title_activity_select_contact">إختيار جهة اتصالٍ</string>
<string name="no_account_configured">لم يتم إعداد أي حساب حتى الآن.</string>
<!-- Notifications -->
<string name="sync_title">عملية المُزامنة</string>
<string name="sync_inprogress">مُزامنة تحت الإجراء ...</string>
<string name="fatal_error">خطأ فادح !</string>
<string name="notification_channel_name_default">التلقائي</string>
<string name="notification_channel_name_sync">زامن</string>
<!-- Errors -->
<string name="err_sync_get_smslist">الخطأ # 1: تلقّي بياناتٍ غير صالحة من الخادوم عند جلب الرسائل السابقة</string>
<string name="err_sync_craft_http_request">خطأ #2: خطأ عند صياغة طلب HTTP</string>
<string name="err_sync_push_request">خطأ #3: فشل في طلب الدفع Push request</string>
<string name="err_sync_push_request_resp">خطأ #4: تلقّي بياناتٍ غير صالحة من الخادوم عند زجّ البيانات pushing data</string>
<string name="err_sync_create_json_null_smslist">الخطأ #5: قائمة رسائل قصيرة فارغة NULL SMS List</string>
<string name="err_sync_create_json_put_smslist">الخطأ # 6: خطأ أثناء صياغة طلب أسلوب الإشعارات Push</string>
<string name="err_sync_create_json_request_encoding">خطأ #7: ترميز غير مدعوم عند توليد الطلب </string>
<string name="err_sync_auth_failed">خطأ #8: فشلت المُصادقة</string>
<string name="err_sync_http_request_returncode_unhandled">خطأ #9: قام الخادوم بتعيين كود إرجاع HTTP غير مُعالجٍ unhandled</string>
<string name="err_sync_http_request_connect">خطأ #11: تعذّر الاتصال مع خادوم نكست كلاود</string>
<string name="err_sync_http_request_httpexception">خطأ #12: تعذّر الاتصال مع خادوم نكست كلاود</string>
<string name="err_sync_http_request_ioexception">خطأ #13: تعذّر الاتصال مع خادوم نكست كلاود</string>
<string name="err_sync_http_request_resp">خطأ #14: تعذّر تحليل استجابة الخادم</string>
<string name="err_sync_http_request_parse_resp">خطأ #15: تعذّر تحليل استجابة الخادم</string>
<string name="err_sync_no_connection_available">خطأ #16: لا يوجد اتصال بيانات مُتاح</string>
<string name="err_sync_account_unparsable">الخطأ # 17: حسابٌ مُشوّهٌ. يُرجى إعادة تكوينه</string>
<string name="err_sync_ocsms_not_installed_or_oc_upgrade_required">خطأ #18: تطبيق نكست كلاود للرسائل القصيرة لم يتم تنصيبه، أو أن إصدار نكست كلاود يحتاج إلى ترقية </string>
<string name="err_fetch_phonelist">قائمة الهواتف المستلمة من الخادم غير صحيحة.</string>
<string name="err_proto_v2">الخادوم لا يدعم هذه الميزة. تأكد أن رقم إصداره 1.6 أو أحدث.</string>
<string name="contactinfos_title">معلومات عن جهة الاتصال</string>
<string name="subtitle_contact_phones">- هواتف جهة الاتصال</string>
<string name="pref_title_bulk_messages">أقصى عدد من الرسائل يتم إرسالها عند كل مُزامنة</string>
<string name="contactinfos_list">جهات الاتصال</string>
<string name="function_not_available">هذه الوظيفة ليست متاحة حتى الآن</string>
<string name="ui_notification_title_template">الرسائل القصيرة على نكست كلاود: %1$s</string>
<string name="communicate">إتّصِل</string>
<string name="title_activity_main2">Main2Activity</string>
<string name="navigation_drawer_open">فتح درج التنقل </string>
<string name="navigation_drawer_close">أقفل دُرج التّنقل </string>
<string name="ma_title_my_accounts">حساباتي</string>
<string name="ma_content_swipeaction">إسحب من اليسار إلى اليمين للوصول إلى قائمة الإجراءات action menu.</string>
<string name="cancel">إلغاء</string>
<string name="understood">عُلِم</string>
<string name="notif_permission_required">أذونات سماح مطلوبة</string>
<string name="notif_permission_required_content">صلاحيات تنفيذ عملية المزامنة غير موجودة. يرجى إصلاح ذلك في إعدادات التطبيق.</string>
<string name="please_fix_it">يرجى تصليحه.</string>
<string name="err_cannot_read_contacts">ليس بإمكاننا النفاذ لقراءة جهات اتصالك.</string>
<string name="err_cannot_read_sms">ليس بإمكاننا قراءة رسائلك القصيرة.</string>
<string name="action_appinfo_perms">معلومات التطبيق و الأذونات</string>
<string name="restore_all_messages">استرجاع كافة الرسائل</string>
<string name="account_actions">إجراءات الحساب</string>
<string name="error_connection_failed_not_found">فشل الاتصال. قام الخادم بإرجاع رسالة الخطأ رقم 404 NOT FOUND. تأكّد من تعيين المسار الصحيح path لخادوم نكست كلاود.</string>
<string name="nothing_to_sync">ليس هناك أي شيء للمزامنة.</string>
<string name="feature_not_already_implemented">هذه الخاصية لم يتم تطويرها حتى الآن و ستكون جاهزةً قريباً </string>
<string name="pref_title_minimum_sync_chars">الحد الأدنى لطول رقم الهاتف</string>
<string name="err_didnt_find_account_restore">لم نعثر على حسابك لاستعادة رسالتك. و يُفترض ألّا يحدث مثل هذا الخطأ.</string>
<string name="launch_restore">إستعادة رسائلي القصيرة</string>
<string name="error_make_default_sms_app">يُرجى جعل هذا التطبيق هو تطبيق الرسائل القصيرة الافتراضي للسماح باستعادة رسائلك. هذا القيد منصوصٌ عليه في الإصدار قم Android 4.4.</string>
<string name="fix_permissions">إصلاح الصلاحيات</string>
<string name="err_kitkat_required">يلزم أندرويد من الإصدار 4.4 أو أحدث لاستخدام هذه الميزة.</string>
<string name="restore_finished">تمت الآن عملية استعادة الرسائل القصيرة.</string>
<string name="x_messages_restored">رسائل تمّت استعادتها &#8230;</string>
<string name="err_no_connection">لا يوجد اتصالٌ متاحٌ ، يرجى التأكد من أن لديك اتصال بياناتٍ صالحٍ.</string>
<string name="reinit_sync_cursor">أعد تشغيل مؤشر التزامن sync cursor.</string>
<string name="reinit_sync_cursor_confirm">هل أنت متأكد من أنك تريد إعادة تهيئة مؤشر المزامنة sycn cursor؟ يمكن أن يؤدي هذا إلى إبطاء المزامنة التالية إذا كان هنالك أعدادٌ كبيرةٌ من الرسائل القديمة التي تحتاج إلى مُزامنةٍ.</string>
<string name="yes_confirm">نعم</string>
<string name="no_confirm">لا</string>
<string name="pref_show_sync_notifications">إظهار إشعارات المزامنة</string>
<string name="sync_complete">تمت عملية المزامنة</string>
<string name="err_sync_http_write_failed">الخطأ #19: فشل كتابة stream ـ HTTP عند زجّ pushing البيانات إلى الخادوم</string>
<string name="err_sync_http_request_protocol_exception">خطأ #20: فشل في تعيين رقم الإصدار المناسب لبروتوكول HTTP.</string>
<string name="action_appinfo_privacy_policy">سياسة الخصوصية</string>
<string name="privacy_policy_large_text">
\"نظرة عامة
تطبيق الرسائل القصيرة من نكست كلاود Nextcloud SMS.
سياسة الخصوصية هذه\"
تهدف إلى إعلامك بالبيانات التي يتم جمعها بواسطة هذا التطبيق.
ما هي المعلومات التي يتم جمعها؟
يتم جمع رسائل SMS وسجل المكالمات فقط بواسطة التطبيق.
أين يتم إرسال المعلومات؟
لا يتم إرسال المعلومات إلى خوادم فريق نكست كلاود ولا إلى خوادم فريق تطبيق نكست كلاود للرسائل القصيرة ولا إلى أي حكومة أو كيان آخر.
عند تكوين حساب نكست كلاود في التطبيق ، فإنك توافق على أن يقوم مالك أو مُشغل خادوم نكست كلاود بتخزين رسائل SMS وبيانات سجل المكالمات في بنيته التحتية و تحت مسؤوليته.
لا نوصي باستخدام حسابٍ على خادومٍ عاّمٍ. بياناتك الخاصة يجب أن تكون تحت سيطرتك على خادومك الخاص.</string>
</resources>

View File

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
* Copyright (c) 2014, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
-->
<resources
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingTranslation">
<!-- Translations must begin here -->
<string name="gp_short_description">Nextcloud SMS sincroniza los SMS na to instancia de Nextcloud</string>
<string name="gp_description">
L\'aplicación Nextcloud SMS sincroniza los SMS nuna insntacia remota de Nextcloud y déxate lleer los mensaxes dende ellí.
Nuna versión futura, va poder unviase SMS dende Nextcloud..
L\'aplicación ye completamente compatible coles d\'Android 4.0 n\'adelantre
</string>
</resources>

View File

@ -0,0 +1,121 @@
<?xml version="1.0" encoding="utf-8"?><!--
/*
* Copyright (c) 2014-2015, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
-->
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<!-- Translation version, reference for translators -->
<string name="translation_version">7</string>
<!-- System strings, do not translate -->
<string name="app_name">Nextcloud SMS</string>
<string name="pref_title_sync_frequency">Frecuencia de sincronización rápida</string>
<string name="action_settings">Configuración</string>
<string name="sync_now">Sincronizar agora</string>
<string name="pref_category_sync">Sincronización</string>
<string name="title_global_pref_to_general_prefs">Preferencies xenerales</string>
<string name="summary_notif_prefs">Avisos</string>
<string name="pref_header_data_sync">Datos y sincronización</string>
<string name="title_activity_general_settings">Configuración xeneral</string>
<string-array name="pref_sync_frequency_titles">
<item>5 minutos</item>
<item>15 minutos</item>
<item>30 minutos</item>
<item>1 hora</item>
<item>3 hores</item>
<item>6 hores</item>
<item>12 hores</item>
<item>24 hores</item>
<item>Enxamás</item>
</string-array>
<string-array name="pref_sync_bulk_max_messages_titles">
<item>100 SMS</item>
<item>1000 SMS</item>
<item>2000 SMS</item>
<item>5000 SMS</item>
<item>10000 SMS</item>
<item>25000 SMS</item>
</string-array>
<string-array name="pref_slow_sync_frequency_titles">
<item>1 hora</item>
<item>3 hores</item>
<item>6 hores</item>
<item>12 hores</item>
<item>24 hores</item>
<item>Enxamás</item>
</string-array>
<string name="pref_sync_wifi">Sincronizar nes Wi-Fi</string>
<string name="pref_sync_4g">Sincronizar en 4G</string>
<string name="pref_sync_3g">Sincronizar en 3G</string>
<string name="pref_sync_gprs">Sincronizar en GPRS</string>
<string name="pref_sync_2g">Sincronizar en 2G</string>
<string name="pref_sync_others">Sincronizar nos demás moos</string>
<string name="title_activity_login">Aniciar la sesión</string>
<!-- Login -->
<string name="prompt_login">Aniciar la sesión</string>
<string name="prompt_password">Contraseña</string>
<string name="action_sign_in_short">Aniciar la sesión</string>
<string name="error_invalid_password">Esta contraseña ye mui curtia</string>
<string name="error_field_required">El campu ye obligatoriu</string>
<string name="prompt_serverURI">Direición del sirvidor</string>
<string name="error_invalid_server_address">La direición del sirvidor ye inválida</string>
<!-- Main activity -->
<string name="ma_title_rate_us">¡Valóranos!</string>
<string name="ma_title_add_account">Amestar una cuenta</string>
<string name="ma_title_welcome">Afáyate</string>
<string name="ma_title_remote_account">Cuenta remota</string>
<string name="no_account_configured">Nun se configuró nenguna cuenta</string>
<string name="sync_inprogress">Sincronización en cursu…</string>
<string name="fatal_error">¡Error fatal!</string>
<string name="notification_channel_name_default">Por defeutu</string>
<string name="notification_channel_name_sync">Sincronizar</string>
<string name="err_sync_http_request_resp">Error #14: nun ye posible analizar la rempuesta del sirvidor</string>
<string name="err_sync_http_request_parse_resp">Error #15: nun ye posible analizar la rempuesta del sirvidor</string>
<string name="contactinfos_list">Llista de contautos</string>
<string name="function_not_available">Esta función entá nun ta disponible.</string>
<string name="ui_notification_title_template">Nextcloud SMS: %1$s</string>
<string name="title_activity_main2">Main2Activity</string>
<string name="navigation_drawer_open">Abrir el caxón de navegación</string>
<string name="navigation_drawer_close">Zarrar el caxón de navegación</string>
<string name="ma_title_my_accounts">Les mios cuentes</string>
<string name="cancel">Encaboxar</string>
<string name="understood">Entendílo</string>
<string name="notif_permission_required_content">Falten dalgunos permisos pa facer el procesu de sincronización. Igua esti problema na configuración de l\'aplicación</string>
<string name="err_cannot_read_contacts">Nun podemos lleer los contautos.</string>
<string name="err_cannot_read_sms">Nun podemos lleer los SMS.</string>
<string name="restore_all_messages">Restaurar tolos mensaxes</string>
<string name="nothing_to_sync">Nun hai nada pa sincronizar.</string>
<string name="feature_not_already_implemented">Esta función entá nun s\'implementó mas va tar disponible pronto.</string>
<string name="yes_confirm"></string>
<string name="no_confirm">Non</string>
<string name="sync_complete">Completóse la sincronización</string>
<string name="action_appinfo_privacy_policy">Política de privacidá</string>
</resources>

View File

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
* Copyright (c) 2014, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
-->
<resources
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingTranslation">
<!-- Translations must begin here -->
<string name="gp_short_description">Nextcloud SMS синхронизира вашия локален SMS с вашия екземпляр на Nextcloud</string>
<string name="gp_description">
Приложението Nextcloud SMS, синхронизира вашите SMS съобщения на отдалечен екземпляр на Nextcloud и ви позволява да четете съобщенията си от него.
Изпращането на SMS от екземпляр на Nextcloud ще е възможно в бъдеща версия.
Приложението е напълно съвместимо с версии от Android 4.0 до 6.0
</string>
</resources>

View File

@ -0,0 +1,212 @@
<?xml version="1.0" encoding="utf-8"?><!--
/*
* Copyright (c) 2014-2015, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
-->
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<!-- Translation version, reference for translators -->
<string name="translation_version">7</string>
<!-- System strings, do not translate -->
<string name="app_name">Nextcloud SMS</string>
<string name="login_logo">Лого за вход</string>
<!-- Translations must begin there -->
<!-- Preferences -->
<string name="pref_title_sync">SMS - Бързо</string>
<string name="pref_title_sync_frequency">Честота на бърза синхронизация</string>
<string name="pref_title_slow_sync">SMS - бавно и сигурно</string>
<string name="pref_title_slow_sync_frequency">Сигурна честота и бавно синхронизиране</string>
<string name="action_settings">Настройки</string>
<string name="sync_now">Синхронизиране сега</string>
<string name="pref_category_sync">Синхронизиране</string>
<string name="title_global_pref_to_general_prefs">Общи предпочитания</string>
<string name="summary_global_pref_to_general_prefs">Опции за синхронизиране</string>
<string name="summary_notif_prefs">Известия</string>
<string name="pref_header_data_sync">Данни и Синхронизиране</string>
<string name="title_activity_general_settings">Общи настройки</string>
<string-array name="pref_sync_frequency_titles">
<item>5 минути</item>
<item>15 минути</item>
<item>30 минути</item>
<item>1 час</item>
<item>3 часа</item>
<item>6 часа</item>
<item>12 часа</item>
<item>24 часа</item>
<item>Никога</item>
</string-array>
<string-array name="pref_sync_bulk_max_messages_titles">
<item>100 SMS</item>
<item>1000 SMS</item>
<item>2000 SMS</item>
<item>5000 SMS</item>
<item>10000 SMS</item>
<item>25000 SMS</item>
<item>Всеки SMS не се синхронизира</item>
</string-array>
<string-array name="pref_slow_sync_frequency_titles">
<item>1 час</item>
<item>3 часа</item>
<item>6 часа</item>
<item>12 часа</item>
<item>24 часа</item>
<item>Никога</item>
</string-array>
<string name="pref_push_on_receive">Насочен SMS към приемане</string>
<string name="pref_sync_wifi">Синхронизиране с Wi-Fi</string>
<string name="pref_sync_4g">Синхронизиране с 4G</string>
<string name="pref_sync_3g">Синхронизиране с 3G</string>
<string name="pref_sync_gprs">Синхронизиране с 2.5G (GPRS)</string>
<string name="pref_sync_2g">Синхронизиране с 2G</string>
<string name="pref_sync_others">Синхронизиране в други режими</string>
<string name="title_activity_login">Вписване</string>
<!-- Login -->
<string name="prompt_login">Вписване</string>
<string name="prompt_password">Парола</string>
<string name="action_sign_in">Влезане или регистриране</string>
<string name="action_sign_in_short">Вписване</string>
<string name="error_invalid_login">Грешно име или парола</string>
<string name="error_invalid_password">Тази парола е твърде кратка</string>
<string name="error_field_required">Полето е задължително</string>
<string name="prompt_serverURI">Адрес на сървъра</string>
<string name="error_invalid_server_address">Адресът на сървъра не е валиден</string>
<string name="error_connection_failed">Връзката е неуспешна, уверете се, че това е правилният сървър </string>
<string name="error_http_connection_failed">Не може да се осъществи HTTP връзка. Моля, уверете се, че има уеб сървър</string>
<!-- Main activity -->
<string name="ma_title_rate_us">Оценете ни!</string>
<string name="ma_title_add_account">Добавяне на профил</string>
<string name="ma_title_welcome">Добре дошли</string>
<string name="ma_content_welcome">Добре дошли в приложението Nextcloud SMS. Това приложение ви позволява да синхронизирате вашите SMS с вашия Nextcloud екземпляр като изполвате SMS приложение.</string>
<string name="ma_title_remote_account">Отдалечен профил</string>
<string name="choose_account">Изберете профил</string>
<!-- Restauration -->
<string name="title_activity_select_account">Избери акаунт</string>
<string name="title_activity_select_contact">Избор на контакт</string>
<string name="no_account_configured">Няма конфигуриран профил.</string>
<!-- Notifications -->
<string name="sync_title">Процес на синхронизиране</string>
<string name="sync_inprogress">В ход на синхронизиране...</string>
<string name="fatal_error">Фатална грешка !</string>
<string name="notification_channel_name_default">По подразбиране</string>
<string name="notification_channel_name_sync">Синхронизиране</string>
<!-- Errors -->
<string name="err_sync_get_smslist">Грешка #1: Невалидни данни, получени от сървъра при получаване на предишни съобщения</string>
<string name="err_sync_craft_http_request">Грешка #2: Грешка при създаването на HTTP заявка</string>
<string name="err_sync_push_request">Грешка #3: Неуспешна /насочена/Push заявка </string>
<string name="err_sync_push_request_resp">Грешка #4: Невалидни данни, получени от сървъра при насочване на данни</string>
<string name="err_sync_create_json_null_smslist">Грешка #5: NULL SMS Списък</string>
<string name="err_sync_create_json_put_smslist">Грешка #6: Грешка при изработването на /насочена/push заявка</string>
<string name="err_sync_create_json_request_encoding">Грешка #7: Неподдържано кодиране при генериране на заявка</string>
<string name="err_sync_auth_failed">Error #8: Authentication failed</string>
<string name="err_sync_http_request_returncode_unhandled">Грешка #9: Сървърът задава необработен HTTP код за връщане</string>
<string name="err_sync_http_request_connect">Грешка #11: Не може да се осъществи връзка с екземпляр на Nextcloud</string>
<string name="err_sync_http_request_httpexception">Грешка #12: Не може да се осъществи връзка с екземпляр на Nextcloud</string>
<string name="err_sync_http_request_ioexception">Грешка #13: Не може да се осъществи връзка с екземпляр на Nextcloud</string>
<string name="err_sync_http_request_resp">Грешка #14: Не може да се анализира отговора на сървъра</string>
<string name="err_sync_http_request_parse_resp">Грешка #15: Не може да се анализира отговора на сървъра</string>
<string name="err_sync_no_connection_available">Грешка #16: Няма налична връзка за данни</string>
<string name="err_sync_account_unparsable">Грешка #17: деформиран профил. Моля, конфигурирайте го отново</string>
<string name="err_sync_ocsms_not_installed_or_oc_upgrade_required">Грешка #18: Приложението Nextcloud SMS не е инсталирано или Nextcloud очаква надстройка</string>
<string name="err_fetch_phonelist">Получен е невалиден телефонен списък от сървъра. </string>
<string name="err_proto_v2">Сървърът не поддържа тази функция. Уверете се, че версията на сървъра е поне 1.6.</string>
<string name="contactinfos_title">Информация за контакт</string>
<string name="subtitle_contact_phones">- Телефони за контакт</string>
<string name="pref_title_bulk_messages">Максимален брой съобщения за изпращане при синхронизация</string>
<string name="contactinfos_list">Списък с контакти</string>
<string name="function_not_available">Тази функция все още не е налична.</string>
<string name="ui_notification_title_template">Nextcloud SMS: %1$s</string>
<string name="communicate">Комуникация</string>
<string name="title_activity_main2">Main2Activity</string>
<string name="navigation_drawer_open">Отворяне на чекмеджето за навигация</string>
<string name="navigation_drawer_close">Затворяне на чекмеджето за навигация</string>
<string name="ma_title_my_accounts">Моите профили</string>
<string name="ma_content_swipeaction">Плъзгане отляво надясно за достъп до менюто с действия.</string>
<string name="cancel">Отказ</string>
<string name="understood">Разбрано</string>
<string name="notif_permission_required">Нужни са права</string>
<string name="notif_permission_required_content">Липсват някои права за да се извърши процеса на синхронизиране. Моля, поправете ги в настройките на приложението</string>
<string name="please_fix_it">Моля, поправете го.</string>
<string name="err_cannot_read_contacts">Контактите не могат да бъдат прочетени</string>
<string name="err_cannot_read_sms">SMS не могат да бъдат прочетени.</string>
<string name="action_appinfo_perms">Информация за приложения и права</string>
<string name="restore_all_messages">Възстановене на всички съобщения</string>
<string name="account_actions">Действия на профил</string>
<string name="error_connection_failed_not_found">Връзката е неуспешна, сървърът връща 404 NOT FOUND/НЕ Е НАМЕРЕН/. Уверете се, че сте задали правилния път за вашия екземпляр на Nextcloud.</string>
<string name="nothing_to_sync">Няма с какво да се синхронизира.</string>
<string name="feature_not_already_implemented">Тази функция все още не е внедрена и скоро ще бъде налична.</string>
<string name="pref_title_minimum_sync_chars">Минимална дължина на телефонния номер</string>
<string name="err_didnt_find_account_restore">Не намерихме вашият профил, за да възстановим съобщението ви, това е много странна ситуация.</string>
<string name="launch_restore">Възстановяване на моя SMS</string>
<string name="error_make_default_sms_app">Моля, направете това приложение, да е SMS приложение по подразбиране , за да разрешите възстановяването на вашите съобщения. Това ограничение е въведено от Android 4.4.</string>
<string name="fix_permissions">Поправка на права</string>
<string name="err_kitkat_required">За да използвате тази функция, е нужно да използвате Android 4.4 или по -нова версия.</string>
<string name="restore_finished">Възстановяването на SMS вече приключи.</string>
<string name="x_messages_restored">възстановени съобщения &#8230;</string>
<string name="err_no_connection">Няма налична връзка, моля, уверете се, че имате валидна връзка за данни.</string>
<string name="reinit_sync_cursor">Повторно инициализиране на курсора за синхронизация</string>
<string name="reinit_sync_cursor_confirm">Сигурни ли сте, че искате да инициализирате отново курсора за синхронизация? Това може да забави следващата синхронизация, ако открием много стари съобщения, които не са синхронизирани със сървъра.</string>
<string name="yes_confirm">Да</string>
<string name="no_confirm">Не</string>
<string name="pref_show_sync_notifications">Показване на известията за синхронизaция</string>
<string name="sync_complete">Синхронизацията завърши</string>
<string name="err_sync_http_write_failed">Грешка #19: Неуспешно записване на HTTP поток при насочване на данни към сървъра.</string>
<string name="err_sync_http_request_protocol_exception">Грешка #20: Неправилно задаване на версията на HTTP протокол.</string>
<string name="action_appinfo_privacy_policy">Политика за поверителност</string>
<string name="privacy_policy_large_text">
\"Общ преглед \ n \ n“
„Nextcloud SMS е безплатен софтуер, разработен от сътрудниците му. Тази политика за поверителност“
„има за цел да ви информира за данните, събирани от това приложение.“
„Информацията, която събираме \ n \ n“
„ Приложението събира само SMS и журнал на обажданията. \ n \ n “
„Къде се изпраща информация? \ n \ n“
„ Информация не се изпраща нито на екипни сървъри на Nextcloud, нито на екипни сървъри на Nextcloud SMS нито“
„ нито на някое правителство, нито на друг субект, който не искате. \ n \ n“
„ Когато конфигурирате профил в приложението Nextcloud, вие се съгласявате със собственика на екземпляр на Nextcloud, “
„че вашите SMS и данни от журнала на обажданията ще се съхранява в неговата инфраструктура “
„под негова отговорност. \ n \ n “
„Не препоръчваме да използвате публичен или фирмен профил в Nextcloud. Вашата поверителност “
„трябва да бъде под ваш контрол на ваш самостоятелен Екземпляр на Nextcloud. \ N \ n “ </string>
</resources>

View File

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
* Copyright (c) 2014, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
-->
<resources
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingTranslation">
<!-- Translations must begin here -->
<string name="gp_short_description">Kempredañ a ra Nextcloud o SMSoù war o azgoulenn Nexcloud</string>
<string name="gp_description">
Ar meziant Nexcloud SMS a kempred o kmenadennoù SMS war un azgoulenn Nextcloud pell ha laosk a ra ac\'haneoc\'h lenn anezho euz outi.
Kasit SMSoù eus azgoulenn Nexcloud a vo en un adnevesadenn da zonet.
Meziant kenglotus gant Android 4.0 betek 6.0
</string>
</resources>

View File

@ -28,16 +28,13 @@
<resources
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingTranslation">
<!-- Translation version, reference for translators -->
<string name="gp_translation_version">3</string>
<!-- Translations must begin here -->
<string name="gp_short_description">Nextcloud SMS sincronitza els missatges SMS amb el teu compte de Nextcloud</string>
<!-- Translations must begin here -->
<string name="gp_short_description">Nextcloud SMS sincronitza els missatges SMS amb el vostre compte de Nextcloud</string>
<string name="gp_description">
L\'aplicació onwCloud SMS sincronitza els teus missatges SMS amb la teva instància Nextcloud i et permet llegir-los allà.
L\'aplicació SMS de Nextcloud sincronitza els vostres missatges SMS en una instància de Nextcloud remota i us hi permetrà llegir els vostres missatges.
L\'enviament de SMS des de Nextcloud arribarà en un futur.
L\'enviament d\'SMS des de la instància de Nextcloud serà possible en un llançament futur.
L\'aplicació es compatible des de la versió 4.0 a la versió 6.0 d\'Android.
L\'aplicació és totalment compatible des d\'Android 4.0 a 6.0
</string>
</resources>

View File

@ -0,0 +1,210 @@
<?xml version="1.0" encoding="utf-8"?><!--
/*
* Copyright (c) 2014-2015, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
-->
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<!-- Translation version, reference for translators -->
<string name="translation_version">7</string>
<!-- System strings, do not translate -->
<string name="app_name">Nextcloud SMS</string>
<string name="login_logo">Logo d\'inici de sessió</string>
<!-- Translations must begin there -->
<!-- Preferences -->
<string name="pref_title_sync">SMS - Ràpid</string>
<string name="pref_title_sync_frequency">Freqüència de Sincronització ràpida</string>
<string name="pref_title_slow_sync">SMS - Lent i segur</string>
<string name="pref_title_slow_sync_frequency">Freqüència segura de sincronització lenta</string>
<string name="action_settings">Paràmetres</string>
<string name="sync_now">Sincronitza ara</string>
<string name="pref_category_sync">Sincronització</string>
<string name="title_global_pref_to_general_prefs">Preferències generals</string>
<string name="summary_global_pref_to_general_prefs">Opcions de sincronització</string>
<string name="summary_notif_prefs">Notificacions</string>
<string name="pref_header_data_sync">Sincronització &amp; de dades </string>
<string name="title_activity_general_settings">Paràmetres generals</string>
<string-array name="pref_sync_frequency_titles">
<item>5 minuts</item>
<item>15 minuts</item>
<item>30 minuts</item>
<item>1 hora</item>
<item>3 hores</item>
<item>6 hores</item>
<item>12 hores</item>
<item>24 hores</item>
<item>Mai</item>
</string-array>
<string-array name="pref_sync_bulk_max_messages_titles">
<item>100 SMS</item>
<item>1000 SMS</item>
<item>2000 SMS</item>
<item>5000 SMS</item>
<item>10000 SMS</item>
<item>25000 SMS</item>
<item>Cada SMS no sincronitzat</item>
</string-array>
<string-array name="pref_slow_sync_frequency_titles">
<item>1 hora</item>
<item>3 hores</item>
<item>6 hores</item>
<item>12 hores</item>
<item>24 hores</item>
<item>Mai</item>
</string-array>
<string name="pref_push_on_receive">Notifica SMS a la recepció</string>
<string name="pref_sync_wifi">Sincronitza en Wi-Fi</string>
<string name="pref_sync_4g">Sincronitza en 4G</string>
<string name="pref_sync_3g">Sincronitza en 3G</string>
<string name="pref_sync_gprs">Sincronitza en 2.5G (GPRS)</string>
<string name="pref_sync_2g">Sincronitza en 2G</string>
<string name="pref_sync_others">Sincronitza en altres modes</string>
<string name="title_activity_login">Inicia la sessió</string>
<!-- Login -->
<string name="prompt_login">Inici de sessió</string>
<string name="prompt_password">Contrasenya</string>
<string name="action_sign_in">Inicia la sessió o registra\'t</string>
<string name="action_sign_in_short">Inicia la sessió</string>
<string name="error_invalid_login">L\'inici de sessió o la contrasenya són incorrectes</string>
<string name="error_invalid_password">Aquesta contrasenya és massa curta</string>
<string name="error_field_required">Aquest camp és obligatori</string>
<string name="prompt_serverURI">Adreça del servidor</string>
<string name="error_invalid_server_address">Adreça del servidor no vàlida</string>
<string name="error_connection_failed">La connexió ha fallat, assegureu-vos que aquest és el servidor correcte</string>
<string name="error_http_connection_failed">No es pot realitzar una connexió HTTP. Si us plau, assegureu-vos que hi ha un servidor web</string>
<!-- Main activity -->
<string name="ma_title_rate_us">Puntueu-nos!</string>
<string name="ma_title_add_account">Afegeix un compte</string>
<string name="ma_title_welcome">Benvingut</string>
<string name="ma_content_welcome">Benvingut a l\'aplicació SMS de Nextcloud. Aquesta aplicació us permet sincronitzar els vostres SMS a la vostra instància de Nextcloud mitjançant l\'aplicació SMS.</string>
<string name="ma_title_remote_account">Compte remot</string>
<string name="choose_account">Trieu un compte</string>
<!-- Restauration -->
<string name="title_activity_select_account">Seleccioneu un compte</string>
<string name="title_activity_select_contact">Seleccioneu un contacte</string>
<string name="no_account_configured">No hi ha cap compte configurat.</string>
<!-- Notifications -->
<string name="sync_title">Procés de sincronització</string>
<string name="sync_inprogress">Sincronització en curs…</string>
<string name="fatal_error">Error fatal!</string>
<string name="notification_channel_name_default">Per defecte</string>
<string name="notification_channel_name_sync">Sincronitza</string>
<!-- Errors -->
<string name="err_sync_get_smslist">Error núm. 1: S\'han rebut dades no vàlides del servidor mentre s\'obtenien missatges anteriors</string>
<string name="err_sync_craft_http_request">Error núm. 2: Hi ha hagut un error mentre s\'elaborava la sol·licitud HTTP</string>
<string name="err_sync_push_request">Error núm. 3: Ha fallat la petició de notificació</string>
<string name="err_sync_push_request_resp">Error núm. 4: S\'han rebut dades no vàlides del servidor mentre s\'incorporaven dades</string>
<string name="err_sync_create_json_null_smslist">Error núm. 5: Llista d\'SMS NULL</string>
<string name="err_sync_create_json_put_smslist">Error núm. 6: Hi ha hagut un error mentre s\'elaborava una sol·licitud d\'incorporació</string>
<string name="err_sync_create_json_request_encoding">Error núm. 7: S\'ha trobat una codificació no compatible mentre es generava una sol·licitud</string>
<string name="err_sync_auth_failed">Error núm. 8: L\'autenticació ha fallat</string>
<string name="err_sync_http_request_returncode_unhandled">Error núm. 9: El servidor ha establert el codi de retorn HTTP no controlat</string>
<string name="err_sync_http_request_connect">Error núm. 11: No es pot realitzar una connexió amb la instància de Nextcloud</string>
<string name="err_sync_http_request_httpexception">Error núm. 12: No es pot realitzar una connexió amb la instància de Nextcloud</string>
<string name="err_sync_http_request_ioexception">Error núm. 13: No es pot realitzar una connexió amb la instància de Nextcloud</string>
<string name="err_sync_http_request_resp">Error núm. 14: No es pot analitzar la resposta del servidor</string>
<string name="err_sync_http_request_parse_resp">Error núm. 15: No es pot analitzar la resposta del servidor</string>
<string name="err_sync_no_connection_available">Error núm. 16: No hi ha connexió de dades disponible</string>
<string name="err_sync_account_unparsable">Error núm. 17: Compte incorrecte. Si us plau, torneu-lo a configurar</string>
<string name="err_sync_ocsms_not_installed_or_oc_upgrade_required">Error núm. 18: L\'aplicació d\'SMS Nextcloud no està instal·lada o Nextcloud està esperant una actualització</string>
<string name="err_fetch_phonelist">La llista de telèfons rebuda del servidor no és vàlida.</string>
<string name="err_proto_v2">El servidor no admet aquesta característica. Assegureu-vos que la versió del servidor és com a mínim la 1.6.</string>
<string name="contactinfos_title">Informació de contacte</string>
<string name="subtitle_contact_phones">- Telèfons de contacte</string>
<string name="pref_title_bulk_messages">Missatges màxims per enviar per sincronització</string>
<string name="contactinfos_list">Llista de contactes</string>
<string name="function_not_available">Aquesta funció encara no està disponible.</string>
<string name="ui_notification_title_template">Nextcloud SMS: %1$s</string>
<string name="communicate">Comunica</string>
<string name="title_activity_main2">Main2Activity</string>
<string name="navigation_drawer_open">Obre el calaix de navegació</string>
<string name="navigation_drawer_close">Tanca el calaix la navegació</string>
<string name="ma_title_my_accounts">Els meus comptes</string>
<string name="ma_content_swipeaction">Feu lliscar d\'esquerra a dreta per accedir al menú d\'acció.</string>
<string name="cancel">Cancel·la</string>
<string name="understood">Entesos</string>
<string name="notif_permission_required">Es necessiten permisos</string>
<string name="notif_permission_required_content">Hi manquen alguns permisos per realitzar el procés de sincronització. Si us plau, corregiu-ho a la configuració de l\'aplicació</string>
<string name="please_fix_it">Si us plau, corregiu-ho.</string>
<string name="err_cannot_read_contacts">No podem llegir els vostres contactes.</string>
<string name="err_cannot_read_sms">No podem llegir els vostres SMS.</string>
<string name="action_appinfo_perms">Informació i permisos de l\'aplicació</string>
<string name="restore_all_messages">Restaura tots els missatges</string>
<string name="account_actions">Accions del compte</string>
<string name="error_connection_failed_not_found">La connexió ha fallat, el servidor retorna un 404 NO TROBAT. Assegureu-vos que heu configurat la ruta correcta per a la vostra instància de Nextcloud.</string>
<string name="nothing_to_sync">No hi ha res a sincronitzar.</string>
<string name="feature_not_already_implemented">Aquesta funció encara no està implementada i aviat estarà disponible.</string>
<string name="pref_title_minimum_sync_chars">Longitud mínima del número de telèfon</string>
<string name="err_didnt_find_account_restore">No hem trobat el vostre compte per restaurar el vostre missatge, aquesta és una situació molt estranya.</string>
<string name="launch_restore">Restaura els meus SMS</string>
<string name="error_make_default_sms_app">Feu que aquesta aplicació sigui l\'aplicació SMS predeterminada per permetre restaurar els vostres missatges. Aquesta limitació ha estat introduïda per Android 4.4.</string>
<string name="fix_permissions">Assigna permisos</string>
<string name="err_kitkat_required">Es requereix Android 4.4 o superior per fer servir aquesta funció.</string>
<string name="restore_finished">Ha finalitzat la restauració d\'SMS.</string>
<string name="x_messages_restored">S\'han restaurat &#8230; missatges</string>
<string name="err_no_connection">No hi ha cap connexió disponible, si us plau, assegureu-vos que teniu una connexió de dades vàlida.</string>
<string name="reinit_sync_cursor">Reinicia el cursor de sincronització</string>
<string name="reinit_sync_cursor_confirm">Esteu segur que voleu reinicialitzar el cursor de sincronització? Això pot frenar la propera sincronització si trobem molts missatges antics que no es sincronitzen amb el servidor.</string>
<string name="yes_confirm"></string>
<string name="no_confirm">No</string>
<string name="pref_show_sync_notifications">Mostra notificacions de sincronització</string>
<string name="sync_complete">S\'ha completat la sincronització</string>
<string name="err_sync_http_write_failed">Error núm. 19: No s\'ha pogut escriure la transmissió HTTP en el moment d\'enviar la informació al servidor.</string>
<string name="err_sync_http_request_protocol_exception">Error núm. 20: No s\'ha pogut establir correctament la versió del protocol HTTP.</string>
<string name="action_appinfo_privacy_policy">Política de privadesa</string>
<string name="privacy_policy_large_text">
\"Resum\n\n\"
\"Nextcloud SMS és un programari lliure desenvolupat pels seus contribuïdors. Aquesta política de privadesa\"
\"té la intenció d\'informar-vos sobre les dades recopilades per aquesta aplicació.\"
\"Informació que recollim\n\n
L\'aplicació només recull SMS i registres de trucades.\n\n
\"On s\'envia la informació.\n\n\"
La informació no s\'envia mai als servidors de l\'equip de Nextcloud, ni tampoc als servidors de l\'equip de Nextcloud SMS\"
\"ni tampoc a cap govern ni cap altra entitat que no vulgueu.\n\n\"
\"Quan configureu un compte de Nextcloud a aquesta aplicació, accepteu que el propietari de\"
\"la instància de Nextcloud emmagatzemarà les dades dels SMS i el registre de trucades a la\"
\"seva infraestructura, sota la seva responsabilitat.\n\n\"
\"No us recomanem que feu servir cap instància pública ni corporativa de Nextcloud.\"
\"La vostra privadesa ha d\'estar sota el vostre control en la vostra instància\"
\"de Nextcloud.\n\n\"
</string>
</resources>

View File

@ -28,15 +28,12 @@
<resources
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingTranslation">
<!-- Translation version, reference for translators -->
<string name="gp_translation_version">3</string>
<!-- Translations must begin here -->
<string name="gp_short_description">Nextcloud SMS synchronizuje vaše lokální SMS do vašeho prostředí Nextcloud</string>
<!-- Translations must begin here -->
<string name="gp_short_description">Nextcloud SMS synchronizuje SMS zprávy z telefonu na vámi využívanou instanci Nextcloud</string>
<string name="gp_description">
Aplikace NextCloud SMS synchronizuje vaše SMS zprávy do vzdáleného prostředí Nextcloud a také vám umožňuje je v něm číst.
Aplikace Nextcloud SMS synchronizuje vaše SMS zprávy na vámi využívanou instanci Nextcloud serveru, kde si je také můžete číst.
Odesílání SMS z prostředí Nextcloud bude uvedeno v budoucích verzích.
Aplikace je plně kompatibilní s Androidem 4.0 až 6.0</string>
Aplikace je plně kompatibilní se systémem Android verze 4.0 a novějšími</string>
</resources>

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
<?xml version="1.0" encoding="utf-8"?><!--
/*
* Copyright (c) 2014-2015, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
@ -25,29 +24,25 @@
* SUCH DAMAGE.
*/
-->
<resources
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingTranslation">
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<!-- Translation version, reference for translators -->
<string name="translation_version">7</string>
<!-- System strings, do not translate -->
<string name="app_name">Nextcloud SMS</string>
<string name="login_logo">Přihlašovací logo</string>
<string name="pref_lastmsgdate">last_message_date</string>
<string name="login_logo">Logo na přihlašovací obrazovce</string>
<!-- Translations must begin there -->
<!-- Preferences -->
<string name="pref_title_sync">SMS - Rychlé</string>
<string name="pref_title_sync_frequency">Rychlá Synchronizační frekvence</string>
<string name="pref_title_slow_sync">SMS - Zabezpečené a Pomalejší</string>
<string name="pref_title_slow_sync_frequency">Zabezpečená Pomalejší Synchronizační frekvence</string>
<string name="pref_title_sync">SMS rychlé</string>
<string name="pref_title_sync_frequency">Četnost rychlé synchronizace</string>
<string name="pref_title_slow_sync">SMS pomalé a zabezpečné</string>
<string name="pref_title_slow_sync_frequency">Četnost zabezpečené pomalé synchronizace</string>
<string name="action_settings">Nastavení</string>
<string name="sync_now">Synchronizovat nyní</string>
<string name="pref_category_sync">Synchronizace</string>
<string name="title_global_pref_to_general_prefs">Obecné preference</string>
<string name="title_global_pref_to_general_prefs">Obecné předvolby</string>
<string name="summary_global_pref_to_general_prefs">Nastavení synchronizace</string>
<string name="summary_notif_prefs">Upozornění</string>
<string name="pref_header_data_sync">Data a synchronizace</string>
@ -71,7 +66,7 @@
<item>5000 SMS</item>
<item>10000 SMS</item>
<item>25000 SMS</item>
<item>Všechny SMS nesynchronizovány</item>
<item>Všechny nesesynchronizované SMS</item>
</string-array>
<string-array name="pref_slow_sync_frequency_titles">
<item>1 hodina</item>
@ -87,63 +82,65 @@
<string name="pref_sync_3g">Synchronizovat přes 3G</string>
<string name="pref_sync_gprs">Synchronizovat přes 2.5G (GPRS)</string>
<string name="pref_sync_2g">Synchronizovat přes 2G</string>
<string name="pref_sync_others">Synchronizovat v ostatních módech</string>
<string name="pref_sync_others">Synchronizovat v ostatních režimech</string>
<string name="title_activity_login">Přihlásit se</string>
<!-- Login -->
<string name="prompt_login">Přihlásit</string>
<string name="prompt_login">Přihlašovací jméno</string>
<string name="prompt_password">Heslo</string>
<string name="action_sign_in">Přihlásit nebo zaregistrovat</string>
<string name="action_sign_in">Přihlásit se nebo zaregistrovat</string>
<string name="action_sign_in_short">Přihlásit se</string>
<string name="error_invalid_login">Jméno nebo heslo není správné</string>
<string name="error_invalid_login">Přihlašovací jméno nebo heslo není správné</string>
<string name="error_invalid_password">Toto heslo je příliš krátké</string>
<string name="error_field_required">Toto pole je vyžadováno</string>
<string name="error_field_required">Tuto kolonku je třeba vyplnit</string>
<string name="prompt_serverURI">Adresa serveru</string>
<string name="error_invalid_server_address">Neplatná adresa serveru</string>
<string name="error_connection_failed">Připojení se nezdařilo. Ujistěte se, že se připojujete ke správnému serveru</string>
<string name="error_http_connection_failed">Nezdařilo se vytvořit HTTP připojení. Prosím ujistěte se, že na druhé straně je webový server.</string>
<string name="error_connection_failed">Připojení se nezdařilo. Ověřte, že se připojujete ke správnému serveru</string>
<string name="error_http_connection_failed">Nezdařilo se vytvořit HTTP připojení. Ověřte, že na druhé straně je webový server</string>
<!-- Main activity -->
<string name="ma_title_rate_us">Ohodnotit!</string>
<string name="ma_title_rate_us">Ohodnoťte!</string>
<string name="ma_title_add_account">Přidat účet</string>
<string name="ma_title_welcome">Vítejte</string>
<string name="ma_content_welcome">Vítejte v aplikaci Nextcloud SMS. Tato aplikace vám umožní synchronizovat SMS do vašeho prostředí Nextcloud použitím aplikace SMS.</string>
<string name="ma_title_remote_account">Vzdálený účet</string>
<string name="choose_account">Vyberte účet</string>
<string name="ma_content_welcome">Vítejte v aplikaci Nextcloud SMS. Tato aplikace vám umožní synchronizovat SMS zprávy na vámi využívanou instanci Nextcloud.</string>
<string name="ma_title_remote_account">Federovaný účet</string>
<string name="choose_account">Zvolte účet</string>
<!-- Restauration -->
<string name="title_activity_select_account">Vybrat účet</string>
<string name="title_activity_select_contact">Vybrat kontakt</string>
<string name="no_account_configured">Nenakonfigurován žádný účet</string>
<string name="no_account_configured">Nenastaven žádný účet.</string>
<!-- Notifications -->
<string name="sync_title">Průběh synchronizace</string>
<string name="sync_inprogress">Probíhá synchronizace</string>
<string name="fatal_error">Závažná chyba !</string>
<string name="sync_inprogress">Synchronizuje se…</string>
<string name="fatal_error">Závažná chyba!</string>
<string name="notification_channel_name_default">Výchozí</string>
<string name="notification_channel_name_sync">Synchronizovat</string>
<!-- Errors -->
<string name="err_sync_get_smslist">Error #1: Ze serveru obdržena neplatná data při získávání předchozích zpráv.</string>
<string name="err_sync_craft_http_request">Error #2: Chyba při vytváření HTTP požadavku</string>
<string name="err_sync_push_request">Error #3: Selhal požadavek nahrání</string>
<string name="err_sync_push_request_resp">Error #4: Ze serveru obdržena neplatná data během odesílání.</string>
<string name="err_sync_create_json_null_smslist">Error #5: Prázdný seznam SMS</string>
<string name="err_sync_create_json_put_smslist">Error #6: Chyba při vytváření požadavku nahrání</string>
<string name="err_sync_create_json_request_encoding">Error #7: Nepodporované kódování během generování požadavku</string>
<string name="err_sync_auth_failed">Error #8: Selhalo ověření</string>
<string name="err_sync_http_request_returncode_unhandled">Error #9: Server nastavil neošetřený HTTP návratový kód</string>
<string name="err_sync_http_request_connect">Error #11: Není možné vytvořit připojení k prostředí Nextcloud</string>
<string name="err_sync_http_request_httpexception">Error #12: Není možné vytvořit připojení k prostředí Nextcloud</string>
<string name="err_sync_http_request_ioexception">Error #13: Není možné vytvořit připojení k prostředí Nextcloud</string>
<string name="err_sync_http_request_resp">Error #14: Nezdařilo se rozebrat odpověď serveru</string>
<string name="err_sync_http_request_parse_resp">Error #15: Nezdařilo se rozebrat odpověď serveru</string>
<string name="err_sync_no_connection_available">Error #16: Není dostupné žádné datové připojení</string>
<string name="err_sync_account_unparsable">Error #17: poškozený účet. Prosím nakonfigurujte ho znovu.</string>
<string name="err_sync_ocsms_not_installed_or_oc_upgrade_required">Error #18: Aplikace Nextcloud SMS není na serveru nainstalována, nebo Nextcloud čeká na aktualizace.</string>
<string name="err_sync_get_smslist">Chyba č. 1: Při získávání předchozích zpráv ze serveru obdržena neplatná data</string>
<string name="err_sync_craft_http_request">Chyba č. 2: Chyba při vytváření HTTP požadavku</string>
<string name="err_sync_push_request">Chyba č. 3: Nezdařil se požadavek nahrání</string>
<string name="err_sync_push_request_resp">Chyba č. 4: Při odesílání obdržena neplatná data ze serveru</string>
<string name="err_sync_create_json_null_smslist">Chyba č. 5: Prázdný seznam SMS</string>
<string name="err_sync_create_json_put_smslist">Chyba č. 6: Chyba při vytváření požadavku nahrání</string>
<string name="err_sync_create_json_request_encoding">Chyba č. 7: Nepodporované kódování znaků při vytváření požadavku</string>
<string name="err_sync_auth_failed">Chyba č. 8: Ověření se nezdařilo</string>
<string name="err_sync_http_request_returncode_unhandled">Chyba č. 9: Server nastavil neošetřený HTTP návratový kód</string>
<string name="err_sync_http_request_connect">Chyba č. 11: Nedaří se spojit s instancí Nextcloud</string>
<string name="err_sync_http_request_httpexception">Chyba č. 12: Nedaří se spojit s instancí Nextcloud</string>
<string name="err_sync_http_request_ioexception">Chyba č. 13: Nedaří se spojit s instancí Nextcloud</string>
<string name="err_sync_http_request_resp">Chyba č. 14: Nedaří se zpracovat odpověď serveru</string>
<string name="err_sync_http_request_parse_resp">Chyba č. 15: Nedaří se zpracovat odpověď serveru</string>
<string name="err_sync_no_connection_available">Chyba č. 16: Není dostupné žádné datové připojení</string>
<string name="err_sync_account_unparsable">Chyba č. 17: chybně definovaný účet. Nastavte ho znovu</string>
<string name="err_sync_ocsms_not_installed_or_oc_upgrade_required">Chyba č. 18: Aplikace Nextcloud SMS není na serveru nainstalována, nebo ten čeká přechod na novější verzi</string>
<string name="err_fetch_phonelist">Ze serveru obdržen neplatný telefonní seznam.</string>
<string name="err_proto_v2">Server nepodporuje tuto funkci. Ujistěte se, že serverová verze je minimálně 1.6.</string>
<string name="contactinfos_title">Kontaktní informace</string>
<string name="subtitle_contact_phones">Kontaktní telefony</string>
<string name="pref_title_bulk_messages">Maximální počet odeslaných zpráv pro jednu synchronizaci.</string>
<string name="err_proto_v2">Server tuto funkci nepodporuje. Zajistěte, aby jeho verze byla alespoň 1.6.</string>
<string name="contactinfos_title">Kontaktní údaje</string>
<string name="subtitle_contact_phones">- Kontaktní telefony</string>
<string name="pref_title_bulk_messages">Maximální počet odeslaných zpráv v rámci jedné synchronizace.</string>
<string name="contactinfos_list">Kontakty</string>
<string name="function_not_available">Tato funkce ještě není dostupná</string>
@ -154,31 +151,59 @@
<string name="navigation_drawer_open">Otevřít navigační panel</string>
<string name="navigation_drawer_close">Zavřít navigační panel</string>
<string name="ma_title_my_accounts">Moje účty</string>
<string name="ma_content_swipeaction">Pro otevření menu akcí přejeďte prstem zleva doprava.</string>
<string name="cancel">Zrušit</string>
<string name="ma_content_swipeaction">Pro otevření nabídky akcí přejeďte prstem zleva doprava.</string>
<string name="cancel">Storno</string>
<string name="understood">Rozumím</string>
<string name="notif_permission_required">Vyžadováno oprávnění</string>
<string name="notif_permission_required_content">Chybí některá oprávnění vyžadována pro synchronizace. Prosím opravte je v nastavení aplikace.</string>
<string name="please_fix_it">Prosím opravte to.</string>
<string name="err_cannot_read_contacts">Nemůžeme načíst vaše kontakty.</string>
<string name="err_cannot_read_sms">Nemůžeme načíst vaše SMS.</string>
<string name="notif_permission_required_content">Chybí některá oprávnění vyžadovaná pro synchronizaci. Opravte je v nastavení aplikace</string>
<string name="please_fix_it">Opravte to.</string>
<string name="err_cannot_read_contacts">Nedaří se načíst vaše kontakty.</string>
<string name="err_cannot_read_sms">Nedaří se načíst vaše SMS.</string>
<string name="action_appinfo_perms">Informace o aplikaci a oprávněních</string>
<string name="restore_all_messages">Obnovit všechny zprávy</string>
<string name="account_actions">Akce účtu</string>
<string name="error_connection_failed_not_found">Připojení selhalo, server vrátil 404 NENALEZENO/NOT FOUND. Ujistěte se, že jste nastavili správnou cestu k vašemu prostředí Nextcloud.</string>
<string name="error_connection_failed_not_found">Připojení se nezdařilo, server vrátil 404 NENALEZENO (NOT FOUND). Ověřte, že jste nastavili správný popis umístění k vámi využívané instance Nextcloud.</string>
<string name="nothing_to_sync">Není co synchronizovat.</string>
<string name="feature_not_already_implemented">Tato funkce ještě není implementována a bude dostupná brzy.</string>
<string name="feature_not_already_implemented">Tato funkce ještě není implementována, ale bude dostupná brzy.</string>
<string name="pref_title_minimum_sync_chars">Minimální délka telefonního čísla</string>
<string name="err_didnt_find_account_restore">Nebyl nalezen váš účet pro obnovu zpráv, toto je velmi zvláštní situace.</string>
<string name="launch_restore">Obnovit mé SMS</string>
<string name="error_make_default_sms_app">Prosím zvolte tuto aplikaci jako výchozí SMS aplikaci pro obnovení vašich SMS zpráv. Toto omezení bylo uvedeno v Adnroidu 4.4.</string>
<string name="error_make_default_sms_app">Pro obnovení vašich SMS zpráv zvolte tuto aplikaci jako výchozí SMS aplikaci. Toto omezení bylo zavedeno v Adnroid 4.4.</string>
<string name="fix_permissions">Opravit oprávnění</string>
<string name="err_kitkat_required">Android 4.4 nebo novější je vyžadován pro využití této funkce.</string>
<string name="err_kitkat_required">Pro používání této funkce je zapotřebí systém Android 4.4 a novější.</string>
<string name="restore_finished">Obnovení SMS je nyní dokončeno.</string>
<string name="x_messages_restored">zprávy obnoveny&#8230;</string>
<string name="err_no_connection">Připojení nedostupné. Prosím ujistěte se, že máte platné datové připojení.</string>
<string name="reinit_sync_cursor">Reinicializovat synchronizační kurzor</string>
<string name="reinit_sync_cursor_confirm">Opravdu si přejete reinicializovat synchronizační kurzor ? Pokud bude nalezeno mnoho starých zpráv nesynchronizovaných se serverem, může to zdržet příští synchronizaci.</string>
<string name="err_no_connection">Není k dispozici připojení k síti. Ověřte, že máte funkční datové připojení.</string>
<string name="reinit_sync_cursor">Znovu inicializovat synchronizační kurzor</string>
<string name="reinit_sync_cursor_confirm">Opravdu chcete znovu inicializovat synchronizační kurzor? Pokud bude nalezeno mnoho starých zpráv nesynchronizovaných se serverem, může to zdržet příští synchronizaci.</string>
<string name="yes_confirm">Ano</string>
<string name="no_confirm">Ne</string>
<string name="pref_show_sync_notifications">Zobrazit upozornění ohledně synchronizace</string>
<string name="sync_complete">Synchronizace dokončena</string>
<string name="err_sync_http_write_failed">Chyba č. 19: Při odesílání dat na server se nepodařilo zapsat do HTTP proudu (stream).</string>
<string name="err_sync_http_request_protocol_exception">Chyba č. 20: Nepodařilo se řádné nastavit verzi HTTP protokolu.</string>
<string name="action_appinfo_privacy_policy">Zásady ochrany soukromí</string>
<string name="privacy_policy_large_text">
\"Přehled\n\n\"
\"Nextcloud SMS je svobodný software vyvinutý přispěvateli do tohoto projektu. Tyto zásady ochrany soukromí \"
\"jsou zamýšleny jako informace pro vás o datech shromažďovaných touto aplikací.\"
\"Informace, které jsou shromažďovány\n\n\"
\"Aplikací jsou shromažďovány pouze záznamy SMS zpráv a volání.\n\n\"
\"Kam jsou informace odesílány.\n\n\"
\"Informace nejsou odesílány ani na servery vývojářů Nextcloud ani Nextcloud SMS \"
\"ani žádné vládní či jiné entitě, kterou nechcete.\n\n\"
\"Když nastavujete účet v aplikaci Nexcloud odsouhlasíte vlastníkovi instance \"
\"Nextcloud že data vašeho záznamu SMS zpráv a hovorů budou ukládána na jeho infrastruktuře,\"
\"na jeho odpovědnost.\n\n\"
\"Nedoporučujeme použít účet ve veřejné nebo firemní instanci Nextcloud. Je třeba, aby vaše soukromí \"
\"bylo pod vaší kontrolou na vaší vlastní instanci Nextcloud.\n\n\"
</string>
</resources>

View File

@ -1,160 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
* Copyright (c) 2014-2015, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
-->
<resources
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingTranslation">
<!-- Translation version, reference for translators -->
<string name="translation_version">7</string>
<!-- Translations must begin there -->
<!-- Preferences -->
<string name="pref_title_sync">SMS - rychle</string>
<string name="pref_title_sync_frequency">Frekvence rychlé synchronizace</string>
<string name="pref_title_slow_sync">SMS - pomalu a bezpečně</string>
<string name="pref_title_slow_sync_frequency">Frekvence bezpečné pomalé synchronizace</string>
<string name="action_settings">Nastavení</string>
<string name="sync_now">Synchronizovat teď</string>
<string name="pref_category_sync">Synchronizace</string>
<string name="title_global_pref_to_general_prefs">Všeobecné možnosti</string>
<string name="summary_global_pref_to_general_prefs">Možnosti synchronizace</string>
<string name="summary_notif_prefs">Upozornění</string>
<string name="pref_header_data_sync">Data a synchronizace</string>
<string name="title_activity_general_settings">Hlavní nastavení</string>
<string-array name="pref_sync_frequency_titles">
<item>5 minut</item>
<item>15 minut</item>
<item>30 minut</item>
<item>1 hodina</item>
<item>3 hodiny</item>
<item>6 hodin</item>
<item>12 hodin</item>
<item>24 hodin</item>
<item>Nikdy</item>
</string-array>
<string-array name="pref_sync_bulk_max_messages_titles">
<item>100 SMS</item>
<item>1000 SMS</item>
<item>2000 SMS</item>
<item>5000 SMS</item>
<item>10000 SMS</item>
<item>25000 SMS</item>
<item>Všechny nesynchronizované SMS</item>
</string-array>
<string-array name="pref_slow_sync_frequency_titles">
<item>1 hodina</item>
<item>3 hodiny</item>
<item>6 hodin</item>
<item>12 hodin</item>
<item>24 hodin</item>
<item>Nikdy</item>
</string-array>
<string name="pref_push_on_receive">Oznámit SMS při přijetí</string>
<string name="pref_sync_wifi">Synchronizovat přes Wi-Fi</string>
<string name="pref_sync_4g">Synchronizovat přes 4G</string>
<string name="pref_sync_3g">Synchronizovat přes 3G</string>
<string name="pref_sync_gprs">Synchronizovat přes 2.5G (GPRS)</string>
<string name="pref_sync_2g">Synchronizovat přes 2G</string>
<string name="pref_sync_others">Synchronizovat přes jiná připojení</string>
<string name="title_activity_login">Přihlášení</string>
<!-- Login -->
<string name="prompt_login">Login</string>
<string name="prompt_password">Heslo</string>
<string name="action_sign_in">Přihlásit se nebo registrovat</string>
<string name="action_sign_in_short">Přihlášení</string>
<string name="error_invalid_login">Nesprávné jméno nebo heslo</string>
<string name="error_invalid_password">Toto heslo je příliš krátké</string>
<string name="error_field_required">Toto pole je vyžadováno</string>
<string name="prompt_serverURI">Adresa serveru</string>
<string name="error_invalid_server_address">Neplatná adresa serveru</string>
<string name="error_connection_failed">Připojení selhalo, ujistěte se, že máte správný server</string>
<string name="error_http_connection_failed">Nelze provést připojení přes HTTP. Ujistěte se, že je webový server dostupný</string>
<!-- Main activity -->
<string name="ma_title_rate_us">Ohodnoťit!</string>
<string name="ma_title_add_account">Přidat účet</string>
<string name="ma_title_welcome">Vítejte</string>
<string name="ma_content_welcome">Vítejte v aplikaci ownCloud SMS. Tato aplikace umožnuje sychronizovat SMS do vašeho účtu na serveru ownCloud za pomoci aplikace pro SMS.</string>
<string name="ma_title_remote_account">Vzdálený účet</string>
<string name="choose_account">Vybrat účet</string>
<!-- Restauration -->
<string name="title_activity_select_account">Vybrat účet</string>
<string name="title_activity_select_contact">Vybrat kontakt</string>
<string name="no_account_configured">Není nakonfigurovaný žádný účet.</string>
<!-- Notifications -->
<string name="sync_title">Proces synchronizace</string>
<string name="sync_inprogress">Probíhá synchronizace...</string>
<string name="fatal_error">Chyba !</string>
<!-- Errors -->
<string name="err_sync_get_smslist">Chyba #1: Přijata neplatná data ze serveru při přijímání předchozích zpráv</string>
<string name="err_sync_craft_http_request">Chyba #2: Chyba při vytváření HTTP požadavku</string>
<string name="err_sync_push_request">Chyba #3: Požadavek Push selhal</string>
<string name="err_sync_push_request_resp">Chyba #4: Přijata neplatná data ze serveru při jejich odesílání</string>
<string name="err_sync_create_json_null_smslist">Chyba #5: NULL SMS List</string>
<string name="err_sync_create_json_put_smslist">Chyba #6: Chyba při vytváření Push požadavku</string>
<string name="err_sync_create_json_request_encoding">Chyba #7: Nepodporované kódování při vytváření požadavku</string>
<string name="err_sync_auth_failed">Chyba #8: Ověření selhalo</string>
<string name="err_sync_http_request_returncode_unhandled">Chyba #9: Server nastavil neznámý HTTP kód odpovědi</string>
<string name="err_sync_http_request_connect">Chyba #11: Nelze se připojit k Nextcloud serveru</string>
<string name="err_sync_http_request_httpexception">Chyba #12: Nelze se připojit k Nextcloud serveru</string>
<string name="err_sync_http_request_ioexception">Chyba #13: Nelze se připojit k Nextcloud serveru</string>
<string name="err_sync_http_request_resp">Chyba #14: Nelze zpracovat odpověď serveru</string>
<string name="err_sync_http_request_parse_resp">Chyba #15: Nelze zpracovat odpověď serveru</string>
<string name="err_sync_no_connection_available">Chyba #16: Není dostupné datové připojení</string>
<string name="err_sync_account_unparsable">Chyba #17: účet poškozený Znovu nakonfigurovat</string>
<string name="err_sync_ocsms_not_installed_or_oc_upgrade_required">Chyba #18: Nextcloud SMS aplikace není nainstalována nebo ownCloud čeká na aktualizaci</string>
<string name="err_fetch_phonelist">Přijat neplatný seznam telefoních čísel ze serveru.</string>
<string name="err_proto_v2">Server nepodporuje tuto funkci. Zajistěte verzi na serveru alespoň 1.6.</string>
<string name="contactinfos_title">Informace kontaktu</string>
<string name="subtitle_contact_phones">- Telefony kontaktu</string>
<string name="pref_title_bulk_messages">Maximální počet zpráv pro odeslání na synchronizaci</string>
<string name="contactinfos_list">Adresář</string>
<string name="function_not_available">Tato funkce ještě není dostupná.</string>
<string name="ui_notification_title_template">Nextcloud SMS: %1$s</string>
<string name="communicate">Communicate</string>
<string name="title_activity_main2">Main2Activity</string>
<string name="navigation_drawer_open">Otevřít navigační panel</string>
<string name="navigation_drawer_close">Zavřít navigační panel</string>
<string name="ma_title_my_accounts">Moje účty</string>
<string name="ma_content_swipeaction">Tahem zleva doprava otevřít menu akcí.</string>
<string name="cancel">Zrušit</string>
<string name="understood">Rozumím</string>
<string name="notif_permission_required">Vyžadovaná oprávnění</string>
<string name="notif_permission_required_content">Některá oprávnění nutná pro provedení synchronizace chybí. Napravte toto v nastavení aplikace</string>
<string name="please_fix_it">Napravte to prosím.</string>
<string name="err_cannot_read_contacts">Nelze přistupovat ke kontaktům.</string>
<string name="err_cannot_read_sms">Nelze přistupovat ke zprávám SMS.</string>
<string name="action_appinfo_perms">Informace a oprávnění aplikace</string>
</resources>

View File

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
* Copyright (c) 2014, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
-->
<resources
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingTranslation">
<!-- Translations must begin here -->
<string name="gp_short_description">Nextcloud SMS synkroniserer dine lokale SMS med din Nextcloud server</string>
<string name="gp_description">
Nextcloud SMS app synkroniserer dine SMS beskeder med en Nextcloud server og lader dig læse dem der.
Afsendelse af SMS fra Nextcloud serveren kommer i en senere udgivelse.
App\'en er fuldt kompatibel med Android 4.0 til 6.0
</string>
</resources>

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
<?xml version="1.0" encoding="utf-8"?><!--
/*
* Copyright (c) 2014-2015, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
@ -25,9 +24,7 @@
* SUCH DAMAGE.
*/
-->
<resources
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingTranslation">
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<!-- Translation version, reference for translators -->
<string name="translation_version">7</string>
@ -36,8 +33,6 @@
<string name="app_name">Nextcloud SMS</string>
<string name="login_logo">Login logo</string>
<string name="pref_lastmsgdate">sidste_meddelelsesdato</string>
<!-- Translations must begin there -->
<!-- Preferences -->
<string name="pref_title_sync">SMS - Hurtig</string>
@ -47,8 +42,10 @@
<string name="action_settings">Indstillinger</string>
<string name="sync_now">Ajourfør nu</string>
<string name="pref_category_sync">Ajourføring</string>
<string name="title_global_pref_to_general_prefs">Generelle indstillinger</string>
<string name="summary_global_pref_to_general_prefs">Ajourføringsindstillinger</string>
<string name="summary_notif_prefs">Påmindelser</string>
<string name="pref_header_data_sync">Data &amp; sync</string>
<string name="title_activity_general_settings">Generelle Indstillinger</string>
<string-array name="pref_sync_frequency_titles">
@ -79,6 +76,7 @@
<item>24 timer</item>
<item>Aldrig</item>
</string-array>
<string name="pref_push_on_receive">Send SMS ved modtaelse</string>
<string name="pref_sync_wifi">Ajourfør via Wi-Fi</string>
<string name="pref_sync_4g">Ajourfør via 4G</string>
<string name="pref_sync_3g">Ajourfør via 3G</string>
@ -90,7 +88,7 @@
<!-- Login -->
<string name="prompt_login">Brugernavn</string>
<string name="prompt_password">Adgangskode</string>
<string name="action_sign_in">Log ind eller registér</string>
<string name="action_sign_in">Log ind eller register</string>
<string name="action_sign_in_short">Log ind</string>
<string name="error_invalid_login">Brugernavn eller adgangskode er ikke korrekt</string>
<string name="error_invalid_password">Adgangskoden er forkort</string>
@ -115,48 +113,96 @@
<!-- Notifications -->
<string name="sync_title">Ajourføringsproces</string>
<string name="sync_inprogress">Ajourføring i gang...</string>
<string name="sync_inprogress">Synkronisering i gang …</string>
<string name="fatal_error">Fatal fejl!</string>
<string name="notification_channel_name_default">Standard</string>
<string name="notification_channel_name_sync">Synkroniser</string>
<!-- Errors -->
<string name="err_sync_get_smslist">Error #1: Forkerte data modtaget fra serveren ved modtagelsen af sidste beskeder</string>
<string name="err_sync_craft_http_request">Error #2: Fej i HTTP kald</string>
<string name="err_sync_push_request">Error #3: Push forespørgsel fejlede</string>
<string name="err_sync_push_request_resp">Error #4: Forkerte data modtaget fra serveren ved push data </string>
<string name="err_sync_create_json_null_smslist">Fejl #5: Tom SMSliste</string>
<string name="err_sync_create_json_put_smslist">Error #6: Fejl i push kald</string>
<string name="err_sync_create_json_request_encoding">Error #7: Ukendt enkodning i oprettelsen af kaldet</string>
<string name="err_sync_auth_failed">Fejl #8: Godkendelse fejlet</string>
<string name="err_sync_http_request_returncode_unhandled">Error #9: Server sendte en ukendt HTTP kode retur</string>
<string name="err_sync_http_request_connect">Fejl #11: Kan ikke oprette forbindelse til Nextcloud-instans</string>
<string name="err_sync_http_request_httpexception">Fejl #12: Kan ikke oprette forbindelse til Nextcloud-instans</string>
<string name="err_sync_http_request_ioexception">Fejl #13: Kan ikke oprette forbindelse til Nextcloud-instans</string>
<string name="err_sync_http_request_resp">Fejl #14: Kan ikke analysere serversvar</string>
<string name="err_sync_http_request_parse_resp">Fejl #15: Kan ikke analysere serversvar</string>
<string name="err_sync_no_connection_available">Fejl #16: Ingen dataforbindelse tilgængelig</string>
<string name="err_sync_account_unparsable">Error #17: Fejl i kontodata. Konfigurer venligst igen.</string>
<string name="err_sync_ocsms_not_installed_or_oc_upgrade_required">Error #18: Nextcloud SMS app er ikke installeret eller Nextcloud venter på en opdatering</string>
<string name="err_fetch_phonelist">Ugyldig telefonbog modtaget fra serveren.</string>
<string name="err_proto_v2">Serveren understøtter ikke denne funktion. Sørg for, at serveren mindst er version 1.6.</string>
<string name="contactinfos_title">Kontaktinformationer</string>
<string name="subtitle_contact_phones">- Kontakt telefon</string>
<string name="pref_title_bulk_messages">Maksimalt antal meddelelser per ajourføringssession</string>
<string name="contactinfos_list">Kontaktliste</string>
<string name="function_not_available">Denne funktion er endnu ikke tilgængelig.</string>
<string name="ui_notification_title_template">Nextcloud SMS: %1$s</string>
<string name="communicate">Kommunikér</string>
<string name="communicate">Kommuniker</string>
<string name="title_activity_main2">Main2Aktivitet</string>
<string name="navigation_drawer_open">Åbn navigationsskuffe</string>
<string name="navigation_drawer_close">Luk navigationsskuffe</string>
<string name="ma_title_my_accounts">Mine konti</string>
<string name="ma_content_swipeaction">Stryg fra venstre mod højre for adgang til handlingsmenu.</string>
<string name="cancel">Annullér</string>
<string name="cancel">Annuller</string>
<string name="understood">Forstået</string>
<string name="notif_permission_required">Rettigheder påkrævet</string>
<string name="notif_permission_required_content">Der mangler nogle rettigheder for at kunne gennemføre en synkronisering. Ret fejlen i app indstillingerne</string>
<string name="please_fix_it">Reparer venligst dette.</string>
<string name="err_cannot_read_contacts">Vi kan ikke læse dine kontakter</string>
<string name="err_cannot_read_sms">Vi kan ikke læse din SMS.</string>
<string name="action_appinfo_perms">Applikationsinformation og rettigheder</string>
<string name="restore_all_messages">Gendan meddelelser</string>
<string name="account_actions">Kontohandlinger</string>
<string name="error_connection_failed_not_found">Forbindelsen fejlede. Serveren retunerede 404 IKKE FUNDET. Du skal sikre dig at du har sat den rigtige adresse til din Nextcloud sever.</string>
<string name="nothing_to_sync">Der er intet at ajourføre.</string>
<string name="feature_not_already_implemented">Denne funktion er ikke allerede implementeret og vil snart være tilgængelig.</string>
<string name="pref_title_minimum_sync_chars">Minimumslængde for telefonnumre</string>
<string name="err_didnt_find_account_restore">Vi fandt ikke din konto, da vi forsøgte at gendanne din meddelelse, det er en meget mærkelig situation.</string>
<string name="launch_restore">Gendan min SMS</string>
<string name="error_make_default_sms_app">Sæt venligst denne app som standard SMS app for at tillade gendannelse af dine beskeder. Denne begrænsning er blevet indført i Android 4.4.</string>
<string name="fix_permissions">Reparer rettigheder</string>
<string name="err_kitkat_required">Android 4.4 eller nyere er påkrævet for at bruge denne funktion.</string>
<string name="restore_finished">SMS-gendannelse udført.</string>
<string name="x_messages_restored">Meddelelser gendannet&#8230;</string>
<string name="err_no_connection">Ingen forbindelse til rådighed, vær sikker på at du har en gyldig dataforbindelse.</string>
<string name="reinit_sync_cursor">Initaliser synkroniserings cursor</string>
<string name="reinit_sync_cursor_confirm">Er du sikker på at du vil genaktivere synkroniseringsmarkøren? Dette kan nedsætte den næste synkronisering, hvis vi fandt mange gamle meddelelser ikke synkroniseret med serveren.</string>
<string name="yes_confirm">Ja</string>
<string name="no_confirm">Nej</string>
<string name="pref_show_sync_notifications">Vis notifikationer</string>
<string name="sync_complete">Synkronisering fuldført </string>
<string name="err_sync_http_write_failed">Fejl #19: Kunne ikke skrive HTTP Stream når data blev sendt til server.</string>
<string name="err_sync_http_request_protocol_exception">Fejl # 20: Kunne ikke indstille HTTP-protokolversionen korrekt.</string>
<string name="action_appinfo_privacy_policy">Fortrolighedspolitik</string>
<string name="privacy_policy_large_text">
\"Overblik\n\n\"
\"Nextcloud SMS er gratis software udviklet af dets bidragere. Denne privatlivs politik \"
\"er ment til at informere dig om data indsamlet af denne applikation.\"
\"Information vi samler\n\n\"
\"Kun SMS- og opkaldslog bliver indsamlet af applikationen.\n\n\"
\"Hvor bliver information sendt.\n\n\"
\"Informationen hverken sendt til Nextcloud holdets server eller Nextcloud SMS holdets servere eller \"
\" nogle stater eller andet instans du ikke vil have.\n\n\"
\"Når du konfigurerer en Nextcloud konto i applikationen, erklærer du dig enig i at din SMS- og opkaldslog data vil blive opbevaret på ejerens infrastruktur \"
\" under ejers ansvar.\n\n\"
\"Vi foreslår ikke at bruge en offentlig eller firma-ejet Nextcloud konto. Dit privatliv \"
\"skal være under din kontrol på din egen Nextcloud instans.\n\n\"
</string>
</resources>

View File

@ -1,184 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
* Copyright (c) 2014-2015, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
-->
<resources
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingTranslation">
<!-- Translation version, reference for translators -->
<string name="translation_version">7</string>
<!-- System strings, do not translate -->
<string name="app_name">Nextcloud SMS</string>
<string name="login_logo">Login Logo</string>
<string name="pref_lastmsgdate">last_message_date</string>
<!-- Translations must begin there -->
<!-- Preferences -->
<string name="pref_title_sync">SMS - Schnell</string>
<string name="pref_title_sync_frequency">Schnelle Sync-Frequenz</string>
<string name="pref_title_slow_sync">SMS - Langsam und sicher</string>
<string name="pref_title_slow_sync_frequency">Langsame Sync-Frequenz</string>
<string name="action_settings">Einstellungen</string>
<string name="sync_now">Jetzt synchronisieren</string>
<string name="pref_category_sync">Synchronisierung</string>
<string name="title_global_pref_to_general_prefs">Allg. Einstellungen</string>
<string name="summary_global_pref_to_general_prefs">Sync-Einstellungen</string>
<string name="summary_notif_prefs">Benachrichtigungen</string>
<string name="pref_header_data_sync">Daten &amp; Sync</string>
<string name="title_activity_general_settings">Allg. Einstellungen</string>
<string-array name="pref_sync_frequency_titles">
<item>5 Minuten</item>
<item>15 Minuten</item>
<item>30 Minuten</item>
<item>1 Stunde</item>
<item>3 Stunden</item>
<item>6 Stunden</item>
<item>12 Stunden</item>
<item>24 Stunden</item>
<item>Nie</item>
</string-array>
<string-array name="pref_sync_bulk_max_messages_titles">
<item>100 SMS</item>
<item>1000 SMS</item>
<item>2000 SMS</item>
<item>5000 SMS</item>
<item>10000 SMS</item>
<item>25000 SMS</item>
<item>Noch nicht alle SMS synchronisiert</item>
</string-array>
<string-array name="pref_slow_sync_frequency_titles">
<item>1 Stunde</item>
<item>3 Stunden</item>
<item>6 Stunden</item>
<item>12 Stunden</item>
<item>24 Stunden</item>
<item>Nie</item>
</string-array>
<string name="pref_push_on_receive">SMS beim Empfang weiterleiten</string>
<string name="pref_sync_wifi">Synchronisiere über WLAN</string>
<string name="pref_sync_4g">Synchronisiere über LTE</string>
<string name="pref_sync_3g">Synchronisiere über UMTS</string>
<string name="pref_sync_gprs">Synchronisiere über GPRS</string>
<string name="pref_sync_2g">Synchronisiere über GSM</string>
<string name="pref_sync_others">Synchronisiere über anderen Modus</string>
<string name="title_activity_login">Anmelden</string>
<!-- Login -->
<string name="prompt_login">Login</string>
<string name="prompt_password">Passwort</string>
<string name="action_sign_in">Anmelden oder Registrieren</string>
<string name="action_sign_in_short">Anmelden</string>
<string name="error_invalid_login">Benutzername oder Passwort falsch</string>
<string name="error_invalid_password">Dieses Passwort ist zu kurz</string>
<string name="error_field_required">Pflichtfeld</string>
<string name="prompt_serverURI">Serveradresse</string>
<string name="error_invalid_server_address">Ungültige Serveradresse</string>
<string name="error_connection_failed">Verbindung fehlgeschlagen, ist dies der richtige Server?</string>
<string name="error_http_connection_failed">Kann keine HTTP-Verbindung aufbauen. Läuft der Webserver unter dieser Adresse?</string>
<!-- Main activity -->
<string name="ma_title_rate_us">Bewerte uns!</string>
<string name="ma_title_add_account">Account hinzufügen</string>
<string name="ma_title_welcome">Willkommen</string>
<string name="ma_content_welcome">Willkommen bei Nextcloud SMS. Diese Anwendung ermöglicht dir die Synchronisation deiner SMS mit deiner Nextcloud-Instanz.</string>
<string name="ma_title_remote_account">Entfernter Account</string>
<string name="choose_account">Account auswählen</string>
<!-- Restauration -->
<string name="title_activity_select_account">Account auswählen</string>
<string name="title_activity_select_contact">Kontakt auswählen</string>
<string name="no_account_configured">Kein Account konfiguriert.</string>
<!-- Notifications -->
<string name="sync_title">Synchronisation</string>
<string name="sync_inprogress">Sychronisation läuft...</string>
<string name="fatal_error">Kritischer Fehler!</string>
<!-- Errors -->
<string name="err_sync_get_smslist">Fehler #1: Bei vorherigen Nachrichten ungültige Serverdaten empfangen</string>
<string name="err_sync_craft_http_request">Fehler #2: Fehler bei der Erstellung des HTTP-Requests</string>
<string name="err_sync_push_request">Fehler #3: Push-Request fehlgeschlagen</string>
<string name="err_sync_push_request_resp">Fehler #4: Beim Pushen von Daten ungültige Serverdaten empfangen</string>
<string name="err_sync_create_json_null_smslist">Fehler #5: SMS-Liste gab NULL zurück</string>
<string name="err_sync_create_json_put_smslist">Fehler #6: Fehler bei der Erstellung des Push-Requests</string>
<string name="err_sync_create_json_request_encoding">Fehler #7: Ungültige Zeichenkodierung bei der Erstellung des Requests</string>
<string name="err_sync_auth_failed">Fehler #8: Anmeldung fehlgeschlagen</string>
<string name="err_sync_http_request_returncode_unhandled">Fehler #9: Unbekannter HTTP-Antwortcode vom Server</string>
<string name="err_sync_http_request_connect">Fehler #11: Konnte nicht mit der Nextcloud-Instanz verbinden (HTTP-Request)</string>
<string name="err_sync_http_request_httpexception">Fehler #12: Konnte nicht mit der Nextcloud-Instanz verbinden (HTTP-Ausnahme)</string>
<string name="err_sync_http_request_ioexception">Fehler #13: Konnte nicht mit der Nextcloud-Instanz verbinden (IO-Fehler)</string>
<string name="err_sync_http_request_resp">Fehler #14: Konnte Server-Antwort nicht parsen</string>
<string name="err_sync_http_request_parse_resp">Fehler #15: Konnte Server-Antwort nicht parsen</string>
<string name="err_sync_no_connection_available">Fehler #16: Keine Datenverbindung verfügbar</string>
<string name="err_sync_account_unparsable">Fehler #17: Fehlerhaftes Konto. Bitte Konfiguration prüfen.</string>
<string name="err_sync_ocsms_not_installed_or_oc_upgrade_required">Fehler #18: Nextcloud SMS App ist niht installiert oder Nextcloud führt gerade ein Uprade durch</string>
<string name="err_fetch_phonelist">Nicht valide Telefonliste vom Server empfangen.</string>
<string name="err_proto_v2">Der Server unterstützt diese Funktion nicht. Stellen Sie sicher, dass die Serverversion mindestens 1.6 ist.</string>
<string name="contactinfos_title">Kontaktinformationen</string>
<string name="subtitle_contact_phones">- Handys kontaktieren</string>
<string name="pref_title_bulk_messages">Maximale Anzahl von Nachrichten, die pro Synchronisieren gesendet werden</string>
<string name="contactinfos_list">Kontaktliste</string>
<string name="function_not_available">Diese Funktion ist noch nicht verfügbar.</string>
<string name="ui_notification_title_template">Nextcloud SMS: %1$s</string>
<string name="communicate">Kommunizieren</string>
<string name="title_activity_main2">Main2Activity</string>
<string name="navigation_drawer_open">Navigationsleiste öffnen</string>
<string name="navigation_drawer_close">Navigationsleiste schließen</string>
<string name="ma_title_my_accounts">Meine Accounts</string>
<string name="ma_content_swipeaction">Wisch von links nach rechts um auf das Action-Menü zuzugreifen</string>
<string name="cancel">Abbrechen</string>
<string name="understood">Verstanden</string>
<string name="notif_permission_required">Berechtigungen benötigt</string>
<string name="notif_permission_required_content">Einige Berechtigungen fehlen zur Durchführung des Synchronisationsprozesses. Bitte in den App-Einstellungen korrigieren.</string>
<string name="please_fix_it">Bitte behebe es.</string>
<string name="err_cannot_read_contacts">Wir können deine Kontakte nicht lesen.</string>
<string name="err_cannot_read_sms">Wir können deine SMS nicht lesen.</string>
<string name="action_appinfo_perms">App Infos und Berechtigungen</string>
<string name="restore_all_messages">Alle Nachrichten wiederherstellen</string>
<string name="account_actions">Account-Aktionen</string>
<string name="error_connection_failed_not_found">Verbindung fehlgeschlagen, der Server hat 404 NICHT GEFUNDEN geantworet. Stellen Sie sicher, dass der Pfad zur Nextcloud-Instanz korrekt gesetzt ist.</string>
<string name="nothing_to_sync">Es gibt nichts zu synchronisieren.</string>
<string name="feature_not_already_implemented">Diese Funktion ist noch nicht implementiert aber wird in Kürze verfügbar sein.</string>
<string name="pref_title_minimum_sync_chars">Minimale Telefonnummernlänge</string>
<string name="err_didnt_find_account_restore">Wir haben deinen Account nicht gefunden, um deine Nachricht wiederherstellen. Dieses ist eine sehr seltsame Situation.</string>
<string name="launch_restore">Meine SMS wiederherstellen</string>
<string name="error_make_default_sms_app">Bitte diese Anwendung als Standard-SMS-Anwendung definieren. Hierdurch können deine SMS-Nachrichten wiederhergestellt werden. Diese Einschränkung wurde mit Android 4.4 eingeführt.</string>
<string name="fix_permissions">Berechtigungen korrigieren</string>
<string name="err_kitkat_required">Android 4.4 oder höher ist erforderlich, um diese Funktion zu verwenden.</string>
<string name="restore_finished">SMS-Wiederherstellung ist nun abgeschlossen.</string>
<string name="x_messages_restored">Nachrichten wiederhergestellt&#8230;</string>
<string name="err_no_connection">Keine Verbindung verfügbar, bitte stellen Sie sicher, dass Sie eine stabile Datenverbindung haben.</string>
<string name="reinit_sync_cursor">Synchronisationscursor reinitialisieren</string>
<string name="reinit_sync_cursor_confirm">Sind Sie sich sicher, dass Sie den Synchronisationscursor reinitialisieren möchten? Dies kann die nächste Synchronisation verlangsammen, wenn mehrere, mit dem Server, nicht synchronisierte Nachrichten gefunden werden.</string>
<string name="yes_confirm">Ja</string>
<string name="no_confirm">Nein</string>
</resources>

View File

@ -28,16 +28,12 @@
<resources
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingTranslation">
<!-- Translation version, reference for translators -->
<string name="gp_translation_version">3</string>
<!-- Translations must begin here -->
<string name="gp_short_description">Mit Nextcloud SMS kannst Du Deine SMS mit Deiner Nextcloud synchronisieren</string>
<!-- Translations must begin here -->
<string name="gp_short_description">Mit Nextcloud SMS können Sie Ihre SMS mit Ihrer Nextcloud synchronisieren</string>
<string name="gp_description">
Die Nextloud SMS App synchronisiert Deine SMS-Nachrichten mit einer Nextloud-Instanz und erlaubt Dir, die SMS dort zu lesen.
Die Nextcloud SMS-App synchronisiert Ihre SMS-Nachrichten mit Ihrer Nextcloud und ermöglicht es ihnen so, die SMS dort zu lesen.
In kommenden Versionen soll auch den SMS-Versand von der Nextcloud-Instanz aus möglich sein.
Auf diese Weise wirst Du von überall in der Welt SMS versenden können, solange Dein Android-Smartphone GSM- und Datenempfang hat.
In kommenden Versionen soll auch der SMS-Versand aus Nextcloud heraus ermöglicht werden.
Die App ist vollständig kompatibel mit Android 4.0 bis 6.0
</string>

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
<?xml version="1.0" encoding="utf-8"?><!--
/*
* Copyright (c) 2014-2015, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
@ -25,18 +24,14 @@
* SUCH DAMAGE.
*/
-->
<resources
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingTranslation">
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<!-- Translation version, reference for translators -->
<string name="translation_version">7</string>
<!-- System strings, do not translate -->
<string name="app_name">Nextcloud SMS</string>
<string name="login_logo">Login Logo</string>
<string name="pref_lastmsgdate">last_message_date</string>
<string name="login_logo">Anmelde-Logo</string>
<!-- Translations must begin there -->
<!-- Preferences -->
@ -47,11 +42,11 @@
<string name="action_settings">Einstellungen</string>
<string name="sync_now">Jetzt synchronisieren</string>
<string name="pref_category_sync">Synchronisierung</string>
<string name="title_global_pref_to_general_prefs">Allg. Einstellungen</string>
<string name="title_global_pref_to_general_prefs">Allgemeine Einstellungen</string>
<string name="summary_global_pref_to_general_prefs">Sync-Einstellungen</string>
<string name="summary_notif_prefs">Benachrichtigungen</string>
<string name="pref_header_data_sync">Daten &amp; Sync</string>
<string name="title_activity_general_settings">Allg. Einstellungen</string>
<string name="title_activity_general_settings">Allgemeine Einstellungen</string>
<string-array name="pref_sync_frequency_titles">
<item>5 Minuten</item>
@ -71,7 +66,7 @@
<item>5000 SMS</item>
<item>10000 SMS</item>
<item>25000 SMS</item>
<item>Alle SMS wurde noch nicht synchronisiert</item>
<item>Noch nicht alle SMS synchronisiert</item>
</string-array>
<string-array name="pref_slow_sync_frequency_titles">
<item>1 Stunde</item>
@ -88,14 +83,14 @@
<string name="pref_sync_gprs">Synchronisiere über GPRS</string>
<string name="pref_sync_2g">Synchronisiere über GSM</string>
<string name="pref_sync_others">Synchronisiere über anderen Modus</string>
<string name="title_activity_login">Einloggen</string>
<string name="title_activity_login">Anmelden</string>
<!-- Login -->
<string name="prompt_login">Login</string>
<string name="prompt_login">Anmelden</string>
<string name="prompt_password">Passwort</string>
<string name="action_sign_in">Einloggen oder Registrieren</string>
<string name="action_sign_in_short">Einloggen</string>
<string name="error_invalid_login">Falscher Benutzername oder Passwort</string>
<string name="action_sign_in">Anmelden oder Registrieren</string>
<string name="action_sign_in_short">Anmelden</string>
<string name="error_invalid_login">Benutzername oder Passwort falsch</string>
<string name="error_invalid_password">Dieses Passwort ist zu kurz</string>
<string name="error_field_required">Pflichtfeld</string>
<string name="prompt_serverURI">Serveradresse</string>
@ -105,21 +100,23 @@
<!-- Main activity -->
<string name="ma_title_rate_us">Bewerte uns!</string>
<string name="ma_title_add_account">Account hinzufügen</string>
<string name="ma_title_add_account">Konto hinzufügen</string>
<string name="ma_title_welcome">Willkommen</string>
<string name="ma_content_welcome">Willkommen bei Nextcloud SMS. Diese Anwendung ermöglicht dir die Synchronisation deiner SMS mit deiner Nextcloud-Instanz.</string>
<string name="ma_title_remote_account">Entfernter Account</string>
<string name="choose_account">Account auswählen</string>
<string name="ma_content_welcome">Willkommen bei Nextcloud SMS. Diese Anwendung ermöglicht Dir die Synchronisierung Deiner SMS mit Deiner Nextcloud-Instanz.</string>
<string name="ma_title_remote_account">Entferntes Konto</string>
<string name="choose_account">Konto auswählen</string>
<!-- Restauration -->
<string name="title_activity_select_account">Account auswählen</string>
<string name="title_activity_select_account">Konto auswählen</string>
<string name="title_activity_select_contact">Kontakt auswählen</string>
<string name="no_account_configured">Kein Account konfiguriert.</string>
<string name="no_account_configured">Kein Konto eingerichtet.</string>
<!-- Notifications -->
<string name="sync_title">Synchronisation</string>
<string name="sync_inprogress">Sychronisation läuft...</string>
<string name="sync_title">Synchronisierungsprozess</string>
<string name="sync_inprogress">Sychronisation läuft</string>
<string name="fatal_error">Kritischer Fehler!</string>
<string name="notification_channel_name_default">Standard</string>
<string name="notification_channel_name_sync">Synchronisieren</string>
<!-- Errors -->
<string name="err_sync_get_smslist">Fehler #1: Bei vorherigen Nachrichten ungültige Serverdaten empfangen</string>
@ -131,21 +128,21 @@
<string name="err_sync_create_json_request_encoding">Fehler #7: Ungültige Zeichenkodierung bei der Erstellung des Requests</string>
<string name="err_sync_auth_failed">Fehler #8: Anmeldung fehlgeschlagen</string>
<string name="err_sync_http_request_returncode_unhandled">Fehler #9: Unbekannter HTTP-Antwortcode vom Server</string>
<string name="err_sync_http_request_connect">Fehler #11: Konnte nicht mit der Nextcloud-Instanz verbinden (HTTP-Request)</string>
<string name="err_sync_http_request_connect">Fehler #11: Konnte nicht mit der Nextcloud-Instanz verbinden</string>
<string name="err_sync_http_request_httpexception">Fehler #12: Konnte nicht mit der Nextcloud-Instanz verbinden (HTTP-Ausnahme)</string>
<string name="err_sync_http_request_ioexception">Fehler #13: Konnte nicht mit der Nextcloud-Instanz verbinden (IO-Fehler)</string>
<string name="err_sync_http_request_resp">Fehler #14: Konnte Server-Antwort nicht parsen</string>
<string name="err_sync_http_request_parse_resp">Fehler #15: Konnte Server-Antwort nicht parsen</string>
<string name="err_sync_http_request_resp">Fehler #14: Konnte Serverantwort nicht parsen</string>
<string name="err_sync_http_request_parse_resp">Fehler #15: Konnte Serverantwort nicht parsen</string>
<string name="err_sync_no_connection_available">Fehler #16: Keine Datenverbindung verfügbar</string>
<string name="err_sync_account_unparsable">Fehler #17: Fehlerhaftes Konto. Bitte Konfiguration prüfen.</string>
<string name="err_sync_ocsms_not_installed_or_oc_upgrade_required">Fehler #18: Nextcloud SMS App ist niht installiert oder Nextcloud führt gerade ein Uprade durch</string>
<string name="err_fetch_phonelist">Nicht valide Telefonliste vom Server empfangen.</string>
<string name="err_proto_v2">Der Server unterstützt diese Funktion nicht. Stelle sicher, dass die Serverversion mindestens 1.6 ist.</string>
<string name="err_proto_v2">Der Server unterstützt diese Funktion nicht. Stellen Sie sicher, dass die Serverversion mindestens 1.6 ist.</string>
<string name="contactinfos_title">Kontaktinformationen</string>
<string name="subtitle_contact_phones">- Handys kontaktieren</string>
<string name="subtitle_contact_phones">- Kontaktrufnummern</string>
<string name="pref_title_bulk_messages">Maximale Anzahl von Nachrichten, die pro Synchronisieren gesendet werden</string>
<string name="contactinfos_list">Kontaktliste</string>
<string name="function_not_available">Diese Funktion ist noch nicht verfügbar.</string>
<string name="function_not_available">Diese Funktion ist nicht verfügbar.</string>
<string name="ui_notification_title_template">Nextcloud SMS: %1$s</string>
<string name="communicate">Kommunizieren</string>
@ -153,32 +150,60 @@
<string name="navigation_drawer_open">Navigationsleiste öffnen</string>
<string name="navigation_drawer_close">Navigationsleiste schließen</string>
<string name="ma_title_my_accounts">Meine Accounts</string>
<string name="ma_content_swipeaction">Wisch von links nach rechts um auf das Action-Menü zuzugreifen</string>
<string name="ma_title_my_accounts">Meine Konten</string>
<string name="ma_content_swipeaction">Wische von links nach rechts, um auf das Action-Menü zuzugreifen</string>
<string name="cancel">Abbrechen</string>
<string name="understood">Verstanden</string>
<string name="notif_permission_required">Berechtigungen benötigt</string>
<string name="notif_permission_required_content">Einige Berechtigungen fehlen zur Durchführung des Synchronisationsprozesses. Bitte in den App-Einstellungen korrigieren.</string>
<string name="please_fix_it">Bitte behebe es.</string>
<string name="err_cannot_read_contacts">Wir können deine Kontakte nicht lesen.</string>
<string name="err_cannot_read_sms">Wir können deine SMS nicht lesen.</string>
<string name="notif_permission_required_content">Einige Berechtigungen fehlen zur Durchführung des Synchronisierungsprozesses. Bitte in den App-Einstellungen korrigieren.</string>
<string name="please_fix_it">Bitte beheben.</string>
<string name="err_cannot_read_contacts">Ihre Kontakte können nicht gelesen werden.</string>
<string name="err_cannot_read_sms">Ihre SMS können nicht gelesen werden.</string>
<string name="action_appinfo_perms">App Infos und Berechtigungen</string>
<string name="restore_all_messages">Alle Nachrichten wiederherstellen</string>
<string name="account_actions">Account-Aktionen</string>
<string name="error_connection_failed_not_found">Verbindung fehlgeschlagen, der Server hat 404 NICHT GEFUNDEN geantworet. Stelle sicher, dass der Pfad zur Nextcloud-Instanz korrekt gesetzt ist.</string>
<string name="account_actions">Konto-Aktionen</string>
<string name="error_connection_failed_not_found">Verbindung fehlgeschlagen, der Server hat 404 NICHT GEFUNDEN geantworet. Stellen Sie sicher, dass der Pfad zur Nextcloud-Instanz korrekt gesetzt ist.</string>
<string name="nothing_to_sync">Es gibt nichts zu synchronisieren.</string>
<string name="feature_not_already_implemented">Diese Funktion ist noch nicht implementiert aber wird in Kürze verfügbar sein.</string>
<string name="feature_not_already_implemented">Diese Funktion ist noch nicht implementiert, wird aber in Kürze verfügbar sein.</string>
<string name="pref_title_minimum_sync_chars">Minimale Telefonnummernlänge</string>
<string name="err_didnt_find_account_restore">Wir haben deinen Account nicht gefunden, um deine Nachricht wiederherstellen. Dieses ist eine sehr seltsame Situation.</string>
<string name="err_didnt_find_account_restore">Wir haben Ihr Konto nicht gefunden, um Ihre Nachricht wiederherstellen. Dies ist eine seltsame Situation.</string>
<string name="launch_restore">Meine SMS wiederherstellen</string>
<string name="error_make_default_sms_app">Bitte diese Anwendung als Standard-SMS-Anwendung definieren. Hierdurch können deine SMS-Nachrichten wiederhergestellt werden. Diese Einschränkung wurde mit Android 4.4 eingeführt.</string>
<string name="error_make_default_sms_app">Bitte machen Sie diese Anwendung zur Standard-SMS-Anwendung, um die Wiederherstellung Ihrer Nachrichten zu ermöglichen. Diese Einschränkung wurde mit Android 4.4 eingeführt.</string>
<string name="fix_permissions">Berechtigungen korrigieren</string>
<string name="err_kitkat_required">Android 4.4 oder höher ist erforderlich, um diese Funktion zu verwenden.</string>
<string name="restore_finished">SMS-Wiederherstellung ist nun abgeschlossen.</string>
<string name="x_messages_restored">Nachrichten wiederhergestellt&#8230;</string>
<string name="err_no_connection">Keine Verbindung verfügbar, bitte stelle sicher, dass du eine stabile Datenverbindung hast.</string>
<string name="reinit_sync_cursor">Synchronisationscursor reinitialisieren</string>
<string name="reinit_sync_cursor_confirm">Bist du dir sicher, dass du den Synchronisationscursor reinitialisieren möchtest? Dies kann die nächste Synchronisation verlangsammen, wenn mehrere, mit dem Server, nicht synchronisierte Nachrichten gefunden werden.</string>
<string name="err_no_connection">Keine Verbindung verfügbar, bitte stellen Sie sicher, dass Sie eine stabile Datenverbindung haben.</string>
<string name="reinit_sync_cursor">Synchronisierungszeiger reinitialisieren</string>
<string name="reinit_sync_cursor_confirm">Sind Sie sich sicher, dass Sie den Synchronisierungzeiger reinitialisieren möchten? Dies kann die nächste Synchronisierung verlangsammen, wenn eine Vielzahl mit dem Server nicht synchrone Nachrichten gefunden werden.</string>
<string name="yes_confirm">Ja</string>
<string name="no_confirm">Nein</string>
<string name="pref_show_sync_notifications">Synchronisierungsbenachrichtigungen anzeigen</string>
<string name="sync_complete">Synchronisierung abgeschlossen</string>
<string name="err_sync_http_write_failed">Fehler #19: Fehler beim Schreiben des HTTP-Streams während der Datenübertragung zum Server.</string>
<string name="err_sync_http_request_protocol_exception">Error #20: Fehler beim Setzen der HTTP-Protokoll-Version.</string>
<string name="action_appinfo_privacy_policy">Datenschutzerklärung</string>
<string name="privacy_policy_large_text">
\"Übersicht\n\n\"
\"Nextcloud SMS ist freie Software und wird von Freiwilligen entwickelte. Diese Datenschutzerklärung \"
\"soll Sie über die von dieser Anwendung erfassten Daten informieren.\"
\"Informationen, die wir sammeln\n\n\"
\"Nur SMS und Anrufprotokoll werden von der Anwendung gesammelt.\n\n\"
\"Wohin die Informationen geschickt werden.\n\n\"
\"Informationen werden weder an Nextcloud-Server noch an Nextcloud SMS-Server oder \"
  \"irgendeine Regierung oder eine andere Einheit gesendet, die Sie nicht wollen.
\"Wenn Sie ein Nextcloud-Konto in der Anwendung einrichten, stimmen Sie mit dem Nextcloud-Instanzinhaber überein, \"
\"dass Ihre SMS- und Anrufprotokolldaten in seiner Infrastruktur gespeichert werden, \"
\"unter seiner Verantwortung.\n\n\"
\"Wir empfehlen nicht, ein öffentliches oder firmeneigenes Nextcloud-Instanzkonto zu verwenden. Ihre Privatsphäre \"
\"muss unter Ihrer Kontrolle sein, bei Ihrer eigenen Nextcloud-Instanz.\n\n\"
</string>
</resources>

View File

@ -28,16 +28,10 @@
<resources
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingTranslation">
<!-- Translation version, reference for translators -->
<string name="gp_translation_version">3</string>
<!-- Translations must begin here -->
<!-- Translations must begin here -->
<string name="gp_short_description">Το Nextcloud SMS συγχρονίζει τα τοπικά SMS στην Nextcloud εγκατάστασή σας</string>
<string name="gp_description">
Η εφαρμογή Nextcloud SMS συγχρονίζει τα μηνύματα SMS σε απομακρυσμένη εγκατάσταση Nextcloud και σας επιτρέπει να διαβάσετε τα μηνύματά σας από εκεί.
<string name="gp_description">Η εφαρμογή Nextcloud SMS συγχρονίζει τα μηνύματα SMS σε απομακρυσμένη εγκατάσταση Nextcloud και σας επιτρέπει να διαβάσετε τα μηνύματά σας από εκεί.
Η αποστολή SMS από την εγκατάσταση Nextcloud θα είναι διαθέσιμη σε μελλοντική έκδοση.
Η εφαρμογή είναι πλήρως συμβατή από έκδοση Android 4.0 έως 6.0
</string>
Η εφαρμογή είναι πλήρως συμβατή από την έκδοση Android 4.0 έως 6.0
</string>
</resources>

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
<?xml version="1.0" encoding="utf-8"?><!--
/*
* Copyright (c) 2014-2015, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
@ -25,9 +24,7 @@
* SUCH DAMAGE.
*/
-->
<resources
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingTranslation">
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<!-- Translation version, reference for translators -->
<string name="translation_version">7</string>
@ -36,21 +33,19 @@
<string name="app_name">Nextcloud SMS</string>
<string name="login_logo">Λογότυπο εισόδου</string>
<string name="pref_lastmsgdate">τελευταία_ημερομηνία_μηνύματος</string>
<!-- Translations must begin there -->
<!-- Preferences -->
<string name="pref_title_sync">SMS - Γρήγορα</string>
<string name="pref_title_sync_frequency">Γρήγορη συχνότητα συγχρονισμού</string>
<string name="pref_title_slow_sync">SMS - Αργά και ασφαλή</string>
<string name="pref_title_slow_sync_frequency">Ασφάλιση συχνότητας αργού συγχρονισμού</string>
<string name="pref_title_slow_sync">SMS - Αργά και Ασφαλή</string>
<string name="pref_title_slow_sync_frequency">Ασφαλή Συχνότητα Αργού Συγχρονισμού</string>
<string name="action_settings">Ρυθμίσεις</string>
<string name="sync_now">Συγχρονισμός τώρα</string>
<string name="pref_category_sync">Συγχρονισμός</string>
<string name="title_global_pref_to_general_prefs">Γενικές προτιμήσεις</string>
<string name="summary_global_pref_to_general_prefs">Επιλογές συγχρονισμού</string>
<string name="summary_notif_prefs">Ειδοποιήσεις</string>
<string name="pref_header_data_sync">Δεδομένα και συγχρονισμός</string>
<string name="pref_header_data_sync">Δεδομένα &amp;συγχρονισμός</string>
<string name="title_activity_general_settings">Γενικές ρυθμίσεις</string>
<string-array name="pref_sync_frequency_titles">
@ -81,7 +76,7 @@
<item>24 ώρες</item>
<item>Ποτέ</item>
</string-array>
<string name="pref_push_on_receive">Σπρόξτε SMS κατά την λήψη</string>
<string name="pref_push_on_receive">Προώθηση SMS κατά την λήψη</string>
<string name="pref_sync_wifi">Συγχρονισμός σε Wi-Fi</string>
<string name="pref_sync_4g">Συγχρονισμός σε 4G</string>
<string name="pref_sync_3g">Συγχρονισμός σε 3G</string>
@ -118,8 +113,10 @@
<!-- Notifications -->
<string name="sync_title">Διεργασία συγχρονισμού</string>
<string name="sync_inprogress">Συγχρονισμός σε εξέλιξη</string>
<string name="sync_inprogress">Συγχρονισμός σε εξέλιξη ...</string>
<string name="fatal_error"> Καίριο σφάλμα</string>
<string name="notification_channel_name_default">Προεπιλογή</string>
<string name="notification_channel_name_sync">Συγχρονισμός</string>
<!-- Errors -->
<string name="err_sync_get_smslist">Σφάλμα #1: Μη έγκυρα δεδομένα ελήφθησαν από τον εξυπηρετητή όταν λήφθηκαν παλαιότερα μηνύματα</string>
@ -149,6 +146,8 @@
<string name="ui_notification_title_template">Nextcloud SMS: %1$s</string>
<string name="communicate">Επικοινώνησε </string>
<string name="title_activity_main2">Main2Activity</string>
<string name="navigation_drawer_open">Άνοιξε το συρτάρι πλοήγησης</string>
<string name="navigation_drawer_close">Κλείσε το συρτάρι </string>
<string name="ma_title_my_accounts">Οι λογαριασμοί μου</string>
@ -179,4 +178,30 @@
<string name="reinit_sync_cursor_confirm">Είστε σίγουροι πως θέλετε να επανεκκινήσετε τον συγχρονισμό δρομέα; Αυτό μπορεί να καθυστερήσει τον επόμενο συγχρονισμό εάν βρούμε πολλά παλιά μηνύματα που δεν έχουν συγχρονιστεί με τον εξυπηρετητή. </string>
<string name="yes_confirm">Ναι</string>
<string name="no_confirm">Όχι</string>
<string name="pref_show_sync_notifications">Εμφάνιση ειδοποιήσεων συγχρονισμού</string>
<string name="sync_complete">Ο συγχρονισμός ολοκληρώθηκε</string>
<string name="err_sync_http_write_failed">Σφάλμα #19: Αποτυχία εγγραφής ροής HTTP κατά την προώθηση δεδομένων στον διακομιστή.</string>
<string name="err_sync_http_request_protocol_exception">Σφάλμα #20: Αποτυχία καθορισμού έκδοσης πρωτοκόλλου HTTP.</string>
<string name="action_appinfo_privacy_policy">Πολιτική Απορρήτου</string>
<string name="privacy_policy_large_text">
\"Επισκόπηση \ n \ n\"
        \"Το Nextcloud SMS είναι ένα δωρεάν λογισμικό που αναπτύχθηκε από τους συνεργάτες του.
        \"Σκοπός είναι να σας ενημερώσουμε για τα δεδομένα που συλλέγονται από αυτήν την εφαρμογή.\"
        \"Πληροφορίες που συλλέγουμε \ n \ n\"
        \"Μόνο η εφαρμογή SMS συλλέγει και καταγράφει κλήσεις. \ N \ n\"
        \"Όπου αποστέλλονται πληροφορίες. \ N \ n\"
        \"Οι πληροφορίες δεν αποστέλλονται στους διακομιστές ομάδας Nextcloud ούτε στους εξυπηρετητές ομάδων SMS Nextcloud ούτε\"
        \"οποιαδήποτε κυβέρνηση ή άλλη οντότητα που δεν θέλετε. \ n \ n\"
        \"Όταν ρυθμίζετε έναν λογαριασμό Nextcloud στην εφαρμογή, συμφωνείτε με το Nextcloud\"
        \"ιδιοκτήτης στιγμιότυπου ότι τα δεδομένα του SMS και του αρχείου καταγραφής κλήσεων θα αποθηκευτούν στην υποδομή του\"
        \"υπό την ευθύνη του. \ n \ n\"
        \"Δεν συνιστούμε να χρησιμοποιήσετε έναν δημόσιο λογαριασμό ή έναν λογαριασμό εταιρείας Nextcloud. Το απόρρητό σας\"
        \"πρέπει να βρίσκεται υπό τον έλεγχό σας στη δική σας περίπτωση Nextcloud. \ n \ n\"</string>
</resources>

View File

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
* Copyright (c) 2014, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
-->
<resources
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingTranslation">
<!-- Translations must begin here -->
<string name="gp_short_description">Nextcloud SMS synchronises your SMS with your Nextcloud</string>
<string name="gp_description">
Nextcloud SMS application synchronize your SMS messages on a remote Nextcloud instance and let you read your messages from it.
Sending SMS from Nextcloud instance will coming in a future release.
Application is fully compatible from Android 4.0 to 6.0
</string>
</resources>

View File

@ -0,0 +1,209 @@
<?xml version="1.0" encoding="utf-8"?><!--
/*
* Copyright (c) 2014-2015, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
-->
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<!-- Translation version, reference for translators -->
<string name="translation_version">7</string>
<!-- System strings, do not translate -->
<string name="app_name">Nextcloud SMS</string>
<string name="login_logo">Login logo</string>
<!-- Translations must begin there -->
<!-- Preferences -->
<string name="pref_title_sync">SMS - Fast</string>
<string name="pref_title_sync_frequency">Fast Sync frequency</string>
<string name="pref_title_slow_sync">SMS - Slow and Secure</string>
<string name="pref_title_slow_sync_frequency">Secure Slow Sync frequency</string>
<string name="action_settings">Settings</string>
<string name="sync_now">Synchronise now</string>
<string name="pref_category_sync">Synchronisation</string>
<string name="title_global_pref_to_general_prefs">General preferences</string>
<string name="summary_global_pref_to_general_prefs">Sync options</string>
<string name="summary_notif_prefs">Notifications</string>
<string name="pref_header_data_sync">Data &amp; sync</string>
<string name="title_activity_general_settings">General Settings</string>
<string-array name="pref_sync_frequency_titles">
<item>5 minutes</item>
<item>15 minutes</item>
<item>30 minutes</item>
<item>1 hour</item>
<item>3 hours</item>
<item>6 hours</item>
<item>12 hours</item>
<item>24 hours</item>
<item>Never</item>
</string-array>
<string-array name="pref_sync_bulk_max_messages_titles">
<item>100 SMS</item>
<item>1000 SMS</item>
<item>2000 SMS</item>
<item>5000 SMS</item>
<item>10000 SMS</item>
<item>25000 SMS</item>
<item>Every SMS not synced</item>
</string-array>
<string-array name="pref_slow_sync_frequency_titles">
<item>1 hour</item>
<item>3 hours</item>
<item>6 hours</item>
<item>12 hours</item>
<item>24 hours</item>
<item>Never</item>
</string-array>
<string name="pref_push_on_receive">Push SMS on reception</string>
<string name="pref_sync_wifi">Synchronise in Wi-Fi</string>
<string name="pref_sync_4g">Synchronise in 4G</string>
<string name="pref_sync_3g">Synchronise in 3G</string>
<string name="pref_sync_gprs">Synchronise in 2.5G (GPRS)</string>
<string name="pref_sync_2g">Synchronise in 2G</string>
<string name="pref_sync_others">Synchronise in other modes</string>
<string name="title_activity_login">Sign in</string>
<!-- Login -->
<string name="prompt_login">Login</string>
<string name="prompt_password">Password </string>
<string name="action_sign_in">Sign in or register</string>
<string name="action_sign_in_short">Sign in</string>
<string name="error_invalid_login">Login or password incorrect</string>
<string name="error_invalid_password">This password is too short</string>
<string name="error_field_required">This field is required</string>
<string name="prompt_serverURI">Server address</string>
<string name="error_invalid_server_address">Invalid server address</string>
<string name="error_connection_failed">Connection failed, ensure this is the right server</string>
<string name="error_http_connection_failed">Unable to perform a HTTP connection. Please ensure there is a web server</string>
<!-- Main activity -->
<string name="ma_title_rate_us">Rate us!</string>
<string name="ma_title_add_account">Add an account</string>
<string name="ma_title_welcome">Welcome</string>
<string name="ma_content_welcome">Welcome to Nextcloud SMS application. This application let you synchronise your SMS to your Nextcloud instance using SMS app.</string>
<string name="ma_title_remote_account">Remote account</string>
<string name="choose_account">Choose account</string>
<!-- Restauration -->
<string name="title_activity_select_account">Select account</string>
<string name="title_activity_select_contact">Select contact</string>
<string name="no_account_configured">No account configured.</string>
<!-- Notifications -->
<string name="sync_title">Sync process</string>
<string name="sync_inprogress">Sync in progress …</string>
<string name="fatal_error">Fatal error ! </string>
<string name="notification_channel_name_default">Default</string>
<string name="notification_channel_name_sync">Sync</string>
<!-- Errors -->
<string name="err_sync_get_smslist">Error #1: Invalid data received from server when getting previous messages</string>
<string name="err_sync_craft_http_request">Error #2: Error while crafting HTTP request</string>
<string name="err_sync_push_request">Error #3: Push request failed</string>
<string name="err_sync_push_request_resp">Error #4: Invalid data received from server when pushing data</string>
<string name="err_sync_create_json_null_smslist">Error #5: NULL SMS List</string>
<string name="err_sync_create_json_put_smslist">Error #6: Error while crafting push request</string>
<string name="err_sync_create_json_request_encoding">Error #7: Unsupported encoding when generating request</string>
<string name="err_sync_auth_failed">Error #8: Authentication failed</string>
<string name="err_sync_http_request_returncode_unhandled">Error #9: Server set unhandled HTTP return code</string>
<string name="err_sync_http_request_connect">Error #11: Unable to perform a connection to Nextcloud instance</string>
<string name="err_sync_http_request_httpexception">Error #12: Unable to perform a connection to Nextcloud instance</string>
<string name="err_sync_http_request_ioexception">Error #13: Unable to perform a connection to Nextcloud instance</string>
<string name="err_sync_http_request_resp">Error #14: Unable to parse server response</string>
<string name="err_sync_http_request_parse_resp">Error #15: Unable to parse server response</string>
<string name="err_sync_no_connection_available">Error #16: No data connection available</string>
<string name="err_sync_account_unparsable">Error #17: malformed account. Please reconfigure it</string>
<string name="err_sync_ocsms_not_installed_or_oc_upgrade_required">Error #18: Nextcloud SMS app is not installed or Nextcloud awaiting for an upgrade</string>
<string name="err_fetch_phonelist">Invalid phonelist received from server.</string>
<string name="err_proto_v2">Server doesn\'t support this feature. Ensure server version is at least 1.6.</string>
<string name="contactinfos_title">Contact information</string>
<string name="subtitle_contact_phones">- Contact phones</string>
<string name="pref_title_bulk_messages">Max messages to send per sync</string>
<string name="contactinfos_list">Contact list</string>
<string name="function_not_available">This function is not available yet.</string>
<string name="ui_notification_title_template">Nextcloud SMS: %1$s</string>
<string name="communicate">Communicate</string>
<string name="title_activity_main2">Main2Activity</string>
<string name="navigation_drawer_open">Open navigation drawer</string>
<string name="navigation_drawer_close">Close navigation drawer</string>
<string name="ma_title_my_accounts">My accounts</string>
<string name="ma_content_swipeaction">Swipe from left to right to access to action menu.</string>
<string name="cancel">Cancel</string>
<string name="understood">Understood</string>
<string name="notif_permission_required">Permissions required</string>
<string name="notif_permission_required_content">Some permissions are missing to perform the sync process. Please fix it in app settings</string>
<string name="please_fix_it">Please fix it.</string>
<string name="err_cannot_read_contacts">We cannot read your contacts.</string>
<string name="err_cannot_read_sms">We cannot read your SMS.</string>
<string name="action_appinfo_perms">App info and permissions</string>
<string name="restore_all_messages">Restore all messages</string>
<string name="account_actions">Account actions</string>
<string name="error_connection_failed_not_found">Connection failed, the server returns 404 NOT FOUND. Ensure you set the correct path for your Nextcloud instance.</string>
<string name="nothing_to_sync">There is nothing to sync.</string>
<string name="feature_not_already_implemented">This feature is not already implemented and will be available soon.</string>
<string name="pref_title_minimum_sync_chars">Minimum phone number length</string>
<string name="err_didnt_find_account_restore">We didn\'t find your account to restore your message, this is a very strange situation.</string>
<string name="launch_restore">Restore my SMS</string>
<string name="error_make_default_sms_app">Please make this application default SMS application to permit restore your messages. This limitation has been introduced by Android 4.4.</string>
<string name="fix_permissions">Fix permissions</string>
<string name="err_kitkat_required">Android 4.4 or greater is required to use this feature.</string>
<string name="restore_finished">SMS restoration is now finished.</string>
<string name="x_messages_restored">messages restored&#8230;</string>
<string name="err_no_connection">No connection available, please ensure you have a valid data connection.</string>
<string name="reinit_sync_cursor">Reinit synchronisation cursor</string>
<string name="reinit_sync_cursor_confirm">Are you sure you want to reinitialise the synchronisation cursor ? This can slowdown the next synchronisation if we found many old messages not synced with server.</string>
<string name="yes_confirm">Yes</string>
<string name="no_confirm">No</string>
<string name="pref_show_sync_notifications">Show sync notifications</string>
<string name="sync_complete">Synchronisation complete</string>
<string name="err_sync_http_write_failed">Error #19: Failed to write HTTP stream when pushing data to server.</string>
<string name="err_sync_http_request_protocol_exception">Error #20: Failed to properly set HTTP protocol version.</string>
<string name="action_appinfo_privacy_policy">Privacy policy</string>
<string name="privacy_policy_large_text">
\"Overview\n\n\"
\"Nextcloud SMS is a free software developed by its contributors. This privacy policy \"
\"is intended to inform you about data gathered by this application.\"
\"Information we collect\n\n\"
\"Only SMS and call log are collected by the application.\n\n\"
\"Where information is sent.\n\n\"
\"Information is neither sent to Nextcloud team servers nor Nextcloud SMS team servers nor \"
\"any government nor another entity you don\'t want.\n\n\"
\"When you configure a Nextcloud account in the application, you agree with the Nextcloud \"
\"instance owner that your SMS and call log data will be stored in his infrastructure \"
\"under his responsibility.\n\n\"
\"We don\'t recommend to use a public or a company Nextcloud instance account. Your privacy \"
\"must be under your control on your own Nextcloud instance.\n\n\"
</string>
</resources>

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
* Copyright (c) 2014, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
-->
<resources
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingTranslation">
<!-- Translations must begin here -->
<string name="gp_short_description">Nextcloud SMS sincronice su SMS local con su instancia Nextcloud</string>
</resources>

View File

@ -0,0 +1,209 @@
<?xml version="1.0" encoding="utf-8"?><!--
/*
* Copyright (c) 2014-2015, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
-->
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<!-- Translation version, reference for translators -->
<string name="translation_version">7</string>
<!-- System strings, do not translate -->
<string name="app_name">Nextcloud SMS</string>
<string name="login_logo">Logotipo para inicio de sesión</string>
<!-- Translations must begin there -->
<!-- Preferences -->
<string name="pref_title_sync">SMS - Rápido</string>
<string name="pref_title_sync_frequency">Frecuencia de Sincronización Rápida</string>
<string name="pref_title_slow_sync">SMS - Lento y Seguro</string>
<string name="pref_title_slow_sync_frequency">Frecuencia de Sincronización Lenta y Segura</string>
<string name="action_settings">Configuraciones</string>
<string name="sync_now">Sincronizar ahora</string>
<string name="pref_category_sync">Sincronización</string>
<string name="title_global_pref_to_general_prefs">Preferencias generales</string>
<string name="summary_global_pref_to_general_prefs">Opciones de sincronización</string>
<string name="summary_notif_prefs">Notificaciones</string>
<string name="pref_header_data_sync">Datos &amp; sincronización</string>
<string name="title_activity_general_settings">Configuraciones generales</string>
<string-array name="pref_sync_frequency_titles">
<item>5 minutos</item>
<item>15 minutos</item>
<item>30 minutos</item>
<item>1 hora</item>
<item>3 horas</item>
<item>6 horas</item>
<item>12 horas</item>
<item>24 horas</item>
<item>Nunca</item>
</string-array>
<string-array name="pref_sync_bulk_max_messages_titles">
<item>100 SMS</item>
<item>1000 SMS</item>
<item>2000 SMS</item>
<item>5000 SMS</item>
<item>10000 SMS</item>
<item>25000 SMS</item>
<item>No fueron sincronizados todos los SMS</item>
</string-array>
<string-array name="pref_slow_sync_frequency_titles">
<item>1 hora</item>
<item>3 horas</item>
<item>6 horas</item>
<item>12 horas</item>
<item>24 horas</item>
<item>Nunca</item>
</string-array>
<string name="pref_push_on_receive">Publicar SMS al recibir</string>
<string name="pref_sync_wifi">Sincronizar con Wi-Fi</string>
<string name="pref_sync_4g">Sincronizar con 4G</string>
<string name="pref_sync_3g">Sincronizar con 3G</string>
<string name="pref_sync_gprs">Sincronizar con 2.5G (GPRS)</string>
<string name="pref_sync_2g">Sincronizar con 2G</string>
<string name="pref_sync_others">Sicronizar con otras modalidades</string>
<string name="title_activity_login">Autenticar</string>
<!-- Login -->
<string name="prompt_login">Incio de sesión</string>
<string name="prompt_password">Contraseña</string>
<string name="action_sign_in">Autenticar o registrar</string>
<string name="action_sign_in_short">Autenticar</string>
<string name="error_invalid_login">Credenciales de acceso incorrectas</string>
<string name="error_invalid_password">La contraseña es demasiado corta</string>
<string name="error_field_required">Este campo es requerido</string>
<string name="prompt_serverURI">Dirección del servidor</string>
<string name="error_invalid_server_address">Dirección del servidor inválida</string>
<string name="error_connection_failed">Falla en la conexión, favor de verficar que este sea el servidor correcto</string>
<string name="error_http_connection_failed">Falla al establecer la conexión HTTP. Favor de verificar que cuenta con un navegador. </string>
<!-- Main activity -->
<string name="ma_title_rate_us">¡Califíquenos!</string>
<string name="ma_title_add_account">Agregar una cuenta</string>
<string name="ma_title_welcome">Bienvenido</string>
<string name="ma_content_welcome">Bienvenido a la aplicación Nextcloud SMS. Esta aplicación le permite sincronizar sus SMS con su instancia Nextcloud suando la aplicación SMS. </string>
<string name="ma_title_remote_account">Cuenta remota</string>
<string name="choose_account">Elija la cuenta</string>
<!-- Restauration -->
<string name="title_activity_select_account">Seleccione la cuenta</string>
<string name="title_activity_select_contact">Seleccione el contacto</string>
<string name="no_account_configured">No ha configurado una cuenta.</string>
<!-- Notifications -->
<string name="sync_title">Proceso de sincronización</string>
<string name="sync_inprogress">Sincronización en progreso...</string>
<string name="fatal_error">¡Error fatal!</string>
<string name="notification_channel_name_sync">Sincronizar</string>
<!-- Errors -->
<string name="err_sync_get_smslist">Error #1: Se recibieron datos inválidos al tratar de obtener los mensajes previos</string>
<string name="err_sync_craft_http_request">Error #2: Error al generar la solicitud HTTP </string>
<string name="err_sync_push_request">Error #3:  Falla de la solicitud de cambio</string>
<string name="err_sync_push_request_resp">Error #4: Se recibieron datos inválidos del servidor al publicar los datos</string>
<string name="err_sync_create_json_null_smslist">Error #5: Lista de SMS nula</string>
<string name="err_sync_create_json_put_smslist">Error #6: Error al generar la solicitud de cambio</string>
<string name="err_sync_create_json_request_encoding">Error #7: Codificación no soportada al generar la solicitud</string>
<string name="err_sync_auth_failed">Error #8: Falla de autenticación</string>
<string name="err_sync_http_request_returncode_unhandled">Error #9: El servidor estableció un código de retorno HTTP no administrado</string>
<string name="err_sync_http_request_connect">Error #11: Falla al establecer la conexión con la instancia Nextcloud</string>
<string name="err_sync_http_request_httpexception">Error #12: Falla al establecer la conexión con la instancia Nextcloud</string>
<string name="err_sync_http_request_ioexception">Error #13: Falla al establecer la conexión con la instancia Nextcloud</string>
<string name="err_sync_http_request_resp">Error #14: Falla al interpretar la respuesta del servidor</string>
<string name="err_sync_http_request_parse_resp">Error #15: Falla al interpretar la respuesta del servidor</string>
<string name="err_sync_no_connection_available">Error #16: No se cuenta una conexión de datos disponible</string>
<string name="err_sync_account_unparsable">Error #17: Cuenta malformada. Favor de reconfiguarla</string>
<string name="err_sync_ocsms_not_installed_or_oc_upgrade_required">Error #18: La aplicación Nextcloud SMS no ha sido instalada o Nextcloud requiere una actualización</string>
<string name="err_fetch_phonelist">Se recibió una lista de teléfonos inválida del servidor. </string>
<string name="err_proto_v2">El servidor no soporta esta funcionalidad. Favor de verificar que la versión del servidor sea por lo menos la 1.6. </string>
<string name="contactinfos_title">Información de contacto</string>
<string name="subtitle_contact_phones">- Teléfonos de contacto</string>
<string name="pref_title_bulk_messages">Número máximo de mensajes a enviar por sincronización</string>
<string name="contactinfos_list">Lista de contactos</string>
<string name="function_not_available">Esta funcionalidad aún no está disponible.</string>
<string name="ui_notification_title_template">Nextcloud SMS: %1$s</string>
<string name="communicate">Comunicar</string>
<string name="title_activity_main2">Main2Activity</string>
<string name="navigation_drawer_open">Abirr la barra de navegación</string>
<string name="navigation_drawer_close">Cerrar la barra de navegación</string>
<string name="ma_title_my_accounts">Mis cuentas</string>
<string name="ma_content_swipeaction">Deslice el dedo de izquieda a derecha para acceder al menú de acción.</string>
<string name="cancel">Cancelar</string>
<string name="understood">Entendido</string>
<string name="notif_permission_required">Se requieren privilegios</string>
<string name="notif_permission_required_content">Se requieren de algunos privilegios adiconales para ejecutar el proceso de sincronización. Favor de asignarlos en las configuraciones de la aplicación. </string>
<string name="please_fix_it">Favor de corregir.</string>
<string name="err_cannot_read_contacts">No es posible leer sus contactos.</string>
<string name="err_cannot_read_sms">No es posible leer sus SMS.</string>
<string name="action_appinfo_perms">Información y privilegios de la aplicación</string>
<string name="restore_all_messages">Restarurar todos los mensajes</string>
<string name="account_actions">Acciones de la cuenta</string>
<string name="error_connection_failed_not_found">Falla en la conexión, el servidor responde 404 NO ENCONTRADO. Favor de verificar que la ruta a su instancia Nextcloud sea correcta.</string>
<string name="nothing_to_sync">No hay nada para sincronizar</string>
<string name="feature_not_already_implemented">Esta funcionalidad aún no se encuentra implementada pero estará disponible pronto. </string>
<string name="pref_title_minimum_sync_chars">Longitud mínima de número telefónico</string>
<string name="err_didnt_find_account_restore">Su cuenta no fue encontrada para restaurar su mensaje, este es un caso muy atípico. </string>
<string name="launch_restore">Restaurar mis SMS</string>
<string name="error_make_default_sms_app">Favor de establecer esta aplicación como la aplicación por omision de SMS para permitir restaurar sus mensajes. Esta restricción fue introducida por Android 4.4</string>
<string name="fix_permissions">Corregir privilegios</string>
<string name="err_kitkat_required">Se requiere Android 4.4 o superior para usar esta funcionalidad.</string>
<string name="restore_finished">La restauración de SMS ha terminado.</string>
<string name="x_messages_restored">mensajes restaurados&#8230;</string>
<string name="err_no_connection">No hay una conexión disponible, favor de verificar que cuente con una conexión de datos válida.</string>
<string name="reinit_sync_cursor">Reinicializar el cursor de sincronización</string>
<string name="reinit_sync_cursor_confirm">¿Está seguro de que desea reinicializar el cursor de inicialización? Esto puede alentar la siguiente sincronización si se encuentran varios mensajes antiguos que no hayan sincronizado con el servidor. </string>
<string name="yes_confirm"></string>
<string name="no_confirm">No</string>
<string name="pref_show_sync_notifications">Mostrar notificaciones de sincronización</string>
<string name="sync_complete">Sincronización completa</string>
<string name="err_sync_http_write_failed">Error #19: No se pudo escribir la secuencia HTTP al enviar datos al servidor.</string>
<string name="err_sync_http_request_protocol_exception">Error #20: Error al establecer correctamente la versión del protocolo HTTP.</string>
<string name="action_appinfo_privacy_policy">Políticas de privacidad</string>
<string name="privacy_policy_large_text">
Generalidades\n\n
\"SMS de Nextcloud es software libre desarrollado por sus contribuyentes. Esta política de privacidad\"
\"pretende informarte acerca de los datos reunidos por esta aplicación.\"
\"Información que recogemos\n\n\"
\"Solo se recogen los registros de llamadas y mensajes.\n\n\"
\"Dónde se envía la información.\n\n\"
\"La información no se envía ni a los servidores del equipo Nextcloud ni ª
ªa ningún gobierno u otra entidad a la que no quieras enviar.\n\n\"
\"Cuando configurás una cuenta de Nextcloud en la aplicación, aceptás que el propietario de la instancia\"
\"almacene tus registros de llmadas y SMS en su infraestructura\"
\"bajo su responsabilidad.\n\n\"
\"No recomendamos usar una cuenta pública o empresarial de Nextcloud. Tu privacidad\"
\"debe estar bajo tu control en tu propia instancia de Nextcloud.\n\n\"
</string>
</resources>

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
* Copyright (c) 2014, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
-->
<resources
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingTranslation">
<!-- Translations must begin here -->
<string name="gp_short_description">SMS de Nextcloud sincroniza tu SMS local con tu instancia Nextcloud</string>
</resources>

View File

@ -0,0 +1,183 @@
<?xml version="1.0" encoding="utf-8"?><!--
/*
* Copyright (c) 2014-2015, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
-->
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<!-- Translation version, reference for translators -->
<string name="translation_version">7</string>
<!-- System strings, do not translate -->
<string name="app_name">SMS de Nextcloud</string>
<string name="login_logo">Logotipo para inicio de sesión</string>
<!-- Translations must begin there -->
<!-- Preferences -->
<string name="pref_title_sync">SMS - Rápido</string>
<string name="pref_title_sync_frequency">Frecuencia de Sinconrización Rápida</string>
<string name="pref_title_slow_sync">SMS - Lento y Seguro</string>
<string name="pref_title_slow_sync_frequency">Frecuencia de Sincronización Lenta y Segura</string>
<string name="action_settings">Configuraciones</string>
<string name="sync_now">Sincronizar ahora</string>
<string name="pref_category_sync">Sincronización</string>
<string name="title_global_pref_to_general_prefs">Preferencias generales</string>
<string name="summary_global_pref_to_general_prefs">Opciones de sincronización</string>
<string name="summary_notif_prefs">Notificaciones</string>
<string name="pref_header_data_sync">Datos &amp; sincronización</string>
<string name="title_activity_general_settings">Configuraciones generales</string>
<string-array name="pref_sync_frequency_titles">
<item>5 minutos</item>
<item>15 minutos</item>
<item>30 minutos</item>
<item>1 hora</item>
<item>3 horas</item>
<item>6 horas</item>
<item>12 horas</item>
<item>24 horas</item>
<item>Nunca</item>
</string-array>
<string-array name="pref_sync_bulk_max_messages_titles">
<item>100 SMS</item>
<item>1000 SMS</item>
<item>2000 SMS</item>
<item>5000 SMS</item>
<item>10000 SMS</item>
<item>25000 SMS</item>
<item>No fueron sincronizados todos los SMS</item>
</string-array>
<string-array name="pref_slow_sync_frequency_titles">
<item>1 hora</item>
<item>3 horas</item>
<item>6 horas</item>
<item>12 horas</item>
<item>24 horas</item>
<item>Nunca</item>
</string-array>
<string name="pref_push_on_receive">Publicar SMS al recibir</string>
<string name="pref_sync_wifi">Sincronizar con Wi-Fi</string>
<string name="pref_sync_4g">Sincronizar con 4G</string>
<string name="pref_sync_3g">Sincronizar con 3G</string>
<string name="pref_sync_gprs">Sincronizar con 2.5G (GPRS)</string>
<string name="pref_sync_2g">Sincronizar con 2G</string>
<string name="pref_sync_others">Sicronizar con otras modalidades</string>
<string name="title_activity_login">Autenticar</string>
<!-- Login -->
<string name="prompt_login">Inciar sesión</string>
<string name="prompt_password">Contraseña</string>
<string name="action_sign_in">Autenticar o registrar</string>
<string name="action_sign_in_short">Autenticar</string>
<string name="error_invalid_login">Credenciales de acceso incorrectas</string>
<string name="error_invalid_password">La contraseña es demasiado corta</string>
<string name="error_field_required">Este campo es requerido</string>
<string name="prompt_serverURI">Dirección del servidor</string>
<string name="error_invalid_server_address">Dirección del servidor inválida</string>
<string name="error_connection_failed">Falla en la conexión, por favor verfica que éste sea el servidor correcto</string>
<string name="error_http_connection_failed">Falla al establecer la conexión HTTP. Por favor verifica que cuentas con un navegador. </string>
<!-- Main activity -->
<string name="ma_title_rate_us">¡Califícanos!</string>
<string name="ma_title_add_account">Agregar una cuenta</string>
<string name="ma_title_welcome">Bienvenido</string>
<string name="ma_content_welcome">Bienvenido a la aplicación Nextcloud SMS. Esta aplicación te permite sincronizar tus SMS con tu instancia Nextcloud usando la aplicación SMS. </string>
<string name="ma_title_remote_account">Cuenta remota</string>
<string name="choose_account">Elige la cuenta</string>
<!-- Restauration -->
<string name="title_activity_select_account">Selecciona la cuenta</string>
<string name="title_activity_select_contact">Selecciona el contacto</string>
<string name="no_account_configured">No hay una cuenta configurada.</string>
<!-- Notifications -->
<string name="sync_title">Proceso de sincronización</string>
<string name="fatal_error">¡Error fatal!</string>
<string name="notification_channel_name_sync">Sincronizar</string>
<!-- Errors -->
<string name="err_sync_get_smslist">Error #1: Se recibieron datos inválidos al tratar de obtener los mensajes previos</string>
<string name="err_sync_craft_http_request">Error #2: Error al generar la solicitud HTTP </string>
<string name="err_sync_push_request">Error #3:  Falla en la solicitud de cambio</string>
<string name="err_sync_push_request_resp">Error #4: Se recibieron datos inválidos del servidor al publicar los datos</string>
<string name="err_sync_create_json_null_smslist">Error #5: Lista de SMS nula</string>
<string name="err_sync_create_json_put_smslist">Error #6: Error al generar la solicitud de cambio</string>
<string name="err_sync_create_json_request_encoding">Error #7: Codificación no soportada al generar la solicitud</string>
<string name="err_sync_auth_failed">Error #8: Falla de autenticación</string>
<string name="err_sync_http_request_returncode_unhandled">Error #9: El servidor estableció un código de retorno HTTP no administrado</string>
<string name="err_sync_http_request_connect">Error #11: Falla al establecer la conexión con la instancia Nextcloud</string>
<string name="err_sync_http_request_httpexception">Error #12: Falla al establecer la conexión con la instancia Nextcloud</string>
<string name="err_sync_http_request_ioexception">Error #13: Falla al establecer la conexión con la instancia Nextcloud</string>
<string name="err_sync_http_request_resp">Error #14: Falla al interpretar la respuesta del servidor</string>
<string name="err_sync_http_request_parse_resp">Error #15: Falla al interpretar la respuesta del servidor</string>
<string name="err_sync_no_connection_available">Error #16: No se cuenta una conexión de datos disponible</string>
<string name="err_sync_account_unparsable">Error #17: Cuenta malformada. Por favor reconfigurala</string>
<string name="err_sync_ocsms_not_installed_or_oc_upgrade_required">Error #18: La aplicación Nextcloud SMS no ha sido instalada o Nextcloud requiere una actualización</string>
<string name="err_fetch_phonelist">Se recibió una lista de teléfonos inválida del servidor. </string>
<string name="err_proto_v2">El servidor no soporta esta funcionalidad. Por favor verifica que la versión del servidor sea por lo menos la 1.6. </string>
<string name="contactinfos_title">Información de contacto</string>
<string name="subtitle_contact_phones">- Teléfonos de contacto</string>
<string name="pref_title_bulk_messages">Número máximo de mensajes a enviar por sincronización</string>
<string name="contactinfos_list">Lista de contactos</string>
<string name="function_not_available">Esta funcionalidad aún no está disponible.</string>
<string name="ui_notification_title_template">Nextcloud SMS: %1$s</string>
<string name="communicate">Comunicar</string>
<string name="title_activity_main2">Main2Activity</string>
<string name="navigation_drawer_open">Abirr la barra de navegación</string>
<string name="navigation_drawer_close">Cerrar la barra de navegación</string>
<string name="ma_title_my_accounts">Mis cuentas</string>
<string name="ma_content_swipeaction">Desliza el dedo de izquieda a derecha para acceder al menú de acción.</string>
<string name="cancel">Cancelar</string>
<string name="understood">Entendido</string>
<string name="notif_permission_required">Se requieren privilegios</string>
<string name="notif_permission_required_content">Se requieren de algunos privilegios adiconales para ejecutar el proceso de sincronización. Por favor asígnalos en las configuraciones de la aplicación. </string>
<string name="please_fix_it">Por favor corrígelo.</string>
<string name="err_cannot_read_contacts">No es posible leer tus contactos.</string>
<string name="err_cannot_read_sms">No es posible leer tus SMS.</string>
<string name="action_appinfo_perms">Información y privilegios de la aplicación</string>
<string name="restore_all_messages">Restarurar todos los mensajes</string>
<string name="account_actions">Acciones de la cuenta</string>
<string name="error_connection_failed_not_found">Falla en la conexión, el servidor responde 404 NO ENCONTRADO. Por favor verifica que la ruta a tu instancia Nextcloud sea correcta.</string>
<string name="nothing_to_sync">No hay nada para sincronizar</string>
<string name="feature_not_already_implemented">Esta funcionalidad aún no se encuentra implementada pero estará disponible pronto. </string>
<string name="pref_title_minimum_sync_chars">Longitud mínima de número telefónico</string>
<string name="err_didnt_find_account_restore">No encontramos tu cuenta para restaurar tu mensaje, este es un caso muy atípico. </string>
<string name="launch_restore">Restaurar mis SMS</string>
<string name="error_make_default_sms_app">Por favor establece esta aplicación como la aplicación predeterminada de SMS para permitir restaurar tus mensajes. Esta restricción fue introducida por Android 4.4</string>
<string name="fix_permissions">Arreglar los privilegios</string>
<string name="err_kitkat_required">Se requiere Android 4.4 o superior para usar esta funcionalidad.</string>
<string name="restore_finished">La restauración de SMS ha terminado.</string>
<string name="x_messages_restored">mensajes restaurados&#8230;</string>
<string name="err_no_connection">No hay una conexión disponible, por favor verifica que cuentas con una conexión de datos válida.</string>
<string name="reinit_sync_cursor">Reinicializar el cursor de sincronización</string>
<string name="reinit_sync_cursor_confirm">¿Estás seguro de que deseas reinicializar el cursor de inicialización? Esto puede alentar la siguiente sincronización si se encuentran varios mensajes antiguos que no hayan sincronizado con el servidor. </string>
<string name="yes_confirm"></string>
<string name="no_confirm">No</string>
<string name="pref_show_sync_notifications">Mostrar notificaciones de sincronización</string>
<string name="sync_complete">Sincronización completa</string>
<string name="err_sync_http_write_failed">Error #19: Falla al escribir al flujo HTTP al enviar datos al servidor. </string>
<string name="err_sync_http_request_protocol_exception">Error #20: Falla al establecer correctamente la versión del protocolo HTTP.</string>
</resources>

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
* Copyright (c) 2014, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
-->
<resources
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingTranslation">
<!-- Translations must begin here -->
<string name="gp_short_description">SMS de Nextcloud sincroniza tu SMS local con tu instancia Nextcloud</string>
</resources>

View File

@ -0,0 +1,183 @@
<?xml version="1.0" encoding="utf-8"?><!--
/*
* Copyright (c) 2014-2015, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
-->
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<!-- Translation version, reference for translators -->
<string name="translation_version">7</string>
<!-- System strings, do not translate -->
<string name="app_name">SMS de Nextcloud</string>
<string name="login_logo">Logotipo para inicio de sesión</string>
<!-- Translations must begin there -->
<!-- Preferences -->
<string name="pref_title_sync">SMS - Rápido</string>
<string name="pref_title_sync_frequency">Frecuencia de Sinconrización Rápida</string>
<string name="pref_title_slow_sync">SMS - Lento y Seguro</string>
<string name="pref_title_slow_sync_frequency">Frecuencia de Sincronización Lenta y Segura</string>
<string name="action_settings">Configuraciones</string>
<string name="sync_now">Sincronizar ahora</string>
<string name="pref_category_sync">Sincronización</string>
<string name="title_global_pref_to_general_prefs">Preferencias generales</string>
<string name="summary_global_pref_to_general_prefs">Opciones de sincronización</string>
<string name="summary_notif_prefs">Notificaciones</string>
<string name="pref_header_data_sync">Datos &amp; sincronización</string>
<string name="title_activity_general_settings">Configuraciones generales</string>
<string-array name="pref_sync_frequency_titles">
<item>5 minutos</item>
<item>15 minutos</item>
<item>30 minutos</item>
<item>1 hora</item>
<item>3 horas</item>
<item>6 horas</item>
<item>12 horas</item>
<item>24 horas</item>
<item>Nunca</item>
</string-array>
<string-array name="pref_sync_bulk_max_messages_titles">
<item>100 SMS</item>
<item>1000 SMS</item>
<item>2000 SMS</item>
<item>5000 SMS</item>
<item>10000 SMS</item>
<item>25000 SMS</item>
<item>No fueron sincronizados todos los SMS</item>
</string-array>
<string-array name="pref_slow_sync_frequency_titles">
<item>1 hora</item>
<item>3 horas</item>
<item>6 horas</item>
<item>12 horas</item>
<item>24 horas</item>
<item>Nunca</item>
</string-array>
<string name="pref_push_on_receive">Publicar SMS al recibir</string>
<string name="pref_sync_wifi">Sincronizar con Wi-Fi</string>
<string name="pref_sync_4g">Sincronizar con 4G</string>
<string name="pref_sync_3g">Sincronizar con 3G</string>
<string name="pref_sync_gprs">Sincronizar con 2.5G (GPRS)</string>
<string name="pref_sync_2g">Sincronizar con 2G</string>
<string name="pref_sync_others">Sicronizar con otras modalidades</string>
<string name="title_activity_login">Autenticar</string>
<!-- Login -->
<string name="prompt_login">Inciar sesión</string>
<string name="prompt_password">Contraseña</string>
<string name="action_sign_in">Autenticar o registrar</string>
<string name="action_sign_in_short">Autenticar</string>
<string name="error_invalid_login">Credenciales de acceso incorrectas</string>
<string name="error_invalid_password">La contraseña es demasiado corta</string>
<string name="error_field_required">Este campo es requerido</string>
<string name="prompt_serverURI">Dirección del servidor</string>
<string name="error_invalid_server_address">Dirección del servidor inválida</string>
<string name="error_connection_failed">Falla en la conexión, por favor verfica que éste sea el servidor correcto</string>
<string name="error_http_connection_failed">Falla al establecer la conexión HTTP. Por favor verifica que cuentas con un navegador. </string>
<!-- Main activity -->
<string name="ma_title_rate_us">¡Califícanos!</string>
<string name="ma_title_add_account">Agregar una cuenta</string>
<string name="ma_title_welcome">Bienvenido</string>
<string name="ma_content_welcome">Bienvenido a la aplicación Nextcloud SMS. Esta aplicación te permite sincronizar tus SMS con tu instancia Nextcloud usando la aplicación SMS. </string>
<string name="ma_title_remote_account">Cuenta remota</string>
<string name="choose_account">Elige la cuenta</string>
<!-- Restauration -->
<string name="title_activity_select_account">Selecciona la cuenta</string>
<string name="title_activity_select_contact">Selecciona el contacto</string>
<string name="no_account_configured">No hay una cuenta configurada.</string>
<!-- Notifications -->
<string name="sync_title">Proceso de sincronización</string>
<string name="fatal_error">¡Error fatal!</string>
<string name="notification_channel_name_sync">Sincronizar</string>
<!-- Errors -->
<string name="err_sync_get_smslist">Error #1: Se recibieron datos inválidos al tratar de obtener los mensajes previos</string>
<string name="err_sync_craft_http_request">Error #2: Error al generar la solicitud HTTP </string>
<string name="err_sync_push_request">Error #3:  Falla en la solicitud de cambio</string>
<string name="err_sync_push_request_resp">Error #4: Se recibieron datos inválidos del servidor al publicar los datos</string>
<string name="err_sync_create_json_null_smslist">Error #5: Lista de SMS nula</string>
<string name="err_sync_create_json_put_smslist">Error #6: Error al generar la solicitud de cambio</string>
<string name="err_sync_create_json_request_encoding">Error #7: Codificación no soportada al generar la solicitud</string>
<string name="err_sync_auth_failed">Error #8: Falla de autenticación</string>
<string name="err_sync_http_request_returncode_unhandled">Error #9: El servidor estableció un código de retorno HTTP no administrado</string>
<string name="err_sync_http_request_connect">Error #11: Falla al establecer la conexión con la instancia Nextcloud</string>
<string name="err_sync_http_request_httpexception">Error #12: Falla al establecer la conexión con la instancia Nextcloud</string>
<string name="err_sync_http_request_ioexception">Error #13: Falla al establecer la conexión con la instancia Nextcloud</string>
<string name="err_sync_http_request_resp">Error #14: Falla al interpretar la respuesta del servidor</string>
<string name="err_sync_http_request_parse_resp">Error #15: Falla al interpretar la respuesta del servidor</string>
<string name="err_sync_no_connection_available">Error #16: No se cuenta una conexión de datos disponible</string>
<string name="err_sync_account_unparsable">Error #17: Cuenta malformada. Por favor reconfigurala</string>
<string name="err_sync_ocsms_not_installed_or_oc_upgrade_required">Error #18: La aplicación Nextcloud SMS no ha sido instalada o Nextcloud requiere una actualización</string>
<string name="err_fetch_phonelist">Se recibió una lista de teléfonos inválida del servidor. </string>
<string name="err_proto_v2">El servidor no soporta esta funcionalidad. Por favor verifica que la versión del servidor sea por lo menos la 1.6. </string>
<string name="contactinfos_title">Información de contacto</string>
<string name="subtitle_contact_phones">- Teléfonos de contacto</string>
<string name="pref_title_bulk_messages">Número máximo de mensajes a enviar por sincronización</string>
<string name="contactinfos_list">Lista de contactos</string>
<string name="function_not_available">Esta funcionalidad aún no está disponible.</string>
<string name="ui_notification_title_template">Nextcloud SMS: %1$s</string>
<string name="communicate">Comunicar</string>
<string name="title_activity_main2">Main2Activity</string>
<string name="navigation_drawer_open">Abirr la barra de navegación</string>
<string name="navigation_drawer_close">Cerrar la barra de navegación</string>
<string name="ma_title_my_accounts">Mis cuentas</string>
<string name="ma_content_swipeaction">Desliza el dedo de izquieda a derecha para acceder al menú de acción.</string>
<string name="cancel">Cancelar</string>
<string name="understood">Entendido</string>
<string name="notif_permission_required">Se requieren privilegios</string>
<string name="notif_permission_required_content">Se requieren de algunos privilegios adiconales para ejecutar el proceso de sincronización. Por favor asígnalos en las configuraciones de la aplicación. </string>
<string name="please_fix_it">Por favor corrígelo.</string>
<string name="err_cannot_read_contacts">No es posible leer tus contactos.</string>
<string name="err_cannot_read_sms">No es posible leer tus SMS.</string>
<string name="action_appinfo_perms">Información y privilegios de la aplicación</string>
<string name="restore_all_messages">Restarurar todos los mensajes</string>
<string name="account_actions">Acciones de la cuenta</string>
<string name="error_connection_failed_not_found">Falla en la conexión, el servidor responde 404 NO ENCONTRADO. Por favor verifica que la ruta a tu instancia Nextcloud sea correcta.</string>
<string name="nothing_to_sync">No hay nada para sincronizar</string>
<string name="feature_not_already_implemented">Esta funcionalidad aún no se encuentra implementada pero estará disponible pronto. </string>
<string name="pref_title_minimum_sync_chars">Longitud mínima de número telefónico</string>
<string name="err_didnt_find_account_restore">No encontramos tu cuenta para restaurar tu mensaje, este es un caso muy atípico. </string>
<string name="launch_restore">Restaurar mis SMS</string>
<string name="error_make_default_sms_app">Por favor establece esta aplicación como la aplicación predeterminada de SMS para permitir restaurar tus mensajes. Esta restricción fue introducida por Android 4.4</string>
<string name="fix_permissions">Arreglar los privilegios</string>
<string name="err_kitkat_required">Se requiere Android 4.4 o superior para usar esta funcionalidad.</string>
<string name="restore_finished">La restauración de SMS ha terminado.</string>
<string name="x_messages_restored">mensajes restaurados&#8230;</string>
<string name="err_no_connection">No hay una conexión disponible, por favor verifica que cuentas con una conexión de datos válida.</string>
<string name="reinit_sync_cursor">Reinicializar el cursor de sincronización</string>
<string name="reinit_sync_cursor_confirm">¿Estás seguro de que deseas reinicializar el cursor de inicialización? Esto puede alentar la siguiente sincronización si se encuentran varios mensajes antiguos que no hayan sincronizado con el servidor. </string>
<string name="yes_confirm"></string>
<string name="no_confirm">No</string>
<string name="pref_show_sync_notifications">Mostrar notificaciones de sincronización</string>
<string name="sync_complete">Sincronización completa</string>
<string name="err_sync_http_write_failed">Error #19: Falla al escribir al flujo HTTP al enviar datos al servidor. </string>
<string name="err_sync_http_request_protocol_exception">Error #20: Falla al establecer correctamente la versión del protocolo HTTP.</string>
</resources>

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
* Copyright (c) 2014, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
-->
<resources
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingTranslation">
<!-- Translations must begin here -->
<string name="gp_short_description">SMS de Nextcloud sincroniza tu SMS local con tu instancia Nextcloud</string>
</resources>

View File

@ -0,0 +1,183 @@
<?xml version="1.0" encoding="utf-8"?><!--
/*
* Copyright (c) 2014-2015, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
-->
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<!-- Translation version, reference for translators -->
<string name="translation_version">7</string>
<!-- System strings, do not translate -->
<string name="app_name">SMS de Nextcloud</string>
<string name="login_logo">Logotipo para inicio de sesión</string>
<!-- Translations must begin there -->
<!-- Preferences -->
<string name="pref_title_sync">SMS - Rápido</string>
<string name="pref_title_sync_frequency">Frecuencia de Sinconrización Rápida</string>
<string name="pref_title_slow_sync">SMS - Lento y Seguro</string>
<string name="pref_title_slow_sync_frequency">Frecuencia de Sincronización Lenta y Segura</string>
<string name="action_settings">Configuraciones</string>
<string name="sync_now">Sincronizar ahora</string>
<string name="pref_category_sync">Sincronización</string>
<string name="title_global_pref_to_general_prefs">Preferencias generales</string>
<string name="summary_global_pref_to_general_prefs">Opciones de sincronización</string>
<string name="summary_notif_prefs">Notificaciones</string>
<string name="pref_header_data_sync">Datos &amp; sincronización</string>
<string name="title_activity_general_settings">Configuraciones generales</string>
<string-array name="pref_sync_frequency_titles">
<item>5 minutos</item>
<item>15 minutos</item>
<item>30 minutos</item>
<item>1 hora</item>
<item>3 horas</item>
<item>6 horas</item>
<item>12 horas</item>
<item>24 horas</item>
<item>Nunca</item>
</string-array>
<string-array name="pref_sync_bulk_max_messages_titles">
<item>100 SMS</item>
<item>1000 SMS</item>
<item>2000 SMS</item>
<item>5000 SMS</item>
<item>10000 SMS</item>
<item>25000 SMS</item>
<item>No fueron sincronizados todos los SMS</item>
</string-array>
<string-array name="pref_slow_sync_frequency_titles">
<item>1 hora</item>
<item>3 horas</item>
<item>6 horas</item>
<item>12 horas</item>
<item>24 horas</item>
<item>Nunca</item>
</string-array>
<string name="pref_push_on_receive">Publicar SMS al recibir</string>
<string name="pref_sync_wifi">Sincronizar con Wi-Fi</string>
<string name="pref_sync_4g">Sincronizar con 4G</string>
<string name="pref_sync_3g">Sincronizar con 3G</string>
<string name="pref_sync_gprs">Sincronizar con 2.5G (GPRS)</string>
<string name="pref_sync_2g">Sincronizar con 2G</string>
<string name="pref_sync_others">Sicronizar con otras modalidades</string>
<string name="title_activity_login">Autenticar</string>
<!-- Login -->
<string name="prompt_login">Inciar sesión</string>
<string name="prompt_password">Contraseña</string>
<string name="action_sign_in">Autenticar o registrar</string>
<string name="action_sign_in_short">Autenticar</string>
<string name="error_invalid_login">Credenciales de acceso incorrectas</string>
<string name="error_invalid_password">La contraseña es demasiado corta</string>
<string name="error_field_required">Este campo es requerido</string>
<string name="prompt_serverURI">Dirección del servidor</string>
<string name="error_invalid_server_address">Dirección del servidor inválida</string>
<string name="error_connection_failed">Falla en la conexión, por favor verfica que éste sea el servidor correcto</string>
<string name="error_http_connection_failed">Falla al establecer la conexión HTTP. Por favor verifica que cuentas con un navegador. </string>
<!-- Main activity -->
<string name="ma_title_rate_us">¡Califícanos!</string>
<string name="ma_title_add_account">Agregar una cuenta</string>
<string name="ma_title_welcome">Bienvenido</string>
<string name="ma_content_welcome">Bienvenido a la aplicación Nextcloud SMS. Esta aplicación te permite sincronizar tus SMS con tu instancia Nextcloud usando la aplicación SMS. </string>
<string name="ma_title_remote_account">Cuenta remota</string>
<string name="choose_account">Elige la cuenta</string>
<!-- Restauration -->
<string name="title_activity_select_account">Selecciona la cuenta</string>
<string name="title_activity_select_contact">Selecciona el contacto</string>
<string name="no_account_configured">No hay una cuenta configurada.</string>
<!-- Notifications -->
<string name="sync_title">Proceso de sincronización</string>
<string name="fatal_error">¡Error fatal!</string>
<string name="notification_channel_name_sync">Sincronizar</string>
<!-- Errors -->
<string name="err_sync_get_smslist">Error #1: Se recibieron datos inválidos al tratar de obtener los mensajes previos</string>
<string name="err_sync_craft_http_request">Error #2: Error al generar la solicitud HTTP </string>
<string name="err_sync_push_request">Error #3:  Falla en la solicitud de cambio</string>
<string name="err_sync_push_request_resp">Error #4: Se recibieron datos inválidos del servidor al publicar los datos</string>
<string name="err_sync_create_json_null_smslist">Error #5: Lista de SMS nula</string>
<string name="err_sync_create_json_put_smslist">Error #6: Error al generar la solicitud de cambio</string>
<string name="err_sync_create_json_request_encoding">Error #7: Codificación no soportada al generar la solicitud</string>
<string name="err_sync_auth_failed">Error #8: Falla de autenticación</string>
<string name="err_sync_http_request_returncode_unhandled">Error #9: El servidor estableció un código de retorno HTTP no administrado</string>
<string name="err_sync_http_request_connect">Error #11: Falla al establecer la conexión con la instancia Nextcloud</string>
<string name="err_sync_http_request_httpexception">Error #12: Falla al establecer la conexión con la instancia Nextcloud</string>
<string name="err_sync_http_request_ioexception">Error #13: Falla al establecer la conexión con la instancia Nextcloud</string>
<string name="err_sync_http_request_resp">Error #14: Falla al interpretar la respuesta del servidor</string>
<string name="err_sync_http_request_parse_resp">Error #15: Falla al interpretar la respuesta del servidor</string>
<string name="err_sync_no_connection_available">Error #16: No se cuenta una conexión de datos disponible</string>
<string name="err_sync_account_unparsable">Error #17: Cuenta malformada. Por favor reconfigurala</string>
<string name="err_sync_ocsms_not_installed_or_oc_upgrade_required">Error #18: La aplicación Nextcloud SMS no ha sido instalada o Nextcloud requiere una actualización</string>
<string name="err_fetch_phonelist">Se recibió una lista de teléfonos inválida del servidor. </string>
<string name="err_proto_v2">El servidor no soporta esta funcionalidad. Por favor verifica que la versión del servidor sea por lo menos la 1.6. </string>
<string name="contactinfos_title">Información de contacto</string>
<string name="subtitle_contact_phones">- Teléfonos de contacto</string>
<string name="pref_title_bulk_messages">Número máximo de mensajes a enviar por sincronización</string>
<string name="contactinfos_list">Lista de contactos</string>
<string name="function_not_available">Esta funcionalidad aún no está disponible.</string>
<string name="ui_notification_title_template">Nextcloud SMS: %1$s</string>
<string name="communicate">Comunicar</string>
<string name="title_activity_main2">Main2Activity</string>
<string name="navigation_drawer_open">Abirr la barra de navegación</string>
<string name="navigation_drawer_close">Cerrar la barra de navegación</string>
<string name="ma_title_my_accounts">Mis cuentas</string>
<string name="ma_content_swipeaction">Desliza el dedo de izquieda a derecha para acceder al menú de acción.</string>
<string name="cancel">Cancelar</string>
<string name="understood">Entendido</string>
<string name="notif_permission_required">Se requieren privilegios</string>
<string name="notif_permission_required_content">Se requieren de algunos privilegios adiconales para ejecutar el proceso de sincronización. Por favor asígnalos en las configuraciones de la aplicación. </string>
<string name="please_fix_it">Por favor corrígelo.</string>
<string name="err_cannot_read_contacts">No es posible leer tus contactos.</string>
<string name="err_cannot_read_sms">No es posible leer tus SMS.</string>
<string name="action_appinfo_perms">Información y privilegios de la aplicación</string>
<string name="restore_all_messages">Restarurar todos los mensajes</string>
<string name="account_actions">Acciones de la cuenta</string>
<string name="error_connection_failed_not_found">Falla en la conexión, el servidor responde 404 NO ENCONTRADO. Por favor verifica que la ruta a tu instancia Nextcloud sea correcta.</string>
<string name="nothing_to_sync">No hay nada para sincronizar</string>
<string name="feature_not_already_implemented">Esta funcionalidad aún no se encuentra implementada pero estará disponible pronto. </string>
<string name="pref_title_minimum_sync_chars">Longitud mínima de número telefónico</string>
<string name="err_didnt_find_account_restore">No encontramos tu cuenta para restaurar tu mensaje, este es un caso muy atípico. </string>
<string name="launch_restore">Restaurar mis SMS</string>
<string name="error_make_default_sms_app">Por favor establece esta aplicación como la aplicación predeterminada de SMS para permitir restaurar tus mensajes. Esta restricción fue introducida por Android 4.4</string>
<string name="fix_permissions">Arreglar los privilegios</string>
<string name="err_kitkat_required">Se requiere Android 4.4 o superior para usar esta funcionalidad.</string>
<string name="restore_finished">La restauración de SMS ha terminado.</string>
<string name="x_messages_restored">mensajes restaurados&#8230;</string>
<string name="err_no_connection">No hay una conexión disponible, por favor verifica que cuentas con una conexión de datos válida.</string>
<string name="reinit_sync_cursor">Reinicializar el cursor de sincronización</string>
<string name="reinit_sync_cursor_confirm">¿Estás seguro de que deseas reinicializar el cursor de inicialización? Esto puede alentar la siguiente sincronización si se encuentran varios mensajes antiguos que no hayan sincronizado con el servidor. </string>
<string name="yes_confirm"></string>
<string name="no_confirm">No</string>
<string name="pref_show_sync_notifications">Mostrar notificaciones de sincronización</string>
<string name="sync_complete">Sincronización completa</string>
<string name="err_sync_http_write_failed">Error #19: Falla al escribir al flujo HTTP al enviar datos al servidor. </string>
<string name="err_sync_http_request_protocol_exception">Error #20: Falla al establecer correctamente la versión del protocolo HTTP.</string>
</resources>

View File

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
* Copyright (c) 2014, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
-->
<resources
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingTranslation">
<!-- Translations must begin here -->
<string name="gp_short_description">SMS de Nextcloud sincroniza tu SMS local con tu instancia Nextcloud</string>
<string name="gp_description">
La aplicación de SMS Nextcloud sincroniza sus mensajes SMS en una instancia remota de Nextcloud y le permite leer sus mensajes desde ella.
El envío de SMS desde la instancia de Nextcloud llegará en una versión futura.
La aplicación es totalmente compatible desde Android 4.0 a 6.0
</string>
</resources>

View File

@ -0,0 +1,183 @@
<?xml version="1.0" encoding="utf-8"?><!--
/*
* Copyright (c) 2014-2015, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
-->
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<!-- Translation version, reference for translators -->
<string name="translation_version">7</string>
<!-- System strings, do not translate -->
<string name="app_name">SMS de Nextcloud</string>
<string name="login_logo">Logotipo para inicio de sesión</string>
<!-- Translations must begin there -->
<!-- Preferences -->
<string name="pref_title_sync">SMS - Rápido</string>
<string name="pref_title_sync_frequency">Frecuencia de Sinconrización Rápida</string>
<string name="pref_title_slow_sync">SMS - Lento y Seguro</string>
<string name="pref_title_slow_sync_frequency">Frecuencia de Sincronización Lenta y Segura</string>
<string name="action_settings">Configuraciones</string>
<string name="sync_now">Sincronizar ahora</string>
<string name="pref_category_sync">Sincronización</string>
<string name="title_global_pref_to_general_prefs">Preferencias generales</string>
<string name="summary_global_pref_to_general_prefs">Opciones de sincronización</string>
<string name="summary_notif_prefs">Notificaciones</string>
<string name="pref_header_data_sync">Datos &amp; sincronización</string>
<string name="title_activity_general_settings">Configuraciones generales</string>
<string-array name="pref_sync_frequency_titles">
<item>5 minutos</item>
<item>15 minutos</item>
<item>30 minutos</item>
<item>1 hora</item>
<item>3 horas</item>
<item>6 horas</item>
<item>12 horas</item>
<item>24 horas</item>
<item>Nunca</item>
</string-array>
<string-array name="pref_sync_bulk_max_messages_titles">
<item>100 SMS</item>
<item>1000 SMS</item>
<item>2000 SMS</item>
<item>5000 SMS</item>
<item>10000 SMS</item>
<item>25000 SMS</item>
<item>No fueron sincronizados todos los SMS</item>
</string-array>
<string-array name="pref_slow_sync_frequency_titles">
<item>1 hora</item>
<item>3 horas</item>
<item>6 horas</item>
<item>12 horas</item>
<item>24 horas</item>
<item>Nunca</item>
</string-array>
<string name="pref_push_on_receive">Publicar SMS al recibir</string>
<string name="pref_sync_wifi">Sincronizar con Wi-Fi</string>
<string name="pref_sync_4g">Sincronizar con 4G</string>
<string name="pref_sync_3g">Sincronizar con 3G</string>
<string name="pref_sync_gprs">Sincronizar con 2.5G (GPRS)</string>
<string name="pref_sync_2g">Sincronizar con 2G</string>
<string name="pref_sync_others">Sicronizar con otras modalidades</string>
<string name="title_activity_login">Autenticar</string>
<!-- Login -->
<string name="prompt_login">Inciar sesión</string>
<string name="prompt_password">Contraseña</string>
<string name="action_sign_in">Autenticar o registrar</string>
<string name="action_sign_in_short">Autenticar</string>
<string name="error_invalid_login">Credenciales de acceso incorrectas</string>
<string name="error_invalid_password">La contraseña es demasiado corta</string>
<string name="error_field_required">Este campo es requerido</string>
<string name="prompt_serverURI">Dirección del servidor</string>
<string name="error_invalid_server_address">Dirección del servidor inválida</string>
<string name="error_connection_failed">Falla en la conexión, por favor verfica que éste sea el servidor correcto</string>
<string name="error_http_connection_failed">Falla al establecer la conexión HTTP. Por favor verifica que cuentas con un navegador. </string>
<!-- Main activity -->
<string name="ma_title_rate_us">¡Califícanos!</string>
<string name="ma_title_add_account">Agregar una cuenta</string>
<string name="ma_title_welcome">Bienvenido</string>
<string name="ma_content_welcome">Bienvenido a la aplicación Nextcloud SMS. Esta aplicación te permite sincronizar tus SMS con tu instancia Nextcloud usando la aplicación SMS. </string>
<string name="ma_title_remote_account">Cuenta remota</string>
<string name="choose_account">Elige la cuenta</string>
<!-- Restauration -->
<string name="title_activity_select_account">Selecciona la cuenta</string>
<string name="title_activity_select_contact">Selecciona el contacto</string>
<string name="no_account_configured">No hay una cuenta configurada.</string>
<!-- Notifications -->
<string name="sync_title">Proceso de sincronización</string>
<string name="fatal_error">¡Error fatal!</string>
<string name="notification_channel_name_sync">Sincronizar</string>
<!-- Errors -->
<string name="err_sync_get_smslist">Error #1: Se recibieron datos inválidos al tratar de obtener los mensajes previos</string>
<string name="err_sync_craft_http_request">Error #2: Error al generar la solicitud HTTP </string>
<string name="err_sync_push_request">Error #3:  Falla en la solicitud de cambio</string>
<string name="err_sync_push_request_resp">Error #4: Se recibieron datos inválidos del servidor al publicar los datos</string>
<string name="err_sync_create_json_null_smslist">Error #5: Lista de SMS nula</string>
<string name="err_sync_create_json_put_smslist">Error #6: Error al generar la solicitud de cambio</string>
<string name="err_sync_create_json_request_encoding">Error #7: Codificación no soportada al generar la solicitud</string>
<string name="err_sync_auth_failed">Error #8: Falla de autenticación</string>
<string name="err_sync_http_request_returncode_unhandled">Error #9: El servidor estableció un código de retorno HTTP no administrado</string>
<string name="err_sync_http_request_connect">Error #11: Falla al establecer la conexión con la instancia Nextcloud</string>
<string name="err_sync_http_request_httpexception">Error #12: Falla al establecer la conexión con la instancia Nextcloud</string>
<string name="err_sync_http_request_ioexception">Error #13: Falla al establecer la conexión con la instancia Nextcloud</string>
<string name="err_sync_http_request_resp">Error #14: Falla al interpretar la respuesta del servidor</string>
<string name="err_sync_http_request_parse_resp">Error #15: Falla al interpretar la respuesta del servidor</string>
<string name="err_sync_no_connection_available">Error #16: No se cuenta una conexión de datos disponible</string>
<string name="err_sync_account_unparsable">Error #17: Cuenta malformada. Por favor reconfigurala</string>
<string name="err_sync_ocsms_not_installed_or_oc_upgrade_required">Error #18: La aplicación Nextcloud SMS no ha sido instalada o Nextcloud requiere una actualización</string>
<string name="err_fetch_phonelist">Se recibió una lista de teléfonos inválida del servidor. </string>
<string name="err_proto_v2">El servidor no soporta esta funcionalidad. Por favor verifica que la versión del servidor sea por lo menos la 1.6. </string>
<string name="contactinfos_title">Información de contacto</string>
<string name="subtitle_contact_phones">- Teléfonos de contacto</string>
<string name="pref_title_bulk_messages">Número máximo de mensajes a enviar por sincronización</string>
<string name="contactinfos_list">Lista de contactos</string>
<string name="function_not_available">Esta funcionalidad aún no está disponible.</string>
<string name="ui_notification_title_template">Nextcloud SMS: %1$s</string>
<string name="communicate">Comunicar</string>
<string name="title_activity_main2">Main2Activity</string>
<string name="navigation_drawer_open">Abirr la barra de navegación</string>
<string name="navigation_drawer_close">Cerrar la barra de navegación</string>
<string name="ma_title_my_accounts">Mis cuentas</string>
<string name="ma_content_swipeaction">Desliza el dedo de izquieda a derecha para acceder al menú de acción.</string>
<string name="cancel">Cancelar</string>
<string name="understood">Entendido</string>
<string name="notif_permission_required">Se requieren privilegios</string>
<string name="notif_permission_required_content">Se requieren de algunos privilegios adiconales para ejecutar el proceso de sincronización. Por favor asígnalos en las configuraciones de la aplicación. </string>
<string name="please_fix_it">Por favor corrígelo.</string>
<string name="err_cannot_read_contacts">No es posible leer tus contactos.</string>
<string name="err_cannot_read_sms">No es posible leer tus SMS.</string>
<string name="action_appinfo_perms">Información y privilegios de la aplicación</string>
<string name="restore_all_messages">Restarurar todos los mensajes</string>
<string name="account_actions">Acciones de la cuenta</string>
<string name="error_connection_failed_not_found">Falla en la conexión, el servidor responde 404 NO ENCONTRADO. Por favor verifica que la ruta a tu instancia Nextcloud sea correcta.</string>
<string name="nothing_to_sync">No hay nada para sincronizar</string>
<string name="feature_not_already_implemented">Esta funcionalidad aún no se encuentra implementada pero estará disponible pronto. </string>
<string name="pref_title_minimum_sync_chars">Longitud mínima de número telefónico</string>
<string name="err_didnt_find_account_restore">No encontramos tu cuenta para restaurar tu mensaje, este es un caso muy atípico. </string>
<string name="launch_restore">Restaurar mis SMS</string>
<string name="error_make_default_sms_app">Por favor establece esta aplicación como la aplicación predeterminada de SMS para permitir restaurar tus mensajes. Esta restricción fue introducida por Android 4.4</string>
<string name="fix_permissions">Arreglar los privilegios</string>
<string name="err_kitkat_required">Se requiere Android 4.4 o superior para usar esta funcionalidad.</string>
<string name="restore_finished">La restauración de SMS ha terminado.</string>
<string name="x_messages_restored">mensajes restaurados&#8230;</string>
<string name="err_no_connection">No hay una conexión disponible, por favor verifica que cuentas con una conexión de datos válida.</string>
<string name="reinit_sync_cursor">Reinicializar el cursor de sincronización</string>
<string name="reinit_sync_cursor_confirm">¿Estás seguro de que deseas reinicializar el cursor de inicialización? Esto puede alentar la siguiente sincronización si se encuentran varios mensajes antiguos que no hayan sincronizado con el servidor. </string>
<string name="yes_confirm"></string>
<string name="no_confirm">No</string>
<string name="pref_show_sync_notifications">Mostrar notificaciones de sincronización</string>
<string name="sync_complete">Sincronización completa</string>
<string name="err_sync_http_write_failed">Error #19: Falla al escribir al flujo HTTP al enviar datos al servidor. </string>
<string name="err_sync_http_request_protocol_exception">Error #20: Falla al establecer correctamente la versión del protocolo HTTP.</string>
</resources>

View File

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
* Copyright (c) 2014, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
-->
<resources
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingTranslation">
<!-- Translations must begin here -->
<string name="gp_short_description">Nextcloud SMS sincroniza tus mensajes SMS locales en tu instancia de Nextcloud</string>
<string name="gp_description">
La aplicación Nextcloud SMS sincroniza tus mensajes SMS en una instancia remota de Nextcloud y te permite leer tus mensajes desde allí.
El envío de mensajes SMS desde una instancia de Nextcloud estará disponible en una futura versión.
La aplicación es totalmente compatible desde Android 4.0 hasta 6.0.</string>
</resources>

View File

@ -0,0 +1,208 @@
<?xml version="1.0" encoding="utf-8"?><!--
/*
* Copyright (c) 2014-2015, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
-->
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<!-- Translation version, reference for translators -->
<string name="translation_version">7</string>
<!-- System strings, do not translate -->
<string name="app_name">SMS de Nextcloud</string>
<string name="login_logo">Logotipo para inicio de sesión</string>
<!-- Translations must begin there -->
<!-- Preferences -->
<string name="pref_title_sync">SMS - Rápido</string>
<string name="pref_title_sync_frequency">Frecuencia de Sinconrización Rápida</string>
<string name="pref_title_slow_sync">SMS - Lento y Seguro</string>
<string name="pref_title_slow_sync_frequency">Frecuencia de Sincronización Lenta y Segura</string>
<string name="action_settings">Configuraciones</string>
<string name="sync_now">Sincronizar ahora</string>
<string name="pref_category_sync">Sincronización</string>
<string name="title_global_pref_to_general_prefs">Preferencias generales</string>
<string name="summary_global_pref_to_general_prefs">Opciones de sincronización</string>
<string name="summary_notif_prefs">Notificaciones</string>
<string name="pref_header_data_sync">Datos &amp; sincronización</string>
<string name="title_activity_general_settings">Configuraciones generales</string>
<string-array name="pref_sync_frequency_titles">
<item>5 minutos</item>
<item>15 minutos</item>
<item>30 minutos</item>
<item>1 hora</item>
<item>3 horas</item>
<item>6 horas</item>
<item>12 horas</item>
<item>24 horas</item>
<item>Nunca</item>
</string-array>
<string-array name="pref_sync_bulk_max_messages_titles">
<item>100 SMS</item>
<item>1000 SMS</item>
<item>2000 SMS</item>
<item>5000 SMS</item>
<item>10000 SMS</item>
<item>25000 SMS</item>
<item>No fueron sincronizados todos los SMS</item>
</string-array>
<string-array name="pref_slow_sync_frequency_titles">
<item>1 hora</item>
<item>3 horas</item>
<item>6 horas</item>
<item>12 horas</item>
<item>24 horas</item>
<item>Nunca</item>
</string-array>
<string name="pref_push_on_receive">Publicar SMS al recibir</string>
<string name="pref_sync_wifi">Sincronizar con Wi-Fi</string>
<string name="pref_sync_4g">Sincronizar con 4G</string>
<string name="pref_sync_3g">Sincronizar con 3G</string>
<string name="pref_sync_gprs">Sincronizar con 2.5G (GPRS)</string>
<string name="pref_sync_2g">Sincronizar con 2G</string>
<string name="pref_sync_others">Sicronizar con otras modalidades</string>
<string name="title_activity_login">Autenticar</string>
<!-- Login -->
<string name="prompt_login">Inciar sesión</string>
<string name="prompt_password">Contraseña</string>
<string name="action_sign_in">Autenticar o registrar</string>
<string name="action_sign_in_short">Autenticar</string>
<string name="error_invalid_login">Credenciales de acceso incorrectas</string>
<string name="error_invalid_password">La contraseña es demasiado corta</string>
<string name="error_field_required">Este campo es requerido</string>
<string name="prompt_serverURI">Dirección del servidor</string>
<string name="error_invalid_server_address">Dirección del servidor inválida</string>
<string name="error_connection_failed">Falla en la conexión, por favor verfica que éste sea el servidor correcto</string>
<string name="error_http_connection_failed">Falla al establecer la conexión HTTP. Por favor verifica que cuentas con un navegador. </string>
<!-- Main activity -->
<string name="ma_title_rate_us">¡Califícanos!</string>
<string name="ma_title_add_account">Agregar una cuenta</string>
<string name="ma_title_welcome">Bienvenido</string>
<string name="ma_content_welcome">Bienvenido a la aplicación Nextcloud SMS. Esta aplicación te permite sincronizar tus SMS con tu instancia Nextcloud usando la aplicación SMS. </string>
<string name="ma_title_remote_account">Cuenta remota</string>
<string name="choose_account">Elige la cuenta</string>
<!-- Restauration -->
<string name="title_activity_select_account">Selecciona la cuenta</string>
<string name="title_activity_select_contact">Selecciona el contacto</string>
<string name="no_account_configured">No hay una cuenta configurada.</string>
<!-- Notifications -->
<string name="sync_title">Proceso de sincronización</string>
<string name="sync_inprogress">Sincronización en progreso…</string>
<string name="fatal_error">¡Error fatal!</string>
<string name="notification_channel_name_sync">Sincronizar</string>
<!-- Errors -->
<string name="err_sync_get_smslist">Error #1: Se recibieron datos inválidos al tratar de obtener los mensajes previos</string>
<string name="err_sync_craft_http_request">Error #2: Error al generar la solicitud HTTP </string>
<string name="err_sync_push_request">Error #3:  Falla en la solicitud de cambio</string>
<string name="err_sync_push_request_resp">Error #4: Se recibieron datos inválidos del servidor al publicar los datos</string>
<string name="err_sync_create_json_null_smslist">Error #5: Lista de SMS nula</string>
<string name="err_sync_create_json_put_smslist">Error #6: Error al generar la solicitud de cambio</string>
<string name="err_sync_create_json_request_encoding">Error #7: Codificación no soportada al generar la solicitud</string>
<string name="err_sync_auth_failed">Error #8: Falla de autenticación</string>
<string name="err_sync_http_request_returncode_unhandled">Error #9: El servidor estableció un código de retorno HTTP no administrado</string>
<string name="err_sync_http_request_connect">Error #11: Falla al establecer la conexión con la instancia Nextcloud</string>
<string name="err_sync_http_request_httpexception">Error #12: Falla al establecer la conexión con la instancia Nextcloud</string>
<string name="err_sync_http_request_ioexception">Error #13: Falla al establecer la conexión con la instancia Nextcloud</string>
<string name="err_sync_http_request_resp">Error #14: Falla al interpretar la respuesta del servidor</string>
<string name="err_sync_http_request_parse_resp">Error #15: Falla al interpretar la respuesta del servidor</string>
<string name="err_sync_no_connection_available">Error #16: No se cuenta una conexión de datos disponible</string>
<string name="err_sync_account_unparsable">Error #17: Cuenta malformada. Por favor reconfigurala</string>
<string name="err_sync_ocsms_not_installed_or_oc_upgrade_required">Error #18: La aplicación Nextcloud SMS no ha sido instalada o Nextcloud requiere una actualización</string>
<string name="err_fetch_phonelist">Se recibió una lista de teléfonos inválida del servidor. </string>
<string name="err_proto_v2">El servidor no soporta esta funcionalidad. Por favor verifica que la versión del servidor sea por lo menos la 1.6. </string>
<string name="contactinfos_title">Información de contacto</string>
<string name="subtitle_contact_phones">- Teléfonos de contacto</string>
<string name="pref_title_bulk_messages">Número máximo de mensajes a enviar por sincronización</string>
<string name="contactinfos_list">Lista de contactos</string>
<string name="function_not_available">Esta funcionalidad aún no está disponible.</string>
<string name="ui_notification_title_template">Nextcloud SMS: %1$s</string>
<string name="communicate">Comunicar</string>
<string name="title_activity_main2">Main2Activity</string>
<string name="navigation_drawer_open">Abirr la barra de navegación</string>
<string name="navigation_drawer_close">Cerrar la barra de navegación</string>
<string name="ma_title_my_accounts">Mis cuentas</string>
<string name="ma_content_swipeaction">Desliza el dedo de izquieda a derecha para acceder al menú de acción.</string>
<string name="cancel">Cancelar</string>
<string name="understood">Entendido</string>
<string name="notif_permission_required">Se requieren privilegios</string>
<string name="notif_permission_required_content">Se requieren de algunos privilegios adiconales para ejecutar el proceso de sincronización. Por favor asígnalos en las configuraciones de la aplicación. </string>
<string name="please_fix_it">Por favor corrígelo.</string>
<string name="err_cannot_read_contacts">No es posible leer tus contactos.</string>
<string name="err_cannot_read_sms">No es posible leer tus SMS.</string>
<string name="action_appinfo_perms">Información y privilegios de la aplicación</string>
<string name="restore_all_messages">Restarurar todos los mensajes</string>
<string name="account_actions">Acciones de la cuenta</string>
<string name="error_connection_failed_not_found">Falla en la conexión, el servidor responde 404 NO ENCONTRADO. Por favor verifica que la ruta a tu instancia Nextcloud sea correcta.</string>
<string name="nothing_to_sync">No hay nada para sincronizar</string>
<string name="feature_not_already_implemented">Esta funcionalidad aún no se encuentra implementada pero estará disponible pronto. </string>
<string name="pref_title_minimum_sync_chars">Longitud mínima de número telefónico</string>
<string name="err_didnt_find_account_restore">No encontramos tu cuenta para restaurar tu mensaje, este es un caso muy atípico. </string>
<string name="launch_restore">Restaurar mis SMS</string>
<string name="error_make_default_sms_app">Por favor establece esta aplicación como la aplicación predeterminada de SMS para permitir restaurar tus mensajes. Esta restricción fue introducida por Android 4.4</string>
<string name="fix_permissions">Arreglar los privilegios</string>
<string name="err_kitkat_required">Se requiere Android 4.4 o superior para usar esta funcionalidad.</string>
<string name="restore_finished">La restauración de SMS ha terminado.</string>
<string name="x_messages_restored">mensajes restaurados&#8230;</string>
<string name="err_no_connection">No hay una conexión disponible, por favor verifica que cuentas con una conexión de datos válida.</string>
<string name="reinit_sync_cursor">Reinicializar el cursor de sincronización</string>
<string name="reinit_sync_cursor_confirm">¿Estás seguro de que deseas reinicializar el cursor de inicialización? Esto puede alentar la siguiente sincronización si se encuentran varios mensajes antiguos que no hayan sincronizado con el servidor. </string>
<string name="yes_confirm"></string>
<string name="no_confirm">No</string>
<string name="pref_show_sync_notifications">Mostrar notificaciones de sincronización</string>
<string name="sync_complete">Sincronización completa</string>
<string name="err_sync_http_write_failed">Error #19: Falla al escribir al flujo HTTP al enviar datos al servidor. </string>
<string name="err_sync_http_request_protocol_exception">Error #20: Falla al establecer correctamente la versión del protocolo HTTP.</string>
<string name="action_appinfo_privacy_policy">Política de privacidad</string>
<string name="privacy_policy_large_text">
\"Visión general\n\n\"
\"Nextcloud SMS es un software gratuito desarrollado por sus colaboradores. Política de privacidad \"
\"está destinado a informarle sobre los datos recopilados por esta aplicación.\"
\"Información que recopilamos\n\n\"
\"La aplicación solo recopila los SMS y el registro de llamadas.\n\n\"
\"Donde se envía la información.\n\n\"
\"La información no se envía a los servidores del equipo de Nextcloud ni a los servidores del equipo de SMS de Nextcloud ni \"
\"cualquier gobierno ni otra entidad que no desee.\n\n\"
\"Cuando configura una cuenta de Nextcloud en la aplicación, está de acuerdo con Nextcloud\"
\"propietario de la instancia que sus datos de registro de llamadas y SMS se almacenarán en su infraestructura \"
\"bajo su responsabilidad\n\n\"
\"No recomendamos utilizar una cuenta de instancia de Nextcloud pública o de una empresa. Tu privacidad \"
\"debe estar bajo su control en su propia instancia de Nextcloud.\n\n\"
</string>
</resources>

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
* Copyright (c) 2014, Loic Blot <loic.blot@unix-experience.fr>
* All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
-->
<resources
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingTranslation">
<!-- Translations must begin here -->
<string name="gp_short_description">SMS de Nextcloud sincroniza tu SMS local con tu instancia Nextcloud</string>
</resources>

Some files were not shown because too many files have changed in this diff Show More