Compare commits
3 commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6e0e30f637 | |||
| df332bafd8 | |||
| 7fbf1db963 |
22 changed files with 99 additions and 79 deletions
|
|
@ -6,14 +6,7 @@
|
|||
|
||||
[](https://drone.nextcloud.com/nextcloud/talk-android) [](https://www.codacy.com/gh/nextcloud/talk-android/dashboard) [](https://github.com/nextcloud/talk-android/releases/latest) [](https://api.reuse.software/info/github.com/nextcloud/talk-android)
|
||||
|
||||
[<img src="https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png"
|
||||
alt="Download from Google Play"
|
||||
height="80">](https://play.google.com/store/apps/details?id=com.nextcloud.talk2)
|
||||
[<img src="https://f-droid.org/badge/get-it-on.png"
|
||||
alt="Get it on F-Droid"
|
||||
height="80">](https://f-droid.org/packages/com.nextcloud.talk2/)
|
||||
|
||||
Please note that Notifications won't work with the F-Droid version due to missing Google Play Services.
|
||||
Please note that Notifications won't work with the gFree version due to missing Google Play Services.
|
||||
|
||||
|||||||
|
||||
|---|---|---|---|---|---|
|
||||
|
|
|
|||
|
|
@ -39,8 +39,8 @@ android {
|
|||
|
||||
// mayor.minor.hotfix.increment (for increment: 01-50=Alpha / 51-89=RC / 90-99=stable)
|
||||
// xx .xxx .xx .xx
|
||||
versionCode 220000090
|
||||
versionName "22.0.0"
|
||||
versionCode 220000290
|
||||
versionName "22.0.2"
|
||||
|
||||
flavorDimensions "default"
|
||||
renderscriptTargetApi = 19
|
||||
|
|
|
|||
|
|
@ -532,12 +532,12 @@ class CallActivity : CallBaseActivity() {
|
|||
)
|
||||
}
|
||||
|
||||
when (CapabilitiesUtil.getRecordingConsentType(conversationUser!!.capabilities!!.spreedCapability!!)) {
|
||||
when (CapabilitiesUtil.getRecordingConsentType(conversationUser.capabilities!!.spreedCapability!!)) {
|
||||
CapabilitiesUtil.RECORDING_CONSENT_NOT_REQUIRED -> initiateCall()
|
||||
CapabilitiesUtil.RECORDING_CONSENT_REQUIRED -> askForRecordingConsent()
|
||||
CapabilitiesUtil.RECORDING_CONSENT_DEPEND_ON_CONVERSATION -> {
|
||||
val getRoomApiVersion = ApiUtils.getConversationApiVersion(
|
||||
conversationUser!!,
|
||||
conversationUser,
|
||||
intArrayOf(ApiUtils.API_V4, 1)
|
||||
)
|
||||
ncApi!!.getRoom(credentials, ApiUtils.getUrlForRoom(getRoomApiVersion, baseUrl, roomToken))
|
||||
|
|
|
|||
|
|
@ -3255,7 +3255,8 @@ class ChatActivity :
|
|||
}
|
||||
|
||||
val searchItem = menu.findItem(R.id.conversation_search)
|
||||
searchItem.isVisible = CapabilitiesUtil.isUnifiedSearchAvailable(spreedCapabilities) &&
|
||||
searchItem.isVisible =
|
||||
hasSpreedFeatureCapability(spreedCapabilities, SpreedFeatures.UNIFIED_SEARCH) &&
|
||||
currentConversation!!.remoteServer.isNullOrEmpty() &&
|
||||
!isChatThread()
|
||||
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ class ContextChatViewModel @Inject constructor(private val chatNetworkDataSource
|
|||
token = token,
|
||||
messageId = messageId,
|
||||
limit = LIMIT,
|
||||
threadId = threadId?.toInt()
|
||||
threadId = threadId?.toIntOrNull()
|
||||
)
|
||||
|
||||
if (threadId.isNullOrEmpty()) {
|
||||
|
|
|
|||
|
|
@ -89,6 +89,8 @@ import com.nextcloud.talk.contacts.ContactsActivity
|
|||
import com.nextcloud.talk.contacts.ContactsUiState
|
||||
import com.nextcloud.talk.contacts.ContactsViewModel
|
||||
import com.nextcloud.talk.contacts.RoomUiState
|
||||
import com.nextcloud.talk.contextchat.ContextChatView
|
||||
import com.nextcloud.talk.contextchat.ContextChatViewModel
|
||||
import com.nextcloud.talk.conversationlist.viewmodels.ConversationsListViewModel
|
||||
import com.nextcloud.talk.data.network.NetworkMonitor
|
||||
import com.nextcloud.talk.data.user.model.User
|
||||
|
|
@ -113,8 +115,6 @@ import com.nextcloud.talk.threadsoverview.ThreadsOverviewActivity
|
|||
import com.nextcloud.talk.ui.BackgroundVoiceMessageCard
|
||||
import com.nextcloud.talk.ui.dialog.ChooseAccountDialogFragment
|
||||
import com.nextcloud.talk.ui.dialog.ChooseAccountShareToDialogFragment
|
||||
import com.nextcloud.talk.contextchat.ContextChatView
|
||||
import com.nextcloud.talk.contextchat.ContextChatViewModel
|
||||
import com.nextcloud.talk.ui.dialog.ConversationsListBottomDialog
|
||||
import com.nextcloud.talk.ui.dialog.FilterConversationFragment
|
||||
import com.nextcloud.talk.ui.dialog.FilterConversationFragment.Companion.ARCHIVE
|
||||
|
|
@ -125,7 +125,6 @@ import com.nextcloud.talk.utils.ApiUtils
|
|||
import com.nextcloud.talk.utils.BrandingUtils
|
||||
import com.nextcloud.talk.utils.CapabilitiesUtil.hasSpreedFeatureCapability
|
||||
import com.nextcloud.talk.utils.CapabilitiesUtil.isServerEOL
|
||||
import com.nextcloud.talk.utils.CapabilitiesUtil.isUnifiedSearchAvailable
|
||||
import com.nextcloud.talk.utils.ClosedInterfaceImpl
|
||||
import com.nextcloud.talk.utils.ConversationUtils
|
||||
import com.nextcloud.talk.utils.FileUtils
|
||||
|
|
@ -319,7 +318,7 @@ class ConversationsListActivity :
|
|||
return
|
||||
}
|
||||
currentUser?.capabilities?.spreedCapability?.let { spreedCapabilities ->
|
||||
if (isUnifiedSearchAvailable(spreedCapabilities)) {
|
||||
if (hasSpreedFeatureCapability(spreedCapabilities, SpreedFeatures.UNIFIED_SEARCH)) {
|
||||
searchHelper = MessageSearchHelper(unifiedSearchRepository)
|
||||
}
|
||||
}
|
||||
|
|
@ -1072,7 +1071,7 @@ class ConversationsListActivity :
|
|||
}
|
||||
|
||||
private fun fetchPendingInvitations() {
|
||||
if (hasSpreedFeatureCapability(currentUser!!.capabilities!!.spreedCapability!!, SpreedFeatures.FEDERATION_V1)) {
|
||||
if (hasSpreedFeatureCapability(currentUser?.capabilities?.spreedCapability, SpreedFeatures.FEDERATION_V1)) {
|
||||
binding.conversationListHintInclude.conversationListHintLayout.setOnClickListener {
|
||||
val intent = Intent(this, InvitationsActivity::class.java)
|
||||
startActivity(intent)
|
||||
|
|
@ -1203,7 +1202,7 @@ class ConversationsListActivity :
|
|||
searchableConversationItems.clear()
|
||||
searchableConversationItems.addAll(conversationItemsWithHeader)
|
||||
if (hasSpreedFeatureCapability(
|
||||
currentUser!!.capabilities!!.spreedCapability!!,
|
||||
currentUser?.capabilities?.spreedCapability,
|
||||
SpreedFeatures.LISTABLE_ROOMS
|
||||
)
|
||||
) {
|
||||
|
|
@ -1464,7 +1463,11 @@ class ConversationsListActivity :
|
|||
adapter?.filterItems()
|
||||
}
|
||||
|
||||
if (isUnifiedSearchAvailable(currentUser!!.capabilities!!.spreedCapability!!)) {
|
||||
if (hasSpreedFeatureCapability(
|
||||
currentUser?.capabilities?.spreedCapability,
|
||||
SpreedFeatures.UNIFIED_SEARCH
|
||||
)
|
||||
) {
|
||||
startMessageSearch(filter)
|
||||
}
|
||||
} else {
|
||||
|
|
@ -1584,7 +1587,7 @@ class ConversationsListActivity :
|
|||
selectedConversation = conversation
|
||||
if (selectedConversation != null) {
|
||||
val hasChatPermission = ParticipantPermissions(
|
||||
currentUser!!.capabilities!!.spreedCapability!!,
|
||||
currentUser?.capabilities?.spreedCapability,
|
||||
selectedConversation!!
|
||||
)
|
||||
.hasChatPermission()
|
||||
|
|
@ -1612,11 +1615,11 @@ class ConversationsListActivity :
|
|||
|
||||
private fun shouldShowLobby(conversation: ConversationModel): Boolean {
|
||||
val participantPermissions = ParticipantPermissions(
|
||||
currentUser!!.capabilities?.spreedCapability!!,
|
||||
currentUser?.capabilities?.spreedCapability,
|
||||
selectedConversation!!
|
||||
)
|
||||
return conversation.lobbyState == ConversationEnums.LobbyState.LOBBY_STATE_MODERATORS_ONLY &&
|
||||
!ConversationUtils.canModerate(conversation, currentUser!!.capabilities!!.spreedCapability!!) &&
|
||||
!ConversationUtils.canModerate(conversation, currentUser?.capabilities?.spreedCapability) &&
|
||||
!participantPermissions.canIgnoreLobby()
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -219,16 +219,6 @@ public class RestModule {
|
|||
|
||||
httpClient.addInterceptor(new HeadersInterceptor());
|
||||
|
||||
List<ConnectionSpec> specs = new ArrayList<>();
|
||||
if (BuildConfig.DEBUG) {
|
||||
specs.add(ConnectionSpec.COMPATIBLE_TLS);
|
||||
specs.add(ConnectionSpec.CLEARTEXT);
|
||||
httpClient.connectionSpecs(specs);
|
||||
} else {
|
||||
specs.add(ConnectionSpec.COMPATIBLE_TLS);
|
||||
httpClient.connectionSpecs(specs);
|
||||
}
|
||||
|
||||
if (BuildConfig.DEBUG && !context.getResources().getBoolean(R.bool.nc_is_debug)) {
|
||||
HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor();
|
||||
loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
|
||||
|
|
|
|||
|
|
@ -232,7 +232,7 @@ class NotificationWorker(context: Context, workerParams: WorkerParameters) : Wor
|
|||
bundle.putInt(BundleKeys.KEY_CALL_FLAG, conversation.callFlag)
|
||||
|
||||
val participantPermission = ParticipantPermissions(
|
||||
userBeingCalled!!.capabilities!!.spreedCapability!!,
|
||||
userBeingCalled?.capabilities?.spreedCapability,
|
||||
conversation
|
||||
)
|
||||
bundle.putBoolean(
|
||||
|
|
|
|||
|
|
@ -244,7 +244,7 @@ class ProfileActivity : BaseActivity() {
|
|||
binding.emptyList.root.visibility = View.GONE
|
||||
binding.userinfoList.visibility = View.VISIBLE
|
||||
if (CapabilitiesUtil.hasSpreedFeatureCapability(
|
||||
currentUser!!.capabilities!!.spreedCapability!!,
|
||||
currentUser?.capabilities?.spreedCapability,
|
||||
SpreedFeatures.TEMP_USER_AVATAR_API
|
||||
)
|
||||
) {
|
||||
|
|
|
|||
|
|
@ -945,7 +945,7 @@ class SettingsActivity :
|
|||
binding.settingsShowNotificationWarning.visibility = View.GONE
|
||||
}
|
||||
|
||||
if (CapabilitiesUtil.isReadStatusAvailable(currentUser!!.capabilities!!.spreedCapability!!)) {
|
||||
if (CapabilitiesUtil.isReadStatusAvailable(currentUser?.capabilities?.spreedCapability)) {
|
||||
binding.settingsReadPrivacySwitch.isChecked = !CapabilitiesUtil.isReadStatusPrivate(currentUser!!)
|
||||
} else {
|
||||
binding.settingsReadPrivacy.visibility = View.GONE
|
||||
|
|
|
|||
|
|
@ -100,13 +100,15 @@ object CapabilitiesUtil {
|
|||
//region SpreedCapabilities
|
||||
|
||||
@JvmStatic
|
||||
fun hasSpreedFeatureCapability(spreedCapabilities: SpreedCapability, spreedFeatures: SpreedFeatures): Boolean {
|
||||
if (spreedCapabilities.features != null) {
|
||||
return spreedCapabilities.features!!.contains(spreedFeatures.value)
|
||||
}
|
||||
fun hasSpreedFeatureCapability(spreedCapabilities: SpreedCapability?, spreedFeatures: SpreedFeatures): Boolean {
|
||||
if (spreedCapabilities == null) {
|
||||
Log.e(TAG, "spreedCapabilities were null when checking capability ${spreedFeatures.value}")
|
||||
return false
|
||||
}
|
||||
|
||||
return spreedCapabilities.features?.contains(spreedFeatures.value) == true
|
||||
}
|
||||
|
||||
fun isSharedItemsAvailable(spreedCapabilities: SpreedCapability): Boolean =
|
||||
hasSpreedFeatureCapability(spreedCapabilities, SpreedFeatures.RICH_OBJECT_LIST_MEDIA)
|
||||
|
||||
|
|
@ -136,12 +138,16 @@ object CapabilitiesUtil {
|
|||
return CONVERSATION_DESCRIPTION_LENGTH_FOR_OLD_SERVER
|
||||
}
|
||||
|
||||
fun isReadStatusAvailable(spreedCapabilities: SpreedCapability): Boolean {
|
||||
if (spreedCapabilities.config?.containsKey("chat") == true) {
|
||||
val map: Map<String, Any>? = spreedCapabilities.config!!["chat"]
|
||||
return map != null && map.containsKey("read-privacy")
|
||||
fun isReadStatusAvailable(spreedCapabilities: SpreedCapability?): Boolean {
|
||||
val chatConfig = spreedCapabilities?.config?.get("chat") as? Map<*, *>
|
||||
return if (chatConfig?.containsKey("read-privacy") == true) {
|
||||
true
|
||||
} else {
|
||||
if (spreedCapabilities == null) {
|
||||
Log.e(TAG, "spreedCapabilities were null when checking capability isReadStatusAvailable")
|
||||
}
|
||||
false
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
fun retentionOfEventRooms(spreedCapabilities: SpreedCapability): Int {
|
||||
|
|
@ -201,9 +207,6 @@ object CapabilitiesUtil {
|
|||
fun isConversationDescriptionEndpointAvailable(spreedCapabilities: SpreedCapability): Boolean =
|
||||
hasSpreedFeatureCapability(spreedCapabilities, SpreedFeatures.ROOM_DESCRIPTION)
|
||||
|
||||
fun isUnifiedSearchAvailable(spreedCapabilities: SpreedCapability): Boolean =
|
||||
hasSpreedFeatureCapability(spreedCapabilities, SpreedFeatures.UNIFIED_SEARCH)
|
||||
|
||||
fun isAbleToCall(spreedCapabilities: SpreedCapability): Boolean =
|
||||
if (
|
||||
spreedCapabilities.config?.containsKey("call") == true &&
|
||||
|
|
|
|||
|
|
@ -27,11 +27,11 @@ object ConversationUtils {
|
|||
Participant.ParticipantType.GUEST_MODERATOR == conversation.participantType ||
|
||||
Participant.ParticipantType.MODERATOR == conversation.participantType
|
||||
|
||||
fun isLockedOneToOne(conversation: ConversationModel, spreedCapabilities: SpreedCapability): Boolean =
|
||||
fun isLockedOneToOne(conversation: ConversationModel, spreedCapabilities: SpreedCapability?): Boolean =
|
||||
conversation.type == ConversationEnums.ConversationType.ROOM_TYPE_ONE_TO_ONE_CALL &&
|
||||
CapabilitiesUtil.hasSpreedFeatureCapability(spreedCapabilities, SpreedFeatures.LOCKED_ONE_TO_ONE)
|
||||
|
||||
fun canModerate(conversation: ConversationModel, spreedCapabilities: SpreedCapability): Boolean =
|
||||
fun canModerate(conversation: ConversationModel, spreedCapabilities: SpreedCapability?): Boolean =
|
||||
isParticipantOwnerOrModerator(conversation) &&
|
||||
!isLockedOneToOne(conversation, spreedCapabilities) &&
|
||||
conversation.type != ConversationEnums.ConversationType.FORMER_ONE_TO_ONE &&
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import com.nextcloud.talk.models.json.capabilities.SpreedCapability
|
|||
* see https://nextcloud-talk.readthedocs.io/en/latest/constants/#attendee-permissions
|
||||
*/
|
||||
class ParticipantPermissions(
|
||||
private val spreedCapabilities: SpreedCapability,
|
||||
private val spreedCapabilities: SpreedCapability?,
|
||||
private val conversation: ConversationModel
|
||||
) {
|
||||
val isDefault = (conversation.permissions and DEFAULT) == DEFAULT
|
||||
|
|
|
|||
|
|
@ -31,8 +31,8 @@
|
|||
<string name="camera_permission_granted">Дазвол на камеру атрыманы. Выберыце камеру яшчэ раз.</string>
|
||||
<string name="cancel_login">Скасаваць уваход</string>
|
||||
<string name="choose_avatar_from_cloud">Выбраць аватар з воблака</string>
|
||||
<string name="clear_status_message">Ачысціць паведамленне статусу</string>
|
||||
<string name="clear_status_message_after">Ачысціць паведамленне статусу пасля</string>
|
||||
<string name="clear_status_message">Ачысціць</string>
|
||||
<string name="clear_status_message_after">Ачысціць паведамленне статусу праз</string>
|
||||
<string name="close">Закрыць</string>
|
||||
<string name="close_icon">Значок Закрыць</string>
|
||||
<string name="connection_established">Злучэнне ўсталявана</string>
|
||||
|
|
@ -209,7 +209,7 @@
|
|||
<string name="nc_diagnose_battery_optimization_not_ignored">Аптымізацыя батарэі ўключана, што можа выклікаць праблемы. Вам варта адключыць аптымізацыю батарэі!</string>
|
||||
<string name="nc_diagnose_battery_optimization_title">Налады батарэі</string>
|
||||
<string name="nc_diagnose_device_name_title">Прылада</string>
|
||||
<string name="nc_diagnose_dialog_open_checklist">Адкрыць кантрольны спіс вырашэння праблем</string>
|
||||
<string name="nc_diagnose_dialog_open_checklist">Адкрыць спіс вырашэння праблем</string>
|
||||
<string name="nc_diagnose_dialog_open_diagnose">Адкрыць экран дыягностыкі</string>
|
||||
<string name="nc_diagnose_dialog_open_dontkillmyapp_website">Адкрыць dontkillmyapp.com</string>
|
||||
<string name="nc_diagnose_firebase_push_token_latest_fetch">Атрыманне апошняга push-токена firebase</string>
|
||||
|
|
@ -274,7 +274,7 @@
|
|||
<string name="nc_forward_to_three_dots">Пераслаць …</string>
|
||||
<string name="nc_gallery">Галерэя</string>
|
||||
<string name="nc_get_from_provider">У вас яшчэ няма сервера?\nНацісніце тут, каб атрымаць яго ў пастаўшчыка</string>
|
||||
<string name="nc_get_source_code">Атрымаць зыходны код</string>
|
||||
<string name="nc_get_source_code">Зыходны код</string>
|
||||
<string name="nc_group">Група</string>
|
||||
<string name="nc_guest">Госць</string>
|
||||
<string name="nc_guest_access">Гасцявы доступ</string>
|
||||
|
|
@ -357,7 +357,7 @@
|
|||
<string name="nc_notification_channel_uploads_description">Апавяшчаць пра ход выканання запампоўвання</string>
|
||||
<string name="nc_notification_settings">Налады апавяшчэнняў</string>
|
||||
<string name="nc_notification_warning">Апавяшчэнні наладжаны няправільна</string>
|
||||
<string name="nc_notifications_troubleshooting_dialog_text">Дазвол на апавяшчэнні і налады батарэі зададзены правільна, каб атрымліваць апавяшчэнні. Калі ў вас усё адно ўзнікаюць праблемы з атрыманнем апавяшчэнняў, праверце, ці ўключаны каналы апавяшчэнняў для выклікаў і паведамленняў. Дадатковую дапамогу можна знайсці на сайце DontKillMyApp.com або ў спісе пошуку і вырашэння праблем. Калі гэта не дапаможа, перайдзіце на экран дыягностыкі і адпраўце справаздачу пра памылку.</string>
|
||||
<string name="nc_notifications_troubleshooting_dialog_text">Дазвол на апавяшчэнні і налады батарэі зададзены правільна. Калі ў вас усё адно ўзнікаюць праблемы з атрыманнем апавяшчэнняў, праверце, ці ўключаны каналы апавяшчэнняў для выклікаў і паведамленняў. Дадатковую дапамогу можна знайсці на сайце DontKillMyApp.com або ў спісе пошуку і вырашэння праблем. Калі гэта не дапаможа, перайдзіце на экран дыягностыкі і адпраўце справаздачу пра памылку.</string>
|
||||
<string name="nc_notifications_troubleshooting_dialog_title">Вырашэнне праблем з апавяшчэннямі</string>
|
||||
<string name="nc_notify_me_always">Заўсёды апавяшчаць</string>
|
||||
<string name="nc_notify_me_mention">Апавяшчаць пры згадванні</string>
|
||||
|
|
@ -480,8 +480,8 @@
|
|||
<string name="nc_settings_remove">Выдаліць</string>
|
||||
<string name="nc_settings_remove_account">Выдаліць уліковы запіс</string>
|
||||
<string name="nc_settings_remove_confirmation">Пацвердзіце свой намер выдаліць бягучы ўліковы запіс.</string>
|
||||
<string name="nc_settings_screen_lock_desc">Блакіраваць %1$s з дапамогай блакіроўкі экрана Android або біяметрычнага метаду, які падтрымліваецца</string>
|
||||
<string name="nc_settings_screen_lock_timeout_title">Час чакання блакіроўкі экрана пры бяздзейнасці</string>
|
||||
<string name="nc_settings_screen_lock_desc">Блакіраваць %1$s з дапамогай блакіроўкі экрана Android або даступнага біяметрычнага метаду</string>
|
||||
<string name="nc_settings_screen_lock_timeout_title">Час чакання блакіроўкі пры бяздзейнасці</string>
|
||||
<string name="nc_settings_screen_lock_title">Блакіроўка экрана</string>
|
||||
<string name="nc_settings_screen_security_desc">Забараняе рабіць здымкі экрана ў спісе нядаўняга і ўнутры праграмы</string>
|
||||
<string name="nc_settings_screen_security_title">Бяспека экрана</string>
|
||||
|
|
@ -513,7 +513,7 @@
|
|||
<string name="nc_shared_items_empty">Няма абагуленых элементаў</string>
|
||||
<string name="nc_shared_items_location">Месцазнаходжанне</string>
|
||||
<string name="nc_shared_location">Абагуленае месцазнаходжанне</string>
|
||||
<string name="nc_show_notification_warning_description">Калі апавяшчэнні настроены няправільна, паказваць звычайнае папярэджанне</string>
|
||||
<string name="nc_show_notification_warning_description">Калі апавяшчэнні наладжаны няправільна, паказваць звычайнае папярэджанне</string>
|
||||
<string name="nc_show_notification_warning_title">Паказваць звычайнае папярэджанне аб апавяшчэннях</string>
|
||||
<string name="nc_sort_by">Сартаваць па</string>
|
||||
<string name="nc_start_group_chat">Пачаць супольны чат</string>
|
||||
|
|
@ -530,7 +530,7 @@
|
|||
<string name="nc_upload_failed">Не ўдалося запампаваць</string>
|
||||
<string name="nc_upload_failed_notification_text">Не ўдалося запампаваць %1$s</string>
|
||||
<string name="nc_upload_failed_notification_title">Няўдача</string>
|
||||
<string name="nc_upload_from_cloud">Абагульванне ад %1$s</string>
|
||||
<string name="nc_upload_from_cloud">Абагульванне з %1$s</string>
|
||||
<string name="nc_upload_from_device">Запампаваць з прылады</string>
|
||||
<string name="nc_upload_in_progess">Запампоўванне</string>
|
||||
<string name="nc_upload_notification_text">%1$s у %2$s - %3$s\%%</string>
|
||||
|
|
@ -553,7 +553,7 @@
|
|||
<string name="notification_off">Выкл.</string>
|
||||
<string name="notifications_default">Прадвызначаныя</string>
|
||||
<string name="notifications_default_description">Прытрымлівацца налад размовы</string>
|
||||
<string name="oneHour">1 гадзіна</string>
|
||||
<string name="oneHour">1 гадзіну</string>
|
||||
<string name="online">У сетцы</string>
|
||||
<string name="online_status">Статус у сетцы</string>
|
||||
<string name="openConversations">Адкрытыя размовы</string>
|
||||
|
|
@ -627,7 +627,7 @@
|
|||
<string name="set">Задаць</string>
|
||||
<string name="set_avatar_from_camera">Задаць аватар з камеры</string>
|
||||
<string name="set_status">Задаць статус</string>
|
||||
<string name="set_status_message">Задаць паведамленне статусу</string>
|
||||
<string name="set_status_message">Задаць</string>
|
||||
<string name="share">Абагуліць</string>
|
||||
<string name="share_link_to_conversation">Далучайцеся да размовы %1$s у %2$s</string>
|
||||
<string name="shared_items_audio">Аўдыя</string>
|
||||
|
|
@ -686,7 +686,7 @@
|
|||
<string name="unban">Разблакіраваць</string>
|
||||
<string name="unread">Непрачытанае</string>
|
||||
<string name="upload_new_avatar_from_device">Запампаваць новы аватар з прылады</string>
|
||||
<string name="user_absence">%1$s сёння не на працы і можа не адказаць</string>
|
||||
<string name="user_absence">%1$s не на працы і можа не адказаць</string>
|
||||
<string name="user_absence_for_one_day">%1$s сёння не на працы</string>
|
||||
<string name="user_absence_replacement">Замена:</string>
|
||||
<string name="user_avatar">Аватар карыстальніка</string>
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@
|
|||
<string name="lower_hand">Sænk hånden</string>
|
||||
<string name="marked_as_read">Marker samtalen %1$s som læst</string>
|
||||
<string name="marked_as_unread">Marker samtalen %1$s som ulæst</string>
|
||||
<string name="mentioned">Nævnt</string>
|
||||
<string name="mentioned">Omtalt</string>
|
||||
<string name="menu_item_sort_by_date_newest_first">Nyeste først</string>
|
||||
<string name="menu_item_sort_by_date_oldest_first">Ældste først</string>
|
||||
<string name="menu_item_sort_by_name_a_z">A - Å</string>
|
||||
|
|
|
|||
|
|
@ -156,6 +156,7 @@
|
|||
<string name="nc_edit_message">Επεξεργασία</string>
|
||||
<string name="nc_edit_message_text">Επεξεργασία μηνύματος</string>
|
||||
<string name="nc_expire_message_eight_hours">8 ώρες</string>
|
||||
<string name="nc_expire_message_four_weeks">4 εβδομάδες</string>
|
||||
<string name="nc_expire_message_off">Απενεργοποίηση </string>
|
||||
<string name="nc_expire_message_one_day">1 μέρα</string>
|
||||
<string name="nc_expire_message_one_hour">1 ώρα</string>
|
||||
|
|
@ -208,6 +209,7 @@
|
|||
<string name="nc_mark_as_read">Σήμανση ως αναγνωσμένο</string>
|
||||
<string name="nc_mark_as_unread">επισήμανση ως μή-αναγνωσμένο</string>
|
||||
<string name="nc_message_failed">Απέτυχε</string>
|
||||
<string name="nc_message_offline">Εκτός σύνδεσης</string>
|
||||
<string name="nc_message_quote_cancel_reply">Ακύρωση απάντησης</string>
|
||||
<string name="nc_message_read">Το μήνυμα διαβάστηκε</string>
|
||||
<string name="nc_message_sent">Το μήνυμα στάλθηκε</string>
|
||||
|
|
|
|||
|
|
@ -79,6 +79,7 @@
|
|||
<string name="message_search_begin_typing">Hasi idazten bilatzeko …</string>
|
||||
<string name="message_search_hint">Bilatu …</string>
|
||||
<string name="messages">Mezuak</string>
|
||||
<string name="mute_all_notifications">Isilarazi jakinarazpen guztiak</string>
|
||||
<string name="nc_Server_account_imported">Aukeratutako kontua inportatu da eta eskuragarri dago</string>
|
||||
<string name="nc_about">Honi buruz</string>
|
||||
<string name="nc_account_chooser_active_user">Erabiltzaile aktiboa</string>
|
||||
|
|
|
|||
|
|
@ -374,7 +374,7 @@
|
|||
<string name="nc_participants">Participantes</string>
|
||||
<string name="nc_participants_add">Engadir participantes</string>
|
||||
<string name="nc_password">Contrasinal</string>
|
||||
<string name="nc_permissions_ask">Establecer os permisos</string>
|
||||
<string name="nc_permissions_ask">Estabelecer os permisos</string>
|
||||
<string name="nc_permissions_denied">Algúns permisos foron denegados.</string>
|
||||
<string name="nc_permissions_rationale_dialog_title">Autorice os permisos</string>
|
||||
<string name="nc_permissions_settings">Abrir os axustes</string>
|
||||
|
|
@ -587,7 +587,7 @@
|
|||
<string name="qr_code_error">Non foi posíbel ler o código QR.</string>
|
||||
<string name="raise_hand">Erguer a man</string>
|
||||
<string name="reactions_tab_all">Todo</string>
|
||||
<string name="read_storage_no_permission">Non é posible compartir ficheiros desde o almacenamento sen permisos</string>
|
||||
<string name="read_storage_no_permission">Non é posíbel compartir ficheiros desde o almacenamento sen permisos</string>
|
||||
<string name="recent_threads">Fíos recentes</string>
|
||||
<string name="record_active_info">Estase a gravar a chamada</string>
|
||||
<string name="record_cancel_start">Cancelar o inicio da gravación</string>
|
||||
|
|
@ -607,7 +607,7 @@
|
|||
<string name="renamed_conversation">Cambióuselle o nome a conversa %1$s</string>
|
||||
<string name="resend_message">Volver enviar</string>
|
||||
<string name="reset_status">Restabelecer o estado</string>
|
||||
<string name="restrict_join_other_room_while_call">Non é posible unirse a outras salas mentres está nunha chamada</string>
|
||||
<string name="restrict_join_other_room_while_call">Non é posíbel unirse a outras salas mentres está nunha chamada</string>
|
||||
<string name="save">Gardar</string>
|
||||
<string name="scan_qr_code">Escanear o código QR</string>
|
||||
<string name="scope_federated_description">Sincronizar só con servidores de confianza</string>
|
||||
|
|
@ -654,7 +654,7 @@
|
|||
<string name="switch_to_main_room">Cambiar á sala principal</string>
|
||||
<string name="take_photo">Tirar unha foto</string>
|
||||
<string name="take_photo_error_deleting_picture">Produciuse un erro ao tirar a foto</string>
|
||||
<string name="take_photo_permission">Non é posible tirar unha foto sen permisos</string>
|
||||
<string name="take_photo_permission">Non é posíbel tirar unha foto sen permisos</string>
|
||||
<string name="take_photo_retake_photo">Volver tirar a foto</string>
|
||||
<string name="take_photo_send">Enviar</string>
|
||||
<string name="take_photo_switch_camera">Cambiar de cámara</string>
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
<string name="add_to_notes">Hozzáadás a jegyzetekhez</string>
|
||||
<string name="added_to_favorites">A(z) %1$s beszélgetés hozzáadva a kedvencekhez</string>
|
||||
<string name="appbar_search_in">Keresés itt: %s</string>
|
||||
<string name="appear_offline">Megjelenés nem kapcsolódottként</string>
|
||||
<string name="archive_conversation">Beszélgetés archiválása</string>
|
||||
<string name="archive_hint">Ha archivál egy beszélgetést, akkor alapértelmezetten el lesz rejtve. Válassza az „Archiválva” szűrőt az archivált beszélgetések megtekintéséhez. A közvetlen említéseket továbbra is meg fogja kapni.</string>
|
||||
<string name="archived">Archiválva</string>
|
||||
|
|
@ -48,6 +49,7 @@
|
|||
<string name="danger_zone">Veszélyes területet</string>
|
||||
<string name="deck_card_description">%1$s itt: %2$s</string>
|
||||
<string name="delete_avatar">Profilkép törlése</string>
|
||||
<string name="delete_voice_recording">Hangfelvétel törlése</string>
|
||||
<string name="deleted_conversation">%1$s beszélgetés törlése</string>
|
||||
<string name="dnd">Ne zavarjanak</string>
|
||||
<string name="dontClear">Ne törölje</string>
|
||||
|
|
@ -77,6 +79,10 @@
|
|||
<string name="left_conversation">Elhagyta a következő beszélgetést: %1$s</string>
|
||||
<string name="load_more_results">További találatok betöltése</string>
|
||||
<string name="local_time">Helyi idő: %1$s</string>
|
||||
<string name="location_permission_denied">Hely engedély szükséges</string>
|
||||
<string name="location_permission_denied_msg">Engedélyezze az alkalmazásbeállításokban</string>
|
||||
<string name="location_services_disabled">Helyszolgáltatások letiltva</string>
|
||||
<string name="location_services_disabled_msg">A funkció használatához engedélyezze a helyszolgáltatásokat (GPS)</string>
|
||||
<string name="lock_conversation">Beszélgetés zárolása</string>
|
||||
<string name="lock_symbol">Zár szimbólum</string>
|
||||
<string name="lower_hand">Kéz letétele</string>
|
||||
|
|
@ -90,6 +96,7 @@
|
|||
<string name="menu_item_sort_by_size_biggest_first">Legnagyobb elöl</string>
|
||||
<string name="menu_item_sort_by_size_smallest_first">Legkisebb elöl</string>
|
||||
<string name="message_copied">Üzenet másolva</string>
|
||||
<string name="message_delete_are_you_sure">Biztos, hogy törli ezt az üzenetet?</string>
|
||||
<string name="message_deleted_by_you">Törölte az üzenetet</string>
|
||||
<string name="message_last_edited_by">Szerkesztette: %1$s</string>
|
||||
<string name="message_poll_tap_to_open">Koppintson a szavazás megnyitásához</string>
|
||||
|
|
@ -97,6 +104,7 @@
|
|||
<string name="message_search_begin_typing">Kezdjen el gépelni a kereséshez…</string>
|
||||
<string name="message_search_hint">Keresés…</string>
|
||||
<string name="messages">Üzenetek</string>
|
||||
<string name="mute_all_notifications">Összes értesítés némítása</string>
|
||||
<string name="nc_Server_account_imported">A kiválasztott fiók importálva lett és elérhető</string>
|
||||
<string name="nc_about">Leírás</string>
|
||||
<string name="nc_account_chooser_active_user">Aktív felhasználó</string>
|
||||
|
|
@ -326,6 +334,7 @@
|
|||
<string name="nc_message_read">Üzenet elolvasva</string>
|
||||
<string name="nc_message_sending">Küldés</string>
|
||||
<string name="nc_message_sent">Üzenet elküldve</string>
|
||||
<string name="nc_microphone_enabled_audio_recording">A mikrofon engedélyezve van, és a hang felvételre kerül</string>
|
||||
<string name="nc_microphone_permission_hint">A hanghívás engedélyezéséhez meg kell adnia a „Mikrofon” engedélyt.</string>
|
||||
<string name="nc_missed_call">Nem fogadott hívás a következőtől: %s</string>
|
||||
<string name="nc_moderator">Moderátor</string>
|
||||
|
|
@ -411,6 +420,7 @@
|
|||
<string name="nc_search_clear">Keresés törlése</string>
|
||||
<string name="nc_select_an_account">Fiók kiválasztása</string>
|
||||
<string name="nc_send_edit_message">Üzenet frissítése</string>
|
||||
<string name="nc_send_voice_recording">Hangfelvétel küldése</string>
|
||||
<string name="nc_sensitive_conversation">Érzékeny beszélgetés</string>
|
||||
<string name="nc_sensitive_conversation_hint">Az üzenet-előnézet le lesz tiltva a beszélgetési listában és az értesítésekben</string>
|
||||
<string name="nc_sent_a_gif" formatted="true">%1$s GIF képet küldött.</string>
|
||||
|
|
@ -543,15 +553,18 @@
|
|||
<string name="no_conversations_archived">Nincs archivált beszélgetés</string>
|
||||
<string name="no_offline_messages_saved">Nincs mentett offline üzenet</string>
|
||||
<string name="no_phone_book_integration_due_to_permissions">A hiányzó engedélyek miatt nincs telefonszám-integráció</string>
|
||||
<string name="notification_all_messages">Minden üzenet</string>
|
||||
<string name="notification_all_messages">Összes üzenet</string>
|
||||
<string name="notification_mention_only">csak @-megemlítések</string>
|
||||
<string name="notification_off">Ki</string>
|
||||
<string name="notifications_default">Alapértelmezett</string>
|
||||
<string name="notifications_default_description">Beszélgetésbeállítások követése</string>
|
||||
<string name="oneHour">1 óra</string>
|
||||
<string name="online">Elérhető</string>
|
||||
<string name="online_status">Elérhető állapot</string>
|
||||
<string name="openConversations">Beszélgetések megnyitása</string>
|
||||
<string name="open_in_files_app">Megnyitás a Fájlok alkalmazásban</string>
|
||||
<string name="open_notes">Jegyzetek megnyitása</string>
|
||||
<string name="open_thread">Ugrás a szálhoz</string>
|
||||
<string name="play_pause_voice_message">Hangüzenet lejátszása/szüneteltetése</string>
|
||||
<string name="playback_speed_control">Lejátszási sebesség vezérlése</string>
|
||||
<string name="polls_add_option">Lehetőség hozzáadása</string>
|
||||
|
|
@ -571,9 +584,11 @@
|
|||
<string name="polls_submit_vote">Szavazat leadása</string>
|
||||
<string name="polls_voted_hidden_success">Szavazat leadva</string>
|
||||
<string name="previously_set">Előzőleg beállított</string>
|
||||
<string name="qr_code_error">A QR-kód nem olvasható el</string>
|
||||
<string name="raise_hand">Kéz felemelése</string>
|
||||
<string name="reactions_tab_all">Összes</string>
|
||||
<string name="read_storage_no_permission">A fájlok megosztása a tárhelyről engedély nélkül nem lehetséges</string>
|
||||
<string name="recent_threads">Legutóbbi szálak</string>
|
||||
<string name="record_active_info">A hívásról felvétel készül</string>
|
||||
<string name="record_cancel_start">Felvétel indításának megszakítása</string>
|
||||
<string name="record_failed_info">A felvétel sikertelen. Lépjen kapcsolatba a rendszergazdával.</string>
|
||||
|
|
@ -594,7 +609,7 @@
|
|||
<string name="reset_status">Állapot visszaállítása</string>
|
||||
<string name="restrict_join_other_room_while_call">Hívás közben nem lehet más szobákhoz csatlakozni</string>
|
||||
<string name="save">Mentés</string>
|
||||
<string name="scan_qr_code">Scan QR Code</string>
|
||||
<string name="scan_qr_code">QR-kód leolvasása</string>
|
||||
<string name="scope_federated_description">Szinkronizálás csak a megbízható kiszolgálókkal</string>
|
||||
<string name="scope_federated_title">Föderált</string>
|
||||
<string name="scope_local_description">Csak az ezen a példányon lévő személyek és a vendégek láthatják</string>
|
||||
|
|
@ -631,6 +646,7 @@
|
|||
<string name="show_banned_participants">Kitiltott résztvevők megjelenítése</string>
|
||||
<string name="starred">Kedvenc</string>
|
||||
<string name="startCallForbidden">Nincs jogosultsága hívást indítani</string>
|
||||
<string name="start_thread">Szál létrehozása</string>
|
||||
<string name="started_a_call">hívás indítás</string>
|
||||
<string name="status_message">Állapotüzenet</string>
|
||||
<string name="status_reverted">Üzenet visszaállítva</string>
|
||||
|
|
@ -649,6 +665,12 @@
|
|||
<string name="thisWeek">Ez a hét</string>
|
||||
<string name="this_is_a_test_message">Ez egy tesztüzenet</string>
|
||||
<string name="this_weekend">Ezen a hétvégén</string>
|
||||
<string name="thread_cancel">Szál létrehozásának megszakítása</string>
|
||||
<string name="thread_notifications">Szálértesítések</string>
|
||||
<string name="thread_reply">Válasz</string>
|
||||
<string name="thread_title">Szál címe</string>
|
||||
<string name="threads">Szálak</string>
|
||||
<string name="threads_list_empty">Nem találhatók szálak</string>
|
||||
<string name="today">Ma</string>
|
||||
<string name="tomorrow">Holnap</string>
|
||||
<string name="translate">Lefordítás</string>
|
||||
|
|
@ -694,6 +716,10 @@
|
|||
<item quantity="one">Ez a beszélgetés %1$d nap tétlenség után mindenkinél törölve lesz</item>
|
||||
<item quantity="other">Ez a beszélgetés %1$d nap tétlenség után mindenkinél törölve lesz</item>
|
||||
</plurals>
|
||||
<plurals name="thread_replies">
|
||||
<item quantity="one">%d válasz</item>
|
||||
<item quantity="other">%d válasz</item>
|
||||
</plurals>
|
||||
<plurals name="polls_amount_voters">
|
||||
<item quantity="one">%d szavazat</item>
|
||||
<item quantity="other">%d szavazat</item>
|
||||
|
|
|
|||
|
|
@ -565,6 +565,7 @@
|
|||
<string name="shared_items_voice">音声番号</string>
|
||||
<string name="starred">お気に入り</string>
|
||||
<string name="startCallForbidden">通話を開始することが許可されていません</string>
|
||||
<string name="start_thread">スレッドを作成する</string>
|
||||
<string name="started_a_call">会話を開始</string>
|
||||
<string name="status_message">ステータスメッセージ</string>
|
||||
<string name="switch_to_breakout_room">ブレイクアウトルームに切り替える</string>
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@
|
|||
<string name="location_permission_denied_msg">Por favor, ative-a nas configurações do aplicativo</string>
|
||||
<string name="location_services_disabled">Serviços de localização desativados</string>
|
||||
<string name="location_services_disabled_msg">Ative os serviços de localização (GPS) para usar este recurso</string>
|
||||
<string name="lock_conversation">Bloquear conversa</string>
|
||||
<string name="lock_conversation">Trancar conversa</string>
|
||||
<string name="lock_symbol">Símbolo de cadeado</string>
|
||||
<string name="lower_hand">Baixar mão</string>
|
||||
<string name="marked_as_read">Conversa %1$s marcada como lida</string>
|
||||
|
|
@ -118,7 +118,7 @@
|
|||
<string name="nc_add_to_favorites">Adicionar aos favoritos</string>
|
||||
<string name="nc_all_ok_operation">OK, tudo pronto!</string>
|
||||
<string name="nc_attendee_pin">PIN: %1$s</string>
|
||||
<string name="nc_biometric_unlock">Desbloquear %1$s</string>
|
||||
<string name="nc_biometric_unlock">Destrancar %1$s</string>
|
||||
<string name="nc_bluetooth_permission_hint">Para ativar os alto-falantes bluetooth, conceda a permissão \"Dispositivos próximos\".</string>
|
||||
<string name="nc_call_button_content_description_answer_video_call">Atender como chamada de vídeo</string>
|
||||
<string name="nc_call_button_content_description_answer_voice_only">Atender apenas como chamada de voz</string>
|
||||
|
|
@ -316,8 +316,8 @@
|
|||
<string name="nc_location_current_position_description">Sua localização atual</string>
|
||||
<string name="nc_location_permission_required">permissão de localização é necessária</string>
|
||||
<string name="nc_location_unknown">Posição desconhecida</string>
|
||||
<string name="nc_locked">Bloqueado</string>
|
||||
<string name="nc_locked_tap_to_unlock">Toque para desbloquear</string>
|
||||
<string name="nc_locked">Trancado</string>
|
||||
<string name="nc_locked_tap_to_unlock">Toque para destrancar</string>
|
||||
<string name="nc_manual">Não definido</string>
|
||||
<string name="nc_mark_as_read">Marcar como lido</string>
|
||||
<string name="nc_mark_as_unread">Marcar como não lido</string>
|
||||
|
|
@ -484,9 +484,9 @@
|
|||
<string name="nc_settings_remove">Excluir</string>
|
||||
<string name="nc_settings_remove_account">Excluir conta</string>
|
||||
<string name="nc_settings_remove_confirmation">Confirme se quer realmente excluir a conta atual.</string>
|
||||
<string name="nc_settings_screen_lock_desc">Bloquear %1$s com o bloqueio de tela do Android ou um método biométrico suportado</string>
|
||||
<string name="nc_settings_screen_lock_desc">Trancar %1$s com o bloqueio de tela do Android ou um método biométrico suportado</string>
|
||||
<string name="nc_settings_screen_lock_timeout_title">Tempo limite para bloqueio de tela</string>
|
||||
<string name="nc_settings_screen_lock_title">Bloquear tela</string>
|
||||
<string name="nc_settings_screen_lock_title">Bloqueio de tela</string>
|
||||
<string name="nc_settings_screen_security_desc">Impede capturas de tela na lista recente e dentro do aplicativo</string>
|
||||
<string name="nc_settings_screen_security_title">Segurança da tela</string>
|
||||
<string name="nc_settings_server_almost_eol">A versão do servidor é muito antiga e não será suportada na próxima versão!</string>
|
||||
|
|
|
|||
|
|
@ -285,7 +285,7 @@
|
|||
<string name="nc_notify_me_mention">当被提及时提醒</string>
|
||||
<string name="nc_notify_me_never">从不提醒</string>
|
||||
<string name="nc_offline">当前离线,请检查您的连接</string>
|
||||
<string name="nc_ok">OK</string>
|
||||
<string name="nc_ok">确定</string>
|
||||
<string name="nc_open_conversation_to_registered_users">向注册用户开放对话 </string>
|
||||
<string name="nc_open_to_guest_app_users">同样对访客用户开放</string>
|
||||
<string name="nc_owner">所有者</string>
|
||||
|
|
@ -579,7 +579,7 @@
|
|||
<string name="userinfo_error_text">检索个人用户信息失败</string>
|
||||
<string name="userinfo_no_info_headline">未设置个人信息</string>
|
||||
<string name="userinfo_no_info_text">在你的个人资料页上添加姓名、图片和联系方式。</string>
|
||||
<string name="whats_your_status">你什么状态?</string>
|
||||
<string name="whats_your_status">您的状态如何?</string>
|
||||
<plurals name="polls_amount_voters">
|
||||
<item quantity="other">%d 票</item>
|
||||
</plurals>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue