diff --git a/README.md b/README.md index 8bd80b0..13e913b 100644 --- a/README.md +++ b/README.md @@ -6,14 +6,7 @@ [![Build Status](https://drone.nextcloud.com/api/badges/nextcloud/talk-android/status.svg)](https://drone.nextcloud.com/nextcloud/talk-android) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/b89a720efbd24754984a776804913bca)](https://www.codacy.com/gh/nextcloud/talk-android/dashboard) [![Releases](https://img.shields.io/github/release/nextcloud/talk-android.svg)](https://github.com/nextcloud/talk-android/releases/latest) [![REUSE status](https://api.reuse.software/badge/github.com/nextcloud/talk-android)](https://api.reuse.software/info/github.com/nextcloud/talk-android) -[Download from Google Play](https://play.google.com/store/apps/details?id=com.nextcloud.talk2) -[Get it on F-Droid](https://f-droid.org/packages/com.nextcloud.talk2/) - -Please note that Notifications won't work with the F-Droid version due to missing Google Play Services. +Please note that Notifications won't work with the gFree version due to missing Google Play Services. ||||||| |---|---|---|---|---|---| diff --git a/app/build.gradle b/app/build.gradle index 8965a6b..a3d958b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -39,8 +39,8 @@ android { // mayor.minor.hotfix.increment (for increment: 01-50=Alpha / 51-89=RC / 90-99=stable) // xx .xxx .xx .xx - versionCode 220000090 - versionName "22.0.0" + versionCode 220000290 + versionName "22.0.2" flavorDimensions "default" renderscriptTargetApi = 19 diff --git a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.kt b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.kt index 6eb2c4f..16e2683 100644 --- a/app/src/main/java/com/nextcloud/talk/activities/CallActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/activities/CallActivity.kt @@ -532,12 +532,12 @@ class CallActivity : CallBaseActivity() { ) } - when (CapabilitiesUtil.getRecordingConsentType(conversationUser!!.capabilities!!.spreedCapability!!)) { + when (CapabilitiesUtil.getRecordingConsentType(conversationUser.capabilities!!.spreedCapability!!)) { CapabilitiesUtil.RECORDING_CONSENT_NOT_REQUIRED -> initiateCall() CapabilitiesUtil.RECORDING_CONSENT_REQUIRED -> askForRecordingConsent() CapabilitiesUtil.RECORDING_CONSENT_DEPEND_ON_CONVERSATION -> { val getRoomApiVersion = ApiUtils.getConversationApiVersion( - conversationUser!!, + conversationUser, intArrayOf(ApiUtils.API_V4, 1) ) ncApi!!.getRoom(credentials, ApiUtils.getUrlForRoom(getRoomApiVersion, baseUrl, roomToken)) diff --git a/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt b/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt index aecdd39..7b6d685 100644 --- a/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt @@ -3255,7 +3255,8 @@ class ChatActivity : } val searchItem = menu.findItem(R.id.conversation_search) - searchItem.isVisible = CapabilitiesUtil.isUnifiedSearchAvailable(spreedCapabilities) && + searchItem.isVisible = + hasSpreedFeatureCapability(spreedCapabilities, SpreedFeatures.UNIFIED_SEARCH) && currentConversation!!.remoteServer.isNullOrEmpty() && !isChatThread() diff --git a/app/src/main/java/com/nextcloud/talk/contextchat/ContextChatViewModel.kt b/app/src/main/java/com/nextcloud/talk/contextchat/ContextChatViewModel.kt index 462725d..e1aaf17 100644 --- a/app/src/main/java/com/nextcloud/talk/contextchat/ContextChatViewModel.kt +++ b/app/src/main/java/com/nextcloud/talk/contextchat/ContextChatViewModel.kt @@ -60,7 +60,7 @@ class ContextChatViewModel @Inject constructor(private val chatNetworkDataSource token = token, messageId = messageId, limit = LIMIT, - threadId = threadId?.toInt() + threadId = threadId?.toIntOrNull() ) if (threadId.isNullOrEmpty()) { diff --git a/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt b/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt index b7d0c3a..926bafd 100644 --- a/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt @@ -89,6 +89,8 @@ import com.nextcloud.talk.contacts.ContactsActivity import com.nextcloud.talk.contacts.ContactsUiState import com.nextcloud.talk.contacts.ContactsViewModel import com.nextcloud.talk.contacts.RoomUiState +import com.nextcloud.talk.contextchat.ContextChatView +import com.nextcloud.talk.contextchat.ContextChatViewModel import com.nextcloud.talk.conversationlist.viewmodels.ConversationsListViewModel import com.nextcloud.talk.data.network.NetworkMonitor import com.nextcloud.talk.data.user.model.User @@ -113,8 +115,6 @@ import com.nextcloud.talk.threadsoverview.ThreadsOverviewActivity import com.nextcloud.talk.ui.BackgroundVoiceMessageCard import com.nextcloud.talk.ui.dialog.ChooseAccountDialogFragment import com.nextcloud.talk.ui.dialog.ChooseAccountShareToDialogFragment -import com.nextcloud.talk.contextchat.ContextChatView -import com.nextcloud.talk.contextchat.ContextChatViewModel import com.nextcloud.talk.ui.dialog.ConversationsListBottomDialog import com.nextcloud.talk.ui.dialog.FilterConversationFragment import com.nextcloud.talk.ui.dialog.FilterConversationFragment.Companion.ARCHIVE @@ -125,7 +125,6 @@ import com.nextcloud.talk.utils.ApiUtils import com.nextcloud.talk.utils.BrandingUtils import com.nextcloud.talk.utils.CapabilitiesUtil.hasSpreedFeatureCapability import com.nextcloud.talk.utils.CapabilitiesUtil.isServerEOL -import com.nextcloud.talk.utils.CapabilitiesUtil.isUnifiedSearchAvailable import com.nextcloud.talk.utils.ClosedInterfaceImpl import com.nextcloud.talk.utils.ConversationUtils import com.nextcloud.talk.utils.FileUtils @@ -319,7 +318,7 @@ class ConversationsListActivity : return } currentUser?.capabilities?.spreedCapability?.let { spreedCapabilities -> - if (isUnifiedSearchAvailable(spreedCapabilities)) { + if (hasSpreedFeatureCapability(spreedCapabilities, SpreedFeatures.UNIFIED_SEARCH)) { searchHelper = MessageSearchHelper(unifiedSearchRepository) } } @@ -1072,7 +1071,7 @@ class ConversationsListActivity : } private fun fetchPendingInvitations() { - if (hasSpreedFeatureCapability(currentUser!!.capabilities!!.spreedCapability!!, SpreedFeatures.FEDERATION_V1)) { + if (hasSpreedFeatureCapability(currentUser?.capabilities?.spreedCapability, SpreedFeatures.FEDERATION_V1)) { binding.conversationListHintInclude.conversationListHintLayout.setOnClickListener { val intent = Intent(this, InvitationsActivity::class.java) startActivity(intent) @@ -1203,7 +1202,7 @@ class ConversationsListActivity : searchableConversationItems.clear() searchableConversationItems.addAll(conversationItemsWithHeader) if (hasSpreedFeatureCapability( - currentUser!!.capabilities!!.spreedCapability!!, + currentUser?.capabilities?.spreedCapability, SpreedFeatures.LISTABLE_ROOMS ) ) { @@ -1464,7 +1463,11 @@ class ConversationsListActivity : adapter?.filterItems() } - if (isUnifiedSearchAvailable(currentUser!!.capabilities!!.spreedCapability!!)) { + if (hasSpreedFeatureCapability( + currentUser?.capabilities?.spreedCapability, + SpreedFeatures.UNIFIED_SEARCH + ) + ) { startMessageSearch(filter) } } else { @@ -1584,7 +1587,7 @@ class ConversationsListActivity : selectedConversation = conversation if (selectedConversation != null) { val hasChatPermission = ParticipantPermissions( - currentUser!!.capabilities!!.spreedCapability!!, + currentUser?.capabilities?.spreedCapability, selectedConversation!! ) .hasChatPermission() @@ -1612,11 +1615,11 @@ class ConversationsListActivity : private fun shouldShowLobby(conversation: ConversationModel): Boolean { val participantPermissions = ParticipantPermissions( - currentUser!!.capabilities?.spreedCapability!!, + currentUser?.capabilities?.spreedCapability, selectedConversation!! ) return conversation.lobbyState == ConversationEnums.LobbyState.LOBBY_STATE_MODERATORS_ONLY && - !ConversationUtils.canModerate(conversation, currentUser!!.capabilities!!.spreedCapability!!) && + !ConversationUtils.canModerate(conversation, currentUser?.capabilities?.spreedCapability) && !participantPermissions.canIgnoreLobby() } diff --git a/app/src/main/java/com/nextcloud/talk/dagger/modules/RestModule.java b/app/src/main/java/com/nextcloud/talk/dagger/modules/RestModule.java index 8d8233a..06c2f0d 100644 --- a/app/src/main/java/com/nextcloud/talk/dagger/modules/RestModule.java +++ b/app/src/main/java/com/nextcloud/talk/dagger/modules/RestModule.java @@ -219,16 +219,6 @@ public class RestModule { httpClient.addInterceptor(new HeadersInterceptor()); - List specs = new ArrayList<>(); - if (BuildConfig.DEBUG) { - specs.add(ConnectionSpec.COMPATIBLE_TLS); - specs.add(ConnectionSpec.CLEARTEXT); - httpClient.connectionSpecs(specs); - } else { - specs.add(ConnectionSpec.COMPATIBLE_TLS); - httpClient.connectionSpecs(specs); - } - if (BuildConfig.DEBUG && !context.getResources().getBoolean(R.bool.nc_is_debug)) { HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor(); loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY); diff --git a/app/src/main/java/com/nextcloud/talk/jobs/NotificationWorker.kt b/app/src/main/java/com/nextcloud/talk/jobs/NotificationWorker.kt index 4a996cb..0e2c715 100644 --- a/app/src/main/java/com/nextcloud/talk/jobs/NotificationWorker.kt +++ b/app/src/main/java/com/nextcloud/talk/jobs/NotificationWorker.kt @@ -232,7 +232,7 @@ class NotificationWorker(context: Context, workerParams: WorkerParameters) : Wor bundle.putInt(BundleKeys.KEY_CALL_FLAG, conversation.callFlag) val participantPermission = ParticipantPermissions( - userBeingCalled!!.capabilities!!.spreedCapability!!, + userBeingCalled?.capabilities?.spreedCapability, conversation ) bundle.putBoolean( diff --git a/app/src/main/java/com/nextcloud/talk/profile/ProfileActivity.kt b/app/src/main/java/com/nextcloud/talk/profile/ProfileActivity.kt index 5786ca4..d5ba256 100644 --- a/app/src/main/java/com/nextcloud/talk/profile/ProfileActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/profile/ProfileActivity.kt @@ -244,7 +244,7 @@ class ProfileActivity : BaseActivity() { binding.emptyList.root.visibility = View.GONE binding.userinfoList.visibility = View.VISIBLE if (CapabilitiesUtil.hasSpreedFeatureCapability( - currentUser!!.capabilities!!.spreedCapability!!, + currentUser?.capabilities?.spreedCapability, SpreedFeatures.TEMP_USER_AVATAR_API ) ) { diff --git a/app/src/main/java/com/nextcloud/talk/settings/SettingsActivity.kt b/app/src/main/java/com/nextcloud/talk/settings/SettingsActivity.kt index 21e8f56..c30df1d 100644 --- a/app/src/main/java/com/nextcloud/talk/settings/SettingsActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/settings/SettingsActivity.kt @@ -945,7 +945,7 @@ class SettingsActivity : binding.settingsShowNotificationWarning.visibility = View.GONE } - if (CapabilitiesUtil.isReadStatusAvailable(currentUser!!.capabilities!!.spreedCapability!!)) { + if (CapabilitiesUtil.isReadStatusAvailable(currentUser?.capabilities?.spreedCapability)) { binding.settingsReadPrivacySwitch.isChecked = !CapabilitiesUtil.isReadStatusPrivate(currentUser!!) } else { binding.settingsReadPrivacy.visibility = View.GONE diff --git a/app/src/main/java/com/nextcloud/talk/utils/CapabilitiesUtil.kt b/app/src/main/java/com/nextcloud/talk/utils/CapabilitiesUtil.kt index 75af1dd..4eda16d 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/CapabilitiesUtil.kt +++ b/app/src/main/java/com/nextcloud/talk/utils/CapabilitiesUtil.kt @@ -100,11 +100,13 @@ object CapabilitiesUtil { //region SpreedCapabilities @JvmStatic - fun hasSpreedFeatureCapability(spreedCapabilities: SpreedCapability, spreedFeatures: SpreedFeatures): Boolean { - if (spreedCapabilities.features != null) { - return spreedCapabilities.features!!.contains(spreedFeatures.value) + fun hasSpreedFeatureCapability(spreedCapabilities: SpreedCapability?, spreedFeatures: SpreedFeatures): Boolean { + if (spreedCapabilities == null) { + Log.e(TAG, "spreedCapabilities were null when checking capability ${spreedFeatures.value}") + return false } - return false + + return spreedCapabilities.features?.contains(spreedFeatures.value) == true } fun isSharedItemsAvailable(spreedCapabilities: SpreedCapability): Boolean = @@ -136,12 +138,16 @@ object CapabilitiesUtil { return CONVERSATION_DESCRIPTION_LENGTH_FOR_OLD_SERVER } - fun isReadStatusAvailable(spreedCapabilities: SpreedCapability): Boolean { - if (spreedCapabilities.config?.containsKey("chat") == true) { - val map: Map? = spreedCapabilities.config!!["chat"] - return map != null && map.containsKey("read-privacy") + fun isReadStatusAvailable(spreedCapabilities: SpreedCapability?): Boolean { + val chatConfig = spreedCapabilities?.config?.get("chat") as? Map<*, *> + return if (chatConfig?.containsKey("read-privacy") == true) { + true + } else { + if (spreedCapabilities == null) { + Log.e(TAG, "spreedCapabilities were null when checking capability isReadStatusAvailable") + } + false } - return false } fun retentionOfEventRooms(spreedCapabilities: SpreedCapability): Int { @@ -201,9 +207,6 @@ object CapabilitiesUtil { fun isConversationDescriptionEndpointAvailable(spreedCapabilities: SpreedCapability): Boolean = hasSpreedFeatureCapability(spreedCapabilities, SpreedFeatures.ROOM_DESCRIPTION) - fun isUnifiedSearchAvailable(spreedCapabilities: SpreedCapability): Boolean = - hasSpreedFeatureCapability(spreedCapabilities, SpreedFeatures.UNIFIED_SEARCH) - fun isAbleToCall(spreedCapabilities: SpreedCapability): Boolean = if ( spreedCapabilities.config?.containsKey("call") == true && diff --git a/app/src/main/java/com/nextcloud/talk/utils/ConversationUtils.kt b/app/src/main/java/com/nextcloud/talk/utils/ConversationUtils.kt index 3142709..85e89b0 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/ConversationUtils.kt +++ b/app/src/main/java/com/nextcloud/talk/utils/ConversationUtils.kt @@ -27,11 +27,11 @@ object ConversationUtils { Participant.ParticipantType.GUEST_MODERATOR == conversation.participantType || Participant.ParticipantType.MODERATOR == conversation.participantType - fun isLockedOneToOne(conversation: ConversationModel, spreedCapabilities: SpreedCapability): Boolean = + fun isLockedOneToOne(conversation: ConversationModel, spreedCapabilities: SpreedCapability?): Boolean = conversation.type == ConversationEnums.ConversationType.ROOM_TYPE_ONE_TO_ONE_CALL && CapabilitiesUtil.hasSpreedFeatureCapability(spreedCapabilities, SpreedFeatures.LOCKED_ONE_TO_ONE) - fun canModerate(conversation: ConversationModel, spreedCapabilities: SpreedCapability): Boolean = + fun canModerate(conversation: ConversationModel, spreedCapabilities: SpreedCapability?): Boolean = isParticipantOwnerOrModerator(conversation) && !isLockedOneToOne(conversation, spreedCapabilities) && conversation.type != ConversationEnums.ConversationType.FORMER_ONE_TO_ONE && diff --git a/app/src/main/java/com/nextcloud/talk/utils/ParticipantPermissions.kt b/app/src/main/java/com/nextcloud/talk/utils/ParticipantPermissions.kt index a46bfa7..4e57300 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/ParticipantPermissions.kt +++ b/app/src/main/java/com/nextcloud/talk/utils/ParticipantPermissions.kt @@ -14,7 +14,7 @@ import com.nextcloud.talk.models.json.capabilities.SpreedCapability * see https://nextcloud-talk.readthedocs.io/en/latest/constants/#attendee-permissions */ class ParticipantPermissions( - private val spreedCapabilities: SpreedCapability, + private val spreedCapabilities: SpreedCapability?, private val conversation: ConversationModel ) { val isDefault = (conversation.permissions and DEFAULT) == DEFAULT diff --git a/app/src/main/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml index 4a7de4d..4653a74 100644 --- a/app/src/main/res/values-be/strings.xml +++ b/app/src/main/res/values-be/strings.xml @@ -31,8 +31,8 @@ Дазвол на камеру атрыманы. Выберыце камеру яшчэ раз. Скасаваць уваход Выбраць аватар з воблака - Ачысціць паведамленне статусу - Ачысціць паведамленне статусу пасля + Ачысціць + Ачысціць паведамленне статусу праз Закрыць Значок Закрыць Злучэнне ўсталявана @@ -209,7 +209,7 @@ Аптымізацыя батарэі ўключана, што можа выклікаць праблемы. Вам варта адключыць аптымізацыю батарэі! Налады батарэі Прылада - Адкрыць кантрольны спіс вырашэння праблем + Адкрыць спіс вырашэння праблем Адкрыць экран дыягностыкі Адкрыць dontkillmyapp.com Атрыманне апошняга push-токена firebase @@ -274,7 +274,7 @@ Пераслаць … Галерэя У вас яшчэ няма сервера?\nНацісніце тут, каб атрымаць яго ў пастаўшчыка - Атрымаць зыходны код + Зыходны код Група Госць Гасцявы доступ @@ -357,7 +357,7 @@ Апавяшчаць пра ход выканання запампоўвання Налады апавяшчэнняў Апавяшчэнні наладжаны няправільна - Дазвол на апавяшчэнні і налады батарэі зададзены правільна, каб атрымліваць апавяшчэнні. Калі ў вас усё адно ўзнікаюць праблемы з атрыманнем апавяшчэнняў, праверце, ці ўключаны каналы апавяшчэнняў для выклікаў і паведамленняў. Дадатковую дапамогу можна знайсці на сайце DontKillMyApp.com або ў спісе пошуку і вырашэння праблем. Калі гэта не дапаможа, перайдзіце на экран дыягностыкі і адпраўце справаздачу пра памылку. + Дазвол на апавяшчэнні і налады батарэі зададзены правільна. Калі ў вас усё адно ўзнікаюць праблемы з атрыманнем апавяшчэнняў, праверце, ці ўключаны каналы апавяшчэнняў для выклікаў і паведамленняў. Дадатковую дапамогу можна знайсці на сайце DontKillMyApp.com або ў спісе пошуку і вырашэння праблем. Калі гэта не дапаможа, перайдзіце на экран дыягностыкі і адпраўце справаздачу пра памылку. Вырашэнне праблем з апавяшчэннямі Заўсёды апавяшчаць Апавяшчаць пры згадванні @@ -480,8 +480,8 @@ Выдаліць Выдаліць уліковы запіс Пацвердзіце свой намер выдаліць бягучы ўліковы запіс. - Блакіраваць %1$s з дапамогай блакіроўкі экрана Android або біяметрычнага метаду, які падтрымліваецца - Час чакання блакіроўкі экрана пры бяздзейнасці + Блакіраваць %1$s з дапамогай блакіроўкі экрана Android або даступнага біяметрычнага метаду + Час чакання блакіроўкі пры бяздзейнасці Блакіроўка экрана Забараняе рабіць здымкі экрана ў спісе нядаўняга і ўнутры праграмы Бяспека экрана @@ -513,7 +513,7 @@ Няма абагуленых элементаў Месцазнаходжанне Абагуленае месцазнаходжанне - Калі апавяшчэнні настроены няправільна, паказваць звычайнае папярэджанне + Калі апавяшчэнні наладжаны няправільна, паказваць звычайнае папярэджанне Паказваць звычайнае папярэджанне аб апавяшчэннях Сартаваць па Пачаць супольны чат @@ -530,7 +530,7 @@ Не ўдалося запампаваць Не ўдалося запампаваць %1$s Няўдача - Абагульванне ад %1$s + Абагульванне з %1$s Запампаваць з прылады Запампоўванне %1$s у %2$s - %3$s\%% @@ -553,7 +553,7 @@ Выкл. Прадвызначаныя Прытрымлівацца налад размовы - 1 гадзіна + 1 гадзіну У сетцы Статус у сетцы Адкрытыя размовы @@ -627,7 +627,7 @@ Задаць Задаць аватар з камеры Задаць статус - Задаць паведамленне статусу + Задаць Абагуліць Далучайцеся да размовы %1$s у %2$s Аўдыя @@ -686,7 +686,7 @@ Разблакіраваць Непрачытанае Запампаваць новы аватар з прылады - %1$s сёння не на працы і можа не адказаць + %1$s не на працы і можа не адказаць %1$s сёння не на працы Замена: Аватар карыстальніка diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 9543747..85ceb6f 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -88,7 +88,7 @@ Sænk hånden Marker samtalen %1$s som læst Marker samtalen %1$s som ulæst - Nævnt + Omtalt Nyeste først Ældste først A - Å diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index af42bd6..c97cbd3 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -156,6 +156,7 @@ Επεξεργασία Επεξεργασία μηνύματος 8 ώρες + 4 εβδομάδες Απενεργοποίηση 1 μέρα 1 ώρα @@ -208,6 +209,7 @@ Σήμανση ως αναγνωσμένο επισήμανση ως μή-αναγνωσμένο Απέτυχε + Εκτός σύνδεσης Ακύρωση απάντησης Το μήνυμα διαβάστηκε Το μήνυμα στάλθηκε diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index f8aa767..03992d7 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -79,6 +79,7 @@ Hasi idazten bilatzeko … Bilatu … Mezuak + Isilarazi jakinarazpen guztiak Aukeratutako kontua inportatu da eta eskuragarri dago Honi buruz Erabiltzaile aktiboa diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index 8ae28ab..3d7e3a7 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -374,7 +374,7 @@ Participantes Engadir participantes Contrasinal - Establecer os permisos + Estabelecer os permisos Algúns permisos foron denegados. Autorice os permisos Abrir os axustes @@ -587,7 +587,7 @@ Non foi posíbel ler o código QR. Erguer a man Todo - Non é posible compartir ficheiros desde o almacenamento sen permisos + Non é posíbel compartir ficheiros desde o almacenamento sen permisos Fíos recentes Estase a gravar a chamada Cancelar o inicio da gravación @@ -607,7 +607,7 @@ Cambióuselle o nome a conversa %1$s Volver enviar Restabelecer o estado - Non é posible unirse a outras salas mentres está nunha chamada + Non é posíbel unirse a outras salas mentres está nunha chamada Gardar Escanear o código QR Sincronizar só con servidores de confianza @@ -654,7 +654,7 @@ Cambiar á sala principal Tirar unha foto Produciuse un erro ao tirar a foto - Non é posible tirar unha foto sen permisos + Non é posíbel tirar unha foto sen permisos Volver tirar a foto Enviar Cambiar de cámara diff --git a/app/src/main/res/values-hu-rHU/strings.xml b/app/src/main/res/values-hu-rHU/strings.xml index a9ed840..809e40d 100644 --- a/app/src/main/res/values-hu-rHU/strings.xml +++ b/app/src/main/res/values-hu-rHU/strings.xml @@ -5,6 +5,7 @@ Hozzáadás a jegyzetekhez A(z) %1$s beszélgetés hozzáadva a kedvencekhez Keresés itt: %s + Megjelenés nem kapcsolódottként Beszélgetés archiválása Ha archivál egy beszélgetést, akkor alapértelmezetten el lesz rejtve. Válassza az „Archiválva” szűrőt az archivált beszélgetések megtekintéséhez. A közvetlen említéseket továbbra is meg fogja kapni. Archiválva @@ -48,6 +49,7 @@ Veszélyes területet %1$s itt: %2$s Profilkép törlése + Hangfelvétel törlése %1$s beszélgetés törlése Ne zavarjanak Ne törölje @@ -77,6 +79,10 @@ Elhagyta a következő beszélgetést: %1$s További találatok betöltése Helyi idő: %1$s + Hely engedély szükséges + Engedélyezze az alkalmazásbeállításokban + Helyszolgáltatások letiltva + A funkció használatához engedélyezze a helyszolgáltatásokat (GPS) Beszélgetés zárolása Zár szimbólum Kéz letétele @@ -90,6 +96,7 @@ Legnagyobb elöl Legkisebb elöl Üzenet másolva + Biztos, hogy törli ezt az üzenetet? Törölte az üzenetet Szerkesztette: %1$s Koppintson a szavazás megnyitásához @@ -97,6 +104,7 @@ Kezdjen el gépelni a kereséshez… Keresés… Üzenetek + Összes értesítés némítása A kiválasztott fiók importálva lett és elérhető Leírás Aktív felhasználó @@ -326,6 +334,7 @@ Üzenet elolvasva Küldés Üzenet elküldve + A mikrofon engedélyezve van, és a hang felvételre kerül A hanghívás engedélyezéséhez meg kell adnia a „Mikrofon” engedélyt. Nem fogadott hívás a következőtől: %s Moderátor @@ -411,6 +420,7 @@ Keresés törlése Fiók kiválasztása Üzenet frissítése + Hangfelvétel küldése Érzékeny beszélgetés Az üzenet-előnézet le lesz tiltva a beszélgetési listában és az értesítésekben %1$s GIF képet küldött. @@ -543,15 +553,18 @@ Nincs archivált beszélgetés Nincs mentett offline üzenet A hiányzó engedélyek miatt nincs telefonszám-integráció - Minden üzenet + Összes üzenet csak @-megemlítések + Ki Alapértelmezett + Beszélgetésbeállítások követése 1 óra Elérhető Elérhető állapot Beszélgetések megnyitása Megnyitás a Fájlok alkalmazásban Jegyzetek megnyitása + Ugrás a szálhoz Hangüzenet lejátszása/szüneteltetése Lejátszási sebesség vezérlése Lehetőség hozzáadása @@ -571,9 +584,11 @@ Szavazat leadása Szavazat leadva Előzőleg beállított + A QR-kód nem olvasható el Kéz felemelése Összes A fájlok megosztása a tárhelyről engedély nélkül nem lehetséges + Legutóbbi szálak A hívásról felvétel készül Felvétel indításának megszakítása A felvétel sikertelen. Lépjen kapcsolatba a rendszergazdával. @@ -594,7 +609,7 @@ Állapot visszaállítása Hívás közben nem lehet más szobákhoz csatlakozni Mentés - Scan QR Code + QR-kód leolvasása Szinkronizálás csak a megbízható kiszolgálókkal Föderált Csak az ezen a példányon lévő személyek és a vendégek láthatják @@ -631,6 +646,7 @@ Kitiltott résztvevők megjelenítése Kedvenc Nincs jogosultsága hívást indítani + Szál létrehozása hívás indítás Állapotüzenet Üzenet visszaállítva @@ -649,6 +665,12 @@ Ez a hét Ez egy tesztüzenet Ezen a hétvégén + Szál létrehozásának megszakítása + Szálértesítések + Válasz + Szál címe + Szálak + Nem találhatók szálak Ma Holnap Lefordítás @@ -694,6 +716,10 @@ Ez a beszélgetés %1$d nap tétlenség után mindenkinél törölve lesz Ez a beszélgetés %1$d nap tétlenség után mindenkinél törölve lesz + + %d válasz + %d válasz + %d szavazat %d szavazat diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml index d0fba1d..c63c258 100644 --- a/app/src/main/res/values-ja-rJP/strings.xml +++ b/app/src/main/res/values-ja-rJP/strings.xml @@ -565,6 +565,7 @@ 音声番号 お気に入り 通話を開始することが許可されていません + スレッドを作成する 会話を開始 ステータスメッセージ ブレイクアウトルームに切り替える diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index cfba471..186a5fb 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -83,7 +83,7 @@ Por favor, ative-a nas configurações do aplicativo Serviços de localização desativados Ative os serviços de localização (GPS) para usar este recurso - Bloquear conversa + Trancar conversa Símbolo de cadeado Baixar mão Conversa %1$s marcada como lida @@ -118,7 +118,7 @@ Adicionar aos favoritos OK, tudo pronto! PIN: %1$s - Desbloquear %1$s + Destrancar %1$s Para ativar os alto-falantes bluetooth, conceda a permissão \"Dispositivos próximos\". Atender como chamada de vídeo Atender apenas como chamada de voz @@ -316,8 +316,8 @@ Sua localização atual permissão de localização é necessária Posição desconhecida - Bloqueado - Toque para desbloquear + Trancado + Toque para destrancar Não definido Marcar como lido Marcar como não lido @@ -484,9 +484,9 @@ Excluir Excluir conta Confirme se quer realmente excluir a conta atual. - Bloquear %1$s com o bloqueio de tela do Android ou um método biométrico suportado + Trancar %1$s com o bloqueio de tela do Android ou um método biométrico suportado Tempo limite para bloqueio de tela - Bloquear tela + Bloqueio de tela Impede capturas de tela na lista recente e dentro do aplicativo Segurança da tela A versão do servidor é muito antiga e não será suportada na próxima versão! diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 20e9564..7fa6c41 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -285,7 +285,7 @@ 当被提及时提醒 从不提醒 当前离线,请检查您的连接 - OK + 确定 向注册用户开放对话 同样对访客用户开放 所有者 @@ -579,7 +579,7 @@ 检索个人用户信息失败 未设置个人信息 在你的个人资料页上添加姓名、图片和联系方式。 - 你什么状态? + 您的状态如何? %d 票