From 2badb9725df057a550dd8e922091f4202af41e7f Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 14 Sep 2021 15:56:04 +0200 Subject: [PATCH 01/55] Improve pull request checklist and notice --- .github/PULL_REQUEST_TEMPLATE.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 8fbc5602fe..2048b823f0 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,10 +1,16 @@ ### Pull Request Checklist - + - [ ] Changes has been tested on an Android device or Android emulator with API 21 - [ ] UI change has been tested on both light and dark themes +- [ ] Accessibility has been taken into account. See https://github.com/vector-im/element-android/blob/develop/CONTRIBUTING.md#accessibility - [ ] Pull request is based on the develop branch - [ ] Pull request includes a new file under ./changelog.d. See https://github.com/vector-im/element-android/blob/develop/CONTRIBUTING.md#changelog - [ ] Pull request includes screenshots or videos if containing UI changes - [ ] Pull request includes a [sign off](https://github.com/matrix-org/synapse/blob/master/CONTRIBUTING.md#sign-off) +- [ ] You've made a self review of your PR +- [ ] If you have modified the screen flow, or added new screens to the application, you have updated the test [UiAllScreensSanityTest.allScreensTest()](https://github.com/vector-im/element-android/blob/main/vector/src/androidTest/java/im/vector/app/ui/UiAllScreensSanityTest.kt#L73) \ No newline at end of file From 1c2997e40eeccc3c06a5368fb6d6607e7a082277 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 14 Sep 2021 15:57:24 +0200 Subject: [PATCH 02/55] `SpUsage` lint rule is more about a11y --- vector/lint.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vector/lint.xml b/vector/lint.xml index 3fca617dee..dde29af62e 100644 --- a/vector/lint.xml +++ b/vector/lint.xml @@ -21,12 +21,12 @@ + - From 7ca089b3d7a19c62176c26e3eef7872ad86ce591 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 14 Sep 2021 15:59:53 +0200 Subject: [PATCH 03/55] Update section about a11y --- CONTRIBUTING.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 610a6227b7..e1d213e6b7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -148,6 +148,8 @@ The string will be removed during the next sync with Weblate. Please consider accessibility as an important point. As a minimum requirement, in layout XML files please use attributes such as `android:contentDescription` and `android:importantForAccessibility`, and test with a screen reader if it's working well. You can add new string resources, dedicated to accessibility, in this case, please prefix theirs id with `a11y_`. +For instance, when updating the image `src` of an ImageView, please also consider updating its `contentDescription`. A good example is a play pause button. + ### Layout When adding or editing layouts, make sure the layout will render correctly if device uses a RTL (Right To Left) language. From 5b5dcf988d33b88686da404ff3e3367d115cade7 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Mon, 27 Sep 2021 13:09:58 +0200 Subject: [PATCH 04/55] Version++ --- vector/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vector/build.gradle b/vector/build.gradle index 7ef880730a..1b04d55a65 100644 --- a/vector/build.gradle +++ b/vector/build.gradle @@ -14,7 +14,7 @@ kapt { // Note: 2 digits max for each value ext.versionMajor = 1 ext.versionMinor = 3 -ext.versionPatch = 0 +ext.versionPatch = 1 static def getGitTimestamp() { def cmd = 'git show -s --format=%ct' From 465b8bfe05e1b3684e5213fb6344c84ebe9928a0 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Mon, 27 Sep 2021 13:11:15 +0200 Subject: [PATCH 05/55] Version++ --- matrix-sdk-android/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/matrix-sdk-android/build.gradle b/matrix-sdk-android/build.gradle index f50a6c2e92..2be6106d41 100644 --- a/matrix-sdk-android/build.gradle +++ b/matrix-sdk-android/build.gradle @@ -31,7 +31,7 @@ android { // that the app's state is completely cleared between tests. testInstrumentationRunnerArguments clearPackageData: 'true' - buildConfigField "String", "SDK_VERSION", "\"1.2.2\"" + buildConfigField "String", "SDK_VERSION", "\"1.3.1\"" buildConfigField "String", "GIT_SDK_REVISION", "\"${gitRevision()}\"" resValue "string", "git_sdk_revision", "\"${gitRevision()}\"" From 224aac7c7368515008d74780d6f0b8d0c368c3ac Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Mon, 27 Sep 2021 15:41:17 +0200 Subject: [PATCH 06/55] Small change in the recipe to release the SDK --- .github/ISSUE_TEMPLATE/release.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/release.yml b/.github/ISSUE_TEMPLATE/release.yml index 44e66fe9cd..4fecde2e90 100644 --- a/.github/ISSUE_TEMPLATE/release.yml +++ b/.github/ISSUE_TEMPLATE/release.yml @@ -71,14 +71,14 @@ body: 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` - - [ ] Update the version in `./matrix-sdk-android/build.gradle` - - [ ] Check the diff on this file and restore what may have been erased (in particular the line `apply plugin: "com.vanniktech.maven.publish"`) + - [ ] 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` - - [ ] Update the value of VERSION_NAME in the file gradle.properties - [ ] Finish the release using GitFlow + - [ ] Push the branch `main`, the new tag and the branch `develop` to origin ##### Release on MavenCentral From e6eb86538fe0cace77092ca4dd508ecb8242479f Mon Sep 17 00:00:00 2001 From: Adam Brown Date: Mon, 27 Sep 2021 16:57:05 +0100 Subject: [PATCH 07/55] wrapping the Dispatcher.IO and making it injectable for testing --- .../im/vector/app/core/di/VectorComponent.kt | 3 +++ .../im/vector/app/core/di/VectorModule.kt | 8 +++++++ .../core/dispatchers/CoroutineDispatchers.kt | 22 +++++++++++++++++++ 3 files changed, 33 insertions(+) create mode 100644 vector/src/main/java/im/vector/app/core/dispatchers/CoroutineDispatchers.kt diff --git a/vector/src/main/java/im/vector/app/core/di/VectorComponent.kt b/vector/src/main/java/im/vector/app/core/di/VectorComponent.kt index ca26c99a15..a8bf128367 100644 --- a/vector/src/main/java/im/vector/app/core/di/VectorComponent.kt +++ b/vector/src/main/java/im/vector/app/core/di/VectorComponent.kt @@ -26,6 +26,7 @@ import im.vector.app.EmojiCompatFontProvider import im.vector.app.EmojiCompatWrapper import im.vector.app.VectorApplication import im.vector.app.core.dialogs.UnrecognizedCertificateDialog +import im.vector.app.core.dispatchers.CoroutineDispatchers import im.vector.app.core.error.ErrorFormatter import im.vector.app.core.network.WifiDetector import im.vector.app.core.pushers.PushersManager @@ -171,6 +172,8 @@ interface VectorComponent { fun appCoroutineScope(): CoroutineScope + fun coroutineDispatchers(): CoroutineDispatchers + fun jitsiActiveConferenceHolder(): JitsiActiveConferenceHolder @Component.Factory diff --git a/vector/src/main/java/im/vector/app/core/di/VectorModule.kt b/vector/src/main/java/im/vector/app/core/di/VectorModule.kt index dd1ffee8ec..c552d8a5db 100644 --- a/vector/src/main/java/im/vector/app/core/di/VectorModule.kt +++ b/vector/src/main/java/im/vector/app/core/di/VectorModule.kt @@ -23,6 +23,7 @@ import android.content.res.Resources import dagger.Binds import dagger.Module import dagger.Provides +import im.vector.app.core.dispatchers.CoroutineDispatchers import im.vector.app.core.error.DefaultErrorFormatter import im.vector.app.core.error.ErrorFormatter import im.vector.app.features.invite.AutoAcceptInvites @@ -33,6 +34,7 @@ import im.vector.app.features.pin.PinCodeStore import im.vector.app.features.pin.SharedPrefPinCodeStore import im.vector.app.features.ui.SharedPreferencesUiStateRepository import im.vector.app.features.ui.UiStateRepository +import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.SupervisorJob @@ -105,6 +107,12 @@ abstract class VectorModule { fun providesApplicationCoroutineScope(): CoroutineScope { return CoroutineScope(SupervisorJob() + Dispatchers.Main) } + + @Provides + @JvmStatic + fun providesCoroutineDispatchers(): CoroutineDispatchers { + return CoroutineDispatchers(io = Dispatchers.IO) + } } @Binds diff --git a/vector/src/main/java/im/vector/app/core/dispatchers/CoroutineDispatchers.kt b/vector/src/main/java/im/vector/app/core/dispatchers/CoroutineDispatchers.kt new file mode 100644 index 0000000000..c489290a55 --- /dev/null +++ b/vector/src/main/java/im/vector/app/core/dispatchers/CoroutineDispatchers.kt @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2021 New Vector Ltd + * + * 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 im.vector.app.core.dispatchers + +import kotlinx.coroutines.CoroutineDispatcher +import javax.inject.Inject + +data class CoroutineDispatchers @Inject constructor(val io: CoroutineDispatcher) From 789cc6b597b61acf420f8943d84b318cef27c941 Mon Sep 17 00:00:00 2001 From: Adam Brown Date: Mon, 27 Sep 2021 17:16:36 +0100 Subject: [PATCH 08/55] exlcuding the slf4j logger from the test dependencies the videocache dependency includes slf4j which in turn causes mockk to reflectively attempt to call real Log functions, which crashes the units tests due to the stub android.jar --- vector/build.gradle | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/vector/build.gradle b/vector/build.gradle index d60f928f2c..1b28422eca 100644 --- a/vector/build.gradle +++ b/vector/build.gradle @@ -314,6 +314,11 @@ android { } } +configurations { + // videocache includes a sl4j logger which causes mockk to attempt to call the static android Log + testImplementation.exclude group: 'org.slf4j', module: 'slf4j-android' +} + dependencies { implementation project(":matrix-sdk-android") @@ -490,6 +495,7 @@ dependencies { // TESTS testImplementation libs.tests.junit testImplementation libs.tests.kluent + testImplementation libs.mockk.mockk // Plant Timber tree for test testImplementation libs.tests.timberJunitRule From ac0c7067e0e3af3970ae1afbf68a23170f5f56a8 Mon Sep 17 00:00:00 2001 From: Adam Brown Date: Mon, 27 Sep 2021 17:18:13 +0100 Subject: [PATCH 09/55] updating the keys exporter to validate the generated file size in an attempt to warn the user of malformed outputs - injects the io dispatcher to allow the testing - adds unit tests around the different error flows --- .../app/features/crypto/keys/KeysExporter.kt | 26 +++- .../features/crypto/keys/KeysExporterTest.kt | 137 ++++++++++++++++++ 2 files changed, 160 insertions(+), 3 deletions(-) create mode 100644 vector/src/test/java/im/vector/app/features/crypto/keys/KeysExporterTest.kt diff --git a/vector/src/main/java/im/vector/app/features/crypto/keys/KeysExporter.kt b/vector/src/main/java/im/vector/app/features/crypto/keys/KeysExporter.kt index 2c66a14cb4..53ec517d47 100644 --- a/vector/src/main/java/im/vector/app/features/crypto/keys/KeysExporter.kt +++ b/vector/src/main/java/im/vector/app/features/crypto/keys/KeysExporter.kt @@ -18,6 +18,7 @@ package im.vector.app.features.crypto.keys import android.content.Context import android.net.Uri +import im.vector.app.core.dispatchers.CoroutineDispatchers import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import org.matrix.android.sdk.api.session.Session @@ -25,17 +26,36 @@ import javax.inject.Inject class KeysExporter @Inject constructor( private val session: Session, - private val context: Context + private val context: Context, + private val dispatchers: CoroutineDispatchers ) { /** * Export keys and write them to the provided uri */ suspend fun export(password: String, uri: Uri) { - return withContext(Dispatchers.IO) { + withContext(dispatchers.io) { val data = session.cryptoService().exportRoomKeys(password) context.contentResolver.openOutputStream(uri) ?.use { it.write(data) } - ?: throw IllegalStateException("Unable to open file for writting") + ?: throw IllegalStateException("Unable to open file for writing") + verifyExportedKeysOutputFileSize(uri, expectedSize = data.size.toLong()) + } + } + + private fun verifyExportedKeysOutputFileSize(uri: Uri, expectedSize: Long) { + val output = context.contentResolver.openFileDescriptor(uri, "r", null) + when { + output == null -> throw IllegalStateException("Exported file not found") + output.statSize != expectedSize -> { + throw UnexpectedExportKeysFileSizeException( + expectedFileSize = output.statSize, + actualFileSize = expectedSize, + ) + } } } } + +class UnexpectedExportKeysFileSizeException(expectedFileSize: Long, actualFileSize: Long) : IllegalStateException( + "Exported Keys file has unexpected file size, got: $actualFileSize but expected: $expectedFileSize" +) diff --git a/vector/src/test/java/im/vector/app/features/crypto/keys/KeysExporterTest.kt b/vector/src/test/java/im/vector/app/features/crypto/keys/KeysExporterTest.kt new file mode 100644 index 0000000000..630a96eb36 --- /dev/null +++ b/vector/src/test/java/im/vector/app/features/crypto/keys/KeysExporterTest.kt @@ -0,0 +1,137 @@ +/* + * Copyright (c) 2021 New Vector Ltd + * + * 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 im.vector.app.features.crypto.keys + +import android.content.ContentResolver +import android.content.Context +import android.net.Uri +import android.os.ParcelFileDescriptor +import im.vector.app.core.dispatchers.CoroutineDispatchers +import io.mockk.every +import io.mockk.mockk +import io.mockk.verify +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.runBlocking +import org.amshove.kluent.internal.assertFailsWith +import org.junit.Before +import org.junit.Test +import org.matrix.android.sdk.api.session.Session +import org.matrix.android.sdk.api.session.crypto.CryptoService +import java.io.OutputStream + +private val A_URI = mockk() +private val A_ROOM_KEYS_EXPORT = ByteArray(size = 111) +private const val A_PASSWORD = "a password" + +class KeysExporterTest { + + private val cryptoService = FakeCryptoService() + private val context = FakeContext() + private val keysExporter = KeysExporter( + session = FakeSession(cryptoService = cryptoService), + context = context.instance, + dispatchers = CoroutineDispatchers(Dispatchers.Unconfined), + ) + + @Before + fun setUp() { + cryptoService.roomKeysExport = A_ROOM_KEYS_EXPORT + } + + @Test + fun `when exporting then writes exported keys to context output stream`() { + givenFileDescriptorWithSize(size = A_ROOM_KEYS_EXPORT.size.toLong()) + val outputStream = context.givenOutputStreamFor(A_URI) + + runBlocking { keysExporter.export(A_PASSWORD, A_URI) } + + verify { outputStream.write(A_ROOM_KEYS_EXPORT) } + } + + @Test + fun `given different file size returned for export when exporting then throws UnexpectedExportKeysFileSizeException`() { + givenFileDescriptorWithSize(size = 110) + context.givenOutputStreamFor(A_URI) + + assertFailsWith { + runBlocking { keysExporter.export(A_PASSWORD, A_URI) } + } + } + + @Test + fun `given output stream is unavailable for exporting to when exporting then throws IllegalStateException`() { + context.givenMissingOutputStreamFor(A_URI) + + assertFailsWith(message = "Unable to open file for writing") { + runBlocking { keysExporter.export(A_PASSWORD, A_URI) } + } + } + + @Test + fun `given exported file is missing after export when exporting then throws IllegalStateException`() { + context.givenFileDescriptor(A_URI, mode = "r") { null } + context.givenOutputStreamFor(A_URI) + + assertFailsWith(message = "Exported file not found") { + runBlocking { keysExporter.export(A_PASSWORD, A_URI) } + } + } + + private fun givenFileDescriptorWithSize(size: Long) { + context.givenFileDescriptor(A_URI, mode = "r") { + mockk().also { every { it.statSize } returns size } + } + } +} + +class FakeContext { + + private val contentResolver = mockk() + val instance = mockk() + + init { + every { instance.contentResolver } returns contentResolver + } + + fun givenFileDescriptor(uri: Uri, mode: String, factory: () -> ParcelFileDescriptor?) { + val fileDescriptor = factory() + every { contentResolver.openFileDescriptor(uri, mode, null) } returns fileDescriptor + } + + fun givenOutputStreamFor(uri: Uri): OutputStream { + val outputStream = mockk(relaxed = true) + every { contentResolver.openOutputStream(uri) } returns outputStream + return outputStream + } + + fun givenMissingOutputStreamFor(uri: Uri) { + every { contentResolver.openOutputStream(uri) } returns null + } +} + +class FakeSession( + private val cryptoService: CryptoService = FakeCryptoService() +) : Session by mockk(relaxed = true) { + override fun cryptoService() = cryptoService +} + +class FakeCryptoService : CryptoService by mockk() { + + var roomKeysExport = ByteArray(size = 1) + + override suspend fun exportRoomKeys(password: String) = roomKeysExport +} From 509c61c1a85df0a2623a6b631d8b9c7e2f483aed Mon Sep 17 00:00:00 2001 From: Adam Brown Date: Mon, 27 Sep 2021 17:19:39 +0100 Subject: [PATCH 10/55] extracting the test fakes to their own package --- .../features/crypto/keys/KeysExporterTest.kt | 46 ++--------------- .../im/vector/app/test/fakes/FakeContext.kt | 50 +++++++++++++++++++ .../app/test/fakes/FakeCryptoService.kt | 27 ++++++++++ .../im/vector/app/test/fakes/FakeSession.kt | 27 ++++++++++ 4 files changed, 107 insertions(+), 43 deletions(-) create mode 100644 vector/src/test/java/im/vector/app/test/fakes/FakeContext.kt create mode 100644 vector/src/test/java/im/vector/app/test/fakes/FakeCryptoService.kt create mode 100644 vector/src/test/java/im/vector/app/test/fakes/FakeSession.kt diff --git a/vector/src/test/java/im/vector/app/features/crypto/keys/KeysExporterTest.kt b/vector/src/test/java/im/vector/app/features/crypto/keys/KeysExporterTest.kt index 630a96eb36..130dbde73e 100644 --- a/vector/src/test/java/im/vector/app/features/crypto/keys/KeysExporterTest.kt +++ b/vector/src/test/java/im/vector/app/features/crypto/keys/KeysExporterTest.kt @@ -16,11 +16,12 @@ package im.vector.app.features.crypto.keys -import android.content.ContentResolver -import android.content.Context import android.net.Uri import android.os.ParcelFileDescriptor import im.vector.app.core.dispatchers.CoroutineDispatchers +import im.vector.app.test.fakes.FakeContext +import im.vector.app.test.fakes.FakeCryptoService +import im.vector.app.test.fakes.FakeSession import io.mockk.every import io.mockk.mockk import io.mockk.verify @@ -29,9 +30,6 @@ import kotlinx.coroutines.runBlocking import org.amshove.kluent.internal.assertFailsWith import org.junit.Before import org.junit.Test -import org.matrix.android.sdk.api.session.Session -import org.matrix.android.sdk.api.session.crypto.CryptoService -import java.io.OutputStream private val A_URI = mockk() private val A_ROOM_KEYS_EXPORT = ByteArray(size = 111) @@ -97,41 +95,3 @@ class KeysExporterTest { } } } - -class FakeContext { - - private val contentResolver = mockk() - val instance = mockk() - - init { - every { instance.contentResolver } returns contentResolver - } - - fun givenFileDescriptor(uri: Uri, mode: String, factory: () -> ParcelFileDescriptor?) { - val fileDescriptor = factory() - every { contentResolver.openFileDescriptor(uri, mode, null) } returns fileDescriptor - } - - fun givenOutputStreamFor(uri: Uri): OutputStream { - val outputStream = mockk(relaxed = true) - every { contentResolver.openOutputStream(uri) } returns outputStream - return outputStream - } - - fun givenMissingOutputStreamFor(uri: Uri) { - every { contentResolver.openOutputStream(uri) } returns null - } -} - -class FakeSession( - private val cryptoService: CryptoService = FakeCryptoService() -) : Session by mockk(relaxed = true) { - override fun cryptoService() = cryptoService -} - -class FakeCryptoService : CryptoService by mockk() { - - var roomKeysExport = ByteArray(size = 1) - - override suspend fun exportRoomKeys(password: String) = roomKeysExport -} diff --git a/vector/src/test/java/im/vector/app/test/fakes/FakeContext.kt b/vector/src/test/java/im/vector/app/test/fakes/FakeContext.kt new file mode 100644 index 0000000000..8dec510f5a --- /dev/null +++ b/vector/src/test/java/im/vector/app/test/fakes/FakeContext.kt @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2021 New Vector Ltd + * + * 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 im.vector.app.test.fakes + +import android.content.ContentResolver +import android.content.Context +import android.net.Uri +import android.os.ParcelFileDescriptor +import io.mockk.every +import io.mockk.mockk +import java.io.OutputStream + +class FakeContext { + + private val contentResolver = mockk() + val instance = mockk() + + init { + every { instance.contentResolver } returns contentResolver + } + + fun givenFileDescriptor(uri: Uri, mode: String, factory: () -> ParcelFileDescriptor?) { + val fileDescriptor = factory() + every { contentResolver.openFileDescriptor(uri, mode, null) } returns fileDescriptor + } + + fun givenOutputStreamFor(uri: Uri): OutputStream { + val outputStream = mockk(relaxed = true) + every { contentResolver.openOutputStream(uri) } returns outputStream + return outputStream + } + + fun givenMissingOutputStreamFor(uri: Uri) { + every { contentResolver.openOutputStream(uri) } returns null + } +} diff --git a/vector/src/test/java/im/vector/app/test/fakes/FakeCryptoService.kt b/vector/src/test/java/im/vector/app/test/fakes/FakeCryptoService.kt new file mode 100644 index 0000000000..735af4ea11 --- /dev/null +++ b/vector/src/test/java/im/vector/app/test/fakes/FakeCryptoService.kt @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2021 New Vector Ltd + * + * 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 im.vector.app.test.fakes + +import io.mockk.mockk +import org.matrix.android.sdk.api.session.crypto.CryptoService + +class FakeCryptoService : CryptoService by mockk() { + + var roomKeysExport = ByteArray(size = 1) + + override suspend fun exportRoomKeys(password: String) = roomKeysExport +} diff --git a/vector/src/test/java/im/vector/app/test/fakes/FakeSession.kt b/vector/src/test/java/im/vector/app/test/fakes/FakeSession.kt new file mode 100644 index 0000000000..3400436705 --- /dev/null +++ b/vector/src/test/java/im/vector/app/test/fakes/FakeSession.kt @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2021 New Vector Ltd + * + * 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 im.vector.app.test.fakes + +import io.mockk.mockk +import org.matrix.android.sdk.api.session.Session +import org.matrix.android.sdk.api.session.crypto.CryptoService + +class FakeSession( + private val cryptoService: CryptoService = FakeCryptoService() +) : Session by mockk(relaxed = true) { + override fun cryptoService() = cryptoService +} From 6df03fc13b2299485884db7a29240db13f65ae44 Mon Sep 17 00:00:00 2001 From: Adam Brown Date: Mon, 27 Sep 2021 17:28:06 +0100 Subject: [PATCH 11/55] adding changelog entry --- changelog.d/4082.bugfix | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelog.d/4082.bugfix diff --git a/changelog.d/4082.bugfix b/changelog.d/4082.bugfix new file mode 100644 index 0000000000..9ec8d4db97 --- /dev/null +++ b/changelog.d/4082.bugfix @@ -0,0 +1 @@ +Verifying exported E2E keys to provide user feedback when the output is malformed \ No newline at end of file From 19d1d981c32e899a5bfe8995e102cbf0255c6c17 Mon Sep 17 00:00:00 2001 From: Adam Brown Date: Mon, 27 Sep 2021 17:39:21 +0100 Subject: [PATCH 12/55] linting --- vector/src/main/java/im/vector/app/core/di/VectorModule.kt | 1 - .../java/im/vector/app/features/crypto/keys/KeysExporter.kt | 3 +-- .../im/vector/app/features/crypto/keys/KeysExporterTest.kt | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/vector/src/main/java/im/vector/app/core/di/VectorModule.kt b/vector/src/main/java/im/vector/app/core/di/VectorModule.kt index c552d8a5db..ddb765cef8 100644 --- a/vector/src/main/java/im/vector/app/core/di/VectorModule.kt +++ b/vector/src/main/java/im/vector/app/core/di/VectorModule.kt @@ -34,7 +34,6 @@ import im.vector.app.features.pin.PinCodeStore import im.vector.app.features.pin.SharedPrefPinCodeStore import im.vector.app.features.ui.SharedPreferencesUiStateRepository import im.vector.app.features.ui.UiStateRepository -import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.SupervisorJob diff --git a/vector/src/main/java/im/vector/app/features/crypto/keys/KeysExporter.kt b/vector/src/main/java/im/vector/app/features/crypto/keys/KeysExporter.kt index 53ec517d47..8eb4fafc68 100644 --- a/vector/src/main/java/im/vector/app/features/crypto/keys/KeysExporter.kt +++ b/vector/src/main/java/im/vector/app/features/crypto/keys/KeysExporter.kt @@ -19,7 +19,6 @@ package im.vector.app.features.crypto.keys import android.content.Context import android.net.Uri import im.vector.app.core.dispatchers.CoroutineDispatchers -import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import org.matrix.android.sdk.api.session.Session import javax.inject.Inject @@ -49,7 +48,7 @@ class KeysExporter @Inject constructor( output.statSize != expectedSize -> { throw UnexpectedExportKeysFileSizeException( expectedFileSize = output.statSize, - actualFileSize = expectedSize, + actualFileSize = expectedSize ) } } diff --git a/vector/src/test/java/im/vector/app/features/crypto/keys/KeysExporterTest.kt b/vector/src/test/java/im/vector/app/features/crypto/keys/KeysExporterTest.kt index 130dbde73e..a8997db855 100644 --- a/vector/src/test/java/im/vector/app/features/crypto/keys/KeysExporterTest.kt +++ b/vector/src/test/java/im/vector/app/features/crypto/keys/KeysExporterTest.kt @@ -42,7 +42,7 @@ class KeysExporterTest { private val keysExporter = KeysExporter( session = FakeSession(cryptoService = cryptoService), context = context.instance, - dispatchers = CoroutineDispatchers(Dispatchers.Unconfined), + dispatchers = CoroutineDispatchers(Dispatchers.Unconfined) ) @Before From 399b2a13ee1803d4c8247181cae1fd5d5ba43e64 Mon Sep 17 00:00:00 2001 From: Adam Brown Date: Mon, 27 Sep 2021 18:08:32 +0100 Subject: [PATCH 13/55] fixing exception message parameter ordering --- .../java/im/vector/app/features/crypto/keys/KeysExporter.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vector/src/main/java/im/vector/app/features/crypto/keys/KeysExporter.kt b/vector/src/main/java/im/vector/app/features/crypto/keys/KeysExporter.kt index 8eb4fafc68..3db67df8e1 100644 --- a/vector/src/main/java/im/vector/app/features/crypto/keys/KeysExporter.kt +++ b/vector/src/main/java/im/vector/app/features/crypto/keys/KeysExporter.kt @@ -47,8 +47,8 @@ class KeysExporter @Inject constructor( output == null -> throw IllegalStateException("Exported file not found") output.statSize != expectedSize -> { throw UnexpectedExportKeysFileSizeException( - expectedFileSize = output.statSize, - actualFileSize = expectedSize + expectedFileSize = expectedSize, + actualFileSize = output.statSize ) } } From 4cb735fec5b61581ffb0bc0b1ece13a4140258ba Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Sep 2021 23:13:27 +0000 Subject: [PATCH 14/55] Bump constraintlayout from 2.1.0 to 2.1.1 Bumps [constraintlayout](https://github.com/androidx/constraintlayout) from 2.1.0 to 2.1.1. - [Release notes](https://github.com/androidx/constraintlayout/releases) - [Commits](https://github.com/androidx/constraintlayout/commits) --- updated-dependencies: - dependency-name: androidx.constraintlayout:constraintlayout dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- dependencies.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dependencies.gradle b/dependencies.gradle index a4e2c60387..f3aed55cb0 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -47,7 +47,7 @@ ext.libs = [ 'recyclerview' : "androidx.recyclerview:recyclerview:1.2.1", 'exifinterface' : "androidx.exifinterface:exifinterface:1.3.3", 'fragmentKtx' : "androidx.fragment:fragment-ktx:1.3.6", - 'constraintLayout' : "androidx.constraintlayout:constraintlayout:2.1.0", + 'constraintLayout' : "androidx.constraintlayout:constraintlayout:2.1.1", 'work' : "androidx.work:work-runtime-ktx:2.5.0", 'autoFill' : "androidx.autofill:autofill:1.1.0", 'preferenceKtx' : "androidx.preference:preference-ktx:1.1.1", From 7d7ea3b9ada68b243f98e235bccff04ab1e063b7 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 28 Sep 2021 11:29:30 +0200 Subject: [PATCH 15/55] Avoid multiple PRs from Dependabot when a new version of com.vanniktech:emoji* is available Not updating the vesion here, dependabot will do it. --- dependencies.gradle | 5 +++++ vector/build.gradle | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/dependencies.gradle b/dependencies.gradle index a4e2c60387..b6f279e94a 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -22,6 +22,7 @@ def epoxy = "4.6.2" def glide = "4.12.0" def bigImageViewer = "1.8.1" def jjwt = "0.11.2" +def vanniktechEmoji = "0.7.0" // Testing def mockk = "1.12.0" @@ -122,6 +123,10 @@ ext.libs = [ 'jjwtImpl' : "io.jsonwebtoken:jjwt-impl:$jjwt", 'jjwtOrgjson' : "io.jsonwebtoken:jjwt-orgjson:$jjwt" ], + vanniktech: [ + 'emojiMaterial' : "com.vanniktech:emoji-material:$vanniktechEmoji", + 'emojiGoogle' : "com.vanniktech:emoji-google:$vanniktechEmoji" + ], tests : [ 'kluent' : "org.amshove.kluent:kluent-android:1.68", 'timberJunitRule' : "net.lachlanmckee:timber-junit-rule:1.0.1", diff --git a/vector/build.gradle b/vector/build.gradle index 1b04d55a65..69339cf214 100644 --- a/vector/build.gradle +++ b/vector/build.gradle @@ -473,8 +473,8 @@ dependencies { implementation 'me.dm7.barcodescanner:zxing:1.9.13' // Emoji Keyboard - implementation 'com.vanniktech:emoji-material:0.7.0' - implementation 'com.vanniktech:emoji-google:0.7.0' + implementation libs.vanniktech.emojiMaterial + implementation libs.vanniktech.emojiGoogle implementation 'im.dlg:android-dialer:1.2.5' From cd4cfd05b8297340478c98f9d70c8b4b4c93a063 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Sep 2021 09:31:21 +0000 Subject: [PATCH 16/55] Bump vanniktechEmoji from 0.7.0 to 0.8.0 Bumps `vanniktechEmoji` from 0.7.0 to 0.8.0. Updates `emoji-material` from 0.7.0 to 0.8.0 - [Release notes](https://github.com/vanniktech/Emoji/releases) - [Changelog](https://github.com/vanniktech/Emoji/blob/master/CHANGELOG.md) - [Commits](https://github.com/vanniktech/Emoji/compare/0.7.0...0.8.0) Updates `emoji-google` from 0.7.0 to 0.8.0 - [Release notes](https://github.com/vanniktech/Emoji/releases) - [Changelog](https://github.com/vanniktech/Emoji/blob/master/CHANGELOG.md) - [Commits](https://github.com/vanniktech/Emoji/compare/0.7.0...0.8.0) --- updated-dependencies: - dependency-name: com.vanniktech:emoji-material dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: com.vanniktech:emoji-google dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- dependencies.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dependencies.gradle b/dependencies.gradle index b6f279e94a..99fe2566dc 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -22,7 +22,7 @@ def epoxy = "4.6.2" def glide = "4.12.0" def bigImageViewer = "1.8.1" def jjwt = "0.11.2" -def vanniktechEmoji = "0.7.0" +def vanniktechEmoji = "0.8.0" // Testing def mockk = "1.12.0" From 0eef248d7d069b7aa69a0e0d96e589422d4dd581 Mon Sep 17 00:00:00 2001 From: Adam Brown Date: Tue, 28 Sep 2021 11:33:46 +0100 Subject: [PATCH 17/55] tinting the jump to unread view to the colorPrimary - the vector itself is set to an obvious red to highlight an incorrect usage (we should tint at the consumer to allow for reuse/preparing for design components/compose) --- vector/src/main/res/drawable/ic_jump_to_unread.xml | 2 +- vector/src/main/res/layout/fragment_room_detail.xml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/vector/src/main/res/drawable/ic_jump_to_unread.xml b/vector/src/main/res/drawable/ic_jump_to_unread.xml index 2c5b8b90c1..3d13aabd50 100644 --- a/vector/src/main/res/drawable/ic_jump_to_unread.xml +++ b/vector/src/main/res/drawable/ic_jump_to_unread.xml @@ -5,6 +5,6 @@ android:viewportHeight="24"> diff --git a/vector/src/main/res/layout/fragment_room_detail.xml b/vector/src/main/res/layout/fragment_room_detail.xml index 66dbbd2840..7af1e27551 100644 --- a/vector/src/main/res/layout/fragment_room_detail.xml +++ b/vector/src/main/res/layout/fragment_room_detail.xml @@ -139,6 +139,7 @@ android:text="@string/room_jump_to_first_unread" android:visibility="invisible" app:chipIcon="@drawable/ic_jump_to_unread" + app:chipIconTint="?colorPrimary" app:closeIcon="@drawable/ic_close_24dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" From 3a79a7595d0fb1414295e29cc14ca7cfb04699b4 Mon Sep 17 00:00:00 2001 From: Adam Brown Date: Tue, 28 Sep 2021 12:26:41 +0100 Subject: [PATCH 18/55] tinting the in progress recording icon to the colorPrimary - creates extension helpers for tinting and reading theme attributes -extracts the background from the recording vector icon and set as a separate tintable background drawable --- .../im/vector/app/core/extensions/Context.kt | 10 ++++++++++ .../app/core/extensions/ViewExtensions.kt | 18 ++++++++++++++++++ .../composer/VoiceMessageRecorderView.kt | 4 ++++ .../src/main/res/drawable/circle_with_halo.xml | 17 +++++++++++++++++ .../res/drawable/ic_voice_mic_recording.xml | 8 -------- 5 files changed, 49 insertions(+), 8 deletions(-) create mode 100644 vector/src/main/res/drawable/circle_with_halo.xml diff --git a/vector/src/main/java/im/vector/app/core/extensions/Context.kt b/vector/src/main/java/im/vector/app/core/extensions/Context.kt index c1c435edf2..411bea55f0 100644 --- a/vector/src/main/java/im/vector/app/core/extensions/Context.kt +++ b/vector/src/main/java/im/vector/app/core/extensions/Context.kt @@ -17,6 +17,8 @@ package im.vector.app.core.extensions import android.content.Context +import android.util.TypedValue +import androidx.annotation.AttrRes import im.vector.app.core.di.HasVectorInjector import im.vector.app.core.di.VectorComponent @@ -28,3 +30,11 @@ fun Context.vectorComponent(): VectorComponent { throw IllegalStateException("Your application context doesn't implement HasVectorInjector") } } + +fun Context.fetchThemeColor(@AttrRes themeColorResId: Int): Int { + val typedValue = TypedValue() + val a = obtainStyledAttributes(typedValue.data, intArrayOf(themeColorResId)) + val color = a.getColor(0, 0) + a.recycle() + return color +} diff --git a/vector/src/main/java/im/vector/app/core/extensions/ViewExtensions.kt b/vector/src/main/java/im/vector/app/core/extensions/ViewExtensions.kt index b28f33816b..f07b4d7633 100644 --- a/vector/src/main/java/im/vector/app/core/extensions/ViewExtensions.kt +++ b/vector/src/main/java/im/vector/app/core/extensions/ViewExtensions.kt @@ -18,11 +18,17 @@ package im.vector.app.core.extensions import android.graphics.drawable.Drawable import android.text.InputType +import android.util.TypedValue import android.view.View import android.view.ViewGroup import android.widget.EditText import android.widget.ImageView +import androidx.annotation.AttrRes +import androidx.annotation.DimenRes +import androidx.annotation.DrawableRes import androidx.appcompat.widget.SearchView +import androidx.core.content.ContextCompat +import androidx.core.graphics.drawable.DrawableCompat import androidx.core.view.isVisible import im.vector.app.R @@ -58,3 +64,15 @@ fun ImageView.setDrawableOrHide(drawableRes: Drawable?) { setImageDrawable(drawableRes) isVisible = drawableRes != null } + +fun View.setAttributeTintedBackground(@DrawableRes drawableRes: Int, @AttrRes tint: Int) { + val drawable = ContextCompat.getDrawable(context, drawableRes)!! + DrawableCompat.setTint(drawable, context.fetchThemeColor(tint)) + background = drawable +} + +fun View.setAttributeBackground(@AttrRes attributeId: Int) { + val typedValue = TypedValue() + context.theme.resolveAttribute(attributeId, typedValue, true) + setBackgroundResource(typedValue.resourceId) +} diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/composer/VoiceMessageRecorderView.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/composer/VoiceMessageRecorderView.kt index 5f4f53cf1e..ed48f18f8d 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/composer/VoiceMessageRecorderView.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/composer/VoiceMessageRecorderView.kt @@ -27,6 +27,8 @@ import androidx.core.view.isVisible import androidx.core.view.updateLayoutParams import im.vector.app.BuildConfig import im.vector.app.R +import im.vector.app.core.extensions.setAttributeBackground +import im.vector.app.core.extensions.setAttributeTintedBackground import im.vector.app.core.hardware.vibrate import im.vector.app.core.utils.CountUpTimer import im.vector.app.core.utils.DimensionConverter @@ -366,6 +368,7 @@ class VoiceMessageRecorderView: ConstraintLayout, VoiceMessagePlaybackTracker.Li private fun showRecordingViews() { views.voiceMessageMicButton.setImageResource(R.drawable.ic_voice_mic_recording) + views.voiceMessageMicButton.setAttributeTintedBackground(R.drawable.circle_with_halo, R.attr.colorPrimary) views.voiceMessageMicButton.updateLayoutParams { setMargins(0, 0, 0, 0) } @@ -443,6 +446,7 @@ class VoiceMessageRecorderView: ConstraintLayout, VoiceMessagePlaybackTracker.Li private fun resetMicButtonUi() { views.voiceMessageMicButton.isVisible = true views.voiceMessageMicButton.setImageResource(R.drawable.ic_voice_mic) + views.voiceMessageMicButton.setAttributeBackground(android.R.attr.selectableItemBackgroundBorderless) views.voiceMessageMicButton.updateLayoutParams { if (rtlXMultiplier == -1) { // RTL diff --git a/vector/src/main/res/drawable/circle_with_halo.xml b/vector/src/main/res/drawable/circle_with_halo.xml new file mode 100644 index 0000000000..8e44bfde7f --- /dev/null +++ b/vector/src/main/res/drawable/circle_with_halo.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/vector/src/main/res/drawable/ic_voice_mic_recording.xml b/vector/src/main/res/drawable/ic_voice_mic_recording.xml index eb6cea39a5..a57852c92f 100644 --- a/vector/src/main/res/drawable/ic_voice_mic_recording.xml +++ b/vector/src/main/res/drawable/ic_voice_mic_recording.xml @@ -3,14 +3,6 @@ android:height="52dp" android:viewportWidth="52" android:viewportHeight="52"> - - Date: Tue, 28 Sep 2021 12:35:46 +0100 Subject: [PATCH 19/55] tinting the voice locked vector to the colorPrimary - extracts a helper extension for tinting image resources --- .../java/im/vector/app/core/extensions/ViewExtensions.kt | 6 ++++++ .../home/room/detail/composer/VoiceMessageRecorderView.kt | 3 ++- vector/src/main/res/drawable/ic_voice_message_locked.xml | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/vector/src/main/java/im/vector/app/core/extensions/ViewExtensions.kt b/vector/src/main/java/im/vector/app/core/extensions/ViewExtensions.kt index f07b4d7633..713d95b977 100644 --- a/vector/src/main/java/im/vector/app/core/extensions/ViewExtensions.kt +++ b/vector/src/main/java/im/vector/app/core/extensions/ViewExtensions.kt @@ -71,6 +71,12 @@ fun View.setAttributeTintedBackground(@DrawableRes drawableRes: Int, @AttrRes ti background = drawable } +fun ImageView.setAttributeTintedImageResource(@DrawableRes drawableRes: Int, @AttrRes tint: Int) { + val drawable = ContextCompat.getDrawable(context, drawableRes)!! + DrawableCompat.setTint(drawable, context.fetchThemeColor(tint)) + setImageDrawable(drawable) +} + fun View.setAttributeBackground(@AttrRes attributeId: Int) { val typedValue = TypedValue() context.theme.resolveAttribute(attributeId, typedValue, true) diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/composer/VoiceMessageRecorderView.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/composer/VoiceMessageRecorderView.kt index ed48f18f8d..1749c955c9 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/composer/VoiceMessageRecorderView.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/composer/VoiceMessageRecorderView.kt @@ -29,6 +29,7 @@ import im.vector.app.BuildConfig import im.vector.app.R import im.vector.app.core.extensions.setAttributeBackground import im.vector.app.core.extensions.setAttributeTintedBackground +import im.vector.app.core.extensions.setAttributeTintedImageResource import im.vector.app.core.hardware.vibrate import im.vector.app.core.utils.CountUpTimer import im.vector.app.core.utils.DimensionConverter @@ -219,7 +220,7 @@ class VoiceMessageRecorderView: ConstraintLayout, VoiceMessagePlaybackTracker.Li views.voiceMessageLockArrow.translationY = 0F } RecordingState.LOCKING -> { - views.voiceMessageLockImage.setImageResource(R.drawable.ic_voice_message_locked) + views.voiceMessageLockImage.setAttributeTintedImageResource(R.drawable.ic_voice_message_locked, R.attr.colorPrimary) val translationAmount = -distanceY.coerceIn(0F, distanceToLock) views.voiceMessageMicButton.translationY = translationAmount views.voiceMessageLockArrow.translationY = translationAmount diff --git a/vector/src/main/res/drawable/ic_voice_message_locked.xml b/vector/src/main/res/drawable/ic_voice_message_locked.xml index 2b92d9d5e0..a396f684b1 100644 --- a/vector/src/main/res/drawable/ic_voice_message_locked.xml +++ b/vector/src/main/res/drawable/ic_voice_message_locked.xml @@ -1,5 +1,5 @@ - + From 2fee68e0d00274aa4ebaa1e374069f235909520b Mon Sep 17 00:00:00 2001 From: Adam Brown Date: Tue, 28 Sep 2021 12:41:45 +0100 Subject: [PATCH 20/55] tinting the radio buttons to the colorPrimary --- .../app/core/epoxy/bottomsheet/BottomSheetRadioActionItem.kt | 3 ++- .../app/core/epoxy/profiles/notifications/RadioButtonItem.kt | 3 ++- .../roomprofile/settings/joinrule/SpaceJoinRuleItem.kt | 3 ++- vector/src/main/res/drawable/ic_radio_on.xml | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/vector/src/main/java/im/vector/app/core/epoxy/bottomsheet/BottomSheetRadioActionItem.kt b/vector/src/main/java/im/vector/app/core/epoxy/bottomsheet/BottomSheetRadioActionItem.kt index 91361aa89d..8899532d04 100644 --- a/vector/src/main/java/im/vector/app/core/epoxy/bottomsheet/BottomSheetRadioActionItem.kt +++ b/vector/src/main/java/im/vector/app/core/epoxy/bottomsheet/BottomSheetRadioActionItem.kt @@ -27,6 +27,7 @@ import im.vector.app.core.epoxy.ClickListener import im.vector.app.core.epoxy.VectorEpoxyHolder import im.vector.app.core.epoxy.VectorEpoxyModel import im.vector.app.core.epoxy.onClick +import im.vector.app.core.extensions.setAttributeTintedImageResource import im.vector.app.core.extensions.setTextOrHide /** @@ -62,7 +63,7 @@ abstract class BottomSheetRadioActionItem : VectorEpoxyModel() { @@ -54,7 +55,7 @@ abstract class RadioButtonItem : VectorEpoxyModel() { } if (selected) { - holder.radioImage.setImageDrawable(ContextCompat.getDrawable(holder.view.context, R.drawable.ic_radio_on)) + holder.radioImage.setAttributeTintedImageResource(R.drawable.ic_radio_on, R.attr.colorPrimary) holder.radioImage.contentDescription = holder.view.context.getString(R.string.a11y_checked) } else { holder.radioImage.setImageDrawable(ContextCompat.getDrawable(holder.view.context, R.drawable.ic_radio_off)) diff --git a/vector/src/main/java/im/vector/app/features/roomprofile/settings/joinrule/SpaceJoinRuleItem.kt b/vector/src/main/java/im/vector/app/features/roomprofile/settings/joinrule/SpaceJoinRuleItem.kt index 9110f9b32e..382ef1c545 100644 --- a/vector/src/main/java/im/vector/app/features/roomprofile/settings/joinrule/SpaceJoinRuleItem.kt +++ b/vector/src/main/java/im/vector/app/features/roomprofile/settings/joinrule/SpaceJoinRuleItem.kt @@ -28,6 +28,7 @@ import im.vector.app.core.epoxy.ClickListener import im.vector.app.core.epoxy.VectorEpoxyHolder import im.vector.app.core.epoxy.VectorEpoxyModel import im.vector.app.core.epoxy.onClick +import im.vector.app.core.extensions.setAttributeTintedImageResource import im.vector.app.core.utils.DebouncedClickListener import im.vector.app.features.home.AvatarRenderer import org.matrix.android.sdk.api.util.MatrixItem @@ -57,7 +58,7 @@ abstract class SpaceJoinRuleItem : VectorEpoxyModel() holder.upgradeRequiredButton.setOnClickListener(DebouncedClickListener(listener)) if (selected) { - holder.radioImage.setImageDrawable(ContextCompat.getDrawable(holder.view.context, R.drawable.ic_radio_on)) + holder.radioImage.setAttributeTintedImageResource(R.drawable.ic_radio_on, R.attr.colorPrimary) holder.radioImage.contentDescription = holder.view.context.getString(R.string.a11y_checked) } else { holder.radioImage.setImageDrawable(ContextCompat.getDrawable(holder.view.context, R.drawable.ic_radio_off)) diff --git a/vector/src/main/res/drawable/ic_radio_on.xml b/vector/src/main/res/drawable/ic_radio_on.xml index 5cda8285e6..4ee05d690c 100644 --- a/vector/src/main/res/drawable/ic_radio_on.xml +++ b/vector/src/main/res/drawable/ic_radio_on.xml @@ -9,6 +9,6 @@ android:fillType="evenOdd"/> + android:fillColor="#FF0000"/> From 0d737a9a5d483df8d4c43b06a8385282f4875625 Mon Sep 17 00:00:00 2001 From: Adam Brown Date: Tue, 28 Sep 2021 13:11:19 +0100 Subject: [PATCH 21/55] removing unused import --- .../main/java/im/vector/app/core/extensions/ViewExtensions.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/vector/src/main/java/im/vector/app/core/extensions/ViewExtensions.kt b/vector/src/main/java/im/vector/app/core/extensions/ViewExtensions.kt index 713d95b977..8d952e7cc8 100644 --- a/vector/src/main/java/im/vector/app/core/extensions/ViewExtensions.kt +++ b/vector/src/main/java/im/vector/app/core/extensions/ViewExtensions.kt @@ -24,7 +24,6 @@ import android.view.ViewGroup import android.widget.EditText import android.widget.ImageView import androidx.annotation.AttrRes -import androidx.annotation.DimenRes import androidx.annotation.DrawableRes import androidx.appcompat.widget.SearchView import androidx.core.content.ContextCompat From 12ca487e936889a4ec04430173bc435a85e6a621 Mon Sep 17 00:00:00 2001 From: Adam Brown Date: Tue, 28 Sep 2021 14:57:42 +0100 Subject: [PATCH 22/55] using the existing theme utils logic for reading attributes --- .../java/im/vector/app/core/extensions/Context.kt | 10 ---------- .../im/vector/app/core/extensions/ViewExtensions.kt | 11 +++++------ 2 files changed, 5 insertions(+), 16 deletions(-) diff --git a/vector/src/main/java/im/vector/app/core/extensions/Context.kt b/vector/src/main/java/im/vector/app/core/extensions/Context.kt index 411bea55f0..c1c435edf2 100644 --- a/vector/src/main/java/im/vector/app/core/extensions/Context.kt +++ b/vector/src/main/java/im/vector/app/core/extensions/Context.kt @@ -17,8 +17,6 @@ package im.vector.app.core.extensions import android.content.Context -import android.util.TypedValue -import androidx.annotation.AttrRes import im.vector.app.core.di.HasVectorInjector import im.vector.app.core.di.VectorComponent @@ -30,11 +28,3 @@ fun Context.vectorComponent(): VectorComponent { throw IllegalStateException("Your application context doesn't implement HasVectorInjector") } } - -fun Context.fetchThemeColor(@AttrRes themeColorResId: Int): Int { - val typedValue = TypedValue() - val a = obtainStyledAttributes(typedValue.data, intArrayOf(themeColorResId)) - val color = a.getColor(0, 0) - a.recycle() - return color -} diff --git a/vector/src/main/java/im/vector/app/core/extensions/ViewExtensions.kt b/vector/src/main/java/im/vector/app/core/extensions/ViewExtensions.kt index 8d952e7cc8..54fcac42d1 100644 --- a/vector/src/main/java/im/vector/app/core/extensions/ViewExtensions.kt +++ b/vector/src/main/java/im/vector/app/core/extensions/ViewExtensions.kt @@ -18,7 +18,6 @@ package im.vector.app.core.extensions import android.graphics.drawable.Drawable import android.text.InputType -import android.util.TypedValue import android.view.View import android.view.ViewGroup import android.widget.EditText @@ -30,6 +29,7 @@ import androidx.core.content.ContextCompat import androidx.core.graphics.drawable.DrawableCompat import androidx.core.view.isVisible import im.vector.app.R +import im.vector.app.features.themes.ThemeUtils /** * Remove left margin of a SearchView @@ -66,18 +66,17 @@ fun ImageView.setDrawableOrHide(drawableRes: Drawable?) { fun View.setAttributeTintedBackground(@DrawableRes drawableRes: Int, @AttrRes tint: Int) { val drawable = ContextCompat.getDrawable(context, drawableRes)!! - DrawableCompat.setTint(drawable, context.fetchThemeColor(tint)) + DrawableCompat.setTint(drawable, ThemeUtils.getColor(context, tint)) background = drawable } fun ImageView.setAttributeTintedImageResource(@DrawableRes drawableRes: Int, @AttrRes tint: Int) { val drawable = ContextCompat.getDrawable(context, drawableRes)!! - DrawableCompat.setTint(drawable, context.fetchThemeColor(tint)) + DrawableCompat.setTint(drawable, ThemeUtils.getColor(context, tint)) setImageDrawable(drawable) } fun View.setAttributeBackground(@AttrRes attributeId: Int) { - val typedValue = TypedValue() - context.theme.resolveAttribute(attributeId, typedValue, true) - setBackgroundResource(typedValue.resourceId) + val attribute = ThemeUtils.getAttribute(context, attributeId)!! + setBackgroundResource(attribute.resourceId) } From 2d707720f69cef5b63b551e399f816ba35aeaa38 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Tue, 28 Sep 2021 09:34:38 -0500 Subject: [PATCH 23/55] Fix settings crash when accelerometer unavailable Signed-off-by: Alex Baker --- changelog.d/4103.bugfix | 1 + .../settings/VectorSettingsAdvancedSettingsFragment.kt | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 changelog.d/4103.bugfix diff --git a/changelog.d/4103.bugfix b/changelog.d/4103.bugfix new file mode 100644 index 0000000000..6b4b965540 --- /dev/null +++ b/changelog.d/4103.bugfix @@ -0,0 +1 @@ +Fix settings crash when accelerometer not available \ No newline at end of file diff --git a/vector/src/main/java/im/vector/app/features/settings/VectorSettingsAdvancedSettingsFragment.kt b/vector/src/main/java/im/vector/app/features/settings/VectorSettingsAdvancedSettingsFragment.kt index 80c8dfa77d..68ce4e691c 100644 --- a/vector/src/main/java/im/vector/app/features/settings/VectorSettingsAdvancedSettingsFragment.kt +++ b/vector/src/main/java/im/vector/app/features/settings/VectorSettingsAdvancedSettingsFragment.kt @@ -20,6 +20,7 @@ import androidx.preference.Preference import androidx.preference.SeekBarPreference import im.vector.app.R import im.vector.app.core.platform.VectorBaseActivity +import im.vector.app.core.preference.VectorPreferenceCategory import im.vector.app.core.preference.VectorSwitchPreference import im.vector.app.features.rageshake.RageShake @@ -72,7 +73,7 @@ class VectorSettingsAdvancedSettingsFragment : VectorSettingsBaseFragment() { true } } else { - findPreference("SETTINGS_RAGE_SHAKE_CATEGORY_KEY")!!.isVisible = false + findPreference("SETTINGS_RAGE_SHAKE_CATEGORY_KEY")!!.isVisible = false } } } From 458c423dab75a1fd24633b70b0f05a596810dcb3 Mon Sep 17 00:00:00 2001 From: Adam Brown Date: Tue, 28 Sep 2021 15:41:16 +0100 Subject: [PATCH 24/55] removing unused drawable --- vector/src/main/res/drawable/ic_selected_community.xml | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 vector/src/main/res/drawable/ic_selected_community.xml diff --git a/vector/src/main/res/drawable/ic_selected_community.xml b/vector/src/main/res/drawable/ic_selected_community.xml deleted file mode 100644 index e95b54aab3..0000000000 --- a/vector/src/main/res/drawable/ic_selected_community.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - From e4d39880fd347630798712910b572222d67298b7 Mon Sep 17 00:00:00 2001 From: Onuray Sahin Date: Tue, 28 Sep 2021 20:43:54 +0300 Subject: [PATCH 25/55] Fix crash to render failed message warning stub. --- changelog.d/3833.bugfix | 1 + vector/src/main/res/layout/fragment_room_detail.xml | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 changelog.d/3833.bugfix diff --git a/changelog.d/3833.bugfix b/changelog.d/3833.bugfix new file mode 100644 index 0000000000..f5378aef6f --- /dev/null +++ b/changelog.d/3833.bugfix @@ -0,0 +1 @@ +[Bug|Crash] Voice Messages sending need more robustfully \ No newline at end of file diff --git a/vector/src/main/res/layout/fragment_room_detail.xml b/vector/src/main/res/layout/fragment_room_detail.xml index 66dbbd2840..8a77575e52 100644 --- a/vector/src/main/res/layout/fragment_room_detail.xml +++ b/vector/src/main/res/layout/fragment_room_detail.xml @@ -98,7 +98,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" app:barrierDirection="top" - app:constraint_referenced_ids="composerLayout,notificationAreaView,failedMessagesWarningView" /> + app:constraint_referenced_ids="composerLayout,notificationAreaView,failedMessagesWarningStub" /> From ae3e6a0706b9f92af2f9d760cb293455ae2a9eb2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Sep 2021 23:06:09 +0000 Subject: [PATCH 26/55] Bump seismic from 1.0.2 to 1.0.3 Bumps [seismic](https://github.com/square/seismic) from 1.0.2 to 1.0.3. - [Release notes](https://github.com/square/seismic/releases) - [Changelog](https://github.com/square/seismic/blob/master/CHANGELOG.md) - [Commits](https://github.com/square/seismic/compare/seismic-parent-1.0.2...seismic-parent-1.0.3) --- updated-dependencies: - dependency-name: com.squareup:seismic dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- vector/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vector/build.gradle b/vector/build.gradle index b3658acb00..903798ce55 100644 --- a/vector/build.gradle +++ b/vector/build.gradle @@ -420,7 +420,7 @@ dependencies { implementation 'com.otaliastudios:autocomplete:1.1.0' // Shake detection - implementation 'com.squareup:seismic:1.0.2' + implementation 'com.squareup:seismic:1.0.3' // Image Loading implementation libs.github.bigImageViewer From 1c12cdd69a0941b8e60c6fc02ca21d9141c99a5b Mon Sep 17 00:00:00 2001 From: Onuray Sahin Date: Wed, 29 Sep 2021 12:46:47 +0300 Subject: [PATCH 27/55] Fix changelog. --- changelog.d/3833.bugfix | 1 - changelog.d/4110.bugfix | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 changelog.d/3833.bugfix create mode 100644 changelog.d/4110.bugfix diff --git a/changelog.d/3833.bugfix b/changelog.d/3833.bugfix deleted file mode 100644 index f5378aef6f..0000000000 --- a/changelog.d/3833.bugfix +++ /dev/null @@ -1 +0,0 @@ -[Bug|Crash] Voice Messages sending need more robustfully \ No newline at end of file diff --git a/changelog.d/4110.bugfix b/changelog.d/4110.bugfix new file mode 100644 index 0000000000..7400a29b95 --- /dev/null +++ b/changelog.d/4110.bugfix @@ -0,0 +1 @@ +Crash while rendering failed message warning \ No newline at end of file From 4077216c1e91e2ec9ecab7299acb320025788c16 Mon Sep 17 00:00:00 2001 From: Zet Date: Tue, 28 Sep 2021 17:49:44 +0000 Subject: [PATCH 28/55] Translated using Weblate (Arabic) Currently translated at 36.4% (968 of 2658 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/ar/ --- vector/src/main/res/values-ar/strings.xml | 58 ++++++++++++++++------- 1 file changed, 40 insertions(+), 18 deletions(-) diff --git a/vector/src/main/res/values-ar/strings.xml b/vector/src/main/res/values-ar/strings.xml index f1452e559b..e3ef228a72 100644 --- a/vector/src/main/res/values-ar/strings.xml +++ b/vector/src/main/res/values-ar/strings.xml @@ -53,11 +53,11 @@ %1$s وَ %2$s دَعوة غُرفة - + لا أحد %1$s وواحد آخر %1$s و%2$d آخران - %1$s و%2$d آخرين - %1$s و%2$d آخرون + %1$s و%2$d آخرون + %1$s و%2$d آخرًا %1$s و%2$d آخرون أرسلتَ صورةً. @@ -122,17 +122,17 @@ 🎉 جميع الخوادِم محظورة مِنَ المُشاركة! لم يعُد من المُمكِن استخدام هذه الغُرفة. لا تغيير. • خوادِم مُطابقة IP الحرفية محظورة الآن. - • الخادِم المُطابق لـ %s قد أُزيل مِن قائمة السماح. - • الخادِم المُطابق لـ %s مسموح الآن. - • الخادِم المُطابق لـ %s قد أُزيل مِن قائمة الحظر. - • الخادِم المُطابق لـ %s محظور الآن. + • الخوادِم المُطابقة لـ %s أُزيلت مِن قائمة السماح. + • الخوادِم المُطابقة لـ %s مسموحة الآن. + • الخوادِم المُطابقة لـ %s أُزيلت مِن قائمة الحظر. + • الخوادِم المُطابقة لـ %s محظورة الآن. • خوادِم مُطابقة IP الحرفية مسموحة الآن. أنتَ قد غيَّرتَ خادِم الـACLs لهذه الغُرفة. إنَّ %s قد غيَّرَ خادِم الـACLs لهذه الغُرفة. - • الخادِم يحظُر مُطابقة القيم الحرفية للـIP. - • الخادِم المُطابق لـ %s مسموح. - • الخادِم المُطابق لـ %s محظور. - • الخادِم يسمح بمُطابقة القيم الحرفية للـIP. + • الخوادِم تحظُر مُطابقة القيم الحرفية للـIP. + • الخوادِم المُطابقة لـ %s مسموحة. + • الخوادِم المُطابقة لـ %s محظورة. + • الخوادِم تسمح بمُطابقة القيم الحرفية للـIP. أنتَ قد عيَّنتَ خادِم الـACLs لهذه الغُرفة. إنَّ %s قد عيَّنَ خادِم الـACLs لهذه الغُرفة. أنتَ قد قمتَ بالترقية هُنا. @@ -216,7 +216,7 @@ السمة الفاتحة السمة الداكنة السمة السوداء - يُزامن + يُزامن… يستمع للأحداث الرسائل الإعدادات @@ -588,7 +588,7 @@ خطأ في الأمر لم يُفهم الأمر: ⁨%s⁩ - هذّب + أزل تحتاج تصريح الدعوة لبدء اجتماع في هذه الغرفة أو ردّ سريع @@ -1104,11 +1104,11 @@ الإصدار %s الإعدادات المتقدمة للإشعارات توثق من الجهاز - تأمين المفاتيح لم ينته، يرجى الانتظار + النسخ الاحتياطي المفاتيح لم ينته، يرجى الانتظار… عند تسجيل الخروج الآن ستخسر مفاتيحك - تأمين المفاتيح ما زال جاريا. في حال خروجك الآن لن تتمكن لاحقا من قراءة الرسائل المشفرة - تأكد من تفعيل تأمين المفاتيح على كل أجهزتك كي لا تخسر رسائلك المشفرة - يتم تأمين المفاتيح + النسخ الاحتياطي المفاتيح ما زال جاريا. في حال خروجك الآن لن تتمكن لاحقا من قراءة الرسائل المشفرة. + تأكد من تفعيل النسخ الاحتياطي للمفاتيح على كل أجهزتك كي لا تخسر رسائلك المشفرة + ينسخ احتياطيا المفاتيح… لا يوجد لديك أذن لبدء مكالمة إجتماع لا يوجد لديك أذن لبدء إجتماع في هذه الغرفة إبدأ بالمحادثة @@ -1123,7 +1123,7 @@ ستفقد الوصول إلى رسائلك المشفرة إلا إذا أخذت نسخة إحتياطية من مفاتيحك قبل تسجيلك للخروج. نسخة إحتياطية هل أنت متأكد؟ - إستخدم المفتاح الإحتياطي + إستخدم النسخة الإحتياطية للمفتاح لا أريد رسائلي المشفرة نسخ إحتياطي للمفتاح جاري إعداد الخدمة @@ -1230,4 +1230,26 @@ أنت أضفت %1$s كعناوين لهذه الغرفة. أنت أضفت %1$s كعناوين لهذه الغرفة. + لإكمال الاجراء امنح الصلاحيات الناقصة عبر إعدادات النظام. + الفضاءات + منعتَ الزوار من دخول الغرفة. + منع %1$s الزوار من دخول الغرفة. + سمحت للزوار بدخول هنا. + سمح %1$s للزوار بدخول الغرفة. + سمحتَ للزوار بدخول الغرفة. + سمح %1$s للزوار بدخول الغرفة. + غيرتَ عناوين الغرفة. + غّير %1$s عناوين الغرفة. + غيرتَ العناوين الرئيسية والبديلة للغرفة. + غيّرت العناوين البديلة للغرفة. + منع %1$s الزوار من دخول الغرفة. + منعتَ الزوار من دخول الغرفة. + + لم تضف أي رابط بديل. + أضفت الرابط البديل %1$s للغرفة. + أضفت الرابطين البديلين %1$s للغرفة. + أضفت الروابط البديلة %1$s للغرفة. + أضفت الروابط البديلة %1$s للغرفة. + أضفت الروابط البديلة %1$s للغرفة. + \ No newline at end of file From 5b80f7b1a800fd9edf7e899296fb970eec70170c Mon Sep 17 00:00:00 2001 From: waclaw66 Date: Mon, 27 Sep 2021 13:04:45 +0000 Subject: [PATCH 29/55] Translated using Weblate (Czech) Currently translated at 100.0% (2658 of 2658 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/cs/ --- vector/src/main/res/values-cs/strings.xml | 49 ++++++++++++++++++++++- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/vector/src/main/res/values-cs/strings.xml b/vector/src/main/res/values-cs/strings.xml index 99b8f912f4..d52e3eb828 100644 --- a/vector/src/main/res/values-cs/strings.xml +++ b/vector/src/main/res/values-cs/strings.xml @@ -2834,8 +2834,8 @@ Chcete experimentovat\? \nDo Spaceu můžete přidat existující Spaces. Přidat místnosti - Jste administrátorem tohoto prostoru, ujistěte se, že jste před odchodem převedli administrátorská práva na jiného člena. - Tento prostor není veřejný. Bez pozvánky se do něj nebudete moci znovu připojit. + Jste jediným správcem tohoto prostoru. Jeho opuštění bude znamenat, že nad ním nebude mít nikdo kontrolu. + Pokud nebudete znovu pozváni, nebudete se moci připojit. Jste tu jediný člověk. Pokud odejdete, nikdo se k vám v budoucnu nebude moci připojit, včetně vás. Pozvat do %s Tato funkce je ve fázi beta @@ -3003,4 +3003,49 @@ Vyzvánění… Spaces Dozvědět se více + Přidejte prostor do jakéhokoli prostoru, který spravujete. + Přidat stávající prostory + Přidat stávající místnosti + Vyberte místa, která chcete opustit + Opustit konkrétní místnosti a prostory… + Neopouštět žádné místnosti a prostory + Opustíte všechny místnosti a prostory v %s. + Opustit všechny místnosti a prostory + Opravdu chcete opustit %s\? + Objevování (%s) + Dokončit nastavení + Pozvání e-mailem, vyhledávání kontaktů a další… + Dokončit nastavení objevování. + V současné době nepoužíváte server identit. Chcete-li pozvat kolegy a být pro ně zjistitelní, nakonfigurujte jej níže. + Pozvat pomocí uživatelského jména nebo e-mailu + Zajistěte, aby měli do společnosti %s přístup ti správní lidé. Další můžete pozvat později. + Kdo jsou vaši kolegové\? + Přidat do daného prostoru + Vytváření prostoru… + Zobrazit užitečné informace, které pomohou při ladění aplikace + Zobrazení ladících informací na obrazovce + Nevypadá to jako platná e-mailová adresa + Otevřít nastavení objevování + Vyhledávání podle jména, ID nebo emailu + Vytvořit nový prostor + Každý může prostor najít a připojit se k němu + Adresa prostoru + Kdo má přístup\? + Povolit e-mailová oznámení pro %s + Pro obdržení e-mailu s upozorněním, přiřaďte e-mail ke svému Matrix účtu + Oznámení e-mailem + Povýšit prostor + Změnit název prostoru + Povolit šifrování prostoru + Změnit avatar prostoru + Změnit hlavní adresu prostoru + Nemáte oprávnění k aktualizaci rolí potřebných ke změně různých částí tohoto prostoru + Vyberte role potřebné ke změně různých částí tohoto prostoru + Zobrazit a aktualizovat role potřebné ke změně různých částí prostoru. + Oprávnění prostoru + Zrušením vykázání uživateli umožní znovu se připojit do prostoru. + Vykázáním uživatele z tohoto prostoru vykopnete a zabráníte mu v dalším připojení. + vykopnutí uživatele je z tohoto prostoru odstraní. +\n +\nAbyste jim zabránili v dalším vstupu, měli byste je raději vykázat. \ No newline at end of file From c869427e45c9b49e02d5ac4fefcf5c2126d83e80 Mon Sep 17 00:00:00 2001 From: libexus Date: Tue, 28 Sep 2021 17:08:42 +0000 Subject: [PATCH 30/55] Translated using Weblate (German) Currently translated at 98.6% (2622 of 2658 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/de/ --- vector/src/main/res/values-de/strings.xml | 32 +++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/vector/src/main/res/values-de/strings.xml b/vector/src/main/res/values-de/strings.xml index bb61922e2a..62db877318 100644 --- a/vector/src/main/res/values-de/strings.xml +++ b/vector/src/main/res/values-de/strings.xml @@ -2998,4 +2998,36 @@ Die Einladung zu diesem Raum wurde an %s gesendet, welche nicht mit deinem Konto verknüpft ist Hilf Space-Mitgliedern private Räume zu finden Auf deinem Mobilgerät wirst du keine Benachrichtigungen für Erwähnungen und Schlüsselwörter in verschlüsselten Räumen erhalten. + Existierende Spaces hinzufügen + Existierende Räume hinzufügen + Ausgewählte Räume oder Spaces verlassen… + Keine Räume und Spaces verlassen + Du wirst alle Räume und Spaces in %s verlassen. + Alle Räume und Spaces verlassen + Willst du %s wirklich verlassen\? + Mit Benutzername oder E-Mail einladen + Zum ausgewählten Space hinzufügen + Erstelle Space… + Hilfreiche Informationen zur Fehlersuche anzeigen + Debug-Info anzeigen + Das schaut nicht nach einer gültigen E-Mail-Adresse aus + Nach Name, ID oder E-Mail suchen + Neuen Space erstellen + Zugriff + Wer hat Zugriff\? + Benachrichtigungen per Email für %s aktivieren + Um Benachrichtigungen per E-Mail zu empfangen, musst du einen E-Mail-Adresse hinzufügen + Emailbenachrichtigungen + Space upgraden + Namen vom Space ändern + Space verschlüsseln + Hauptadresse vom Space ändern + Space-Icon ändern + Du hast nicht die Berechtigung, Rollenrechte zu bearbeiten + Space-Berechtigungen + Wenn du die Person entbannst, kann sie wieder beitreten. + Wenn du eine Person bannst, kann sie nicht erneut beitreten. + Kicken entfernt die Person aus dem Space +\n +\nUm sie für immer zu entfernen, solltest du sie bannen. \ No newline at end of file From 455f290a367b25effb0535f655a0b8d4b301ab31 Mon Sep 17 00:00:00 2001 From: Tirifto Date: Mon, 27 Sep 2021 22:04:17 +0000 Subject: [PATCH 31/55] Translated using Weblate (Esperanto) Currently translated at 98.3% (2614 of 2658 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/eo/ --- vector/src/main/res/values-eo/strings.xml | 97 ++++++++++++++++++++--- 1 file changed, 87 insertions(+), 10 deletions(-) diff --git a/vector/src/main/res/values-eo/strings.xml b/vector/src/main/res/values-eo/strings.xml index c5e1149baa..05fd62b90b 100644 --- a/vector/src/main/res/values-eo/strings.xml +++ b/vector/src/main/res/values-eo/strings.xml @@ -290,7 +290,7 @@ Ĉambroj Neniuj uzantoj Ĉambroj - Salti al unua nelegita mesaĝo. + Salti al nelegita Savkopiado de ŝlosiloj Uzi savkopiadon de ŝlosiloj Kontroli salutaĵon @@ -711,7 +711,7 @@ Resendi nesenditajn mesaĝojn Forigi nesenditajn mesaĝojn Dosiero ne troviĝis - Vi ne havas permeson mesaĝi en ĉi tiu ĉambro + Vi ne havas permeson mesaĝi en ĉi tiu ĉambro. %d nova mesaĝo %d novaj mesaĝoj @@ -2499,7 +2499,7 @@ Revoki Ĉi tiu voko finiĝis %1$s rifuzis ĉi tiun vokon - Vi rifuzis ĉi tiun vokon %1$s + Vi rifuzis ĉi tiun vokon %s Vi nun enas ĉi tiun vokon %1$s komencis vokon Vi komencis vokon @@ -2671,8 +2671,8 @@ Bonvenu al aroj! Aldoni ĉambrojn Aldoni jamajn ĉambrojn kaj arojn - Vi estas administranto de ĉi tiu aro. Certigu, ke vi transdonis administrajn rajtojn al alia ano, antaŭ ol vi vere foriros. - Ĉi tiu aro ne estas publika. Vi ne povos ree aliĝi sen invito. + Vi estas la sola administranto de ĉi tiu aro. Se vi foriros, neniu povos ĝin regi. + Vi ne povos ree aliĝi sen invito. Vi estas la sola persono ĉi tie. Se vi foriros, neniu plu povos aliĝi, inkluzive vin mem. Ĉu vi certe volas foriri de la aro\? @@ -2759,7 +2759,7 @@ Sendi propran okazon Esplori staton de ĉambro Programistaj iloj - Ĉi tiu ĉambro estas publika + Publika ĉambro Vidi legokonfirmojn Ne sciigi Sciigi sen sono @@ -2774,7 +2774,7 @@ Implicita fidnivelo Elektitaj Filmo - Ĉi tiu ĉambro havas nesenditan malneton + havas nesenditan malneton Iuj mesaĝoj ne sendiĝis Forigi profilbildon Ŝanĝi profilbildon @@ -2813,7 +2813,7 @@ Privata aro Publika aro Gradaltigas ĉambron al nova versio - Ĉi tiu aro estas publika + Publika aro Necesas aŭtentikiĝo rea Nekonata persono Transdonante al %1$s @@ -2851,8 +2851,8 @@ Grupaj babiloj Individuaj babiloj ĉifritaj Individuaj babiloj - Mesaĝoj enhavantaj mian uzantonomon - Mesaĝoj enhavantaj mian prezentan nomon + Mia uzantonomo + Mia prezenta nomo Sciigu min pri Aliaj Mencioj kaj ĉefvortoj @@ -2871,4 +2871,81 @@ Por sendi voĉmesaĝojn, bonvolu doni permeson uzi mikrofonon. Por ĉi tiu ago, vi bezonas permeson uzi filmilon de la sistemaj agordoj. Iuj permesoj necesaj por ĉi tiu ago mankas. Bonvolu doni la permesojn per la sistemaj agordoj. + Aldoni jamajn arojn + Aldoni jamajn ĉambrojn + Elektu, de kie vi foriru + Foriri de iuj ĉambroj kaj aroj… + Foriri de neniuj ĉambroj kaj aroj + Vi foriros de ĉiuj ĉambroj kaj aroj en %s. + Foriri de ĉiuj ĉambroj kaj aroj + Ĉu vi certe volas foriri de %s\? + Trovado (%s) + Inviti laŭ uzantonomo aŭ retpoŝtadreso + Aldoni al la aro + Aktiva voko (%1$s) · + + Aktiva voko · + %1$d aktivaj vokoj · + + Malsukcesis konekto + Sen respondo + Nerespondita vidvoko + Nerespondita voĉvoko + Vidvoko rifuziĝis + Voĉvoko rifuziĝis + Vidvoko finiĝis • %1$s + Voĉvoko finiĝis • %1$s + Aktiva vidvoko + Aktiva voĉvoko + Envena vidvoko + Envena voĉvoko + Vi rifuzis ĉi tiun vokon + Kreante aron… + Tio ne ŝajnas valida retpoŝtadreso + Malfermi agordojn de trovado + Serĉi laŭ nomo, identigilo, aŭ retpoŝtadreso + Krei novan aron + Konata aro enhavanta ĉi tiun ĉambron + Ĉiu, kiu povas trovi la aron kaj aliĝi al ĝi + Aliro al aro + Kiu povas aliri\? + Agordoj de konto + Vi povas administri sciigojn en %1$s. + Sciu, ke sciigoj pri mencioj kaj ĉefvortoj ne estas disponeblaj en ĉifritaj ĉambroj per poŝtelefono. + Sciigu min pri + VI ne ricevos sciigojn al poŝtelefono pri mencioj kaj ĉefvortoj en ĉifritaj ĉambroj. + Ĉefvortoj + + Ĉefvortoj ne povas enhavi «%s» + Ĉefvortoj ne povas eki per «.» + Aldoni novan ĉefvorton + Viaj ĉefvortoj + Retpoŝta sciigo + Ŝalti retpoŝtajn sciigojn por %s + Por ricevi sciigon per retpoŝto, bonvolu ligi vian retpoŝtadreson al via matriksa konto + Neniuj + Nur mencioj kaj ĉefvortoj + Gradaltigi la aron + Ŝanĝi nomon de aro + Ŝalti ĉifradon de aro + Ŝanĝi ĉefadreson de aro + Ŝanĝi bildon de aro + Vi ne havas permeson ĝisdatigi la rolojn bezonatajn por ŝanĝi diversajn partojn de tiu ĉi aro + Elektu la rolojn bezonatajn por ŝanĝi diversajn partojn de tiu ĉi aro + Vidu kaj ĝisdatigu la rolojn bezonatajn por ŝanĝi diversajn partojn de la aro. + Permesoj de aro + Malforbaro de uzanto permesos al ĝi re-aliĝi al la aro. + Forbaro forpelos uzanton de tiu ĉi aro kaj malhelpos ĝian re-aliĝon. + forpelo de uzanto forigos ĝin de tiu ĉi aro. +\n +\nPor malhelpi ĝian re-aliĝon, vi forbaru ĝin. + Finante vokon… + Sen respondo + La uzanto, kiun vi vokis, estas okupata. + Uzanto estas okupata + Voĉvoko kun %s + Vidvoko kun %s + Sonorante… + Aroj + Ekscii plion \ No newline at end of file From 36edab888d91eb916401834db0bc9abab5cc12d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Priit=20J=C3=B5er=C3=BC=C3=BCt?= Date: Mon, 27 Sep 2021 20:57:34 +0000 Subject: [PATCH 32/55] Translated using Weblate (Estonian) Currently translated at 100.0% (2658 of 2658 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/et/ --- vector/src/main/res/values-et/strings.xml | 49 ++++++++++++++++++++++- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/vector/src/main/res/values-et/strings.xml b/vector/src/main/res/values-et/strings.xml index cd387f0867..a39ab26a2a 100644 --- a/vector/src/main/res/values-et/strings.xml +++ b/vector/src/main/res/values-et/strings.xml @@ -2781,8 +2781,8 @@ Kas sa tahad katsetada\? \nSa võid kogukonnakeskusele lisada ka teisi kogukonnakeskuseid. Lisa jututube - Sa oled selle kogukonnakeskuse haldaja. Enne oma lahkumist palun lisa siia veel vähemalt üks uus haldaja. - See ei ole avalik kogukonnakeskus. Ilma kutseta sa ei saa uuesti liituda. + Sa oled selle kogukonna ainus haldaja. Kui lahkud, siis ei leidu enam kedagi, kellel oleks seal haldusõigusi. + Ilma uue kutseta sa ei saa uuesti liituda. Sa oled siin viimane osaleja. Kui sa nüüd lahkud, siis mitte keegi, kaasa arvatud sa ise, ei saa hiljem enam liituda. Kutse kogukonnakeskusesse %s Tegemist on beeta-taseme funktsionaalsusega @@ -2947,4 +2947,49 @@ Kasutaja on hõivatud Kogukonnakeskused Lisateave + Lisa kogukond ükspuha millisesse kogukonda, mida sa juba haldad. + Lisa olemasolevaid kogukondi + Lisa olemasolevaid jututubasid + Vali, kust soovid lahkuda + Lahku neist jututubadest ja kogukondadest… + Ära lahku ainsamastki jututoast ega kogukonnast + Sa lahkud kõikidest %s jututubadest ja kogukondadest. + Lahku kõikidest jututubadest ja kogukondadest + Kas oled kindel, et soovid lahkuda %s kogukonnast\? + Isikutuvastuse server (%s) + Lõpeta seadistamine + Kutsu e-posti aadressi alusel, leia tuttavaid, jne… + Lõpeta leitavuse seadistamine. + Hetkel sa ei kasuta isikutuvastusserverit. Kaaslastele kutse saatmiseks ning end teistele leitavaks tegemiseks palun seadista ta alljärgnevalt. + Kutsu kasutajanime või e-posti aadressi alusel + Kontrolli, et vajalikel inimestel oleks ligipääs %s kogukonda. Teistele võid kutse saata ka hiljem. + Kes on su kaasteelised\? + Lisa näidatud kogukonnakeskusesse + Loon kogukonnakeskust… + Näita sellist teavet, millest võib kasu olla rakenduse silumisel ja veaotsingul + Näita ekraanil silumisteateid + See ei tundu olema e-posti aadressi moodi + Ava leitavuse seadistused + Otsi nime, Matrixi kasutajatunnuse või e-posti aadressi alusel + Loo kogukonnakeskus + Kõik võivad kogukonda leida ja sellega liituda + Ligipääs siia kogukonda + Kes pääsevad ligi siia jututuppa\? + Saada teavitusi %s e-posti aadressile + Kui soovi e-posti teel saada teavitusi, siis palun seosta oma e-posti aadress oma Matrix\'i kasutajakontoga + E-posti teel saadetavad teavitused + Uuenda kogukonda + Muuda kogukonna nime + Võta kogukonnas kasutusele krüptimine + Muuda kogukonna põhiaadressi + Muuda kogukonna tunnuspilti + Sul pole õigust uuenda rolle, mis on vajalikud kogukonna eri osade muutmiseks + Vali rollid, mis on vajalikud kogukonna eri osade muutmiseks + Vaata ja uuenda rolle, mis on vajalikud kogukonnakeskuse eri osade muutmiseks. + Õigused kogukonnakeskuses + Suhtluskeelu eemaldamine võimaldab kogukonnaga uuesti liituda. + Sellele kasutajale suhtluskeelu seadmine tõstab ta kogukonnast välja ning ei võimalda uuesti liitumist. + kogukonnast välja müksamine eemaldab ta praeguseks sellest kogukonnast. +\n +\nKui soovid, et ta ei saaks uuesti liituda, siis peaksid seadma suhtluskeelu. \ No newline at end of file From 96b9db2d387493dbde31d02ec744bda873c311e1 Mon Sep 17 00:00:00 2001 From: Danial Behzadi Date: Mon, 27 Sep 2021 10:09:17 +0000 Subject: [PATCH 33/55] Translated using Weblate (Persian) Currently translated at 100.0% (2658 of 2658 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/fa/ --- vector/src/main/res/values-fa/strings.xml | 49 ++++++++++++++++++++++- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/vector/src/main/res/values-fa/strings.xml b/vector/src/main/res/values-fa/strings.xml index f59512f8cf..9ce4769bcc 100644 --- a/vector/src/main/res/values-fa/strings.xml +++ b/vector/src/main/res/values-fa/strings.xml @@ -2795,8 +2795,8 @@ لطفاً برای اطّلاعات بیش‌تر، با مدیر کارسازتان تماس بگیرید به نظر کارساز خانگیتان هنوز از فضاها پشتیبانی نمی‌کند افزودن اتاق‌ها - شما مدیر این فضایید. پیش از ترک، مطمئن شوید حق مدیریت را به عضو دیگری منتقل کرده‌اید. - این فضا عمومی نیست. بدون دعوت نخواهید توانست دوباره بپیوندید. + شما تنها مدیر این فضایید. ترک این فضا، به معنی واپایش نداشتن هیچ‌کسی رویش است. + بدون دعوت نخواهید توانست دوباره بپیوندید. شما تنها فرد حاضرید. اگر خارج شوید، هیچ‌کس از جمله خوتان قادر به پیوستن در آینده نخواهد بود. به هر حال ادامه بده اگر پرسش دیگری دارید، می‌توانید با من در تماس باشید @@ -2947,4 +2947,49 @@ زنگ خوردن تماس… فضاها بیش‌تر بدانید + افزودن فضایی به هر فضایی که مدیریت می‌کنید. + افزودن فضاهای موجود + افزودن اتاق‌های موجود + گزینش خارج شدن‌ها + خارج شدن از اتاق‌ها و فضاهایی خاص… + از هیچ اتاق و فضایی خارج نشو + از تمامی اتاق‌ها و فضاهای %s خارج خواهید شد. + ترک تمامی اتاق‌ها و فضاها + مطمئنید می‌خواهید %s را ترک کنید؟ + کشف (%s) + پایان برپایی + دعوت با رایانامه، یافتن آشنایان و بیش‌تر… + پایان برپا سازی کشف. + همگروهی‌هایتان کیند؟ + در حال حاضر از کارساز هویتی استفاده نمی‌کنید. برای دعوت همگروهی‌ها و قابل کشف بودن به دستشان، در پایین یکی پیکربندی کنید. + دعوت با نام کاربری یا نامه + مطمئن شوید افراد درستی به %s دسترسی دارند. بعداً می‌توانید تفراد بیش‌تری را دعوت‌کنید. + افزودن به فضای داده شده + ایجاد کردن فضا… + نمایش اطلاعاتی مغید برای کمک به رفع اشکال برنامه + نمایش اطلاعات رفع اشکال روی صفحه + نشانی رایانامه‌ای معتبر به نظر نمی‌رسد + گشودن تنظیمات کشف + جست‌وجو با نام، شناسه یا رایانامه + ایجاد فضای جدید + هرکسی می تواند فضا را یافته و بپیوندد + دسترسی فضا + چه کسی می‌تواند دسترسی داشته باشد؟ + به کار انداختن آگاهی‌های رایانامه‌ای برای %s + برای دریافت رایانامه با آگاهی، لطفاً رایانامه‌ای را به حساب ماتریکستان وصل کنید + آگاهی رایانامه‌ای + ارتقای فضا + تغییر نام فضا + به کار انداختن رمزنگاری فضا + تغییر نشانی اصلی فضا + تغییر چهرک فضا + اجازهٔ به‌روز رسانی نقش‌های لازم برای تغییر بخش‌های مختلف این فضا را ندارید + گزینش اجازه‌های لازم برای تغییر بخش‌های مختلف این فضا + دیدن و به‌روز رسانی نقش‌های لازم برای تغییر بخش‌های مختلف فضا. + اجازه‌های فضا + لغو تحریم کاربر، اجازهٔ پیوستن دوباره‌اش به فضا را می‌دهد. + تحریم کاربر، او را از این فضا اخراج کرده و از پیوستن دوباره‌اش جلوگیری می‌کند. + اخراج کاربر، از این فضا برش می‌دارد. +\n +\nبرای پیش‌گیری از پیوستن دوباره، باید تحریمش کنید. \ No newline at end of file From 535c4861ffa61fda9c5cd02d3b02e37b844bf693 Mon Sep 17 00:00:00 2001 From: Szimszon Date: Tue, 28 Sep 2021 13:10:11 +0000 Subject: [PATCH 34/55] Translated using Weblate (Hungarian) Currently translated at 100.0% (2658 of 2658 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/hu/ --- vector/src/main/res/values-hu/strings.xml | 49 ++++++++++++++++++++++- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/vector/src/main/res/values-hu/strings.xml b/vector/src/main/res/values-hu/strings.xml index 19bb84ff53..8635e8bf75 100644 --- a/vector/src/main/res/values-hu/strings.xml +++ b/vector/src/main/res/values-hu/strings.xml @@ -2487,8 +2487,8 @@ Ha nem te állítottad be a visszaállítási metódust, akkor egy támadó pró Üdv a Terekben! Szobák hozzáadása Létező szobák és tér hozzáadása - Most te vagy a tér adminisztrátora, bizonyosodj meg arról, hogy kineveztél mást adminisztrátornak mielőtt elhagyod. - Ez a tér nem nyilvános. Kilépés után csak újabb meghívóval lehet újra belépni. + Ön az egyetlen adminisztrátora a térnek. Ha kilép, senki nem tudja irányítani. + Amíg nem hívnak meg újra nem tudsz újracsatlakozni. Csak te van itt. Ha kilépsz, akkor a jövőben senki nem tud majd ide belépni, beleértve téged is. Biztos el akarod hagyni a teret\? @@ -2952,4 +2952,49 @@ Ha nem te állítottad be a visszaállítási metódust, akkor egy támadó pró Hívás kicseng… Terek Tudj meg többet + Add hozzá a teret bármelyik általad kezelt térhez. + Meglévő terek hozzáadása + Létező szobák hozzáadása + Válaszd ki ahonnan kilépsz + Kilépés a megadott szobákból és terekből… + Nem lépek ki egyetlen szobából vagy térből sem + Az összes szobát és teret elhagyod itt: %s. + Minden szoba és tér elhagyása + Biztos, hogy ki akarsz lépni innen: %s\? + Felderítés (%s) + Beállítás befejezése + E-mail alapú meghívás, kapcsolatok megtalálása és sok más… + Felderíthetőségi beállítás befejezése. + Jelenleg nem használsz azonosítási szolgáltatást. Ahhoz, hogy a csoporttársaidat meghívd vagy megtaláljanak állíts be egyet alább. + Meghívás felhasználói névvel vagy e-mail címmel + Ellenőrizd, hogy a megfelelő személyeknek van hozzáférése ehhez a céghez: %s. Később meghívhatsz másokat is. + Kik a csoporttársaid\? + A megadott térhez adás + Tér készítése… + Néhány hasznos információ megjelenítése az alkalmazás hibakeresés segítéséért + Hibakeresési információk megjelenítése a képernyőn + Az e-mail cím nem tűnik érvényesnek + Felderíthetőségi Beállítások megnyitása + Keresés név, azonosító vagy e-mail alapján + Új tér készítése + Bárki rátalálhat és beléphet a térre + Tér hozzáférés + Kinek van hozzáférése\? + E-mail értesítés engedélyezése ehhez az e-mail címhez: %s + E-mail alapú értesítések fogadásához, kérlek társíts egy e-mail címet a Matrix fiókodhoz + E-mail értesítés + Tér frissítése + Tér nevének megváltoztatása + Tér titkosításának bekapcsolása + Tér elsődleges címének megváltoztatása + Tér profilkép megváltoztatása + Nincs jogosultságod a szerepek megváltoztatásához, amik szükségesek a tér bizonyos részeinek megváltoztatásához + A tér bizonyos beállításainak megváltoztatásához szükséges szerep kiválasztása + Szerepek megjelenítése és megváltoztatása, amik szükségesek a tér bizonyos részeinek megváltoztatásához. + Tér jogosultságok + A felhasználó tiltásának visszavonása lehetővé teszi, hogy újra belépjen a térbe. + A felhasználó kitiltása eltávolítja őt a térből és megakadályozza, hogy visszajöjjön. + a felhasználó kirúgása eltávolítja a térből. +\n +\nHa meg akarja akadályozni, hogy újra csatlakozzon, akkor inkább tiltsa ki. \ No newline at end of file From 64f07d6fea7b65e37a1c1534c154e48b144458b7 Mon Sep 17 00:00:00 2001 From: random Date: Mon, 27 Sep 2021 10:07:48 +0000 Subject: [PATCH 35/55] Translated using Weblate (Italian) Currently translated at 99.8% (2655 of 2658 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/it/ --- vector/src/main/res/values-it/strings.xml | 117 +++++++++++++++------- 1 file changed, 81 insertions(+), 36 deletions(-) diff --git a/vector/src/main/res/values-it/strings.xml b/vector/src/main/res/values-it/strings.xml index 3308ee3268..67fc33c28e 100644 --- a/vector/src/main/res/values-it/strings.xml +++ b/vector/src/main/res/values-it/strings.xml @@ -493,7 +493,7 @@ ${app_name} deve essere autorizzato ad accedere a fotocamera e microfono per poter fare chiamate video. \n \nNel prossimo pop-up concedi le autorizzazioni per poter fare la chiamata. - ${app_name} può usare tua Rubrica locale per trovare altri utenti Matrix grazie alle loro email e numeri di telefono. Se ti sta bene comunicare i dati di tutti i tuoi contatti all\'Identity Server, puoi concedere l\'autorizzazione nel prossimo pop-up. + ${app_name} può usare tua rubrica per trovare altri utenti Matrix grazie alle loro email e numeri di telefono. Se accetti di condividere la tua rubrica per questo scopo, puoi concedere l\'autorizzazione nella prossima finestra. ${app_name} può usare tua Rubrica locale per trovare altri utenti Matrix grazie alle loro email e numeri di telefono. \n \nTi sta bene comunicare i dati di tutti i tuoi contatti per questo scopo\? @@ -1394,7 +1394,7 @@ Versione Algoritmo Firma - Risposta Home Server non valida + Risposta home server non valida Opzioni autocompletamento server ${app_name} ha rilevato una configurazione server personalizzata per il tuo dominio userID \"%1$s\": \n%2$s @@ -1586,7 +1586,7 @@ Nessuno Revoca Disconnetti - Non è stato configurato alcun Identity Server. + Non è stato configurato alcun server d\'identità. Chiamata fallita a causa di un\'errata configurazione del server Chiedi all\'amministratore del tuo Home Server (%1$s) di configurare un server TURN affinché le chiamate funzionino in modo affidabile. \n @@ -1600,7 +1600,7 @@ Non è stato trovato alcun Home Server seguendo questo URL. Per favore, controllalo Permetti chiamate dal Server di appoggio Verrà usato %s come server d\'appoggio quando il tuo homeserver non ha uno proprio (il tuo indirizzo IP verrà esposto durante una chiamata) - Per poterlo fare, aggiungi un Identity Server nelle Impostazioni. + Per poterlo fare, aggiungi un server d\'identità nelle Impostazioni. Modalità sync in background Ottimizzato per la batteria ${app_name} si sincronizzerà in background in modo da non consumare la poca batteria disponibile. @@ -1615,33 +1615,33 @@ %s \nLa sincronizzazione può essere ritardata a seconda delle risorse (batteria) o dello stato del dispositivo (sospensione). Farsi trovare - Configura l\'Identity Server per trovare e farsi trovare dagli altri utenti. + Gestisci le impostazioni per farsi trovare. Nome pubblico (visibile alle persone con cui comunichi) Il nome pubblico di una sessione è visibile alle persone con cui comunichi Non stai usando alcun server di identità - Nessun Identity Server configurato. E\' necessario per poter ripristinare la tua password. + Nessun server d\'identità configurato, è necessario per poter ripristinare la password. Pare che tu stia provando a connetterti ad un altro homeserver. Vuoi disconnetterti da qui\? - Identity Server - Disconnetti Identity Server - Configura Identity Server - Cambia Identity Server - Stai usando l\'Identity Server %1$s per trovare altri utenti e essere a tua volta rintracciabile da loro. - In questo momento non stai usando alcun Identity Server. Per trovare e farti rintracciare dagli altri utenti, configurane uno qua sotto. + Server d\'identità + Disconnetti server d\'identità + Configura server d\'identità + Cambia server d\'identità + Attualmente stai usando %1$s per trovare altri utenti ed essere a tua volta rintracciabile da loro. + Attualmente non stai usando alcun server d\'identità. Per trovare e farti rintracciare dagli altri utenti, configurane uno qua sotto. Indirizzi email visibili pubblicamente - Le opzioni su come farsi trovare da altri utenti appariranno dopo che avrai aggiunto un\'email. - Le opzioni su come farsi trovare da altri utenti appariranno dopo che avrai aggiunto un numero di telefono. - Se ti disconnetti dall\'Identity Server gli altri utenti non potranno trovarti e tu non potrai invitarli tramite le loro email e numeri di telefono. + Le opzioni su come farsi trovare appariranno dopo che avrai aggiunto un\'email. + Le opzioni su come farsi trovare appariranno dopo che avrai aggiunto un numero di telefono. + Se ti disconnetti dal server d\'identità gli altri utenti non potranno trovarti e tu non potrai invitarli tramite le loro email o numeri di telefono. Numeri di telefono visibili pubblicamente - Abbiamo inviato un\'email di conferma a %s. Controlla l\'email e clicca sul link di conferma + Abbiamo inviato un\'email di conferma a %s, controlla la tua posta e clicca sul link di conferma In attesa - Inserisci l\'URL di un Identity Server - Impossibile connettersi all\'Identity Server - Inserisci l\'URL dell\'Identity Server - L\'Identity Server non ha reso noti i propri termini di servizio - L\'Identity Server che hai scelto non ha reso noti i propri termini di servizio. Continua solo se ti fidi + Inserisci un URL di un server d\'identità + Impossibile connettersi al server d\'identità + Inserisci l\'URL del server d\'identità + Il server d\'identità non ha reso noti i propri termini di servizio + Il server d\'identità che hai scelto non ha reso noti i propri termini di servizio. Continua solo se ti fidi del proprietario del servizio È stato inviato un messaggio a %s. Inserisci il codice di verifica che contiene. - In questo momento stai condividendo i tuoi indirizzi email o numeri di telefono sull\'Identity Server %1$s. Dovrai riconnetterti a %2$s per interromperne la condivisione. - Accetta i termini di servizio dell\'Identity Server (%s) per permettere ad altri utenti di trovarti tramite la tua email o numero di telefono. + Attualmente stai condividendo i tuoi indirizzi email o numeri di telefono sul server d\'identità %1$s. Dovrai riconnetterti a %2$s per interromperne la condivisione. + Accetta i termini di servizio del server d\'identità (%s) per permettere ad altri utenti di trovarti tramite la tua email o numero di telefono. Attiva i log dettagliati. I log dettagliati aiuteranno gli sviluppatori fornendo loro molte più informazioni nelle segnalazioni che invii scuotendo il dispositivo. Anche se attivi i log dettagliati, Element non registra mai i contenuti dei messaggi o altri dati personali. Riprova dopo avere accettato i termini di servizio del tuo Home Server. @@ -2192,7 +2192,7 @@ Messaggio eliminato Mostra messaggi rimossi Mostra un segnaposto per i messaggi rimossi - Ti abbiamo inviato un\'email di conferma a %s. Per proseguire controlla la tua posta e clicca sul link di conferma + Ti abbiamo inviato un\'email di conferma a %s, controlla la tua posta e clicca il link di conferma Il codice di verifica non è corretto. MEDIA In questa stanza non ci sono file multimediali @@ -2211,18 +2211,18 @@ Altre lingue disponibili Caricamento lingue disponibili… Apri condizioni di %s - Disconnettere dall\'Identity Server %s\? - Questo Identity Server è obsoleto. ${app_name} supporta solo API V2. + Disconnettere dal server d\'identità %s\? + Questo server d\'identità è obsoleto. ${app_name} supporta solo API V2. Questa operazione non è possibile. L\'Home Server è obsoleto. - Prima configura un Identity Server. - Prima accetta le condizioni dell\'Identity Server nelle impostazioni. + Prima configura un server d\'identità. + Prima accetta le condizioni del server d\'identità nelle impostazioni. Per la tua privacy, ${app_name} supporta solo l\'invio di email e numeri di telefono degli utenti in modalità oscurata (hash). L\'associazione è fallita. Non c\'è alcuna associazione con questo identificativo. - Il tuo Home Server (%1$s) propone di usare %2$s come tuo Identity Server + Il tuo home server (%1$s) propone di usare %2$s come tuo server d\'identità Usa %1$s - In alternativa, puoi inserire l\'URL di un qualsiasi altro Identity Server - Inserisci l\'URL di un Identity Server + In alternativa, puoi inserire l\'URL di un qualsiasi altro server d\'identità + Inserisci l\'URL di un server d\'identità Invia Avvia Pausa @@ -2539,10 +2539,10 @@ \n \nPer garantire la privacy, i dati verranno inviati in forma oscurata (hashing). Invio di email e numeri di telefono - Accetta + Dai il consenso Revoca il mio consenso - Non hai acconsentito ad inviare email e numeri di telefono a questo Identity Server per poter rintracciare altri utenti tra i tuoi contatti. - Hai acconsentito ad inviare email e numeri di telefono a questo Identity Server per poter rintracciare altri utenti tra i tuoi contatti. + Non hai acconsentito ad inviare email e numeri di telefono a questo server d\'identità per poter rintracciare altri utenti tra i tuoi contatti. + Hai acconsentito ad inviare email e numeri di telefono a questo server d\'identità per poter rintracciare altri utenti tra i tuoi contatti. Invia email e numeri di telefono Suggerimenti Contatti @@ -2836,7 +2836,7 @@ Feedback Feedback sugli Spazi Ops! Qualcosa è andato storto nel cercar di entrare nella conferenza - Sei l\'Amministratore di questo Spazio. Assicurati di aver nominato un altro amministratore prima di uscire. + Sei l\'unico amministratore di questo spazio. Abbandonarlo significa che nessuno ne avrà il controllo. Sei l\'unico utente di questo Spazio. Se esci nessuno potrà più entrarci. Nemmeno tu. Aggiungi stanze Alcune stanze potrebbero essere nascoste perché sono private e ti serve il loro invito. @@ -2846,7 +2846,7 @@ Pare che il tuo Home Server non supporti ancora gli Spazi Ti piace sperimentare\? \nProva ad inserire uno Spazio all\'interno di un altro Spazio. - Questo non è uno Spazio pubblico. Senza un invito non potrai più rientrare. + Non potrai più rientrare a meno che non ti invitino di nuovo. Stanza senza nome Spazio privato Spazio pubblico @@ -3000,4 +3000,49 @@ Sta squillando… Spazi Maggiori informazioni + Apri impostazioni di rintracciabilità + Farsi trovare (%s) + Termina la configurazione della rintracciabilità. + Aggiungi uno spazio ad un altro che gestisci. + Aggiungi spazi esistenti + Aggiungi stanze esistenti + Scegli da cosa uscire + Esci da stanze e spazi specifici… + Non uscire da alcuna stanza e spazio + Uscirai da tutte le stanze e gli spazi in %s. + Esci da tutte le stanze e gli spazi + Vuoi davvero uscire da %s\? + Termina configurazione + Invita per email, trova contatti e altro… + Attualmente non stai usando un server d\'identità. Per poter invitare compagni ed essere individuabile da loro, configurane uno sotto. + Invita per nome utente o email + Assicurati che le persone giuste abbiano accesso a %s. Puoi invitarne altre dopo. + Chi sono i tuoi compagni di squadra\? + Aggiungi allo spazio scelto + Creazione spazio… + Mostra alcune informazioni utili per aiutare il debug dell\'applicazione + Mostra info di debug su schermo + Non sembra essere un indirizzo email valido + Cerca per nome, ID o email + Crea nuovo spazio + Chiunque può trovare lo spazio ed entrarvi + Accesso allo spazio + Chi può accedervi\? + Attiva notifiche email per %s + Per ricevere email con le notifiche, associa un indirizzo di posta al tuo profilo Matrix + Notifica email + Aggiorna lo spazio + Cambia il nome dello spazio + Attiva la crittografia dello spazio + Cambia l\'indirizzo principale dello spazio + Cambia avatar dello spazio + Non hai l\'autorizzazione di aggiornare i ruoli necessari per cambiare diverse parti dello spazio + Autorizzazioni dello spazio + Seleziona i ruoli necessari per cambiare varie parti dello spazio + Vedi e aggiorna i ruoli necessari per cambiare varie parti dello spazio. + Riammettere l\'utente gli permetterà di rientrare nello spazio. + Bandire l\'utente lo espellerà da questo spazio e gli impedirà di rientrare. + buttando fuori l\'utente verrà rimosso da questo spazio. +\n +\nPer impedire che possa rientrare, dovresti invece bandirlo. \ No newline at end of file From 4fb6404178696d3893909376f0d0c40310dc94e0 Mon Sep 17 00:00:00 2001 From: lvre <7uu3qrbvm@relay.firefox.com> Date: Mon, 27 Sep 2021 16:34:30 +0000 Subject: [PATCH 36/55] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (2658 of 2658 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/pt_BR/ --- vector/src/main/res/values-pt-rBR/strings.xml | 49 ++++++++++++++++++- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/vector/src/main/res/values-pt-rBR/strings.xml b/vector/src/main/res/values-pt-rBR/strings.xml index 8239b68b97..04cee3ef62 100644 --- a/vector/src/main/res/values-pt-rBR/strings.xml +++ b/vector/src/main/res/values-pt-rBR/strings.xml @@ -2812,8 +2812,8 @@ Boas-vindas a Espaços! Adicionar salas Adicionar salas e espaços existentes - Você é admin deste espaço, assegure-se que você tem transferido direito de admin a um outro membro antes de sair. - Este espaço não é público. Você não vai ser capaz de se rejuntar sem um convite. + Você é a/o única(o) admin deste espaço. Sair dele vai significar que ninguém tem controle sobre ele. + Você não vai ser capaz de se rejuntar a menos que você seja re-convidada(o). Você é a única pessoa aqui. Se você sair, ninguém vai ser capaz de se juntar no futuro, incluindo você. Você tem certeza que você quer sair do espaço\? @@ -3017,4 +3017,49 @@ Chamada tocando… Espaços Saber Mais + Adicione um espaço a qualquer espaço que você gerencia. + Adicionar espaços existentes + Adicionar salas existentes + Escolha coisas para sair + Sair de salas e espaços específicos… + Não sair de nenhuma sala ou espaço + Você vai sair de todas as salas e espaços em %s. + Sair de todas as salas e espaços + Você tem certeza que você quer sair de %s\? + Descoberta (%s) + Terminar configuração + Convidar por email, encontrar contatos e mais… + Termine de configurar descoberta. + Você não está atualmente usando um servidor de identidade. A fim de convidar colegas e ser descobertável por elas(es), configure um abaixo. + Convidar por nome de usuária(o) ou mail + Assegure que as pessoas certas têm acesso a companhia %s. Você pode convidar outras mais tarde. + Quem são suas/seus colegas\? + Adicionar ao dado Espaço + Criando espaço… + Mostrar certa info útil para ajudar a fazer debugging do aplicativo + Mostrar info de debug em tela + Não parece com um endereço de email válido + Abrir Configurações de Descoberta + Pesquisar por nome, ID ou mail + Criar Novo Espaço + Qualquer pessoa pode encontrar o espaço e se juntar + Acesso a espaço + Quem pode acessar\? + Habilitar notificações de email para %s + Para receber email com notificação, por favor associe um email a sua conta Matrix + Notificação de email + Fazer upgrade do espaço + Mudar nome de espaço + Habilitar encriptação de espaço + Mudar endereço principal para o espaço + Mudar avatar de espaço + Você não tem permissão para atualizar os papéis requeridos para mudar várias partes deste espaço + Selecione os papéis requeridos para mudar várias partes deste espaço + Veja e atualize os papéis requeridos para mudar várias partes do espaço. + Permissões de espaço + Desbanir usuária(o) vai permiti-la(o) se juntar ao espaço de novo. + Banir usuária(o) vai expulsá-la(o) deste espaço e preveni-la de se juntar de novo. + expulsar usuária(o) vai removê-la(o) deste espaço. +\n +\nPara preveni-la(o) de se juntar de novo, você devia bani-la(o) em vez disso. \ No newline at end of file From ab23a127615f38a0e2be2e3c631fcebf3dff0a53 Mon Sep 17 00:00:00 2001 From: Nikita Epifanov Date: Tue, 28 Sep 2021 13:47:40 +0000 Subject: [PATCH 37/55] Translated using Weblate (Russian) Currently translated at 99.2% (2638 of 2658 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/ru/ --- vector/src/main/res/values-ru/strings.xml | 45 +++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/vector/src/main/res/values-ru/strings.xml b/vector/src/main/res/values-ru/strings.xml index 1569abe7f3..82cddb03cf 100644 --- a/vector/src/main/res/values-ru/strings.xml +++ b/vector/src/main/res/values-ru/strings.xml @@ -3105,4 +3105,49 @@ Вызов… Пространства Подробнее + Добавьте пространство в любое пространство, которым вы управляете. + Добавить существующие пространства + Добавить существующие комнаты + Выберите, что нужно покинуть + Покинуть определенные комнаты и пространства… + Не покидать ни одну комнату и пространство + Вы покинете все комнаты и пространства в %s. + Покинуть все комнаты и пространства + Вы уверены, что хотите покинуть %s\? + Обнаружение (%s) + Завершение настройки + Приглашение по электронной почте, поиск контактов и многое другое… + Завершите настройку обнаружения. + В настоящее время вы не используете сервер идентификации. Чтобы приглашать членов команды и быть доступным для них, настройте один из них ниже. + Приглашение по имени пользователя или по почте + Убедитесь, что нужные люди имеют доступ к %s. Вы можете пригласить больше людей позже. + Кто ваши члены команды\? + Добавить в данное пространство + Создание пространства… + Показать некоторую полезную информацию для помощи в отладке приложения + Показать отладочную информацию на экране + Не похоже на действительный адрес электронной почты + Открыть настройки обнаружения + Поиск по имени, ID или почте + Создать новое пространство + Любой желающий может найти это пространство и присоединиться + Доступ к пространству + Кто имеет к этому доступ\? + Включить уведомления по электронной почте для %s + Чтобы получать уведомления по электронной почте, пожалуйста, привяжите электронную почту к вашей учетной записи Matrix + Уведомление по эл. почте + Обновление пространства + Изменить название пространства + Включить шифрование пространства + Изменить основной адрес для пространства + Изменить аватар пространства + У вас нет разрешения на обновление ролей, необходимых для изменения различных частей этого пространства + Выберите роли, необходимые для изменения различных частей этого пространства + Просмотр и обновление ролей, необходимых для изменения различных частей пространства. + Разрешения пространства + Разблокирование пользователя позволит ему снова присоединиться к пространству. + Блокировка пользователя исключит его из этого пространства и не позволит ему присоединиться снова. + Выгнанный пользователь будет удалён из этого пространства. +\n +\nЧтобы предотвратить его повторное присоединение, вы должны заблокировать его. \ No newline at end of file From cefe964512b6a92b4f122e2eead186922a6f24ef Mon Sep 17 00:00:00 2001 From: Besnik Bleta Date: Mon, 27 Sep 2021 11:17:07 +0000 Subject: [PATCH 38/55] Translated using Weblate (Albanian) Currently translated at 99.5% (2646 of 2658 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/sq/ --- vector/src/main/res/values-sq/strings.xml | 49 ++++++++++++++++++++++- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/vector/src/main/res/values-sq/strings.xml b/vector/src/main/res/values-sq/strings.xml index 8f7144d965..182b3a1415 100644 --- a/vector/src/main/res/values-sq/strings.xml +++ b/vector/src/main/res/values-sq/strings.xml @@ -2771,8 +2771,8 @@ Ndiheni eksperimentues\? \nMund të shtoni te një hapësirë hapësira ekzistuese. Shtoni dhoma - Jeni përgjegjës i kësaj hapësirë, sigurohuni se keni shpërngulur të drejt përgjegjësi te një anëtar tjetër, përpara braktisjes. - Kjo hapësirë s’është publike. S’do të jeni në gjendje të rihyni pa një ftesë. + Jeni përgjegjësi i vetëm i kësaj hapësire. Braktisja e saj do të thotë se askush s’do të ketë kontroll mbi të. + S’do të jeni në gjendje të rihyni pa një ftesë. Jeni personi i vetëm këtu. Nëse ikni, askush s’do të jetë në gjendje të marrë pjesë në të ardhmen, përfshi ju. Ftojeni te %s Kjo veçori është në fazë beta @@ -2936,4 +2936,49 @@ Po i bihet ziles… Hapësira Mësoni Më Tepër + Shtoni një hapësirë te cilado hapësirë që administroni. + Shtoni hapësira ekzistuese + Shtoni dhoma ekzistuese + Zgjidhni gjëra që duhen braktisur + Braktisni dhoma dhe hapësira të përcaktuara… + Mos braktis ndonjë dhomë dhe hapësirë + Do të braktisni krejt dhomat dhe hapësirat te %s. + Braktis krejt dhomat dhe hapësirat + Jeni i sigurt se doni të dilni nga \'%s\? + Zbulim (%S) + Përfundoje ujdisjen + Ftoni me email, gjeni kontakte, etj… + Përfundo ujdisjen e zbulimit. + Aktualisht nuk përdorni ndonjë shërbyes identitetesh. Që të ftoni shokë të ekipit dhe të jeni i zbulueshëm prej tyre, formësoni një të tillë më poshtë. + Ftoni me emër përdoruesi ose email + Sigurohuni se te %s e shoqërisë kanë hyrje personat e duhur. Më vonë mund të ftoni të tjerë. + Cilët janë shokët tuaj të ekipit\? + Shtoni te Hapësira e dhënë + Po krijohet hapësirë… + Shfaqni ca hollësira të dobishme, për të ndihmuar në diagnostikimin e aplikacionit + Shfaq në ekran të dhëna diagnostikimi + S’duket si adresë email e vlefshme + Hapni Rregullime Zbulimi + Kërkoni sipas emri , ID-je ose email-i + Krijoni Hapësirë të Re + Hapësirën mund ta gjejë kushdo dhe hyjë në të + Hyrje në hapësirë + Kush mund të hyjë\? + Aktivizo njoftime me email për %s + Që të merrni email me njoftim, ju lutemi, përshoqërojini llogarisë tuaj Matrix një email + Njoftim me email + Të përmirësojë hapësirën + Të ndryshojë emrin e hapësirës + Të aktivizojë fshehtëzimin e hapësirës + Të ndryshojë adresë kryesore për hapësirën + Të ndryshojë avatarin e hapësirës + S’keni leje të përditësoni rolet e domosdoshëm për të ndryshuar anë të ndryshme të kësaj hapësire + Të përzgjedhë rolet e domosdoshme për të ndryshuar anë të ndryshme të kësaj hapësire + Të shohë dhe përditësojë role të domosdoshëm për të ndryshuar anë të ndryshme të hapësirës. + Leje hapësire + Heqja e dëbimit përdoruesit do t’i lejojë të marrë pjesë sërish në hapësirë. + Dëbimi i përdoruesit do ta përzërë atë nga kjo hapësirë dhe do t’i pengojë atij rihyrjen. + Përzënia e përdoruesit do ta heqë prej kësaj hapësire. +\n +\nQë të pengohet pjesëmarrja sërish e tij, duhet ta dëboni. \ No newline at end of file From ad42a966f197d769aab4448d427c9adccd86799a Mon Sep 17 00:00:00 2001 From: sr093906 Date: Mon, 27 Sep 2021 10:52:05 +0000 Subject: [PATCH 39/55] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (2658 of 2658 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/zh_Hans/ --- vector/src/main/res/values-zh-rCN/strings.xml | 49 ++++++++++++++++++- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/vector/src/main/res/values-zh-rCN/strings.xml b/vector/src/main/res/values-zh-rCN/strings.xml index 148790d93a..20df22ad79 100644 --- a/vector/src/main/res/values-zh-rCN/strings.xml +++ b/vector/src/main/res/values-zh-rCN/strings.xml @@ -2599,8 +2599,8 @@ 欢迎来到空间! 添加聊天室 添加现有聊天室和空间 - 你是此空间的管理员,请确保你在离开前已将管理权限转让给另一位成员。 - 此空间并非公开空间。你将无法在没有邀请的情况下重新加入。 + 你是此空间唯一的管理员。离开就意味着没人能控制它。 + 除非你被重新邀请,否则你将无法重新加入。 你是这唯一的人。如果你离开,包括你在内的所有人都将无法加入此空间。 你确定你想要离开此空间吗? @@ -2901,4 +2901,49 @@ 来电响铃中… 空间 了解更多 + 将一个空间添加到您管理的任何空间。 + 添加现有空间 + 添加现有聊天室 + 选择要离开的项目 + 离开特定聊天室和空间… + 不要离开任何聊天室和空间 + 你将离开 %s 中的所有聊天室和空间。 + 离开所有聊天室和空间 + 你确定要离开 %s 吗? + 发现 (%s) + 完成设置 + 通过电子邮件邀请、寻找联系人和更多… + 设置“发现”已毕。 + 您目前没有使用身份服务器。为了邀请队友并被他们发现,请在下方配置一个这样的服务器。 + 通过用户名或邮件邀请 + 确保只有合适的人能访问 %s 空间。稍后你可以邀请更多的人加入。 + 谁是你的队友? + 添加至规定的空间 + 创建空间中… + 显示一些有用的信息以帮助调试应用程序 + 在屏幕商显示调试信息 + 看起来不像是有效的邮箱地址 + 打开“发现”设置 + 按名称、ID或邮箱搜索 + 创建新空间 + 任何人均可找到此空间并加入 + 空间访问 + 谁可以访问? + 启用 %s 的电邮通知 + 要接收通知邮件,请将一个电子邮箱关联到你的 Matrix 账户 + 电子邮件通知 + 升级空间 + 更改空间名称 + 启用空间加密 + 更改空间主地址 + 更改空间头像 + 您没有权限更新更改该空间的各个部分所需的角色 + 选择更改该空间的各个部分所需的角色 + 查看和更新更改空间的各个部分所需的角色。 + 空间权限 + 解除禁令将允许被封禁的用户再次加入空间。 + 封禁用户将把他们踢出这个空间,并阻止他们再次加入。 + 把用户踢出也会从这个空间删除他们。 +\n +\n为了防止他们再次加入,你应该封禁他们。 \ No newline at end of file From 126478beba9a160194d7344d7389dab22784db3c Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Tue, 28 Sep 2021 02:23:28 +0000 Subject: [PATCH 40/55] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (2658 of 2658 strings) Translation: Element Android/Element Android App Translate-URL: https://translate.element.io/projects/element-android/element-app/zh_Hant/ --- vector/src/main/res/values-zh-rTW/strings.xml | 49 ++++++++++++++++++- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/vector/src/main/res/values-zh-rTW/strings.xml b/vector/src/main/res/values-zh-rTW/strings.xml index b1c60f51fd..6f7a8b5dd3 100644 --- a/vector/src/main/res/values-zh-rTW/strings.xml +++ b/vector/src/main/res/values-zh-rTW/strings.xml @@ -2728,8 +2728,8 @@ 想要做點實驗嗎? \n您可以將既有的空間新增至其他空間中。 新增聊天室 - 您是此空間的管理員,請確保在您離開前已將管理權轉交給另一個成員。 - 此空間並非公開。您將無法在無邀請的狀況下重新加入。 + 您是此空間唯一的管理員。若離開將意味著沒有人可以控制它。 + 除非被重新邀請,否則您將無法重新加入。 您是這裡唯一的人。如果您離開,包含您在內的所有人都將無法加入。 邀請至 %s 此功能仍在測試版 @@ -2891,4 +2891,49 @@ 通話響鈴中…… 空間 取得更多資訊 + 新增空間至您管理的任何空間。 + 新增既有的空間 + 新增既有的聊天室 + 挑選要離開的對象 + 離開特定的聊天室與空間…… + 不要離開任何聊天室與空間 + 您將離開所有 %s 中的聊天室與空間。 + 離開所有聊天室與空間 + 您確定您想要離開 %s? + 探索 (%s) + 結束設定 + 透過電子郵件邀請、尋找聯絡人以及更多…… + 完成探索設定。 + 您目前並未使用身份認證伺服器。為了邀請隊友並被他們探索,請在下方設定一個。 + 透過使用者名稱或電子郵件邀請 + 確保合適的人可以存取 %s 公司。您可以稍後再邀請。 + 誰是您的隊友? + 新增至指定的空間 + 正在建立空間…… + 顯示一些有用的資訊以協助應用程式除錯 + 在畫面上顯示除錯資訊 + 看起來不是有效的電子郵件地址 + 開啟探索設定 + 以名稱、ID 或電子郵件搜尋 + 建立新空間 + 任何人都可以找到空間並加入 + 空間存取 + 誰可以存取? + 啟用 %s 的電子郵件通知 + 要收到通知用的電子郵件,請將電子郵件關聯至您的 Matrix 帳號 + 電子郵件通知 + 升級空間 + 變更空間名稱 + 啟用空間加密 + 變更空間的主要位置 + 變更空間大頭照 + 您無權更新變更此空間各部份所需角色的權限 + 選取變更此空間各部份所需的角色 + 檢視並更新變更空間各部份所需的角色。 + 空間權限 + 取消封鎖使用者將讓他們可以再次加入空間。 + 封鎖使用者會將他們踢出此空間並防止他們再次加入。 + 踢除使用者將會將他們從此空間中移除。 +\n +\n為了防止他們再加入,您應該封鎖他們。 \ No newline at end of file From e58f358d647d940b6c56dbdbba85389ce0eb7330 Mon Sep 17 00:00:00 2001 From: libexus Date: Tue, 28 Sep 2021 16:40:56 +0000 Subject: [PATCH 41/55] Translated using Weblate (German) Currently translated at 100.0% (30 of 30 strings) Translation: Element Android/Element Android Store Translate-URL: https://translate.element.io/projects/element-android/element-store/de/ --- fastlane/metadata/android/de-DE/changelogs/40102000.txt | 2 +- fastlane/metadata/android/de-DE/changelogs/40102010.txt | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 fastlane/metadata/android/de-DE/changelogs/40102010.txt diff --git a/fastlane/metadata/android/de-DE/changelogs/40102000.txt b/fastlane/metadata/android/de-DE/changelogs/40102000.txt index 9375289279..cfa9f725f2 100644 --- a/fastlane/metadata/android/de-DE/changelogs/40102000.txt +++ b/fastlane/metadata/android/de-DE/changelogs/40102000.txt @@ -1,2 +1,2 @@ Hauptänderungen: Sprachnachrichten standardmäßig aktiviert. -Ganze Änderungsliste: https://github.com/vector-im/element-android/releases/tag/v1.1.16 +Ganze Änderungsliste: https://github.com/vector-im/element-android/releases/tag/v1.2.0 diff --git a/fastlane/metadata/android/de-DE/changelogs/40102010.txt b/fastlane/metadata/android/de-DE/changelogs/40102010.txt new file mode 100644 index 0000000000..2635704a81 --- /dev/null +++ b/fastlane/metadata/android/de-DE/changelogs/40102010.txt @@ -0,0 +1,2 @@ +VoIP und Spaces verbessert +Vollständige Änderungsliste: https://github.com/vector-im/element-android/releases/tag/v1.2.1 From 44c3a0eb9137024b1295b862af031d0bd2ffe3e5 Mon Sep 17 00:00:00 2001 From: Szimszon Date: Tue, 28 Sep 2021 13:26:19 +0000 Subject: [PATCH 42/55] Translated using Weblate (Hungarian) Currently translated at 100.0% (30 of 30 strings) Translation: Element Android/Element Android Store Translate-URL: https://translate.element.io/projects/element-android/element-store/hu/ --- fastlane/metadata/android/hu-HU/changelogs/40102000.txt | 2 +- fastlane/metadata/android/hu-HU/changelogs/40102010.txt | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 fastlane/metadata/android/hu-HU/changelogs/40102010.txt diff --git a/fastlane/metadata/android/hu-HU/changelogs/40102000.txt b/fastlane/metadata/android/hu-HU/changelogs/40102000.txt index 1e708b1c7b..87824693f7 100644 --- a/fastlane/metadata/android/hu-HU/changelogs/40102000.txt +++ b/fastlane/metadata/android/hu-HU/changelogs/40102000.txt @@ -1,2 +1,2 @@ Fő változás ebben a verzióban: Hangüzenetek alapértelmezetten engedélyezettek. -Teljes változásnapló: https://github.com/vector-im/element-android/releases/tag/v1.1.16 +Teljes változásnapló: https://github.com/vector-im/element-android/releases/tag/v1.2.0 diff --git a/fastlane/metadata/android/hu-HU/changelogs/40102010.txt b/fastlane/metadata/android/hu-HU/changelogs/40102010.txt new file mode 100644 index 0000000000..1ccd51aa8a --- /dev/null +++ b/fastlane/metadata/android/hu-HU/changelogs/40102010.txt @@ -0,0 +1,2 @@ +Fő változás ebben a verzióban: Sok fejlesztés a VoIP és Terek kapcsán (még béta) +Teljes változásnapló: https://github.com/vector-im/element-android/releases/tag/v1.2.1 From b17af9a2500eeea886ab5bdea141686b5adc8964 Mon Sep 17 00:00:00 2001 From: lvre <7uu3qrbvm@relay.firefox.com> Date: Mon, 27 Sep 2021 16:07:58 +0000 Subject: [PATCH 43/55] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (30 of 30 strings) Translation: Element Android/Element Android Store Translate-URL: https://translate.element.io/projects/element-android/element-store/pt_BR/ --- fastlane/metadata/android/pt-BR/changelogs/40102000.txt | 2 +- fastlane/metadata/android/pt-BR/changelogs/40102010.txt | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 fastlane/metadata/android/pt-BR/changelogs/40102010.txt diff --git a/fastlane/metadata/android/pt-BR/changelogs/40102000.txt b/fastlane/metadata/android/pt-BR/changelogs/40102000.txt index 3c600baeed..c6d01391da 100644 --- a/fastlane/metadata/android/pt-BR/changelogs/40102000.txt +++ b/fastlane/metadata/android/pt-BR/changelogs/40102000.txt @@ -1,2 +1,2 @@ Principais mudanças nesta versão: Mensagem de Voz está habilitada por default. -Changelog completo: https://github.com/vector-im/element-android/releases/tag/v1.1.16 +Changelog completo: https://github.com/vector-im/element-android/releases/tag/v1.2.0 diff --git a/fastlane/metadata/android/pt-BR/changelogs/40102010.txt b/fastlane/metadata/android/pt-BR/changelogs/40102010.txt new file mode 100644 index 0000000000..0894dd2022 --- /dev/null +++ b/fastlane/metadata/android/pt-BR/changelogs/40102010.txt @@ -0,0 +1,2 @@ +Principais mudanças nesta versão: Muitas melhorias em VoIP e Espaços (ainda em beta). +Changelog completo: https://github.com/vector-im/element-android/releases/tag/v1.2.1 From 41b43f648fdbed77935ed821c755ae5887e62133 Mon Sep 17 00:00:00 2001 From: Nikita Epifanov Date: Tue, 28 Sep 2021 13:26:55 +0000 Subject: [PATCH 44/55] Translated using Weblate (Russian) Currently translated at 100.0% (30 of 30 strings) Translation: Element Android/Element Android Store Translate-URL: https://translate.element.io/projects/element-android/element-store/ru/ --- fastlane/metadata/android/ru-RU/changelogs/40102000.txt | 2 +- fastlane/metadata/android/ru-RU/changelogs/40102010.txt | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 fastlane/metadata/android/ru-RU/changelogs/40102010.txt diff --git a/fastlane/metadata/android/ru-RU/changelogs/40102000.txt b/fastlane/metadata/android/ru-RU/changelogs/40102000.txt index ab0dd0237d..af0a444afa 100644 --- a/fastlane/metadata/android/ru-RU/changelogs/40102000.txt +++ b/fastlane/metadata/android/ru-RU/changelogs/40102000.txt @@ -1,2 +1,2 @@ Основные изменения в этой версии: Голосовое сообщение включено по умолчанию. -Полный список изменений: https://github.com/vector-im/element-android/releases/tag/v1.1.16 +Полный список изменений: https://github.com/vector-im/element-android/releases/tag/v1.2.0 diff --git a/fastlane/metadata/android/ru-RU/changelogs/40102010.txt b/fastlane/metadata/android/ru-RU/changelogs/40102010.txt new file mode 100644 index 0000000000..167af260d5 --- /dev/null +++ b/fastlane/metadata/android/ru-RU/changelogs/40102010.txt @@ -0,0 +1,2 @@ +Основные изменения в этой версии: Множество улучшений в VoIP и пространствах (все еще в бета-версии). +Полный список изменений: https://github.com/vector-im/element-android/releases/tag/v1.2.1 From 5b12dfd4c25b9b3946d616aa31a5ccd8f69e4fe8 Mon Sep 17 00:00:00 2001 From: Ihor Hordiichuk Date: Mon, 27 Sep 2021 20:27:36 +0000 Subject: [PATCH 45/55] Translated using Weblate (Ukrainian) Currently translated at 100.0% (30 of 30 strings) Translation: Element Android/Element Android Store Translate-URL: https://translate.element.io/projects/element-android/element-store/uk/ --- fastlane/metadata/android/uk/changelogs/40102000.txt | 2 +- fastlane/metadata/android/uk/changelogs/40102010.txt | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 fastlane/metadata/android/uk/changelogs/40102010.txt diff --git a/fastlane/metadata/android/uk/changelogs/40102000.txt b/fastlane/metadata/android/uk/changelogs/40102000.txt index 07defcbb57..9abc8c0298 100644 --- a/fastlane/metadata/android/uk/changelogs/40102000.txt +++ b/fastlane/metadata/android/uk/changelogs/40102000.txt @@ -1,2 +1,2 @@ Основні зміни в цій версії: голосові повідомлення типово увімкнено. -Повний журнал змін: https://github.com/vector-im/element-android/releases/tag/v1.1.16 +Повний журнал змін: https://github.com/vector-im/element-android/releases/tag/v1.2.0 diff --git a/fastlane/metadata/android/uk/changelogs/40102010.txt b/fastlane/metadata/android/uk/changelogs/40102010.txt new file mode 100644 index 0000000000..39a8d839b6 --- /dev/null +++ b/fastlane/metadata/android/uk/changelogs/40102010.txt @@ -0,0 +1,2 @@ +Основні зміни в цій версії: багато вдосконалень VoIP і просторів (досі бета) +Повний журнал змін: https://github.com/vector-im/element-android/releases/tag/v1.2.1 From 3cb0cc9d373288905aa61b8e3661a8b98e54152a Mon Sep 17 00:00:00 2001 From: sr093906 Date: Mon, 27 Sep 2021 09:58:36 +0000 Subject: [PATCH 46/55] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (30 of 30 strings) Translation: Element Android/Element Android Store Translate-URL: https://translate.element.io/projects/element-android/element-store/zh_Hans/ --- fastlane/metadata/android/zh-CN/changelogs/40102000.txt | 2 +- fastlane/metadata/android/zh-CN/changelogs/40102010.txt | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 fastlane/metadata/android/zh-CN/changelogs/40102010.txt diff --git a/fastlane/metadata/android/zh-CN/changelogs/40102000.txt b/fastlane/metadata/android/zh-CN/changelogs/40102000.txt index eedbe81bac..fa1db16805 100644 --- a/fastlane/metadata/android/zh-CN/changelogs/40102000.txt +++ b/fastlane/metadata/android/zh-CN/changelogs/40102000.txt @@ -1,2 +1,2 @@ 此版本中的主要更改:默认启用语音消息。 -完整更新日志:https://github.com/vector-im/element-android/releases/tag/v1.1.16 +完整更新日志:https://github.com/vector-im/element-android/releases/tag/v1.2.0 diff --git a/fastlane/metadata/android/zh-CN/changelogs/40102010.txt b/fastlane/metadata/android/zh-CN/changelogs/40102010.txt new file mode 100644 index 0000000000..2ec2ae22b3 --- /dev/null +++ b/fastlane/metadata/android/zh-CN/changelogs/40102010.txt @@ -0,0 +1,2 @@ +这个版本的主要变化:VoIP和空间的许多改进(仍在测试中)。 +完整更新日志:https://github.com/vector-im/element-android/releases/tag/v1.2.1 From aad6f76f87a784abafe1b7bcb97a014cfa445e2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Priit=20J=C3=B5er=C3=BC=C3=BCt?= Date: Mon, 27 Sep 2021 20:37:17 +0000 Subject: [PATCH 47/55] Translated using Weblate (Estonian) Currently translated at 100.0% (30 of 30 strings) Translation: Element Android/Element Android Store Translate-URL: https://translate.element.io/projects/element-android/element-store/et/ --- fastlane/metadata/android/et/changelogs/40102000.txt | 2 +- fastlane/metadata/android/et/changelogs/40102010.txt | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 fastlane/metadata/android/et/changelogs/40102010.txt diff --git a/fastlane/metadata/android/et/changelogs/40102000.txt b/fastlane/metadata/android/et/changelogs/40102000.txt index 678ad05309..57f28039c5 100644 --- a/fastlane/metadata/android/et/changelogs/40102000.txt +++ b/fastlane/metadata/android/et/changelogs/40102000.txt @@ -1,2 +1,2 @@ Põhilised muutused selles versioonis: häälsõnumid on nüüd vaikimisi kasutusel. -Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases/tag/v1.1.16 +Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases/tag/v1.2.0 diff --git a/fastlane/metadata/android/et/changelogs/40102010.txt b/fastlane/metadata/android/et/changelogs/40102010.txt new file mode 100644 index 0000000000..0dc70c90af --- /dev/null +++ b/fastlane/metadata/android/et/changelogs/40102010.txt @@ -0,0 +1,2 @@ +Põhilised muutused selles versioonis: palju täiendusi kõnede ja veel testjärgus olevas kogukonnakeskuste loogikas. +Kogu ingliskeelne muudatuste logi: https://github.com/vector-im/element-android/releases/tag/v1.2.1 From aa98861fcdac0c07eef15a827fcad1db8ba677af Mon Sep 17 00:00:00 2001 From: random Date: Mon, 27 Sep 2021 09:34:14 +0000 Subject: [PATCH 48/55] Translated using Weblate (Italian) Currently translated at 100.0% (30 of 30 strings) Translation: Element Android/Element Android Store Translate-URL: https://translate.element.io/projects/element-android/element-store/it/ --- fastlane/metadata/android/it-IT/changelogs/40102000.txt | 2 +- fastlane/metadata/android/it-IT/changelogs/40102010.txt | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 fastlane/metadata/android/it-IT/changelogs/40102010.txt diff --git a/fastlane/metadata/android/it-IT/changelogs/40102000.txt b/fastlane/metadata/android/it-IT/changelogs/40102000.txt index 3ba7f8ceb3..e10007a7b7 100644 --- a/fastlane/metadata/android/it-IT/changelogs/40102000.txt +++ b/fastlane/metadata/android/it-IT/changelogs/40102000.txt @@ -1,2 +1,2 @@ Modifiche principali in questa versione: i messaggi vocali sono attivi in modo predefinito. -Cronologia completa: https://github.com/vector-im/element-android/releases/tag/v1.1.16 +Cronologia completa: https://github.com/vector-im/element-android/releases/tag/v1.2.0 diff --git a/fastlane/metadata/android/it-IT/changelogs/40102010.txt b/fastlane/metadata/android/it-IT/changelogs/40102010.txt new file mode 100644 index 0000000000..33c2d998a7 --- /dev/null +++ b/fastlane/metadata/android/it-IT/changelogs/40102010.txt @@ -0,0 +1,2 @@ +Modifiche principali in questa versione: molti miglioramenti nel VoIP e negli Spazi (ancora in beta). +Cronologia completa: https://github.com/vector-im/element-android/releases/tag/v1.2.1 From 64f845c37270b64d5d73b27386495eacb782f3a4 Mon Sep 17 00:00:00 2001 From: Danial Behzadi Date: Mon, 27 Sep 2021 09:47:53 +0000 Subject: [PATCH 49/55] Translated using Weblate (Persian) Currently translated at 100.0% (30 of 30 strings) Translation: Element Android/Element Android Store Translate-URL: https://translate.element.io/projects/element-android/element-store/fa/ --- fastlane/metadata/android/fa/changelogs/40102000.txt | 2 +- fastlane/metadata/android/fa/changelogs/40102010.txt | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 fastlane/metadata/android/fa/changelogs/40102010.txt diff --git a/fastlane/metadata/android/fa/changelogs/40102000.txt b/fastlane/metadata/android/fa/changelogs/40102000.txt index c7e159bf2b..9c9a7c51d0 100644 --- a/fastlane/metadata/android/fa/changelogs/40102000.txt +++ b/fastlane/metadata/android/fa/changelogs/40102000.txt @@ -1,2 +1,2 @@ تغییرهای اصلی در این نگارش: پیام صوتی به صورت پیش‌گزیده به کار افتاده. -گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases/tag/v1.1.16 +گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases/tag/v1.2.0 diff --git a/fastlane/metadata/android/fa/changelogs/40102010.txt b/fastlane/metadata/android/fa/changelogs/40102010.txt new file mode 100644 index 0000000000..a2cc27d1b5 --- /dev/null +++ b/fastlane/metadata/android/fa/changelogs/40102010.txt @@ -0,0 +1,2 @@ +تغییرات اصلی در این نگارش: چندین بهبود در ویپ و فضاها (همچنان در حالت آزمایشی). +گزارش دگرگونی کامل: https://github.com/vector-im/element-android/releases/tag/v1.2.1 From 26689ac1111b0113f7482634181df4eac425b19e Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Tue, 28 Sep 2021 01:49:40 +0000 Subject: [PATCH 50/55] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (30 of 30 strings) Translation: Element Android/Element Android Store Translate-URL: https://translate.element.io/projects/element-android/element-store/zh_Hant/ --- fastlane/metadata/android/zh-TW/changelogs/40102010.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 fastlane/metadata/android/zh-TW/changelogs/40102010.txt diff --git a/fastlane/metadata/android/zh-TW/changelogs/40102010.txt b/fastlane/metadata/android/zh-TW/changelogs/40102010.txt new file mode 100644 index 0000000000..b520266a78 --- /dev/null +++ b/fastlane/metadata/android/zh-TW/changelogs/40102010.txt @@ -0,0 +1,2 @@ +此版本中的主要變動:對 VoIP 與空間功能的諸多改善(仍在測試中)。 +完整的變更紀錄:https://github.com/vector-im/element-android/releases/tag/v1.2.1 From 7ff29ebfc583e98394b64f157a67d285c11512b1 Mon Sep 17 00:00:00 2001 From: waclaw66 Date: Mon, 27 Sep 2021 13:06:47 +0000 Subject: [PATCH 51/55] Translated using Weblate (Czech) Currently translated at 100.0% (30 of 30 strings) Translation: Element Android/Element Android Store Translate-URL: https://translate.element.io/projects/element-android/element-store/cs/ --- fastlane/metadata/android/cs-CZ/changelogs/40102010.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 fastlane/metadata/android/cs-CZ/changelogs/40102010.txt diff --git a/fastlane/metadata/android/cs-CZ/changelogs/40102010.txt b/fastlane/metadata/android/cs-CZ/changelogs/40102010.txt new file mode 100644 index 0000000000..ca75c6b5d8 --- /dev/null +++ b/fastlane/metadata/android/cs-CZ/changelogs/40102010.txt @@ -0,0 +1,2 @@ +Hlavní změny v této verzi: Mnohá vylepšení VoIP a prostorů (stále v beta verzi). +Úplný seznam změn: https://github.com/vector-im/element-android/releases/tag/v1.2.1 From 3f73dfcac65f348ccc20b65071c80067e46e5d3e Mon Sep 17 00:00:00 2001 From: Besnik Bleta Date: Tue, 28 Sep 2021 11:07:10 +0000 Subject: [PATCH 52/55] Translated using Weblate (Albanian) Currently translated at 100.0% (30 of 30 strings) Translation: Element Android/Element Android Store Translate-URL: https://translate.element.io/projects/element-android/element-store/sq/ --- .../android/sq/changelogs/40100100.txt | 2 + .../android/sq/changelogs/40100110.txt | 2 + .../android/sq/changelogs/40100120.txt | 2 + .../android/sq/changelogs/40100130.txt | 2 + .../android/sq/changelogs/40100140.txt | 2 + .../android/sq/changelogs/40100150.txt | 2 + .../android/sq/changelogs/40100160.txt | 2 + .../android/sq/changelogs/40100170.txt | 2 + .../android/sq/changelogs/40101000.txt | 2 + .../android/sq/changelogs/40101010.txt | 2 + .../android/sq/changelogs/40101020.txt | 2 + .../android/sq/changelogs/40101030.txt | 2 + .../android/sq/changelogs/40101040.txt | 2 + .../android/sq/changelogs/40101050.txt | 2 + .../android/sq/changelogs/40101060.txt | 2 + .../android/sq/changelogs/40101070.txt | 2 + .../android/sq/changelogs/40101080.txt | 2 + .../android/sq/changelogs/40101090.txt | 2 + .../android/sq/changelogs/40101100.txt | 2 + .../android/sq/changelogs/40101110.txt | 2 + .../android/sq/changelogs/40101120.txt | 2 + .../android/sq/changelogs/40101130.txt | 2 + .../android/sq/changelogs/40101140.txt | 2 + .../android/sq/changelogs/40101150.txt | 2 + .../android/sq/changelogs/40101160.txt | 2 + .../android/sq/changelogs/40102000.txt | 2 + .../android/sq/changelogs/40102010.txt | 2 + .../metadata/android/sq/full_description.txt | 39 +++++++++++++++++++ .../metadata/android/sq/short_description.txt | 1 + fastlane/metadata/android/sq/title.txt | 2 +- 30 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 fastlane/metadata/android/sq/changelogs/40100100.txt create mode 100644 fastlane/metadata/android/sq/changelogs/40100110.txt create mode 100644 fastlane/metadata/android/sq/changelogs/40100120.txt create mode 100644 fastlane/metadata/android/sq/changelogs/40100130.txt create mode 100644 fastlane/metadata/android/sq/changelogs/40100140.txt create mode 100644 fastlane/metadata/android/sq/changelogs/40100150.txt create mode 100644 fastlane/metadata/android/sq/changelogs/40100160.txt create mode 100644 fastlane/metadata/android/sq/changelogs/40100170.txt create mode 100644 fastlane/metadata/android/sq/changelogs/40101000.txt create mode 100644 fastlane/metadata/android/sq/changelogs/40101010.txt create mode 100644 fastlane/metadata/android/sq/changelogs/40101020.txt create mode 100644 fastlane/metadata/android/sq/changelogs/40101030.txt create mode 100644 fastlane/metadata/android/sq/changelogs/40101040.txt create mode 100644 fastlane/metadata/android/sq/changelogs/40101050.txt create mode 100644 fastlane/metadata/android/sq/changelogs/40101060.txt create mode 100644 fastlane/metadata/android/sq/changelogs/40101070.txt create mode 100644 fastlane/metadata/android/sq/changelogs/40101080.txt create mode 100644 fastlane/metadata/android/sq/changelogs/40101090.txt create mode 100644 fastlane/metadata/android/sq/changelogs/40101100.txt create mode 100644 fastlane/metadata/android/sq/changelogs/40101110.txt create mode 100644 fastlane/metadata/android/sq/changelogs/40101120.txt create mode 100644 fastlane/metadata/android/sq/changelogs/40101130.txt create mode 100644 fastlane/metadata/android/sq/changelogs/40101140.txt create mode 100644 fastlane/metadata/android/sq/changelogs/40101150.txt create mode 100644 fastlane/metadata/android/sq/changelogs/40101160.txt create mode 100644 fastlane/metadata/android/sq/changelogs/40102000.txt create mode 100644 fastlane/metadata/android/sq/changelogs/40102010.txt create mode 100644 fastlane/metadata/android/sq/full_description.txt create mode 100644 fastlane/metadata/android/sq/short_description.txt diff --git a/fastlane/metadata/android/sq/changelogs/40100100.txt b/fastlane/metadata/android/sq/changelogs/40100100.txt new file mode 100644 index 0000000000..aba7bebd5a --- /dev/null +++ b/fastlane/metadata/android/sq/changelogs/40100100.txt @@ -0,0 +1,2 @@ +Ky version i ri përmban kryesisht ndreqje të metash dhe përmirësime. Dërgimi i një mesazhi tani është shumë i shpejtë. +Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.0.10 diff --git a/fastlane/metadata/android/sq/changelogs/40100110.txt b/fastlane/metadata/android/sq/changelogs/40100110.txt new file mode 100644 index 0000000000..d1b8e9f9d3 --- /dev/null +++ b/fastlane/metadata/android/sq/changelogs/40100110.txt @@ -0,0 +1,2 @@ +Ky version i ri përmban kryesisht përmirësime të ndërfaqes dhe punimit të përdoruesit. Tani mund të ftoni shokë, dhe të krijoni MD shumë shpejt, përmes skanimit të kodesh QR. +Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.0.11 diff --git a/fastlane/metadata/android/sq/changelogs/40100120.txt b/fastlane/metadata/android/sq/changelogs/40100120.txt new file mode 100644 index 0000000000..d7d9998e0b --- /dev/null +++ b/fastlane/metadata/android/sq/changelogs/40100120.txt @@ -0,0 +1,2 @@ +Ndryshimet kryesore në këtë version: Paraparje URL-sh, tastierë e re për emoji, aftësi të reja për rregullime dhome, dhe dëborë për Krishtlindje! +Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.0.12 diff --git a/fastlane/metadata/android/sq/changelogs/40100130.txt b/fastlane/metadata/android/sq/changelogs/40100130.txt new file mode 100644 index 0000000000..5d50ff531d --- /dev/null +++ b/fastlane/metadata/android/sq/changelogs/40100130.txt @@ -0,0 +1,2 @@ +Ndryshimet kryesore në këtë version: Paraparje URL-sh, tastierë e re për emoji, aftësi të reja për rregullime dhome, dhe dëborë për Krishtlindje! +Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.0.13 diff --git a/fastlane/metadata/android/sq/changelogs/40100140.txt b/fastlane/metadata/android/sq/changelogs/40100140.txt new file mode 100644 index 0000000000..bdab3841b0 --- /dev/null +++ b/fastlane/metadata/android/sq/changelogs/40100140.txt @@ -0,0 +1,2 @@ +Ndryshimet kryesore në këtë version: Përpunim lejesh dhome, temë e çelët/e errët e automatizuar, dhe një dorë ndreqjesh të metash. +Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.0.14 diff --git a/fastlane/metadata/android/sq/changelogs/40100150.txt b/fastlane/metadata/android/sq/changelogs/40100150.txt new file mode 100644 index 0000000000..045f2369b6 --- /dev/null +++ b/fastlane/metadata/android/sq/changelogs/40100150.txt @@ -0,0 +1,2 @@ +Ndryshimet kryesore në këtë version: Mbulim Hyrjesh nga rrjete shoqërorë. +Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.0.15 diff --git a/fastlane/metadata/android/sq/changelogs/40100160.txt b/fastlane/metadata/android/sq/changelogs/40100160.txt new file mode 100644 index 0000000000..ece7bbd2a6 --- /dev/null +++ b/fastlane/metadata/android/sq/changelogs/40100160.txt @@ -0,0 +1,2 @@ +Ndryshimet kryesore në këtë version: Mbulim Hyrjesh nga rrjete shoqërorë. +Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.0.15 dhe https://github.com/vector-im/element-android/releases/tag/v1.0.16 diff --git a/fastlane/metadata/android/sq/changelogs/40100170.txt b/fastlane/metadata/android/sq/changelogs/40100170.txt new file mode 100644 index 0000000000..76cf7a9ffa --- /dev/null +++ b/fastlane/metadata/android/sq/changelogs/40100170.txt @@ -0,0 +1,2 @@ +Ndryshimet kryesore në këtë version: Ndreqje të metash! +Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.0.17 diff --git a/fastlane/metadata/android/sq/changelogs/40101000.txt b/fastlane/metadata/android/sq/changelogs/40101000.txt new file mode 100644 index 0000000000..b4424f55bc --- /dev/null +++ b/fastlane/metadata/android/sq/changelogs/40101000.txt @@ -0,0 +1,2 @@ +Ndryshimet kryesore në këtë version: Përmirësime për VoIP (thirrje audio dhe video në DM) dhe ndreqje të metash! +Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.1.0 diff --git a/fastlane/metadata/android/sq/changelogs/40101010.txt b/fastlane/metadata/android/sq/changelogs/40101010.txt new file mode 100644 index 0000000000..20b35d3439 --- /dev/null +++ b/fastlane/metadata/android/sq/changelogs/40101010.txt @@ -0,0 +1,2 @@ +Ndryshimet kryesore në këtë version: përmirësime funksionimi dhe ndreqje të metash! +Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.1.1 diff --git a/fastlane/metadata/android/sq/changelogs/40101020.txt b/fastlane/metadata/android/sq/changelogs/40101020.txt new file mode 100644 index 0000000000..6f53ec219e --- /dev/null +++ b/fastlane/metadata/android/sq/changelogs/40101020.txt @@ -0,0 +1,2 @@ +Ndryshimet kryesore në këtë version: përmirësime funksionimi dhe ndreqje të metash! +Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.1.2 diff --git a/fastlane/metadata/android/sq/changelogs/40101030.txt b/fastlane/metadata/android/sq/changelogs/40101030.txt new file mode 100644 index 0000000000..9dbc4f142a --- /dev/null +++ b/fastlane/metadata/android/sq/changelogs/40101030.txt @@ -0,0 +1,2 @@ +Ndryshimet kryesore në këtë version: përmirësime funksionimi dhe ndreqje të metash! +Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.1.3 diff --git a/fastlane/metadata/android/sq/changelogs/40101040.txt b/fastlane/metadata/android/sq/changelogs/40101040.txt new file mode 100644 index 0000000000..949fa629b9 --- /dev/null +++ b/fastlane/metadata/android/sq/changelogs/40101040.txt @@ -0,0 +1,2 @@ +Ndryshimet kryesore në këtë version: përmirësime funksionimi dhe ndreqje të metash! +Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.1.4 diff --git a/fastlane/metadata/android/sq/changelogs/40101050.txt b/fastlane/metadata/android/sq/changelogs/40101050.txt new file mode 100644 index 0000000000..28e2852356 --- /dev/null +++ b/fastlane/metadata/android/sq/changelogs/40101050.txt @@ -0,0 +1,2 @@ +Ndryshimet kryesore në këtë version: ndreqje të metash për 1.1.4 +Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.1.5 diff --git a/fastlane/metadata/android/sq/changelogs/40101060.txt b/fastlane/metadata/android/sq/changelogs/40101060.txt new file mode 100644 index 0000000000..ab01eede45 --- /dev/null +++ b/fastlane/metadata/android/sq/changelogs/40101060.txt @@ -0,0 +1,2 @@ +Ndryshimet kryesore në këtë version: ndreqje të metash për 1.1.5 +Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.1.6 diff --git a/fastlane/metadata/android/sq/changelogs/40101070.txt b/fastlane/metadata/android/sq/changelogs/40101070.txt new file mode 100644 index 0000000000..8d23bb5b94 --- /dev/null +++ b/fastlane/metadata/android/sq/changelogs/40101070.txt @@ -0,0 +1,2 @@ +Ndryshimet kryesore në këtë version: mbulim për Hapësira, në fazë beta. Ngjeshje videosh, përpara dërgimi. +Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.1.7 diff --git a/fastlane/metadata/android/sq/changelogs/40101080.txt b/fastlane/metadata/android/sq/changelogs/40101080.txt new file mode 100644 index 0000000000..f9282142cb --- /dev/null +++ b/fastlane/metadata/android/sq/changelogs/40101080.txt @@ -0,0 +1,2 @@ +Ndryshimet kryesore në këtë version: përmirësime për Hapësira. +Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.1.8 diff --git a/fastlane/metadata/android/sq/changelogs/40101090.txt b/fastlane/metadata/android/sq/changelogs/40101090.txt new file mode 100644 index 0000000000..069ab4954d --- /dev/null +++ b/fastlane/metadata/android/sq/changelogs/40101090.txt @@ -0,0 +1,2 @@ +Ndryshimet kryesore në këtë version: shtim mbulimi për rrjetin gitter.im. +Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.1.9 diff --git a/fastlane/metadata/android/sq/changelogs/40101100.txt b/fastlane/metadata/android/sq/changelogs/40101100.txt new file mode 100644 index 0000000000..bf5079bc9a --- /dev/null +++ b/fastlane/metadata/android/sq/changelogs/40101100.txt @@ -0,0 +1,2 @@ +Ndryshimet kryesore në këtë version: përditësime teme dhe stili dhe veçori të reja për hapësira. +Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.1.10 diff --git a/fastlane/metadata/android/sq/changelogs/40101110.txt b/fastlane/metadata/android/sq/changelogs/40101110.txt new file mode 100644 index 0000000000..44d03bb8cb --- /dev/null +++ b/fastlane/metadata/android/sq/changelogs/40101110.txt @@ -0,0 +1,2 @@ +Ndryshimet kryesore në këtë version: përditësime teme dhe stili dhe veçori të reja për hapësira (ndreqje të mete për 1.1.10) +Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.1.11 diff --git a/fastlane/metadata/android/sq/changelogs/40101120.txt b/fastlane/metadata/android/sq/changelogs/40101120.txt new file mode 100644 index 0000000000..aecede8d91 --- /dev/null +++ b/fastlane/metadata/android/sq/changelogs/40101120.txt @@ -0,0 +1,2 @@ +Ndryshimet kryesore në këtë version: përditësime teme dhe stili dhe ndreqje e një vithisjeje pas një thirrjeje video +Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.1.12 diff --git a/fastlane/metadata/android/sq/changelogs/40101130.txt b/fastlane/metadata/android/sq/changelogs/40101130.txt new file mode 100644 index 0000000000..535ccd7518 --- /dev/null +++ b/fastlane/metadata/android/sq/changelogs/40101130.txt @@ -0,0 +1,2 @@ +Ndryshimet kryesore në këtë version: përditësim kryesisht për qëndrueshmërinë dhe ndreqje të metash. +Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.1.13 diff --git a/fastlane/metadata/android/sq/changelogs/40101140.txt b/fastlane/metadata/android/sq/changelogs/40101140.txt new file mode 100644 index 0000000000..2dc279e1f7 --- /dev/null +++ b/fastlane/metadata/android/sq/changelogs/40101140.txt @@ -0,0 +1,2 @@ +Ndryshimet kryesore në këtë version: ndreqje e një problemi rreth mesazhesh të fshehtëzuar. +Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.1.14 diff --git a/fastlane/metadata/android/sq/changelogs/40101150.txt b/fastlane/metadata/android/sq/changelogs/40101150.txt new file mode 100644 index 0000000000..1fbf2bae7a --- /dev/null +++ b/fastlane/metadata/android/sq/changelogs/40101150.txt @@ -0,0 +1,2 @@ +Ndryshimet kryesore në këtë version: sendërtim mesazhesh zanore, nën mjedis laboratori. +Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.1.15 diff --git a/fastlane/metadata/android/sq/changelogs/40101160.txt b/fastlane/metadata/android/sq/changelogs/40101160.txt new file mode 100644 index 0000000000..ecb9a83918 --- /dev/null +++ b/fastlane/metadata/android/sq/changelogs/40101160.txt @@ -0,0 +1,2 @@ +Ndryshimet kryesore në këtë version: Ndreqje gabimi, kur dërgohet mesazh i fshehtëzuar, nëse dikush nga dhoma bën dalje prej saj. +Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.1.16 diff --git a/fastlane/metadata/android/sq/changelogs/40102000.txt b/fastlane/metadata/android/sq/changelogs/40102000.txt new file mode 100644 index 0000000000..c1f2333f1c --- /dev/null +++ b/fastlane/metadata/android/sq/changelogs/40102000.txt @@ -0,0 +1,2 @@ +Ndryshimet kryesore në këtë version: Mesazh Zanor është i aktivizuar, si parazgjedhje. +Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.2.0 diff --git a/fastlane/metadata/android/sq/changelogs/40102010.txt b/fastlane/metadata/android/sq/changelogs/40102010.txt new file mode 100644 index 0000000000..6ffe456bd4 --- /dev/null +++ b/fastlane/metadata/android/sq/changelogs/40102010.txt @@ -0,0 +1,2 @@ +Ndryshimet kryesore në këtë version: Mjaft përmirësime në VoIP dhe Hapësira (ende në beta). +Regjistër i plotë ndryshimesh: https://github.com/vector-im/element-android/releases/tag/v1.2.1 diff --git a/fastlane/metadata/android/sq/full_description.txt b/fastlane/metadata/android/sq/full_description.txt new file mode 100644 index 0000000000..96cf102272 --- /dev/null +++ b/fastlane/metadata/android/sq/full_description.txt @@ -0,0 +1,39 @@ +Element-i është si aplikacion shkëmbyes i sigurt mesazhesh, ashtu edhe bashkëpunimi prodhimtar ekipi, i cili është ideal për fjalosje në grup, teksa punohet së largët. Ky aplikacion fjalosjeje përdor fshehtëzim skaj-më-skaj për të furnizuar konferencë video, shkëmbim kartelash dhe thirrje me zë të fuqishme. + +Në veçoritë e Element-it përfshihen: +- Mjete të thelluara komunikimi internetor +- Mesazhe plotësisht të fshehtëzuar, për të lejuar komunikim në nivel korporate, madje edhe për punonjës së largëti +- Fjalosje e decentralizuar, bazuar në platformën me burim të hapët Matrix +- Shkëmbim i sigurt kartelash, me të dhëna të fshehtëzuara, teksa administrohen projekte +- Fjalosje video të llojit VoIP dhe tregim ekrani +- Integrim i kollajtë me mjetet tuaja të parapëlqyera të bashkëpunimit internetor, mjete administrimi projektesh, shërbime VoIP dhe aplikacione të tjera shkëmbimi mesazhesh në ekip + +Element-i është plotësisht i ndryshëm nga aplikacione të tjera shkëmbimi mesazhesh dhe bashkëpunimi. Funksionimi i tij bazohet në Matrix, një rrjet i hapët për mesazhe të siguruar dhe komunikim të decentralizuar. Lejon vetëstrehim, për t’u lejuar përdoruesve pronësi dhe kontroll maksimal të të dhënave dhe mesazheve të tyre. + +Privatësi dhe shkëmbim mesazhesh të fshehtëzuar +Element-i ju mbron nga reklama të padëshiruara, shfrytëzim të dhënash dhe vatha dixhitale. Ai siguron gjithashtu krejt të dhënat tuaja, komunikime tek-për-tek me video dhe me zë, përmes fshehtëzimi skaj-më-skaj dhe verifikim “cross-signed” pajisjesh. + +Element-i ju jep kontrollin e privatësisë tuaj, teksa ju lejon të komunikoni në mënyrë të siguruar me këdo në rrjetin Matrix, ose me mjete të tjera bashkëpunimi në shkallë biznesi, duke u integruar me aplikacione të tillë si Slack. + +Element-i mund të vetëstrehohet +Për të lejuar më tepër kontroll mbi të dhënat dhe bisedat tuaja rezervat, Element-i mund të vetëstrehohet, ose mund të zgjidhni cilëndo strehë të bazuar në Matrix - standardi për komunikim me burim të hapët, të decentralizuar. Element-i ju jep privatësi, pajtueshmëri sigurie dhe zhdërvjelltësi integrimesh. + +Jini zot i të dhënave tuaja +Ju vendosni ku të mbahen të dhënat dhe mesazhet tuaja. Pa rrezikun e shfrytëzimit të të dhënave apo hyrjes në to nga palë të treta. + +Element-i ju vë ju në kontroll përmes rrugësh të ndryshme: +1. Merrni një llogari falas te shërbyesi publik matrix.org strehuar nga zhvillues të Matrix-it, ose zgjidhni prej mijëra shërbyesish publikë të strehuar nga vullnetarë +2. Vetëstrehoni llogarinë tuaj duke xhiruar një shërbyes në infrastrukturën tuaj TI +3. Regjistrohuni për një llogari në një shërbyes vetjak, thjesht duke u pajtuar te platforma Element Matrix Services e strehimeve + +Shkëmbim mesazhesh dhe bashkëpunim me burim të hapët +Mund të fjaloseni me këdo në rrjetin Matrix, qoftë kur përdorin Element, një tjetër aplikacion Matrix, apo edhe kur përdorin një tjetër aplikacion shkëmbimi mesazhesh. + +Super i sigurt +Fshehtëzim i njëmendtë skaj-më-skaj (vetëm ata te biseda mund të shfshehtëzojnë mesazhe), dhe verifikim “cross-signed” pajisjesh. + +Komunikim dhe integrim i plotë +Shkëmbim mesazhesh, thirrje me zë dhe me video, shkëmbim kartelash, tregim ekrani dhe një grup i tërë integrimesh, robotësh dhe widget-esh. Krijoni dhoma, bashkësi, mbani lidhjet dhe mbaroni punë. + +Rifillojani atje ku e latë +Jini në dijeni, kudo ku gjendeni, me historik plotësisht të njëkohësuar mesazhesh nëpër krejt pajisjet tuaja dhe në internet te https://app.element.io diff --git a/fastlane/metadata/android/sq/short_description.txt b/fastlane/metadata/android/sq/short_description.txt new file mode 100644 index 0000000000..21937ccce5 --- /dev/null +++ b/fastlane/metadata/android/sq/short_description.txt @@ -0,0 +1 @@ +Mesazhe grupi - mesazhe, fjalosje në grup dhe thirrje me video, të fshehtëzuara diff --git a/fastlane/metadata/android/sq/title.txt b/fastlane/metadata/android/sq/title.txt index b46bbc02b1..097f9c48ea 100644 --- a/fastlane/metadata/android/sq/title.txt +++ b/fastlane/metadata/android/sq/title.txt @@ -1 +1 @@ -Element - Shkëmbyes I Sigurt Mesazhesh +Element - Shkëmbyes i Sigurt Mesazhesh From b5614a1cd5e0b5a5039849837d07d52f8e392f6a Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 29 Sep 2021 14:18:52 +0200 Subject: [PATCH 53/55] SQ descriptions are now available --- tools/release/pushPlayStoreMetaData.sh | 26 -------------------------- 1 file changed, 26 deletions(-) diff --git a/tools/release/pushPlayStoreMetaData.sh b/tools/release/pushPlayStoreMetaData.sh index 35833bfcc6..fe7cf7eca6 100755 --- a/tools/release/pushPlayStoreMetaData.sh +++ b/tools/release/pushPlayStoreMetaData.sh @@ -59,24 +59,6 @@ else removeShortDes_si=1 fi -if [[ -f "./fastlane/metadata/android/sq/short_description.txt" ]]; then - echo "It appears that file ./fastlane/metadata/android/sq/short_description.txt now exists. This can be removed." - removeShortDes_sq=0 -else - echo "Copy default short description to ./fastlane/metadata/android/sq" - cp ./fastlane/metadata/android/en-US/short_description.txt ./fastlane/metadata/android/sq - removeShortDes_sq=1 -fi - -if [[ -f "./fastlane/metadata/android/sq/full_description.txt" ]]; then - echo "It appears that file ./fastlane/metadata/android/sq/full_description.txt now exists. This can be removed." - removeFullDes_sq=0 -else - echo "Copy default full description to ./fastlane/metadata/android/sq" - cp ./fastlane/metadata/android/en-US/full_description.txt ./fastlane/metadata/android/sq - removeFullDes_sq=1 -fi - if [[ -f "./fastlane/metadata/android/th/full_description.txt" ]]; then echo "It appears that file ./fastlane/metadata/android/th/full_description.txt now exists. This can be removed." removeFullDes_th=0 @@ -117,18 +99,10 @@ if [[ ${removeShortDes_si} -eq 1 ]]; then rm ./fastlane/metadata/android/si-LK/short_description.txt fi -if [[ ${removeShortDes_sq} -eq 1 ]]; then - rm ./fastlane/metadata/android/sq/short_description.txt -fi - if [[ ${removeFullDes_th} -eq 1 ]]; then rm ./fastlane/metadata/android/th/full_description.txt fi -if [[ ${removeFullDes_sq} -eq 1 ]]; then - rm ./fastlane/metadata/android/sq/full_description.txt -fi - if [[ ${removeFullDes_vi} -eq 1 ]]; then rm ./fastlane/metadata/android/vi/full_description.txt fi From 63e52226c6bad8a9a57e560c01408637c92e59f5 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 29 Sep 2021 14:25:26 +0200 Subject: [PATCH 54/55] Towncrier --- CHANGES.md | 10 ++++++++++ changelog.d/4082.bugfix | 1 - changelog.d/4103.bugfix | 1 - changelog.d/4110.bugfix | 1 - 4 files changed, 10 insertions(+), 3 deletions(-) delete mode 100644 changelog.d/4082.bugfix delete mode 100644 changelog.d/4103.bugfix delete mode 100644 changelog.d/4110.bugfix diff --git a/CHANGES.md b/CHANGES.md index a0b3e7e2ca..8d4899e6fb 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,3 +1,13 @@ +Changes in Element v1.3.1 (2021-09-29) +====================================== + +Bugfixes 🐛 +---------- + - Verifying exported E2E keys to provide user feedback when the output is malformed ([#4082](https://github.com/vector-im/element-android/issues/4082)) + - Fix settings crash when accelerometer not available ([#4103](https://github.com/vector-im/element-android/issues/4103)) + - Crash while rendering failed message warning ([#4110](https://github.com/vector-im/element-android/issues/4110)) + + Changes in Element v1.3.0 (2021-09-27) ====================================== diff --git a/changelog.d/4082.bugfix b/changelog.d/4082.bugfix deleted file mode 100644 index 9ec8d4db97..0000000000 --- a/changelog.d/4082.bugfix +++ /dev/null @@ -1 +0,0 @@ -Verifying exported E2E keys to provide user feedback when the output is malformed \ No newline at end of file diff --git a/changelog.d/4103.bugfix b/changelog.d/4103.bugfix deleted file mode 100644 index 6b4b965540..0000000000 --- a/changelog.d/4103.bugfix +++ /dev/null @@ -1 +0,0 @@ -Fix settings crash when accelerometer not available \ No newline at end of file diff --git a/changelog.d/4110.bugfix b/changelog.d/4110.bugfix deleted file mode 100644 index 7400a29b95..0000000000 --- a/changelog.d/4110.bugfix +++ /dev/null @@ -1 +0,0 @@ -Crash while rendering failed message warning \ No newline at end of file From 6e722874649225c62956b5414df7694ad477704d Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 29 Sep 2021 14:28:08 +0200 Subject: [PATCH 55/55] Fastlane changelog --- fastlane/metadata/android/en-US/changelogs/40103010.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 fastlane/metadata/android/en-US/changelogs/40103010.txt diff --git a/fastlane/metadata/android/en-US/changelogs/40103010.txt b/fastlane/metadata/android/en-US/changelogs/40103010.txt new file mode 100644 index 0000000000..e3760f1882 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/40103010.txt @@ -0,0 +1,2 @@ +Main changes in this version: Organize your rooms using Spaces! v1.3.1 is fixing a crash which can occurs in v1.3.0. +Full changelog: https://github.com/vector-im/element-android/releases/tag/v1.3.1 \ No newline at end of file