Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Giacomo Pacini 2024-03-13 18:50:32 +01:00
commit 2deefb3c0a
No known key found for this signature in database
GPG Key ID: 2FBC97406B43D889
67 changed files with 659 additions and 550 deletions

View File

@ -49,7 +49,7 @@ jobs:
repository: ${{ steps.get-vars.outputs.repo }}
ref: ${{ steps.get-vars.outputs.branch }}
- name: Set up JDK 17
uses: actions/setup-java@9704b39bf258b59bc04b50fa2dd55e9ed76b47a8 # v4.1.0
uses: actions/setup-java@5896cecc08fd8a1fbdfaf517e29b571164b031f7 # v4.2.0
with:
distribution: "temurin"
java-version: 17

View File

@ -39,11 +39,11 @@ jobs:
with:
swap-size-gb: 10
- name: Initialize CodeQL
uses: github/codeql-action/init@8a470fddafa5cbb6266ee11b37ef4d8aae19c571 # v3.24.6
uses: github/codeql-action/init@3ab4101902695724f9365a384f86c1074d94e18c # v3.24.7
with:
languages: ${{ matrix.language }}
- name: Set up JDK 17
uses: actions/setup-java@9704b39bf258b59bc04b50fa2dd55e9ed76b47a8 # v4.1.0
uses: actions/setup-java@5896cecc08fd8a1fbdfaf517e29b571164b031f7 # v4.2.0
with:
distribution: "temurin"
java-version: 17
@ -53,4 +53,4 @@ jobs:
echo "org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError" > "$HOME/.gradle/gradle.properties"
./gradlew assembleDebug
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@8a470fddafa5cbb6266ee11b37ef4d8aae19c571 # v3.24.6
uses: github/codeql-action/analyze@3ab4101902695724f9365a384f86c1074d94e18c # v3.24.7

View File

@ -3,6 +3,13 @@
# https://github.com/nextcloud/.github
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
# SPDX-FileCopyrightText: 2023 Marcel Klehr <mklehr@gmx.net>
# SPDX-FileCopyrightText: 2023 Joas Schilling <213943+nickvergessen@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Daniel Kesselberg <mail@danielkesselberg.de>
# SPDX-FileCopyrightText: 2023 Florian Steffens <florian.steffens@nextcloud.com>
# SPDX-License-Identifier: MIT
name: 'Ask for feedback on PRs'
on:
schedule:

View File

@ -42,6 +42,6 @@ jobs:
# Upload the results to GitHub's code scanning dashboard.
- name: "Upload to code-scanning"
uses: github/codeql-action/upload-sarif@8a470fddafa5cbb6266ee11b37ef4d8aae19c571 # v3.24.6
uses: github/codeql-action/upload-sarif@3ab4101902695724f9365a384f86c1074d94e18c # v3.24.7
with:
sarif_file: results.sarif

View File

@ -5,6 +5,37 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
Types of changes can be: Added/Changed/Deprecated/Removed/Fixed/Security
## [18.1.0] - 2024-03-12
### Added
- Diagnosis screen (in advanced settings. incl. share option to create new issue)
- Show warnings if notification settings are not set correctly
- Grouping for upload notifications (@parneet-guraya)
- Stop media playback when switching output device (@parneet-guraya)
- Avoid multiple media playbacks (@parneet-guraya)
- Add "Add to notes" in message options
- Cursor position is saved in message drafts
- Share message text to other apps
- Support Android 14
- Janus 1.x support
### Fixed
- App permanently sends speaking data channel message
- Back button closes app when forwarding a message
Minimum: Android 7.0 Nougat
For a full list, please see https://github.com/nextcloud/talk-android/milestone/79?closed=1
## [18.0.1] - 2023-12-22
### Fixed
- Voice messages sometimes fail to playback
Minimum: Android 7.0 Nougat
For a full list, please see https://github.com/nextcloud/talk-android/milestone/75?closed=1
## [18.0.0] - 2023-12-11
### Added

View File

@ -141,7 +141,7 @@ android {
}
ext {
androidxCameraVersion = "1.3.1"
androidxCameraVersion = "1.3.2"
coilKtVersion = "2.6.0"
daggerVersion = "2.51"
emojiVersion = "1.4.0"
@ -156,7 +156,7 @@ ext {
roomVersion = "2.6.1"
workVersion = "2.9.0"
espressoVersion = "3.5.1"
media3_version = "1.2.1"
media3_version = "1.3.0"
}
configurations.configureEach {
@ -289,8 +289,8 @@ dependencies {
implementation 'androidx.core:core-ktx:1.12.0'
testImplementation 'junit:junit:4.13.2'
testImplementation 'org.mockito:mockito-core:5.10.0'
androidTestImplementation 'org.mockito:mockito-android:5.10.0'
testImplementation 'org.mockito:mockito-core:5.11.0'
androidTestImplementation 'org.mockito:mockito-android:5.11.0'
testImplementation 'androidx.arch.core:core-testing:2.2.0'
androidTestImplementation "androidx.test:core:1.5.0"
@ -312,7 +312,7 @@ dependencies {
implementation 'androidx.activity:activity-ktx:1.8.2'
implementation 'com.github.nextcloud.android-common:ui:0.17.0'
implementation 'com.github.nextcloud.android-common:ui:0.18.0'
implementation 'com.github.nextcloud-deps:android-talk-webrtc:121.6167.0'
}

View File

@ -105,7 +105,7 @@ open class BaseActivity : AppCompatActivity() {
disableKeyboardPersonalisedLearning(viewGroup)
}
if (appPreferences.isScreenSecured) {
if (appPreferences.isScreenSecured || appPreferences.isScreenLocked) {
window.addFlags(WindowManager.LayoutParams.FLAG_SECURE)
} else {
window.clearFlags(WindowManager.LayoutParams.FLAG_SECURE)

View File

@ -50,10 +50,11 @@ import com.nextcloud.talk.models.json.conversations.Conversation
import com.nextcloud.talk.models.json.conversations.Conversation.ConversationType
import com.nextcloud.talk.ui.StatusDrawable
import com.nextcloud.talk.ui.theme.ViewThemeUtils
import com.nextcloud.talk.utils.CapabilitiesUtil.hasSpreedFeatureCapability
import com.nextcloud.talk.utils.SpreedFeatures
import com.nextcloud.talk.utils.ConversationUtils
import com.nextcloud.talk.utils.DisplayUtils
import com.nextcloud.talk.utils.CapabilitiesUtil.hasSpreedFeatureCapability
import eu.davidea.flexibleadapter.FlexibleAdapter
import eu.davidea.flexibleadapter.items.AbstractFlexibleItem
import eu.davidea.flexibleadapter.items.IFilterable

View File

@ -194,7 +194,7 @@ import com.nextcloud.talk.ui.recyclerview.MessageSwipeActions
import com.nextcloud.talk.ui.recyclerview.MessageSwipeCallback
import com.nextcloud.talk.utils.ApiUtils
import com.nextcloud.talk.utils.AudioUtils
import com.nextcloud.talk.utils.SpreedFeatures
import com.nextcloud.talk.utils.CapabilitiesUtil
import com.nextcloud.talk.utils.ContactUtils
import com.nextcloud.talk.utils.ConversationUtils
import com.nextcloud.talk.utils.DateConstants
@ -207,6 +207,7 @@ import com.nextcloud.talk.utils.MagicCharPolicy
import com.nextcloud.talk.utils.Mimetype
import com.nextcloud.talk.utils.NotificationUtils
import com.nextcloud.talk.utils.ParticipantPermissions
import com.nextcloud.talk.utils.SpreedFeatures
import com.nextcloud.talk.utils.UriUtils
import com.nextcloud.talk.utils.VibrationUtils
import com.nextcloud.talk.utils.bundle.BundleKeys
@ -221,7 +222,6 @@ import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ROOM_ID
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ROOM_TOKEN
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_START_CALL_AFTER_ROOM_SWITCH
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_SWITCH_TO_ROOM
import com.nextcloud.talk.utils.CapabilitiesUtil
import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew
import com.nextcloud.talk.utils.permissions.PlatformPermissionUtil
import com.nextcloud.talk.utils.rx.DisposableSet
@ -643,6 +643,7 @@ class ChatActivity :
spreedCapabilities = state.spreedCapabilities
chatApiVersion = ApiUtils.getChatApiVersion(spreedCapabilities, intArrayOf(1))
invalidateOptionsMenu()
initMessageInputView()
if (conversationUser?.userId != "?" &&
@ -874,11 +875,11 @@ class ChatActivity :
when (state.response.code()) {
HTTP_CODE_OK -> {
Log.d(TAG, "lookIntoFuture: ${state.lookIntoFuture}")
val chatOverall = state.response.body() as ChatOverall?
var chatMessageList = chatOverall?.ocs!!.data!!
processHeaderChatLastGiven(state.response, state.lookIntoFuture)
val chatOverall = state.response.body() as ChatOverall?
var chatMessageList = chatOverall?.ocs!!.data!!
chatMessageList = handleSystemMessages(chatMessageList)
if (chatMessageList.size == 0) {
@ -903,15 +904,7 @@ class ChatActivity :
adapter?.notifyDataSetChanged()
}
var lastAdapterId = 0
if (adapter?.items?.size != 0) {
val item = adapter?.items?.get(0)?.item
if (item != null) {
lastAdapterId = (item as ChatMessage).jsonMessageId
} else {
lastAdapterId = 0
}
}
var lastAdapterId = getLastAdapterId()
if (
state.lookIntoFuture &&
@ -940,24 +933,24 @@ class ChatActivity :
}
HTTP_CODE_NOT_MODIFIED -> {
processHeaderChatLastGiven(state.response, state.lookIntoFuture)
chatViewModel.refreshChatParams(
setupFieldsForPullChatMessages(
state.lookIntoFuture,
true,
globalLastKnownFutureMessageId,
true
)
),
true
)
}
HTTP_CODE_PRECONDITION_FAILED -> {
processHeaderChatLastGiven(state.response, state.lookIntoFuture)
chatViewModel.refreshChatParams(
setupFieldsForPullChatMessages(
state.lookIntoFuture,
true,
globalLastKnownFutureMessageId,
true
)
),
true
)
}
@ -1268,6 +1261,19 @@ class ChatActivity :
)
}
private fun getLastAdapterId(): Int {
var lastId = 0
if (adapter?.items?.size != 0) {
val item = adapter?.items?.get(0)?.item
if (item != null) {
lastId = (item as ChatMessage).jsonMessageId
} else {
lastId = 0
}
}
return lastId
}
private fun setEditUI() {
binding.messageInputView.messageSendButton.visibility = View.GONE
binding.messageInputView.recordAudioButton.visibility = View.GONE
@ -3752,8 +3758,7 @@ class ChatActivity :
}
private fun processMessagesFromTheFuture(chatMessageList: List<ChatMessage>) {
val shouldAddNewMessagesNotice = (adapter?.itemCount ?: 0) > 0 && chatMessageList.isNotEmpty()
val shouldAddNewMessagesNotice = layoutManager?.findFirstVisibleItemPosition()!! > 0
if (shouldAddNewMessagesNotice) {
val unreadChatMessage = ChatMessage()
unreadChatMessage.jsonMessageId = -1
@ -3764,10 +3769,6 @@ class ChatActivity :
}
addMessagesToAdapter(shouldAddNewMessagesNotice, chatMessageList)
if (shouldAddNewMessagesNotice && adapter != null) {
scrollToFirstUnreadMessage()
}
}
private fun processMessagesNotFromTheFuture(chatMessageList: List<ChatMessage>) {
@ -3842,7 +3843,7 @@ class ChatActivity :
}
private fun modifyMessageCount(shouldAddNewMessagesNotice: Boolean, shouldScroll: Boolean) {
if (!shouldAddNewMessagesNotice && !shouldScroll) {
if (shouldAddNewMessagesNotice) {
binding.popupBubbleView.isShown.let {
if (it) {
newMessagesCount++
@ -4022,17 +4023,16 @@ class ChatActivity :
val searchItem = menu.findItem(R.id.conversation_search)
searchItem.isVisible = CapabilitiesUtil.isUnifiedSearchAvailable(spreedCapabilities)
if (CapabilitiesUtil.hasSpreedFeatureCapability(
spreedCapabilities,
SpreedFeatures.RICH_OBJECT_LIST_MEDIA
)
if (currentConversation!!.remoteServer != null ||
!CapabilitiesUtil.isSharedItemsAvailable(spreedCapabilities)
) {
conversationSharedItemsItem = menu.findItem(R.id.shared_items)
} else {
menu.removeItem(R.id.shared_items)
}
if (CapabilitiesUtil.isAbleToCall(spreedCapabilities)) {
if (currentConversation!!.remoteServer != null) {
menu.removeItem(R.id.conversation_video_call)
menu.removeItem(R.id.conversation_voice_call)
} else if (CapabilitiesUtil.isAbleToCall(spreedCapabilities)) {
conversationVoiceCallMenuItem = menu.findItem(R.id.conversation_voice_call)
conversationVideoMenuItem = menu.findItem(R.id.conversation_video_call)
@ -4358,12 +4358,7 @@ class ChatActivity :
val chatApiVersion = ApiUtils.getChatApiVersion(spreedCapabilities, intArrayOf(ApiUtils.API_V1, 1))
val newFragment: DialogFragment = DateTimePickerFragment.newInstance(
roomToken,
message!!.id,
chatViewModel,
chatApiVersion
)
val newFragment: DialogFragment = DateTimePickerFragment.newInstance(roomToken, message!!.id, chatApiVersion)
newFragment.show(supportFragmentManager, DateTimePickerFragment.TAG)
}

View File

@ -178,8 +178,8 @@ class ChatViewModel @Inject constructor(
val editMessageViewState: LiveData<ViewState>
get() = _editMessageViewState
fun refreshChatParams(pullChatMessagesFieldMap: HashMap<String, Int>) {
if (pullChatMessagesFieldMap != _getFieldMapForChat.value) {
fun refreshChatParams(pullChatMessagesFieldMap: HashMap<String, Int>, overrideRefresh: Boolean = false) {
if (pullChatMessagesFieldMap != _getFieldMapForChat.value || overrideRefresh) {
_getFieldMapForChat.postValue(pullChatMessagesFieldMap)
Log.d(TAG, "FieldMap Refreshed with $pullChatMessagesFieldMap vs ${_getFieldMapForChat.value}")
}

View File

@ -1198,6 +1198,7 @@ class ConversationInfoActivity :
cornerRadius(res = R.dimen.corner_radius)
title(text = participant.displayName)
viewThemeUtils.material.colorBottomSheetBackground(this.view)
listItemsWithImage(items = items) { _, index, _ ->
if (index == 0) {
removeAttendeeFromConversation(apiVersion, participant)

View File

@ -322,7 +322,7 @@ class ConversationsListActivity :
}
is ConversationsListViewModel.GetFederationInvitationsErrorState -> {
Snackbar.make(binding.root, R.string.nc_common_error_sorry, Snackbar.LENGTH_LONG).show()
Snackbar.make(binding.root, R.string.get_invitations_error, Snackbar.LENGTH_LONG).show()
}
else -> {}
@ -754,15 +754,13 @@ class ConversationsListActivity :
}
private fun fetchPendingInvitations() {
binding.conversationListHintInclude.conversationListHintLayout.setOnClickListener {
val intent = Intent(this, InvitationsActivity::class.java)
startActivity(intent)
if (hasSpreedFeatureCapability(currentUser!!.capabilities!!.spreedCapability!!, SpreedFeatures.FEDERATION_V1)) {
binding.conversationListHintInclude.conversationListHintLayout.setOnClickListener {
val intent = Intent(this, InvitationsActivity::class.java)
startActivity(intent)
}
conversationsListViewModel.getFederationInvitations()
}
// TODO create mvvm, fetch pending invitations for all users and store in database for users, if current user
// has invitation -> show hint, if one or more other users have invitations -> show badge
conversationsListViewModel.getFederationInvitations()
}
private fun initOverallLayout(isConversationListNotEmpty: Boolean) {
@ -978,10 +976,7 @@ class ConversationsListActivity :
updateFilterConversationButtonColor()
binding.filterConversationsButton.setOnClickListener {
val newFragment: DialogFragment = FilterConversationFragment.newInstance(
filterState,
this
)
val newFragment = FilterConversationFragment.newInstance(filterState)
newFragment.show(supportFragmentManager, FilterConversationFragment.TAG)
}

View File

@ -90,7 +90,7 @@ class ProfileBottomSheet(val ncApi: NcApi, val userModel: User, val viewThemeUti
MaterialDialog(context, BottomSheet(LayoutMode.WRAP_CONTENT)).show {
cornerRadius(res = R.dimen.corner_radius)
viewThemeUtils.platform.themeDialog(this.view)
viewThemeUtils.material.colorBottomSheetBackground(this.view)
title(text = displayName)
listItemsWithImage(items = items) { _, index, _ ->

View File

@ -55,7 +55,8 @@ class AttachmentDialog(val activity: Activity, var chatActivity: ChatActivity) :
setContentView(dialogAttachmentBinding.root)
window?.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
viewThemeUtils.platform.themeDialog(dialogAttachmentBinding.root)
viewThemeUtils.material.colorBottomSheetBackground(dialogAttachmentBinding.root)
viewThemeUtils.material.colorBottomSheetDragHandle(dialogAttachmentBinding.bottomSheetDragHandle)
initItemsStrings()
initItemsVisibility()
initItemsClickListeners()

View File

@ -47,6 +47,7 @@ import com.nextcloud.talk.utils.ApiUtils
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_INTERNAL_USER_ID
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ROOM_TOKEN
import com.nextcloud.talk.utils.CapabilitiesUtil
import com.nextcloud.talk.utils.SpreedFeatures
import io.reactivex.Observer
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable
@ -81,7 +82,8 @@ class ConversationsListBottomDialog(
setContentView(binding.root)
window?.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
viewThemeUtils.platform.themeDialog(binding.root)
viewThemeUtils.material.colorBottomSheetBackground(binding.root)
viewThemeUtils.material.colorBottomSheetDragHandle(binding.bottomSheetDragHandle)
initHeaderDescription()
initItemsVisibility()
initClickListeners()
@ -107,7 +109,7 @@ class ConversationsListBottomDialog(
private fun initItemsVisibility() {
val hasFavoritesCapability = CapabilitiesUtil.hasSpreedFeatureCapability(
currentUser.capabilities?.spreedCapability!!,
"favorites"
SpreedFeatures.FAVORITES
)
val canModerate = conversation.canModerate(currentUser)
@ -120,17 +122,15 @@ class ConversationsListBottomDialog(
binding.conversationMarkAsRead.visibility = setVisibleIf(
conversation.unreadMessages > 0 && CapabilitiesUtil.hasSpreedFeatureCapability(
currentUser
.capabilities?.spreedCapability!!,
"chat-read-marker"
currentUser.capabilities?.spreedCapability!!,
SpreedFeatures.CHAT_READ_MARKER
)
)
binding.conversationMarkAsUnread.visibility = setVisibleIf(
conversation.unreadMessages <= 0 && CapabilitiesUtil.hasSpreedFeatureCapability(
currentUser
.capabilities?.spreedCapability!!,
"chat-unread"
currentUser.capabilities?.spreedCapability!!,
SpreedFeatures.CHAT_UNREAD
)
)

View File

@ -37,6 +37,7 @@ import com.google.android.material.timepicker.TimeFormat
import com.nextcloud.android.common.ui.theme.utils.ColorRole
import com.nextcloud.talk.R
import com.nextcloud.talk.application.NextcloudTalkApplication
import com.nextcloud.talk.chat.ChatActivity
import com.nextcloud.talk.chat.viewmodels.ChatViewModel
import com.nextcloud.talk.databinding.DialogDateTimePickerBinding
import com.nextcloud.talk.ui.theme.ViewThemeUtils
@ -47,18 +48,15 @@ import javax.inject.Inject
@Suppress("TooManyFunctions")
@AutoInjector(NextcloudTalkApplication::class)
class DateTimePickerFragment(
token: String,
id: String,
chatViewModel: ChatViewModel,
private val chatApiVersion: Int
) : DialogFragment() {
class DateTimePickerFragment : DialogFragment() {
lateinit var binding: DialogDateTimePickerBinding
private var dialogView: View? = null
private var viewModel = chatViewModel
private lateinit var viewModel: ChatViewModel
private var currentTimeStamp: Long? = null
private var roomToken = token
private var messageId = id
private lateinit var roomToken: String
private lateinit var messageId: String
private var chatApiVersion: Int = -1
private var laterTodayTimeStamp = 0L
private var tomorrowTimeStamp = 0L
private var weekendTimeStamp = 0L
@ -73,6 +71,12 @@ class DateTimePickerFragment(
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
binding = DialogDateTimePickerBinding.inflate(LayoutInflater.from(context))
dialogView = binding.root
viewModel = (requireActivity() as ChatActivity).chatViewModel
arguments?.let {
roomToken = it.getString(TOKEN_ARG, "")
messageId = it.getString(ID_ARG, "")
chatApiVersion = it.getInt(CHAT_API_VERSION_ARG)
}
return MaterialAlertDialogBuilder(requireContext()).setView(dialogView).create()
}
@ -304,14 +308,20 @@ class DateTimePickerFragment(
private const val ONE_SEC = 1000
private const val HOUR_EIGHT_AM = 8
private const val HOUR_SIX_PM = 18
private const val TOKEN_ARG = "TOKEN_ARG"
private const val ID_ARG = "ID_ARG"
private const val CHAT_API_VERSION_ARG = "CHAT_API_VERSION_ARG"
@JvmStatic
fun newInstance(token: String, id: String, chatViewModel: ChatViewModel, chatApiVersion: Int) =
DateTimePickerFragment(
token,
id,
chatViewModel,
chatApiVersion
)
fun newInstance(token: String, id: String, chatApiVersion: Int): DateTimePickerFragment {
val args = Bundle()
args.putString(TOKEN_ARG, token)
args.putString(ID_ARG, id)
args.putInt(CHAT_API_VERSION_ARG, chatApiVersion)
val dateTimePickerFragment = DateTimePickerFragment()
dateTimePickerFragment.arguments = args
return dateTimePickerFragment
}
}
}

View File

@ -20,6 +20,7 @@
package com.nextcloud.talk.ui.dialog
import android.app.Dialog
import android.os.Build
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
@ -38,14 +39,10 @@ import com.nextcloud.talk.utils.UserIdUtils
import javax.inject.Inject
@AutoInjector(NextcloudTalkApplication::class)
class FilterConversationFragment(
savedFilterState: MutableMap<String, Boolean>,
conversationsListActivity: ConversationsListActivity
) : DialogFragment() {
class FilterConversationFragment : DialogFragment() {
lateinit var binding: DialogFilterConversationBinding
private var dialogView: View? = null
private var filterState = savedFilterState
private var conversationsList = conversationsListActivity
private lateinit var filterState: HashMap<String, Boolean>
@Inject
lateinit var userManager: UserManager
@ -58,7 +55,11 @@ class FilterConversationFragment(
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
binding = DialogFilterConversationBinding.inflate(LayoutInflater.from(context))
dialogView = binding.root
filterState = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
arguments?.getSerializable(FILTER_STATE_ARG, HashMap::class.java) as HashMap<String, Boolean>
} else {
arguments?.getSerializable(FILTER_STATE_ARG) as HashMap<String, Boolean>
}
return MaterialAlertDialogBuilder(requireContext()).setView(dialogView).create()
}
@ -120,15 +121,21 @@ class FilterConversationFragment(
arbitraryStorageManager.storeStorageSetting(accountId, MENTION, mentionValue.toString(), "")
arbitraryStorageManager.storeStorageSetting(accountId, UNREAD, unreadValue.toString(), "")
conversationsList.filterConversation()
(requireActivity() as ConversationsListActivity).filterConversation()
}
companion object {
private const val FILTER_STATE_ARG = "FILTER_STATE_ARG"
@JvmStatic
fun newInstance(
savedFilterState: MutableMap<String, Boolean>,
conversationsListActivity: ConversationsListActivity
) = FilterConversationFragment(savedFilterState, conversationsListActivity)
fun newInstance(savedFilterState: MutableMap<String, Boolean>): FilterConversationFragment {
val filterConversationFragment = FilterConversationFragment()
val args = Bundle()
args.putSerializable(FILTER_STATE_ARG, HashMap(savedFilterState))
filterConversationFragment.arguments = args
return filterConversationFragment
}
val TAG: String = FilterConversationFragment::class.java.simpleName
const val MENTION: String = "mention"
const val UNREAD: String = "unread"

View File

@ -106,7 +106,7 @@ class MessageActionsDialog(
private val isMessageEditable = CapabilitiesUtil.hasSpreedFeatureCapability(
spreedCapabilities,
"edit-messages"
SpreedFeatures.EDIT_MESSAGES
) && messageHasRegularText && !isOlderThanTwentyFourHours && isUserAllowedToEdit
override fun onCreate(savedInstanceState: Bundle?) {
@ -117,7 +117,8 @@ class MessageActionsDialog(
setContentView(dialogMessageActionsBinding.root)
window?.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
viewThemeUtils.platform.themeDialog(dialogMessageActionsBinding.root)
viewThemeUtils.material.colorBottomSheetBackground(dialogMessageActionsBinding.root)
viewThemeUtils.material.colorBottomSheetDragHandle(dialogMessageActionsBinding.bottomSheetDragHandle)
initEmojiBar(hasChatPermission)
initMenuItemCopy(!message.isDeleted)
val apiVersion = ApiUtils.getConversationApiVersion(user!!, intArrayOf(ApiUtils.API_V4, ApiUtils.API_V3, 1))
@ -165,8 +166,9 @@ class MessageActionsDialog(
!(message.isDeletedCommentMessage || message.isDeleted)
)
initMenuRemindMessage(
!message.isDeleted && CapabilitiesUtil.hasSpreedFeatureCapability
(spreedCapabilities, "remind-me-later")
!message.isDeleted &&
hasSpreedFeatureCapability(spreedCapabilities, SpreedFeatures.REMIND_ME_LATER) &&
currentConversation!!.remoteServer.isNullOrEmpty()
)
initMenuMarkAsUnread(
message.previousMessageId > NO_PREVIOUS_MESSAGE_ID &&

View File

@ -81,7 +81,8 @@ class ShowReactionsDialog(
binding = DialogMessageReactionsBinding.inflate(layoutInflater)
setContentView(binding.root)
window?.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
viewThemeUtils.platform.themeDialog(binding.root)
viewThemeUtils.material.colorBottomSheetBackground(binding.root)
viewThemeUtils.material.colorBottomSheetDragHandle(binding.bottomSheetDragHandle)
adapter = ReactionsAdapter(this, user)
binding.reactionsList.adapter = adapter
binding.reactionsList.layoutManager = LinearLayoutManager(context)

View File

@ -64,6 +64,7 @@ import com.nextcloud.talk.utils.DrawableUtils
import com.nextcloud.talk.utils.message.MessageUtils
import com.vanniktech.emoji.EmojiTextView
import com.wooplr.spotlight.SpotlightView
import dynamiccolor.MaterialDynamicColors
import eu.davidea.flexibleadapter.utils.FlexibleUtils
import javax.inject.Inject
import kotlin.math.roundToInt
@ -78,6 +79,7 @@ class TalkSpecificViewThemeUtils @Inject constructor(
private val appcompat: AndroidXViewThemeUtils
) :
ViewThemeUtilsBase(schemes) {
private val dynamicColor = MaterialDynamicColors()
fun themeIncomingMessageBubble(bubble: View, grouped: Boolean, deleted: Boolean) {
val resources = bubble.resources
@ -104,9 +106,9 @@ class TalkSpecificViewThemeUtils @Inject constructor(
fun themeOutgoingMessageBubble(bubble: View, grouped: Boolean, deleted: Boolean) {
withScheme(bubble) { scheme ->
val bgBubbleColor = if (deleted) {
ColorUtils.setAlphaComponent(scheme.surfaceVariant, HALF_ALPHA_INT)
ColorUtils.setAlphaComponent(dynamicColor.surfaceVariant().getArgb(scheme), HALF_ALPHA_INT)
} else {
scheme.surfaceVariant
dynamicColor.surfaceVariant().getArgb(scheme)
}
val layout = if (grouped) {
@ -126,31 +128,31 @@ class TalkSpecificViewThemeUtils @Inject constructor(
fun colorOutgoingQuoteText(textView: TextView) {
withScheme(textView) { scheme ->
textView.setTextColor(scheme.onSurfaceVariant)
textView.setTextColor(dynamicColor.onSurfaceVariant().getArgb(scheme))
}
}
fun colorOutgoingQuoteAuthorText(textView: TextView) {
withScheme(textView) { scheme ->
ColorUtils.setAlphaComponent(scheme.onSurfaceVariant, ALPHA_80_INT)
ColorUtils.setAlphaComponent(dynamicColor.onSurfaceVariant().getArgb(scheme), ALPHA_80_INT)
}
}
fun colorOutgoingQuoteBackground(view: View) {
withScheme(view) { scheme ->
view.setBackgroundColor(scheme.onSurfaceVariant)
view.setBackgroundColor(dynamicColor.onSurfaceVariant().getArgb(scheme))
}
}
fun colorContactChatItemName(contactName: androidx.emoji2.widget.EmojiTextView) {
withScheme(contactName) { scheme ->
contactName.setTextColor(scheme.onPrimaryContainer)
contactName.setTextColor(dynamicColor.onPrimaryContainer().getArgb(scheme))
}
}
fun colorContactChatItemBackground(card: MaterialCardView) {
withScheme(card) { scheme ->
card.setCardBackgroundColor(scheme.primaryContainer)
card.setCardBackgroundColor(dynamicColor.primaryContainer().getArgb(scheme))
}
}
@ -166,7 +168,7 @@ class TalkSpecificViewThemeUtils @Inject constructor(
.mutate()
DrawableCompat.setTintList(
drawable,
ColorStateList.valueOf(scheme.primary)
ColorStateList.valueOf(dynamicColor.primary().getArgb(scheme))
)
emoji.background = drawable
}
@ -178,7 +180,7 @@ class TalkSpecificViewThemeUtils @Inject constructor(
.getDrawable(linearLayout.context, R.drawable.reaction_self_background)!!
.mutate()
val backgroundColor = if (incoming) {
scheme.primaryContainer
dynamicColor.primaryContainer().getArgb(scheme)
} else {
ContextCompat.getColor(
linearLayout.context,
@ -207,7 +209,7 @@ class TalkSpecificViewThemeUtils @Inject constructor(
private fun colorDrawable(context: Context, drawable: Drawable) {
withScheme(context) { scheme ->
drawable.setTint(scheme.primary)
drawable.setTint(dynamicColor.primary().getArgb(scheme))
}
}
@ -217,9 +219,9 @@ class TalkSpecificViewThemeUtils @Inject constructor(
withScheme(avatar) { scheme ->
val layers = arrayOfNulls<Drawable>(2)
layers[0] = ContextCompat.getDrawable(avatar.context, R.drawable.ic_avatar_background)
layers[0]?.setTint(scheme.surfaceVariant)
layers[0]?.setTint(dynamicColor.surfaceVariant().getArgb(scheme))
layers[1] = ContextCompat.getDrawable(avatar.context, foreground)
layers[1]?.setTint(scheme.onSurfaceVariant)
layers[1]?.setTint(dynamicColor.onSurfaceVariant().getArgb(scheme))
drawable = LayerDrawable(layers)
}
@ -231,10 +233,10 @@ class TalkSpecificViewThemeUtils @Inject constructor(
// hacky as no default way is provided
val editText = searchView.findViewById<SearchView.SearchAutoComplete>(R.id.search_src_text)
val searchPlate = searchView.findViewById<LinearLayout>(R.id.search_plate)
editText.setHintTextColor(scheme.onSurfaceVariant)
editText.setTextColor(scheme.onSurface)
editText.setBackgroundColor(scheme.surface)
searchPlate.setBackgroundColor(scheme.surface)
editText.setHintTextColor(dynamicColor.onSurfaceVariant().getArgb(scheme))
editText.setTextColor(dynamicColor.onSurface().getArgb(scheme))
editText.setBackgroundColor(dynamicColor.surface().getArgb(scheme))
searchPlate.setBackgroundColor(dynamicColor.surface().getArgb(scheme))
}
}
@ -248,7 +250,7 @@ class TalkSpecificViewThemeUtils @Inject constructor(
intArrayOf(-android.R.attr.state_checked)
),
intArrayOf(
scheme.secondaryContainer,
dynamicColor.secondaryContainer().getArgb(scheme),
background
)
)
@ -259,8 +261,8 @@ class TalkSpecificViewThemeUtils @Inject constructor(
intArrayOf(-android.R.attr.state_checked)
),
intArrayOf(
scheme.onSecondaryContainer,
scheme.surface
dynamicColor.onSecondaryContainer().getArgb(scheme),
dynamicColor.surface().getArgb(scheme)
)
)
)
@ -269,29 +271,33 @@ class TalkSpecificViewThemeUtils @Inject constructor(
fun themeMicInputCloud(micInputCloud: MicInputCloud) {
withScheme(micInputCloud) { scheme ->
micInputCloud.setColor(scheme.primary)
micInputCloud.setColor(dynamicColor.primary().getArgb(scheme))
}
}
fun themeWaveFormSeekBar(waveformSeekBar: WaveformSeekBar) {
withScheme(waveformSeekBar) { scheme ->
waveformSeekBar.thumb.colorFilter =
PorterDuffColorFilter(scheme.inversePrimary, PorterDuff.Mode.SRC_IN)
waveformSeekBar.setColors(scheme.inversePrimary, scheme.onPrimaryContainer)
PorterDuffColorFilter(dynamicColor.inversePrimary().getArgb(scheme), PorterDuff.Mode.SRC_IN)
waveformSeekBar.setColors(
dynamicColor.inversePrimary().getArgb(scheme),
dynamicColor.onPrimaryContainer().getArgb(scheme)
)
waveformSeekBar.progressDrawable?.colorFilter =
PorterDuffColorFilter(scheme.primary, PorterDuff.Mode.SRC_IN)
PorterDuffColorFilter(dynamicColor.primary().getArgb(scheme), PorterDuff.Mode.SRC_IN)
}
}
fun themeForegroundColorSpan(context: Context): ForegroundColorSpan {
return withScheme(context) { scheme ->
return@withScheme ForegroundColorSpan(scheme.primary)
return@withScheme ForegroundColorSpan(dynamicColor.primary().getArgb(scheme))
}
}
fun themeSpotlightView(context: Context, builder: SpotlightView.Builder): SpotlightView.Builder {
return withScheme(context) { scheme ->
return@withScheme builder.headingTvColor(scheme.primary).lineAndArcColor(scheme.primary)
return@withScheme builder.headingTvColor(dynamicColor.primary().getArgb(scheme))
.lineAndArcColor(dynamicColor.primary().getArgb(scheme))
}
}
@ -305,7 +311,7 @@ class TalkSpecificViewThemeUtils @Inject constructor(
do {
val end = start + constraint.length
spanText.setSpan(
ForegroundColorSpan(scheme.primary),
ForegroundColorSpan(dynamicColor.primary().getArgb(scheme)),
start,
end,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
@ -323,34 +329,34 @@ class TalkSpecificViewThemeUtils @Inject constructor(
fun themeSortButton(sortButton: MaterialButton) {
withScheme(sortButton) { scheme ->
sortButton.iconTint = ColorStateList.valueOf(scheme.onSurface)
sortButton.setTextColor(scheme.onSurface)
sortButton.iconTint = ColorStateList.valueOf(dynamicColor.onSurface().getArgb(scheme))
sortButton.setTextColor(dynamicColor.onSurface().getArgb(scheme))
}
}
fun themePathNavigationButton(navigationBtn: MaterialButton) {
withScheme(navigationBtn) { scheme ->
navigationBtn.iconTint = ColorStateList.valueOf(scheme.onSurface)
navigationBtn.setTextColor(scheme.onSurface)
navigationBtn.iconTint = ColorStateList.valueOf(dynamicColor.onSurface().getArgb(scheme))
navigationBtn.setTextColor(dynamicColor.onSurface().getArgb(scheme))
}
}
fun themeSortListButtonGroup(relativeLayout: RelativeLayout) {
withScheme(relativeLayout) { scheme ->
relativeLayout.setBackgroundColor(scheme.surface)
relativeLayout.setBackgroundColor(dynamicColor.surface().getArgb(scheme))
}
}
fun themeStatusDrawable(context: Context, statusDrawable: StatusDrawable) {
withScheme(context) { scheme ->
statusDrawable.colorStatusDrawable(scheme.surface)
statusDrawable.colorStatusDrawable(dynamicColor.surface().getArgb(scheme))
}
}
fun themeMessageCheckMark(imageView: ImageView) {
withScheme(imageView) { scheme ->
imageView.setColorFilter(
scheme.onSurfaceVariant,
dynamicColor.onSurfaceVariant().getArgb(scheme),
PorterDuff.Mode.SRC_ATOP
)
}
@ -365,7 +371,11 @@ class TalkSpecificViewThemeUtils @Inject constructor(
context.getColor(R.color.nc_incoming_text_default)
)
} else {
MessageUtils(context).getRenderedMarkdownText(context, message, scheme.onSurfaceVariant)
MessageUtils(context).getRenderedMarkdownText(
context,
message,
dynamicColor.onSurfaceVariant().getArgb(scheme)
)
}
}
}
@ -375,7 +385,7 @@ class TalkSpecificViewThemeUtils @Inject constructor(
return@withScheme if (!isOutgoingMessage || isSelfReaction) {
ContextCompat.getColor(binding.root.context, R.color.high_emphasis_text)
} else {
scheme.onSurfaceVariant
dynamicColor.onSurfaceVariant().getArgb(scheme)
}
}
}

View File

@ -156,17 +156,17 @@ object ApiUtils {
val spreedCapabilities = user.capabilities!!.spreedCapability
for (version in versions) {
if (spreedCapabilities != null) {
if (hasSpreedFeatureCapability(spreedCapabilities, "signaling-v$version")) {
if (spreedCapabilities.features!!.contains("signaling-v$version")) {
return version
}
if (version == API_V2 &&
hasSpreedFeatureCapability(spreedCapabilities, "sip-support") &&
!hasSpreedFeatureCapability(spreedCapabilities, "signaling-v3")
hasSpreedFeatureCapability(spreedCapabilities, SpreedFeatures.SIP_SUPPORT) &&
!hasSpreedFeatureCapability(spreedCapabilities, SpreedFeatures.SIGNALING_V3)
) {
return version
}
if (version == API_V1 &&
!hasSpreedFeatureCapability(spreedCapabilities, "signaling-v3")
!hasSpreedFeatureCapability(spreedCapabilities, SpreedFeatures.SIGNALING_V3)
) {
// Has no capability, we just assume it is always there when there is no v3 or later
return version
@ -180,7 +180,7 @@ object ApiUtils {
@Throws(NoSupportedApiException::class)
fun getChatApiVersion(spreedCapabilities: SpreedCapability, versions: IntArray): Int {
for (version in versions) {
if (version == API_V1 && hasSpreedFeatureCapability(spreedCapabilities, "chat-v2")) {
if (version == API_V1 && hasSpreedFeatureCapability(spreedCapabilities, SpreedFeatures.CHAT_V2)) {
// Do not question that chat-v2 capability shows the availability of api/v1/ endpoint *see no evil*
return version
}

View File

@ -52,7 +52,21 @@ enum class SpreedFeatures(val value: String) {
TEMP_USER_AVATAR_API("temp-user-avatar-api"),
PHONEBOOK_SEARCH("phonebook-search"),
GEO_LOCATION_SHARING("geo-location-sharing"),
TALK_POLLS("talk-polls")
TALK_POLLS("talk-polls"),
FAVORITES("favorites"),
CHAT_READ_MARKER("chat-read-marker"),
CHAT_UNREAD("chat-unread"),
EDIT_MESSAGES("edit-messages"),
REMIND_ME_LATER("remind-me-later"),
CHAT_V2("chat-v2"),
SIP_SUPPORT("sip-support"),
SIGNALING_V3("signaling-v3"),
ROOM_DESCRIPTION("room-description"),
UNIFIED_SEARCH("unified-search"),
LOCKED_ONE_TO_ONE("locked-one-to-one-rooms"),
CHAT_PERMISSION("chat-permission"),
CONVERSATION_PERMISSION("conversation-permissions"),
FEDERATION_V1("federation-v1")
}
@Suppress("TooManyFunctions")
@ -89,13 +103,8 @@ object CapabilitiesUtil {
return false
}
@JvmStatic
@Deprecated("Add your capability to Capability enums and use hasSpreedFeatureCapability with enum.")
fun hasSpreedFeatureCapability(spreedCapabilities: SpreedCapability, capabilityName: String): Boolean {
if (spreedCapabilities.features != null) {
return spreedCapabilities.features!!.contains(capabilityName)
}
return false
fun isSharedItemsAvailable(spreedCapabilities: SpreedCapability): Boolean {
return hasSpreedFeatureCapability(spreedCapabilities, SpreedFeatures.RICH_OBJECT_LIST_MEDIA)
}
fun getMessageMaxLength(spreedCapabilities: SpreedCapability): Int {
@ -147,11 +156,14 @@ object CapabilitiesUtil {
}
fun isConversationDescriptionEndpointAvailable(spreedCapabilities: SpreedCapability): Boolean {
return hasSpreedFeatureCapability(spreedCapabilities, "room-description")
return hasSpreedFeatureCapability(spreedCapabilities, SpreedFeatures.ROOM_DESCRIPTION)
}
fun isUnifiedSearchAvailable(spreedCapabilities: SpreedCapability): Boolean {
return hasSpreedFeatureCapability(spreedCapabilities, "unified-search")
if (hasSpreedFeatureCapability(spreedCapabilities, SpreedFeatures.FEDERATION_V1)) {
return false
}
return hasSpreedFeatureCapability(spreedCapabilities, SpreedFeatures.UNIFIED_SEARCH)
}
fun isAbleToCall(spreedCapabilities: SpreedCapability): Boolean {
@ -234,6 +246,13 @@ object CapabilitiesUtil {
return false
}
fun isFederationAvailable(user: User): Boolean {
return hasSpreedFeatureCapability(user.capabilities!!.spreedCapability!!, SpreedFeatures.FEDERATION_V1) &&
user.capabilities!!.spreedCapability!!.config?.containsKey("federation") == true &&
user.capabilities!!.spreedCapability!!.config!!["federation"] != null &&
user.capabilities!!.spreedCapability!!.config!!["federation"]!!.containsKey("enabled")
}
// endregion
//region ThemingCapabilities

View File

@ -45,7 +45,7 @@ object ConversationUtils {
fun isLockedOneToOne(conversation: ConversationModel, spreedCapabilities: SpreedCapability): Boolean {
return conversation.type == ConversationType.ROOM_TYPE_ONE_TO_ONE_CALL &&
CapabilitiesUtil.hasSpreedFeatureCapability(spreedCapabilities, "locked-one-to-one-rooms")
CapabilitiesUtil.hasSpreedFeatureCapability(spreedCapabilities, SpreedFeatures.LOCKED_ONE_TO_ONE)
}
fun canModerate(conversation: ConversationModel, spreedCapabilities: SpreedCapability): Boolean {

View File

@ -53,7 +53,7 @@ class ParticipantPermissions(
private fun hasConversationPermissions(): Boolean {
return CapabilitiesUtil.hasSpreedFeatureCapability(
spreedCapabilities,
"conversation-permissions"
SpreedFeatures.CONVERSATION_PERMISSION
)
}
@ -90,7 +90,7 @@ class ParticipantPermissions(
}
fun hasChatPermission(): Boolean {
if (CapabilitiesUtil.hasSpreedFeatureCapability(spreedCapabilities, "chat-permission")) {
if (CapabilitiesUtil.hasSpreedFeatureCapability(spreedCapabilities, SpreedFeatures.CHAT_PERMISSION)) {
return hasChatPermission
}
// if capability is not available then the spreed version doesn't support to restrict this

View File

@ -34,6 +34,7 @@ import com.nextcloud.talk.data.storage.model.ArbitraryStorage;
import com.nextcloud.talk.data.user.model.User;
import com.nextcloud.talk.models.json.generic.GenericOverall;
import com.nextcloud.talk.utils.ApiUtils;
import com.nextcloud.talk.utils.SpreedFeatures;
import com.nextcloud.talk.utils.UserIdUtils;
import com.nextcloud.talk.utils.CapabilitiesUtil;
@ -158,8 +159,10 @@ public class DatabaseStorageModule {
});
} else if ("conversation_info_message_notifications_dropdown".equals(key)) {
if (CapabilitiesUtil.hasSpreedFeatureCapability(conversationUser.getCapabilities().getSpreedCapability(), "notification" +
"-levels")) {
if (CapabilitiesUtil.hasSpreedFeatureCapability(
conversationUser.getCapabilities().getSpreedCapability(),
SpreedFeatures.NOTIFICATION_LEVELS)
) {
if (TextUtils.isEmpty(messageNotificationLevel) || !messageNotificationLevel.equals(value)) {
int intValue;
switch (value) {

View File

@ -194,15 +194,17 @@
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/contacts_rv"
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:visibility="gone"
tools:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/list_open_conversations" />
app:layout_constraintTop_toBottomOf="@id/list_open_conversations">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/contacts_rv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"
tools:visibility="visible" />
</RelativeLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -17,202 +17,208 @@
~ You should have received a copy of the GNU General Public License
~ along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:background="@color/white">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/standard_margin"
android:orientation="horizontal">
<com.google.android.material.textview.MaterialTextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/nc_remind"
android:layout_weight="1"
android:textSize="@dimen/md_title_textsize" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/date_time_picker_timestamp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="Apr 15th, 8:00 AM"
android:textSize="@dimen/supporting_text_text_size"
android:textStyle="bold" />
</LinearLayout>
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<LinearLayout
android:id="@+id/date_time_picker_later_today"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:orientation="horizontal"
android:padding="@dimen/standard_padding">
<com.google.android.material.textview.MaterialTextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/later_today"
android:textSize="@dimen/headline_text_size" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/date_time_picker_later_today_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/headline_text_size"
android:text="" />
</LinearLayout>
<LinearLayout
android:id="@+id/date_time_picker_tomorrow"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:orientation="horizontal"
android:padding="@dimen/standard_padding">
<com.google.android.material.textview.MaterialTextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/tomorrow"
android:textSize="@dimen/headline_text_size" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/date_time_picker_tomorrow_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/headline_text_size"
android:text="" />
</LinearLayout>
<LinearLayout
android:id="@+id/date_time_picker_weekend"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:orientation="horizontal"
android:padding="@dimen/standard_padding">
<com.google.android.material.textview.MaterialTextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/this_weekend"
android:textSize="@dimen/headline_text_size" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/date_time_picker_weekend_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/headline_text_size"
android:text="" />
</LinearLayout>
<LinearLayout
android:id="@+id/date_time_picker_next_week"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:orientation="horizontal"
android:padding="@dimen/standard_padding">
<com.google.android.material.textview.MaterialTextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/next_week"
android:textSize="@dimen/headline_text_size" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/date_time_picker_next_week_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/headline_text_size"
android:text="" />
</LinearLayout>
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<LinearLayout
android:id="@+id/date_time_picker_custom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="@dimen/standard_padding"
android:background="?android:attr/selectableItemBackground">
<ImageView
android:id="@+id/date_time_picker_custom_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/baseline_calendar_month_24"
android:paddingEnd="@dimen/standard_double_padding"
tools:ignore="RtlSymmetry"
android:contentDescription="@string/calendar" />
<com.google.android.material.textview.MaterialTextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/custom"
android:layout_weight="1"
android:textSize="@dimen/headline_text_size" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
android:orientation="vertical">
<LinearLayout
android:layout_width="0dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="1">
android:layout_margin="@dimen/standard_margin"
android:orientation="horizontal">
<com.google.android.material.textview.MaterialTextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/nc_remind"
android:textSize="@dimen/md_title_textsize" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/date_time_picker_timestamp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/supporting_text_text_size"
android:textStyle="bold"
tools:text="Apr 15th, 8:00 AM" />
</LinearLayout>
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<LinearLayout
android:id="@+id/date_time_picker_later_today"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:orientation="horizontal"
android:padding="@dimen/standard_padding">
<com.google.android.material.textview.MaterialTextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/later_today"
android:textSize="@dimen/headline_text_size" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/date_time_picker_later_today_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textSize="@dimen/headline_text_size" />
</LinearLayout>
<LinearLayout
android:id="@+id/date_time_picker_tomorrow"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:orientation="horizontal"
android:padding="@dimen/standard_padding">
<com.google.android.material.textview.MaterialTextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/tomorrow"
android:textSize="@dimen/headline_text_size" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/date_time_picker_tomorrow_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textSize="@dimen/headline_text_size" />
</LinearLayout>
<LinearLayout
android:id="@+id/date_time_picker_weekend"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:orientation="horizontal"
android:padding="@dimen/standard_padding">
<com.google.android.material.textview.MaterialTextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/this_weekend"
android:textSize="@dimen/headline_text_size" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/date_time_picker_weekend_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textSize="@dimen/headline_text_size" />
</LinearLayout>
<LinearLayout
android:id="@+id/date_time_picker_next_week"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:orientation="horizontal"
android:padding="@dimen/standard_padding">
<com.google.android.material.textview.MaterialTextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/next_week"
android:textSize="@dimen/headline_text_size" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/date_time_picker_next_week_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textSize="@dimen/headline_text_size" />
</LinearLayout>
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<LinearLayout
android:id="@+id/date_time_picker_custom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:orientation="horizontal"
android:padding="@dimen/standard_padding">
<ImageView
android:id="@+id/date_time_picker_custom_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/calendar"
android:paddingEnd="@dimen/standard_double_padding"
android:src="@drawable/baseline_calendar_month_24"
tools:ignore="RtlSymmetry" />
<com.google.android.material.textview.MaterialTextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/custom"
android:textSize="@dimen/headline_text_size" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<com.google.android.material.button.MaterialButton
android:id="@+id/button_delete"
style="@style/Button.Borderless"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minHeight="@dimen/min_size_clickable_area"
android:text="@string/nc_delete"
android:textColor="@color/design_default_color_error" />
</LinearLayout>
<com.google.android.material.button.MaterialButton
android:id="@+id/button_delete"
android:id="@+id/button_set"
style="@style/Button.Borderless"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minHeight="@dimen/min_size_clickable_area"
android:text="@string/nc_delete"
android:textColor="@color/design_default_color_error" />
android:text="@string/set" />
<com.google.android.material.button.MaterialButton
android:id="@+id/button_close"
style="@style/Button.Borderless"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:minHeight="@dimen/min_size_clickable_area"
android:text="@string/close" />
</LinearLayout>
<com.google.android.material.button.MaterialButton
android:id="@+id/button_set"
style="@style/Button.Borderless"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minHeight="@dimen/min_size_clickable_area"
android:text="@string/set" />
<com.google.android.material.button.MaterialButton
android:id="@+id/button_close"
style="@style/Button.Borderless"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:minHeight="@dimen/min_size_clickable_area"
android:text="@string/close" />
</LinearLayout>
</LinearLayout>
</ScrollView>

View File

@ -22,7 +22,6 @@
<string name="clear_status_message_after">إمسح رسالة الحالة فيما بعدٌ</string>
<string name="close">إغلاق</string>
<string name="continuous_voice_message_recording">قَفْل التسجيل للتسجيل المستمر للرسالة الصوتية</string>
<string name="conversation_is_read_only">المحادثة للقراءة فقط</string>
<string name="conversations">محادثات</string>
<string name="create_conversation">انشاء محادثة</string>
<string name="create_issue">تكوين إشكالية </string>
@ -44,6 +43,7 @@
<string name="file_list_loading">التحميل جارٍ …</string>
<string name="filename_progress">%1$s (%2$d)</string>
<string name="fourHours">4 ساعات</string>
<string name="get_invitations_error">تعذّر جلب الدعوات المعلقة</string>
<string name="hint_edited_message">(مُعدّلة)</string>
<string name="invisible">غير مرئي</string>
<string name="languages_error_message">تعذّرت استعادة اللغات</string>
@ -114,8 +114,6 @@
<string name="nc_certificate_dialog_title">تحقق من الشهادة</string>
<string name="nc_certificate_error">إعدادات SSL الخاص بك تمنع الاتصال</string>
<string name="nc_change_cert_auth">تغيير شهادة المصادقة</string>
<string name="nc_circle">الدائرة Circle</string>
<string name="nc_circles">الدوائر Circles</string>
<string name="nc_clear_edit_button">محو زر التحرير</string>
<string name="nc_clear_edit_message">محو تحرير الرسالة</string>
<string name="nc_clear_history">مسح جميع الرسائل</string>
@ -341,10 +339,10 @@
<string name="nc_push_to_talk_desc">في وضعية تعطل المايكرفون، علق على الزر &amp; لاستخدام اضغط للتحدث</string>
<string name="nc_remind">ذكرني لاحقا</string>
<string name="nc_remote_audio_off">الصَّوت القصِي remote موقوف</string>
<string name="nc_remove_circle_and_members">حذف الدائرة circle و الأعضاء</string>
<string name="nc_remove_from_favorites">إزالتها مِن المفضلة</string>
<string name="nc_remove_group_and_members">حذف المجموعة group و الأعضاء</string>
<string name="nc_remove_participant">حذف مشارك</string>
<string name="nc_remove_team_and_members">إزالة الفريق و الأعضاء</string>
<string name="nc_rename">إعادة تسمية المحادثة</string>
<string name="nc_rename_confirm">تغيير تسمية</string>
<string name="nc_reply">رد</string>
@ -467,6 +465,8 @@
<string name="nc_sort_by">رتِّب حسب</string>
<string name="nc_start_time">وقت البدء</string>
<string name="nc_switch_account">تبديل الحساب</string>
<string name="nc_team">الفريق</string>
<string name="nc_teams">الفِرَق</string>
<string name="nc_upload_choose_local_files">اختر الملفات</string>
<string name="nc_upload_confirm_send_multiple">إرسال هذه الملفات إلى %1$s؟</string>
<string name="nc_upload_confirm_send_single">إرسال هذا الملف إلى %1$s؟</string>

View File

@ -22,7 +22,7 @@
<string name="clear_status_message_after">Clear status message after</string>
<string name="close">Close</string>
<string name="continuous_voice_message_recording">Lock recording for continuously recording of the voice message</string>
<string name="conversation_is_read_only">Conversation is read Only</string>
<string name="conversation_is_read_only">Conversation is read only</string>
<string name="conversations">Conversations</string>
<string name="create_conversation">Create conversation</string>
<string name="create_issue">Create issue</string>
@ -44,6 +44,7 @@
<string name="file_list_loading">Loading …</string>
<string name="filename_progress">%1$s (%2$d)</string>
<string name="fourHours">4 hours</string>
<string name="get_invitations_error">Failed to fetch pending invitations</string>
<string name="hint_edited_message">(edited)</string>
<string name="invisible">Invisible</string>
<string name="languages_error_message">Languages could not be retrieved</string>
@ -114,8 +115,6 @@
<string name="nc_certificate_dialog_title">Check out the certificate</string>
<string name="nc_certificate_error">Your SSL setup prevented connection</string>
<string name="nc_change_cert_auth">Change authentication certificate</string>
<string name="nc_circle">Circle</string>
<string name="nc_circles">Circles</string>
<string name="nc_clear_edit_button">clear Edit Button</string>
<string name="nc_clear_edit_message">Clear Edit Message</string>
<string name="nc_clear_history">Delete all messages</string>
@ -341,10 +340,10 @@
<string name="nc_push_to_talk_desc">With the microphone disabled, click&amp;hold to use Press-to-transmit</string>
<string name="nc_remind">Remind me later</string>
<string name="nc_remote_audio_off">Remote audio off</string>
<string name="nc_remove_circle_and_members">Remove circle and members</string>
<string name="nc_remove_from_favorites">Remove from favourites</string>
<string name="nc_remove_group_and_members">Remove group and members</string>
<string name="nc_remove_participant">Remove participant</string>
<string name="nc_remove_team_and_members">Remove team and members</string>
<string name="nc_rename">Rename conversation</string>
<string name="nc_rename_confirm">Rename</string>
<string name="nc_reply">Reply</string>
@ -467,6 +466,8 @@
<string name="nc_sort_by">Sort by</string>
<string name="nc_start_time">Start time</string>
<string name="nc_switch_account">Switch account</string>
<string name="nc_team">Team</string>
<string name="nc_teams">Teams</string>
<string name="nc_upload_choose_local_files">Choose files</string>
<string name="nc_upload_confirm_send_multiple">Send these files to %1$s?</string>
<string name="nc_upload_confirm_send_single">Send this file to %1$s?</string>

View File

@ -91,8 +91,6 @@
<string name="nc_certificate_dialog_title">Провери сертификата</string>
<string name="nc_certificate_error">Вашата настройка на SSL, предотврати връзката </string>
<string name="nc_change_cert_auth">Променете сертификата за удостоверяване</string>
<string name="nc_circle">Кръг</string>
<string name="nc_circles">Кръгове</string>
<string name="nc_clear_history">Изтриване на всички съобщения</string>
<string name="nc_clear_history_success">Всички съобщения бяха изтрити </string>
<string name="nc_clear_history_warning">Сигурни ли сте, че искате да изтриете всички съобщения в този разговор?</string>
@ -258,7 +256,6 @@
<string name="nc_push_to_talk_desc">Когато микрофонът е деактивиран, кликнете &amp; и задръжте, за да използвате „Натисни и говори“</string>
<string name="nc_remind">Напомни ми по-късно</string>
<string name="nc_remote_audio_off">Отдалеченото аудио е изключено</string>
<string name="nc_remove_circle_and_members">Премахване на кръга и на членовете</string>
<string name="nc_remove_from_favorites">Премахни от любимите</string>
<string name="nc_remove_group_and_members">Премахване на групата и на членовете</string>
<string name="nc_remove_participant">Премахване на участник</string>

View File

@ -91,8 +91,6 @@
<string name="nc_certificate_dialog_title">Verifica el certificat</string>
<string name="nc_certificate_error">La vostra configuració SSL ha impedit la connexió</string>
<string name="nc_change_cert_auth">Canvia el certificat dautenticació</string>
<string name="nc_circle">Cercle</string>
<string name="nc_circles">Cercles</string>
<string name="nc_clear_history">Suprimeix tots els missatges</string>
<string name="nc_clear_history_success">S\'han suprimit tots els missatges</string>
<string name="nc_clear_history_warning">Segur que voleu suprimir tots els missatges d\'aquesta conversa?</string>
@ -258,7 +256,6 @@
<string name="nc_push_to_talk_desc">Amb el micròfon desactivat, feu clic a &amp; i mantingueu-lo pressionat per fer servir el Prem-i-parla</string>
<string name="nc_remind">Recorda-m\'ho més tard</string>
<string name="nc_remote_audio_off">Àudio remot desactivat</string>
<string name="nc_remove_circle_and_members">Suprimeix el cercle i els membres</string>
<string name="nc_remove_from_favorites">Suprimeix de favorits</string>
<string name="nc_remove_group_and_members">Suprimeix el grup i els membres</string>
<string name="nc_remove_participant">Suprimeix el participant</string>
@ -375,6 +372,8 @@
<string name="nc_sort_by">Ordena per</string>
<string name="nc_start_time">Hora d\'inici</string>
<string name="nc_switch_account">Canvia el compte</string>
<string name="nc_team">Equip</string>
<string name="nc_teams">Equips</string>
<string name="nc_upload_choose_local_files">Trieu els fitxers</string>
<string name="nc_upload_confirm_send_multiple">Voleu enviar aquests fitxers a %1$s?</string>
<string name="nc_upload_confirm_send_single">Voleu enviar aquest fitxer a %1$s?</string>

View File

@ -110,8 +110,6 @@
<string name="nc_certificate_dialog_title">Zkontrolovat certifikát</string>
<string name="nc_certificate_error">Vaše nastavení SSL zabránilo připojení</string>
<string name="nc_change_cert_auth">Změnit certifikát sloužící pro ověřování se</string>
<string name="nc_circle">Okruh</string>
<string name="nc_circles">Okruhy</string>
<string name="nc_clear_history">Smazat všechny zprávy</string>
<string name="nc_clear_history_success">Všechny zprávy byly vymazány</string>
<string name="nc_clear_history_warning">Opravdu chcete všechny zprávy v této konverzaci smazat?</string>
@ -304,7 +302,6 @@
<string name="nc_push_to_talk_desc">Při vypnutém mikrofonu, klikněte a dokud držíte, můžete mluvit jako u vysílačky</string>
<string name="nc_remind">Připomenout později</string>
<string name="nc_remote_audio_off">Ztlumení mikrofonu na dálku</string>
<string name="nc_remove_circle_and_members">Odebrat kruh a členy</string>
<string name="nc_remove_from_favorites">Odebrat z oblíbených</string>
<string name="nc_remove_group_and_members">Odebrat skupinu a její členy</string>
<string name="nc_remove_participant">Odebrat účastníka</string>

View File

@ -51,8 +51,6 @@
<string name="nc_certificate_dialog_title">Tjek certifikatet</string>
<string name="nc_certificate_error">Din SSL indstilling forhindrede forbindelse</string>
<string name="nc_change_cert_auth">Skift godkendelsescertifikat</string>
<string name="nc_circle">Cirkel</string>
<string name="nc_circles">Cirkler</string>
<string name="nc_clear_history_success">Alle beskeder blev slettet</string>
<string name="nc_client_cert_change">Skift kliencertifikat</string>
<string name="nc_client_cert_setup">Indstil klientcertifikat</string>

View File

@ -22,7 +22,7 @@
<string name="clear_status_message_after">Statusmeldung löschen nach</string>
<string name="close">Schließen</string>
<string name="continuous_voice_message_recording">Aufnahme sperren für kontinuierliche Aufzeichnung der Sprachnachricht</string>
<string name="conversation_is_read_only">Unterhaltung ist schreibgeschützt</string>
<string name="conversation_is_read_only">UNterhaltung ist schreibgeschützt</string>
<string name="conversations">Unterhaltungen</string>
<string name="create_conversation">Unterhaltung erstellen</string>
<string name="create_issue">Fehler melden</string>
@ -44,6 +44,7 @@
<string name="file_list_loading">Lade …</string>
<string name="filename_progress">%1$s (%2$d)</string>
<string name="fourHours">4 Stunden</string>
<string name="get_invitations_error">Ausstehende Einladungen konnten nicht abgerufen werden</string>
<string name="hint_edited_message">(Bearbeitet)</string>
<string name="invisible">Unsichtbar</string>
<string name="languages_error_message">Sprachen konnten nicht abgerufen werden</string>
@ -114,8 +115,6 @@
<string name="nc_certificate_dialog_title">Überprüfen Sie das Zertifikat</string>
<string name="nc_certificate_error">Ihre SSL-Konfiguration hat die Verbindung verhindert</string>
<string name="nc_change_cert_auth">Authentifizierungs-Zertifikat ändern</string>
<string name="nc_circle">Kreis</string>
<string name="nc_circles">Kreise</string>
<string name="nc_clear_edit_button">Schaltfläche „Bearbeiten“ löschen</string>
<string name="nc_clear_edit_message">Bearbeitungsnachricht löschen</string>
<string name="nc_clear_history">Alle Nachrichten löschen</string>
@ -341,10 +340,10 @@
<string name="nc_push_to_talk_desc">Bei deaktiviertem Mikrofon &amp;drücken. Halten Sie zum Senden die Sprechtaste gedrückt (Funkgerät-Modus)</string>
<string name="nc_remind">Erinnere mich später</string>
<string name="nc_remote_audio_off">Entferntes Audio aus</string>
<string name="nc_remove_circle_and_members">Kreis und Mitglieder entfernen</string>
<string name="nc_remove_from_favorites">Von Favoriten entfernen</string>
<string name="nc_remove_group_and_members">Gruppe und Mitglieder entfernen</string>
<string name="nc_remove_participant">Teilnehmer entfernen</string>
<string name="nc_remove_team_and_members">Team und Mitglieder entfernen</string>
<string name="nc_rename">Unterhaltung umbenennen</string>
<string name="nc_rename_confirm">Umbenennen</string>
<string name="nc_reply">Antworten</string>
@ -467,6 +466,8 @@
<string name="nc_sort_by">Sortiere nach</string>
<string name="nc_start_time">Startzeit</string>
<string name="nc_switch_account">Konto wechseln</string>
<string name="nc_team">Team</string>
<string name="nc_teams">Teams</string>
<string name="nc_upload_choose_local_files">Dateien auswählen</string>
<string name="nc_upload_confirm_send_multiple">Diese Dateien an %1$s senden?</string>
<string name="nc_upload_confirm_send_single">Diese Datei an %1$s senden?</string>

View File

@ -70,8 +70,6 @@
<string name="nc_certificate_dialog_title">Ελέγξτε το πιστοποιητικό</string>
<string name="nc_certificate_error">Η ρύθμιση SSL απέτρεψε την σύνδεση</string>
<string name="nc_change_cert_auth">Αλλαγή πιστοποιητικού πιστοποίησης</string>
<string name="nc_circle">Κύκλος</string>
<string name="nc_circles">Κύκλοι</string>
<string name="nc_clear_history">Διαγραφή όλων των μηνυμάτων</string>
<string name="nc_clear_history_success">Όλα τα μηνύματα διαγράφηκαν</string>
<string name="nc_clear_history_warning">Θέλετε πραγματικά να διαγράψετε όλα τα μηνύματα σε αυτήν τη συνομιλία;</string>
@ -215,7 +213,6 @@
<string name="nc_push_to_talk">Push-to-talk</string>
<string name="nc_push_to_talk_desc">Με απενεργοποιημένο το μικρόφωνο, πιέστε και κρατήστε το &amp; για χρήση του Push-to-talk</string>
<string name="nc_remind">Θύμισέ μου αργότερα</string>
<string name="nc_remove_circle_and_members">Αφαίρεση κύκλων και μελών</string>
<string name="nc_remove_from_favorites">Αφαίρεση από τα αγαπημένα</string>
<string name="nc_remove_group_and_members">Αφαίρεση ομάδων και μελών</string>
<string name="nc_remove_participant">Αφαίρεση συμμετέχοντα</string>

View File

@ -95,8 +95,6 @@
<string name="nc_certificate_dialog_title">Verifica el certificado</string>
<string name="nc_certificate_error">Tu configuración de SSL impidió la conexión</string>
<string name="nc_change_cert_auth">Cambiar el certificado de atuenticación</string>
<string name="nc_circle">Círculo</string>
<string name="nc_circles">Círculos</string>
<string name="nc_clear_history">Borrar todos los mensajes</string>
<string name="nc_clear_history_success">Todos los mensajes se han eliminado</string>
<string name="nc_clear_history_warning">¿Realmente quieres borrar todos los mensajes de esta conversación?</string>
@ -269,7 +267,6 @@
<string name="nc_push_to_talk_desc">Con el microfono deshabilitado, haz click &amp; presiona para usar Presiona-para-hablar</string>
<string name="nc_remind">Recuérdame más tarde</string>
<string name="nc_remote_audio_off">Audio remoto desactivado</string>
<string name="nc_remove_circle_and_members">Eliminar círculo y miembros</string>
<string name="nc_remove_from_favorites">Eliminar de favoritos</string>
<string name="nc_remove_group_and_members">Eliminar grupo y miembros</string>
<string name="nc_remove_participant">Eliminar participante</string>

View File

@ -110,8 +110,6 @@
<string name="nc_certificate_dialog_title">Comprobar el certificado</string>
<string name="nc_certificate_error">Tu configuración SSL impidió la conexión</string>
<string name="nc_change_cert_auth">Cambiar certificado de autenticación</string>
<string name="nc_circle">Círculo</string>
<string name="nc_circles">Círculos</string>
<string name="nc_clear_history">Borrar todos los mensajes</string>
<string name="nc_clear_history_success">Se han eliminado todos los mensajes</string>
<string name="nc_clear_history_warning">¿Seguro que quieres borrar todos los mensajes en esta conversación?</string>
@ -327,7 +325,6 @@
<string name="nc_push_to_talk_desc">Con el micrófono deshabilitado, mantén pulsado &amp; para usar Push-to-talk</string>
<string name="nc_remind">Recuérdamelo más tarde</string>
<string name="nc_remote_audio_off">Audio remoto apagado</string>
<string name="nc_remove_circle_and_members">Eliminar círculo y miembros</string>
<string name="nc_remove_from_favorites">Eliminar de favoritos</string>
<string name="nc_remove_group_and_members">Eliminar grupo y miembros</string>
<string name="nc_remove_participant">Eliminar participante</string>

View File

@ -108,8 +108,6 @@
<string name="nc_certificate_dialog_title">Egiaztatu ziurtagiria</string>
<string name="nc_certificate_error">Zure SSL konfigurazioak konexioa eragotzi du</string>
<string name="nc_change_cert_auth">Aldatu autentifikazio ziurtagiria</string>
<string name="nc_circle">Zirkulua</string>
<string name="nc_circles">Zirkuluak</string>
<string name="nc_clear_history">Ezabatu mezu guztiak</string>
<string name="nc_clear_history_success">Mezu guztiak ezabatu dira</string>
<string name="nc_clear_history_warning">Ziur zaude elkarrizketa honen mezu guztiak ezabatu nahi dituzula?</string>
@ -295,7 +293,6 @@
<string name="nc_push_to_talk_desc">Mikrofonoa desgaituta daukazunean, egin klik &amp;mantendu sakatzerakoan hitz egiteko</string>
<string name="nc_remind">Gogoratu geroago</string>
<string name="nc_remote_audio_off">Urruneko audioa itzalita</string>
<string name="nc_remove_circle_and_members">Kendu taldea eta kideak</string>
<string name="nc_remove_from_favorites">Kendu gogokoetatik</string>
<string name="nc_remove_group_and_members">Kendu taldea eta kideak</string>
<string name="nc_remove_participant">Kendu parte-hartzailea</string>

View File

@ -99,8 +99,6 @@
<string name="nc_certificate_dialog_title">گواهی را بررسی کنید</string>
<string name="nc_certificate_error">راه اندازی SSL شما مانع از اتصال شد</string>
<string name="nc_change_cert_auth">گواهی تأیید اعتبار را تغییر دهید</string>
<string name="nc_circle">حلقه</string>
<string name="nc_circles">حلقه ها</string>
<string name="nc_clear_history">حذف تمام پیام‌ها</string>
<string name="nc_clear_history_success">تمام پیام‌ها حذف شدند</string>
<string name="nc_clear_history_warning">آیا واقعا می‌خواهید تمام پیام‌ها را در این مکالمه حذف کنید؟</string>
@ -280,7 +278,6 @@
<string name="nc_push_to_talk_desc">با غیر فعال کردن میکروفن، برای استفاده از Push-to-talk کلیک &amp; نگه‌داشتن را انجام دهید</string>
<string name="nc_remind">بعدا به من یادآوری کن</string>
<string name="nc_remote_audio_off">Remote audio off</string>
<string name="nc_remove_circle_and_members">Remove circle and members</string>
<string name="nc_remove_from_favorites">حذف کردن از مورد علاقه‌ها</string>
<string name="nc_remove_group_and_members">Remove group and members</string>
<string name="nc_remove_participant">شرکت کننده را حذف کنید</string>

View File

@ -69,8 +69,6 @@
<string name="nc_certificate_dialog_title">Tarkista varmenne</string>
<string name="nc_certificate_error">SSL-asetukset esti yhteyden</string>
<string name="nc_change_cert_auth">Vaihda tunnistautumisvarmenne</string>
<string name="nc_circle">Piiri</string>
<string name="nc_circles">Piirit</string>
<string name="nc_clear_history">Poista kaikki viestit</string>
<string name="nc_clear_history_success">Kaikki viestit poistettiin</string>
<string name="nc_clear_history_warning">Haluatko varmasti poistaa kaikki viestit tästä keskustelusta?</string>
@ -214,7 +212,6 @@
<string name="nc_push_disabled">Push-ilmoitukset pois käytöstä</string>
<string name="nc_push_to_talk">Paina puhuaksesi</string>
<string name="nc_remind">Muistuta myöhemmin</string>
<string name="nc_remove_circle_and_members">Poista piiri ja jäsenet</string>
<string name="nc_remove_from_favorites">Poista suosikeista</string>
<string name="nc_remove_group_and_members">Poista ryhmä ja jäsenet</string>
<string name="nc_remove_participant">Poista osallistuja</string>

View File

@ -33,6 +33,7 @@
<string name="dontClear">Ne pas effacer</string>
<string name="edit">Modifier</string>
<string name="edit_error_24_hours_old_message">Impossible de modifier des messages plus anciens que 24 heures</string>
<string name="edit_message_icon_description">Modifier l\'icône du message</string>
<string name="emoji_backspace">Retour arrière</string>
<string name="emoji_category_recent">Récent</string>
<string name="encrypted">Chiffré</string>
@ -42,6 +43,7 @@
<string name="file_list_loading">Chargement…</string>
<string name="filename_progress">%1$s (%2$d)</string>
<string name="fourHours">4 heures</string>
<string name="get_invitations_error">Échec de la récupération des invitations en attente</string>
<string name="hint_edited_message">(modifié)</string>
<string name="invisible">Invisible</string>
<string name="languages_error_message">Les langues n\'ont pas pu être récupérées</string>
@ -112,8 +114,6 @@
<string name="nc_certificate_dialog_title">Vérifier le certificat</string>
<string name="nc_certificate_error">Votre configuration SSL a empêché la connexion</string>
<string name="nc_change_cert_auth">Modifier le certificat d\'authentification</string>
<string name="nc_circle">Cercle</string>
<string name="nc_circles">Cercles</string>
<string name="nc_clear_edit_button">effacer le bouton de modification</string>
<string name="nc_clear_history">Supprimer tous les messages</string>
<string name="nc_clear_history_success">Tous les messages ont été supprimés</string>
@ -162,6 +162,7 @@
<string name="nc_diagnose_app_category_title">App</string>
<string name="nc_diagnose_app_name_title">Nom de l\'application</string>
<string name="nc_diagnose_app_users_amount">Utilisateurs enregistrés</string>
<string name="nc_diagnose_app_version_title">Version de l\'app</string>
<string name="nc_diagnose_battery_optimization_title">Paramètres pour la batterie</string>
<string name="nc_diagnose_device_name_title">Appareil</string>
<string name="nc_diagnose_dialog_open_diagnose">Ouvrir l\'écran de diagnostic</string>
@ -311,10 +312,10 @@
<string name="nc_push_to_talk_desc">Avec le micro désactivé, cliquez &amp; maintenez pour utiliser la fonction Talkie-walkie.</string>
<string name="nc_remind">Rappelez-moi plus tard</string>
<string name="nc_remote_audio_off">Audio distant en sourdine</string>
<string name="nc_remove_circle_and_members">Supprimer le cercle et ses membres</string>
<string name="nc_remove_from_favorites">Retirer des favoris</string>
<string name="nc_remove_group_and_members">Supprimer un groupe et ses membres</string>
<string name="nc_remove_participant">Retirer le participant</string>
<string name="nc_remove_team_and_members">Supprimer l\'équipe et ses membres</string>
<string name="nc_rename">Renommer la conversation</string>
<string name="nc_rename_confirm">Renommer</string>
<string name="nc_reply">Répondre</string>
@ -432,6 +433,8 @@
<string name="nc_sort_by">Trier par</string>
<string name="nc_start_time">Heure de début</string>
<string name="nc_switch_account">Changer de compte</string>
<string name="nc_team">Équipe</string>
<string name="nc_teams">Équipes</string>
<string name="nc_upload_choose_local_files">Choisir des fichiers</string>
<string name="nc_upload_confirm_send_multiple">Envoyer ces fichiers à %1$s ?</string>
<string name="nc_upload_confirm_send_single">Envoyer ce fichier à %1$s ?</string>

View File

@ -108,8 +108,6 @@
<string name="nc_certificate_dialog_title">Verificar o certificado</string>
<string name="nc_certificate_error">A súa configuración SSL impediu a conexión</string>
<string name="nc_change_cert_auth">Cambiar o certificado de autenticación</string>
<string name="nc_circle">Círculo</string>
<string name="nc_circles">Círculos</string>
<string name="nc_clear_history">Eliminar todas as mensaxes</string>
<string name="nc_clear_history_success">Elimináronse todas as mensaxes</string>
<string name="nc_clear_history_warning">Confirma que quere eliminar todas as mensaxes desta conversa?</string>
@ -293,7 +291,6 @@
<string name="nc_push_to_talk_desc">Co microfono desactivado, prema e manteña para usar a función «Prema para falar»</string>
<string name="nc_remind">Lembrarmo más adiante</string>
<string name="nc_remote_audio_off">Son remoto desactivado</string>
<string name="nc_remove_circle_and_members">Retirar círculo e membros</string>
<string name="nc_remove_from_favorites">Retirar de favoritos</string>
<string name="nc_remove_group_and_members">Retirar grupo e membros</string>
<string name="nc_remove_participant">Retirar participante</string>

View File

@ -72,8 +72,6 @@
<string name="nc_certificate_dialog_title">Pogledaj vjerodajnicu</string>
<string name="nc_certificate_error">Vezu je onemogućila vaša postavka SSL-a</string>
<string name="nc_change_cert_auth">Promijeni vjerodajnicu za autentifikaciju</string>
<string name="nc_circle">Krug</string>
<string name="nc_circles">Krugovi</string>
<string name="nc_clear_history">Izbriši sve poruke</string>
<string name="nc_clear_history_success">Izbrisane su sve poruke</string>
<string name="nc_clear_history_warning">Želite li zaista izbrisati sve poruke u ovom razgovoru?</string>
@ -217,7 +215,6 @@
<string name="nc_push_to_talk_desc">Kada je mikrofon onemogućen, kliknite i držite za uporabu značajke Pritisni za govor</string>
<string name="nc_remind">Podsjeti me kasnije</string>
<string name="nc_remote_audio_off">Udaljeno isključivanje zvuka</string>
<string name="nc_remove_circle_and_members">Ukloni krug i članove</string>
<string name="nc_remove_from_favorites">Ukloni iz favorita</string>
<string name="nc_remove_group_and_members">Ukloni grupu i članove</string>
<string name="nc_remove_participant">Ukloni sudionika</string>

View File

@ -103,8 +103,6 @@
<string name="nc_certificate_dialog_title">Ellenőrizze a tanúsítványt</string>
<string name="nc_certificate_error">Az SSL beállítás megakadályozta a kapcsolódást</string>
<string name="nc_change_cert_auth">Hitelesítési tanúsítvány módosítása</string>
<string name="nc_circle">Kör</string>
<string name="nc_circles">Körök</string>
<string name="nc_clear_history">Összes üzenet törlése</string>
<string name="nc_clear_history_success">Az összes üzenet törölve lett</string>
<string name="nc_clear_history_warning">Biztos, hogy törli a beszélgetés összes üzenetét?</string>
@ -283,7 +281,6 @@
<string name="nc_push_to_talk_desc">A mikrofon le lesz tiltva, a beszédhez tartsa lenyomva</string>
<string name="nc_remind">Emlékeztessen később</string>
<string name="nc_remote_audio_off">Távoli hang kikapcsolása</string>
<string name="nc_remove_circle_and_members">Kör és tagok eltávolítása</string>
<string name="nc_remove_from_favorites">Eltávolítás a kedvencekből</string>
<string name="nc_remove_group_and_members">Csoport és tagok eltávolítása</string>
<string name="nc_remove_participant">Résztvevő eltávolítása</string>

View File

@ -52,8 +52,6 @@
<string name="nc_certificate_dialog_title">Sannreyna skilríkið</string>
<string name="nc_certificate_error">SSL-uppsetningin þín kom í veg fyrir tengingu</string>
<string name="nc_change_cert_auth">Skipta um skilríki fyrir auðkenningu</string>
<string name="nc_circle">Hringur</string>
<string name="nc_circles">Hringir</string>
<string name="nc_client_cert_change">Skipta um skilríki biðlara</string>
<string name="nc_client_cert_setup">Setja upp skilríki biðlara</string>
<string name="nc_common_copy">Afrita</string>

View File

@ -85,8 +85,6 @@
<string name="nc_certificate_dialog_title">Controlla il certificato</string>
<string name="nc_certificate_error">La tua configurazione SSL ha impedito la connessione</string>
<string name="nc_change_cert_auth">Cambia certificato di autenticazione</string>
<string name="nc_circle">Cerchia</string>
<string name="nc_circles">Cerchie</string>
<string name="nc_clear_history">Elimina tutti i messaggi</string>
<string name="nc_clear_history_success">Tutti i messaggi sono stati eliminati</string>
<string name="nc_clear_history_warning">Vuoi davvero eliminare tutti i messaggi in questa conversazione?</string>
@ -239,7 +237,6 @@
<string name="nc_push_to_talk_desc">Con il microfono disabilitato, fai clic e mantieni per utilizzare Premi per parlare</string>
<string name="nc_remind">Ricordamelo più tardi</string>
<string name="nc_remote_audio_off">Audio remoto spento</string>
<string name="nc_remove_circle_and_members">Rimuovi cerchia e membri</string>
<string name="nc_remove_from_favorites">Rimuovi dai preferiti</string>
<string name="nc_remove_group_and_members">Rimuovi gruppo e membri</string>
<string name="nc_remove_participant">Rimuovi partecipante</string>

View File

@ -81,8 +81,6 @@
<string name="nc_certificate_dialog_title">証明書をチェックアウトする</string>
<string name="nc_certificate_error">SSL設定で接続が妨げられました</string>
<string name="nc_change_cert_auth">認証証明書を変更する</string>
<string name="nc_circle">サークル</string>
<string name="nc_circles">サークル</string>
<string name="nc_clear_history">すべてのメッセージを削除</string>
<string name="nc_clear_history_success">すべてのメッセージが削除されたました。</string>
<string name="nc_clear_history_warning">本当にこの会話の全てのメッセージを削除してもよろしいですか?</string>
@ -234,7 +232,6 @@
<string name="nc_push_to_talk_desc">マイクを無効にして、プッシュツートークを使用する場合は &amp; ホールド</string>
<string name="nc_remind">後で通知する</string>
<string name="nc_remote_audio_off">リモート音声オフ</string>
<string name="nc_remove_circle_and_members">サークルとメンバーを削除</string>
<string name="nc_remove_from_favorites">お気に入りから削除</string>
<string name="nc_remove_group_and_members">メンバーとグループを削除</string>
<string name="nc_remove_participant">参加者を削除</string>

View File

@ -87,8 +87,6 @@
<string name="nc_certificate_dialog_title">인증서 확인</string>
<string name="nc_certificate_error">SSL 설정에서 연결을 거부함</string>
<string name="nc_change_cert_auth">인증서 변경</string>
<string name="nc_circle">서클</string>
<string name="nc_circles">서클</string>
<string name="nc_clear_history">모든 메시지 삭제</string>
<string name="nc_clear_history_success">모든 메시지가 삭제되었습니다.</string>
<string name="nc_clear_history_warning">이 대화에서 모든 메시지를 삭제하시겠습니까?</string>
@ -250,7 +248,6 @@
<string name="nc_push_to_talk_desc">마이크가 비활성화된 상태에서 &amp;를 누르고 있으면 눌러 말하기 사용</string>
<string name="nc_remind">나중에 다시 알림</string>
<string name="nc_remote_audio_off">원격 오디오 끄기</string>
<string name="nc_remove_circle_and_members">서클과 구성원 제거</string>
<string name="nc_remove_from_favorites">즐겨찾기에서 제거</string>
<string name="nc_remove_group_and_members">Remove group and members</string>
<string name="nc_remove_participant">참가자 삭제</string>

View File

@ -55,8 +55,6 @@
<string name="nc_certificate_dialog_text">Ar pasitikite iki šiol nežinomu SSL liudijimu, kurį išdavė %1$s, kuris skirtas %2$s ir galioja nuo %3$s iki %4$s?</string>
<string name="nc_certificate_error">Jūsų SSL sąranka neleido ryšio</string>
<string name="nc_change_cert_auth">Keisti tapatybės nustatymo liudijimą</string>
<string name="nc_circle">Ratas</string>
<string name="nc_circles">Ratai</string>
<string name="nc_client_cert_change">Keisti kliento programėlės liudijimą</string>
<string name="nc_client_cert_setup">Nustatyti kliento programėlės liudijimą</string>
<string name="nc_common_and">ir</string>

View File

@ -22,7 +22,7 @@
<string name="clear_status_message_after">Fjern statusmelding etter</string>
<string name="close">Lukk</string>
<string name="continuous_voice_message_recording">Lås opptak for kontinuerlig opptak av talemeldingen</string>
<string name="conversation_is_read_only">Denne samtalen er skrivebeskyttet</string>
<string name="conversation_is_read_only">Samtalen kan kun leses</string>
<string name="conversations">Samtaler</string>
<string name="create_conversation">Opprett samtale</string>
<string name="create_issue">Opprett problem</string>
@ -44,6 +44,7 @@
<string name="file_list_loading">Laster ...</string>
<string name="filename_progress">%1$s (%2$d)</string>
<string name="fourHours">4 timer</string>
<string name="get_invitations_error">Henting av ventende invitasjoner feilet</string>
<string name="hint_edited_message">(redigert)</string>
<string name="invisible">Usynlig</string>
<string name="languages_error_message">Språk kunne ikke hentes</string>
@ -114,8 +115,6 @@
<string name="nc_certificate_dialog_title">Sjekk sertifikatet</string>
<string name="nc_certificate_error">Ditt SSL-oppsett forhindret tilkobling</string>
<string name="nc_change_cert_auth">Endre sertifikat for autentisering</string>
<string name="nc_circle">Sirkel</string>
<string name="nc_circles">Sirkler</string>
<string name="nc_clear_edit_button">tøm redigeringsknapp</string>
<string name="nc_clear_edit_message">Fjern redigeringsmelding</string>
<string name="nc_clear_history">Slett alle meldinger</string>
@ -341,10 +340,10 @@
<string name="nc_push_to_talk_desc">Med mikrofonen avslått, klikk &amp; hold for å bruke klikk-for-å-snakke</string>
<string name="nc_remind">Påminnn meg senere</string>
<string name="nc_remote_audio_off">Ekstern lyd av</string>
<string name="nc_remove_circle_and_members">Fjern sirkel og medlemmer</string>
<string name="nc_remove_from_favorites">Fjern fra favoritter</string>
<string name="nc_remove_group_and_members">Fjern gruppe og medlemmer</string>
<string name="nc_remove_participant">Fjern deltaker</string>
<string name="nc_remove_team_and_members">Fjern lag og medlemmer</string>
<string name="nc_rename">Endre navn på samtale</string>
<string name="nc_rename_confirm">Endre navn</string>
<string name="nc_reply">Svar</string>
@ -467,6 +466,8 @@
<string name="nc_sort_by">Sorter etter</string>
<string name="nc_start_time">Start tidspunkt</string>
<string name="nc_switch_account">Bytt konto</string>
<string name="nc_team">Lag</string>
<string name="nc_teams">Lag</string>
<string name="nc_upload_choose_local_files">Velg filer</string>
<string name="nc_upload_confirm_send_multiple">Sende disse filene til %1$s?</string>
<string name="nc_upload_confirm_send_single">Sende denne filen til %1$s?</string>

View File

@ -85,8 +85,6 @@
<string name="nc_certificate_dialog_title">Controleer het certificaat</string>
<string name="nc_certificate_error">Je SSL-instellingen blokkeerden de verbinding</string>
<string name="nc_change_cert_auth">Authenticatiecertificaat veranderen</string>
<string name="nc_circle">Kring</string>
<string name="nc_circles">Kringen</string>
<string name="nc_clear_history">Alle berichten verwijderen</string>
<string name="nc_clear_history_success">Alle berichten zijn verwijderd</string>
<string name="nc_clear_history_warning">Wil je echt dit alle andere berichten in dit gesprek echt verwijderen?</string>
@ -240,7 +238,6 @@ Kies er eentje van een provider.</string>
<string name="nc_push_to_talk_desc">Met uitgeschakelde microfoon, klik&amp;indrukken om Druk-om-te-praten te gebruiken</string>
<string name="nc_remind">Herinner me later</string>
<string name="nc_remote_audio_off">Externe audio uit</string>
<string name="nc_remove_circle_and_members">Verwijderen kring en leden</string>
<string name="nc_remove_from_favorites">Verwijderen uit favorieten</string>
<string name="nc_remove_group_and_members">Verwijderen groep en leden</string>
<string name="nc_remove_participant">Verwijder deelnemer</string>

View File

@ -108,8 +108,6 @@
<string name="nc_certificate_dialog_title">Sprawdź certyfikat</string>
<string name="nc_certificate_error">Twoje ustawienia SSL uniemożliwiają połaczenie</string>
<string name="nc_change_cert_auth">Zmień certyfikat uwierzytelnienia</string>
<string name="nc_circle">Krąg</string>
<string name="nc_circles">Kręgi</string>
<string name="nc_clear_history">Usuń wszystkie wiadomości</string>
<string name="nc_clear_history_success">Wszystkie wiadomości zostały usunięte</string>
<string name="nc_clear_history_warning">Czy na pewno chcesz usunąć wszystkie wiadomości z tej rozmowy?</string>
@ -293,7 +291,6 @@
<string name="nc_push_to_talk_desc">Gdy mikrofon jest wyłączony, kliknij i przytrzymaj, aby użyć funkcji \"Naciśnij i mów\"</string>
<string name="nc_remind">Przypomnij mi później</string>
<string name="nc_remote_audio_off">Zdalne wyłączenie dźwięku</string>
<string name="nc_remove_circle_and_members">Usuń krąg i członków</string>
<string name="nc_remove_from_favorites">Usuń z ulubionych</string>
<string name="nc_remove_group_and_members">Usuń grupę i członków</string>
<string name="nc_remove_participant">Usuń uczestnika</string>

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="account_icon">Ícone da conta</string>
<string name="add_to_notes">Adicionar às Notas</string>
<string name="added_to_favorites">Conversa adicionada %1$s para favoritos</string>
<string name="appbar_search_in">Pesquisar em %s</string>
<string name="audio_call">Chamada de áudio</string>
@ -21,8 +22,10 @@
<string name="clear_status_message_after">Limpar mensagem de status após</string>
<string name="close">Fechar</string>
<string name="continuous_voice_message_recording">Gravação de bloqueio para gravação contínua da mensagem de voz</string>
<string name="conversation_is_read_only">A conversa é somente leitura</string>
<string name="conversations">Conversas</string>
<string name="create_conversation">Criando conversa</string>
<string name="create_issue">Criar problema</string>
<string name="custom">Personalizar</string>
<string name="danger_zone">Zona de perigo</string>
<string name="delete_avatar">Excluir avatar</string>
@ -30,6 +33,8 @@
<string name="dnd">Não perturbe</string>
<string name="dontClear">Não limpe</string>
<string name="edit">Editar</string>
<string name="edit_error_24_hours_old_message">Não é possível editar mensagens com mais de 24 horas</string>
<string name="edit_message_icon_description">Editar ícone de mensagem</string>
<string name="emoji_backspace">Retroceder</string>
<string name="emoji_category_recent">Recente</string>
<string name="encrypted">Criptografado</string>
@ -39,6 +44,7 @@
<string name="file_list_loading">Carregando …</string>
<string name="filename_progress">%1$s (%2$d)</string>
<string name="fourHours">4 horas</string>
<string name="get_invitations_error">Falha ao buscar convites pendentes</string>
<string name="hint_edited_message">(editado)</string>
<string name="invisible">Invisível</string>
<string name="languages_error_message">Não foi possível recuperar os idiomas</string>
@ -109,8 +115,8 @@
<string name="nc_certificate_dialog_title">Confira o certificado</string>
<string name="nc_certificate_error">Sua configuração SSL impediu a conexão</string>
<string name="nc_change_cert_auth">Alterar certificado de autenticação</string>
<string name="nc_circle">Círculo</string>
<string name="nc_circles">Círculos</string>
<string name="nc_clear_edit_button">limpar botão Editar</string>
<string name="nc_clear_edit_message">Limpar Editar Mensagem</string>
<string name="nc_clear_history">Excluir todas as mensagens </string>
<string name="nc_clear_history_success">Todas as mensagens foram apagadas </string>
<string name="nc_clear_history_warning">Tem certeza de que deseja excluir todas as mensagens desta conversa? </string>
@ -134,6 +140,7 @@
<string name="nc_conversation_menu_conversation_info">Informação da conversa</string>
<string name="nc_conversation_menu_video_call">Chamada de vídeo</string>
<string name="nc_conversation_menu_voice_call">Chamada de voz</string>
<string name="nc_conversation_not_found">Conversa não encontrada</string>
<string name="nc_conversations_empty">Junte-se a uma conversa ou inicie uma nova</string>
<string name="nc_conversations_empty_details">Diga olá para seus amigos e colegas!</string>
<string name="nc_copy_message">Copiar</string>
@ -152,16 +159,43 @@
<string name="nc_description_send_message_button">Enviar mensagem</string>
<string name="nc_diagnose_account_category_title">Conta atual</string>
<string name="nc_diagnose_account_server">Servidor</string>
<string name="nc_diagnose_account_server_notification_app">Aplicativo de notificação do servidor instalado?</string>
<string name="nc_diagnose_account_user_name">Usuário</string>
<string name="nc_diagnose_account_user_status_enabled">Status do usuário ativado?</string>
<string name="nc_diagnose_android_version_title">Versão do Android</string>
<string name="nc_diagnose_app_category_title">Aplicativo</string>
<string name="nc_diagnose_app_name_title">Nome do aplicativo</string>
<string name="nc_diagnose_app_users_amount">Usuários registrados</string>
<string name="nc_diagnose_app_version_title">Versão do aplicativo</string>
<string name="nc_diagnose_battery_optimization_ignored">A otimização da bateria é ignorada, tudo bem</string>
<string name="nc_diagnose_battery_optimization_not_ignored">A otimização da bateria não é ignorada. Isso deveria ser mudado!</string>
<string name="nc_diagnose_battery_optimization_title">Configurações da bateria</string>
<string name="nc_diagnose_device_name_title">Dispositivo</string>
<string name="nc_diagnose_dialog_open_checklist">Abrir lista de verificação de solução de problemas</string>
<string name="nc_diagnose_dialog_open_diagnose">Abrir tela de diagnóstico</string>
<string name="nc_diagnose_dialog_open_dontkillmyapp_website">Abra dontkillmyapp.com</string>
<string name="nc_diagnose_firebase_push_token_latest_fetch">Última busca de token push do Firebase</string>
<string name="nc_diagnose_firebase_push_token_latest_generated">Última geração de token push do Firebase</string>
<string name="nc_diagnose_firebase_push_token_missing">Nenhum token push do Firebase definido. Por favor, crie um relatório de bug.</string>
<string name="nc_diagnose_firebase_push_token_title">Token de envio do Firebase</string>
<string name="nc_diagnose_gplay_available_no">Os serviços do Google Play não estão disponíveis. Notificações não são suportadas</string>
<string name="nc_diagnose_gplay_available_title">Serviços do Google Play</string>
<string name="nc_diagnose_gplay_available_yes">Os serviços do Google Play estão disponíveis</string>
<string name="nc_diagnose_latest_push_registration_at_push_proxy">Último registro push no push proxy</string>
<string name="nc_diagnose_latest_push_registration_at_push_proxy_fail">Ainda não registrado no push proxy</string>
<string name="nc_diagnose_latest_push_registration_at_server">Último registro push no servidor</string>
<string name="nc_diagnose_latest_push_registration_at_server_fail">Ainda não cadastrado no servidor</string>
<string name="nc_diagnose_meta_category_title">Meta informação</string>
<string name="nc_diagnose_meta_system_report_date">Geração de relatório do sistema</string>
<string name="nc_diagnose_notification_calls_channel_permission">Canal de notificação de chamadas ativado?</string>
<string name="nc_diagnose_notification_messages_channel_permission">Canal de notificação de mensagens ativado?</string>
<string name="nc_diagnose_notification_permission">Permissões de notificação</string>
<string name="nc_diagnose_phone_category_title">Celular</string>
<string name="nc_diagnose_server_talk_version">Versão do Server Talk</string>
<string name="nc_diagnose_server_version">Versão do servidor</string>
<string name="nc_diagnose_signaling_mode_extern">Externo</string>
<string name="nc_diagnose_signaling_mode_intern">Interno</string>
<string name="nc_diagnose_signaling_mode_title">Modo de sinalização</string>
<string name="nc_dialog_invalid_password">Senha inválida</string>
<string name="nc_dialog_maintenance_mode">Modo de manutenção</string>
<string name="nc_dialog_maintenance_mode_description">O servidor está atualmente em modo de manutenção.</string>
@ -176,7 +210,11 @@
<string name="nc_dialog_save_to_storage_yes">Sim</string>
<string name="nc_display_name_not_fetched">Nome de exibição não obtido, interrompendo</string>
<string name="nc_display_name_not_stored">Não foi possível armazenar o nome de exibição, cancelando</string>
<string name="nc_edit_icon">Editar ícone</string>
<string name="nc_edit_message">Editar</string>
<string name="nc_edit_message_text">Editar texto da mensagem</string>
<string name="nc_edited_by">Editado por</string>
<string name="nc_edited_by_admin">Editado pelo administrador</string>
<string name="nc_email">E-mail</string>
<string name="nc_expire_message_eight_hours">8 horas</string>
<string name="nc_expire_message_four_weeks">4 semanas</string>
@ -189,6 +227,9 @@
<string name="nc_external_server_failed">Falha ao buscar configurações de sinalização</string>
<string name="nc_federation_invitation_accept">Aceitar</string>
<string name="nc_federation_invitation_reject">Rejeitar</string>
<string name="nc_federation_invited_to_room">de %1$s em%2$s</string>
<string name="nc_federation_no_invitations">Nenhum convite pendente</string>
<string name="nc_federation_pending_invitation_hint">Você tem convites pendentes</string>
<string name="nc_file_browser_back">Voltar</string>
<string name="nc_file_storage_permission">É necessária permissão para acessar o arquivo</string>
<string name="nc_filter">Filter Conversations</string>
@ -216,6 +257,8 @@
<string name="nc_guest_access_resend_invitations_successful">Os convites foram enviados novamente.</string>
<string name="nc_guest_access_share_link">Compartilhar o link da conversa</string>
<string name="nc_hint_enter_a_message">Digite uma mensagem …</string>
<string name="nc_ignore_battery_optimization_dialog_text">A otimização da bateria não é ignorada. Isso deve ser alterado para garantir que as notificações funcionem em segundo plano! Clique em OK e selecione \"Todos os aplicativos\" -> %1$s -> Não otimizar</string>
<string name="nc_ignore_battery_optimization_dialog_title">Ignorar a otimização da bateria</string>
<string name="nc_important_conversation">Conversa importante</string>
<string name="nc_important_conversation_desc">As notificações nesta conversa substituirão as configurações de Não perturbe</string>
<string name="nc_invitations">Convites</string>
@ -267,6 +310,8 @@
<string name="nc_notification_channel_uploads">Enviados</string>
<string name="nc_notification_channel_uploads_description">Notificar sobre o progresso do envio do arquivo</string>
<string name="nc_notification_settings">Configurações de notificação</string>
<string name="nc_notifications_troubleshooting_dialog_text">A permissão de notificação e as configurações da bateria estão configuradas corretamente para receber notificações. Se você tiver problemas para receber notificações mesmo assim, verifique se os canais de notificação para chamadas e mensagens estão habilitados. Mais ajuda pode ser encontrada em DontKillMyApp.com ou na lista de verificação de solução de problemas. Se isso não ajudar, vá para a tela de diagnóstico e envie um relatório de bug.</string>
<string name="nc_notifications_troubleshooting_dialog_title">Solução de problemas de notificação</string>
<string name="nc_notify_me_always">Sempre notificar</string>
<string name="nc_notify_me_mention">Notificar quando mencionado</string>
<string name="nc_notify_me_never">Nunca notificar</string>
@ -295,10 +340,10 @@
<string name="nc_push_to_talk_desc">Com o microfone desativado, clique&amp; para usar Pressione-para-falar</string>
<string name="nc_remind">Lembre-me mais tarde</string>
<string name="nc_remote_audio_off">Áudio remoto desligado</string>
<string name="nc_remove_circle_and_members">Remover círculo e membros</string>
<string name="nc_remove_from_favorites">Remover dos favoritos</string>
<string name="nc_remove_group_and_members">Remover grupo e membros </string>
<string name="nc_remove_participant">Excluir participante</string>
<string name="nc_remove_team_and_members">Remover equipe e membros</string>
<string name="nc_rename">Renomear conversa</string>
<string name="nc_rename_confirm">Renomear</string>
<string name="nc_reply">Responder</string>
@ -316,6 +361,7 @@
<string name="nc_search">Pesquisar</string>
<string name="nc_select_an_account">Selecionar uma conta</string>
<string name="nc_select_participants">Selecionar participantes</string>
<string name="nc_send_edit_message">Enviar Editar Mensagem</string>
<string name="nc_sent_a_gif" formatted="true">%1$s enviou um GIF.</string>
<string name="nc_sent_a_gif_you">Você enviou um GIF.</string>
<string name="nc_sent_a_video" formatted="true">%1$s enviou um vídeo.</string>
@ -351,12 +397,17 @@
<string name="nc_settings_advanced_title">Avançada</string>
<string name="nc_settings_appearance">Aparência</string>
<string name="nc_settings_call_ringtone">Chamadas</string>
<string name="nc_settings_diagnose_subtitle">Abra a tela de diagnóstico para verificar as configurações ou criar um relatório de bug</string>
<string name="nc_settings_diagnose_title">Diagnóstico</string>
<string name="nc_settings_incognito_keyboard_desc">Instrui o teclado para desativar o aprendizado personalizado (sem garantias)</string>
<string name="nc_settings_incognito_keyboard_title">Teclado incógnito</string>
<string name="nc_settings_no_ringtone">Sem som</string>
<string name="nc_settings_no_talk_installed">O aplicativo Talk não está instalado no servidor em que você tentou se autenticar</string>
<string name="nc_settings_notification_sounds">Sons de notificação</string>
<string name="nc_settings_notification_sounds_post_oreo">Notificações</string>
<string name="nc_settings_notifications_declined">As notificações foram recusadas</string>
<string name="nc_settings_notifications_declined_hint">As notificações são recusadas. Permita notificações nas configurações do Android</string>
<string name="nc_settings_notifications_granted">As notificações são concedidas</string>
<string name="nc_settings_other_notifications_ringtone">Mensagens</string>
<string name="nc_settings_phone_book_integration_desc">Combine os contatos com base no número de telefone para integrar o atalho do Bate Papo no aplicativo de contatos do sistema</string>
<string name="nc_settings_phone_book_integration_phone_number_dialog_429">Erro 429 Muitas Solicitações</string>
@ -415,6 +466,8 @@
<string name="nc_sort_by">Ordenar por</string>
<string name="nc_start_time">Hora de início</string>
<string name="nc_switch_account">Mudar de conta</string>
<string name="nc_team">Equipe</string>
<string name="nc_teams">Equipes</string>
<string name="nc_upload_choose_local_files">Escolher arquivos</string>
<string name="nc_upload_confirm_send_multiple">Enviar estes arquivos para %1$s?</string>
<string name="nc_upload_confirm_send_single">Enviar este arquivo para %1$s?</string>

View File

@ -102,8 +102,6 @@
<string name="nc_certificate_dialog_title">Проверьте сертификат</string>
<string name="nc_certificate_error">Заданные параметры SSL не позволяют подключиться</string>
<string name="nc_change_cert_auth">Изменить сертификат для подтверждения подлинности</string>
<string name="nc_circle">Круг</string>
<string name="nc_circles">Круги</string>
<string name="nc_clear_history">Удалить все сообщения</string>
<string name="nc_clear_history_success">Все сообщения были удалены</string>
<string name="nc_clear_history_warning">Вы действительно хотите удалить все сообщения в этой беседе?</string>
@ -275,10 +273,10 @@
<string name="nc_push_to_talk_desc">Нажмите и удерживайте для использования PTT при отключённом микрофоне</string>
<string name="nc_remind">Напомнить позже</string>
<string name="nc_remote_audio_off">Отключить звук удалённо</string>
<string name="nc_remove_circle_and_members">Удалить Круг и его учатников</string>
<string name="nc_remove_from_favorites">Удалить из избранного</string>
<string name="nc_remove_group_and_members">Удалить группу и её участников</string>
<string name="nc_remove_participant">Удалить участника</string>
<string name="nc_remove_team_and_members">Исключить команду и её участников</string>
<string name="nc_rename">Переименовать разговор</string>
<string name="nc_rename_confirm">Переименовать</string>
<string name="nc_reply">Ответить</string>
@ -394,6 +392,7 @@
<string name="nc_sort_by">Сортировать по</string>
<string name="nc_start_time">Время начала</string>
<string name="nc_switch_account">Сменить аккаунт</string>
<string name="nc_teams">Команды</string>
<string name="nc_upload_choose_local_files">Выберите файлы</string>
<string name="nc_upload_confirm_send_multiple">Отправить эти файлы %1$s?</string>
<string name="nc_upload_confirm_send_single">Отправить этот файл %1$s?</string>

View File

@ -68,8 +68,6 @@
<string name="nc_certificate_dialog_title">Controlla su tzertificadu</string>
<string name="nc_certificate_error">Sa cunfiguratzione SSL at refudadu sa connessione</string>
<string name="nc_change_cert_auth">Càmbia tzertificadu autenticatzione</string>
<string name="nc_circle">Giru</string>
<string name="nc_circles">Giros</string>
<string name="nc_clear_history">Cantzella totu is messàgios</string>
<string name="nc_clear_history_success">Cantzellados totu is messàgios</string>
<string name="nc_clear_history_warning">A beru boles cantzellare totu is messàgios in custa resonada?</string>
@ -207,7 +205,6 @@
<string name="nc_push_to_talk_desc">Cun su micròfonu disativadu, mantene incarcadu&amp;pro impreare su cumandu de trasmissione</string>
<string name="nc_remind">Regorda•mi•ddu a coa</string>
<string name="nc_remote_audio_off">Àudiu remotu istudadu </string>
<string name="nc_remove_circle_and_members">Boga·nche giru e partetzipantes</string>
<string name="nc_remove_from_favorites">Boga dae preferidos</string>
<string name="nc_remove_group_and_members">Boga·nche grupu e partetzipantes</string>
<string name="nc_remove_participant"> Boga·nche partetzipante</string>

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="account_icon">Ikona účtu</string>
<string name="add_to_notes">Pridať do poznámok</string>
<string name="added_to_favorites">Pridať konverzáciu %1$s k obľúbeným</string>
<string name="appbar_search_in">Hľadať v %s</string>
<string name="audio_call">Audio hovor</string>
@ -20,8 +21,10 @@
<string name="clear_status_message">Vyčistiť správu o stave</string>
<string name="clear_status_message_after">Vyčistiť správu o stave po</string>
<string name="close">Zatvoriť</string>
<string name="continuous_voice_message_recording">Zamknúť nahrávanie pre nepretržité nahrávanie hlasovej správy</string>
<string name="conversations">Konverzácie</string>
<string name="create_conversation">Vytvoriť konverzáciu</string>
<string name="create_issue">Vytvoriť problém</string>
<string name="custom">Vlastný</string>
<string name="danger_zone">Nebezpečná oblasť</string>
<string name="delete_avatar">Zmazať avatara</string>
@ -29,6 +32,8 @@
<string name="dnd">Nerušiť</string>
<string name="dontClear">Nemazať</string>
<string name="edit">Upraviť</string>
<string name="edit_error_24_hours_old_message">Nemôžete upravovať správy staršie ako 24 hodín.</string>
<string name="edit_message_icon_description">Upraviť ikonu správy</string>
<string name="emoji_backspace">Spätná lomka</string>
<string name="emoji_category_recent">Nedávne</string>
<string name="encrypted">Šifrované</string>
@ -38,7 +43,10 @@
<string name="file_list_loading">Načítavam …</string>
<string name="filename_progress">%1$s (%2$d)</string>
<string name="fourHours">4 hodiny</string>
<string name="hint_edited_message">(editované)</string>
<string name="invisible">Neviditeľný</string>
<string name="languages_error_message">Jazyky sa nedali získať</string>
<string name="languages_error_title">Získanie zlyhalo</string>
<string name="later_today">Neskôr dnes</string>
<string name="left_conversation">Opustili ste konverzáciu %1$s</string>
<string name="load_more_results">Načítať viac výsledkov</string>
@ -53,6 +61,7 @@
<string name="menu_item_sort_by_name_z_a">Z - A</string>
<string name="menu_item_sort_by_size_biggest_first">Najväčšie prvé</string>
<string name="menu_item_sort_by_size_smallest_first">Najmenšie prvé</string>
<string name="message_expiration_title">Vypršanie platnosti správy</string>
<string name="message_poll_tap_to_open">Klepnutím otvoríte anketu</string>
<string name="message_search_begin_empty">Žiadne výsledky vyhľadávania</string>
<string name="message_search_begin_typing">Začnite písať pre vyhľadanie …</string>
@ -101,8 +110,6 @@
<string name="nc_certificate_dialog_title">Skontrolujte certifikát</string>
<string name="nc_certificate_error">Vaša konfigurácia SSL zabránila pripojeniu</string>
<string name="nc_change_cert_auth">Zmeniť autentifikačný certifikát</string>
<string name="nc_circle">Kruh</string>
<string name="nc_circles">Kruhy</string>
<string name="nc_clear_history">Vymazať všetky správy</string>
<string name="nc_clear_history_success">Všetky správy boli vymazané</string>
<string name="nc_clear_history_warning">Naozaj chcete vymazať všetky správy v tejto konverzácii?</string>
@ -151,6 +158,7 @@
<string name="nc_diagnose_battery_optimization_title">Nastavenia batérie.</string>
<string name="nc_diagnose_device_name_title">Zariadenie</string>
<string name="nc_diagnose_phone_category_title">Telefón</string>
<string name="nc_diagnose_server_talk_version">Verzia servera Talk /Rozhovor/</string>
<string name="nc_diagnose_signaling_mode_extern">Externý</string>
<string name="nc_diagnose_signaling_mode_intern">Interné</string>
<string name="nc_dialog_invalid_password">Neplatné heslo</string>
@ -280,10 +288,10 @@
<string name="nc_push_to_talk_desc">S vypnutým mikrofónom, kliknite &amp;podržte pre použitie funkcie Stlač a hovor PTT</string>
<string name="nc_remind">Pripomenúť neskôr</string>
<string name="nc_remote_audio_off">Vypnúť vzdialené audio</string>
<string name="nc_remove_circle_and_members">Vymazať kruh a členov</string>
<string name="nc_remove_from_favorites">Odstrániť z obľúbených</string>
<string name="nc_remove_group_and_members">Odobrať skupinu a členov</string>
<string name="nc_remove_participant">Odobrať účastníka</string>
<string name="nc_remove_team_and_members">Odstrániť tím a členov.</string>
<string name="nc_rename">Premenovať konverzáciu</string>
<string name="nc_rename_confirm">Premenovať</string>
<string name="nc_reply">Odpoveď</string>
@ -398,6 +406,8 @@
<string name="nc_sort_by">Zoradiť podľa</string>
<string name="nc_start_time">Čas začiatku</string>
<string name="nc_switch_account">Prepnúť účet</string>
<string name="nc_team">Tím</string>
<string name="nc_teams">Tímy</string>
<string name="nc_upload_choose_local_files">Vyberte súbory</string>
<string name="nc_upload_confirm_send_multiple">Poslať tieto súbory do %1$s?</string>
<string name="nc_upload_confirm_send_single">Poslať tento súbor do %1$s?</string>
@ -453,6 +463,10 @@
<string name="record_stop_confirm_title">Zastaviť nahrávanie hovoru</string>
<string name="record_stop_description">Zastaviť nahrávanie</string>
<string name="record_stopping">Zastavujem nahrávanie...</string>
<string name="recording_consent_all">Súhlas so záznamom je potrebný pre všetky hovory.</string>
<string name="recording_consent_for_conversation_description">Vyžadovať súhlas so záznamom pred pripojením hovoru v tejto konverzácii</string>
<string name="recording_consent_for_conversation_title">Súhlas so záznamom</string>
<string name="recording_consent_title">Hovor môže byť zaznamenaný.</string>
<string name="recording_settings_title">Záznam</string>
<string name="removed_from_favorites">Konverzácia %1$s bola odstránená z obľúbených</string>
<string name="renamed_conversation">Konverzácia %1$s bola premenovaná</string>

View File

@ -93,8 +93,6 @@
<string name="nc_certificate_dialog_title">Preveri potrdilo</string>
<string name="nc_certificate_error">Nastavitve SSL onemogočajo vzpostavitev povezave</string>
<string name="nc_change_cert_auth">Spremeni potrdilo za overitev</string>
<string name="nc_circle">Krog</string>
<string name="nc_circles">Krogi</string>
<string name="nc_clear_history">Izbriši vsa sporočila</string>
<string name="nc_clear_history_success">Vsa sporočilo so izbrisana</string>
<string name="nc_clear_history_warning">Ali res želite izbrisati vsa sporočila tega pogovora?</string>
@ -262,7 +260,6 @@
<string name="nc_push_to_talk_desc">Pri onemogočenem mikrofonu lahko za začetek govora kliknete in zadržite gumb</string>
<string name="nc_remind">Opomni me kasneje</string>
<string name="nc_remote_audio_off">Oddaljen zvok je onemogočen</string>
<string name="nc_remove_circle_and_members">Odstrani krog in člane</string>
<string name="nc_remove_from_favorites">Odstrani iz priljubljenih</string>
<string name="nc_remove_group_and_members">Odstrani skupino in člane</string>
<string name="nc_remove_participant">Odstrani udeležence</string>

View File

@ -44,6 +44,7 @@
<string name="file_list_loading">Учитавање…</string>
<string name="filename_progress">%1$s (%2$d)</string>
<string name="fourHours">4 сата</string>
<string name="get_invitations_error">Није успело добављање позивница на чекању</string>
<string name="hint_edited_message">(уређено)</string>
<string name="invisible">Невидљива</string>
<string name="languages_error_message">Није успело преузимање језика</string>
@ -114,8 +115,6 @@
<string name="nc_certificate_dialog_title">Провери сертификат</string>
<string name="nc_certificate_error">Ваша ССЛ постава је онемогућила повезивање</string>
<string name="nc_change_cert_auth">Измени сертификат за пријаву</string>
<string name="nc_circle">Круг</string>
<string name="nc_circles">Кругови</string>
<string name="nc_clear_edit_button">Обриши дугме за уређивање</string>
<string name="nc_clear_edit_message">Обриши Уреди поруку</string>
<string name="nc_clear_history">Обриши све поруке</string>
@ -341,10 +340,10 @@
<string name="nc_push_to_talk_desc">Са онемогућеним микрофоном, кликните &amp; држите да користите притисак за разговор</string>
<string name="nc_remind">Подсети ме касније</string>
<string name="nc_remote_audio_off">Удаљени аудио је искључен</string>
<string name="nc_remove_circle_and_members">Уклони круг и чланове</string>
<string name="nc_remove_from_favorites">Уклони из омиљених</string>
<string name="nc_remove_group_and_members">Уклони групу и чланове</string>
<string name="nc_remove_participant">Уклони учесника</string>
<string name="nc_remove_team_and_members">Уклони тим и чланове</string>
<string name="nc_rename">Преименуј разговор</string>
<string name="nc_rename_confirm">Преименуј</string>
<string name="nc_reply">Одговори</string>
@ -467,6 +466,8 @@
<string name="nc_sort_by">Разврстај</string>
<string name="nc_start_time">Време почетка</string>
<string name="nc_switch_account">Пребаци налог</string>
<string name="nc_team">Тим</string>
<string name="nc_teams">Тимови</string>
<string name="nc_upload_choose_local_files">Изаберите фајлове</string>
<string name="nc_upload_confirm_send_multiple">Да ли да пошаљем ове фајлове %1$s?</string>
<string name="nc_upload_confirm_send_single">Да ли да пошаљем овај фајл %1$s?</string>

View File

@ -62,8 +62,6 @@
<string name="nc_certificate_dialog_title">Kontrollera certifikatet</string>
<string name="nc_certificate_error">Dina SSL-inställningar förhindrade anslutning</string>
<string name="nc_change_cert_auth">Ändra autentiseringscertifikat</string>
<string name="nc_circle">Cirkel</string>
<string name="nc_circles">Cirklar</string>
<string name="nc_clear_history">Radera alla meddelanden</string>
<string name="nc_client_cert_change">Ändra klientcertifikat</string>
<string name="nc_client_cert_setup">Konfigurera klientcertifikat</string>
@ -287,6 +285,7 @@
<string name="nc_sort_by">Sortera efter</string>
<string name="nc_start_time">Starttid</string>
<string name="nc_switch_account">Växla konto</string>
<string name="nc_team">Team</string>
<string name="nc_upload_from_device">Ladda upp från enheten</string>
<string name="nc_upload_in_progess">Laddar upp</string>
<string name="nc_upload_picture_from_cam">Ta en bild</string>

View File

@ -32,6 +32,8 @@
<string name="dnd">Rahatsız etmeyin</string>
<string name="dontClear">Kaldırılmasın</string>
<string name="edit">Düzenle</string>
<string name="edit_error_24_hours_old_message">24 saat öncesine ait mesajları düzenleyemezsiniz.</string>
<string name="edit_message_icon_description">Düzenleme İleti Simgesi</string>
<string name="emoji_backspace">Geriye silme</string>
<string name="emoji_category_recent">Son kullanılan</string>
<string name="encrypted">Şifrelenmiş</string>
@ -41,6 +43,7 @@
<string name="file_list_loading">Yükleniyor…</string>
<string name="filename_progress">%1$s (%2$d)</string>
<string name="fourHours">4 saat</string>
<string name="get_invitations_error">Tamamlanamayan davetiyeleri al ve beklet</string>
<string name="hint_edited_message">(düzenlendi)</string>
<string name="invisible">Görünmez</string>
<string name="languages_error_message">Diller alınamadı</string>
@ -111,8 +114,8 @@
<string name="nc_certificate_dialog_title">Sertifikayı denetleyin</string>
<string name="nc_certificate_error">SSL kurulumunuz bağlantı kurulmasını engelliyor</string>
<string name="nc_change_cert_auth">Kimlik doğrulama sertifikasını değiştir</string>
<string name="nc_circle">Çevre</string>
<string name="nc_circles">Çevreler</string>
<string name="nc_clear_edit_button">Düzenleme Butonunu temizle</string>
<string name="nc_clear_edit_message">İletiyi düzenle</string>
<string name="nc_clear_history">Tüm iletileri sil</string>
<string name="nc_clear_history_success">Tüm iletiler silindi</string>
<string name="nc_clear_history_warning">Bu görüşmedeki tüm iletileri silmek istediğinize emin misiniz?</string>
@ -136,6 +139,7 @@
<string name="nc_conversation_menu_conversation_info">Görüşme bilgileri</string>
<string name="nc_conversation_menu_video_call">Görüntülü çağrı</string>
<string name="nc_conversation_menu_voice_call">Sesli çağrı</string>
<string name="nc_conversation_not_found">Görüşme bulunamadı</string>
<string name="nc_conversations_empty">Bir görüşmeye katılın ya da yeni bir görüşme başlatın</string>
<string name="nc_conversations_empty_details">Tanıdık ve çalışma arkadaşlarınıza selam verin!</string>
<string name="nc_copy_message">Kopyala</string>
@ -205,6 +209,7 @@
<string name="nc_dialog_save_to_storage_yes">Evet</string>
<string name="nc_display_name_not_fetched">Görüntülenecek ad alınamadı, vazgeçiliyor</string>
<string name="nc_display_name_not_stored">Görüntülenecek ad kaydedilemedi, vazgeçiliyor</string>
<string name="nc_edit_icon">Düzenle simgesi</string>
<string name="nc_edit_message">Düzenle</string>
<string name="nc_email">E-posta</string>
<string name="nc_expire_message_eight_hours">8 saat</string>
@ -328,7 +333,6 @@
<string name="nc_push_to_talk_desc">Mikrofon devre dışı iken, Bas-konuş üzerine tıklayıp basılı tutun</string>
<string name="nc_remind">Sonra hatırlat</string>
<string name="nc_remote_audio_off">Uzak ses kapalı</string>
<string name="nc_remove_circle_and_members">Çevreyi ve üyelerini sil</string>
<string name="nc_remove_from_favorites">Sık kullanılanlardan kaldır</string>
<string name="nc_remove_group_and_members">Grup ve üyelerini sil</string>
<string name="nc_remove_participant">Katılımcıyı çıkar</string>

View File

@ -93,8 +93,6 @@
<string name="nc_certificate_dialog_title">Перевірка сертифікату</string>
<string name="nc_certificate_error">Ваші налаштування SSL завадили з’єднанню</string>
<string name="nc_change_cert_auth">Змінити сертифікат авторизації</string>
<string name="nc_circle">Коло</string>
<string name="nc_circles">Кола</string>
<string name="nc_clear_history">Вилучити усі повідомлення</string>
<string name="nc_clear_history_success">Всі повідомлення видалено</string>
<string name="nc_clear_history_warning">Ви дійсно бажаєте вилучити усі повідомлення у цій розмові?</string>
@ -258,7 +256,6 @@
<string name="nc_push_to_talk_desc">Натисніть і утримуйте &amp; для використання PTT при вимкненому мікрофоні</string>
<string name="nc_remind">Нагадати пізніше</string>
<string name="nc_remote_audio_off">Віддалене аудіо відключено</string>
<string name="nc_remove_circle_and_members">Вилучити кола та учасників</string>
<string name="nc_remove_from_favorites">Вилучено з улюбленого</string>
<string name="nc_remove_group_and_members">Вилучити групи та учасників</string>
<string name="nc_remove_participant">Вилучити учасника</string>

View File

@ -105,8 +105,6 @@
<string name="nc_certificate_dialog_title">检查证书</string>
<string name="nc_certificate_error">您的 SSL 设置阻止了连接</string>
<string name="nc_change_cert_auth">更换验证证书</string>
<string name="nc_circle">圈子 </string>
<string name="nc_circles">圈子</string>
<string name="nc_clear_history">删除所有消息</string>
<string name="nc_clear_history_success">已删除所有消息</string>
<string name="nc_clear_history_warning">你真想删除对话中的所有信息吗?</string>
@ -289,7 +287,6 @@
<string name="nc_push_to_talk_desc">禁用麦克风的情况下,点击&amp;并按住使用“按键讲话”功能</string>
<string name="nc_remind">以后提醒我 </string>
<string name="nc_remote_audio_off">远程音频关闭</string>
<string name="nc_remove_circle_and_members">删除圈子和成员</string>
<string name="nc_remove_from_favorites">取消收藏</string>
<string name="nc_remove_group_and_members">移除群组和成员</string>
<string name="nc_remove_participant">移除参与者</string>

View File

@ -44,6 +44,7 @@
<string name="file_list_loading">加載中 …</string>
<string name="filename_progress">%1$s%2$d</string>
<string name="fourHours">4 小時</string>
<string name="get_invitations_error">無法擷取待定的邀請</string>
<string name="hint_edited_message">(已編輯)</string>
<string name="invisible">隱藏</string>
<string name="languages_error_message">無法擷取語言</string>
@ -114,8 +115,6 @@
<string name="nc_certificate_dialog_title">請檢查憑證</string>
<string name="nc_certificate_error">您的SSL設定阻擋這連線。</string>
<string name="nc_change_cert_auth">更改驗證證書</string>
<string name="nc_circle">社交圈子</string>
<string name="nc_circles">圈子</string>
<string name="nc_clear_edit_button">清除編輯按鈕</string>
<string name="nc_clear_edit_message">清除編輯訊息</string>
<string name="nc_clear_history">刪除所有訊息</string>
@ -341,10 +340,10 @@
<string name="nc_push_to_talk_desc">在停用米高風的情況下,單擊並按住即可使用一鍵通</string>
<string name="nc_remind">稍後提醒我</string>
<string name="nc_remote_audio_off">遠端語音關閉</string>
<string name="nc_remove_circle_and_members">移除社交圈子及組員</string>
<string name="nc_remove_from_favorites">取消我的最愛</string>
<string name="nc_remove_group_and_members">移除群組及組員</string>
<string name="nc_remove_participant">移除參與者</string>
<string name="nc_remove_team_and_members">移除團隊和成員</string>
<string name="nc_rename">重新命名對話</string>
<string name="nc_rename_confirm">重新命名</string>
<string name="nc_reply">回覆</string>
@ -467,6 +466,8 @@
<string name="nc_sort_by">排序方式</string>
<string name="nc_start_time">開始時間</string>
<string name="nc_switch_account">切換賬戶</string>
<string name="nc_team">團隊</string>
<string name="nc_teams">團隊</string>
<string name="nc_upload_choose_local_files">選擇檔案</string>
<string name="nc_upload_confirm_send_multiple">將這些檔案發送到 %1$s</string>
<string name="nc_upload_confirm_send_single">將此檔案發送到 %1$s</string>

View File

@ -22,7 +22,7 @@
<string name="clear_status_message_after">在……之後清空狀態訊息</string>
<string name="close">關閉</string>
<string name="continuous_voice_message_recording">鎖定錄音以連續錄製語音訊息</string>
<string name="conversation_is_read_only">對話唯讀</string>
<string name="conversation_is_read_only">對話唯讀</string>
<string name="conversations">對話</string>
<string name="create_conversation">建立對話</string>
<string name="create_issue">建立問題</string>
@ -44,6 +44,7 @@
<string name="file_list_loading">正在載入……</string>
<string name="filename_progress">%1$s (%2$d)</string>
<string name="fourHours">4小時</string>
<string name="get_invitations_error">擷取擱置中的邀請失敗</string>
<string name="hint_edited_message">(已編輯)</string>
<string name="invisible">隱藏</string>
<string name="languages_error_message">無法擷取語言</string>
@ -114,8 +115,6 @@
<string name="nc_certificate_dialog_title">請檢查憑證</string>
<string name="nc_certificate_error">您的SSL設定阻擋這連線。</string>
<string name="nc_change_cert_auth">變更驗證憑證</string>
<string name="nc_circle">圈子</string>
<string name="nc_circles">圈子</string>
<string name="nc_clear_edit_button">清除編輯按鈕</string>
<string name="nc_clear_edit_message">清除編輯訊息</string>
<string name="nc_clear_history">刪除所有訊息</string>
@ -341,10 +340,10 @@
<string name="nc_push_to_talk_desc">在停用麥克風的情況下,點擊並按住即可使用按住以說話</string>
<string name="nc_remind">稍後提醒我</string>
<string name="nc_remote_audio_off">遠端音訊關閉</string>
<string name="nc_remove_circle_and_members">移除小圈圈與成員</string>
<string name="nc_remove_from_favorites">取消我的最愛</string>
<string name="nc_remove_group_and_members">移除群組與成員</string>
<string name="nc_remove_participant">移除參與者</string>
<string name="nc_remove_team_and_members">移除團隊與成員</string>
<string name="nc_rename">重新命名對話</string>
<string name="nc_rename_confirm">重新命名</string>
<string name="nc_reply">回覆</string>
@ -467,6 +466,8 @@
<string name="nc_sort_by">排序</string>
<string name="nc_start_time">開始時間</string>
<string name="nc_switch_account">切換帳號</string>
<string name="nc_team">團隊</string>
<string name="nc_teams">團隊</string>
<string name="nc_upload_choose_local_files">選擇檔案</string>
<string name="nc_upload_confirm_send_multiple">傳送這些檔案給 %1$s</string>
<string name="nc_upload_confirm_send_single">傳送檔案給 %1$s</string>

View File

@ -791,7 +791,7 @@ How to translate with transifex:
<string name="nc_send_edit_message">Send Edit Message</string>
<string name="nc_clear_edit_message">Clear Edit Message</string>
<string name="edit_error_24_hours_old_message">Cannot Edit Messages older than 24 hours</string>
<string name="conversation_is_read_only">Conversation is read Only</string>
<string name="conversation_is_read_only">Conversation is read only</string>
<string name="nc_edit_message_text">Edit Message Text</string>
<string name="hint_edited_message">(edited)</string>
<string name="nc_conversation_not_found">Conversation not found</string>
@ -800,4 +800,5 @@ How to translate with transifex:
<string name="nc_edited_by">"Edited by "</string>
<string name="nc_clear_edit_button">clear Edit Button</string>
<string name="nc_edit_icon">Edit Icon</string>
<string name="get_invitations_error">Failed to fetch pending invitations</string>
</resources>

View File

@ -24,7 +24,7 @@
buildscript {
ext {
kotlinVersion = '1.9.22'
kotlinVersion = '1.9.23'
}
repositories {

View File

@ -111,6 +111,7 @@
<trusting group="androidx.core"/>
<trusting group="androidx.emoji2"/>
<trusting group="androidx.lifecycle"/>
<trusting group="androidx.media" name="media" version="1.7.0"/>
<trusting group="androidx.preference"/>
<trusting group="androidx.recyclerview"/>
<trusting group="androidx.room"/>
@ -138,7 +139,10 @@
<trusted-key id="A33A0B49A4C1AB590B0A4DDC1364C5E2DF3E99C5" group="org.reactivestreams" name="reactive-streams" version="1.0.3"/>
<trusted-key id="A413F67D71BEEC23ADD0CE0ACB43338E060CF9FA" group="com.google.code.findbugs" name="jsr305" version="2.0.2"/>
<trusted-key id="A5BD02B93E7A40482EB1D66A5F69AD087600B22C" group="org.ow2.asm"/>
<trusted-key id="A5F483CD733A4EBAEA378B2AE88979FB9B30ACF2" group="^androidx[.]compose($|([.].*))" regex="true"/>
<trusted-key id="A5F483CD733A4EBAEA378B2AE88979FB9B30ACF2">
<trusting group="androidx.camera"/>
<trusting group="^androidx[.]compose($|([.].*))" regex="true"/>
</trusted-key>
<trusted-key id="A6D6C97108B8585F91B158748671A8DF71296252" group="com.squareup" name="javapoet" version="1.10.0"/>
<trusted-key id="A7892505CF1A58076453E52D7999BEFBA1039E8B" group="net.bytebuddy"/>
<trusted-key id="AA417737BD805456DB3CBDDE6601E5C08DCCBB96" group="info.picocli" name="picocli" version="4.7.5"/>
@ -450,6 +454,11 @@
<sha256 value="a1fd8a9bd0a80c9f203065d01b76616d6675a3874c6b8bd1e87736dbfb318005" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="androidx.compose" name="compose-bom" version="2024.02.02">
<artifact name="compose-bom-2024.02.02.pom">
<sha256 value="9bfe92a8fa26491d64fc4c94621a8bdd0f61375fb815515236204503ec7cae6b" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.concurrent" name="concurrent-futures" version="1.0.0">
<artifact name="concurrent-futures-1.0.0.pom">
<sha256 value="4505b9a5e30a9418b59a9ad6702c3e4193aea6e691a3d03cf220c7640ad083e2" origin="Generated by Gradle" reason="Artifact is not signed"/>
@ -903,6 +912,14 @@
<sha256 value="24f572989e6cb86468a0c7ef74b8b5df11d6d9fcb8f7a0d1c24d8bf017d77eb2" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="androidx.media3" name="media3-common" version="1.3.0">
<artifact name="media3-common-1.3.0.aar">
<sha256 value="52997e0955075083a7121b86b61a199ccf582eb5d262061d9f4f397b4f6d8fe1" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
<artifact name="media3-common-1.3.0.module">
<sha256 value="c9fac2836d01caa29aa98be9c3d22f4ca7246d62f2c815f256a8f0100a5e3c02" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="androidx.media3" name="media3-container" version="1.2.1">
<artifact name="media3-container-1.2.1.aar">
<sha256 value="e67d8b50fdb174aa23238f79b3583a485caca9658524b506b5ead6e9c47d1b64" origin="Generated by Gradle" reason="Artifact is not signed"/>
@ -911,6 +928,14 @@
<sha256 value="9005eb3c4693e829d3393c849f90a27138bc0ef3ccfbb7ca5f1c6d74ddcd3771" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="androidx.media3" name="media3-container" version="1.3.0">
<artifact name="media3-container-1.3.0.aar">
<sha256 value="c6103c11666e03ceabeb6454b5bf0b9b51fdc93647f84dd02ee869a9c086269e" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
<artifact name="media3-container-1.3.0.module">
<sha256 value="def5bc92680c5da8b93c09c089fcb979c6c358df2a40e1923831160c9db3c4ce" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="androidx.media3" name="media3-database" version="1.2.1">
<artifact name="media3-database-1.2.1.aar">
<sha256 value="254d600819ea03ec4c21e83c3abfefd22c1d1864074e5caaa753188f6c451195" origin="Generated by Gradle" reason="Artifact is not signed"/>
@ -919,6 +944,14 @@
<sha256 value="d932fb4d0f211264a98f128240fa1e5eb55a4db233b333b89c0b65f6a1d61e18" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="androidx.media3" name="media3-database" version="1.3.0">
<artifact name="media3-database-1.3.0.aar">
<sha256 value="8386d2c445d194268d4af2d63abb31b028da5f742fc38c6365bc2c40ab641383" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
<artifact name="media3-database-1.3.0.module">
<sha256 value="a5b29d8786c606ad85979c214d3a4a851fea1592dfc068f840ab666c0ed1c044" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="androidx.media3" name="media3-datasource" version="1.2.1">
<artifact name="media3-datasource-1.2.1.aar">
<sha256 value="6da0f6885c853a1ff9e2874f8ecf684d7b8d18d45d8c18bc1b7c495f05a5b4d5" origin="Generated by Gradle" reason="Artifact is not signed"/>
@ -927,6 +960,14 @@
<sha256 value="1f4c6af52a332bc85f729f10e7a49e1fbdb884293bdfa9c0149d9b88e1640f78" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="androidx.media3" name="media3-datasource" version="1.3.0">
<artifact name="media3-datasource-1.3.0.aar">
<sha256 value="ad94437e3c3dc5b9fb4a5c2dc64aa912a91125519742ec2fc3ae9ebfacc62381" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
<artifact name="media3-datasource-1.3.0.module">
<sha256 value="b195d1c5a69d8fe08401b3286e521ab306691f59b37685f890eb7a37e9928e5d" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="androidx.media3" name="media3-decoder" version="1.2.1">
<artifact name="media3-decoder-1.2.1.aar">
<sha256 value="8e448a83aff47c7eadb4dbdbfce48086adcdf850bec833450ae69206f83e276d" origin="Generated by Gradle" reason="Artifact is not signed"/>
@ -935,6 +976,14 @@
<sha256 value="bf37a49e17e4589ceb3148c0c9314cf4b5d87903c78b316de3809cd21daf70bc" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="androidx.media3" name="media3-decoder" version="1.3.0">
<artifact name="media3-decoder-1.3.0.aar">
<sha256 value="c4799cd411061a654ad9c73fbc3d1a95945fce40f1bbceaf219e17b8a56fa1c1" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
<artifact name="media3-decoder-1.3.0.module">
<sha256 value="ff516f879984c1dafd1140f6ba6cf4a0bc29ce17c8f07d4a5020a7d8ae4b5076" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="androidx.media3" name="media3-exoplayer" version="1.2.1">
<artifact name="media3-exoplayer-1.2.1.aar">
<sha256 value="85204c2fbcb4ea68fd11b9c45da16b691898147a21e3e9d95796ad5b45c41f30" origin="Generated by Gradle" reason="Artifact is not signed"/>
@ -943,6 +992,14 @@
<sha256 value="197a1c69d1aeb7a71b8c60a79579a7e8db19c53c780d32b129747d5a54a7ad34" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="androidx.media3" name="media3-exoplayer" version="1.3.0">
<artifact name="media3-exoplayer-1.3.0.aar">
<sha256 value="68b96cea88fca07141db6d126e4c182b424be6a650571e4c52d8de1d01b4f3e8" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
<artifact name="media3-exoplayer-1.3.0.module">
<sha256 value="83720486de4c5bfd784d3ca30877dedba513d0dd4a097a69fabddd8cd00f10f9" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="androidx.media3" name="media3-extractor" version="1.2.1">
<artifact name="media3-extractor-1.2.1.aar">
<sha256 value="66955b7f5bcd09d34999723b77ccc727abcdb96fda914dc2e663c282718feeed" origin="Generated by Gradle" reason="Artifact is not signed"/>
@ -951,6 +1008,14 @@
<sha256 value="626d3549cb3d820e7788499d2d435bb93a74b9b92357acb494cf0912db1c9df5" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="androidx.media3" name="media3-extractor" version="1.3.0">
<artifact name="media3-extractor-1.3.0.aar">
<sha256 value="bc6e578c7e5c6d0cb88914f2d5c6210f2e1319716aba1a66737463b1bf937783" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
<artifact name="media3-extractor-1.3.0.module">
<sha256 value="e8b9401da3cbd0556aaf39c20417432438321dbe0020e947df73080b80dcc057" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="androidx.media3" name="media3-ui" version="1.2.1">
<artifact name="media3-ui-1.2.1.aar">
<sha256 value="d20c0cfb29b9e412e1941fc26d856318d1af912848e3deb972856950f661cadf" origin="Generated by Gradle" reason="Artifact is not signed"/>
@ -959,6 +1024,14 @@
<sha256 value="e2531707a9e6c2f64b2a2b182ba110de08e9c96201abffcf6432d4261c7ac016" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="androidx.media3" name="media3-ui" version="1.3.0">
<artifact name="media3-ui-1.3.0.aar">
<sha256 value="b1e10cc99da4db61ef29dd07e2c42bb0ee55e1b6e21ed577f94a545bd116c448" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
<artifact name="media3-ui-1.3.0.module">
<sha256 value="3c43fd4ebe4fcfcf94651db3213f96b8621ee2ba848a0f69c55091adae4ac237" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="androidx.multidex" name="multidex" version="2.0.1">
<artifact name="multidex-2.0.1.aar">
<sha256 value="42dd32ff9f97f85771b82a20003a8d70f68ab7b4ba328964312ce0732693db09" origin="Generated by Gradle" reason="Artifact is not signed"/>
@ -2407,100 +2480,28 @@
<sha256 value="8567749803d3d0a5c63fc5186992017f2dd3dff66ffd4140bd2b58ce0a176ef0" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="com.github.nextcloud.android-common" name="core" version="0.14.0">
<artifact name="core-0.14.0.aar">
<sha256 value="d370010eeae5928f525f31c09e33f9c78ed5e610af4b9f84b1ba68ce0727267b" origin="Generated by Gradle" reason="Artifact is not signed"/>
<component group="com.github.nextcloud.android-common" name="core" version="0.18.0">
<artifact name="core-0.18.0.aar">
<sha256 value="6df9110e5ab50846414102cc75d541fcb488d36a10b7c8b6c12908c344ad3a82" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
<artifact name="core-0.14.0.module">
<sha256 value="89c21ebe5a3aedd8c910bbe0f7c0c6ea6f30dc9dba58d68b39bee3759a7dc52f" origin="Generated by Gradle" reason="Artifact is not signed"/>
<artifact name="core-0.18.0.module">
<sha256 value="1e92c76d638cb275a3f9432641a0c5664b1eaabcc2da67bd809e787c3371fca5" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="com.github.nextcloud.android-common" name="core" version="0.15.0">
<artifact name="core-0.15.0.aar">
<sha256 value="d370010eeae5928f525f31c09e33f9c78ed5e610af4b9f84b1ba68ce0727267b" origin="Generated by Gradle" reason="Artifact is not signed"/>
<component group="com.github.nextcloud.android-common" name="material-color-utilities" version="0.18.0">
<artifact name="material-color-utilities-0.18.0.jar">
<sha256 value="e04a3f4a3caff6e4b2ce3f14f91f0485ab1f012af652102eba61ab6bcf3d8240" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
<artifact name="core-0.15.0.module">
<sha256 value="609090237e7d6c9745dcb883819e53bb4c9337b89740aa88fd1c56d73ecfa56b" origin="Generated by Gradle" reason="Artifact is not signed"/>
<artifact name="material-color-utilities-0.18.0.module">
<sha256 value="708823ec85484322da28afa177689bc2adadf0d88f766407328353e0c755e63b" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="com.github.nextcloud.android-common" name="core" version="0.16.0">
<artifact name="core-0.16.0.aar">
<sha256 value="d370010eeae5928f525f31c09e33f9c78ed5e610af4b9f84b1ba68ce0727267b" origin="Generated by Gradle" reason="Artifact is not signed"/>
<component group="com.github.nextcloud.android-common" name="ui" version="0.18.0">
<artifact name="ui-0.18.0.aar">
<sha256 value="7d900a930d7ad1f7de91177b8b661abef13deef032493cee99fe9842f85bcf16" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
<artifact name="core-0.16.0.module">
<sha256 value="2b9fe04f11de743212d44d35aeb084996637cf9dcc7a25bcf7b76b4af23e8479" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="com.github.nextcloud.android-common" name="core" version="0.17.0">
<artifact name="core-0.17.0.aar">
<sha256 value="65d89207886467066072a394c07cc8d58bb80f115704a427306c27c08c6e8344" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
<artifact name="core-0.17.0.module">
<sha256 value="c566a8a9d41b8e804c52539975cfc017d105e9fe2730e74f936ed948f55bc6dc" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="com.github.nextcloud.android-common" name="material-color-utilities" version="0.14.0">
<artifact name="material-color-utilities-0.14.0.jar">
<sha256 value="bfcd5205b056b948bc6ff9a556898188f4a4e92179c723906e10f1164b776eed" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
<artifact name="material-color-utilities-0.14.0.module">
<sha256 value="b12eadfbfe39b7fb6e62a13c9aca93b468e66a0cf0a2d841b849fe86ebc2d605" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="com.github.nextcloud.android-common" name="material-color-utilities" version="0.15.0">
<artifact name="material-color-utilities-0.15.0.jar">
<sha256 value="ced5cd660ebfa6aa7461a2157f67a8e76ae12830f759adec0b51631de4ac5434" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
<artifact name="material-color-utilities-0.15.0.module">
<sha256 value="edc221870d47808e96595f11d58dc6f45e50a9d8979658f024ae9a816778ecfb" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="com.github.nextcloud.android-common" name="material-color-utilities" version="0.16.0">
<artifact name="material-color-utilities-0.16.0.jar">
<sha256 value="f402b2986f1a524dcb90d004e066541f16a3cb792b281482f623bd973a0adcd0" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
<artifact name="material-color-utilities-0.16.0.module">
<sha256 value="9f78238c228e06485c0f9409b0825064a2bbd8f381db964b129b76587b03277c" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="com.github.nextcloud.android-common" name="material-color-utilities" version="0.17.0">
<artifact name="material-color-utilities-0.17.0.jar">
<sha256 value="188a63e6c1d0d7f4c999e2f4a7476a16f6da0ee8969cc5b489449baf3477619d" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
<artifact name="material-color-utilities-0.17.0.module">
<sha256 value="c6239f76c0d68b7126c4233e84fd3de9063b86e76084c602f296010192536a74" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="com.github.nextcloud.android-common" name="ui" version="0.14.0">
<artifact name="ui-0.14.0.aar">
<sha256 value="2ff1b8ca1ce4d4151ce967c4704a4def19a128d3f710491872e007217f3ac84f" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
<artifact name="ui-0.14.0.module">
<sha256 value="a600ef42a3ffe9a5900893f7f68052272ed8749ae2c5c44471f792f9d1d9d01f" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="com.github.nextcloud.android-common" name="ui" version="0.15.0">
<artifact name="ui-0.15.0.aar">
<sha256 value="7e520034d730a11f5089548a8f15fbdd5d5054f8f0465f711664235b3939b78d" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
<artifact name="ui-0.15.0.module">
<sha256 value="ac04b3a93aae2e9e8585d01447210fe0c5c85dec13e241b5e7c8956a3ed8a962" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="com.github.nextcloud.android-common" name="ui" version="0.16.0">
<artifact name="ui-0.16.0.aar">
<sha256 value="1c9ed8fed68e46c0aa9c63aefda3f18349ff590b1069fd286fa322bfc66c6307" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
<artifact name="ui-0.16.0.module">
<sha256 value="c588c69cd8540cb9bd57899df0b833eb9bb3787e10ac9ea3476b2005c98d9543" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="com.github.nextcloud.android-common" name="ui" version="0.17.0">
<artifact name="ui-0.17.0.aar">
<sha256 value="179a48b24d5e0b9f4bfdd567d2ec8a66f6816689d745aab9b528b022932fb9fe" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
<artifact name="ui-0.17.0.module">
<sha256 value="2ac34079e37123543bfc0fa78271424978b81baa5866d21884ec4084d6157573" origin="Generated by Gradle" reason="Artifact is not signed"/>
<artifact name="ui-0.18.0.module">
<sha256 value="abbece3fec4a3a1b706401b26e10d0290ac394d04d89343d32da682527579846" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="com.github.wooplr" name="Spotlight" version="1.3">
@ -2851,6 +2852,11 @@
<sha256 value="9193d07bf4f660108d7358e58b27d21b44e34e80d6734e98e21916376f270de2" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.guava" name="guava" version="32.1.3-android">
<artifact name="guava-32.1.3-jre.jar">
<sha256 value="6d4e2b5a118aab62e6e5e29d185a0224eed82c85c40ac3d33cf04a270c3b3744" origin="Generated by Gradle" reason="Artifact is not signed"/>
</artifact>
</component>
<component group="com.google.guava" name="guava-parent" version="26.0-android">
<artifact name="guava-parent-26.0-android.pom">
<sha256 value="f8698ab46ca996ce889c1afc8ca4f25eb8ac6b034dc898d4583742360016cc04" origin="Generated by Gradle"/>