mirror of
https://github.com/vector-im/riotX-android
synced 2025-10-06 00:02:48 +02:00
Compare commits
545 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
133fff1a8d | ||
|
0c9e318ae3 | ||
|
50d24a812b | ||
|
ebd0f8a5db | ||
|
53b1bec5db | ||
|
6f5d8d6ece | ||
|
d75d7a3695 | ||
|
25f4f2175a | ||
|
558317260b | ||
|
91b4dc1f97 | ||
|
bfa2844a0b | ||
|
d20121603a | ||
|
9dec346cdc | ||
|
2ddc3b6d05 | ||
|
2085f7f17d | ||
|
882c58efdd | ||
|
9a32b77333 | ||
|
92ed663068 | ||
|
a96f2d5771 | ||
|
3c3c44b344 | ||
|
eb30b51d6b | ||
|
fcac1849c3 | ||
|
73e2f02c48 | ||
|
50466792c6 | ||
|
67e15a42c0 | ||
|
ff7be665ec | ||
|
4a46289fda | ||
|
576ea2df55 | ||
|
f4dca572c5 | ||
|
95a29b83fe | ||
|
ea09d3ae73 | ||
|
ed6b2e3846 | ||
|
789746c276 | ||
|
4f7bbd6ada | ||
|
241d011d30 | ||
|
ed01f32393 | ||
|
ffa49870a9 | ||
|
e95380ac9e | ||
|
2c0d029dea | ||
|
b609c5ca10 | ||
|
8dd2ebf249 | ||
|
f08a3f7966 | ||
|
d17fdbb913 | ||
|
9fd6fe321d | ||
|
ef7b5a4418 | ||
|
c7de0523e7 | ||
|
61685d3e4a | ||
|
dd51293621 | ||
|
3f510087d0 | ||
|
4b2353b936 | ||
|
65d26f180f | ||
|
5bde84c059 | ||
|
7ea1f65fe3 | ||
|
764eadb696 | ||
|
74f69b228f | ||
|
a4c8a8f2f1 | ||
|
555cbe5f7d | ||
|
b063b25e8c | ||
|
8e2d82ea9a | ||
|
b29306b193 | ||
|
62f742bf66 | ||
|
913fb1e5dc | ||
|
14290abfcf | ||
|
2b9f5c4298 | ||
|
648f97ba78 | ||
|
f2d2c0cb27 | ||
|
414d03599e | ||
|
c2d25c8564 | ||
|
301ecdf1f7 | ||
|
d7a729740e | ||
|
3191688044 | ||
|
a213338a22 | ||
|
ce23b80698 | ||
|
bc9ca3fd12 | ||
|
f0dc6e478d | ||
|
eb31174913 | ||
|
67edf66856 | ||
|
9178426ec1 | ||
|
a86f2e03cc | ||
|
6d40bd157f | ||
|
cc33c008ba | ||
|
9736a8f571 | ||
|
dcb8aea292 | ||
|
cf98963cdb | ||
|
8c49609aa6 | ||
|
7341e5c47b | ||
|
8a47ef756a | ||
|
cf1a115c67 | ||
|
dd88ac597e | ||
|
82ad08aced | ||
|
e5663ec1c3 | ||
|
cf3abd6562 | ||
|
c74ea2dd16 | ||
|
4e4f72f241 | ||
|
dd13e1cb6d | ||
|
66abda63ee | ||
|
bd7b6d6495 | ||
|
e0a611a16e | ||
|
644803dcf3 | ||
|
9338ec9805 | ||
|
8b7c8e3351 | ||
|
8c88140b3c | ||
|
637f2476e0 | ||
|
fe5e4d6830 | ||
|
851276978f | ||
|
96e29d4d10 | ||
|
71df1e61d4 | ||
|
3dadebe505 | ||
|
4657729e36 | ||
|
d05e10e10a | ||
|
250bd9c620 | ||
|
4e0c3a97bd | ||
|
34ee399f94 | ||
|
0ffc2af679 | ||
|
9954045d30 | ||
|
f111a84e17 | ||
|
096e52612e | ||
|
643b09a77c | ||
|
1437f6d41d | ||
|
006e2b5c0d | ||
|
21cbe52740 | ||
|
1930047ce1 | ||
|
8c6c2dd5c2 | ||
|
c523e144b8 | ||
|
a12167077f | ||
|
746fb7719a | ||
|
361b0411c7 | ||
|
74d7e60380 | ||
|
85a6c8c6f2 | ||
|
dba8aaea16 | ||
|
bd91db66f8 | ||
|
7a667b513e | ||
|
a762179c32 | ||
|
22cce30e35 | ||
|
8206b534f9 | ||
|
3d68233723 | ||
|
57cedaeb69 | ||
|
be7b49b707 | ||
|
cf59c80100 | ||
|
99942c2714 | ||
|
220b1d86c0 | ||
|
ee737025f2 | ||
|
b09a00efda | ||
|
63bde230a3 | ||
|
7bbd91f2a9 | ||
|
3a2a916c2f | ||
|
d0b2c0693d | ||
|
73fd93148a | ||
|
df55c84167 | ||
|
de18f37849 | ||
|
d6c20226bb | ||
|
72ecd1bbc9 | ||
|
b25f185d63 | ||
|
b49045ff15 | ||
|
7034d82259 | ||
|
a5ab1b4a8b | ||
|
ceec2018a7 | ||
|
055bf6d302 | ||
|
7d31cc9f55 | ||
|
59859ec02e | ||
|
bb7323a935 | ||
|
28c59e3290 | ||
|
35c528405d | ||
|
7a1dfef6d5 | ||
|
aa5270760e | ||
|
69beef4648 | ||
|
1a3ca7b1a0 | ||
|
6e5461f300 | ||
|
4d6c04baf9 | ||
|
fdb8743ad3 | ||
|
f4429d4c9c | ||
|
23c2682f8d | ||
|
765202e05a | ||
|
c580090f20 | ||
|
01533db4e0 | ||
|
d244f7324c | ||
|
88f7439880 | ||
|
6c94f1cd52 | ||
|
a44c8dfca3 | ||
|
d0b1a7bfd1 | ||
|
f014866d06 | ||
|
c9c5483d22 | ||
|
40bfffae9d | ||
|
03440307ce | ||
|
242ef518b2 | ||
|
3132a7d463 | ||
|
a0bba91d67 | ||
|
6c84668611 | ||
|
53b703dcaf | ||
|
1acd8e1049 | ||
|
4a5f4849e5 | ||
|
11dded71ec | ||
|
440944decb | ||
|
041fcef1db | ||
|
9bbecbeed3 | ||
|
988afa4ebe | ||
|
a6752a0cf1 | ||
|
b9eb271aff | ||
|
3b3947d046 | ||
|
63d2886415 | ||
|
f76a6de10d | ||
|
8646cc441d | ||
|
ae93c07597 | ||
|
6f0a95b828 | ||
|
0d12dbbe7e | ||
|
a65e13970d | ||
|
4cd4cf1c51 | ||
|
139eb1708c | ||
|
2ed212aa11 | ||
|
f2952f2dee | ||
|
b5f6dc0034 | ||
|
7b830d1c1a | ||
|
a12c640984 | ||
|
a2f8fed63c | ||
|
febf01a2e6 | ||
|
32ded289fc | ||
|
516103e51b | ||
|
a00508e085 | ||
|
57554c5d36 | ||
|
201873f5a7 | ||
|
a6904d2604 | ||
|
540758d66b | ||
|
7e0a597c65 | ||
|
bbc756136c | ||
|
b4792c8a59 | ||
|
b8023d66de | ||
|
c12af5a800 | ||
|
9fbfe82044 | ||
|
18ab8a1279 | ||
|
635f975b6c | ||
|
e09b9a2ce0 | ||
|
b78de15228 | ||
|
5248a69fe2 | ||
|
06681fd115 | ||
|
3f5147ddce | ||
|
8973f3892a | ||
|
9dff4ff949 | ||
|
68d00e00d1 | ||
|
a2ae3af69d | ||
|
7c10a4cb21 | ||
|
637961bbb1 | ||
|
e99dc1d163 | ||
|
ab6a6b53c8 | ||
|
7c51174d7e | ||
|
14b21dc039 | ||
|
b163b42d3d | ||
|
81c64503f2 | ||
|
c56eb331db | ||
|
9d684bc021 | ||
|
0c6781e9ef | ||
|
f8c59f6b0c | ||
|
d31652e910 | ||
|
e78e192853 | ||
|
2a8c72bdcf | ||
|
46ccf4d73f | ||
|
a3815d7012 | ||
|
aa3a808d2c | ||
|
740ed89638 | ||
|
2673979ef8 | ||
|
95556d2551 | ||
|
3f944e9d36 | ||
|
b29191e892 | ||
|
58efe90f7d | ||
|
2890f41f30 | ||
|
4dbca7858c | ||
|
9456789047 | ||
|
34d29dc9d7 | ||
|
19982e8d77 | ||
|
70e9f13ec2 | ||
|
58d10e901e | ||
|
61eb0d6b44 | ||
|
10d03e16af | ||
|
873fa2a210 | ||
|
098dee1aa7 | ||
|
6d1f9408c8 | ||
|
53ef97d949 | ||
|
980d59ab58 | ||
|
b8ab1b5620 | ||
|
efc436c3f5 | ||
|
2b8dc13dca | ||
|
62e2f06e2a | ||
|
ab43f4cf14 | ||
|
f576f83339 | ||
|
e857407bc1 | ||
|
6f934e2d49 | ||
|
4050975a19 | ||
|
310ea99c44 | ||
|
75fabb1b0d | ||
|
20b1eaba9e | ||
|
4c58cc877f | ||
|
f0ad75a2b7 | ||
|
b70370b217 | ||
|
ca34b29b20 | ||
|
c12906971a | ||
|
b6aae0c7c1 | ||
|
381103383e | ||
|
d580d4cdb6 | ||
|
d96ff6e527 | ||
|
341967bf3c | ||
|
da5db0ed15 | ||
|
c20500ab7a | ||
|
0c11778d33 | ||
|
c8a73a6ac8 | ||
|
79e8c5f38c | ||
|
d2ab9a2515 | ||
|
56715f13d4 | ||
|
a57162cf83 | ||
|
571d1a4816 | ||
|
b759f40c13 | ||
|
3d84a999e0 | ||
|
05e6a59a86 | ||
|
ab1db4de68 | ||
|
1c7f789928 | ||
|
27acb198ab | ||
|
c6ed280a6f | ||
|
a0528fe0ce | ||
|
279756bdfb | ||
|
d5f279ed8b | ||
|
e4212bd7db | ||
|
d1cef1bc5c | ||
|
b699e9db3a | ||
|
0868686caa | ||
|
714f8b3a75 | ||
|
8cf8852aae | ||
|
52477aa9d5 | ||
|
8c111fea13 | ||
|
02542950c8 | ||
|
0844310e57 | ||
|
a656b00329 | ||
|
d447d809f7 | ||
|
eb7154d42c | ||
|
a73fe9585f | ||
|
b58050f496 | ||
|
b0029f2dd3 | ||
|
93a34d953f | ||
|
31a1b09e34 | ||
|
60dff395ca | ||
|
4a70ea8518 | ||
|
b3ffc4d76c | ||
|
1c0fe56329 | ||
|
c5fe9d4a18 | ||
|
4b3e36da91 | ||
|
5560694f54 | ||
|
1415504f84 | ||
|
42b3ecc0b6 | ||
|
537331ccf6 | ||
|
6bdf237cc9 | ||
|
9ab2d1afb0 | ||
|
559af32ab6 | ||
|
d6fd32b5a0 | ||
|
f8881638f9 | ||
|
471bf853c8 | ||
|
7b4c165033 | ||
|
9458276a4e | ||
|
0dbbfab97d | ||
|
12a86e7d29 | ||
|
912de8286f | ||
|
fe0bca75f8 | ||
|
46fc0ac563 | ||
|
a4255525e0 | ||
|
c2d5908542 | ||
|
4be954eeeb | ||
|
9840731778 | ||
|
620bebc3a3 | ||
|
aa53105f17 | ||
|
4427156f0b | ||
|
9dba6d7c8c | ||
|
d092c83774 | ||
|
a2dee2193a | ||
|
023326a20d | ||
|
3ebcd8c1f4 | ||
|
763b60ee6b | ||
|
f436de1230 | ||
|
2d60e49205 | ||
|
49199bd5e2 | ||
|
d04e2b0f82 | ||
|
ee22dafbc9 | ||
|
dd81584076 | ||
|
ef84e6b78c | ||
|
3f2b5e9d12 | ||
|
5aeca1f81a | ||
|
d7dc5c812e | ||
|
e28f0d0713 | ||
|
7549cec45b | ||
|
6cbd39f3d3 | ||
|
40f0f59db1 | ||
|
225bf09251 | ||
|
02deb1bf19 | ||
|
e925a2c669 | ||
|
b7c8ae7c45 | ||
|
41a20bf4d0 | ||
|
af59a58157 | ||
|
a8f3bb1d4e | ||
|
5a43b76488 | ||
|
2477632e2b | ||
|
0209cc4969 | ||
|
eb12b1c99b | ||
|
f4b948af9d | ||
|
9349b1ae15 | ||
|
c9437f3c66 | ||
|
8835e4d25e | ||
|
821a561235 | ||
|
e2d6bf3d77 | ||
|
5bfb83985e | ||
|
a5467062a1 | ||
|
de9a6c6c34 | ||
|
78025ddc18 | ||
|
ac24bee0a6 | ||
|
9b6c57f5fd | ||
|
0a77b8f7d7 | ||
|
5811f1c77f | ||
|
fe8415d788 | ||
|
bc4ca1d33d | ||
|
c424a87d81 | ||
|
aa2c6e175b | ||
|
6b9381f5a3 | ||
|
e1dc05d5ed | ||
|
f5534363b9 | ||
|
eb2910401f | ||
|
205db447e6 | ||
|
b0ec6abbea | ||
|
cc951969de | ||
|
f1251140f5 | ||
|
62bc22a03a | ||
|
ce6efa1f72 | ||
|
53cd55df65 | ||
|
18bcc83a46 | ||
|
27419f0d33 | ||
|
492e842410 | ||
|
035b1ebedc | ||
|
fa3b440a22 | ||
|
deb4730d40 | ||
|
211c0c2dc5 | ||
|
451df7558d | ||
|
83a10c37a6 | ||
|
8795ddb3c2 | ||
|
cccfad03ce | ||
|
9ca7415f5a | ||
|
ae996ae197 | ||
|
59ac3b4f8b | ||
|
bec8b5f71e | ||
|
c06eca6936 | ||
|
ca907df94b | ||
|
2819957585 | ||
|
e5d3206b6f | ||
|
d759f26db6 | ||
|
8b47bf004e | ||
|
3746ede49a | ||
|
e66a0541be | ||
|
891709ef41 | ||
|
ebbfca4ffd | ||
|
3dccad9931 | ||
|
5eb64b43d3 | ||
|
ffb5edd2e4 | ||
|
452cfd3327 | ||
|
bf30ff41de | ||
|
2f69740e9b | ||
|
6e11874027 | ||
|
1ef3e48ab6 | ||
|
8296665b36 | ||
|
b76b51265f | ||
|
f43a16ced4 | ||
|
b745ebe90a | ||
|
5d1f6e0bbe | ||
|
32462b9056 | ||
|
3c5bc7e6f2 | ||
|
e9bd9ed788 | ||
|
9eb4eb6dcf | ||
|
778462dfc8 | ||
|
212074470f | ||
|
183570dce9 | ||
|
ed8fd345ce | ||
|
0957b38329 | ||
|
1fe790e46f | ||
|
abea9b686a | ||
|
5eb786b55f | ||
|
ab749eee6a | ||
|
6be22a5e7f | ||
|
b3965cae9d | ||
|
544c554444 | ||
|
6c45490dd1 | ||
|
664b0665cf | ||
|
14de485c67 | ||
|
7774f69317 | ||
|
729d420c2c | ||
|
7d8bbd6d66 | ||
|
208bf6eb2e | ||
|
9da174edc4 | ||
|
d84b521b54 | ||
|
cf5b96f9cf | ||
|
7417241cd5 | ||
|
8bf0ec297c | ||
|
74c945b7f0 | ||
|
9901a43dc1 | ||
|
ab94b21807 | ||
|
65d898e3de | ||
|
f4bd89db3b | ||
|
a31a9ab521 | ||
|
c788deacf5 | ||
|
f63c6c328f | ||
|
e4caf7be81 | ||
|
1a7c3cee5d | ||
|
21b92f7d15 | ||
|
ade6028a69 | ||
|
37dcb86e90 | ||
|
a23299de64 | ||
|
06d621cd3c | ||
|
7aa0e33506 | ||
|
f49a8af9da | ||
|
4a65e1153a | ||
|
fcfef53043 | ||
|
404113bd1d | ||
|
227fb27a2e | ||
|
4578336245 | ||
|
a616ab9472 | ||
|
baaace855c | ||
|
6fa15e6ee9 | ||
|
24868a6c64 | ||
|
6c52e47e47 | ||
|
ac06ff5256 | ||
|
e5783afb11 | ||
|
8b5f86ec51 | ||
|
2d80a25fd6 | ||
|
47a909eaf4 | ||
|
9fd50b4e35 | ||
|
58d182aecb | ||
|
57e90aee83 | ||
|
235b629130 | ||
|
202c0c58ab | ||
|
ab90da0e51 | ||
|
def74926d7 | ||
|
6f997e8a0f | ||
|
b81fc4f8f1 | ||
|
46c60f5897 | ||
|
e888c11747 | ||
|
8bc70002d9 | ||
|
6073cf12da | ||
|
f6bc28f3bf | ||
|
0868869fe3 | ||
|
b5e8375592 | ||
|
eed2a74d07 | ||
|
456762a464 | ||
|
3a430efb02 | ||
|
15583a14aa | ||
|
2b7560b1e7 |
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -1 +1,2 @@
|
||||
**/snapshots/**/*.png filter=lfs diff=lfs merge=lfs -text
|
||||
**/src/androidTest/assets/*.realm filter=lfs diff=lfs merge=lfs -text
|
||||
|
56
.github/ISSUE_TEMPLATE/release.yml
vendored
56
.github/ISSUE_TEMPLATE/release.yml
vendored
@@ -10,7 +10,6 @@ body:
|
||||
id: checklist
|
||||
attributes:
|
||||
label: Release checklist
|
||||
description: For the template example, we are releasing the version 1.2.3. Replace 1.2.3 with the version in the issue body.
|
||||
placeholder: |
|
||||
If you are reading this, you have deleted the content of the release template: undo the deletion or start again.
|
||||
value: |
|
||||
@@ -24,27 +23,7 @@ body:
|
||||
|
||||
### Do the release
|
||||
|
||||
- [ ] Make sure `develop` and `main` are up to date and create a release with gitflow: `git checkout main; git pull; git checkout develop; git pull; git flow release start '1.2.3'`
|
||||
- [ ] Check the crashes from the PlayStore
|
||||
- [ ] Check the rageshake with the current dev version: https://github.com/matrix-org/element-android-rageshakes/labels/1.2.3-dev
|
||||
- [ ] Run the integration test, and especially `UiAllScreensSanityTest.allScreensTest()`
|
||||
- [ ] Create an account on matrix.org and do some smoke tests that the sanity test does not cover like: 1-1 call, 1-1 video call, Jitsi call for instance
|
||||
- [ ] Run towncrier: `towncrier build --version v1.2.3 --draft` (remove `--draft` do write the file CHANGES.md)
|
||||
- [ ] Check the file CHANGES.md consistency. It's possible to reorder items (most important changes first) or change their section if relevant. Also an opportunity to fix some typo, or rewrite things
|
||||
- [ ] Add file for fastlane under ./fastlane/metadata/android/en-US/changelogs
|
||||
- [ ] (optional) Push the branch and start a draft PR (will not be merged), to check that the CI is happy with all the changes.
|
||||
- [ ] Finish release with gitflow, delete the draft PR (if created): `git flow release finish '1.2.3'`
|
||||
- [ ] Push `main` and the new tag `v1.2.3` to origin: `git push origin main; git push origin 'v1.2.3'`
|
||||
- [ ] Checkout `develop`: `git checkout develop`
|
||||
- [ ] Increase version (versionPatch + 2) in `./vector/build.gradle`
|
||||
- [ ] Change the value of SDK_VERSION in the file `./matrix-sdk-android/build.gradle`
|
||||
- [ ] Commit and push `develop`: `git commit -m 'version++'; git push origin develop`
|
||||
- [ ] Wait for [Buildkite](https://buildkite.com/matrix-dot-org/element-android/builds?branch=main) to build the `main` branch.
|
||||
- [ ] Run the script `~/scripts/releaseElement.sh`. It will download the APKs from Buildkite check them and sign them.
|
||||
- [ ] Install the APK on your phone to check that the upgrade went well (no init sync, etc.)
|
||||
- [ ] Create the release on gitHub [from the tag](https://github.com/vector-im/element-android/tags), copy paste the block from the file CHANGES.md
|
||||
- [ ] Add the 4 signed APKs to the GitHub release
|
||||
- [ ] Ping the Android Internal room
|
||||
- [ ] Run the script ./tools/release/releaseScript.sh and follow the steps.
|
||||
|
||||
### Once tested and validated internally
|
||||
|
||||
@@ -81,29 +60,9 @@ body:
|
||||
|
||||
The SDK2 and the sample app are released only when Element has been pushed to production.
|
||||
|
||||
- [ ] Checkout the `main` branch on Element Android project
|
||||
- [ ] On the [SDK2 project](https://github.com/matrix-org/matrix-android-sdk2), run the script ./tools/releaseScript.sh and follow the instructions.
|
||||
|
||||
#### On the SDK2 project
|
||||
|
||||
https://github.com/matrix-org/matrix-android-sdk2
|
||||
|
||||
- [ ] Create a release with GitFlow
|
||||
- [ ] Update the value of VERSION_NAME in the file gradle.properties
|
||||
- [ ] Update the files `./build.gradle` and `./gradle/gradle-wrapper.properties` manually, to use the latest version for the dependency. You can get inspired by the same files on Element Android project.
|
||||
- [ ] Run the script `./tools/import_from_element.sh`
|
||||
- [ ] Check the diff in the file `./matrix-sdk-android/build.gradle` and restore what may have been erased (in particular the line `apply plugin: "com.vanniktech.maven.publish"` and the line about the version)
|
||||
- [ ] Let the script finish to build the library
|
||||
- [ ] Update the file `CHANGES.md`
|
||||
- [ ] Finish the release using GitFlow
|
||||
- [ ] Push the branch `main`, the new tag and the branch `develop` to origin
|
||||
|
||||
##### Release on MavenCentral
|
||||
|
||||
- [ ] Checkout the branch `main`
|
||||
- [ ] Run the command `./gradlew publish --no-daemon --no-parallel`. You'll need some non-public element to do so
|
||||
- [ ] Run the command `./gradlew closeAndReleaseRepository`. If it is working well, you can jump directly to the final step of this section.
|
||||
|
||||
If `./gradlew closeAndReleaseRepository` fails (for instance, several repositories are waiting to be handled), you have to close and release the repository manually. Do the following steps:
|
||||
Note: if the step `./gradlew closeAndReleaseRepository` fails (for instance, several repositories are waiting to be handled), you have to close and release the repository manually. Do the following steps:
|
||||
|
||||
- [ ] Connect to https://s01.oss.sonatype.org
|
||||
- [ ] Click on Staging Repositories and check the the files have been uploaded
|
||||
@@ -111,15 +70,6 @@ body:
|
||||
- [ ] Wait (check Activity tab until step "Repository closed" is displayed)
|
||||
- [ ] Click on release. The staging repository will disappear
|
||||
|
||||
Final step
|
||||
|
||||
- [ ] Check that the release is available in https://repo1.maven.org/maven2/org/matrix/android/matrix-android-sdk2/ (it can take a few minutes)
|
||||
|
||||
##### Release on GitHub
|
||||
|
||||
- [ ] Create the release on GitHub from [the tag](https://github.com/matrix-org/matrix-android-sdk2/tags)
|
||||
- [ ] Upload the AAR on the GitHub release
|
||||
|
||||
### Android SDK2 sample
|
||||
|
||||
https://github.com/matrix-org/matrix-android-sdk2-sample
|
||||
|
4
.github/workflows/danger.yml
vendored
4
.github/workflows/danger.yml
vendored
@@ -11,9 +11,9 @@ jobs:
|
||||
- run: |
|
||||
npm install --save-dev @babel/plugin-transform-flow-strip-types
|
||||
- name: Danger
|
||||
uses: danger/danger-js@11.1.4
|
||||
uses: danger/danger-js@11.2.0
|
||||
with:
|
||||
args: "--dangerfile tools/danger/dangerfile.js"
|
||||
args: "--dangerfile ./tools/danger/dangerfile.js"
|
||||
env:
|
||||
DANGER_GITHUB_API_TOKEN: ${{ secrets.DANGER_GITHUB_API_TOKEN }}
|
||||
# Fallback for forks
|
||||
|
5
.github/workflows/post-pr.yml
vendored
5
.github/workflows/post-pr.yml
vendored
@@ -16,7 +16,7 @@ env:
|
||||
jobs:
|
||||
|
||||
# More info on should-i-run:
|
||||
# If this fails to run (the IF doesn't complete) then the needs will not be satisfied for any of the
|
||||
# If this fails to run (the IF doesn't complete) then the needs will not be satisfied for any of the
|
||||
# other jobs below, so none will run.
|
||||
# except for the notification job at the bottom which will run all the time, unless should-i-run isn't
|
||||
# successful, or all the other jobs have succeeded
|
||||
@@ -27,11 +27,12 @@ jobs:
|
||||
if: github.event.pull_request.merged # Additionally require PR to have been completely merged.
|
||||
steps:
|
||||
- run: echo "Run those tests!" # no-op success
|
||||
|
||||
|
||||
ui-tests:
|
||||
name: UI Tests (Synapse)
|
||||
needs: should-i-run
|
||||
runs-on: buildjet-4vcpu-ubuntu-2204
|
||||
timeout-minutes: 90 # We might need to increase it if the time for tests grows
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
|
4
.github/workflows/quality.yml
vendored
4
.github/workflows/quality.yml
vendored
@@ -66,9 +66,9 @@ jobs:
|
||||
yarn add danger-plugin-lint-report --dev
|
||||
- name: Danger lint
|
||||
if: always()
|
||||
uses: danger/danger-js@11.1.4
|
||||
uses: danger/danger-js@11.2.0
|
||||
with:
|
||||
args: "--dangerfile tools/danger/dangerfile-lint.js"
|
||||
args: "--dangerfile ./tools/danger/dangerfile-lint.js"
|
||||
env:
|
||||
DANGER_GITHUB_API_TOKEN: ${{ secrets.DANGER_GITHUB_API_TOKEN }}
|
||||
# Fallback for forks
|
||||
|
37
.github/workflows/tests.yml
vendored
37
.github/workflows/tests.yml
vendored
@@ -14,6 +14,7 @@ jobs:
|
||||
tests:
|
||||
name: Runs all tests
|
||||
runs-on: buildjet-4vcpu-ubuntu-2204
|
||||
timeout-minutes: 90 # We might need to increase it if the time for tests grows
|
||||
strategy:
|
||||
matrix:
|
||||
api-level: [28]
|
||||
@@ -126,26 +127,26 @@ jobs:
|
||||
# Unneeded as part of the test suite above, kept around in case we want to re-enable them.
|
||||
#
|
||||
# # Build Android Tests
|
||||
# build-android-tests:
|
||||
# name: Build Android Tests
|
||||
# runs-on: ubuntu-latest
|
||||
# build-android-tests:
|
||||
# name: Build Android Tests
|
||||
# runs-on: ubuntu-latest
|
||||
# concurrency:
|
||||
# group: ${{ github.ref == 'refs/heads/main' && format('unit-tests-main-{0}', github.sha) || github.ref == 'refs/heads/develop' && format('unit-tests-develop-{0}', github.sha) || format('build-android-tests-{0}', github.ref) }}
|
||||
# cancel-in-progress: true
|
||||
# steps:
|
||||
# - uses: actions/checkout@v3
|
||||
# - uses: actions/setup-java@v3
|
||||
# with:
|
||||
# distribution: 'adopt'
|
||||
# java-version: 11
|
||||
# - uses: actions/cache@v3
|
||||
# with:
|
||||
# path: |
|
||||
# ~/.gradle/caches
|
||||
# ~/.gradle/wrapper
|
||||
# key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
# restore-keys: |
|
||||
# ${{ runner.os }}-gradle-
|
||||
# - name: Build Android Tests
|
||||
# steps:
|
||||
# - uses: actions/checkout@v3
|
||||
# - uses: actions/setup-java@v3
|
||||
# with:
|
||||
# distribution: 'adopt'
|
||||
# java-version: 11
|
||||
# - uses: actions/cache@v3
|
||||
# with:
|
||||
# path: |
|
||||
# ~/.gradle/caches
|
||||
# ~/.gradle/wrapper
|
||||
# key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
# restore-keys: |
|
||||
# ${{ runner.os }}-gradle-
|
||||
# - name: Build Android Tests
|
||||
# run: ./gradlew clean assembleAndroidTest $CI_GRADLE_ARG_PROPERTIES
|
||||
|
||||
|
51
.github/workflows/triage-labelled.yml
vendored
51
.github/workflows/triage-labelled.yml
vendored
@@ -17,7 +17,8 @@ jobs:
|
||||
contains(github.event.issue.labels.*.name, 'Z-IA') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Themes-Custom') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Tags')
|
||||
contains(github.event.issue.labels.*.name, 'A-Tags') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Rich-Text-Editor')
|
||||
steps:
|
||||
- uses: actions/github-script@v5
|
||||
with:
|
||||
@@ -79,8 +80,8 @@ jobs:
|
||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||
query: |
|
||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
||||
addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
|
||||
projectNextItem {
|
||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
||||
item {
|
||||
id
|
||||
}
|
||||
}
|
||||
@@ -88,7 +89,7 @@ jobs:
|
||||
projectid: ${{ env.PROJECT_ID }}
|
||||
contentid: ${{ github.event.issue.node_id }}
|
||||
env:
|
||||
PROJECT_ID: "PN_kwDOAM0swc0sUA"
|
||||
PROJECT_ID: "PVT_kwDOAM0swc0sUA"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
|
||||
add_product_issues:
|
||||
@@ -103,8 +104,8 @@ jobs:
|
||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||
query: |
|
||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
||||
addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
|
||||
projectNextItem {
|
||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
||||
item {
|
||||
id
|
||||
}
|
||||
}
|
||||
@@ -112,7 +113,7 @@ jobs:
|
||||
projectid: ${{ env.PROJECT_ID }}
|
||||
contentid: ${{ github.event.issue.node_id }}
|
||||
env:
|
||||
PROJECT_ID: "PN_kwDOAM0swc4AAg6N"
|
||||
PROJECT_ID: "PVT_kwDOAM0swc4AAg6N"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
|
||||
delight_issues_to_board:
|
||||
@@ -129,8 +130,8 @@ jobs:
|
||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||
query: |
|
||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
||||
addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
|
||||
projectNextItem {
|
||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
||||
item {
|
||||
id
|
||||
}
|
||||
}
|
||||
@@ -138,7 +139,7 @@ jobs:
|
||||
projectid: ${{ env.PROJECT_ID }}
|
||||
contentid: ${{ github.event.issue.node_id }}
|
||||
env:
|
||||
PROJECT_ID: "PN_kwDOAM0swc1HvQ"
|
||||
PROJECT_ID: "PVT_kwDOAM0swc1HvQ"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
|
||||
move_voice-message_issues:
|
||||
@@ -154,8 +155,8 @@ jobs:
|
||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||
query: |
|
||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
||||
addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
|
||||
projectNextItem {
|
||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
||||
item {
|
||||
id
|
||||
}
|
||||
}
|
||||
@@ -163,7 +164,7 @@ jobs:
|
||||
projectid: ${{ env.PROJECT_ID }}
|
||||
contentid: ${{ github.event.issue.node_id }}
|
||||
env:
|
||||
PROJECT_ID: "PN_kwDOAM0swc2KCw"
|
||||
PROJECT_ID: "PVT_kwDOAM0swc2KCw"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
move_message_bubbles_issues:
|
||||
name: A-Message-Bubbles to Message bubbles board
|
||||
@@ -178,8 +179,8 @@ jobs:
|
||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||
query: |
|
||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
||||
addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
|
||||
projectNextItem {
|
||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
||||
item {
|
||||
id
|
||||
}
|
||||
}
|
||||
@@ -187,7 +188,7 @@ jobs:
|
||||
projectid: ${{ env.PROJECT_ID }}
|
||||
contentid: ${{ github.event.issue.node_id }}
|
||||
env:
|
||||
PROJECT_ID: "PN_kwDOAM0swc3m-g"
|
||||
PROJECT_ID: "PVT_kwDOAM0swc3m-g"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
|
||||
move_ftue_issues:
|
||||
@@ -203,8 +204,8 @@ jobs:
|
||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||
query: |
|
||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
||||
addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
|
||||
projectNextItem {
|
||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
||||
item {
|
||||
id
|
||||
}
|
||||
}
|
||||
@@ -212,7 +213,7 @@ jobs:
|
||||
projectid: ${{ env.PROJECT_ID }}
|
||||
contentid: ${{ github.event.issue.node_id }}
|
||||
env:
|
||||
PROJECT_ID: "PN_kwDOAM0swc4AAqVx"
|
||||
PROJECT_ID: "PVT_kwDOAM0swc4AAqVx"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
|
||||
move_WTF_issues:
|
||||
@@ -228,8 +229,8 @@ jobs:
|
||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||
query: |
|
||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
||||
addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
|
||||
projectNextItem {
|
||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
||||
item {
|
||||
id
|
||||
}
|
||||
}
|
||||
@@ -237,7 +238,7 @@ jobs:
|
||||
projectid: ${{ env.PROJECT_ID }}
|
||||
contentid: ${{ github.event.issue.node_id }}
|
||||
env:
|
||||
PROJECT_ID: "PN_kwDOAM0swc4AArk0"
|
||||
PROJECT_ID: "PVT_kwDOAM0swc4AArk0"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
|
||||
move_element_x_issues:
|
||||
@@ -258,8 +259,8 @@ jobs:
|
||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||
query: |
|
||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
||||
addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
|
||||
projectNextItem {
|
||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
||||
item {
|
||||
id
|
||||
}
|
||||
}
|
||||
@@ -267,7 +268,7 @@ jobs:
|
||||
projectid: ${{ env.PROJECT_ID }}
|
||||
contentid: ${{ github.event.issue.node_id }}
|
||||
env:
|
||||
PROJECT_ID: "PN_kwDOAM0swc4ABTXY"
|
||||
PROJECT_ID: "PVT_kwDOAM0swc4ABTXY"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
|
||||
ps_features1:
|
||||
|
@@ -69,7 +69,7 @@ jobs:
|
||||
projectid: ${{ env.PROJECT_ID }}
|
||||
contentid: ${{ github.event.pull_request.node_id }}
|
||||
env:
|
||||
PROJECT_ID: "PN_kwDOAM0swc0sUA"
|
||||
PROJECT_ID: "PVT_kwDOAM0swc0sUA"
|
||||
TEAM: "design"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
|
||||
@@ -138,6 +138,6 @@ jobs:
|
||||
projectid: ${{ env.PROJECT_ID }}
|
||||
contentid: ${{ github.event.pull_request.node_id }}
|
||||
env:
|
||||
PROJECT_ID: "PN_kwDOAM0swc4AAg6N"
|
||||
PROJECT_ID: "PVT_kwDOAM0swc4AAg6N"
|
||||
TEAM: "product"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
|
142
CHANGES.md
142
CHANGES.md
@@ -1,3 +1,145 @@
|
||||
Changes in Element v.5.16 (2022-12-29)
|
||||
======================================
|
||||
|
||||
Features ✨
|
||||
----------
|
||||
- [Rich text editor] Add support for links ([#7746](https://github.com/vector-im/element-android/issues/7746))
|
||||
- [Poll] When a poll is ended, use /relations API to ensure poll results are correct ([#7767](https://github.com/vector-im/element-android/issues/7767))
|
||||
- [Session manager] Security recommendations cards: whole view should be tappable ([#7795](https://github.com/vector-im/element-android/issues/7795))
|
||||
- [Session manager] Other sessions list: header should not be sticky ([#7797](https://github.com/vector-im/element-android/issues/7797))
|
||||
|
||||
Bugfixes 🐛
|
||||
----------
|
||||
- Do not show typing notification of ignored users. ([#2965](https://github.com/vector-im/element-android/issues/2965))
|
||||
- [Push Notifications, Threads] - quick reply to threaded notification now sent to thread except main timeline ([#7475](https://github.com/vector-im/element-android/issues/7475))
|
||||
- [Session manager] Other sessions list: filter option is displayed when selection mode is enabled ([#7784](https://github.com/vector-im/element-android/issues/7784))
|
||||
- [Session manager] Other sessions: Filter bottom sheet cut in landscape mode ([#7786](https://github.com/vector-im/element-android/issues/7786))
|
||||
- Automatically show keyboard after learn more bottom sheet is dismissed ([#7790](https://github.com/vector-im/element-android/issues/7790))
|
||||
- [Session Manager] Other sessions list: cannot select/deselect session by a long press when in select mode ([#7792](https://github.com/vector-im/element-android/issues/7792))
|
||||
- Fix current session ip address visibility ([#7794](https://github.com/vector-im/element-android/issues/7794))
|
||||
- Device Manager UI review fixes ([#7798](https://github.com/vector-im/element-android/issues/7798))
|
||||
|
||||
SDK API changes ⚠️
|
||||
------------------
|
||||
- [Sync] Sync Filter params are moved to MatrixConfiguration and will not be stored in session realm to avoid bug when session cache is cleared ([#7843](https://github.com/vector-im/element-android/issues/7843))
|
||||
|
||||
Other changes
|
||||
-------------
|
||||
- [Voice Broadcast] Replace the player timeline ([#7821](https://github.com/vector-im/element-android/issues/7821))
|
||||
- Increase session manager test coverage ([#7836](https://github.com/vector-im/element-android/issues/7836))
|
||||
|
||||
|
||||
Changes in Element v1.5.14 (2022-12-20)
|
||||
=======================================
|
||||
|
||||
Bugfixes 🐛
|
||||
----------
|
||||
- ActiveSessionHolder is not supposed to start syncing. Instead, the MainActivity does it, if necessary. Fixes a race condition when clearing cache.
|
||||
|
||||
|
||||
Changes in Element v1.5.13 (2022-12-19)
|
||||
=======================================
|
||||
|
||||
Bugfixes 🐛
|
||||
----------
|
||||
- Add `largeHeap=true` in the manifest since we are seeing more crashes (OOM) when handling sync response.
|
||||
|
||||
|
||||
Changes in Element v1.5.12 (2022-12-15)
|
||||
=======================================
|
||||
|
||||
Features ✨
|
||||
----------
|
||||
- [Threads] - Threads Labs Flag is enabled by default and forced to be enabled for existing users, but sill can be disabled manually ([#5503](https://github.com/vector-im/element-android/issues/5503))
|
||||
- [Session manager] Add action to signout all the other session ([#7693](https://github.com/vector-im/element-android/issues/7693))
|
||||
- Remind unverified sessions with a banner once a week ([#7694](https://github.com/vector-im/element-android/issues/7694))
|
||||
- [Session manager] Add actions to rename and signout current session ([#7697](https://github.com/vector-im/element-android/issues/7697))
|
||||
- Voice Broadcast - Update last message in the room list ([#7719](https://github.com/vector-im/element-android/issues/7719))
|
||||
- Delete unused client information from account data ([#7754](https://github.com/vector-im/element-android/issues/7754))
|
||||
|
||||
Bugfixes 🐛
|
||||
----------
|
||||
- Fix bad pills color background. For light and dark theme the color is now 61708B (iso EleWeb) ([#7274](https://github.com/vector-im/element-android/issues/7274))
|
||||
- [Notifications] Fixed a bug when push notification was automatically dismissed while app is on background ([#7643](https://github.com/vector-im/element-android/issues/7643))
|
||||
- ANR when asking to select the notification method ([#7653](https://github.com/vector-im/element-android/issues/7653))
|
||||
- [Rich text editor] Fix design and spacing of rich text editor ([#7658](https://github.com/vector-im/element-android/issues/7658))
|
||||
- [Rich text editor] Fix keyboard closing after collapsing editor ([#7659](https://github.com/vector-im/element-android/issues/7659))
|
||||
- Rich Text Editor: fix several issues related to insets:
|
||||
* Empty space displayed at the bottom when you don't have permissions to send messages into a room.
|
||||
* Wrong insets being kept when you exit the room screen and the keyboard is displayed, then come back to it. ([#7680](https://github.com/vector-im/element-android/issues/7680))
|
||||
- Fix crash in message composer when room is missing ([#7683](https://github.com/vector-im/element-android/issues/7683))
|
||||
- Fix crash when invalid homeserver url is entered. ([#7684](https://github.com/vector-im/element-android/issues/7684))
|
||||
- Rich Text Editor: improve performance when entering reply/edit/quote mode. ([#7691](https://github.com/vector-im/element-android/issues/7691))
|
||||
- [Rich text editor] Add error tracking for rich text editor ([#7695](https://github.com/vector-im/element-android/issues/7695))
|
||||
- Fix E2EE set up failure whilst signing in using QR code ([#7699](https://github.com/vector-im/element-android/issues/7699))
|
||||
- Fix usage of unknown shield in room summary ([#7710](https://github.com/vector-im/element-android/issues/7710))
|
||||
- Fix crash when the network is not available. ([#7725](https://github.com/vector-im/element-android/issues/7725))
|
||||
- [Session manager] Sessions without encryption support should not prompt to verify ([#7733](https://github.com/vector-im/element-android/issues/7733))
|
||||
- Fix issue of Scan QR code button sometimes not showing when it should be available ([#7737](https://github.com/vector-im/element-android/issues/7737))
|
||||
- Verification request is not showing when verify session popup is displayed ([#7743](https://github.com/vector-im/element-android/issues/7743))
|
||||
- Fix crash when inviting by email. ([#7744](https://github.com/vector-im/element-android/issues/7744))
|
||||
- Revert usage of stable fields in live location sharing and polls ([#7751](https://github.com/vector-im/element-android/issues/7751))
|
||||
- [Poll] Poll end event is not recognized ([#7753](https://github.com/vector-im/element-android/issues/7753))
|
||||
- [Push Notifications] When push notification for threaded message is clicked, thread timeline will be opened instead of room's main timeline ([#7770](https://github.com/vector-im/element-android/issues/7770))
|
||||
|
||||
Other changes
|
||||
-------------
|
||||
- [Threads] - added API to fetch threads list from the server instead of building it locally from events ([#5819](https://github.com/vector-im/element-android/issues/5819))
|
||||
- Add Z-Labs label for rich text editor and migrate to new label naming. ([#7477](https://github.com/vector-im/element-android/issues/7477))
|
||||
- Crypto database migration tests ([#7645](https://github.com/vector-im/element-android/issues/7645))
|
||||
- Add tracing Id for to device messages ([#7708](https://github.com/vector-im/element-android/issues/7708))
|
||||
- Disable nightly popup and add an entry point in the advanced settings instead. ([#7723](https://github.com/vector-im/element-android/issues/7723))
|
||||
- Save m.local_notification_settings.<device-id> event in account_data ([#7596](https://github.com/vector-im/element-android/issues/7596))
|
||||
- Update notifications setting when m.local_notification_settings.<device-id> event changes for current device ([#7632](https://github.com/vector-im/element-android/issues/7632))
|
||||
|
||||
SDK API changes ⚠️
|
||||
------------------
|
||||
- Handle account data removal ([#7740](https://github.com/vector-im/element-android/issues/7740))
|
||||
|
||||
Changes in Element 1.5.11 (2022-12-07)
|
||||
======================================
|
||||
|
||||
Bugfixes 🐛
|
||||
----------
|
||||
- Fix crash when the network is not available. ([#7725](https://github.com/vector-im/element-android/issues/7725))
|
||||
|
||||
|
||||
Changes in Element v1.5.10 (2022-11-30)
|
||||
=======================================
|
||||
|
||||
Features ✨
|
||||
----------
|
||||
- Add setting to allow disabling direct share ([#2725](https://github.com/vector-im/element-android/issues/2725))
|
||||
- [Device Manager] Toggle IP address visibility ([#7546](https://github.com/vector-im/element-android/issues/7546))
|
||||
- New implementation of the full screen mode for the Rich Text Editor. ([#7577](https://github.com/vector-im/element-android/issues/7577))
|
||||
|
||||
Bugfixes 🐛
|
||||
----------
|
||||
- Fix italic text is truncated when bubble mode and markdown is enabled ([#5679](https://github.com/vector-im/element-android/issues/5679))
|
||||
- Missing translations on "replyTo" messages ([#7555](https://github.com/vector-im/element-android/issues/7555))
|
||||
- ANR on session start when sending client info is enabled ([#7604](https://github.com/vector-im/element-android/issues/7604))
|
||||
- Make the plain text mode layout of the RTE more compact. ([#7620](https://github.com/vector-im/element-android/issues/7620))
|
||||
- Push notification for thread message is now shown correctly when user observes rooms main timeline ([#7634](https://github.com/vector-im/element-android/issues/7634))
|
||||
- Voice Broadcast - Fix playback stuck in buffering mode ([#7646](https://github.com/vector-im/element-android/issues/7646))
|
||||
|
||||
In development 🚧
|
||||
----------------
|
||||
- Voice Broadcast - Handle redaction of the state events on the listener and recorder sides ([#7629](https://github.com/vector-im/element-android/issues/7629))
|
||||
- Voice Broadcast - Update the buffering display in the timeline ([#7655](https://github.com/vector-im/element-android/issues/7655))
|
||||
- Voice Broadcast - Remove voice messages related to a VB from the room attachments ([#7656](https://github.com/vector-im/element-android/issues/7656))
|
||||
|
||||
SDK API changes ⚠️
|
||||
------------------
|
||||
- Added support for read receipts in threads. Now user in a room can have multiple read receipts (one per thread + one in main thread + one without threadId) ([#6996](https://github.com/vector-im/element-android/issues/6996))
|
||||
- Sync Filter now taking in account homeserver capabilities to not pass unsupported parameters.
|
||||
Sync Filter is now configured by providing SyncFilterBuilder class instance, instead of Filter to identify Filter changes related to homeserver capabilities ([#7626](https://github.com/vector-im/element-android/issues/7626))
|
||||
|
||||
Other changes
|
||||
-------------
|
||||
- Remove usage of Buildkite. ([#7583](https://github.com/vector-im/element-android/issues/7583))
|
||||
- Better validation of edits ([#7594](https://github.com/vector-im/element-android/issues/7594))
|
||||
|
||||
|
||||
Changes in Element v1.5.8 (2022-11-17)
|
||||
======================================
|
||||
|
||||
|
@@ -13,6 +13,7 @@
|
||||
* [Code quality](#code-quality)
|
||||
* [Internal tool](#internal-tool)
|
||||
* [ktlint](#ktlint)
|
||||
* [knit](#knit)
|
||||
* [lint](#lint)
|
||||
* [Unit tests](#unit-tests)
|
||||
* [Tests](#tests)
|
||||
@@ -126,6 +127,23 @@ Note that you can run
|
||||
|
||||
For ktlint to fix some detected errors for you (you still have to check and commit the fix of course)
|
||||
|
||||
#### knit
|
||||
|
||||
[knit](https://github.com/Kotlin/kotlinx-knit) is a tool which checks markdown files on the project. Also it generates/updates the table of content (toc) of the markdown files.
|
||||
|
||||
So everytime the toc should be updated, just run
|
||||
<pre>
|
||||
./gradlew knit
|
||||
</pre>
|
||||
|
||||
and commit the changes.
|
||||
|
||||
The CI will check that markdown files are up to date by running
|
||||
|
||||
<pre>
|
||||
./gradlew knitCheck
|
||||
</pre>
|
||||
|
||||
#### lint
|
||||
|
||||
<pre>
|
||||
|
@@ -1,4 +1,4 @@
|
||||
[](https://buildkite.com/matrix-dot-org/element-android/builds?branch=develop)
|
||||
[](https://github.com/vector-im/element-android/actions/workflows/build.yml?query=branch%3Adevelop)
|
||||
[](https://translate.element.io/engage/element-android/?utm_source=widget)
|
||||
[](https://matrix.to/#/#element-android:matrix.org)
|
||||
[](https://sonarcloud.io/summary/new_code?id=vector-im_element-android)
|
||||
@@ -14,7 +14,7 @@ It is a total rewrite of [Riot-Android](https://github.com/vector-im/riot-androi
|
||||
[<img src="resources/img/google-play-badge.png" alt="Get it on Google Play" height="60">](https://play.google.com/store/apps/details?id=im.vector.app)
|
||||
[<img src="resources/img/f-droid-badge.png" alt="Get it on F-Droid" height="60">](https://f-droid.org/app/im.vector.app)
|
||||
|
||||
Nightly build: [](https://buildkite.com/matrix-dot-org/element-android/builds?branch=develop) Nightly test status: [](https://github.com/vector-im/element-android/actions/workflows/nightly.yml)
|
||||
Build of develop branch: [](https://github.com/vector-im/element-android/actions/workflows/build.yml?query=branch%3Adevelop) Nightly test status: [](https://github.com/vector-im/element-android/actions/workflows/nightly.yml)
|
||||
|
||||
|
||||
# New Android SDK
|
||||
@@ -40,7 +40,7 @@ If you would like to receive releases more quickly (bearing in mind that they ma
|
||||
|
||||
1. [Sign up to receive beta releases](https://play.google.com/apps/testing/im.vector.app) via the Google Play Store.
|
||||
2. Install a [release APK](https://github.com/vector-im/element-android/releases) directly - download the relevant .apk file and allow installing from untrusted sources in your device settings. Note: these releases are the Google Play version, which depend on some Google services. If you prefer to avoid that, try the latest dev builds, and choose the F-Droid version.
|
||||
3. If you're really brave, install the [very latest dev build](https://buildkite.com/matrix-dot-org/element-android/builds/latest?branch=develop&state=passed) - click on *Assemble (GPlay or FDroid) Debug version* then on *Artifacts*.
|
||||
3. If you're really brave, install the [very latest dev build](https://github.com/vector-im/element-android/actions/workflows/build.yml?query=branch%3Adevelop) - pick a build, then click on `Summary` to download the APKs from there: `vector-Fdroid-debug` and `vector-Gplay-debug` contains the APK for the desired store. Each file contains 5 APKs. 4 APKs for every supported specific architecture of device. In doubt you can install the `universal` APK.
|
||||
|
||||
## Contributing
|
||||
|
||||
|
10
build.gradle
10
build.gradle
@@ -24,12 +24,12 @@ buildscript {
|
||||
classpath libs.gradle.gradlePlugin
|
||||
classpath libs.gradle.kotlinPlugin
|
||||
classpath libs.gradle.hiltPlugin
|
||||
classpath 'com.google.firebase:firebase-appdistribution-gradle:3.0.3'
|
||||
classpath 'com.google.firebase:firebase-appdistribution-gradle:3.1.1'
|
||||
classpath 'com.google.gms:google-services:4.3.14'
|
||||
classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.5.0.2730'
|
||||
classpath 'com.google.android.gms:oss-licenses-plugin:0.10.5'
|
||||
classpath "com.likethesalad.android:stem-plugin:2.2.3"
|
||||
classpath 'org.owasp:dependency-check-gradle:7.3.0'
|
||||
classpath 'org.owasp:dependency-check-gradle:7.4.1'
|
||||
classpath "org.jetbrains.dokka:dokka-gradle-plugin:1.7.20"
|
||||
classpath "org.jetbrains.kotlinx:kotlinx-knit:0.4.0"
|
||||
classpath 'com.jakewharton:butterknife-gradle-plugin:10.2.3'
|
||||
@@ -43,12 +43,12 @@ plugins {
|
||||
// ktlint Plugin
|
||||
id "org.jlleitschuh.gradle.ktlint" version "11.0.0"
|
||||
// Detekt
|
||||
id "io.gitlab.arturbosch.detekt" version "1.21.0"
|
||||
id "io.gitlab.arturbosch.detekt" version "1.22.0"
|
||||
// Ksp
|
||||
id "com.google.devtools.ksp" version "1.7.21-1.0.8"
|
||||
id "com.google.devtools.ksp" version "1.7.22-1.0.8"
|
||||
|
||||
// Dependency Analysis
|
||||
id 'com.autonomousapps.dependency-analysis' version "1.13.1"
|
||||
id 'com.autonomousapps.dependency-analysis' version "1.17.0"
|
||||
// Gradle doctor
|
||||
id "com.osacky.doctor" version "0.8.1"
|
||||
}
|
||||
|
@@ -8,16 +8,16 @@ ext.versions = [
|
||||
|
||||
def gradle = "7.3.1"
|
||||
// Ref: https://kotlinlang.org/releases.html
|
||||
def kotlin = "1.7.21"
|
||||
def kotlin = "1.7.22"
|
||||
def kotlinCoroutines = "1.6.4"
|
||||
def dagger = "2.44"
|
||||
def dagger = "2.44.2"
|
||||
def appDistribution = "16.0.0-beta05"
|
||||
def retrofit = "2.9.0"
|
||||
def markwon = "4.6.2"
|
||||
def moshi = "1.14.0"
|
||||
def lifecycle = "2.5.1"
|
||||
def flowBinding = "1.2.0"
|
||||
def flipper = "0.174.0"
|
||||
def flipper = "0.176.0"
|
||||
def epoxy = "5.0.0"
|
||||
def mavericks = "3.0.1"
|
||||
def glide = "4.14.2"
|
||||
@@ -26,8 +26,8 @@ def jjwt = "0.11.5"
|
||||
// Temporary version to unblock #6929. Once 0.16.0 is released we should use it, and revert
|
||||
// the whole commit which set version 0.16.0-SNAPSHOT
|
||||
def vanniktechEmoji = "0.16.0-SNAPSHOT"
|
||||
def sentry = "6.7.0"
|
||||
def fragment = "1.5.4"
|
||||
def sentry = "6.9.2"
|
||||
def fragment = "1.5.5"
|
||||
// Testing
|
||||
def mockk = "1.12.3" // We need to use 1.12.3 to have mocking in androidTest until a new version is released: https://github.com/mockk/mockk/issues/819
|
||||
def espresso = "3.4.0"
|
||||
@@ -83,7 +83,7 @@ ext.libs = [
|
||||
'appdistributionApi' : "com.google.firebase:firebase-appdistribution-api-ktx:$appDistribution",
|
||||
'appdistribution' : "com.google.firebase:firebase-appdistribution:$appDistribution",
|
||||
// Phone number https://github.com/google/libphonenumber
|
||||
'phonenumber' : "com.googlecode.libphonenumber:libphonenumber:8.13.0"
|
||||
'phonenumber' : "com.googlecode.libphonenumber:libphonenumber:8.13.3"
|
||||
],
|
||||
dagger : [
|
||||
'dagger' : "com.google.dagger:dagger:$dagger",
|
||||
@@ -98,7 +98,7 @@ ext.libs = [
|
||||
],
|
||||
element : [
|
||||
'opusencoder' : "io.element.android:opusencoder:1.1.0",
|
||||
'wysiwyg' : "io.element.android:wysiwyg:0.4.0"
|
||||
'wysiwyg' : "io.element.android:wysiwyg:0.10.0"
|
||||
],
|
||||
squareup : [
|
||||
'moshi' : "com.squareup.moshi:moshi:$moshi",
|
||||
@@ -129,7 +129,7 @@ ext.libs = [
|
||||
'mavericksTesting' : "com.airbnb.android:mavericks-testing:$mavericks"
|
||||
],
|
||||
maplibre : [
|
||||
'androidSdk' : "org.maplibre.gl:android-sdk:9.5.2",
|
||||
'androidSdk' : "org.maplibre.gl:android-sdk:9.6.0",
|
||||
'pluginAnnotation' : "org.maplibre.gl:android-plugin-annotation-v9:1.0.0"
|
||||
],
|
||||
mockk : [
|
||||
|
55
docs/database_migration_test.md
Normal file
55
docs/database_migration_test.md
Normal file
@@ -0,0 +1,55 @@
|
||||
<!--- TOC -->
|
||||
|
||||
* [Testing database migration](#testing-database-migration)
|
||||
* [Creating a reference database](#creating-a-reference-database)
|
||||
* [Testing](#testing)
|
||||
|
||||
<!--- END -->
|
||||
|
||||
## Testing database migration
|
||||
|
||||
### Creating a reference database
|
||||
|
||||
Databases are encrypted, the key to decrypt is needed to setup the test.
|
||||
A special build property must be enabled to extract it.
|
||||
|
||||
Set `vector.debugPrivateData=true` in `~/.gradle/gradle.properties` (to avoid committing by mistake)
|
||||
|
||||
Launch the app in your emulator, login and use the app to fill up the database.
|
||||
|
||||
Save the key for the tested database
|
||||
```
|
||||
RealmKeysUtils W Database key for alias `session_db_fe9f212a611ccf6dea1141777065ed0a`: 935a6dfa0b0fc5cce1414194ed190....
|
||||
RealmKeysUtils W Database key for alias `crypto_module_fe9f212a611ccf6dea1141777065ed0a`: 7b9a21a8a311e85d75b069a343.....
|
||||
```
|
||||
|
||||
|
||||
Use the [Device File Explorer](https://developer.android.com/studio/debug/device-file-explorer) to extrat the database file from the emulator.
|
||||
|
||||
Go to `data/data/im.vector.app.debug/files/<hash>/`
|
||||
Pick the database you want to test (name can be found in SessionRealmConfigurationFactory):
|
||||
- crypto_store.realm for crypto
|
||||
- disk_store.realm for session
|
||||
- etc...
|
||||
|
||||
Download the file on your disk
|
||||
|
||||
### Testing
|
||||
|
||||
Copy the file in `src/AndroidTest/assets`
|
||||
|
||||
see `CryptoSanityMigrationTest` or `RealmSessionStoreMigration43Test` for sample tests.
|
||||
|
||||
There are already some databases in the assets folder.
|
||||
The existing test will properly detect schema changes, and fail with such errors if a migration is missing:
|
||||
|
||||
```
|
||||
io.realm.exceptions.RealmMigrationNeededException: Migration is required due to the following errors:
|
||||
- Property 'CryptoMetadataEntity.foo' has been added.
|
||||
```
|
||||
|
||||
If you want to test properly more complex database migration (dynamic transforms) ensure that the database contains
|
||||
the entity you want to migrate.
|
||||
|
||||
You can explore the database with [realm studio](https://www.mongodb.com/docs/realm/studio/) if needed.
|
||||
|
52
docs/installing_from_ci.md
Normal file
52
docs/installing_from_ci.md
Normal file
@@ -0,0 +1,52 @@
|
||||
## Installing from CI
|
||||
|
||||
<!--- TOC -->
|
||||
|
||||
* [Installing from Buildkite](#installing-from-buildkite)
|
||||
* [Installing from GitHub](#installing-from-github)
|
||||
* [Create a GitHub token](#create-a-github-token)
|
||||
* [Provide artifact URL](#provide-artifact-url)
|
||||
* [Next steps](#next-steps)
|
||||
* [Future improvement](#future-improvement)
|
||||
|
||||
<!--- END -->
|
||||
|
||||
Installing APK build by the CI is possible
|
||||
|
||||
### Installing from Buildkite
|
||||
|
||||
The script `./tools/install/installFromBuildkite.sh` can be used, but Builkite will be removed soon. See next section.
|
||||
|
||||
### Installing from GitHub
|
||||
|
||||
To install an APK built by a GitHub action, run the script `./tools/install/installFromGitHub.sh`. You will need to pass a GitHub token to do so.
|
||||
|
||||
#### Create a GitHub token
|
||||
|
||||
You can create a GitHub token going to your Github account, at this page: [https://github.com/settings/tokens](https://github.com/settings/tokens).
|
||||
|
||||
You need to create a token (classic) with the scope `repo/public_repo`. So just check the corresponding checkbox.
|
||||
Validity can be long since the scope of this token is limited. You will still be able to delete the token and generate a new one.
|
||||
Click on Generate token and save the token locally.
|
||||
|
||||
### Provide artifact URL
|
||||
|
||||
The script will ask for an artifact URL. You can get this artifact URL by following these steps:
|
||||
|
||||
- open the pull request
|
||||
- in the check at the bottom, click on `APK Build / Build debug APKs`
|
||||
- click on `Summary`
|
||||
- scroll to the bottom of the page
|
||||
- copy the link `vector-Fdroid-debug` if you want the F-Droid variant or `vector-Gplay-debug` if you want the Gplay variant.
|
||||
|
||||
The copied link can be provided to the script.
|
||||
|
||||
### Next steps
|
||||
|
||||
The script will download the artifact, unzip it and install the correct version (regarding arch) on your device.
|
||||
|
||||
Files will be added to the folder `./tmp/DebugApks`. Feel free to cleanup this folder from time to time, the script will not delete files.
|
||||
|
||||
### Future improvement
|
||||
|
||||
The script could ask the user for a Pull Request number and Gplay/Fdroid choice like it was done with Buildkite script. Using GitHub API may be possible to do that.
|
2
fastlane/metadata/android/cs-CZ/changelogs/40105080.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40105080.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavní změny v této verzi: opravy různých chyb a vylepšení.
|
||||
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/cs-CZ/changelogs/40105100.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40105100.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavní změny v této verzi: Nová implementace celoobrazovkového režimu pro editor formátovaného textu a opravy chyb.
|
||||
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/de-DE/changelogs/40105080.txt
Normal file
2
fastlane/metadata/android/de-DE/changelogs/40105080.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Die wichtigsten Änderungen in dieser Version: Fehlerbehebungen und Verbesserungen.
|
||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/de-DE/changelogs/40105100.txt
Normal file
2
fastlane/metadata/android/de-DE/changelogs/40105100.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Die wichtigsten Änderungen in dieser Version: Der Vollbildmodus des Textverarbeitungseditors wurde neu umgesetzt und es wurden diverse Fehler behoben.
|
||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/en-US/changelogs/40105100.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/40105100.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Main changes in this version: New implementation of the full screen mode for the Rich Text Editor and bugfixes.
|
||||
Full changelog: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/en-US/changelogs/40105110.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/40105110.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Main changes in this version: New implementation of the full screen mode for the Rich Text Editor and bugfixes.
|
||||
Full changelog: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/en-US/changelogs/40105120.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/40105120.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Main changes in this version: Thread are now enabled by default.
|
||||
Full changelog: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/en-US/changelogs/40105130.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/40105130.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Main changes in this version: Thread are now enabled by default.
|
||||
Full changelog: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/en-US/changelogs/40105140.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/40105140.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Main changes in this version: Thread are now enabled by default.
|
||||
Full changelog: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/en-US/changelogs/40105160.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/40105160.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Main changes in this version: Thread are now enabled by default.
|
||||
Full changelog: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/et/changelogs/40105080.txt
Normal file
2
fastlane/metadata/android/et/changelogs/40105080.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Põhilised muutused selles versioonis: erinevate vigade parandused ja kohendused.
|
||||
Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/et/changelogs/40105100.txt
Normal file
2
fastlane/metadata/android/et/changelogs/40105100.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Põhilised muutused selles versioonis: tekstitoimeti täisekraanivaade ja erinevate vigade parandused.
|
||||
Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/fa/changelogs/40105080.txt
Normal file
2
fastlane/metadata/android/fa/changelogs/40105080.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
تغییرات عمده در این نگارش: رفع اشکالها و بهبود.
|
||||
گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/fr-FR/changelogs/40105080.txt
Normal file
2
fastlane/metadata/android/fr-FR/changelogs/40105080.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Principaux changements pour cette version : corrections de bugs et améliorations.
|
||||
Intégralité des changements : https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/id/changelogs/40105080.txt
Normal file
2
fastlane/metadata/android/id/changelogs/40105080.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Perubahan utama dalam versi ini: perbaikan kutu dan fitur
|
||||
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/id/changelogs/40105100.txt
Normal file
2
fastlane/metadata/android/id/changelogs/40105100.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Perubahan utama dalam versi ini: Penerapan baru mode layar penuh untuk Penyunting Teks Kaya dan perbaikan kutu.
|
||||
Catatan perubahan lanjutan: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/it-IT/changelogs/40105060.txt
Normal file
2
fastlane/metadata/android/it-IT/changelogs/40105060.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Modifiche principali in questa versione: nuova interfaccia utente per selezionare un allegato!
|
||||
Cronologia completa: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/it-IT/changelogs/40105070.txt
Normal file
2
fastlane/metadata/android/it-IT/changelogs/40105070.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Modifiche principali in questa versione: nuova interfaccia utente per selezionare un allegato.
|
||||
Cronologia completa: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/it-IT/changelogs/40105080.txt
Normal file
2
fastlane/metadata/android/it-IT/changelogs/40105080.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Modifiche principali in questa versione: correzione di errori e miglioramenti.
|
||||
Cronologia completa: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/pt-BR/changelogs/40105080.txt
Normal file
2
fastlane/metadata/android/pt-BR/changelogs/40105080.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Principais mudanças nesta versão: consertos de bugs e melhorias.
|
||||
Changelog completo: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/ru-RU/changelogs/40104260.txt
Normal file
2
fastlane/metadata/android/ru-RU/changelogs/40104260.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Основные изменения в этой версии: Использование UnifiedPush и разрешение пользователям получать push-оповещения без FCM.
|
||||
Полный список изменений: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/ru-RU/changelogs/40104270.txt
Normal file
2
fastlane/metadata/android/ru-RU/changelogs/40104270.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Основные изменения в этой версии: Исправления различных багов и улучшения стабильности работы.
|
||||
Полный список изменений: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/ru-RU/changelogs/40104280.txt
Normal file
2
fastlane/metadata/android/ru-RU/changelogs/40104280.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Основные изменения в этой версии: Исправления различных багов и улучшения стабильности работы.
|
||||
Полный список изменений: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/ru-RU/changelogs/40104300.txt
Normal file
2
fastlane/metadata/android/ru-RU/changelogs/40104300.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Основные изменения в этой версии: Улучшены вход и регистрация
|
||||
Полный список изменений: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/ru-RU/changelogs/40104310.txt
Normal file
2
fastlane/metadata/android/ru-RU/changelogs/40104310.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Основные изменения в этой версии: Улучшены вход и регистрация
|
||||
Полный список изменений: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/ru-RU/changelogs/40104320.txt
Normal file
2
fastlane/metadata/android/ru-RU/changelogs/40104320.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Основные изменения в этой версии: Исправления различных багов и улучшения стабильности работы
|
||||
Полный список изменений: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/ru-RU/changelogs/40105000.txt
Normal file
2
fastlane/metadata/android/ru-RU/changelogs/40105000.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Основные изменения в этой версии: отложённые личные сообщения включены по умолчанию
|
||||
Полный список изменений: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/ru-RU/changelogs/40105060.txt
Normal file
2
fastlane/metadata/android/ru-RU/changelogs/40105060.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Основные изменения в этой версии: новый интерфейс для выбора прикреплённых файлов
|
||||
Полный список изменений: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/ru-RU/changelogs/40105070.txt
Normal file
2
fastlane/metadata/android/ru-RU/changelogs/40105070.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Основные изменения в этой версии: новый интерфейс для выбора прикреплённых файлов
|
||||
Полный список изменений: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/sk/changelogs/40105080.txt
Normal file
2
fastlane/metadata/android/sk/changelogs/40105080.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavné zmeny v tejto verzii: opravy chýb a vylepšenia.
|
||||
Úplný zoznam zmien: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/sk/changelogs/40105100.txt
Normal file
2
fastlane/metadata/android/sk/changelogs/40105100.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavné zmeny v tejto verzii: Nová implementácia celo-obrazovkového režimu pre Rozšírený textový editor a opravy chýb.
|
||||
Úplný zoznam zmien: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/sq/changelogs/40105080.txt
Normal file
2
fastlane/metadata/android/sq/changelogs/40105080.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Ndryshimet kryesore në këtë version: ndreqje të metash dhe përmirësime.
|
||||
Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/sv-SE/changelogs/40105060.txt
Normal file
2
fastlane/metadata/android/sv-SE/changelogs/40105060.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Huvudsakliga ändringar i den här versionen: nytt gränssnitt för val av bilaga.
|
||||
Full ändringslogg: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/sv-SE/changelogs/40105070.txt
Normal file
2
fastlane/metadata/android/sv-SE/changelogs/40105070.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Huvudsakliga ändringar i den här versionen: nytt gränssnitt för val av bilaga.
|
||||
Full ändringslogg: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/sv-SE/changelogs/40105080.txt
Normal file
2
fastlane/metadata/android/sv-SE/changelogs/40105080.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Huvudsakliga ändringar i den här versionen: buggfixar och förbättringar.
|
||||
Full ändringslogg: https://github.com/vector-im/element-android/releases
|
@@ -1,2 +1,2 @@
|
||||
Основні зміни в цій версії: Нові можливості в налаштуваннях лабораторії: Текстовий редактор, нове керування пристроями, голосові повідомлення. Досі в активній розробці!
|
||||
Основні зміни в цій версії: Нові можливості в налаштуваннях лабораторії: Текстовий редактор, нове керування пристроями, голосові трансляції. Досі в активній розробці!
|
||||
Список усіх змін: https://github.com/vector-im/element-android/releases
|
||||
|
2
fastlane/metadata/android/uk/changelogs/40105080.txt
Normal file
2
fastlane/metadata/android/uk/changelogs/40105080.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Основні зміни в цій версії: усування вад і вдосконалення.
|
||||
Перелік усіх змін: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/uk/changelogs/40105100.txt
Normal file
2
fastlane/metadata/android/uk/changelogs/40105100.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Основні зміни в цій версії: Нова реалізація повноекранного режиму для редактора розширеного тексту та виправлення помилок.
|
||||
Перелік усіх змін: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/zh-TW/changelogs/40105080.txt
Normal file
2
fastlane/metadata/android/zh-TW/changelogs/40105080.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
此版本中的主要變動:臭蟲修復與改善。
|
||||
完整的變更紀錄:https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/zh-TW/changelogs/40105100.txt
Normal file
2
fastlane/metadata/android/zh-TW/changelogs/40105100.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
此版本中的主要變動:格式化文字編輯器的全螢幕模式新實作與臭蟲修復。
|
||||
完整的變更紀錄:https://github.com/vector-im/element-android/releases
|
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Binary file not shown.
5
gradle/wrapper/gradle-wrapper.properties
vendored
5
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,6 +1,7 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionSha256Sum=db9c8211ed63f61f60292c69e80d89196f9eb36665e369e7f00ac4cc841c2219
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip
|
||||
distributionSha256Sum=312eb12875e1747e05c2f81a4789902d7e4ec5defbd1eefeaccc08acf096505d
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-all.zip
|
||||
networkTimeout=10000
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
12
gradlew
vendored
12
gradlew
vendored
@@ -55,7 +55,7 @@
|
||||
# Darwin, MinGW, and NonStop.
|
||||
#
|
||||
# (3) This script is generated from the Groovy template
|
||||
# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||
# within the Gradle project.
|
||||
#
|
||||
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||
@@ -80,10 +80,10 @@ do
|
||||
esac
|
||||
done
|
||||
|
||||
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
|
||||
|
||||
APP_NAME="Gradle"
|
||||
# This is normally unused
|
||||
# shellcheck disable=SC2034
|
||||
APP_BASE_NAME=${0##*/}
|
||||
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
@@ -143,12 +143,16 @@ fi
|
||||
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||
case $MAX_FD in #(
|
||||
max*)
|
||||
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC3045
|
||||
MAX_FD=$( ulimit -H -n ) ||
|
||||
warn "Could not query maximum file descriptor limit"
|
||||
esac
|
||||
case $MAX_FD in #(
|
||||
'' | soft) :;; #(
|
||||
*)
|
||||
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC3045
|
||||
ulimit -n "$MAX_FD" ||
|
||||
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
||||
esac
|
||||
|
1
gradlew.bat
vendored
1
gradlew.bat
vendored
@@ -26,6 +26,7 @@ if "%OS%"=="Windows_NT" setlocal
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%"=="" set DIRNAME=.
|
||||
@rem This is normally unused
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
|
@@ -2837,4 +2837,6 @@
|
||||
<string name="attachment_type_selector_sticker">Adhesius</string>
|
||||
<string name="attachment_type_selector_gallery">Galeria</string>
|
||||
<string name="attachment_type_selector_text_formatting">Format de text</string>
|
||||
<string name="a11y_voice_broadcast_fast_backward">Enrere 30 segons</string>
|
||||
<string name="a11y_voice_broadcast_fast_forward">Avança 30 segons</string>
|
||||
</resources>
|
@@ -2789,7 +2789,7 @@
|
||||
<string name="key_authenticity_not_guaranteed">Pravost této šifrované zprávy nelze v tomto zařízení zaručit.</string>
|
||||
<string name="settings_security_incognito_keyboard_summary">Požadujte, aby klávesnice neaktualizovala žádné personalizované údaje, jako je historie psaní a slovník, na základě toho, co jste napsali v konverzacích. Upozorňujeme, že některé klávesnice nemusí toto nastavení respektovat.</string>
|
||||
<string name="settings_security_incognito_keyboard_title">Inkognito klávesnice</string>
|
||||
<string name="command_description_table_flip">Přidá znaky (╯°□°)╯︵ ┻━┻ před zprávy ve formátu obyčejného textu</string>
|
||||
<string name="command_description_table_flip">Přidá znaky (╯°□°)╯︵ ┻━┻ před zprávy ve formátu prostého textu</string>
|
||||
<string name="attachment_type_voice_broadcast">Hlasové vysílání</string>
|
||||
<string name="command_description_devtools">Otevřít nástroje pro vývojáře</string>
|
||||
<string name="room_settings_global_block_unverified_info_text">🔒 V nastavení zabezpečení jste povolili šifrování pouze do ověřených relací pro všechny místnosti.</string>
|
||||
@@ -2824,8 +2824,8 @@
|
||||
<string name="permissions_rationale_msg_notification">${app_name} potřebuje oprávnění k zobrazování oznámení. Oznámení mohou zobrazovat vaše zprávy, pozvánky atd.
|
||||
\n
|
||||
\nPro zobrazování oznámení povolte přístup na dalších vyskakovacích oknech.</string>
|
||||
<string name="labs_enable_rich_text_editor_summary">Vyzkoušejte rozšířený textový editor (textový režim již brzy)</string>
|
||||
<string name="labs_enable_rich_text_editor_title">Povolit rozšířený textový editor</string>
|
||||
<string name="labs_enable_rich_text_editor_summary">Vyzkoušejte editor formátovaného textu (režim prostého textu již brzy)</string>
|
||||
<string name="labs_enable_rich_text_editor_title">Povolit editor formátovaného textu</string>
|
||||
<string name="qr_code_login_confirm_security_code_description">Ujistěte se, že znáte původ tohoto kódu. Propojením zařízení poskytnete někomu plný přístup ke svému účtu.</string>
|
||||
<string name="qr_code_login_confirm_security_code">Potvrdit</string>
|
||||
<string name="qr_code_login_try_again">Zkuste to znovu</string>
|
||||
@@ -2868,7 +2868,7 @@
|
||||
<string name="qr_code_login_header_failed_other_device_already_signed_in_description">Druhé zařízení je již přihlášeno.</string>
|
||||
<string name="qr_code_login_header_failed_e2ee_security_issue_description">Při nastavování zabezpečeného zasílání zpráv se vyskytl problém se zabezpečením. Může být napadena jedna z následujících věcí: váš domovský server; vaše internetové připojení; vaše zařízení;</string>
|
||||
<string name="qr_code_login_header_failed_other_description">Žádost se nezdařila.</string>
|
||||
<string name="a11y_voice_broadcast_buffering">Ukládání do vyrovnávací paměti</string>
|
||||
<string name="a11y_voice_broadcast_buffering">Ukládání do vyrovnávací paměti…</string>
|
||||
<string name="a11y_pause_voice_broadcast">Pozastavit hlasové vysílání</string>
|
||||
<string name="a11y_play_voice_broadcast">Přehrát nebo obnovit hlasové vysílání</string>
|
||||
<string name="a11y_stop_voice_broadcast_record">Ukončit záznam hlasového vysílání</string>
|
||||
@@ -2899,4 +2899,29 @@
|
||||
<string name="error_voice_broadcast_unauthorized_title">Nelze zahájit nové hlasové vysílání</string>
|
||||
<string name="a11y_voice_broadcast_fast_backward">Přetočení o 30 sekund zpět</string>
|
||||
<string name="a11y_voice_broadcast_fast_forward">Přetočení o 30 sekund dopředu</string>
|
||||
<string name="device_manager_learn_more_sessions_verified_description">Ověřené relace jsou všude tam, kde tento účet používáte po zadání přístupové fráze nebo po potvrzení své totožnosti jinou ověřenou relací.
|
||||
\n
|
||||
\nTo znamená, že máte všechny klíče potřebné k odemknutí zašifrovaných zpráv a potvrzení ostatním uživatelům, že této relaci důvěřujete.</string>
|
||||
<plurals name="device_manager_other_sessions_multi_signout_all">
|
||||
<item quantity="one">Odhlásit se z %1$d relace</item>
|
||||
<item quantity="few">Odhlásit se ze %1$d relací</item>
|
||||
<item quantity="other">Odhlásit se z %1$d relací</item>
|
||||
</plurals>
|
||||
<string name="device_manager_other_sessions_multi_signout_selection">Odhlásit se</string>
|
||||
<string name="voice_broadcast_recording_time_left">zbývá %1$s</string>
|
||||
<string name="message_reply_to_sender_created_poll">vytvořil hlasování.</string>
|
||||
<string name="message_reply_to_sender_sent_sticker">poslal nálepku.</string>
|
||||
<string name="message_reply_to_sender_sent_video">poslal video.</string>
|
||||
<string name="message_reply_to_sender_sent_image">poslal obrázek.</string>
|
||||
<string name="message_reply_to_sender_sent_voice_message">poslal hlasovou zprávu.</string>
|
||||
<string name="message_reply_to_sender_sent_audio_file">poslal zvukový soubor.</string>
|
||||
<string name="message_reply_to_sender_sent_file">odeslal soubor.</string>
|
||||
<string name="message_reply_to_prefix">V odpovědi na</string>
|
||||
<string name="device_manager_other_sessions_hide_ip_address">Skrýt IP adresu</string>
|
||||
<string name="device_manager_other_sessions_show_ip_address">Zobrazit IP adresu</string>
|
||||
<string name="quoting">Citace</string>
|
||||
<string name="replying_to">Odpovídám na %s</string>
|
||||
<string name="editing">Úpravy</string>
|
||||
<string name="settings_enable_direct_share_summary">Zobrazit poslední chaty v nabídce sdílení systému</string>
|
||||
<string name="settings_enable_direct_share_title">Povolit přímé sdílení</string>
|
||||
</resources>
|
@@ -2232,13 +2232,13 @@
|
||||
<item quantity="other">%1$s weitere Optionen benötigt</item>
|
||||
</plurals>
|
||||
<string name="create_poll_empty_question_error">Frage darf nicht leer sein</string>
|
||||
<string name="create_poll_button">ABSTIMMUNG ERSTELLEN</string>
|
||||
<string name="create_poll_button">Umfrage erstellen</string>
|
||||
<string name="create_poll_add_option">NEUE OPTION</string>
|
||||
<string name="create_poll_options_hint">Option %1$d</string>
|
||||
<string name="create_poll_options_title">Optionen hinzufügen</string>
|
||||
<string name="create_poll_question_hint">Frage oder Thema</string>
|
||||
<string name="create_poll_question_title">Abstimmungsthema oder Frage</string>
|
||||
<string name="create_poll_title">Abstimmung erstellen</string>
|
||||
<string name="create_poll_title">Umfrage erstellen</string>
|
||||
<string name="attachment_type_poll">Umfrage</string>
|
||||
<string name="open_discovery_settings">Auffindungseinstellungen öffnen</string>
|
||||
<string name="shortcut_disabled_reason_sign_out">Sitzung abgemeldet!</string>
|
||||
@@ -2306,21 +2306,21 @@
|
||||
<string name="legals_identity_server_title">Richtlinie deines Identitäts-Servers</string>
|
||||
<string name="legals_home_server_title">Richtlinie deines Heim-Servers</string>
|
||||
<string name="legals_application_title">Richtlinie von ${app_name}</string>
|
||||
<string name="tooltip_attachment_poll">Abstimmung erstellen</string>
|
||||
<string name="tooltip_attachment_poll">Umfrage erstellen</string>
|
||||
<string name="tooltip_attachment_contact">Kontakte öffnen</string>
|
||||
<string name="tooltip_attachment_sticker">Sticker verschicken</string>
|
||||
<string name="tooltip_attachment_file">Datei hochladen</string>
|
||||
<string name="tooltip_attachment_gallery">Verschicke Fotos und Videos</string>
|
||||
<string name="tooltip_attachment_photo">Kamera öffnen</string>
|
||||
<string name="delete_poll_dialog_content">Willst du diese Abstimmung wirklich entfernen\? Du wirst sie nicht wiederherstellen können.</string>
|
||||
<string name="delete_poll_dialog_title">Abstimmung entfernen</string>
|
||||
<string name="poll_end_room_list_preview">Abstimmung beendet</string>
|
||||
<string name="delete_poll_dialog_content">Willst du diese Umfrage wirklich entfernen\? Du wirst sie nicht wiederherstellen können.</string>
|
||||
<string name="delete_poll_dialog_title">Umfrage entfernen</string>
|
||||
<string name="poll_end_room_list_preview">Umfrage beendet</string>
|
||||
<string name="poll_response_room_list_preview">Stimme abgegeben</string>
|
||||
<string name="end_poll_confirmation_approve_button">Abstimmung beenden</string>
|
||||
<string name="end_poll_confirmation_approve_button">Umfrage beenden</string>
|
||||
<string name="end_poll_confirmation_description">Dies verhindert, dass andere Personen abstimmen können, und zeigt die Endergebnisse der Umfrage an.</string>
|
||||
<string name="end_poll_confirmation_title">Diese Abstimmung beenden\?</string>
|
||||
<string name="end_poll_confirmation_title">Diese Umfrage beenden\?</string>
|
||||
<string name="a11y_poll_winner_option">Gewinneroption</string>
|
||||
<string name="poll_end_action">Abstimmung beenden</string>
|
||||
<string name="poll_end_action">Umfrage beenden</string>
|
||||
<plurals name="poll_total_vote_count_after_ended">
|
||||
<item quantity="one">Endgültiges Ergebnis basiert auf %1$d Stimme</item>
|
||||
<item quantity="other">Endgültiges Ergebnis basiert auf %1$d Stimmen</item>
|
||||
@@ -2333,11 +2333,11 @@
|
||||
<string name="location_not_available_dialog_title">${app_name} konnte nicht auf deinen Standort zugreifen</string>
|
||||
<string name="location_activity_title_preview">Standort</string>
|
||||
<string name="closed_poll_option_description">Die Ergebnisse werden erst sichtbar, sobald du die Umfrage beendest</string>
|
||||
<string name="closed_poll_option_title">Abgeschlossene Abstimmung</string>
|
||||
<string name="closed_poll_option_title">Versteckte Umfrage</string>
|
||||
<string name="open_poll_option_description">Abstimmende können die Ergebnisse nach Stimmabgabe sehen</string>
|
||||
<string name="open_poll_option_title">Laufende Abstimmung</string>
|
||||
<string name="poll_type_title">Abstimmungsart</string>
|
||||
<string name="edit_poll_title">Abstimmung bearbeiten</string>
|
||||
<string name="open_poll_option_title">Offene Umfrage</string>
|
||||
<string name="poll_type_title">Umfragetyp</string>
|
||||
<string name="edit_poll_title">Umfrage bearbeiten</string>
|
||||
<string name="poll_no_votes_cast">Keine Stimmen abgegeben</string>
|
||||
<string name="login_splash_create_account">Konto erstellen</string>
|
||||
<string name="ftue_auth_carousel_workplace_title">Kommunikation für dein Team.</string>
|
||||
@@ -2527,7 +2527,7 @@
|
||||
<string name="ftue_auth_terms_title">Server-Richtlinien</string>
|
||||
<string name="ftue_auth_email_verification_subtitle">Folge den Anweisungen, die an %s gesendet wurden</string>
|
||||
<string name="ftue_auth_email_verification_title">E-Mail bestätigen</string>
|
||||
<string name="poll_undisclosed_not_ended">Ergebnisse werden nach Abschluss der Abstimmung sichtbar sein</string>
|
||||
<string name="poll_undisclosed_not_ended">Ergebnisse werden nach Abschluss der Umfrage sichtbar sein</string>
|
||||
<string name="ftue_auth_reset_password_breaker_title">Prüfe deine E-Mails.</string>
|
||||
<string name="ftue_auth_reset_password">Passwort zurücksetzen</string>
|
||||
<string name="ftue_auth_new_password_subtitle">Gib mindestens 8 Zeichen ein.</string>
|
||||
@@ -2815,7 +2815,7 @@
|
||||
<string name="qr_code_login_header_failed_other_description">Die Anfrage ist fehlgeschlagen.</string>
|
||||
<string name="a11y_play_voice_broadcast">Abspielen oder fortsetzen der Sprachübertragung</string>
|
||||
<string name="a11y_resume_voice_broadcast_record">Fortsetzen der Sprachübertragung</string>
|
||||
<string name="a11y_voice_broadcast_buffering">Puffere</string>
|
||||
<string name="a11y_voice_broadcast_buffering">Puffere …</string>
|
||||
<string name="a11y_pause_voice_broadcast">Pausiere Sprachübertragung</string>
|
||||
<string name="a11y_stop_voice_broadcast_record">Stoppe Aufzeichnung der Sprachübertragung</string>
|
||||
<string name="a11y_pause_voice_broadcast_record">Pausiere Aufzeichnung der Sprachübertragung</string>
|
||||
@@ -2843,4 +2843,28 @@
|
||||
<string name="error_voice_broadcast_blocked_by_someone_else_message">Jemand anderes nimmt bereits eine Sprachübertragung auf. Warte auf das Ende der Übertragung, bevor du eine neue startest.</string>
|
||||
<string name="a11y_voice_broadcast_fast_forward">30 Sekunden vorspulen</string>
|
||||
<string name="a11y_voice_broadcast_fast_backward">30 Sekunden zurückspulen</string>
|
||||
<string name="device_manager_learn_more_sessions_verified_description">Auf verifizierte Sitzungen kannst du überall mit deinem Konto zugreifen, wenn du deine Passphrase eingegeben oder Element mit einer anderen Sitzung verifiziert hast.
|
||||
\n
|
||||
\nDies bedeutet, dass du alle Schlüssel zum Entsperren deiner verschlüsselten Nachrichten hast und anderen bestätigst, dieser Sitzung zu vertrauen.</string>
|
||||
<plurals name="device_manager_other_sessions_multi_signout_all">
|
||||
<item quantity="one">Von %1$d Sitzung abmelden</item>
|
||||
<item quantity="other">Von %1$d Sitzungen abmelden</item>
|
||||
</plurals>
|
||||
<string name="device_manager_other_sessions_multi_signout_selection">Abmelden</string>
|
||||
<string name="voice_broadcast_recording_time_left">%1$s übrig</string>
|
||||
<string name="quoting">Zitieren</string>
|
||||
<string name="editing">Bearbeiten</string>
|
||||
<string name="message_reply_to_sender_created_poll">erstellte eine Umfrage.</string>
|
||||
<string name="message_reply_to_sender_sent_sticker">sandte einen Sticker.</string>
|
||||
<string name="message_reply_to_sender_sent_video">sandte ein Video.</string>
|
||||
<string name="message_reply_to_sender_sent_image">sandte ein Bild.</string>
|
||||
<string name="message_reply_to_sender_sent_voice_message">sandte eine Sprachnachricht.</string>
|
||||
<string name="message_reply_to_sender_sent_audio_file">sandte eine Audiodatei.</string>
|
||||
<string name="message_reply_to_sender_sent_file">sandte eine Datei.</string>
|
||||
<string name="message_reply_to_prefix">Als Antwort auf</string>
|
||||
<string name="replying_to">%s antworten</string>
|
||||
<string name="device_manager_other_sessions_hide_ip_address">IP-Adresse ausblenden</string>
|
||||
<string name="device_manager_other_sessions_show_ip_address">IP-Adresse anzeigen</string>
|
||||
<string name="settings_enable_direct_share_summary">Kürzliche Unterhaltungen im Teilen-Menü des Systems anzeigen</string>
|
||||
<string name="settings_enable_direct_share_title">Direktes Teilen aktivieren</string>
|
||||
</resources>
|
@@ -2649,4 +2649,10 @@
|
||||
<string name="create_room">Crear sala</string>
|
||||
<string name="start_chat">Iniciar conversación</string>
|
||||
<string name="all_chats">Todas las conversaciones</string>
|
||||
</resources>
|
||||
<string name="action_select_all">Seleccionar todo</string>
|
||||
<string name="action_got_it">De acuerdo</string>
|
||||
<plurals name="x_selected">
|
||||
<item quantity="one">%1$d seleccionado</item>
|
||||
<item quantity="other">%1$d seleccionados</item>
|
||||
</plurals>
|
||||
</resources>
|
@@ -2805,7 +2805,7 @@
|
||||
<string name="qr_code_login_header_failed_other_device_already_signed_in_description">Teine seade on juba võrku loginud.</string>
|
||||
<string name="qr_code_login_header_failed_e2ee_security_issue_description">Turvalise sõnumivahetuse ülesseadmisel tekkis turvaviga. Üks kolmest võib olla sattunud vale osapoole kontrolli alla: sinu koduserver, sinu internetiühendus või sinu seade;</string>
|
||||
<string name="qr_code_login_header_failed_other_description">Päring ei õnnestunud.</string>
|
||||
<string name="a11y_voice_broadcast_buffering">Andmed on puhverdamisel</string>
|
||||
<string name="a11y_voice_broadcast_buffering">Andmed on puhverdamisel…</string>
|
||||
<string name="a11y_play_voice_broadcast">Alusta või jätka ringhäälingukõne esitamist</string>
|
||||
<string name="a11y_stop_voice_broadcast_record">Lõpeta ringhäälingukõne salvestamine</string>
|
||||
<string name="a11y_pause_voice_broadcast_record">Peata ringhäälingukõne salvestamine</string>
|
||||
@@ -2835,4 +2835,28 @@
|
||||
<string name="error_voice_broadcast_unauthorized_title">Uue ringhäälingukõne alustamine pole võimalik</string>
|
||||
<string name="a11y_voice_broadcast_fast_backward">Keri tagasi 30 sekundi kaupa</string>
|
||||
<string name="a11y_voice_broadcast_fast_forward">Keri edasi 30 sekundi kaupa</string>
|
||||
<string name="device_manager_learn_more_sessions_verified_description">Verifitseeritud sessioonideks loetakse Element\'is või mõnes muus Matrix\'i rakenduses selliseid sessioone, kus sa kas oled sisestanud oma salafraasi või tuvastanud end mõne teise oma verifitseeritud sessiooni abil.
|
||||
\n
|
||||
\nSee tähendab, et selles sessioonis on ka kõik vajalikud võtmed krüptitud sõnumite lugemiseks ja teistele kasutajatele kinnitamiseks, et sa usaldad seda sessiooni.</string>
|
||||
<plurals name="device_manager_other_sessions_multi_signout_all">
|
||||
<item quantity="one">Logi välja %1$d\'st sessioonist</item>
|
||||
<item quantity="other">Logi välja %1$d\'st sessioonist</item>
|
||||
</plurals>
|
||||
<string name="device_manager_other_sessions_multi_signout_selection">Logi välja</string>
|
||||
<string name="voice_broadcast_recording_time_left">jäänud %1$s</string>
|
||||
<string name="editing">Muudan sõnumit</string>
|
||||
<string name="replying_to">Vastan sõnumile %s</string>
|
||||
<string name="quoting">Tsiteerides</string>
|
||||
<string name="device_manager_other_sessions_show_ip_address">Näita IP-aadressi</string>
|
||||
<string name="device_manager_other_sessions_hide_ip_address">Peida IP-aadress</string>
|
||||
<string name="message_reply_to_prefix">Vastuseks kasutajale</string>
|
||||
<string name="message_reply_to_sender_sent_file">saatis faili.</string>
|
||||
<string name="message_reply_to_sender_sent_audio_file">saatis helifaili.</string>
|
||||
<string name="message_reply_to_sender_sent_voice_message">saatis häälsõnumi.</string>
|
||||
<string name="message_reply_to_sender_sent_image">saatis pildi.</string>
|
||||
<string name="message_reply_to_sender_sent_video">saatis video.</string>
|
||||
<string name="message_reply_to_sender_sent_sticker">saatis kleepsu.</string>
|
||||
<string name="message_reply_to_sender_created_poll">koostas küsitluse.</string>
|
||||
<string name="settings_enable_direct_share_title">Kasuta otsejagamist</string>
|
||||
<string name="settings_enable_direct_share_summary">Näita viimaseid vestlusi süsteemses jagamisvaates</string>
|
||||
</resources>
|
@@ -943,7 +943,7 @@
|
||||
\n
|
||||
\nپیامهایتان با قفلهایی امن شدهاند و فقط شما و گیرندگان دیگر، کلیدهای یکتا را برای قفلگشاییشان دارید.</string>
|
||||
<string name="room_profile_section_security">امنیت</string>
|
||||
<string name="room_profile_section_security_learn_more">بثیشتر بدانید</string>
|
||||
<string name="room_profile_section_security_learn_more">بیشتر بدانید</string>
|
||||
<string name="room_profile_section_more">بیشتر</string>
|
||||
<string name="room_profile_section_admin">کنشهای مدیر</string>
|
||||
<string name="room_profile_section_more_settings">تنظمیات اتاق</string>
|
||||
@@ -2783,7 +2783,7 @@
|
||||
<string name="attachment_type_selector_poll">نظرسنجیها</string>
|
||||
<string name="attachment_type_selector_file">پیوستها</string>
|
||||
<string name="attachment_type_selector_sticker">برچسبها</string>
|
||||
<string name="a11y_voice_broadcast_buffering">میانگیری</string>
|
||||
<string name="a11y_voice_broadcast_buffering">میانگیری…</string>
|
||||
<string name="voice_broadcast_live">زنده</string>
|
||||
<string name="qr_code_login_confirm_security_code">تأیید</string>
|
||||
<string name="three">۳</string>
|
||||
@@ -2825,4 +2825,28 @@
|
||||
<string name="a11y_voice_broadcast_fast_forward">۳۰ ثانیه پیشروی</string>
|
||||
<string name="a11y_voice_broadcast_fast_backward">۳۰ ثانیه پسروی</string>
|
||||
<string name="attachment_type_selector_text_formatting">قالببندی متن</string>
|
||||
<string name="device_manager_other_sessions_multi_signout_selection">خروج</string>
|
||||
<plurals name="device_manager_other_sessions_multi_signout_all">
|
||||
<item quantity="one">خروج از ۱ نشست</item>
|
||||
<item quantity="other">خروج از %1$d نشست</item>
|
||||
</plurals>
|
||||
<string name="voice_broadcast_recording_time_left">%1$s مانده</string>
|
||||
<string name="message_reply_to_sender_sent_voice_message">پیام صوتیای فرستاد.</string>
|
||||
<string name="message_reply_to_sender_sent_audio_file">پروندهٔ صوتیای فرستاد.</string>
|
||||
<string name="message_reply_to_sender_created_poll">نظرسنجیای ایجاد کرد.</string>
|
||||
<string name="message_reply_to_sender_sent_sticker">عکسبرگردانی فرستاد.</string>
|
||||
<string name="message_reply_to_sender_sent_video">ویدیویی فرستاد.</string>
|
||||
<string name="message_reply_to_sender_sent_image">تصویری فرستاد.</string>
|
||||
<string name="message_reply_to_sender_sent_file">پروندهای فرستاد.</string>
|
||||
<string name="message_reply_to_prefix">در پاسخ به</string>
|
||||
<string name="device_manager_other_sessions_hide_ip_address">نهفتن نشانی آیپی</string>
|
||||
<string name="device_manager_other_sessions_show_ip_address">نمایش نشانی آیپی</string>
|
||||
<string name="quoting">نقل کردن</string>
|
||||
<string name="replying_to">پاسخ دادن به %s</string>
|
||||
<string name="editing">ویرایش کردن</string>
|
||||
<string name="device_manager_sessions_sign_in_with_qr_code_description">میتوانید با یک رمز QR از این افزاره برای ورود به افزارهای همراه یا روی وب استفاده کنید. دو راه برای این کار وجود دارد:</string>
|
||||
<string name="qr_code_login_header_failed_e2ee_security_issue_description">مشکلی امنیتی در برپایی پیامرسانی امن وجود داشت. ممکن است یکی از موارد زیر دستکاری شده باشند: کارساز خانیگیتان؛ اتّصال اینترنتیتان؛ افزاره(های)تان؛</string>
|
||||
<string name="qr_code_login_confirm_security_code_description">لطفاً مطمئن شوید که مبدأ این کد را میدانید. با پیوند دادن افزارهها، دسترسی کامل را به حسابتان میدهید.</string>
|
||||
<string name="settings_enable_direct_share_summary">نمایش گپهای اخیر در فهرست هم رسانی سامانه</string>
|
||||
<string name="settings_enable_direct_share_title">به کار انداختن همرسانی مستقیم</string>
|
||||
</resources>
|
@@ -2814,7 +2814,7 @@
|
||||
<string name="device_manager_sessions_sign_in_with_qr_code_description">Vous pouvez utiliser cet appareil pour connecter un appareil mobile ou un client web avec un QR code. Il y a deux façons de le faire :</string>
|
||||
<string name="device_manager_sessions_sign_in_with_qr_code_title">Se connecter avec un QR code</string>
|
||||
<string name="login_scan_qr_code">Scanner le QR code</string>
|
||||
<string name="a11y_voice_broadcast_buffering">Mise en mémoire tampon</string>
|
||||
<string name="a11y_voice_broadcast_buffering">Mise en mémoire tampon…</string>
|
||||
<string name="a11y_pause_voice_broadcast">Mettre en pause la diffusion audio</string>
|
||||
<string name="a11y_play_voice_broadcast">Lire ou continuer la diffusion audio</string>
|
||||
<string name="a11y_stop_voice_broadcast_record">Arrêter l’enregistrement de la diffusion audio</string>
|
||||
@@ -2844,4 +2844,28 @@
|
||||
<string name="error_voice_broadcast_unauthorized_title">Impossible de commencer une nouvelle diffusion audio</string>
|
||||
<string name="a11y_voice_broadcast_fast_forward">Avance rapide de 30 secondes</string>
|
||||
<string name="a11y_voice_broadcast_fast_backward">Retour rapide de 30 secondes</string>
|
||||
<string name="device_manager_learn_more_sessions_verified_description">Les sessions vérifiées sont toutes celles qui utilisent ce compte après avoir saisie la phrase de sécurité ou confirmé votre identité à l’aide d’une autre session vérifiée.
|
||||
\n
|
||||
\nCela veut dire qu’elles disposent de toutes les clés nécessaires pour lire les messages chiffrés, et confirment aux autres utilisateurs que vous faites confiance à cette session.</string>
|
||||
<plurals name="device_manager_other_sessions_multi_signout_all">
|
||||
<item quantity="one">Déconnecter %1$d session</item>
|
||||
<item quantity="other">Déconnecter %1$d sessions</item>
|
||||
</plurals>
|
||||
<string name="device_manager_other_sessions_multi_signout_selection">Déconnecter</string>
|
||||
<string name="voice_broadcast_recording_time_left">%1$s restant</string>
|
||||
<string name="message_reply_to_sender_created_poll">a créé un sondage.</string>
|
||||
<string name="message_reply_to_sender_sent_sticker">a envoyé un autocollant.</string>
|
||||
<string name="message_reply_to_sender_sent_video">a envoyé une vidéo.</string>
|
||||
<string name="message_reply_to_sender_sent_image">a envoyé une image.</string>
|
||||
<string name="message_reply_to_sender_sent_voice_message">envoyer un message vocal.</string>
|
||||
<string name="message_reply_to_sender_sent_audio_file">a envoyé un fichier audio.</string>
|
||||
<string name="message_reply_to_sender_sent_file">a envoyé un fichier.</string>
|
||||
<string name="message_reply_to_prefix">En réponse à</string>
|
||||
<string name="device_manager_other_sessions_hide_ip_address">Masquer l’adresse IP</string>
|
||||
<string name="device_manager_other_sessions_show_ip_address">Afficher l’adresse IP</string>
|
||||
<string name="quoting">Citation de</string>
|
||||
<string name="replying_to">Réponse à %s</string>
|
||||
<string name="editing">Modification</string>
|
||||
<string name="settings_enable_direct_share_summary">Affiche les conversations récentes dans le menu de partage du système</string>
|
||||
<string name="settings_enable_direct_share_title">Activer le partage direct</string>
|
||||
</resources>
|
@@ -2836,4 +2836,34 @@ A Visszaállítási Kulcsot tartsd biztonságos helyen, mint pl. egy jelszókeze
|
||||
<item quantity="one">%1$d kiválasztva</item>
|
||||
<item quantity="other">%1$d kiválasztva</item>
|
||||
</plurals>
|
||||
<string name="rich_text_editor_full_screen_toggle">Teljes képernyő váltás</string>
|
||||
<string name="device_manager_learn_more_sessions_verified_description">Mindenhol ellenőrzött munkamenetek vannak ahol ezt a fiókot használva megadtad a jelmondatodat vagy egy másik már hitelesített munkamenetből megerősítetted az identitásodat.
|
||||
\n
|
||||
\nEz azt jelenti, hogy a titkosított üzenetek visszafejtéséhez rendelkezel a kulcsokkal és megerősíted a többiek felé, hogy megbízol a munkamenetben.</string>
|
||||
<plurals name="device_manager_other_sessions_multi_signout_all">
|
||||
<item quantity="one">Kijelentkezés %1$d munkamenetből</item>
|
||||
<item quantity="other">Kijelentkezés %1$d munkamenetből</item>
|
||||
</plurals>
|
||||
<string name="device_manager_other_sessions_multi_signout_selection">Kijelentkezés</string>
|
||||
<string name="attachment_type_selector_text_formatting">Szöveg formázás</string>
|
||||
<string name="error_voice_broadcast_already_in_progress_message">Egy hang közvetítés már folyamatban van. Először fejezze be a jelenlegi közvetítést egy új indításához.</string>
|
||||
<string name="error_voice_broadcast_blocked_by_someone_else_message">Valaki már elindított egy hang közvetítést. Várd meg a közvetítés végét az új indításához.</string>
|
||||
<string name="error_voice_broadcast_permission_denied_message">Nincs jogosultságod hang közvetítést indítani ebben a szobában. Vedd fel a kapcsolatot a szoba adminisztrátorával a szükséges jogosultság megszerzéséhez.</string>
|
||||
<string name="error_voice_broadcast_unauthorized_title">Az új hang közvetítés nem indítható el</string>
|
||||
<string name="a11y_voice_broadcast_fast_forward">30 másodperccel előre</string>
|
||||
<string name="a11y_voice_broadcast_fast_backward">30 másodperccel vissza</string>
|
||||
<string name="voice_broadcast_recording_time_left">visszavan: %1$s</string>
|
||||
<string name="message_reply_to_sender_created_poll">szavazás elkészítve.</string>
|
||||
<string name="message_reply_to_sender_sent_sticker">matrica elküldve.</string>
|
||||
<string name="message_reply_to_sender_sent_video">videót küldött.</string>
|
||||
<string name="message_reply_to_sender_sent_image">kép elküldve.</string>
|
||||
<string name="message_reply_to_sender_sent_voice_message">hang üzenet elküldve.</string>
|
||||
<string name="message_reply_to_sender_sent_audio_file">hangfájl elküldve.</string>
|
||||
<string name="message_reply_to_sender_sent_file">fájl elküldve.</string>
|
||||
<string name="message_reply_to_prefix">Válaszolva erre</string>
|
||||
<string name="device_manager_other_sessions_hide_ip_address">IP címek elrejtése</string>
|
||||
<string name="device_manager_other_sessions_show_ip_address">IP címek megjelenítése</string>
|
||||
<string name="quoting">Idézet</string>
|
||||
<string name="replying_to">Válasz erre: %s</string>
|
||||
<string name="editing">Szerkesztés</string>
|
||||
</resources>
|
@@ -2762,7 +2762,7 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan.</string>
|
||||
<string name="qr_code_login_header_failed_other_description">Permintaan gagal.</string>
|
||||
<string name="labs_enable_voice_broadcast_summary">Memungkinkan untuk merekam dan mengirim siaran suara dalam linimasa ruangan.</string>
|
||||
<string name="labs_enable_voice_broadcast_title">Aktifkan siaran suara (dalam pengembangan aktif)</string>
|
||||
<string name="a11y_voice_broadcast_buffering">Memuat</string>
|
||||
<string name="a11y_voice_broadcast_buffering">Memuat…</string>
|
||||
<string name="a11y_pause_voice_broadcast">Jeda siaran suara</string>
|
||||
<string name="a11y_play_voice_broadcast">Mainkan atau lanjutkan siaran suara</string>
|
||||
<string name="a11y_stop_voice_broadcast_record">Hentikan rekaman siaran suara</string>
|
||||
@@ -2791,4 +2791,27 @@ Di masa mendatang proses verifikasi ini akan dimutakhirkan.</string>
|
||||
<string name="error_voice_broadcast_unauthorized_title">Tidak dapat memulai siaran suara baru</string>
|
||||
<string name="a11y_voice_broadcast_fast_forward">Maju cepat 30 detik</string>
|
||||
<string name="a11y_voice_broadcast_fast_backward">Mundur cepat 30 detik</string>
|
||||
<string name="device_manager_learn_more_sessions_verified_description">Sesi terverifikasi ada di mana pun Anda menggunakan Element setelah memasukkan frasa sandi atau mengonfirmasi identitas Anda dengan sesi terverifikasi lainnya.
|
||||
\n
|
||||
\nIni berarti Anda memiliki semua kunci yang diperlukan untuk membuka kunci pesan terenkripsi dan mengonfirmasi kepada pengguna lain bahwa Anda memercayai sesi ini.</string>
|
||||
<plurals name="device_manager_other_sessions_multi_signout_all">
|
||||
<item quantity="other">Keluarkan %1$d sesi</item>
|
||||
</plurals>
|
||||
<string name="device_manager_other_sessions_multi_signout_selection">Keluarkan</string>
|
||||
<string name="voice_broadcast_recording_time_left">%1$s tersisa</string>
|
||||
<string name="message_reply_to_sender_created_poll">membuat pemungutan suara.</string>
|
||||
<string name="message_reply_to_sender_sent_sticker">mengirim stiker.</string>
|
||||
<string name="message_reply_to_sender_sent_video">mengirim video.</string>
|
||||
<string name="message_reply_to_sender_sent_image">mengirim gambar.</string>
|
||||
<string name="message_reply_to_sender_sent_file">mengirim file.</string>
|
||||
<string name="message_reply_to_sender_sent_audio_file">mengirim file audio.</string>
|
||||
<string name="message_reply_to_sender_sent_voice_message">mengirim pesan suara.</string>
|
||||
<string name="message_reply_to_prefix">Membalas ke</string>
|
||||
<string name="device_manager_other_sessions_hide_ip_address">Sembunyikan alamat IP</string>
|
||||
<string name="quoting">Mengutip</string>
|
||||
<string name="editing">Mengedit</string>
|
||||
<string name="device_manager_other_sessions_show_ip_address">Tampilkan alamat IP</string>
|
||||
<string name="replying_to">Membalas ke %s</string>
|
||||
<string name="settings_enable_direct_share_summary">Tampilkan obrolan terkini dalam menu pembagian sistem</string>
|
||||
<string name="settings_enable_direct_share_title">Aktifkan pembagian langsung</string>
|
||||
</resources>
|
@@ -2805,7 +2805,7 @@
|
||||
<string name="qr_code_login_header_failed_other_device_already_signed_in_description">L\'altro dispositivo ha già fatto l\'accesso.</string>
|
||||
<string name="qr_code_login_header_failed_e2ee_security_issue_description">Si è verificato un problema di sicurezza configurando i messaggi sicuri. Una delle seguenti cose potrebbe essere compromessa: il tuo homeserver; la/e connessione/i internet; il/i dispositivo/i;</string>
|
||||
<string name="qr_code_login_header_failed_other_description">La richiesta è fallita.</string>
|
||||
<string name="a11y_voice_broadcast_buffering">Buffering</string>
|
||||
<string name="a11y_voice_broadcast_buffering">Buffer…</string>
|
||||
<string name="a11y_pause_voice_broadcast">Sospendi trasmissione vocale</string>
|
||||
<string name="a11y_play_voice_broadcast">Avvia o riprendi trasmissione vocale</string>
|
||||
<string name="a11y_stop_voice_broadcast_record">Ferma registrazione trasmissione vocale</string>
|
||||
@@ -2827,4 +2827,36 @@
|
||||
<item quantity="one">%1$d selezionato</item>
|
||||
<item quantity="other">%1$d selezionati</item>
|
||||
</plurals>
|
||||
<string name="rich_text_editor_full_screen_toggle">Attiva/disattiva schermo intero</string>
|
||||
<string name="device_manager_learn_more_sessions_verified_description">Le sessioni verificate sono ovunque usi questo account dopo l\'inserimento della password o la conferma della tua identità con un\'altra sessione verificata.
|
||||
\n
|
||||
\nCiò significa che hai tutte le chiavi necessarie per sbloccare i tuoi messaggi cifrati e per confermare agli altri utenti che ti fidi di questa sessione.</string>
|
||||
<plurals name="device_manager_other_sessions_multi_signout_all">
|
||||
<item quantity="one">Disconnetti da %1$d sessione</item>
|
||||
<item quantity="other">Disconnetti da %1$d sessioni</item>
|
||||
</plurals>
|
||||
<string name="device_manager_other_sessions_multi_signout_selection">Disconnetti</string>
|
||||
<string name="attachment_type_selector_text_formatting">Formattazione testo</string>
|
||||
<string name="error_voice_broadcast_already_in_progress_message">Stai già registrando una trasmissione vocale. Termina quella in corso per iniziarne una nuova.</string>
|
||||
<string name="error_voice_broadcast_blocked_by_someone_else_message">Qualcun altro sta già registrando una trasmissione vocale. Aspetta che finisca prima di iniziarne una nuova.</string>
|
||||
<string name="error_voice_broadcast_permission_denied_message">Non hai l\'autorizzazione necessaria per iniziare una trasmissione vocale in questa stanza. Contatta un amministratore della stanza per aggiornare le tue autorizzazioni.</string>
|
||||
<string name="error_voice_broadcast_unauthorized_title">Impossibile iniziare una nuova trasmissione vocale</string>
|
||||
<string name="a11y_voice_broadcast_fast_forward">Manda avanti di 30 secondi</string>
|
||||
<string name="a11y_voice_broadcast_fast_backward">Manda indietro di 30 secondi</string>
|
||||
<string name="voice_broadcast_recording_time_left">%1$s rimasti</string>
|
||||
<string name="message_reply_to_sender_created_poll">creato un sondaggio.</string>
|
||||
<string name="message_reply_to_sender_sent_sticker">inviato un adesivo.</string>
|
||||
<string name="message_reply_to_sender_sent_video">inviato un video.</string>
|
||||
<string name="message_reply_to_sender_sent_image">inviata un\'immagine.</string>
|
||||
<string name="message_reply_to_sender_sent_voice_message">inviato un messaggio vocale.</string>
|
||||
<string name="message_reply_to_sender_sent_audio_file">inviato un file audio.</string>
|
||||
<string name="message_reply_to_sender_sent_file">inviato un file.</string>
|
||||
<string name="message_reply_to_prefix">In risposta a</string>
|
||||
<string name="device_manager_other_sessions_hide_ip_address">Nascondi indirizzo IP</string>
|
||||
<string name="device_manager_other_sessions_show_ip_address">Mostra indirizzo IP</string>
|
||||
<string name="quoting">Citazione</string>
|
||||
<string name="replying_to">Risposta a %s</string>
|
||||
<string name="editing">Modifica</string>
|
||||
<string name="settings_enable_direct_share_summary">Mostra chat recenti nel menu di condivisione di sistema</string>
|
||||
<string name="settings_enable_direct_share_title">Attiva condivisione diretta</string>
|
||||
</resources>
|
@@ -2715,7 +2715,7 @@
|
||||
<string name="home_layout_preferences">Preferencje interfejsu</string>
|
||||
<string name="explore_rooms">Przeglądaj pokoje</string>
|
||||
<string name="create_room">Utwórz pokój</string>
|
||||
<string name="start_chat">Zacznij rozmawiać</string>
|
||||
<string name="start_chat">Rozpocznij czat</string>
|
||||
<string name="all_chats">Wszystkie rozmowy</string>
|
||||
<string name="device_manager_other_sessions_description_unverified">Nie zweryfikowano · Ostatnia aktywność %1$s</string>
|
||||
<string name="device_manager_other_sessions_description_verified">Zweryfikowano · Ostatnia aktywność %1$s</string>
|
||||
@@ -2743,4 +2743,4 @@
|
||||
<string name="home_empty_space_no_rooms_title">%s
|
||||
\nwygląda nieco pusto.</string>
|
||||
<string name="space_list_empty_title">Brak przestrzeni.</string>
|
||||
</resources>
|
||||
</resources>
|
@@ -2723,7 +2723,7 @@
|
||||
<string name="device_manager_learn_more_sessions_unverified_title">Sessões não-verificadas</string>
|
||||
<string name="device_manager_learn_more_sessions_inactive">Sessões inativas são sessões que você não tem usado em algum tempo, mas elas continuam a receber chaves de encriptação.
|
||||
\n
|
||||
\nRemover sessões inativas melhora segurança e performance, e torna-o mais fácil para você identificar se uma nova sessão é suspeita.</string>
|
||||
\nRemover sessões inativas melhora segurança e performance, e torna mais fácil para você identificar se uma nova sessão é suspeita.</string>
|
||||
<string name="device_manager_learn_more_sessions_inactive_title">Sessões inativas</string>
|
||||
<string name="device_manager_session_rename_warning">Por favor esteja ciente que nomes de sessões também são visíveis a pessoas com quem você se comunica.</string>
|
||||
<string name="device_manager_session_rename_description">Nomes de sessões personalizadas podem ajudar você a reconhecer seus dispositivos mais facilmente.</string>
|
||||
@@ -2844,4 +2844,26 @@
|
||||
<string name="error_voice_broadcast_unauthorized_title">Não dá pra começar um novo broadcast de voz</string>
|
||||
<string name="a11y_voice_broadcast_fast_forward">Avançar rápido 30 segundos</string>
|
||||
<string name="a11y_voice_broadcast_fast_backward">Retroceder 30 segundos</string>
|
||||
<string name="device_manager_learn_more_sessions_verified_description">Sessões verificadas são onde quer que você esteja usando esta conta depois de entrar sua frasepasse ou confirmar sua identidade com uma outra sessão verificada.
|
||||
\n
|
||||
\nIsto significa que você tem todas as chaves necessárias para destrancar suas mensagens encriptadas e confirmar a outras(os) usuárias(os) que você confia nesta sessão.</string>
|
||||
<plurals name="device_manager_other_sessions_multi_signout_all">
|
||||
<item quantity="one">Fazer signout de %1$d sessão</item>
|
||||
<item quantity="other">Fazer signout de %1$d sessões</item>
|
||||
</plurals>
|
||||
<string name="device_manager_other_sessions_multi_signout_selection">Fazer signout</string>
|
||||
<string name="voice_broadcast_recording_time_left">%1$s restando</string>
|
||||
<string name="message_reply_to_sender_created_poll">criou uma sondagem.</string>
|
||||
<string name="message_reply_to_sender_sent_sticker">enviou um sticker.</string>
|
||||
<string name="message_reply_to_sender_sent_video">enviou um vídeo.</string>
|
||||
<string name="message_reply_to_sender_sent_image">enviou uma imagem.</string>
|
||||
<string name="message_reply_to_sender_sent_voice_message">enviou uma mensagem de voz.</string>
|
||||
<string name="message_reply_to_sender_sent_audio_file">enviou um arquivo de áudio.</string>
|
||||
<string name="message_reply_to_sender_sent_file">enviou um arquivo.</string>
|
||||
<string name="message_reply_to_prefix">Em resposta a</string>
|
||||
<string name="device_manager_other_sessions_hide_ip_address">Esconder endereço de IP</string>
|
||||
<string name="device_manager_other_sessions_show_ip_address">Mostrar endereço de IP</string>
|
||||
<string name="quoting">Citando</string>
|
||||
<string name="replying_to">Respondendo a %s</string>
|
||||
<string name="editing">Editando</string>
|
||||
</resources>
|
@@ -930,7 +930,7 @@
|
||||
<string name="settings_security_and_privacy">Безопасность</string>
|
||||
<string name="settings_push_rules">Правила push-уведомлений</string>
|
||||
<string name="push_gateway_item_app_id">ID приложения:</string>
|
||||
<string name="push_gateway_item_push_key">push_key:</string>
|
||||
<string name="push_gateway_item_push_key">Ключ Push:</string>
|
||||
<string name="push_gateway_item_app_display_name">Отображаемое название приложения:</string>
|
||||
<string name="push_gateway_item_device_name">Отображаемое название сессии:</string>
|
||||
<string name="push_gateway_item_url">Url:</string>
|
||||
@@ -1000,10 +1000,10 @@
|
||||
<string name="settings_discovery_bad_identity_server">Не удалось подключиться к серверу обнаружения</string>
|
||||
<string name="settings_discovery_please_enter_server">Пожалуйста, введите URL сервера обнаружения</string>
|
||||
<string name="settings_discovery_no_terms_title">Сервер обнаружения не имеет условий использования</string>
|
||||
<string name="settings_discovery_no_mails">Параметры обнаружения появятся после добавления электронной почты.</string>
|
||||
<string name="settings_discovery_no_mails">Параметры обнаружения появятся после добавления адреса электронной почты.</string>
|
||||
<string name="settings_discovery_no_msisdn">Параметры поиска появятся после добавления номера телефона.</string>
|
||||
<string name="settings_discovery_disconnect_identity_server_info">Отключение от сервера обнаружения будет означать, что другие пользователи не смогут обнаружить вас, и вы не сможете приглашать других по электронной почте или по телефону.</string>
|
||||
<string name="settings_discovery_confirm_mail">Мы отправили вам электронное письмо с подтверждением на %s, проверьте вашу электронную почту и нажмите на ссылку для подтверждения</string>
|
||||
<string name="settings_discovery_confirm_mail">Мы отправили вам электронное письмо на %s, проверьте вашу электронную почту и нажмите на ссылку для подтверждения</string>
|
||||
<string name="settings_discovery_no_terms">Выбранный сервер обнаружения не имеет условий использования. Продолжайте, только если вы доверяете его владельцу</string>
|
||||
<string name="settings_text_message_sent">Текстовое сообщение отправлено %s. Введите код проверки, который он содержит.</string>
|
||||
<string name="settings_discovery_disconnect_with_bound_pid">В настоящее время вы делитесь адресами электронной почты или телефонными номерами на сервере обнаружения %1$s. Вам нужно повторно подключиться к %2$s, чтобы прекратить делиться ими.</string>
|
||||
@@ -1102,7 +1102,7 @@
|
||||
<string name="login_reset_password_warning_title">Предупреждение!</string>
|
||||
<string name="login_reset_password_warning_content">Смена пароля приведёт к сбросу всех сквозных ключей шифрования во всех ваших сессиях, что сделает зашифрованную историю разговоров нечитаемой. Настройте резервное копирование ключей или экспортируйте ключи от комнаты из другой сессии, прежде чем сбрасывать пароль.</string>
|
||||
<string name="login_reset_password_warning_submit">Продолжить</string>
|
||||
<string name="login_reset_password_error_not_found">Данный электронный ящик не связан ни с одним аккаунтом</string>
|
||||
<string name="login_reset_password_error_not_found">Данный адрес электронной почты не связан ни с одним аккаунтом</string>
|
||||
<string name="login_reset_password_mail_confirmation_title">Проверьте свою почту</string>
|
||||
<string name="login_reset_password_mail_confirmation_notice">Письмо с подтверждением было отправлено на %1$s.</string>
|
||||
<string name="login_reset_password_mail_confirmation_notice_2">Нажмите на ссылку, чтобы подтвердить свой новый пароль. Как только вы перейдете по ссылке нажмите ниже.</string>
|
||||
@@ -1241,7 +1241,7 @@
|
||||
<string name="notification_ticker_text_group">%1$s: %2$s %3$s</string>
|
||||
<string name="settings_show_redacted">Удалённые сообщения</string>
|
||||
<string name="settings_show_redacted_summary">Показывать заглушку на месте удалённых сообщений</string>
|
||||
<string name="settings_discovery_confirm_mail_not_clicked">Мы отправили письмо для подтверждения на %s, проверьте почту и нажмите на ссылку для подтверждения</string>
|
||||
<string name="settings_discovery_confirm_mail_not_clicked">Мы отправили письмо на %s, пожалуйста проверьте почту и нажмите на ссылку для подтверждения</string>
|
||||
<string name="settings_text_message_sent_wrong_code">Код подтверждения неверный.</string>
|
||||
<string name="error_terms_not_accepted">Попробуйте снова после принятия условий обслуживания на вашем домашнем сервере.</string>
|
||||
<string name="error_network_timeout">Похоже, сервер долгое время не отвечает, что может быть вызвано плохим соединением или ошибкой на сервере. Попробуйте снова через некоторое время.</string>
|
||||
@@ -1351,7 +1351,7 @@
|
||||
<string name="login_server_url_form_common_notice">Введите адрес сервера, который вы хотите использовать</string>
|
||||
<string name="login_reset_password_notice">На ваш почтовый ящик будет отправлено письмо для подтверждения установки нового пароля.</string>
|
||||
<string name="login_reset_password_mail_confirmation_submit">Я подтвердил свою электронную почту</string>
|
||||
<string name="login_set_email_notice">Установите адрес электронной почты для восстановления вашей учетной записи. Позже вы можете дополнительно разрешить людям, которых вы знаете, обнаружить вас по электронной почте.</string>
|
||||
<string name="login_set_email_notice">Укажите адрес электронной почты для восстановления вашей учетной записи. Потом вы сможете, при желании, разрешить людям, которых вы знаете, обнаружить вас по адресу электронной почты.</string>
|
||||
<string name="login_validation_code_is_not_correct">Введенный код неверен. Пожалуйста, проверьте.</string>
|
||||
<string name="login_connect_using_matrix_id_submit">Войти с Matrix ID</string>
|
||||
<string name="login_signin_matrix_id_title">Войти с Matrix ID</string>
|
||||
@@ -1482,7 +1482,7 @@
|
||||
<string name="not_trusted">Незаверенная</string>
|
||||
<string name="verification_profile_device_verified_because">Эта сессия является доверенной для безопасного обмена сообщениями, так как %1$s (%2$s) проверил(а) его:</string>
|
||||
<string name="verification_profile_device_new_signing">%1$s (%2$s) вошел(ла), используя новую сессию:</string>
|
||||
<string name="verification_profile_device_untrust_info">Пока этот пользователь не доверяет этой сессии, сообщения, отправленные в обе стороны, помечаются предупреждениями. Кроме того, вы можете подтвердить сессию вручную.</string>
|
||||
<string name="verification_profile_device_untrust_info">Пока этот пользователь не доверяет этой сессии, сообщения, отправленные в обе стороны, помечаются предупреждениями. Вы также можете подтвердить эту сессию вручную.</string>
|
||||
<string name="initialize_cross_signing">Начать перекрестную подпись</string>
|
||||
<string name="reset_cross_signing">Сбросить ключи</string>
|
||||
<string name="qr_code_scanned_by_other_notice">Почти готово! Показывает ли %s галочку\?</string>
|
||||
@@ -1606,7 +1606,7 @@
|
||||
<string name="identity_server_error_outdated_home_server">Эта операция невозможна. Домашний сервер устарел.</string>
|
||||
<string name="identity_server_error_no_identity_server_configured">Пожалуйста, настройте сначала сервер идентификации.</string>
|
||||
<string name="identity_server_error_terms_not_signed">Пожалуйста, примите сначала условия сервера идентификации в настройках.</string>
|
||||
<string name="identity_server_error_bulk_sha256_not_supported">Для вашей приватности, ${app_name} поддерживает отправку адреса электронной почты и номера телефона только в хэшированном виде.</string>
|
||||
<string name="identity_server_error_bulk_sha256_not_supported">Для вашей приватности, ${app_name} поддерживает отправку адреса электронной почты и номеров телефонов только в хэшированном виде.</string>
|
||||
<string name="identity_server_error_binding_error">Привязка не удалась.</string>
|
||||
<string name="identity_server_error_no_current_binding_error">Текущая взаимосвязь с этим идентификатором отсутствует.</string>
|
||||
<string name="identity_server_set_default_notice">Ваш домашний сервер (%1$s) предлагает использовать %2$s для вашего сервера обнаружения</string>
|
||||
@@ -1793,7 +1793,7 @@
|
||||
<string name="attachment_type_dialog_title">Добавить изображение из</string>
|
||||
<string name="create_room_topic_hint">Тема</string>
|
||||
<string name="create_room_name_section">Название комнаты</string>
|
||||
<string name="settings_discovery_consent_notice_on">Вы дали свое согласие на отправку электронных писем и телефонных номеров на этот сервер обнаружения для обнаружения других пользователей из ваших контактов.</string>
|
||||
<string name="settings_discovery_consent_notice_on">Вы дали свое согласие на отправку адресов электронных почт и телефонных номеров на этот сервер идентификации для обнаружения других пользователей из ваших контактов.</string>
|
||||
<string name="add_by_qr_code">Добавить по QR-коду</string>
|
||||
<string name="permissions_denied_add_contact">Разрешить доступ к вашим контактам.</string>
|
||||
<string name="permissions_denied_qr_code">Чтобы отсканировать QR-код, вам нужно разрешить доступ к камере.</string>
|
||||
@@ -2396,7 +2396,7 @@
|
||||
<string name="attachment_type_location">Местоположение</string>
|
||||
<string name="identity_server_consent_dialog_content_question">Вы согласны отправить эту информацию\?</string>
|
||||
<string name="identity_server_consent_dialog_content_3">Чтобы обнаружить существующие контакты, необходимо отправить контактную информацию (электронную почту и номера телефонов) на сервер обнаружения. Мы хешируем ваши данные перед отправкой для обеспечения конфиденциальности.</string>
|
||||
<string name="identity_server_consent_dialog_title_2">Отправить электронные адреса и номера телефонов %s</string>
|
||||
<string name="identity_server_consent_dialog_title_2">Отправить адреса электронных почт и номера телефонов %s</string>
|
||||
<string name="settings_discovery_consent_notice_off_2">Ваши контакты приватны. Чтобы обнаружить пользователей из ваших контактов, нам необходимо ваше разрешение на отправку контактной информации на ваш сервер обнаружения.</string>
|
||||
<string name="preference_system_settings">Системные настройки</string>
|
||||
<string name="preference_versions">Версии</string>
|
||||
@@ -2805,4 +2805,162 @@
|
||||
<string name="attachment_type_selector_location">Местоположение</string>
|
||||
<string name="attachment_type_selector_camera">Камера</string>
|
||||
<string name="attachment_type_selector_contact">Контакт</string>
|
||||
<string name="settings_troubleshoot_test_system_settings_permission_failed">${app_name} нуждается в разрешении для отображения оповещений.
|
||||
\nПожалуйста, дайте разрешение.</string>
|
||||
<plurals name="search_space_multiple_parents">
|
||||
<item quantity="one">%1$s и %2$d другой</item>
|
||||
<item quantity="few">%1$s и %2$d другие</item>
|
||||
<item quantity="many">%1$s и %2$d других</item>
|
||||
<item quantity="other">%1$s и %2$d других</item>
|
||||
</plurals>
|
||||
<string name="permissions_rationale_msg_notification">${app_name} нуждается в резрешении для отображения оповещений. Оповещения могут показывать ваши сообщения, приглашения и тому подобное.
|
||||
\n
|
||||
\nПожалуйста разрешите доступ при следующем всплывающем сообщении, чтобы иметь возможность видеть оповещения.</string>
|
||||
<string name="invites_empty_message">Здесь будут появляться новые запросы и приглашения.</string>
|
||||
<string name="invites_title">Приглашения</string>
|
||||
<string name="labs_enable_rich_text_editor_summary">Попробуйте расширенный текстовый редактор (режим набора обычного текста скоро появится)</string>
|
||||
<string name="labs_enable_deferred_dm_summary">Создавать личные сообщения только при отправке первого сообщения</string>
|
||||
<string name="labs_enable_deferred_dm_title">Включить отложенные личные сообщения</string>
|
||||
<string name="action_deselect_all">Отменить выбор всего</string>
|
||||
<string name="action_select_all">Выбрать всё</string>
|
||||
<string name="a11y_collapse_space_children">Свернуть дочерние элементы %s</string>
|
||||
<string name="a11y_expand_space_children">Развернуть дочерние элементы %s</string>
|
||||
<plurals name="x_selected">
|
||||
<item quantity="one">Выбрано %1$d</item>
|
||||
<item quantity="few">Выбрано %1$d</item>
|
||||
<item quantity="many">Выбрано %1$d</item>
|
||||
<item quantity="other">Выбрано %1$d</item>
|
||||
</plurals>
|
||||
<string name="rich_text_editor_full_screen_toggle">Войти в полноэкранный режим</string>
|
||||
<string name="rich_text_editor_format_underline">Применить форматирование подчёркиванием</string>
|
||||
<string name="rich_text_editor_format_strikethrough">Применить форматирование перечёркиванием</string>
|
||||
<string name="rich_text_editor_format_italic">Применить форматирование курсивом</string>
|
||||
<string name="rich_text_editor_format_bold">Применить форматирование жирным</string>
|
||||
<string name="qr_code_login_confirm_security_code_description">Пожалуйста удостоверьтесь в том, что вы знаете откуда этот код. При соединении устройств, вы даёте кому-то полный доступ к вашей учётной записи.</string>
|
||||
<string name="qr_code_login_confirm_security_code">Подтвердить</string>
|
||||
<string name="qr_code_login_try_again">Попробовать снова</string>
|
||||
<string name="qr_code_login_status_no_match">Не сходится\?</string>
|
||||
<string name="qr_code_login_signing_in">Вход</string>
|
||||
<string name="qr_code_login_connecting_to_device">Соединение с устройством</string>
|
||||
<string name="qr_code_login_scan_qr_code_button">Сканировать QR-код</string>
|
||||
<string name="qr_code_login_signing_in_a_mobile_device">Входите с мобильного устройства\?</string>
|
||||
<string name="qr_code_login_show_qr_code_button">Показать QR-код на этом устройстве</string>
|
||||
<string name="qr_code_login_link_a_device_show_qr_code_instruction_2">Выберите «Сканировать QR-код»</string>
|
||||
<string name="qr_code_login_link_a_device_show_qr_code_instruction_1">Начните с экрана входа</string>
|
||||
<string name="qr_code_login_link_a_device_scan_qr_code_instruction_2">Выберите «Войти при помощи QR-кода»</string>
|
||||
<string name="qr_code_login_link_a_device_scan_qr_code_instruction_1">Начните с экрана входа</string>
|
||||
<string name="qr_code_login_new_device_instruction_3">Выберите «Показать QR-код»</string>
|
||||
<string name="qr_code_login_new_device_instruction_2">Зайдите в Настройки -> Безопасность и Приватность</string>
|
||||
<string name="qr_code_login_new_device_instruction_1">Откройте приложение с другого устройства</string>
|
||||
<string name="qr_code_login_header_failed_homeserver_is_not_supported_description">Домашний сервер не поддерживает вход при помощи QR-кода.</string>
|
||||
<string name="qr_code_login_header_failed_user_cancelled_description">Вход был отменён с другого устройства.</string>
|
||||
<string name="qr_code_login_header_failed_invalid_qr_code_description">Этот QR-код не работает.</string>
|
||||
<string name="qr_code_login_header_failed_other_device_not_signed_in_description">Другое устройство должно войти в учётную запись.</string>
|
||||
<string name="qr_code_login_header_failed_other_device_already_signed_in_description">Другое устройство уже выполнило вход.</string>
|
||||
<string name="qr_code_login_header_failed_e2ee_security_issue_description">Во время установки безопасной переписки возникла проблема с безопасностью. Одно из следующего является скомпроментированным: Ваш домашний сервер; Ваше интернет-соединение; Ваше устройство;</string>
|
||||
<string name="qr_code_login_header_failed_other_description">Запрос не выполнен.</string>
|
||||
<string name="qr_code_login_header_failed_denied_description">Запрос был отклонён на другом устройстве.</string>
|
||||
<string name="qr_code_login_header_failed_timeout_description">Соединение не было выполнено за нужное время.</string>
|
||||
<string name="qr_code_login_header_failed_device_is_not_supported_description">Соединение с этим устройством не поддерживается.</string>
|
||||
<string name="qr_code_login_header_failed_title">Неудачное соединение</string>
|
||||
<string name="qr_code_login_header_connected_description">Проверьте устройство, с которого вы вошли в учётную запись. На его экране должен появиться код снизу. Подтвердите, что код снизу такой же, как и на том устройстве:</string>
|
||||
<string name="qr_code_login_header_connected_title">Безопасное соединение установлено</string>
|
||||
<string name="qr_code_login_header_show_qr_code_link_a_device_description">Сканируйте QR-код снизу при помощи устройства, с которого вы вышли с учётной записи.</string>
|
||||
<string name="qr_code_login_header_show_qr_code_new_device_description">Используйте устройство, с которого вы вошли в учётную запись, чтобы сканировать QR-код снизу:</string>
|
||||
<string name="qr_code_login_header_show_qr_code_title">Войти при помощи QR-кода</string>
|
||||
<string name="qr_code_login_header_scan_qr_code_description">Используйте камеру на этом устройстве, чтобы сканировать QR-код, отображённый на вашем другом устройстве:</string>
|
||||
<string name="qr_code_login_header_scan_qr_code_title">Сканировать QR-код</string>
|
||||
<string name="three">3</string>
|
||||
<string name="two">2</string>
|
||||
<string name="one">1</string>
|
||||
<string name="onboarding_new_app_layout_feedback_message">Нажмите слева сверху, чтобы увидеть опцию отзыва.</string>
|
||||
<string name="onboarding_new_app_layout_welcome_message">Чтобы упростить ${app_name}, вкладки теперь опциональные. Управляйте ими при помощи меню справа сверху.</string>
|
||||
<string name="home_empty_no_rooms_message">Универсальное безопасное приложение для переписок с командами, друзьями и организациями. Создайте переписку или присоеденитесь к уже существующей, чтобы начать.</string>
|
||||
<string name="home_empty_space_no_rooms_message">Пространства — новый способ групировать комнаты и людей. Добавьте существующую комнату или создайте новую, используя кнопку слева снизу.</string>
|
||||
<string name="labs_enable_voice_broadcast_summary">Возможность записывать и отправлять голосовые трансляции в ленту комнаты.</string>
|
||||
<string name="labs_enable_session_manager_summary">Получите лучший надзор и контроль над всеми вашими сессиями.</string>
|
||||
<string name="device_manager_learn_more_sessions_verified_description">Подтверждённые сессии есть везде, где вы используете эту учётную запись, после введения вашего пароля или подтверждения вашей личности при помощи другой подтверждённой сессии.
|
||||
\n
|
||||
\nЭто значит, что у вас есть все нужные ключи, чтобы разблокировать зашифрованные сообщения и даёте другим пользователям знать, что вы доверяете этой сессии.</string>
|
||||
<string name="device_manager_learn_more_sessions_verified" tools:ignore="UnusedResources">Подтверждённые сессии вошли при помощи ваших учётных данных и были подтверждены, либо при помощи вашего безопасного пароля, либо при помощи подтверждения с другого устройства.
|
||||
\n
|
||||
\nЭто значит, что на них находятся ключи шифрования для ваших предыдущих сообщений и дают другим пользователям знать, что эти сессии действительно принадлежат вам.</string>
|
||||
<string name="device_manager_learn_more_sessions_unverified">Неподтверждённые сессии — это сессии, которые вошли при помощи ваших учётных данных, но не были подтверждены.
|
||||
\n
|
||||
\nВы должны удостовериться, что узнаёте эти сессии, так как они могут быть несанкционированным входом в вашу учётную запись.</string>
|
||||
<string name="device_manager_sessions_sign_in_with_qr_code_description">Вы можете использовать это устройство для входа с телефона или веб-устройства при помощи QR-кода. Для этого есть два способа:</string>
|
||||
<string name="device_manager_sessions_sign_in_with_qr_code_title">Войти при помощи QR-кода</string>
|
||||
<string name="device_manager_session_rename_description">Собственные названия сессий помогут вам легче распознать свои девайсы.</string>
|
||||
<plurals name="device_manager_other_sessions_multi_signout_all">
|
||||
<item quantity="one">Выйти из %1$d сессии</item>
|
||||
<item quantity="few">Выйти из %1$d сессий</item>
|
||||
<item quantity="many">Выйти из %1$d сессий</item>
|
||||
<item quantity="other">Выйти из %1$d сессий</item>
|
||||
</plurals>
|
||||
<string name="device_manager_other_sessions_multi_signout_selection">Выйти</string>
|
||||
<string name="device_manager_other_sessions_select">Выбрать сессии</string>
|
||||
<string name="a11y_device_manager_filter">Фильтр</string>
|
||||
<plurals name="device_manager_other_sessions_description_inactive">
|
||||
<item quantity="one">Неактивен %1$d+ день (%2$s)</item>
|
||||
<item quantity="few">Неактивен %1$d+ дней (%2$s)</item>
|
||||
<item quantity="many">Неактивен %1$d+ дня (%2$s)</item>
|
||||
<item quantity="other">Неактивен %1$d+ дня (%2$s)</item>
|
||||
</plurals>
|
||||
<string name="device_manager_verification_status_detail_other_session_unknown">Подтвердите текущую сессию, чтобы посмотреть её состояние подтверждения.</string>
|
||||
<string name="device_manager_verification_status_unknown">Неизвестное состояние проверки</string>
|
||||
<string name="labs_enable_element_call_permission_shortcuts_summary">Автоматически принимать виджеты Element Call и давать доступ к микрофону/камере</string>
|
||||
<string name="labs_enable_element_call_permission_shortcuts">Включить ярлыки разрешений Element Call</string>
|
||||
<string name="attachment_type_selector_text_formatting">Форматирование текста</string>
|
||||
<string name="tooltip_attachment_voice_broadcast">Начать новую голосовую трансляцию</string>
|
||||
<string name="live_location_not_enough_permission_dialog_description">Вам необходимо иметь нужные разрешения, чтобы делиться местоположением в реальном времени в этой комнате.</string>
|
||||
<string name="live_location_not_enough_permission_dialog_title">У вас нет разрешения делиться местоположением в реальном времени</string>
|
||||
<string name="labs_enable_msc3061_share_history_desc">При приглашении кого-то в зашифрованную комнату, которая делится историей, зашифрованная история будет видимой.</string>
|
||||
<string name="error_voice_broadcast_already_in_progress_message">Вы уже записываете голосовую трансляцию. Пожалуйста закончите текущую голосовую трансляцию, чтобы начать новую.</string>
|
||||
<string name="error_voice_broadcast_blocked_by_someone_else_message">Кто-то другой уже записывает голосовую трансляцию. Подождите пока их голосовая трансляция закончится, чтобы начать новую.</string>
|
||||
<string name="error_voice_broadcast_permission_denied_message">У вас нет необходимых разрешений для начала голосовой трансляции в этой комнате. Свяжитесь с администратором комнаты, чтобы получить разрешения.</string>
|
||||
<string name="error_voice_broadcast_unauthorized_title">Не получилось начать новую голосовую трансляцию</string>
|
||||
<string name="a11y_voice_broadcast_fast_forward">Перемотать вперёд на 30 секунд</string>
|
||||
<string name="a11y_voice_broadcast_fast_backward">Перемотать назад на 30 секунд</string>
|
||||
<string name="a11y_voice_broadcast_buffering">Буферизация</string>
|
||||
<string name="a11y_pause_voice_broadcast">Приостановить голосовую трансляцию</string>
|
||||
<string name="a11y_play_voice_broadcast">Проиграть или продолжить голосовую трансляцию</string>
|
||||
<string name="a11y_stop_voice_broadcast_record">Остановить запись голосовой трансляции</string>
|
||||
<string name="a11y_pause_voice_broadcast_record">Приостановить запись голосовой трансляции</string>
|
||||
<string name="a11y_resume_voice_broadcast_record">Продолжить запись голосовой трансляции</string>
|
||||
<string name="voice_broadcast_live">Прямая трансляция</string>
|
||||
<string name="key_authenticity_not_guaranteed">Подлинность этого зашифрованного сообщения не может быть гарантирована на этом устройстве.</string>
|
||||
<string name="login_scan_qr_code">Сканировать QR-код</string>
|
||||
<string name="send_your_first_msg_to_invite">Отправьте ваше первое сообщение, чтобы пригласить %s в переписку</string>
|
||||
<string name="verify_invalid_qr_notice">Этот QR-код выглядит неправильно. Пожалуйста, попробуйте подтвердить другим способом.</string>
|
||||
<string name="crosssigning_cannot_verify_this_session_desc">Вы не сможете получить доступ к истории зашифрованных сообщений. Сбросьте вашу защищённую резевную копию и ключи подтверждения, чтобы начать заново.</string>
|
||||
<string name="ftue_auth_password_reset_confirmation">Сброс пароля</string>
|
||||
<string name="ftue_auth_new_password_title">Выберите новый пароль</string>
|
||||
<string name="ftue_auth_reset_password_email_subtitle">%s пришлёт вам ссылку для подтверждения</string>
|
||||
<string name="ftue_auth_phone_subtitle">%s нуждается в подтверждении вашей учётной записи</string>
|
||||
<string name="ftue_auth_email_subtitle">%s нуждается в подтверждении вашей учётной записи</string>
|
||||
<string name="ftue_auth_choose_server_ems_cta">Связаться</string>
|
||||
<string name="ftue_auth_choose_server_ems_subtitle">Element Matrix Services (EMS) — надёжная хостинговая служба для быстрой и безопасной связи в режиме реального времени. Узнайте больше на <a href=\"${ftue_ems_url}\">element.io/ems</a></string>
|
||||
<string name="a11y_open_spaces">Открыть список пространств</string>
|
||||
<string name="push_gateway_item_enabled">Включено:</string>
|
||||
<string name="error_check_network" tools:ignore="UnusedResources">Что-то пошло не так. Пожалуйста, проверьте соединение и попробуйте ещё раз.</string>
|
||||
<string name="command_description_devtools">Открыть экран инструментов для разработчика</string>
|
||||
<string name="timeline_error_room_not_found">Простите, эта комната не была найдена.
|
||||
\nПожалуйста, попробуйте снова позже.%s</string>
|
||||
<string name="some_devices_will_not_be_able_to_decrypt">⚠ В этой комнате есть неподтверждённые устройства, они не смогут расшифровывать сообщения, отправленные вами.</string>
|
||||
<string name="grant_permission">Дать разрешение</string>
|
||||
<string name="ftue_auth_create_account_username_entry_footer">Другие пользователи могут найти вас по %s</string>
|
||||
<string name="voice_broadcast_recording_time_left">Осталось %1$s</string>
|
||||
<string name="message_reply_to_sender_created_poll">создал опрос.</string>
|
||||
<string name="message_reply_to_sender_sent_sticker">отправил наклейку.</string>
|
||||
<string name="message_reply_to_sender_sent_video">отправил видео.</string>
|
||||
<string name="message_reply_to_sender_sent_image">отправил изображение.</string>
|
||||
<string name="message_reply_to_sender_sent_voice_message">отправил голосовое сообщение.</string>
|
||||
<string name="message_reply_to_sender_sent_audio_file">отправил аудиофайл.</string>
|
||||
<string name="message_reply_to_sender_sent_file">отправил файл.</string>
|
||||
<string name="message_reply_to_prefix">В ответ на</string>
|
||||
<string name="device_manager_other_sessions_hide_ip_address">Скрыть IP-адрес</string>
|
||||
<string name="device_manager_other_sessions_show_ip_address">Показать IP-адрес</string>
|
||||
<string name="quoting">Цитируя</string>
|
||||
<string name="replying_to">В ответ на %s</string>
|
||||
<string name="editing">Редактирование</string>
|
||||
</resources>
|
@@ -2765,7 +2765,7 @@
|
||||
<string name="labs_enable_new_app_layout_title">Zapnúť nové usporiadanie</string>
|
||||
<string name="device_manager_learn_more_session_rename">Ostatní používatelia v priamych správach a miestnostiach, do ktorých sa pripojíte, si môžu pozrieť úplný zoznam vašich relácií.
|
||||
\n
|
||||
\nTo im poskytuje istotu, že sa s vami naozaj rozprávajú, ale zároveň to znamená, že vidia názov relácie, ktorý sem zadáte.</string>
|
||||
\nTo im poskytuje istotu, že sa komunikujú naozaj s vami, ale zároveň to znamená, že vidia názov relácie, ktorý sem zadáte.</string>
|
||||
<string name="device_manager_learn_more_session_rename_title">Premenovanie relácií</string>
|
||||
<string name="device_manager_learn_more_sessions_verified">Overené relácie, do ktorých ste sa prihlásili pomocou svojich prihlasovacích údajov a ktoré boli následne overené buď pomocou vašej bezpečnostnej prístupovej frázy, alebo krížovým overením.
|
||||
\n
|
||||
@@ -2868,7 +2868,7 @@
|
||||
<string name="qr_code_login_header_failed_other_description">Žiadosť zlyhala.</string>
|
||||
<string name="labs_enable_voice_broadcast_summary">Možnosť nahrávania a odosielania hlasového vysielania v časovej osi miestnosti.</string>
|
||||
<string name="labs_enable_voice_broadcast_title">Zapnúť hlasové vysielanie (v štádiu aktívneho vývoja)</string>
|
||||
<string name="a11y_voice_broadcast_buffering">Načítavanie do vyrovnávacej pamäte</string>
|
||||
<string name="a11y_voice_broadcast_buffering">Načítavanie do vyrovnávacej pamäte…</string>
|
||||
<string name="a11y_pause_voice_broadcast">Pozastaviť hlasové vysielanie</string>
|
||||
<string name="a11y_play_voice_broadcast">Prehrať alebo pokračovať v nahrávaní hlasového vysielania</string>
|
||||
<string name="a11y_stop_voice_broadcast_record">Zastaviť nahrávanie hlasového vysielania</string>
|
||||
@@ -2899,4 +2899,29 @@
|
||||
<string name="error_voice_broadcast_unauthorized_title">Nie je možné spustiť nové hlasové vysielanie</string>
|
||||
<string name="a11y_voice_broadcast_fast_backward">Rýchle posunutie dozadu o 30 sekúnd</string>
|
||||
<string name="a11y_voice_broadcast_fast_forward">Rýchle posunutie dopredu o 30 sekúnd</string>
|
||||
<string name="device_manager_learn_more_sessions_verified_description">Overené relácie sú všade tam, kde používate toto konto po zadaní svojho prístupového hesla alebo po potvrdení svojej totožnosti inou overenou reláciou.
|
||||
\n
|
||||
\nTo znamená, že máte všetky kľúče potrebné na odomknutie zašifrovaných správ a potvrdenie pre ostatných používateľov, že tejto relácii dôverujete.</string>
|
||||
<plurals name="device_manager_other_sessions_multi_signout_all">
|
||||
<item quantity="one">Odhlásiť sa z %1$d relácie</item>
|
||||
<item quantity="few">Odhlásiť sa z %1$d relácií</item>
|
||||
<item quantity="other">Odhlásiť sa z %1$d relácií</item>
|
||||
</plurals>
|
||||
<string name="device_manager_other_sessions_multi_signout_selection">Odhlásiť sa</string>
|
||||
<string name="voice_broadcast_recording_time_left">Ostáva %1$s</string>
|
||||
<string name="quoting">Cituje</string>
|
||||
<string name="message_reply_to_sender_created_poll">vytvoril/a anketu.</string>
|
||||
<string name="message_reply_to_sender_sent_sticker">poslal/a nálepku.</string>
|
||||
<string name="message_reply_to_sender_sent_video">poslal/a video.</string>
|
||||
<string name="message_reply_to_sender_sent_image">poslal/a obrázok.</string>
|
||||
<string name="message_reply_to_sender_sent_voice_message">poslal/a zvukovú správu.</string>
|
||||
<string name="message_reply_to_sender_sent_audio_file">poslal/a zvukový súbor.</string>
|
||||
<string name="message_reply_to_sender_sent_file">poslal súbor.</string>
|
||||
<string name="message_reply_to_prefix">V odpovedi na</string>
|
||||
<string name="device_manager_other_sessions_hide_ip_address">Skryť IP adresu</string>
|
||||
<string name="device_manager_other_sessions_show_ip_address">Zobraziť IP adresu</string>
|
||||
<string name="replying_to">Odpoveď na %s</string>
|
||||
<string name="editing">Úprava</string>
|
||||
<string name="settings_enable_direct_share_summary">Zobraziť posledné konverzácie v systémovej ponuke zdieľania</string>
|
||||
<string name="settings_enable_direct_share_title">Povoliť priame zdieľanie</string>
|
||||
</resources>
|
@@ -2659,7 +2659,7 @@
|
||||
\nKy shërbyes Home mund të mos jetë formësuar të shfaqë harta.</string>
|
||||
<string name="poll_undisclosed_not_ended">Përfundimet do të jenë të dukshme pasi të ketë përfunduar pyetësori</string>
|
||||
<string name="labs_enable_msc3061_share_history_desc">Kur bëhet ftesë në një dhomë të fshehtëzuar që ka historik ndarjesh me të tjerët, historiku i fshehtëzuar do të jetë i dukshëm.</string>
|
||||
<string name="a11y_voice_broadcast_buffering">Përdo</string>
|
||||
<string name="a11y_voice_broadcast_buffering"></string>
|
||||
<string name="a11y_pause_voice_broadcast">Ndal transmetim zanor</string>
|
||||
<string name="a11y_play_voice_broadcast">Luani ose vazhdoni luajtje transmetimi zanor</string>
|
||||
<string name="a11y_stop_voice_broadcast_record">Ndal incizim transmetimi zanor</string>
|
||||
@@ -2822,4 +2822,35 @@
|
||||
<string name="verify_invalid_qr_notice">Ky kod QR duket i formuar keq. Ju lutemi, provoni ta verifikoni me tjetër metodë.</string>
|
||||
<string name="room_settings_global_block_unverified_info_text">🔒 Keni aktivizuar fshehtëzim për sesionie të verifikuar vetëm për krejt dhomat, që nga Rregullime Sigurie.</string>
|
||||
<string name="settings_autoplay_animated_images_summary">Luaj figura të animuara te rrjedha kohora sapo zënë të duken</string>
|
||||
<string name="message_reply_to_sender_created_poll">krijoi një pyetësor.</string>
|
||||
<string name="message_reply_to_sender_sent_sticker">dërgoi një ngjitës.</string>
|
||||
<string name="message_reply_to_sender_sent_video">dërgoi një video.</string>
|
||||
<string name="message_reply_to_sender_sent_image">dërgoi një figurë.</string>
|
||||
<string name="message_reply_to_sender_sent_voice_message">dërgoi një mesazh zanor.</string>
|
||||
<string name="message_reply_to_sender_sent_audio_file">dërgoi një kartelë audio.</string>
|
||||
<string name="message_reply_to_sender_sent_file">dërgoi një kartelë.</string>
|
||||
<string name="message_reply_to_prefix">Në përgjigje të</string>
|
||||
<string name="rich_text_editor_full_screen_toggle">Hyni/Dilni nga mënyra “Sa krejt ekrani”</string>
|
||||
<string name="device_manager_learn_more_sessions_verified_description">Sesionet e verifikuar janë kudo ku përdorni këtë llogari pas dhënies së frazëkalimit tuaj, apo ripohimit të identitetit tuaj me një sesion tjetër të verifikuar.
|
||||
\n
|
||||
\nKjo do të thotë se keni krejt kyçet e nevojshëm për të shkyçur mesazhet tuaj të fshehtëzuar dhe për të ripohuar se e besoni këtë sesion.</string>
|
||||
<string name="device_manager_other_sessions_hide_ip_address">Fshihe adresën IP</string>
|
||||
<string name="device_manager_other_sessions_show_ip_address">Shfaq adresë IP</string>
|
||||
<plurals name="device_manager_other_sessions_multi_signout_all">
|
||||
<item quantity="one">Dilni nga %1$d sesion</item>
|
||||
<item quantity="other">Dilni nga %1$d sesione</item>
|
||||
</plurals>
|
||||
<string name="device_manager_other_sessions_multi_signout_selection">Dilni</string>
|
||||
<string name="attachment_type_selector_text_formatting">Formatim teksti</string>
|
||||
<string name="voice_broadcast_recording_time_left">Edhe %1$s</string>
|
||||
<string name="error_voice_broadcast_already_in_progress_message">Jeni duke incizuar tashmë një transmetim zanor. Ju lutemi, që të nisni një të ri, përfundoni transmetimin tuaj aktual zanor.</string>
|
||||
<string name="error_voice_broadcast_blocked_by_someone_else_message">Dikush tjetër është tashmë duke incizuar një transmetim zanor. Prisni që të përfundojë transmetimi zanor i tij, pa të filloni një të ri.</string>
|
||||
<string name="error_voice_broadcast_permission_denied_message">S’keni lejet e domosdoshme për të nisur një transmetim zanor në këtë dhomë. Lidhuni me një përgjegjës dhome që të përmirësojë lejet tuaja.</string>
|
||||
<string name="error_voice_broadcast_unauthorized_title">S’mund të niset një transmetim i ri zanor</string>
|
||||
<string name="a11y_voice_broadcast_fast_forward">Shtyrje përpara 30 sekonda</string>
|
||||
<string name="a11y_voice_broadcast_fast_backward">Kthim prapa 30 sekonda</string>
|
||||
<string name="replying_to">Si përgjigje për %s</string>
|
||||
<string name="labs_enable_deferred_dm_title">Aktivizo MD të lënë për më vonë</string>
|
||||
<string name="a11y_collapse_space_children">Tkurr pjella të %s</string>
|
||||
<string name="a11y_expand_space_children">Zgjero pjella të %s</string>
|
||||
</resources>
|
@@ -2836,4 +2836,34 @@
|
||||
<item quantity="one">%1$d vald</item>
|
||||
<item quantity="other">%1$d valda</item>
|
||||
</plurals>
|
||||
<string name="rich_text_editor_full_screen_toggle">Växla fullskärmsläge</string>
|
||||
<string name="device_manager_learn_more_sessions_verified_description">Verifierade sessioner är alla ställen där du använder det här kontot efter att ha angett din lösenfras eller bekräftat din identitet med en annan verifierad session.
|
||||
\n
|
||||
\nDetta betyder att du har alla nycklar som krävs för att låsa upp dina krypterade meddelanden att bekräfta för andra användare att du litar på den här sessionen.</string>
|
||||
<plurals name="device_manager_other_sessions_multi_signout_all">
|
||||
<item quantity="one">Logga ut ur %1$d session</item>
|
||||
<item quantity="other">Logga ut ur %1$d sessioner</item>
|
||||
</plurals>
|
||||
<string name="device_manager_other_sessions_multi_signout_selection">Logga ut</string>
|
||||
<string name="attachment_type_selector_text_formatting">Textformatering</string>
|
||||
<string name="error_voice_broadcast_already_in_progress_message">Du spelar redan in en röstsändning. Avsluta din nuvarande röstsändning för att starta en ny.</string>
|
||||
<string name="error_voice_broadcast_blocked_by_someone_else_message">Någon annan spelar redan in en röstsändning. Vänta på att deras röstsändning avslutas för att starta en ny.</string>
|
||||
<string name="error_voice_broadcast_permission_denied_message">Du är inte behörig att starta en ny röstsändning i det här rummet. Kontakta en rumsadministratör för att uppgradera dina behörigheter.</string>
|
||||
<string name="error_voice_broadcast_unauthorized_title">Kan inte starta en ny röstsändning</string>
|
||||
<string name="a11y_voice_broadcast_fast_forward">Spola framåt 30 sekunder</string>
|
||||
<string name="a11y_voice_broadcast_fast_backward">Spola tillbaka 30 sekunder</string>
|
||||
<string name="message_reply_to_sender_created_poll">skickade en omröstning.</string>
|
||||
<string name="message_reply_to_sender_sent_sticker">skickade en dekal.</string>
|
||||
<string name="message_reply_to_sender_sent_video">skickade en video.</string>
|
||||
<string name="message_reply_to_sender_sent_image">skickade en bild.</string>
|
||||
<string name="message_reply_to_sender_sent_voice_message">skickade ett röstmeddelande.</string>
|
||||
<string name="message_reply_to_sender_sent_audio_file">skickade en ljudfil.</string>
|
||||
<string name="message_reply_to_sender_sent_file">skickade en fil.</string>
|
||||
<string name="message_reply_to_prefix">Svar på</string>
|
||||
<string name="device_manager_other_sessions_hide_ip_address">Dölj IP-adress</string>
|
||||
<string name="device_manager_other_sessions_show_ip_address">Visa IP-adress</string>
|
||||
<string name="voice_broadcast_recording_time_left">%1$s kvar</string>
|
||||
<string name="quoting">Citerar</string>
|
||||
<string name="replying_to">Besvarar %s</string>
|
||||
<string name="editing">Redigerar</string>
|
||||
</resources>
|
@@ -2839,12 +2839,12 @@
|
||||
<string name="device_manager_session_rename">Перейменувати сеанс</string>
|
||||
<string name="device_manager_session_overview_signout">Вийти з цього сеансу</string>
|
||||
<string name="device_manager_other_sessions_description_unverified_current_session">Не звірений - Ваш поточний сеанс</string>
|
||||
<string name="tooltip_attachment_voice_broadcast">Розпочати трансляцію голосового повідомлення</string>
|
||||
<string name="tooltip_attachment_voice_broadcast">Розпочати голосову трансляцію</string>
|
||||
<string name="key_authenticity_not_guaranteed">Справжність цього зашифрованого повідомлення не може бути гарантована на цьому пристрої.</string>
|
||||
<string name="settings_security_incognito_keyboard_summary">Заборонити клавіатурі оновлювати будь-які персоналізовані дані, як-от історію набору тексту та словник, на основі того, що ви набрали в розмовах. Зверніть увагу, що деякі клавіатури можуть не дотримуватися цього налаштування.</string>
|
||||
<string name="settings_security_incognito_keyboard_title">Клавіатура інкогніто</string>
|
||||
<string name="command_description_table_flip">Надсилає (╯°□°)╯︵ ┻━┻ на початку текстового повідомлення</string>
|
||||
<string name="attachment_type_voice_broadcast">Голосові повідомлення</string>
|
||||
<string name="attachment_type_voice_broadcast">Голосові трансляції</string>
|
||||
<string name="command_description_devtools">Відкрийте інструменти розробника</string>
|
||||
<string name="room_settings_global_block_unverified_info_text">🔒 Ви увімкнули шифрування лише для перевірених сеансів для всіх кімнат у налаштуваннях безпеки.</string>
|
||||
<string name="some_devices_will_not_be_able_to_decrypt">⚠ У цій кімнаті є неперевірені пристрої, вони не зможуть розшифрувати повідомлення, які ви надсилаєте.</string>
|
||||
@@ -2920,21 +2920,21 @@
|
||||
<string name="qr_code_login_header_failed_other_device_already_signed_in_description">Вхід з іншого пристрою вже виконано.</string>
|
||||
<string name="qr_code_login_header_failed_e2ee_security_issue_description">Під час налаштування захищеного обміну повідомленнями виникла проблема з безпекою. Можливо, порушено одне з таких налаштувань: Ваш домашній сервер; Ваше інтернет-з\'єднання; Ваш пристрій;</string>
|
||||
<string name="qr_code_login_header_failed_other_description">Запит не виконаний.</string>
|
||||
<string name="labs_enable_voice_broadcast_summary">Можливість записувати та надсилати голосові повідомлення до стрічки кімнати.</string>
|
||||
<string name="labs_enable_voice_broadcast_title">Увімкнути голосові повідомлення (в активній розробці)</string>
|
||||
<string name="a11y_voice_broadcast_buffering">Буферизація</string>
|
||||
<string name="a11y_pause_voice_broadcast">Призупинити голосове повідомлення</string>
|
||||
<string name="a11y_play_voice_broadcast">Відтворити або поновити відтворення голосового повідомлення</string>
|
||||
<string name="a11y_stop_voice_broadcast_record">Припинити запис голосового повідомлення</string>
|
||||
<string name="a11y_pause_voice_broadcast_record">Призупинити запис голосового повідомлення</string>
|
||||
<string name="a11y_resume_voice_broadcast_record">Відновити запис голосового повідомлення</string>
|
||||
<string name="labs_enable_voice_broadcast_summary">Можливість записувати та надсилати голосові трансляції до стрічки кімнати.</string>
|
||||
<string name="labs_enable_voice_broadcast_title">Увімкнути голосові трансляції (в активній розробці)</string>
|
||||
<string name="a11y_voice_broadcast_buffering">Буферизація…</string>
|
||||
<string name="a11y_pause_voice_broadcast">Призупинити голосову трансляцію</string>
|
||||
<string name="a11y_play_voice_broadcast">Відтворити або поновити відтворення голосової трансляції</string>
|
||||
<string name="a11y_stop_voice_broadcast_record">Припинити запис голосової трансляції</string>
|
||||
<string name="a11y_pause_voice_broadcast_record">Призупинити запис голосової трансляції</string>
|
||||
<string name="a11y_resume_voice_broadcast_record">Відновити запис голосової трансляції</string>
|
||||
<string name="voice_broadcast_live">Наживо</string>
|
||||
<string name="device_manager_other_sessions_select">Вибрати сеанси</string>
|
||||
<string name="attachment_type_selector_contact">Контакт</string>
|
||||
<string name="attachment_type_selector_camera">Камера</string>
|
||||
<string name="attachment_type_selector_location">Місце перебування</string>
|
||||
<string name="attachment_type_selector_poll">Опитування</string>
|
||||
<string name="attachment_type_selector_voice_broadcast">Голосові повідомлення</string>
|
||||
<string name="attachment_type_selector_voice_broadcast">Голосові трансляції</string>
|
||||
<string name="attachment_type_selector_file">Вкладення</string>
|
||||
<string name="attachment_type_selector_sticker">Наліпки</string>
|
||||
<string name="attachment_type_selector_gallery">Фотобібліотека</string>
|
||||
@@ -2948,10 +2948,36 @@
|
||||
<string name="action_select_all">Вибрати все</string>
|
||||
<string name="rich_text_editor_full_screen_toggle">Перемкнути повноекранний режим</string>
|
||||
<string name="attachment_type_selector_text_formatting">Форматування тексту</string>
|
||||
<string name="error_voice_broadcast_already_in_progress_message">Ви вже записуєте голосове повідомлення. Завершіть поточну трансляцію, щоб розпочати нову.</string>
|
||||
<string name="error_voice_broadcast_blocked_by_someone_else_message">Хтось інший вже записує голосове повідомлення. Зачекайте, поки закінчиться трансляція, щоб розпочати нову.</string>
|
||||
<string name="error_voice_broadcast_permission_denied_message">Ви не маєте необхідних дозволів для початку передавання голосового повідомлення в цю кімнату. Зверніться до адміністратора кімнати, щоб оновити ваші дозволи.</string>
|
||||
<string name="error_voice_broadcast_unauthorized_title">Не вдалося розпочати передавання нового голосового повідомлення</string>
|
||||
<string name="error_voice_broadcast_already_in_progress_message">Ви вже записуєте голосову трансляцію. Завершіть поточну трансляцію, щоб розпочати нову.</string>
|
||||
<string name="error_voice_broadcast_blocked_by_someone_else_message">Хтось інший вже записує голосову трансляцію. Зачекайте, поки вона завершиться, щоб розпочати нову.</string>
|
||||
<string name="error_voice_broadcast_permission_denied_message">Ви не маєте необхідних дозволів для початку голосової трансляції в цю кімнату. Зверніться до адміністратора кімнати, щоб оновити ваші дозволи.</string>
|
||||
<string name="error_voice_broadcast_unauthorized_title">Не вдалося розпочати нову голосову трансляцію</string>
|
||||
<string name="a11y_voice_broadcast_fast_forward">Перемотати вперед на 30 секунд</string>
|
||||
<string name="a11y_voice_broadcast_fast_backward">Перемотати назад на 30 секунд</string>
|
||||
<string name="device_manager_learn_more_sessions_verified_description">Звірені сеанси — це будь-який пристрій, на якому ви використовуєте цей обліковий запис після введення парольної фрази або підтвердження вашої особи за допомогою іншого звіреного сеансу.
|
||||
\n
|
||||
\nЦе означає, що ви маєте всі ключі, необхідні для розблокування ваших зашифрованих повідомлень і підтвердження іншим користувачам, що ви довіряєте цьому сеансу.</string>
|
||||
<plurals name="device_manager_other_sessions_multi_signout_all">
|
||||
<item quantity="one">Вийти з %1$d сеансу</item>
|
||||
<item quantity="few">Вийти з %1$d сеансів</item>
|
||||
<item quantity="many">Вийти з %1$d сеансів</item>
|
||||
<item quantity="other">Вийти з %1$d сеансів</item>
|
||||
</plurals>
|
||||
<string name="device_manager_other_sessions_multi_signout_selection">Вийти</string>
|
||||
<string name="voice_broadcast_recording_time_left">Залишилося %1$s</string>
|
||||
<string name="message_reply_to_sender_sent_audio_file">надсилає аудіофайл.</string>
|
||||
<string name="message_reply_to_sender_sent_file">надсилає файл.</string>
|
||||
<string name="message_reply_to_prefix">У відповідь на</string>
|
||||
<string name="device_manager_other_sessions_hide_ip_address">Сховати IP-адресу</string>
|
||||
<string name="message_reply_to_sender_created_poll">створює опитування.</string>
|
||||
<string name="message_reply_to_sender_sent_sticker">надсилає наліпку.</string>
|
||||
<string name="message_reply_to_sender_sent_video">надсилає відео.</string>
|
||||
<string name="message_reply_to_sender_sent_image">надсилає зображення.</string>
|
||||
<string name="message_reply_to_sender_sent_voice_message">надсилає голосове повідомлення.</string>
|
||||
<string name="device_manager_other_sessions_show_ip_address">Показати IP-адресу</string>
|
||||
<string name="quoting">Цитуючи</string>
|
||||
<string name="replying_to">У відповідь %s</string>
|
||||
<string name="editing">Редагування</string>
|
||||
<string name="settings_enable_direct_share_summary">Показувати останні бесіди в системному меню загального доступу</string>
|
||||
<string name="settings_enable_direct_share_title">Увімкнути пряме поширення</string>
|
||||
</resources>
|
@@ -1007,7 +1007,7 @@
|
||||
<string name="settings_discovery_disconnect_with_bound_pid">您当前在身份服务器 %1$s 上共享电子邮件地址或电话号码。您需要重新连接到 %2$s 才能停止共享它们。</string>
|
||||
<string name="settings_agree_to_terms">同意身份服务器 (%s) 服务条款使你可以通过电子邮件地址或电话号码被发现。</string>
|
||||
<string name="labs_allow_extended_logging">启用详细日志。</string>
|
||||
<string name="labs_allow_extended_logging_summary">详细日志将通过在您发送 RageShake 时提供更多日志来帮助开发人员。即使启用,应用程序也不会记录消息内容或任何其他私人数据。</string>
|
||||
<string name="labs_allow_extended_logging_summary">详细日志将通过在您发送愤怒摇动(RageShake)时提供更多日志来帮助开发人员。即使启用,应用程序也不会记录消息内容或任何其他私人数据。</string>
|
||||
<string name="error_terms_not_accepted">接收你的主服务器条款和条件后请重试。</string>
|
||||
<string name="error_network_timeout">服务器似乎响应时间太长,这可能是由于连接不良或服务器错误引起的。请稍后再试。</string>
|
||||
<string name="send_attachment">发送附件</string>
|
||||
@@ -1205,7 +1205,7 @@
|
||||
<string name="settings_advanced_settings">高级设置</string>
|
||||
<string name="settings_developer_mode">开发者模式</string>
|
||||
<string name="settings_developer_mode_summary">开发者模式激活隐藏的功能,也可能使应用不稳定。仅供开发者使用!</string>
|
||||
<string name="settings_rageshake">摇一摇</string>
|
||||
<string name="settings_rageshake">愤怒摇动(Rageshake)</string>
|
||||
<string name="settings_rageshake_detection_threshold">检测阈值</string>
|
||||
<string name="settings_rageshake_detection_threshold_summary">摇动手机以测试检测阈值</string>
|
||||
<string name="rageshake_detected">检测到摇动!</string>
|
||||
@@ -1213,7 +1213,7 @@
|
||||
<string name="devices_current_device">当前会话</string>
|
||||
<string name="devices_other_devices">其它会话</string>
|
||||
<string name="autocomplete_limited_results">仅显示第一个结果,请输入更多字符…</string>
|
||||
<string name="settings_developer_mode_fail_fast_title">快速失败</string>
|
||||
<string name="settings_developer_mode_fail_fast_title">快速失败(Fail-fast)</string>
|
||||
<string name="settings_developer_mode_fail_fast_summary">发生意外错误时,${app_name} 可能更经常崩溃</string>
|
||||
<string name="command_description_shrug">在明文消息前添加 ¯\\_(ツ)_/¯</string>
|
||||
<string name="create_room_encryption_title">启用加密</string>
|
||||
@@ -2694,7 +2694,7 @@
|
||||
<string name="device_manager_verification_status_detail_other_session_unknown">验证您当前的会话以显示此会话的验证状态。</string>
|
||||
<string name="device_manager_verification_status_unknown">未知的验证状态</string>
|
||||
<string name="tooltip_attachment_voice_broadcast">开始语音广播</string>
|
||||
<string name="a11y_voice_broadcast_buffering">缓冲</string>
|
||||
<string name="a11y_voice_broadcast_buffering">正在缓冲……</string>
|
||||
<string name="a11y_pause_voice_broadcast">暂停语音广播</string>
|
||||
<string name="voice_broadcast_live">实时</string>
|
||||
<string name="action_got_it">知道了</string>
|
||||
@@ -2789,4 +2789,19 @@
|
||||
<plurals name="x_selected">
|
||||
<item quantity="other">已选择 %1$d</item>
|
||||
</plurals>
|
||||
<string name="message_reply_to_sender_created_poll">已创建投票。</string>
|
||||
<string name="message_reply_to_sender_sent_sticker">已发送贴纸。</string>
|
||||
<string name="message_reply_to_sender_sent_video">已发送视频。</string>
|
||||
<string name="message_reply_to_sender_sent_image">已发送图片。</string>
|
||||
<string name="message_reply_to_sender_sent_voice_message">已发送语音消息。</string>
|
||||
<string name="message_reply_to_sender_sent_audio_file">已发送音频文件。</string>
|
||||
<string name="message_reply_to_sender_sent_file">已发送文件。</string>
|
||||
<string name="device_manager_learn_more_sessions_verified_description">已验证的会话是在输入你的口令词组或用另一个已验证的会话确认你的身份之后你使用此账户的任何地方。
|
||||
\n
|
||||
\n这意味着你拥有解锁你的已加密消息和向其他用户证明你信任此会话所需的全部密钥。</string>
|
||||
<plurals name="device_manager_other_sessions_multi_signout_all">
|
||||
<item quantity="other">登出%1$d个会话</item>
|
||||
</plurals>
|
||||
<string name="device_manager_other_sessions_multi_signout_selection">登出</string>
|
||||
<string name="voice_broadcast_recording_time_left">剩余%1$s</string>
|
||||
</resources>
|
@@ -2760,7 +2760,7 @@
|
||||
<string name="qr_code_login_header_failed_other_description">請求失敗。</string>
|
||||
<string name="labs_enable_voice_broadcast_summary">可以在聊天室時間軸中錄製並傳送語音廣播。</string>
|
||||
<string name="labs_enable_voice_broadcast_title">啟用語音廣播(正在積極開發中)</string>
|
||||
<string name="a11y_voice_broadcast_buffering">正在緩衝</string>
|
||||
<string name="a11y_voice_broadcast_buffering">正在緩衝……</string>
|
||||
<string name="a11y_pause_voice_broadcast">暫停語音廣播</string>
|
||||
<string name="a11y_play_voice_broadcast">播放或繼續語音廣播</string>
|
||||
<string name="a11y_stop_voice_broadcast_record">停止語音廣播錄製</string>
|
||||
@@ -2789,4 +2789,27 @@
|
||||
<string name="error_voice_broadcast_unauthorized_title">無法開始新的語音廣播</string>
|
||||
<string name="a11y_voice_broadcast_fast_forward">快轉30秒</string>
|
||||
<string name="a11y_voice_broadcast_fast_backward">快退30秒</string>
|
||||
<string name="device_manager_learn_more_sessions_verified_description">已驗證的工作階段是您輸入通關密語或透過另一個已驗證工作階段確認您的身份後使用此帳號的任何地方。
|
||||
\n
|
||||
\n這代表了您擁有解鎖加密訊息並向其他使用者確認您信任此工作階段所需的所有金鑰。</string>
|
||||
<plurals name="device_manager_other_sessions_multi_signout_all">
|
||||
<item quantity="other">登出 %1$d 個工作階段</item>
|
||||
</plurals>
|
||||
<string name="device_manager_other_sessions_multi_signout_selection">登出</string>
|
||||
<string name="voice_broadcast_recording_time_left">剩餘 %1$s</string>
|
||||
<string name="message_reply_to_sender_created_poll">已建立投票。</string>
|
||||
<string name="message_reply_to_sender_sent_sticker">已傳送貼圖。</string>
|
||||
<string name="message_reply_to_sender_sent_video">已傳送影片。</string>
|
||||
<string name="message_reply_to_sender_sent_image">已傳送圖片。</string>
|
||||
<string name="message_reply_to_sender_sent_voice_message">已傳送語音訊息。</string>
|
||||
<string name="message_reply_to_sender_sent_audio_file">已傳送音訊檔。</string>
|
||||
<string name="message_reply_to_sender_sent_file">已傳送檔案。</string>
|
||||
<string name="message_reply_to_prefix">回覆給</string>
|
||||
<string name="device_manager_other_sessions_hide_ip_address">隱藏 IP 位置</string>
|
||||
<string name="device_manager_other_sessions_show_ip_address">顯示 IP 位置</string>
|
||||
<string name="quoting">引用</string>
|
||||
<string name="replying_to">回覆給 %s</string>
|
||||
<string name="editing">正在編輯</string>
|
||||
<string name="settings_enable_direct_share_summary">在系統分享選單中顯示最近聊天</string>
|
||||
<string name="settings_enable_direct_share_title">啟用直接分享</string>
|
||||
</resources>
|
@@ -134,6 +134,9 @@
|
||||
<string name="notice_crypto_unable_to_decrypt">** Unable to decrypt: %s **</string>
|
||||
<string name="notice_crypto_error_unknown_inbound_session_id">The sender\'s device has not sent us the keys for this message.</string>
|
||||
|
||||
<string name="notice_voice_broadcast_ended">%1$s ended a voice broadcast.</string>
|
||||
<string name="notice_voice_broadcast_ended_by_you">You ended a voice broadcast.</string>
|
||||
|
||||
<!-- Messages -->
|
||||
|
||||
<!-- Room Screen -->
|
||||
@@ -416,6 +419,7 @@
|
||||
<string name="action_got_it">Got it</string>
|
||||
<string name="action_select_all">Select all</string>
|
||||
<string name="action_deselect_all">Deselect all</string>
|
||||
<string name="action_stop">Yes, Stop</string>
|
||||
|
||||
<string name="copied_to_clipboard">Copied to clipboard</string>
|
||||
|
||||
@@ -1032,6 +1036,8 @@
|
||||
<string name="settings_chat_effects_description">Use /confetti command or send a message containing ❄️ or 🎉</string>
|
||||
<string name="settings_autoplay_animated_images_title">Autoplay animated images</string>
|
||||
<string name="settings_autoplay_animated_images_summary">Play animated images in the timeline as soon as they are visible</string>
|
||||
<string name="settings_enable_direct_share_title">Enable direct share</string>
|
||||
<string name="settings_enable_direct_share_summary">Show recent chats in the system share menu</string>
|
||||
<string name="settings_show_join_leave_messages">Show join and leave events</string>
|
||||
<string name="settings_show_join_leave_messages_summary">Invites, removes, and bans are unaffected.</string>
|
||||
<string name="settings_show_avatar_display_name_changes_messages">Show account events</string>
|
||||
@@ -1642,7 +1648,10 @@
|
||||
<string name="error_user_already_logged_in">It looks like you’re trying to connect to another homeserver. Do you want to sign out?</string>
|
||||
|
||||
<string name="edit">Edit</string>
|
||||
<string name="editing">Editing</string>
|
||||
<string name="reply">Reply</string>
|
||||
<string name="replying_to">Replying to %s</string>
|
||||
<string name="quoting">Quoting</string>
|
||||
<string name="reply_in_thread">Reply in thread</string>
|
||||
<string name="view_in_room">View In Room</string>
|
||||
|
||||
@@ -2482,6 +2491,9 @@
|
||||
<string name="settings_key_requests">Key Requests</string>
|
||||
<string name="settings_export_trail">Export Audit</string>
|
||||
|
||||
<string name="settings_nightly_build">Nightly build</string>
|
||||
<string name="settings_nightly_build_update">Get the latest build (note: you may have trouble to sign in)</string>
|
||||
|
||||
<string name="e2e_use_keybackup">Unlock encrypted messages history</string>
|
||||
|
||||
<string name="refresh">Refresh</string>
|
||||
@@ -2644,8 +2656,12 @@
|
||||
<string name="unencrypted">Unencrypted</string>
|
||||
<string name="encrypted_unverified">Encrypted by an unverified device</string>
|
||||
<string name="key_authenticity_not_guaranteed">The authenticity of this encrypted message can\'t be guaranteed on this device.</string>
|
||||
<string name="review_logins">Review where you’re logged in</string>
|
||||
<string name="verify_other_sessions">Verify all your sessions to ensure your account & messages are safe</string>
|
||||
<!-- TODO TO BE REMOVED -->
|
||||
<string name="review_logins" tools:ignore="UnusedResources">Review where you’re logged in</string>
|
||||
<!-- TODO TO BE REMOVED -->
|
||||
<string name="verify_other_sessions" tools:ignore="UnusedResources">Verify all your sessions to ensure your account & messages are safe</string>
|
||||
<string name="review_unverified_sessions_title">You have unverified sessions</string>
|
||||
<string name="review_unverified_sessions_description">Review to ensure your account is safe</string>
|
||||
<!-- Argument will be replaced by the other session name (e.g, Desktop, mobile) -->
|
||||
<string name="verify_this_session">Verify the new login accessing your account: %1$s</string>
|
||||
|
||||
@@ -3020,7 +3036,7 @@
|
||||
|
||||
<string name="labs_auto_report_uisi">Auto Report Decryption Errors.</string>
|
||||
<string name="labs_auto_report_uisi_desc">Your system will automatically send logs when an unable to decrypt error occurs</string>
|
||||
<string name="labs_enable_thread_messages">Enable Thread Messages</string>
|
||||
<string name="labs_enable_thread_messages">Enable threaded messages</string>
|
||||
<string name="labs_enable_thread_messages_desc">Note: app will be restarted</string>
|
||||
<string name="settings_show_latest_profile">Show latest user info</string>
|
||||
<string name="settings_show_latest_profile_description">Show the latest profile info (avatar and display name) for all the messages.</string>
|
||||
@@ -3089,12 +3105,14 @@
|
||||
<string name="audio_message_file_size">(%1$s)</string>
|
||||
|
||||
<string name="voice_broadcast_live">Live</string>
|
||||
<string name="voice_broadcast_live_broadcast">Live broadcast</string>
|
||||
<!-- TODO Rename id to voice_broadcast_buffering -->
|
||||
<string name="a11y_voice_broadcast_buffering">Buffering…</string>
|
||||
<string name="a11y_resume_voice_broadcast_record">Resume voice broadcast record</string>
|
||||
<string name="a11y_pause_voice_broadcast_record">Pause voice broadcast record</string>
|
||||
<string name="a11y_stop_voice_broadcast_record">Stop voice broadcast record</string>
|
||||
<string name="a11y_play_voice_broadcast">Play or resume voice broadcast</string>
|
||||
<string name="a11y_pause_voice_broadcast">Pause voice broadcast</string>
|
||||
<string name="a11y_voice_broadcast_buffering">Buffering</string>
|
||||
<string name="a11y_voice_broadcast_fast_backward">Fast backward 30 seconds</string>
|
||||
<string name="a11y_voice_broadcast_fast_forward">Fast forward 30 seconds</string>
|
||||
<string name="error_voice_broadcast_unauthorized_title">Can’t start a new voice broadcast</string>
|
||||
@@ -3103,6 +3121,8 @@
|
||||
<string name="error_voice_broadcast_already_in_progress_message">You are already recording a voice broadcast. Please end your current voice broadcast to start a new one.</string>
|
||||
<!-- Examples of usage: 6h 15min 30sec left / 15min 30sec left / 30sec left -->
|
||||
<string name="voice_broadcast_recording_time_left">%1$s left</string>
|
||||
<string name="stop_voice_broadcast_dialog_title">Stop live broadcasting?</string>
|
||||
<string name="stop_voice_broadcast_content">Are you sure you want to stop your live broadcast? This will end the broadcast and the full recording will be available in the room.</string>
|
||||
|
||||
<string name="upgrade_room_for_restricted">Anyone in %s will be able to find and join this room - no need to manually invite everyone. You’ll be able to change this in room settings anytime.</string>
|
||||
<string name="upgrade_room_for_restricted_no_param">Anyone in a parent space will be able to find and join this room - no need to manually invite everyone. You’ll be able to change this in room settings anytime.</string>
|
||||
@@ -3295,6 +3315,7 @@
|
||||
<string name="device_manager_verification_status_detail_current_session_unverified">Verify your current session for enhanced secure messaging.</string>
|
||||
<string name="device_manager_verification_status_detail_other_session_unverified">Verify or sign out from this session for best security and reliability.</string>
|
||||
<string name="device_manager_verification_status_detail_other_session_unknown">Verify your current session to reveal this session\'s verification status.</string>
|
||||
<string name="device_manager_verification_status_detail_session_encryption_not_supported">This session doesn\'t support encryption and thus can\'t be verified.</string>
|
||||
<string name="device_manager_verify_session">Verify Session</string>
|
||||
<string name="device_manager_view_details">View Details</string>
|
||||
<string name="device_manager_other_sessions_view_all">View All (%1$d)</string>
|
||||
@@ -3317,7 +3338,7 @@
|
||||
<item quantity="one">Consider signing out from old sessions (%1$d day or more) that you don’t use anymore.</item>
|
||||
<item quantity="other">Consider signing out from old sessions (%1$d days or more) that you don’t use anymore.</item>
|
||||
</plurals>
|
||||
<string name="device_manager_current_session_title">Current Session</string>
|
||||
<string name="device_manager_current_session_title">Current session</string>
|
||||
<string name="device_manager_session_title">Session</string>
|
||||
<string name="device_manager_device_title">Device</string>
|
||||
<!-- Examples: Last activity Yesterday at 6PM, Last activity Aug 31 at 5:47PM -->
|
||||
@@ -3353,6 +3374,9 @@
|
||||
<item quantity="one">Sign out of %1$d session</item>
|
||||
<item quantity="other">Sign out of %1$d sessions</item>
|
||||
</plurals>
|
||||
<string name="device_manager_signout_all_other_sessions">Sign out of all other sessions</string>
|
||||
<string name="device_manager_other_sessions_show_ip_address">Show IP address</string>
|
||||
<string name="device_manager_other_sessions_hide_ip_address">Hide IP address</string>
|
||||
<string name="device_manager_session_overview_signout">Sign out of this session</string>
|
||||
<string name="device_manager_session_details_title">Session details</string>
|
||||
<string name="device_manager_session_details_description">Application, device, and activity information.</string>
|
||||
@@ -3384,6 +3408,7 @@
|
||||
<!-- TODO TO BE REMOVED -->
|
||||
<string name="device_manager_learn_more_sessions_verified" tools:ignore="UnusedResources">Verified sessions have logged in with your credentials and then been verified, either using your secure passphrase or by cross-verifying.\n\nThis means they hold encryption keys for your previous messages, and confirm to other users you are communicating with that these sessions are really you.</string>
|
||||
<string name="device_manager_learn_more_sessions_verified_description">Verified sessions are anywhere you are using this account after entering your passphrase or confirming your identity with another verified session.\n\nThis means that you have all the keys needed to unlock your encrypted messages and confirm to other users that you trust this session.</string>
|
||||
<string name="device_manager_learn_more_sessions_encryption_not_supported">This session doesn\'t support encryption, so it can\'t be verified.\n\nYou won\'t be able to participate in rooms where encryption is enabled when using this session.\n\nFor best security and privacy, it is recommended to use Matrix clients that support encryption.</string>
|
||||
<string name="device_manager_learn_more_session_rename_title">Renaming sessions</string>
|
||||
<string name="device_manager_learn_more_session_rename">Other users in direct messages and rooms that you join are able to view a full list of your sessions.\n\nThis provides them with confidence that they are really speaking to you, but it also means they can see the session name you enter here.</string>
|
||||
<string name="labs_enable_session_manager_title">Enable new session manager</string>
|
||||
@@ -3454,11 +3479,26 @@
|
||||
<string name="qr_code_login_confirm_security_code">Confirm</string>
|
||||
<string name="qr_code_login_confirm_security_code_description">Please ensure that you know the origin of this code. By linking devices, you will provide someone with full access to your account.</string>
|
||||
|
||||
<!-- WYSIWYG Composer -->
|
||||
<!-- Rich text editor -->
|
||||
<string name="rich_text_editor_format_bold">Apply bold format</string>
|
||||
<string name="rich_text_editor_format_italic">Apply italic format</string>
|
||||
<string name="rich_text_editor_format_strikethrough">Apply strikethrough format</string>
|
||||
<string name="rich_text_editor_format_underline">Apply underline format</string>
|
||||
<string name="rich_text_editor_link">Set link</string>
|
||||
<string name="rich_text_editor_full_screen_toggle">Toggle full screen mode</string>
|
||||
|
||||
<string name="set_link_text">Text</string>
|
||||
<string name="set_link_link">Link</string>
|
||||
<string name="set_link_create">Create a link</string>
|
||||
<string name="set_link_edit">Edit link</string>
|
||||
|
||||
<!-- ReplyTo events -->
|
||||
<string name="message_reply_to_prefix">In reply to</string>
|
||||
<string name="message_reply_to_sender_sent_file">sent a file.</string>
|
||||
<string name="message_reply_to_sender_sent_audio_file">sent an audio file.</string>
|
||||
<string name="message_reply_to_sender_sent_voice_message">sent a voice message.</string>
|
||||
<string name="message_reply_to_sender_sent_image">sent an image.</string>
|
||||
<string name="message_reply_to_sender_sent_video">sent a video.</string>
|
||||
<string name="message_reply_to_sender_sent_sticker">sent a sticker.</string>
|
||||
<string name="message_reply_to_sender_created_poll">created a poll.</string>
|
||||
</resources>
|
||||
|
@@ -49,6 +49,7 @@
|
||||
<dimen name="composer_attachment_margin">1dp</dimen>
|
||||
<dimen name="rich_text_composer_corner_radius_single_line">28dp</dimen>
|
||||
<dimen name="rich_text_composer_corner_radius_expanded">14dp</dimen>
|
||||
<dimen name="rich_text_composer_menu_item_size">44dp</dimen>
|
||||
|
||||
<dimen name="chat_bubble_margin_start">28dp</dimen>
|
||||
<dimen name="chat_bubble_margin_end">6dp</dimen>
|
||||
|
@@ -44,4 +44,4 @@
|
||||
<color name="palette_black_800">#15191E</color>
|
||||
<color name="palette_black_950">#21262C</color>
|
||||
|
||||
</resources>
|
||||
</resources>
|
||||
|
@@ -4,7 +4,7 @@
|
||||
<style name="Widget.Vector.EditText.Composer" parent="Widget.AppCompat.EditText">
|
||||
<item name="android:background">@android:color/transparent</item>
|
||||
<item name="android:inputType">textCapSentences|textMultiLine</item>
|
||||
<item name="android:maxLines">12</item>
|
||||
<item name="android:maxLines">10</item>
|
||||
<item name="android:minHeight">48dp</item>
|
||||
<item name="android:padding">8dp</item>
|
||||
<item name="android:textSize">15sp</item>
|
||||
@@ -14,9 +14,12 @@
|
||||
<style name="Widget.Vector.EditText.RichTextComposer" parent="Widget.AppCompat.EditText">
|
||||
<item name="android:background">@android:color/transparent</item>
|
||||
<item name="android:inputType">textCapSentences|textMultiLine</item>
|
||||
<item name="android:maxLines">12</item>
|
||||
<item name="android:minHeight">20dp</item>
|
||||
<item name="android:padding">0dp</item>
|
||||
<item name="android:maxLines">10</item>
|
||||
<item name="android:minHeight">40dp</item>
|
||||
<item name="android:paddingTop">10dp</item>
|
||||
<item name="android:paddingBottom">10dp</item>
|
||||
<item name="paddingStart">12dp</item>
|
||||
<item name="android:clipToPadding">false</item>
|
||||
<item name="android:textSize">15sp</item>
|
||||
<item name="android:textColor">?vctr_message_text_color</item>
|
||||
</style>
|
||||
|
@@ -53,7 +53,7 @@
|
||||
<item name="vctr_list_separator">?vctr_content_quinary</item>
|
||||
<item name="vctr_list_separator_system">?vctr_system</item>
|
||||
<item name="vctr_list_separator_on_surface">?vctr_system</item>
|
||||
<item name="vctr_unread_background">?vctr_content_tertiary</item>
|
||||
<item name="vctr_unread_background">?vctr_notice_secondary</item>
|
||||
|
||||
<!-- Material color -->
|
||||
<item name="colorPrimary">@color/element_accent_dark</item>
|
||||
|
@@ -53,7 +53,7 @@
|
||||
<item name="vctr_list_separator">?vctr_content_quinary</item>
|
||||
<item name="vctr_list_separator_system">?vctr_system</item>
|
||||
<item name="vctr_list_separator_on_surface">?vctr_system</item>
|
||||
<item name="vctr_unread_background">?vctr_content_tertiary</item>
|
||||
<item name="vctr_unread_background">?vctr_notice_secondary</item>
|
||||
|
||||
<!-- Material color -->
|
||||
<item name="colorPrimary">@color/element_accent_light</item>
|
||||
|
@@ -31,7 +31,6 @@ import org.matrix.android.sdk.api.session.room.model.RoomMemberSummary
|
||||
import org.matrix.android.sdk.api.session.room.model.RoomSummary
|
||||
import org.matrix.android.sdk.api.session.room.notification.RoomNotificationState
|
||||
import org.matrix.android.sdk.api.session.room.send.UserDraft
|
||||
import org.matrix.android.sdk.api.session.room.threads.model.ThreadSummary
|
||||
import org.matrix.android.sdk.api.session.room.timeline.TimelineEvent
|
||||
import org.matrix.android.sdk.api.util.Optional
|
||||
import org.matrix.android.sdk.api.util.toOptional
|
||||
@@ -100,8 +99,8 @@ class FlowRoom(private val room: Room) {
|
||||
return room.readService().getReadMarkerLive().asFlow()
|
||||
}
|
||||
|
||||
fun liveReadReceipt(): Flow<Optional<String>> {
|
||||
return room.readService().getMyReadReceiptLive().asFlow()
|
||||
fun liveReadReceipt(threadId: String?): Flow<Optional<String>> {
|
||||
return room.readService().getMyReadReceiptLive(threadId).asFlow()
|
||||
}
|
||||
|
||||
fun liveEventReadReceipts(eventId: String): Flow<List<ReadReceipt>> {
|
||||
@@ -119,13 +118,6 @@ class FlowRoom(private val room: Room) {
|
||||
return room.roomPushRuleService().getLiveRoomNotificationState().asFlow()
|
||||
}
|
||||
|
||||
fun liveThreadSummaries(): Flow<List<ThreadSummary>> {
|
||||
return room.threadsService().getAllThreadSummariesLive().asFlow()
|
||||
.startWith(room.coroutineDispatchers.io) {
|
||||
room.threadsService().getAllThreadSummaries()
|
||||
}
|
||||
}
|
||||
|
||||
fun liveThreadList(): Flow<List<ThreadRootEvent>> {
|
||||
return room.threadsLocalService().getAllThreadsLive().asFlow()
|
||||
.startWith(room.coroutineDispatchers.io) {
|
||||
|
@@ -62,7 +62,7 @@ android {
|
||||
// that the app's state is completely cleared between tests.
|
||||
testInstrumentationRunnerArguments clearPackageData: 'true'
|
||||
|
||||
buildConfigField "String", "SDK_VERSION", "\"1.5.8\""
|
||||
buildConfigField "String", "SDK_VERSION", "\"1.5.16\""
|
||||
|
||||
buildConfigField "String", "GIT_SDK_REVISION", "\"${gitRevision()}\""
|
||||
buildConfigField "String", "GIT_SDK_REVISION_UNIX_DATE", "\"${gitRevisionUnixDate()}\""
|
||||
|
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a7acd69f37612bab0a1ab7f456656712d7ba19dbb679f81b97b58ef44e239f42
|
||||
size 8523776
|
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ab134a3d77862db7097a507ec363ae17c60b183c98dac460bc7fb227bfd51f2e
|
||||
size 270336
|
@@ -16,7 +16,7 @@
|
||||
|
||||
package org.matrix.android.sdk.common
|
||||
|
||||
import org.matrix.android.sdk.api.RoomDisplayNameFallbackProvider
|
||||
import org.matrix.android.sdk.api.provider.RoomDisplayNameFallbackProvider
|
||||
|
||||
class TestRoomDisplayNameFallbackProvider : RoomDisplayNameFallbackProvider {
|
||||
|
||||
|
@@ -0,0 +1,65 @@
|
||||
/*
|
||||
* Copyright 2022 The Matrix.org Foundation C.I.C.
|
||||
*
|
||||
* Licensed 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.
|
||||
*/
|
||||
|
||||
package org.matrix.android.sdk.internal.database
|
||||
|
||||
import android.content.Context
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import io.realm.Realm
|
||||
import org.junit.After
|
||||
import org.junit.Before
|
||||
import org.junit.Rule
|
||||
import org.junit.Test
|
||||
import org.matrix.android.sdk.internal.crypto.store.db.RealmCryptoStoreMigration
|
||||
import org.matrix.android.sdk.internal.crypto.store.db.RealmCryptoStoreModule
|
||||
import org.matrix.android.sdk.internal.util.time.Clock
|
||||
|
||||
class CryptoSanityMigrationTest {
|
||||
@get:Rule val configurationFactory = TestRealmConfigurationFactory()
|
||||
|
||||
lateinit var context: Context
|
||||
var realm: Realm? = null
|
||||
|
||||
@Before
|
||||
fun setUp() {
|
||||
context = InstrumentationRegistry.getInstrumentation().context
|
||||
}
|
||||
|
||||
@After
|
||||
fun tearDown() {
|
||||
realm?.close()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun cryptoDatabaseShouldMigrateGracefully() {
|
||||
val realmName = "crypto_store_20.realm"
|
||||
val migration = RealmCryptoStoreMigration(object : Clock {
|
||||
override fun epochMillis(): Long {
|
||||
return 0L
|
||||
}
|
||||
})
|
||||
val realmConfiguration = configurationFactory.createConfiguration(
|
||||
realmName,
|
||||
"7b9a21a8a311e85d75b069a343c23fc952fc3fec5e0c83ecfa13f24b787479c487c3ed587db3dd1f5805d52041fc0ac246516e94b27ffa699ff928622e621aca",
|
||||
RealmCryptoStoreModule(),
|
||||
migration.schemaVersion,
|
||||
migration
|
||||
)
|
||||
configurationFactory.copyRealmFromAssets(context, realmName, realmName)
|
||||
|
||||
realm = Realm.getInstance(realmConfiguration)
|
||||
}
|
||||
}
|
@@ -0,0 +1,130 @@
|
||||
/*
|
||||
* Copyright 2022 The Matrix.org Foundation C.I.C.
|
||||
*
|
||||
* Licensed 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.
|
||||
*/
|
||||
|
||||
package org.matrix.android.sdk.internal.database
|
||||
|
||||
import android.content.Context
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import io.realm.Realm
|
||||
import org.amshove.kluent.fail
|
||||
import org.amshove.kluent.shouldBe
|
||||
import org.amshove.kluent.shouldBeEqualTo
|
||||
import org.amshove.kluent.shouldNotBe
|
||||
import org.junit.After
|
||||
import org.junit.Before
|
||||
import org.junit.Rule
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.matrix.android.sdk.api.session.events.model.toModel
|
||||
import org.matrix.android.sdk.api.session.room.model.message.MessageContent
|
||||
import org.matrix.android.sdk.internal.database.mapper.EventMapper
|
||||
import org.matrix.android.sdk.internal.database.model.EventAnnotationsSummaryEntity
|
||||
import org.matrix.android.sdk.internal.database.model.SessionRealmModule
|
||||
import org.matrix.android.sdk.internal.database.query.where
|
||||
import org.matrix.android.sdk.internal.util.Normalizer
|
||||
|
||||
@RunWith(AndroidJUnit4::class)
|
||||
class RealmSessionStoreMigration43Test {
|
||||
|
||||
@get:Rule val configurationFactory = TestRealmConfigurationFactory()
|
||||
|
||||
lateinit var context: Context
|
||||
var realm: Realm? = null
|
||||
|
||||
@Before
|
||||
fun setUp() {
|
||||
context = InstrumentationRegistry.getInstrumentation().context
|
||||
}
|
||||
|
||||
@After
|
||||
fun tearDown() {
|
||||
realm?.close()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun migrationShouldBeNeeed() {
|
||||
val realmName = "session_42.realm"
|
||||
val realmConfiguration = configurationFactory.createConfiguration(
|
||||
realmName,
|
||||
"efa9ab2c77ae06b0e767ffdb1c45b12be3c77d48d94f1ac41a7cd1d637fc59ac41f869a250453074e21ce13cfe7ed535593e7d150c08ce2bad7a2ab8c7b841f0",
|
||||
SessionRealmModule(),
|
||||
43,
|
||||
null
|
||||
)
|
||||
configurationFactory.copyRealmFromAssets(context, realmName, realmName)
|
||||
|
||||
try {
|
||||
realm = Realm.getInstance(realmConfiguration)
|
||||
fail("Should need a migration")
|
||||
} catch (failure: Throwable) {
|
||||
// nop
|
||||
}
|
||||
}
|
||||
|
||||
// Database key for alias `session_db_e00482619b2597069b1f192b86de7da9`: efa9ab2c77ae06b0e767ffdb1c45b12be3c77d48d94f1ac41a7cd1d637fc59ac41f869a250453074e21ce13cfe7ed535593e7d150c08ce2bad7a2ab8c7b841f0
|
||||
// $WEJ8U6Zsx3TDZx3qmHIOKh-mXe5kqL_MnPcIkStEwwI
|
||||
// $11EtAQ8RYcudJVtw7e6B5Vm4ufCqKTOWKblY2U_wrpo
|
||||
@Test
|
||||
fun testMigration43() {
|
||||
val realmName = "session_42.realm"
|
||||
val migration = RealmSessionStoreMigration(Normalizer())
|
||||
val realmConfiguration = configurationFactory.createConfiguration(
|
||||
realmName,
|
||||
"efa9ab2c77ae06b0e767ffdb1c45b12be3c77d48d94f1ac41a7cd1d637fc59ac41f869a250453074e21ce13cfe7ed535593e7d150c08ce2bad7a2ab8c7b841f0",
|
||||
SessionRealmModule(),
|
||||
43,
|
||||
migration
|
||||
)
|
||||
configurationFactory.copyRealmFromAssets(context, realmName, realmName)
|
||||
|
||||
realm = Realm.getInstance(realmConfiguration)
|
||||
|
||||
// assert that the edit from 42 are migrated
|
||||
val editions = EventAnnotationsSummaryEntity
|
||||
.where(realm!!, "\$WEJ8U6Zsx3TDZx3qmHIOKh-mXe5kqL_MnPcIkStEwwI")
|
||||
.findFirst()
|
||||
?.editSummary
|
||||
?.editions
|
||||
|
||||
editions shouldNotBe null
|
||||
editions!!.size shouldBe 1
|
||||
val firstEdition = editions.first()
|
||||
firstEdition?.eventId shouldBeEqualTo "\$DvOyA8vJxwGfTaJG3OEJVcL4isShyaVDnprihy38W28"
|
||||
firstEdition?.isLocalEcho shouldBeEqualTo false
|
||||
|
||||
val editEvent = EventMapper.map(firstEdition!!.event!!)
|
||||
val body = editEvent.content.toModel<MessageContent>()?.body
|
||||
body shouldBeEqualTo "* Message 2 with edit"
|
||||
|
||||
// assert that the edit from 42 are migrated
|
||||
val editionsOfE2E = EventAnnotationsSummaryEntity
|
||||
.where(realm!!, "\$11EtAQ8RYcudJVtw7e6B5Vm4ufCqKTOWKblY2U_wrpo")
|
||||
.findFirst()
|
||||
?.editSummary
|
||||
?.editions
|
||||
|
||||
editionsOfE2E shouldNotBe null
|
||||
editionsOfE2E!!.size shouldBe 1
|
||||
val firstEditionE2E = editionsOfE2E.first()
|
||||
firstEditionE2E?.eventId shouldBeEqualTo "\$HUwJOQRCJwfPv7XSKvBPcvncjM0oR3q2tGIIIdv9Zts"
|
||||
firstEditionE2E?.isLocalEcho shouldBeEqualTo false
|
||||
|
||||
val editEventE2E = EventMapper.map(firstEditionE2E!!.event!!)
|
||||
val body2 = editEventE2E.getClearContent().toModel<MessageContent>()?.body
|
||||
body2 shouldBeEqualTo "* Message 2, e2e edit"
|
||||
}
|
||||
}
|
@@ -0,0 +1,64 @@
|
||||
/*
|
||||
* Copyright 2020 The Matrix.org Foundation C.I.C.
|
||||
*
|
||||
* Licensed 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.
|
||||
*/
|
||||
|
||||
package org.matrix.android.sdk.internal.database
|
||||
|
||||
import android.content.Context
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import io.realm.Realm
|
||||
import org.junit.After
|
||||
import org.junit.Before
|
||||
import org.junit.Rule
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.matrix.android.sdk.internal.database.model.SessionRealmModule
|
||||
import org.matrix.android.sdk.internal.util.Normalizer
|
||||
|
||||
@RunWith(AndroidJUnit4::class)
|
||||
class SessionSanityMigrationTest {
|
||||
|
||||
@get:Rule val configurationFactory = TestRealmConfigurationFactory()
|
||||
|
||||
lateinit var context: Context
|
||||
var realm: Realm? = null
|
||||
|
||||
@Before
|
||||
fun setUp() {
|
||||
context = InstrumentationRegistry.getInstrumentation().context
|
||||
}
|
||||
|
||||
@After
|
||||
fun tearDown() {
|
||||
realm?.close()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun sessionDatabaseShouldMigrateGracefully() {
|
||||
val realmName = "session_42.realm"
|
||||
val migration = RealmSessionStoreMigration(Normalizer())
|
||||
val realmConfiguration = configurationFactory.createConfiguration(
|
||||
realmName,
|
||||
"efa9ab2c77ae06b0e767ffdb1c45b12be3c77d48d94f1ac41a7cd1d637fc59ac41f869a250453074e21ce13cfe7ed535593e7d150c08ce2bad7a2ab8c7b841f0",
|
||||
SessionRealmModule(),
|
||||
migration.schemaVersion,
|
||||
migration
|
||||
)
|
||||
configurationFactory.copyRealmFromAssets(context, realmName, realmName)
|
||||
|
||||
realm = Realm.getInstance(realmConfiguration)
|
||||
}
|
||||
}
|
@@ -0,0 +1,196 @@
|
||||
/*
|
||||
* Copyright 2022 The Matrix.org Foundation C.I.C.
|
||||
*
|
||||
* Licensed 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.
|
||||
*/
|
||||
package org.matrix.android.sdk.internal.database
|
||||
|
||||
import android.content.Context
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import io.realm.Realm
|
||||
import io.realm.RealmConfiguration
|
||||
import io.realm.RealmMigration
|
||||
import org.junit.rules.TemporaryFolder
|
||||
import org.junit.runner.Description
|
||||
import org.junit.runners.model.Statement
|
||||
import java.io.File
|
||||
import java.io.FileOutputStream
|
||||
import java.io.IOException
|
||||
import java.io.InputStream
|
||||
import java.lang.IllegalStateException
|
||||
import java.util.Collections
|
||||
import java.util.Locale
|
||||
import java.util.concurrent.ConcurrentHashMap
|
||||
import kotlin.Throws
|
||||
|
||||
/**
|
||||
* Based on https://github.com/realm/realm-java/blob/master/realm/realm-library/src/testUtils/java/io/realm/TestRealmConfigurationFactory.java
|
||||
*/
|
||||
class TestRealmConfigurationFactory : TemporaryFolder() {
|
||||
private val map: Map<RealmConfiguration, Boolean> = ConcurrentHashMap()
|
||||
private val configurations = Collections.newSetFromMap(map)
|
||||
@get:Synchronized private var isUnitTestFailed = false
|
||||
private var testName = ""
|
||||
private var tempFolder: File? = null
|
||||
|
||||
override fun apply(base: Statement, description: Description): Statement {
|
||||
return object : Statement() {
|
||||
@Throws(Throwable::class)
|
||||
override fun evaluate() {
|
||||
setTestName(description)
|
||||
before()
|
||||
try {
|
||||
base.evaluate()
|
||||
} catch (throwable: Throwable) {
|
||||
setUnitTestFailed()
|
||||
throw throwable
|
||||
} finally {
|
||||
after()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Throws(Throwable::class)
|
||||
override fun before() {
|
||||
Realm.init(InstrumentationRegistry.getInstrumentation().targetContext)
|
||||
super.before()
|
||||
}
|
||||
|
||||
override fun after() {
|
||||
try {
|
||||
for (configuration in configurations) {
|
||||
Realm.deleteRealm(configuration)
|
||||
}
|
||||
} catch (e: IllegalStateException) {
|
||||
// Only throws the exception caused by deleting the opened Realm if the test case itself doesn't throw.
|
||||
if (!isUnitTestFailed) {
|
||||
throw e
|
||||
}
|
||||
} finally {
|
||||
// This will delete the temp directory.
|
||||
super.after()
|
||||
}
|
||||
}
|
||||
|
||||
@Throws(IOException::class)
|
||||
override fun create() {
|
||||
super.create()
|
||||
tempFolder = File(super.getRoot(), testName)
|
||||
check(!(tempFolder!!.exists() && !tempFolder!!.delete())) { "Could not delete folder: " + tempFolder!!.absolutePath }
|
||||
check(tempFolder!!.mkdir()) { "Could not create folder: " + tempFolder!!.absolutePath }
|
||||
}
|
||||
|
||||
override fun getRoot(): File {
|
||||
checkNotNull(tempFolder) { "the temporary folder has not yet been created" }
|
||||
return tempFolder!!
|
||||
}
|
||||
|
||||
/**
|
||||
* To be called in the [.apply].
|
||||
*/
|
||||
protected fun setTestName(description: Description) {
|
||||
testName = description.displayName
|
||||
}
|
||||
|
||||
@Synchronized
|
||||
fun setUnitTestFailed() {
|
||||
isUnitTestFailed = true
|
||||
}
|
||||
|
||||
// This builder creates a configuration that is *NOT* managed.
|
||||
// You have to delete it yourself.
|
||||
private fun createConfigurationBuilder(): RealmConfiguration.Builder {
|
||||
return RealmConfiguration.Builder().directory(root)
|
||||
}
|
||||
|
||||
fun String.decodeHex(): ByteArray {
|
||||
check(length % 2 == 0) { "Must have an even length" }
|
||||
return chunked(2)
|
||||
.map { it.toInt(16).toByte() }
|
||||
.toByteArray()
|
||||
}
|
||||
|
||||
fun createConfiguration(
|
||||
name: String,
|
||||
key: String?,
|
||||
module: Any,
|
||||
schemaVersion: Long,
|
||||
migration: RealmMigration?
|
||||
): RealmConfiguration {
|
||||
val builder = createConfigurationBuilder()
|
||||
builder
|
||||
.directory(root)
|
||||
.name(name)
|
||||
.apply {
|
||||
if (key != null) {
|
||||
encryptionKey(key.decodeHex())
|
||||
}
|
||||
}
|
||||
.modules(module)
|
||||
// Allow writes on UI
|
||||
.allowWritesOnUiThread(true)
|
||||
.schemaVersion(schemaVersion)
|
||||
.apply {
|
||||
migration?.let { migration(it) }
|
||||
}
|
||||
val configuration = builder.build()
|
||||
configurations.add(configuration)
|
||||
return configuration
|
||||
}
|
||||
|
||||
// Copies a Realm file from assets to temp dir
|
||||
@Throws(IOException::class)
|
||||
fun copyRealmFromAssets(context: Context, realmPath: String, newName: String) {
|
||||
val config = RealmConfiguration.Builder()
|
||||
.directory(root)
|
||||
.name(newName)
|
||||
.build()
|
||||
copyRealmFromAssets(context, realmPath, config)
|
||||
}
|
||||
|
||||
@Throws(IOException::class)
|
||||
fun copyRealmFromAssets(context: Context, realmPath: String, config: RealmConfiguration) {
|
||||
check(!File(config.path).exists()) { String.format(Locale.ENGLISH, "%s exists!", config.path) }
|
||||
val outFile = File(config.realmDirectory, config.realmFileName)
|
||||
copyFileFromAssets(context, realmPath, outFile)
|
||||
}
|
||||
|
||||
@Throws(IOException::class)
|
||||
fun copyFileFromAssets(context: Context, assetPath: String?, outFile: File?) {
|
||||
var stream: InputStream? = null
|
||||
var os: FileOutputStream? = null
|
||||
try {
|
||||
stream = context.assets.open(assetPath!!)
|
||||
os = FileOutputStream(outFile)
|
||||
val buf = ByteArray(1024)
|
||||
var bytesRead: Int
|
||||
while (stream.read(buf).also { bytesRead = it } > -1) {
|
||||
os.write(buf, 0, bytesRead)
|
||||
}
|
||||
} finally {
|
||||
if (stream != null) {
|
||||
try {
|
||||
stream.close()
|
||||
} catch (ignore: IOException) {
|
||||
}
|
||||
}
|
||||
if (os != null) {
|
||||
try {
|
||||
os.close()
|
||||
} catch (ignore: IOException) {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -66,7 +66,7 @@ class PollAggregationTest : InstrumentedTest {
|
||||
|
||||
val aliceEventsListener = object : Timeline.Listener {
|
||||
override fun onTimelineUpdated(snapshot: List<TimelineEvent>) {
|
||||
snapshot.firstOrNull { it.root.getClearType() in EventType.POLL_START }?.let { pollEvent ->
|
||||
snapshot.firstOrNull { it.root.getClearType() in EventType.POLL_START.values }?.let { pollEvent ->
|
||||
val pollEventId = pollEvent.eventId
|
||||
val pollContent = pollEvent.root.content?.toModel<MessagePollContent>()
|
||||
val pollSummary = pollEvent.annotations?.pollResponseSummary
|
||||
|
@@ -20,6 +20,9 @@ import okhttp3.ConnectionSpec
|
||||
import okhttp3.Interceptor
|
||||
import org.matrix.android.sdk.api.crypto.MXCryptoConfig
|
||||
import org.matrix.android.sdk.api.metrics.MetricPlugin
|
||||
import org.matrix.android.sdk.api.provider.CustomEventTypesProvider
|
||||
import org.matrix.android.sdk.api.provider.MatrixItemDisplayNameFallbackProvider
|
||||
import org.matrix.android.sdk.api.provider.RoomDisplayNameFallbackProvider
|
||||
import java.net.Proxy
|
||||
|
||||
data class MatrixConfiguration(
|
||||
@@ -66,7 +69,7 @@ data class MatrixConfiguration(
|
||||
/**
|
||||
* Thread messages default enable/disabled value.
|
||||
*/
|
||||
val threadMessagesEnabledDefault: Boolean = false,
|
||||
val threadMessagesEnabledDefault: Boolean = true,
|
||||
/**
|
||||
* List of network interceptors, they will be added when building an OkHttp client.
|
||||
*/
|
||||
@@ -75,9 +78,12 @@ data class MatrixConfiguration(
|
||||
* Sync configuration.
|
||||
*/
|
||||
val syncConfig: SyncConfig = SyncConfig(),
|
||||
|
||||
/**
|
||||
* Metrics plugin that can be used to capture metrics from matrix-sdk-android.
|
||||
*/
|
||||
val metricPlugins: List<MetricPlugin> = emptyList()
|
||||
val metricPlugins: List<MetricPlugin> = emptyList(),
|
||||
/**
|
||||
* CustomEventTypesProvider to provide custom event types to the sdk which should be processed with internal events.
|
||||
*/
|
||||
val customEventTypesProvider: CustomEventTypesProvider? = null,
|
||||
)
|
||||
|
@@ -16,9 +16,13 @@
|
||||
|
||||
package org.matrix.android.sdk.api
|
||||
|
||||
import org.matrix.android.sdk.api.session.sync.filter.SyncFilterParams
|
||||
|
||||
data class SyncConfig(
|
||||
/**
|
||||
* Time to keep sync connection alive for before making another request in milliseconds.
|
||||
*/
|
||||
val longPollTimeout: Long = 30_000L,
|
||||
|
||||
val syncFilterParams: SyncFilterParams = SyncFilterParams()
|
||||
)
|
||||
|
@@ -21,5 +21,6 @@ import com.squareup.moshi.JsonClass
|
||||
|
||||
@JsonClass(generateAdapter = true)
|
||||
data class LocalNotificationSettingsContent(
|
||||
@Json(name = "is_silenced") val isSilenced: Boolean = false
|
||||
@Json(name = "is_silenced")
|
||||
val isSilenced: Boolean?
|
||||
)
|
||||
|
@@ -125,12 +125,6 @@ interface AuthenticationService {
|
||||
deviceId: String? = null
|
||||
): Session
|
||||
|
||||
/**
|
||||
* @param homeServerConnectionConfig the information about the homeserver and other configuration
|
||||
* Return true if qr code login is supported by the server, false otherwise.
|
||||
*/
|
||||
suspend fun isQrLoginSupported(homeServerConnectionConfig: HomeServerConnectionConfig): Boolean
|
||||
|
||||
/**
|
||||
* Authenticate using m.login.token method during sign in with QR code.
|
||||
* @param homeServerConnectionConfig the information about the homeserver and other configuration
|
||||
|
@@ -22,5 +22,6 @@ data class LoginFlowResult(
|
||||
val isLoginAndRegistrationSupported: Boolean,
|
||||
val homeServerUrl: String,
|
||||
val isOutdatedHomeserver: Boolean,
|
||||
val isLogoutDevicesSupported: Boolean
|
||||
val isLogoutDevicesSupported: Boolean,
|
||||
val isLoginWithQrSupported: Boolean,
|
||||
)
|
||||
|
@@ -0,0 +1,30 @@
|
||||
/*
|
||||
* Copyright 2022 The Matrix.org Foundation C.I.C.
|
||||
*
|
||||
* Licensed 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.
|
||||
*/
|
||||
|
||||
package org.matrix.android.sdk.api.provider
|
||||
|
||||
import org.matrix.android.sdk.api.session.room.model.RoomSummary
|
||||
|
||||
/**
|
||||
* Provide custom event types which should be processed with the internal event types.
|
||||
*/
|
||||
interface CustomEventTypesProvider {
|
||||
|
||||
/**
|
||||
* Custom event types to include when computing [RoomSummary.latestPreviewableEvent].
|
||||
*/
|
||||
val customPreviewableEventTypes: List<String>
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user