forked from Ivasoft/mattermost-mobile
Compare commits
4 Commits
v1.54.0
...
release-1.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4b42271960 | ||
|
|
1e4e59b537 | ||
|
|
fe29459906 | ||
|
|
8985791f40 |
@@ -286,6 +286,14 @@ jobs:
|
||||
name: Post results to Mattermost
|
||||
command: go run ../security-automation-config/dependency-check/post_results.go
|
||||
|
||||
build-android-beta:
|
||||
executor: android
|
||||
steps:
|
||||
- build-android
|
||||
- persist
|
||||
- save:
|
||||
filename: "*.apk"
|
||||
|
||||
build-android-release:
|
||||
executor: android
|
||||
steps:
|
||||
@@ -325,6 +333,14 @@ jobs:
|
||||
- save:
|
||||
filename: "*.apk"
|
||||
|
||||
build-ios-beta:
|
||||
executor: ios
|
||||
steps:
|
||||
- build-ios
|
||||
- persist
|
||||
- save:
|
||||
filename: "*.ipa"
|
||||
|
||||
build-ios-release:
|
||||
executor: ios
|
||||
steps:
|
||||
@@ -400,6 +416,16 @@ jobs:
|
||||
target: android
|
||||
file: "*.apk"
|
||||
|
||||
deploy-android-beta:
|
||||
executor:
|
||||
name: android
|
||||
resource_class: medium
|
||||
steps:
|
||||
- deploy-to-store:
|
||||
task: "Deploy to Google Play"
|
||||
target: android
|
||||
file: "*.apk"
|
||||
|
||||
deploy-ios-release:
|
||||
executor: ios
|
||||
steps:
|
||||
@@ -408,6 +434,14 @@ jobs:
|
||||
target: ios
|
||||
file: "*.ipa"
|
||||
|
||||
deploy-ios-beta:
|
||||
executor: ios
|
||||
steps:
|
||||
- deploy-to-store:
|
||||
task: "Deploy to TestFlight"
|
||||
target: ios
|
||||
file: "*.ipa"
|
||||
|
||||
github-release:
|
||||
executor:
|
||||
name: android
|
||||
@@ -451,6 +485,27 @@ workflows:
|
||||
- /^build-android-\d+$/
|
||||
- /^build-android-release-\d+$/
|
||||
|
||||
- build-android-beta:
|
||||
context: mattermost-mobile-android-beta
|
||||
requires:
|
||||
- test
|
||||
filters:
|
||||
branches:
|
||||
only:
|
||||
- /^build-\d+$/
|
||||
- /^build-android-\d+$/
|
||||
- /^build-android-beta-\d+$/
|
||||
- deploy-android-beta:
|
||||
context: mattermost-mobile-android-beta
|
||||
requires:
|
||||
- build-android-beta
|
||||
filters:
|
||||
branches:
|
||||
only:
|
||||
- /^build-\d+$/
|
||||
- /^build-android-\d+$/
|
||||
- /^build-android-beta-\d+$/
|
||||
|
||||
- build-ios-release:
|
||||
context: mattermost-mobile-ios-release
|
||||
requires:
|
||||
@@ -472,6 +527,27 @@ workflows:
|
||||
- /^build-ios-\d+$/
|
||||
- /^build-ios-release-\d+$/
|
||||
|
||||
- build-ios-beta:
|
||||
context: mattermost-mobile-ios-beta
|
||||
requires:
|
||||
- test
|
||||
filters:
|
||||
branches:
|
||||
only:
|
||||
- /^build-\d+$/
|
||||
- /^build-ios-\d+$/
|
||||
- /^build-ios-beta-\d+$/
|
||||
- deploy-ios-beta:
|
||||
context: mattermost-mobile-ios-beta
|
||||
requires:
|
||||
- build-ios-beta
|
||||
filters:
|
||||
branches:
|
||||
only:
|
||||
- /^build-\d+$/
|
||||
- /^build-ios-\d+$/
|
||||
- /^build-ios-beta-\d+$/
|
||||
|
||||
- build-android-pr:
|
||||
context: mattermost-mobile-android-pr
|
||||
requires:
|
||||
@@ -514,6 +590,7 @@ workflows:
|
||||
only:
|
||||
- /^build-\d+$/
|
||||
- /^build-ios-\d+$/
|
||||
- /^build-ios-beta-\d+$/
|
||||
- /^build-ios-sim-\d+$/
|
||||
|
||||
- github-release:
|
||||
|
||||
9
.gitignore
vendored
9
.gitignore
vendored
@@ -14,7 +14,7 @@ env.d.ts
|
||||
|
||||
# Xcode
|
||||
#
|
||||
ios/build/*
|
||||
build/
|
||||
*.pbxuser
|
||||
!default.pbxuser
|
||||
*.mode1v3
|
||||
@@ -43,8 +43,6 @@ ios/Pods
|
||||
local.properties
|
||||
*.iml
|
||||
android/app/bin
|
||||
android/app/build
|
||||
android/build
|
||||
.settings
|
||||
.project
|
||||
.classpath
|
||||
@@ -105,8 +103,3 @@ detox/detox_pixel_4_xl_api_30
|
||||
|
||||
#editor-settings
|
||||
.vscode
|
||||
.scannerwork
|
||||
|
||||
# Notice.txt generation
|
||||
!build/notice-file
|
||||
|
||||
|
||||
555
NOTICE.txt
555
NOTICE.txt
File diff suppressed because it is too large
Load Diff
@@ -131,8 +131,8 @@ android {
|
||||
applicationId "com.mattermost.rnbeta"
|
||||
minSdkVersion rootProject.ext.minSdkVersion
|
||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||
versionCode 410
|
||||
versionName "1.54.0"
|
||||
versionCode 404
|
||||
versionName "1.53.0"
|
||||
multiDexEnabled = true
|
||||
testBuildType System.getProperty('testBuildType', 'debug')
|
||||
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
|
||||
|
||||
@@ -38,7 +38,6 @@ export default class RemoveMarkdown extends React.PureComponent {
|
||||
channelLink: Renderer.forwardChildren,
|
||||
emoji: this.renderNull,
|
||||
hashtag: Renderer.forwardChildren,
|
||||
latexinline: Renderer.forwardChildren,
|
||||
|
||||
paragraph: Renderer.forwardChildren,
|
||||
heading: Renderer.forwardChildren,
|
||||
|
||||
@@ -59,13 +59,6 @@ const ClientCalls = (superclass: any) => class extends superclass {
|
||||
{method: 'post'},
|
||||
);
|
||||
};
|
||||
|
||||
genTURNCredentials = async () => {
|
||||
return this.doFetch(
|
||||
`${this.getCallsRoute()}/turn-credentials`,
|
||||
{method: 'get'},
|
||||
);
|
||||
};
|
||||
};
|
||||
|
||||
export default ClientCalls;
|
||||
|
||||
@@ -14,7 +14,6 @@ import {
|
||||
|
||||
import {Client4} from '@client/rest';
|
||||
import {WebsocketEvents} from '@constants';
|
||||
import {ICEServersConfigs} from '@mmproducts/calls/store/types/calls';
|
||||
|
||||
import Peer from './simple-peer';
|
||||
import WebSocketClient from './websocket';
|
||||
@@ -23,7 +22,7 @@ export let client: any = null;
|
||||
|
||||
const websocketConnectTimeout = 3000;
|
||||
|
||||
export async function newClient(channelID: string, iceServers: ICEServersConfigs, closeCb: () => void, setScreenShareURL: (url: string) => void) {
|
||||
export async function newClient(channelID: string, iceServers: string[], closeCb: () => void, setScreenShareURL: (url: string) => void) {
|
||||
let peer: Peer | null = null;
|
||||
let stream: MediaStream;
|
||||
let voiceTrackAdded = false;
|
||||
@@ -44,7 +43,7 @@ export async function newClient(channelID: string, iceServers: ICEServersConfigs
|
||||
console.log('Unable to get media device:', err); // eslint-disable-line no-console
|
||||
}
|
||||
|
||||
const ws = new WebSocketClient(Client4.getWebSocketUrl(), Client4.getToken());
|
||||
const ws = new WebSocketClient(Client4.getWebSocketUrl());
|
||||
|
||||
const disconnect = () => {
|
||||
if (!isClosed) {
|
||||
|
||||
@@ -21,8 +21,6 @@ import {
|
||||
} from 'react-native-webrtc';
|
||||
import stream from 'readable-stream';
|
||||
|
||||
import {ICEServersConfigs} from '@mmproducts/calls/store/types/calls';
|
||||
|
||||
const queueMicrotask = (callback: any) => {
|
||||
Promise.resolve().then(callback).catch((e) => setTimeout(() => {
|
||||
throw e;
|
||||
@@ -96,7 +94,7 @@ export default class Peer extends stream.Duplex {
|
||||
private pc: RTCPeerConnection|null = null;
|
||||
private onFinishBound?: () => void;
|
||||
|
||||
constructor(localStream: MediaStream | null, iceServers: ICEServersConfigs) {
|
||||
constructor(localStream: MediaStream | null, iceServers?: string[]) {
|
||||
super({allowHalfOpen: false});
|
||||
|
||||
this.streams = localStream ? [localStream] : [];
|
||||
@@ -106,10 +104,21 @@ export default class Peer extends stream.Duplex {
|
||||
};
|
||||
|
||||
const connConfig = {
|
||||
iceServers,
|
||||
iceServers: [
|
||||
{
|
||||
urls: [
|
||||
'stun:stun.l.google.com:19302',
|
||||
'stun:global.stun.twilio.com:3478',
|
||||
],
|
||||
},
|
||||
],
|
||||
sdpSemantics: 'unified-plan',
|
||||
};
|
||||
|
||||
if (iceServers && iceServers.length > 0) {
|
||||
connConfig.iceServers[0].urls = iceServers;
|
||||
}
|
||||
|
||||
try {
|
||||
this.pc = new RTCPeerConnection(connConfig);
|
||||
} catch (err) {
|
||||
|
||||
@@ -34,10 +34,7 @@ jest.mock('@client/rest', () => ({
|
||||
},
|
||||
]),
|
||||
getCallsConfig: jest.fn(() => ({
|
||||
ICEServersConfigs: [{
|
||||
urls: 'stun:stun1.example.com',
|
||||
},
|
||||
],
|
||||
ICEServers: ['mattermost.com'],
|
||||
AllowEnableCalls: true,
|
||||
DefaultEnabled: true,
|
||||
last_retrieved_at: 1234,
|
||||
|
||||
@@ -28,7 +28,6 @@ import CallsTypes from '@mmproducts/calls/store/action_types/calls';
|
||||
import {
|
||||
getCallInCurrentChannel,
|
||||
getConfig,
|
||||
getICEServersConfigs,
|
||||
getNumCurrentConnectedParticipants,
|
||||
} from '@mmproducts/calls/store/selectors/calls';
|
||||
import {Call, CallParticipant, DefaultServerConfig} from '@mmproducts/calls/store/types/calls';
|
||||
@@ -202,13 +201,7 @@ export function joinCall(channelId: string, intl: typeof intlShape): ActionFunc
|
||||
dispatch(setSpeakerphoneOn(false));
|
||||
|
||||
try {
|
||||
const state = getState();
|
||||
const iceConfigs = [...getICEServersConfigs(state)];
|
||||
if (getConfig(state).NeedsTURNCredentials) {
|
||||
iceConfigs.push(...await Client4.genTURNCredentials());
|
||||
}
|
||||
|
||||
ws = await newClient(channelId, iceConfigs, () => {
|
||||
ws = await newClient(channelId, getConfig(getState()).ICEServers, () => {
|
||||
dispatch(setSpeakerphoneOn(false));
|
||||
dispatch({type: CallsTypes.RECEIVED_MYSELF_LEFT_CALL});
|
||||
}, setScreenShareURL);
|
||||
|
||||
@@ -408,7 +408,7 @@ describe('Reducers.calls.config', () => {
|
||||
const testAction = {
|
||||
type: CallsTypes.RECEIVED_CONFIG,
|
||||
data: {
|
||||
ICEServers: ['stun:stun.example.com'],
|
||||
ICEServers: ['google.com'],
|
||||
AllowEnableCalls: true,
|
||||
DefaultEnabled: true,
|
||||
last_retrieved_at: 123,
|
||||
|
||||
@@ -197,47 +197,4 @@ describe('Selectors.Calls', () => {
|
||||
// On cloud, MaxCallParticipants missing, default should be used.
|
||||
assert.equal(Selectors.isLimitRestricted(newState, 'call1'), true);
|
||||
});
|
||||
|
||||
it('getICEServersConfigs', () => {
|
||||
assert.deepEqual(Selectors.getICEServersConfigs(testState), []);
|
||||
|
||||
// backwards compatible case, no ICEServersConfigs present.
|
||||
let newState = {
|
||||
...testState,
|
||||
entities: {
|
||||
...testState.entities,
|
||||
calls: {
|
||||
...testState.entities.calls,
|
||||
config: {
|
||||
...testState.entities.calls.config,
|
||||
ICEServers: ['stun:stun1.example.com'],
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
assert.deepEqual(Selectors.getICEServersConfigs(newState), [{urls: ['stun:stun1.example.com']}]);
|
||||
|
||||
// ICEServersConfigs defined case
|
||||
newState = {
|
||||
...testState,
|
||||
entities: {
|
||||
...testState.entities,
|
||||
calls: {
|
||||
...testState.entities.calls,
|
||||
config: {
|
||||
...testState.entities.calls.config,
|
||||
ICEServers: ['stun:stun1.example.com'],
|
||||
ICEServersConfigs: [
|
||||
{urls: 'stun:stun1.example.com'},
|
||||
{urls: 'turn:turn.example.com', username: 'username', credentail: 'password'},
|
||||
],
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
assert.deepEqual(Selectors.getICEServersConfigs(newState), [
|
||||
{urls: 'stun:stun1.example.com'},
|
||||
{urls: 'turn:turn.example.com', username: 'username', credentail: 'password'},
|
||||
]);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -9,7 +9,7 @@ import {getCurrentChannelId} from '@mm-redux/selectors/entities/common';
|
||||
import {getLicense, getServerVersion} from '@mm-redux/selectors/entities/general';
|
||||
import {GlobalState} from '@mm-redux/types/store';
|
||||
import {isMinimumServerVersion} from '@mm-redux/utils/helpers';
|
||||
import {Call, ICEServersConfigs} from '@mmproducts/calls/store/types/calls';
|
||||
import {Call} from '@mmproducts/calls/store/types/calls';
|
||||
|
||||
export function getConfig(state: GlobalState) {
|
||||
return state.entities.calls.config;
|
||||
@@ -114,25 +114,3 @@ export const isLimitRestricted: (state: GlobalState, channelId?: string) => bool
|
||||
return max !== 0 && numParticipants >= max;
|
||||
},
|
||||
);
|
||||
|
||||
export const getICEServersConfigs: (state: GlobalState) => ICEServersConfigs = createSelector(
|
||||
getConfig,
|
||||
(config) => {
|
||||
// if ICEServersConfigs is set, we can trust this to be complete and
|
||||
// coming from an updated API.
|
||||
if (config.ICEServersConfigs?.length > 0) {
|
||||
return config.ICEServersConfigs;
|
||||
}
|
||||
|
||||
// otherwise we revert to using the now deprecated field.
|
||||
if (config.ICEServers?.length > 0) {
|
||||
return [
|
||||
{
|
||||
urls: config.ICEServers,
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
return [];
|
||||
},
|
||||
);
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
import {ConfigurationParamWithUrls, ConfigurationParamWithUrl} from 'react-native-webrtc';
|
||||
|
||||
import {UserProfile} from '@mm-redux/types/users';
|
||||
import {Dictionary} from '@mm-redux/types/utilities';
|
||||
|
||||
@@ -62,24 +60,18 @@ export type VoiceEventData = {
|
||||
|
||||
export type ServerConfig = {
|
||||
ICEServers: string[];
|
||||
ICEServersConfigs: ICEServersConfigs;
|
||||
AllowEnableCalls: boolean;
|
||||
DefaultEnabled: boolean;
|
||||
MaxCallParticipants: number;
|
||||
NeedsTURNCredentials: boolean;
|
||||
sku_short_name: string;
|
||||
last_retrieved_at: number;
|
||||
}
|
||||
|
||||
export const DefaultServerConfig = {
|
||||
ICEServers: [],
|
||||
ICEServersConfigs: [],
|
||||
AllowEnableCalls: false,
|
||||
DefaultEnabled: false,
|
||||
MaxCallParticipants: 0,
|
||||
NeedsTURNCredentials: false,
|
||||
sku_short_name: '',
|
||||
last_retrieved_at: 0,
|
||||
} as ServerConfig;
|
||||
|
||||
export type ICEServersConfigs = Array<ConfigurationParamWithUrls | ConfigurationParamWithUrl>;
|
||||
|
||||
@@ -7,14 +7,13 @@ import {encode} from '@msgpack/msgpack/dist';
|
||||
|
||||
export default class WebSocketClient extends EventEmitter {
|
||||
private ws: WebSocket | null;
|
||||
private seqNo = 1;
|
||||
private seqNo = 0;
|
||||
private connID = '';
|
||||
private eventPrefix = `custom_${Calls.PluginId}`;
|
||||
|
||||
constructor(connURL: string, authToken: string) {
|
||||
constructor(connURL: string) {
|
||||
super();
|
||||
|
||||
this.ws = new WebSocket(connURL, [], {headers: {authorization: `Bearer ${authToken}`}});
|
||||
this.ws = new WebSocket(connURL);
|
||||
|
||||
this.ws.onerror = (err) => {
|
||||
this.emit('error', err);
|
||||
@@ -74,7 +73,6 @@ export default class WebSocketClient extends EventEmitter {
|
||||
seq: this.seqNo++,
|
||||
data,
|
||||
};
|
||||
|
||||
if (this.ws && this.ws.readyState === WebSocket.OPEN) {
|
||||
if (binary) {
|
||||
this.ws.send(encode(msg));
|
||||
@@ -89,7 +87,7 @@ export default class WebSocketClient extends EventEmitter {
|
||||
this.ws.close();
|
||||
this.ws = null;
|
||||
}
|
||||
this.seqNo = 1;
|
||||
this.seqNo = 0;
|
||||
this.connID = '';
|
||||
this.emit('close');
|
||||
}
|
||||
|
||||
@@ -11,54 +11,35 @@
|
||||
"about.teamEditiont1": "Enterprise Edition",
|
||||
"about.title": "Sobre {appTitle}",
|
||||
"announcment_banner.dont_show_again": "Não mostrar novamente",
|
||||
"api.channel.add_guest.added": "{addedUsername} adicionado ao canal como convidado por {username}.",
|
||||
"api.channel.add_member.added": "{addedUsername} foi adicionado ao canal por {username}.",
|
||||
"api.channel.guest_join_channel.post_and_forget": "{username} entrou no canal como convidado.",
|
||||
"apps.error": "Erro: {error}",
|
||||
"apps.error.command.field_missing": "Campos obrigatórios ausentes: `{fieldName}`.",
|
||||
"apps.error.command.same_channel": "Canal repetido para o campo `{fieldName}`: `{option}`.",
|
||||
"apps.error.command.same_option": "Opção repetida para o campo `{fieldName}`: `{option}`.",
|
||||
"apps.error.command.same_user": "Usuário repetido para o campo `{fieldName}`: `{option}`.",
|
||||
"apps.error.command.unknown_channel": "Canal desconhecido para o campo `{fieldName}`: `{option}`.",
|
||||
"apps.error.command.unknown_option": "Opção desconhecida para o campo `{fieldName}`: `{option}`.",
|
||||
"apps.error.command.unknown_user": "Usuário desconhecido para o campo `{fieldName}`: `{opção}`.",
|
||||
"apps.error.form.no_form": "`form` não está definido.",
|
||||
"apps.error.form.no_lookup": "`procurar` não está definido.",
|
||||
"apps.error.form.no_source": "`fonte` não está definida.",
|
||||
"apps.error.form.no_submit": "`enviar ` não está definido",
|
||||
"apps.error.form.refresh": "Ocorreu um erro ao buscar os campos selecionados. Entre em contato com o desenvolvedor do aplicativo. Detalhes: {details}",
|
||||
"apps.error.form.refresh_no_refresh": "Atualização chamada no campo sem atualização.",
|
||||
"apps.error.form.submit.pretext": "Ocorreu um erro ao enviar o modal. Entre em contato com o desenvolvedor do aplicativo. Detalhes: {details}",
|
||||
"apps.error.lookup.error_preparing_request": "Erro ao preparar solicitação de pesquisa: {errorMessage}",
|
||||
"apps.error.malformed_binding": "Esta ligação não está formada corretamente. Entre em contato com o desenvolvedor do aplicativo.",
|
||||
"apps.error.parser": "Erro de análise: {error}",
|
||||
"apps.error.parser.empty_value": "valores vazios não são permitidos",
|
||||
"apps.error.parser.execute_non_leaf": "Você deve selecionar um subcomando.",
|
||||
"apps.error.parser.missing_binding": "Ligações de comando ausentes.",
|
||||
"apps.error.parser.missing_field_value": "Falta o valor do campo.",
|
||||
"apps.error.parser.missing_list_end": "Token de fechamento de lista esperado.",
|
||||
"apps.error.parser.missing_quote": "Aspas duplas correspondentes são esperadas antes do final da entrada.",
|
||||
"apps.error.parser.missing_source": "O formulário não tem envio nem fonte.",
|
||||
"apps.error.parser.missing_submit": "Nenhuma chamada de envio em forma ou vinculação.",
|
||||
"apps.error.parser.missing_tick": "Crase correspondente é esperada antes do final de entrada.",
|
||||
"apps.error.parser.multiple_equal": "Vários sinais `=` não são permitidos.",
|
||||
"apps.error.parser.no_argument_pos_x": "Incapaz de identificar o argumento.",
|
||||
"apps.error.parser.no_bindings": "Sem ligações de comando.",
|
||||
"apps.error.parser.no_form": "Nenhum formulário encontrado.",
|
||||
"apps.error.parser.no_match": "`{command}`: Nenhum comando correspondente encontrado neste espaço de trabalho.",
|
||||
"apps.error.parser.no_slash_start": "O comando deve começar com `/`.",
|
||||
"apps.error.parser.unexpected_character": "Caracter inesperado.",
|
||||
"apps.error.parser.unexpected_comma": "Vírgula inesperada.",
|
||||
"apps.error.parser.unexpected_error": "Erro inesperado.",
|
||||
"apps.error.parser.unexpected_flag": "O comando não aceita o sinalizador `{flagName}`.",
|
||||
"apps.error.parser.unexpected_squared_bracket": "Abertura de lista inesperada.",
|
||||
"apps.error.parser.unexpected_state": "Inacessível: Estado inesperado em matchBinding: `{state}`.",
|
||||
"apps.error.parser.unexpected_whitespace": "Inacessível: espaço em branco inesperado.",
|
||||
"apps.error.responses.form.no_form": "O tipo de resposta é `form`, mas nenhum formulário foi incluído na resposta.",
|
||||
"apps.error.responses.navigate.no_url": "O tipo de resposta é `navigate`, mas nenhuma url foi incluído na resposta.",
|
||||
"apps.error.responses.unexpected_error": "Recebeu um erro inesperado.",
|
||||
"apps.error.responses.unexpected_type": "O tipo de resposta do aplicativo não era esperado. Tipo de resposta: {type}.",
|
||||
"apps.error.responses.unknown_field_error": "Recebeu um erro para um campo desconhecido. Nome do campo: `{field}`. Erro: `{error}`.",
|
||||
"apps.error.responses.unknown_type": "O tipo de resposta do aplicativo não é compatível. Tipo de resposta: {type}.",
|
||||
"apps.error.unknown": "Ocorreu um erro desconhecido.",
|
||||
"apps.suggestion.dynamic.error": "Erro de seleção dinâmica",
|
||||
@@ -67,9 +48,6 @@
|
||||
"apps.suggestion.no_static": "Sem opções correspondentes.",
|
||||
"apps.suggestion.no_suggestion": "Sem sugestões correspondentes.",
|
||||
"archivedChannelMessage": "Você está vendo um **canal arquivado**. Novas mensagens não podem ser publicadas.",
|
||||
"camera_type.photo.option": "Capturar foto",
|
||||
"camera_type.title": "Escolha uma ação",
|
||||
"camera_type.video.option": "Record Video",
|
||||
"center_panel.archived.closeChannel": "Fechar Canal",
|
||||
"channel.channelHasGuests": "Este canal tem convidados",
|
||||
"channel.hasGuests": "Este grupo de mensagem tem convidados",
|
||||
@@ -89,7 +67,6 @@
|
||||
"channel_loader.someone": "Alguém",
|
||||
"channel_members_modal.remove": "Remover",
|
||||
"channel_modal.cancel": "Cancelar",
|
||||
"channel_modal.channelType": "Modelo",
|
||||
"channel_modal.descriptionHelp": "Descreva como este canal deve ser utilizado.",
|
||||
"channel_modal.header": "Cabeçalho",
|
||||
"channel_modal.headerEx": "Ex.: \"[Título do Link](http://example.com)\"",
|
||||
@@ -99,8 +76,6 @@
|
||||
"channel_modal.optional": "(opcional)",
|
||||
"channel_modal.purpose": "Propósito",
|
||||
"channel_modal.purposeEx": "Ex.: \"Um canal para arquivar bugs e melhorias\"",
|
||||
"channel_modal.type.private": "Canal privado",
|
||||
"channel_modal.type.public": "Canal público",
|
||||
"channel_notifications.ignoreChannelMentions.settings": "Ignorar @channel, @here, @all",
|
||||
"channel_notifications.muteChannel.settings": "Silenciar o canal",
|
||||
"channel_notifications.preference.all_activity": "Para todas as atividades",
|
||||
@@ -145,76 +120,21 @@
|
||||
"create_comment.addComment": "Adicionar um comentário...",
|
||||
"create_post.deactivated": "Você está vendo um canal arquivado com um usuário inativo.",
|
||||
"create_post.write": "Escrever para {channelDisplayName}",
|
||||
"custom_status.expiry.at": "no",
|
||||
"custom_status.expiry.until": "Até",
|
||||
"custom_status.expiry_dropdown.custom": "Personalizado",
|
||||
"custom_status.expiry_dropdown.date_and_time": "Data e hora",
|
||||
"custom_status.expiry_dropdown.dont_clear": "Não limpe",
|
||||
"custom_status.expiry_dropdown.four_hours": "4 horas",
|
||||
"custom_status.expiry_dropdown.one_hour": "1 hora",
|
||||
"custom_status.expiry_dropdown.thirty_minutes": "30 minutos",
|
||||
"custom_status.expiry_dropdown.this_week": "Essa semana",
|
||||
"custom_status.expiry_dropdown.today": "Hoje",
|
||||
"custom_status.expiry_time.today": "Hoje",
|
||||
"custom_status.expiry_time.tomorrow": "Amanhã",
|
||||
"custom_status.failure_message": "Falha ao atualizar o status. Tente novamente",
|
||||
"custom_status.set_status": "Definir um status",
|
||||
"custom_status.suggestions.in_a_meeting": "Em uma reunião",
|
||||
"custom_status.suggestions.on_a_vacation": "De férias",
|
||||
"custom_status.suggestions.out_for_lunch": "Almoçando",
|
||||
"custom_status.suggestions.out_sick": "Doente",
|
||||
"custom_status.suggestions.recent_title": "RECENTE",
|
||||
"custom_status.suggestions.title": "SUGESTÕES",
|
||||
"custom_status.suggestions.working_from_home": "Trabalhando em casa",
|
||||
"date_separator.today": "Hoje",
|
||||
"date_separator.yesterday": "Ontem",
|
||||
"edit_post.editPost": "Editar o post...",
|
||||
"edit_post.save": "Salvar",
|
||||
"emoji_picker.activities": "Atividades",
|
||||
"emoji_picker.animals-nature": "Animais e Natureza",
|
||||
"emoji_picker.custom": "Personalizado",
|
||||
"emoji_picker.flags": "Bandeiras",
|
||||
"emoji_picker.food-drink": "Comida e bebida",
|
||||
"emoji_picker.objects": "Objetos",
|
||||
"emoji_picker.people-body": "Pessoas e Corpo",
|
||||
"emoji_picker.recent": "Recente",
|
||||
"emoji_picker.searchResults": "Resultados da Pesquisa",
|
||||
"emoji_picker.smileys-emotion": "Sorrisos e Emoções",
|
||||
"emoji_picker.symbols": "Símbolos",
|
||||
"emoji_picker.travel-places": "Viagens e lugares",
|
||||
"emoji_skin.dark_skin_tone": "tom de pele escuro",
|
||||
"emoji_skin.default": "tom de pele padrão",
|
||||
"emoji_skin.light_skin_tone": "tom de pele claro",
|
||||
"emoji_skin.medium_dark_skin_tone": "pele morena escura",
|
||||
"emoji_skin.medium_light_skin_tone": "tom de pele claro médio",
|
||||
"emoji_skin.medium_skin_tone": "tom de pele médio",
|
||||
"file_upload.fileAbove": "Arquivos devem ter menos de {max}",
|
||||
"friendly_date.daysAgo": "{count} {count, plural, one {day} other {days}} atrás",
|
||||
"friendly_date.hoursAgo": "{count} {count, plural, one {hour} other {hours}} atrás",
|
||||
"friendly_date.minsAgo": "{count} {count, plural, one {min} other {mins}} atrás",
|
||||
"friendly_date.monthsAgo": "{count} {count, plural, one {month} other {months}} atrás",
|
||||
"friendly_date.now": "Agora",
|
||||
"friendly_date.yearsAgo": "{count} {count, plural, one {year} other {years}} atrás",
|
||||
"friendly_date.yesterday": "Ontem",
|
||||
"gallery.download_file": "Baixar arquivo",
|
||||
"gallery.footer.channel_name": "Compartilhado em {channelName}",
|
||||
"gallery.open_file": "Abrir arquivo",
|
||||
"gallery.unsuppored": "A visualização não é compatível com este tipo de arquivo",
|
||||
"get_post_link_modal.title": "Copiar Link",
|
||||
"global_threads.allThreads": "Todos os seus tópicos",
|
||||
"global_threads.emptyThreads.message": "Todos os tópicos nos quais você é mencionado ou dos quais participou serão exibidos aqui junto com todos os tópicos que você seguiu.",
|
||||
"global_threads.emptyThreads.title": "Nenhum tópico seguido ainda",
|
||||
"global_threads.emptyUnreads.message": "Parece que você está todo preso.",
|
||||
"global_threads.emptyUnreads.title": "Nenhum tópico não lido",
|
||||
"global_threads.markAllRead.cancel": "Cancelar",
|
||||
"global_threads.markAllRead.markRead": "Marcar como lido",
|
||||
"global_threads.markAllRead.message": "Isso limpará qualquer status não lido de todos os seus tópicos mostrados aqui",
|
||||
"global_threads.markAllRead.title": "Tem certeza de que deseja marcar todos os tópicos como lidos?",
|
||||
"global_threads.options.mark_as_read": "Marcar como Lido",
|
||||
"global_threads.options.open_in_channel": "Abrir no canal",
|
||||
"global_threads.options.title": "AÇÕES DE TÓPICO",
|
||||
"global_threads.options.unfollow": "Deixar de seguir o tópico",
|
||||
"global_threads.unreads": "Não lidos",
|
||||
"integrations.add": "Adicionar",
|
||||
"intro_messages.anyMember": " Qualquer membro pode participar e ler este canal.",
|
||||
"intro_messages.beginning": "Início do {name}",
|
||||
@@ -288,7 +208,7 @@
|
||||
"mobile.camera_photo_permission_denied_title": "{applicationName} gostaria de acessar sua camera",
|
||||
"mobile.camera_video_permission_denied_description": "Faça vídeos e envie-os para a sua instância do Mattermost ou salve-os no seu dispositivo. Abra Configurações para conceder ao Mattermost acesso de leitura e gravação à sua câmera.",
|
||||
"mobile.camera_video_permission_denied_title": "{applicationName} gostaria de acessar sua camera",
|
||||
"mobile.channel_drawer.search": "Encontrar canal",
|
||||
"mobile.channel_drawer.search": "Ir para...",
|
||||
"mobile.channel_info.alertMessageConvertChannel": "Quando você converte {displayName} em um canal privado, o histórico e os membros são preservados. Os arquivos compartilhados publicamente permanecem acessíveis a qualquer pessoa com o link. O ingresso a um canal privado é apenas por convite.\n\nA mudança é permanente e não pode ser desfeita.\n\nTem certeza de que deseja converter {displayName} em um canal privado?",
|
||||
"mobile.channel_info.alertMessageDeleteChannel": "Você tem certeza que quer arquivar o {term} {name}?",
|
||||
"mobile.channel_info.alertMessageLeaveChannel": "Você tem certeza que quer deixar o {term} {name}?",
|
||||
@@ -332,9 +252,6 @@
|
||||
"mobile.create_channel.public": "Novo Canal Público",
|
||||
"mobile.create_post.read_only": "Este canal é de apenas leitura",
|
||||
"mobile.custom_list.no_results": "Nenhum Resultado",
|
||||
"mobile.custom_status.choose_emoji": "Escolha um emoji",
|
||||
"mobile.custom_status.clear_after": "Limpar depois",
|
||||
"mobile.custom_status.modal_confirm": "Feito",
|
||||
"mobile.display_settings.sidebar": "Barra lateral",
|
||||
"mobile.display_settings.theme": "Tema",
|
||||
"mobile.document_preview.failed_description": "Um erro aconteceu durante a abertura do documento. Por favor verifique que você tem o visualizador para {fileType} instalado e tente novamente.\n",
|
||||
@@ -371,7 +288,7 @@
|
||||
"mobile.file_upload.disabled": "Os uploads de arquivos do celular estão desabilitados. Entre em contato com o Administrador do Sistema para obter mais detalhes.",
|
||||
"mobile.file_upload.disabled2": "Os envios de arquivos do celular estão desabilitados.",
|
||||
"mobile.file_upload.library": "Biblioteca de Fotos",
|
||||
"mobile.file_upload.max_warning": "Uploads limitados a {count} máximo de arquivos.",
|
||||
"mobile.file_upload.max_warning": "Upload limitado ao máximo de 5 arquivos.",
|
||||
"mobile.file_upload.unsupportedMimeType": "Somente imagens em BMP, JPG ou PNG podem ser usadas como imagem do perfil.",
|
||||
"mobile.file_upload.video": "Galeria de Videos",
|
||||
"mobile.files_paste.error_description": "Ocorreu um erro enquanto colava o arquivo. Por favor tente novamente.",
|
||||
@@ -379,11 +296,9 @@
|
||||
"mobile.files_paste.error_title": "Colar falhou",
|
||||
"mobile.flagged_posts.empty_description": "As mensagens salvas são visíveis apenas para você. Marque mensagens para acompanhamento ou salve algo para mais tarde mantendo uma mensagem pressionada e escolhendo Salvar no menu.",
|
||||
"mobile.flagged_posts.empty_title": "Nenhuma mensagem salva",
|
||||
"mobile.forms.select.done": "Feito",
|
||||
"mobile.gallery.title": "{index} de {total}",
|
||||
"mobile.general.error.title": "Erro",
|
||||
"mobile.help.title": "Ajuda",
|
||||
"mobile.interactive_dialog.defaultSubmit": "Enviar",
|
||||
"mobile.intro_messages.DM": "Este é o início do seu histórico de mensagens diretas com {teammate}. Mensagens diretas e arquivos compartilhados aqui não são mostrados para pessoas de fora desta área.",
|
||||
"mobile.intro_messages.default_message": "Este é o primeiro canal da equipe veja quando eles se registrarem - use para postar atualizações que todos devem saber.",
|
||||
"mobile.intro_messages.default_welcome": "Bem-vindo ao {name}!",
|
||||
@@ -415,8 +330,6 @@
|
||||
"mobile.message_length.message": "Sua mensagem atual é muito grande. Contagem corrente de caracters: {max}/{count}",
|
||||
"mobile.message_length.message_split_left": "Mensagem excede o limite de caracteres",
|
||||
"mobile.message_length.title": "Tamanho da Mensagem",
|
||||
"mobile.microphone_permission_denied_description": "Para participar desta chamada, abra Configurações para conceder ao Mattermost acesso ao seu microfone.",
|
||||
"mobile.microphone_permission_denied_title": "{applicationName} gostaria de acessar seu microfone",
|
||||
"mobile.more_dms.add_more": "Você pode adicionar mais {remaining, number} usuários",
|
||||
"mobile.more_dms.cannot_add_more": "Você não pode adicionar mais usuários",
|
||||
"mobile.more_dms.one_more": "Você não pode adicionar mais 1 usuário",
|
||||
@@ -436,7 +349,6 @@
|
||||
"mobile.notification_settings.email": "E-mail",
|
||||
"mobile.notification_settings.email.send": "ENVIAR NOTIFICAÇÕES POR EMAIL",
|
||||
"mobile.notification_settings.email_title": "Notificações por Email",
|
||||
"mobile.notification_settings.mentions": "Menções",
|
||||
"mobile.notification_settings.mentions.channelWide": "Menções de todo canal",
|
||||
"mobile.notification_settings.mentions.reply_title": "Enviar notificações de resposta para",
|
||||
"mobile.notification_settings.mentions.sensitiveName": "Seu primeiro nome em maiúsculas e minúsculas",
|
||||
@@ -447,10 +359,6 @@
|
||||
"mobile.notification_settings.modal_cancel": "CANCELAR",
|
||||
"mobile.notification_settings.modal_save": "SALVAR",
|
||||
"mobile.notification_settings.ooo_auto_responder": "Respostas Automáticas para Mensagens Diretas",
|
||||
"mobile.notification_settings.push_threads.description": "Notificar-me sobre todas as respostas aos tópicos que estou seguindo",
|
||||
"mobile.notification_settings.push_threads.info": "Quando ativado, qualquer resposta a um tópico que você está seguindo enviará uma notificação por push móvel.",
|
||||
"mobile.notification_settings.push_threads.title": "NOTIFICAÇÕES DE RESPOSTA DE TÓPICOS",
|
||||
"mobile.notification_settings.push_threads.title_android": "Notificações de resposta do tópico",
|
||||
"mobile.notification_settings.save_failed_description": "As configurações de notificação não conseguiram salvar devido a um problema de conexão. Por favor tente novamente.",
|
||||
"mobile.notification_settings.save_failed_title": "Problema de conexão",
|
||||
"mobile.notification_settings_mentions.keywords": "Palavras-chave",
|
||||
@@ -483,8 +391,6 @@
|
||||
"mobile.open_dm.error": "Não foi possível entrar nas mensagens diretas com {displayName}. Por favor verifique a sua conexão e tente novamente.",
|
||||
"mobile.open_gm.error": "Não foi possível abrir uma mensagem em grupo com esses usuários. Por favor verifique sua conexão e tente novamente.",
|
||||
"mobile.open_unknown_channel.error": "Não é possível entrar no canal. Por favor, limpe o cache e tente novamente.",
|
||||
"mobile.participants.header": "PARTICIPANTES DO TÓPICO",
|
||||
"mobile.participants.you": "(você)",
|
||||
"mobile.permission_denied_dismiss": "Não Permitir",
|
||||
"mobile.permission_denied_retry": "Configurações",
|
||||
"mobile.pinned_posts.empty_description": "Fixe mensagens importantes que sejam visíveis para todo o canal. Mantenha uma mensagem pressionada e escolha Fixar no canal para salvá-la aqui.",
|
||||
@@ -512,8 +418,6 @@
|
||||
"mobile.post_textbox.entire_channel.message": "Usando @all ou @channel você está enviando notificações para {totalMembers, number} {totalMembers, plural, one {pessoa} other {pessoas}}. Você tem certeza que quer fazer isso?",
|
||||
"mobile.post_textbox.entire_channel.message.with_timezones": "Usando @all ou @channel você está enviando notificações para {totalMembers, number} {totalMembers, plural, one {pessoa} other {pessoas}} em {timezones, number} {timezones, plural, one {fuso horário} other {fusos horários}}. Você tem certeza que quer fazer isso?",
|
||||
"mobile.post_textbox.entire_channel.title": "Confirmar o envio de notificações para o canal todo",
|
||||
"mobile.post_textbox.entire_channel_here.message": "Ao usar @here você está prestes a enviar notificações para {totalMembers, number} {totalMembers, plural, one {person} other {people}}. Você tem certeza de que quer fazer isso?",
|
||||
"mobile.post_textbox.entire_channel_here.message.with_timezones": "Ao usar @here, você está prestes a enviar notificações para {totalMembers, number} {totalMembers, plural, one {person} other {people}} em {timezones, number} {timezones, plural, one {timezone} other {timezones} }. Você tem certeza de que quer fazer isso?",
|
||||
"mobile.post_textbox.groups.title": "Confirmar envio de notificações para grupos",
|
||||
"mobile.post_textbox.multi_group.message.with_timezones": "Ao usar {mentions} e {finalMention}, você está prestes a enviar notificações para pelo menos {totalMembers} pessoas em {timezones, number} {timezones, plural, one {fuso horário} other {fusos horários}}. Você tem certeza de que quer fazer isso?",
|
||||
"mobile.post_textbox.multi_group.message.without_timezones": "Ao usar {mentions} e {finalMention}, você está prestes a enviar notificações para pelo menos {totalMembers} pessoas. Você tem certeza de que quer fazer isso?",
|
||||
@@ -544,7 +448,7 @@
|
||||
"mobile.reset_status.alert_cancel": "Cancelar",
|
||||
"mobile.reset_status.alert_ok": "Ok",
|
||||
"mobile.reset_status.title_ooo": "Desativar \"Fora Do Escritório\"?",
|
||||
"mobile.retry_message": "Falha ao buscar mensagens. Toque aqui para tentar novamente.",
|
||||
"mobile.retry_message": "Atualização de mensagens falharam. Puxe para tentar novamente.",
|
||||
"mobile.routes.channelInfo": "Informações",
|
||||
"mobile.routes.channelInfo.createdBy": "Criado por {creator} em ",
|
||||
"mobile.routes.channelInfo.delete_channel": "Arquivar Canal",
|
||||
@@ -556,7 +460,6 @@
|
||||
"mobile.routes.channel_members.action_message_confirm": "Você tem certeza que quer remover o membro selecionado do canal?",
|
||||
"mobile.routes.code": "{language} Código",
|
||||
"mobile.routes.code.noLanguage": "Código",
|
||||
"mobile.routes.custom_status": "Definir um status",
|
||||
"mobile.routes.edit_profile": "Editar Perfil",
|
||||
"mobile.routes.login": "Login",
|
||||
"mobile.routes.loginOptions": "Selecionador de Login",
|
||||
@@ -567,13 +470,10 @@
|
||||
"mobile.routes.sso": "Single Sign-On",
|
||||
"mobile.routes.table": "Tabela",
|
||||
"mobile.routes.thread": "Tópico {channelName}",
|
||||
"mobile.routes.thread_crt": "Tópico",
|
||||
"mobile.routes.thread_crt.in": "em {channelName}",
|
||||
"mobile.routes.thread_dm": "Tópico Mensagem Direta",
|
||||
"mobile.routes.user_profile": "Perfil",
|
||||
"mobile.routes.user_profile.edit": "Editar",
|
||||
"mobile.routes.user_profile.local_time": "HORA LOCAL",
|
||||
"mobile.routes.user_profile.organization": "ORGANIZAÇÃO",
|
||||
"mobile.routes.user_profile.send_message": "Enviar Mensagem",
|
||||
"mobile.search.after_modifier_description": "encontrar publicações após uma data específica",
|
||||
"mobile.search.before_modifier_description": "encontrar publicações antes de uma data específica",
|
||||
@@ -643,7 +543,6 @@
|
||||
"mobile.user_list.deactivated": "Desativado",
|
||||
"mobile.user_removed.message": "Você foi removido do canal.",
|
||||
"mobile.user_removed.title": "Removido de {channelName}",
|
||||
"mobile.video_playback.download": "Baixar video",
|
||||
"mobile.video_playback.failed_description": "Ocorreu um erro ao tentar reproduzir o video.\n",
|
||||
"mobile.video_playback.failed_title": "Erro ao realizar o playback do video",
|
||||
"mobile.youtube_playback_error.description": "Ocorreu um erro ao tentar executar um vídeo do YouTube.\nDetalhes: {details}",
|
||||
@@ -657,10 +556,8 @@
|
||||
"more_channels.dropdownTitle": "Exibir",
|
||||
"more_channels.noMore": "Não há mais canais para participar",
|
||||
"more_channels.publicChannels": "Canais Públicos",
|
||||
"more_channels.sharedChannels": "Canais compartilhados",
|
||||
"more_channels.showArchivedChannels": "Exibir: Canais Arquivados",
|
||||
"more_channels.showPublicChannels": "Exibir: Canais Públicos",
|
||||
"more_channels.showSharedChannels": "Mostrar: canais compartilhados",
|
||||
"more_channels.title": "Mais Canais",
|
||||
"msg_typing.areTyping": "{users} e {last} estão digitando...",
|
||||
"msg_typing.isTyping": "{user} está digitando...",
|
||||
@@ -709,7 +606,6 @@
|
||||
"sidebar.channels": "CANAIS PÚBLICOS",
|
||||
"sidebar.direct": "MENSAGENS DIRETAS",
|
||||
"sidebar.favorite": "CANAIS FAVORITOS",
|
||||
"sidebar.favorites": "Favoritos",
|
||||
"sidebar.pg": "CANAIS PRIVADOS",
|
||||
"sidebar.types.recent": "ATIVIDADE RECENTE",
|
||||
"sidebar.unreads": "Mais não lidos",
|
||||
@@ -732,22 +628,12 @@
|
||||
"suggestion.mention.morechannels": "Outros Canais",
|
||||
"suggestion.mention.nonmembers": "Não no Canal",
|
||||
"suggestion.mention.special": "Menções Especiais",
|
||||
"suggestion.mention.you": " (você)",
|
||||
"suggestion.mention.you": "(você)",
|
||||
"suggestion.search.direct": "Mensagens Diretas",
|
||||
"suggestion.search.private": "Canais Privados",
|
||||
"suggestion.search.public": "Canais Públicos",
|
||||
"terms_of_service.agreeButton": "Eu Concordo",
|
||||
"terms_of_service.api_error": "Não é possível concluir o pedido. Se esse problema persistir, entre em contato com o Administrador do Sistema.",
|
||||
"threads": "Tópicos",
|
||||
"threads.deleted": "Mensagem original excluída",
|
||||
"threads.follow": "Seguir",
|
||||
"threads.followMessage": "Seguir mensagem",
|
||||
"threads.followThread": "Seguir Tópico",
|
||||
"threads.following": "Seguindo",
|
||||
"threads.newReplies": "{count} novo {count, plural, one {reply} other {replies}}",
|
||||
"threads.replies": "{count} {count, plural, one {reply} other {replies}}",
|
||||
"threads.unfollowMessage": "Deixar de seguir a mensagem",
|
||||
"threads.unfollowThread": "Deixar de seguir o tópico",
|
||||
"user.settings.display.clockDisplay": "Exibição do Relógio",
|
||||
"user.settings.display.custom_theme": "Tema Personalizado",
|
||||
"user.settings.display.militaryClock": "Relógio de 24 horas (exemplo: 16:00)",
|
||||
@@ -766,7 +652,6 @@
|
||||
"user.settings.general.lastName": "Último Nome",
|
||||
"user.settings.general.nickname": "Apelido",
|
||||
"user.settings.general.position": "Cargo",
|
||||
"user.settings.general.status": "Status",
|
||||
"user.settings.general.username": "Usuário",
|
||||
"user.settings.modal.display": "Exibição",
|
||||
"user.settings.modal.notifications": "Notificações",
|
||||
@@ -778,10 +663,6 @@
|
||||
"user.settings.notifications.email.never": "Nunca",
|
||||
"user.settings.notifications.email.send": "Enviar notificações por email",
|
||||
"user.settings.notifications.emailInfo": "As notificações por email são enviadas para menções e mensagens diretas quando você estiver offline ou ausente por mais de 5 minutos.",
|
||||
"user.settings.notifications.email_threads.description": "Notifique-me sobre todas as respostas aos tópicos que estou seguindo.",
|
||||
"user.settings.notifications.email_threads.info": "Quando ativado, qualquer resposta a uma conversa que você está seguindo enviará uma notificação por e-mail.",
|
||||
"user.settings.notifications.email_threads.title": "NOTIFICAÇÕES DE RESPOSTA DE TÓPICOS",
|
||||
"user.settings.notifications.email_threads.title_android": "Notificações de resposta do tópico",
|
||||
"user.settings.notifications.never": "Nunca",
|
||||
"user.settings.notifications.onlyMentions": "Somente para menções e mensagens diretas",
|
||||
"user.settings.push_notification.away": "Ausente ou desconectado",
|
||||
|
||||
@@ -343,7 +343,7 @@
|
||||
"mobile.downloader.disabled_title": "Nedladdning inaktiverat",
|
||||
"mobile.downloader.failed_description": "Ett fel inträffade när filen skulle laddas ner. Kontrollera din anslutning till internet och försök igen.\n",
|
||||
"mobile.downloader.failed_title": "Nedladdning misslyckades",
|
||||
"mobile.drawer.teamsTitle": "Team",
|
||||
"mobile.drawer.teamsTitle": "Grupper",
|
||||
"mobile.edit_channel": "Spara",
|
||||
"mobile.edit_post.title": "Editerar meddelande",
|
||||
"mobile.edit_profile.remove_profile_photo": "Ta bort foto",
|
||||
@@ -561,8 +561,8 @@
|
||||
"mobile.routes.login": "Logga in",
|
||||
"mobile.routes.loginOptions": "Välj inloggningsmetod",
|
||||
"mobile.routes.mfa": "Flerfaktorsautentisering",
|
||||
"mobile.routes.selectChannel": "Välj kanal",
|
||||
"mobile.routes.selectTeam": "Välj team",
|
||||
"mobile.routes.selectChannel": "Ändra kanalnamn",
|
||||
"mobile.routes.selectTeam": "Välj grupp",
|
||||
"mobile.routes.settings": "Inställningar",
|
||||
"mobile.routes.sso": "Auto-inloggning",
|
||||
"mobile.routes.table": "Tabell",
|
||||
@@ -586,7 +586,7 @@
|
||||
"mobile.search.on_modifier_description": "för att hitta inlägg före ett visst datum",
|
||||
"mobile.search.recent_title": "Senaste sökningar",
|
||||
"mobile.select_team.guest_cant_join_team": "Ditt gästkonto finns inte i något team eller kanal. Kontakta en administratör.",
|
||||
"mobile.select_team.join_open": "Öppna team du kan gå med i",
|
||||
"mobile.select_team.join_open": "Öppna grupper du kan gå med i",
|
||||
"mobile.select_team.no_teams": "Det finns inget team tillgängligt för dig att ansluta till.",
|
||||
"mobile.server_link.error.text": "Länken kunde inte hittas på servern.",
|
||||
"mobile.server_link.error.title": "Länk-fel",
|
||||
|
||||
@@ -107,7 +107,7 @@
|
||||
"channel_notifications.preference.global_default": "Genel varsayılan ({notifyLevel})",
|
||||
"channel_notifications.preference.header": "Bildirimler gönderimi",
|
||||
"channel_notifications.preference.never": "Asla",
|
||||
"channel_notifications.preference.only_mentions": "Yalnızca anmalar ve doğrudan iletiler",
|
||||
"channel_notifications.preference.only_mentions": "Yalnız anmalar ve doğrudan iletiler",
|
||||
"channel_notifications.preference.save_error": "Bildirim ayarı kaydedilemedi. Lütfen bağlantınızı denetleyip yeniden deneyin.",
|
||||
"combined_system_message.added_to_channel.many_expanded": "{users} ve {lastUser} {actor} tarafından **kanala eklendi**.",
|
||||
"combined_system_message.added_to_channel.one": "{firstUser} {actor} tarafından **kanala eklendi**.",
|
||||
@@ -202,8 +202,8 @@
|
||||
"gallery.unsuppored": "Bu dosya türü ön izlenemiyor",
|
||||
"get_post_link_modal.title": "Bağlantıyı kopyala",
|
||||
"global_threads.allThreads": "Tüm konularınız",
|
||||
"global_threads.emptyThreads.message": "Bahsettiğiniz veya katıldığınız tüm konular, izlediğiniz tüm konularla birlikte burada görüntülenir.",
|
||||
"global_threads.emptyThreads.title": "İzlenen bir konu yok",
|
||||
"global_threads.emptyThreads.message": "Bahsettiğiniz veya katıldığınız tüm konular, takip ettiğiniz tüm konularla birlikte burada görüntülenir.",
|
||||
"global_threads.emptyThreads.title": "Takip edilen bir konu yok",
|
||||
"global_threads.emptyUnreads.message": "Tüm konulara bakmışsınız gibi görünüyor.",
|
||||
"global_threads.emptyUnreads.title": "Okunmamış bir konu yok",
|
||||
"global_threads.markAllRead.cancel": "İptal",
|
||||
@@ -222,7 +222,7 @@
|
||||
"intro_messages.creatorPrivate": "{name} özel kanalı, {creator} tarafından {date} tarihinde başlatılmış.",
|
||||
"intro_messages.group_message": "Bu takım arkadaşlarınız ile doğrudan ileti geçmişinizin başlangıcı. Bu bölüm dışındaki kişiler burada paylaşılan doğrudan ileti ve dosyaları göremez.",
|
||||
"intro_messages.noCreator": "{date} tarihinde oluşturulmuş {name} kanalının başlangıcı.",
|
||||
"intro_messages.onlyInvited": " Bu özel kanalı yalnızca çağrılmış üyeler görüntüleyebilir.",
|
||||
"intro_messages.onlyInvited": " Bu özel kanalı yalnız çağrılmış üyeler görüntüleyebilir.",
|
||||
"last_users_message.added_to_channel.type": "{actor} tarafından **kanala eklendiniz**.",
|
||||
"last_users_message.added_to_team.type": "{actor} tarafından **takıma eklendiniz**.",
|
||||
"last_users_message.first": "{firstUser} ve ",
|
||||
@@ -289,7 +289,7 @@
|
||||
"mobile.camera_video_permission_denied_description": "Görüntü çekin ve Mattermost kopyanıza yükleyin ya da aygıtınıza kaydedin. Mattermost uygulamasına kameranızı okuma ve yazma izni vermek için ayarları açın.",
|
||||
"mobile.camera_video_permission_denied_title": "{applicationName} kameranıza erişmek istiyor",
|
||||
"mobile.channel_drawer.search": "Kanal ara",
|
||||
"mobile.channel_info.alertMessageConvertChannel": "{displayName} özel bir kanala dönüştürüldüğünde, geçmiş iletiler ve üyelikler korunur. Herkese açık olarak paylaşılmış dosyalara bağlantıya sahip olan herkes erişmeye devam edebilir. Özel kanallara yalnızca çağrı ile üye olunabilir. \n \nBu değişiklik kalıcıdır ve geri alınamaz.\n\n{displayName} kanalını özel kanala dönüştürmek istediğinize emin misiniz?",
|
||||
"mobile.channel_info.alertMessageConvertChannel": "{displayName} özel bir kanala dönüştürüldüğünde, geçmiş iletiler ve üyelikler korunur. Herkese açık olarak paylaşılmış dosyalara bağlantıya sahip olan herkes erişmeye devam edebilir. Özel kanallara yalnız çağrı ile üye olunabilir. \n \nBu değişiklik kalıcıdır ve geri alınamaz.\n\n{displayName} kanalını özel kanala dönüştürmek istediğinize emin misiniz?",
|
||||
"mobile.channel_info.alertMessageDeleteChannel": "{term} {name} kanalını arşivlemek istediğinize emin misiniz?",
|
||||
"mobile.channel_info.alertMessageLeaveChannel": "{term} {name} kanalından ayrılmak istediğinize emin misiniz?",
|
||||
"mobile.channel_info.alertMessageUnarchiveChannel": "{term} {name} kanalını arşivden çıkarmak istediğinize emin misiniz?",
|
||||
@@ -372,12 +372,12 @@
|
||||
"mobile.file_upload.disabled2": "Mobil uygulamadan dosya yüklemek devre dışı bırakılmış.",
|
||||
"mobile.file_upload.library": "Fotoğraf kitaplığı",
|
||||
"mobile.file_upload.max_warning": "En fazla {count} dosya yüklenebilir.",
|
||||
"mobile.file_upload.unsupportedMimeType": "Profil görseli olarak yalnızca BMP, JPG ya da PNG dosyaları kullanılabilir.",
|
||||
"mobile.file_upload.unsupportedMimeType": "Profil görseli olarak yalnız BMP, JPG ya da PNG dosyaları kullanılabilir.",
|
||||
"mobile.file_upload.video": "Görüntü kitaplığı",
|
||||
"mobile.files_paste.error_description": "Dosyalar yapıştırılırken bir sorun çıktı. Lütfen yeniden deneyin.",
|
||||
"mobile.files_paste.error_dismiss": "Yok say",
|
||||
"mobile.files_paste.error_title": "Yapıştırılamadı",
|
||||
"mobile.flagged_posts.empty_description": "Kaydedilmiş iletileri yalnızca siz görebilirsiniz. İletileri izlemek için işaretleyin ya da bir şeyi kaydetmek için ileti üzerine uzun basıp menüden Kaydet komutunu seçin.",
|
||||
"mobile.flagged_posts.empty_description": "Kaydedilmiş iletileri yalnız siz görebilirsiniz. İletileri takip etmek için işaretleyin ya da bir şeyi kaydetmek için ileti üzerine uzun basıp menüden Kaydet komutunu seçin.",
|
||||
"mobile.flagged_posts.empty_title": "Kaydedilmiş bir ileti yok",
|
||||
"mobile.forms.select.done": "Tamam",
|
||||
"mobile.gallery.title": "{index} / {total}",
|
||||
@@ -447,8 +447,8 @@
|
||||
"mobile.notification_settings.modal_cancel": "İPTAL",
|
||||
"mobile.notification_settings.modal_save": "KAYDET",
|
||||
"mobile.notification_settings.ooo_auto_responder": "Otomatik doğrudan ileti yanıtları",
|
||||
"mobile.notification_settings.push_threads.description": "İzlediğim konulara yazılan tüm yanıtlar ile ilgili bildirim gönderilsin",
|
||||
"mobile.notification_settings.push_threads.info": "Bu seçenek etkinleştirildiğinde, izlediğiniz bir konuya yazılan yanıtlar mobil uygulamada anında bildirim olarak iletilir.",
|
||||
"mobile.notification_settings.push_threads.description": "Takip ettiğim konulara yazılan tüm yanıtlar ile ilgili bildirim gönderilsin",
|
||||
"mobile.notification_settings.push_threads.info": "Bu seçenek etkinleştirildiğinde, takip ettiğiniz bir konuya yazılan yanıtlar mobil anında bildirim olarak iletilir.",
|
||||
"mobile.notification_settings.push_threads.title": "KONU YANITI BİLDİRİMLERİ",
|
||||
"mobile.notification_settings.push_threads.title_android": "Konu yanıtı bildirimleri",
|
||||
"mobile.notification_settings.save_failed_description": "Bir bağlantı sorunu nedeniyle bildirim ayarları kaydedilemedi. Lütfen yeniden deneyin.",
|
||||
@@ -740,10 +740,10 @@
|
||||
"terms_of_service.api_error": "İstek yerine getirilemedi. Sorun sürerse sistem yöneticiniz ile görüşün.",
|
||||
"threads": "Konular",
|
||||
"threads.deleted": "Özgün ileti silindi",
|
||||
"threads.follow": "İzle",
|
||||
"threads.followMessage": "İletiyi izle",
|
||||
"threads.followThread": "Konuyu izle",
|
||||
"threads.following": "İzleniyor",
|
||||
"threads.follow": "Takip et",
|
||||
"threads.followMessage": "İletiyi takip et",
|
||||
"threads.followThread": "Konuyu takip et",
|
||||
"threads.following": "Takip ediliyor",
|
||||
"threads.newReplies": "{count} yeni {count, plural, one {yanıt} other {yanıt}}",
|
||||
"threads.replies": "{count} {count, plural, one {yanıt} other {yanıt}}",
|
||||
"threads.unfollowMessage": "İletiyi takibi bırak",
|
||||
@@ -778,12 +778,12 @@
|
||||
"user.settings.notifications.email.never": "Asla",
|
||||
"user.settings.notifications.email.send": "E-posta bildirimleri gönderilsin",
|
||||
"user.settings.notifications.emailInfo": "5 dakikadan uzun süre uzak ya da çevrimdışı olduğunuzda anma ve doğrudan iletiler için e-posta bildirimi gönderilir.",
|
||||
"user.settings.notifications.email_threads.description": "İzlediğim konulara yazılan tüm yanıtlar ile ilgili bildirim gönderilsin.",
|
||||
"user.settings.notifications.email_threads.info": "Bu seçenek etkinleştirildiğinde, izlediğiniz bir konuya yazılan yanıtlar e-posta bildirimi olarak iletilir.",
|
||||
"user.settings.notifications.email_threads.description": "Takip ettiğim konulara yazılan tüm yanıtlar ile ilgili bildirim gönderilsin.",
|
||||
"user.settings.notifications.email_threads.info": "Bu seçenek etkinleştirildiğinde, takip ettiğiniz bir konuya yazılan yanıtlar e-posta bildirimi olarak iletilir.",
|
||||
"user.settings.notifications.email_threads.title": "KONU YANITI BİLDİRİMLERİ",
|
||||
"user.settings.notifications.email_threads.title_android": "Konu yanıtı bildirimleri",
|
||||
"user.settings.notifications.never": "Asla",
|
||||
"user.settings.notifications.onlyMentions": "Yalnızca anmalar ve doğrudan iletiler için",
|
||||
"user.settings.notifications.onlyMentions": "Yalnız anmalar ve doğrudan iletiler için",
|
||||
"user.settings.push_notification.away": "Uzakta ya da çevrimdışı",
|
||||
"user.settings.push_notification.disabled": "Anında bildirimler devre dışı bırakılmış",
|
||||
"user.settings.push_notification.disabled_long": "Anında bildirimler sistem yöneticiniz tarafından devre dışı bırakılmış.",
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
# Notice.txt File Configuration
|
||||
|
||||
We are automatically generating Notice.txt by using first-level dependencies of the project. The related pipeline uses `config.yaml` stored in this folder.
|
||||
|
||||
|
||||
## Configuration
|
||||
|
||||
Notice.txt will be always generated from first-level dependencies scanned from package.json files. For some cases it may be useful to define
|
||||
the dependency to add its licence to the Notice.txt even if it is not a first-level dependency or development dependency.
|
||||
|
||||
For instance, at the desktop project we need to add `wix`'s licence to the Notice.txt even if it is not a first-level dependency. To do that define
|
||||
all dependencies at `dependencies` array at the configuration. For any dependency at `dependencies` section, pipeline code will add their
|
||||
licenses to the Notice.txt file.
|
||||
|
||||
At the webapp project, `webpack` is used in `devDependencies` and it is requested because we are using some files generated by `webpack`. If there is any dependency
|
||||
referenced at `devDependencies` section, pipeline will add those dependency licences when they are referenced at `package.json` files.
|
||||
|
||||
Sample:
|
||||
|
||||
```
|
||||
title: "Mattermost Mobile"
|
||||
copyright: "© 2016-present Mattermost, Inc. All Rights Reserved. See LICENSE.txt for license information."
|
||||
description: "This document includes a list of open source components used in Mattermost Mobile, including those that have been modified."
|
||||
reviewers:
|
||||
- mattermost/release-managers
|
||||
- enahum
|
||||
search:
|
||||
- "package.json"
|
||||
dependencies:
|
||||
- "wix"
|
||||
devDependencies:
|
||||
- "webpack"
|
||||
```
|
||||
|
||||
| Field | Type | Purpose |
|
||||
| :-- | :-- | :-- |
|
||||
| title | string | Field content will be used as a title of the application. See first line of `NOTICE.txt` file. |
|
||||
| copyright | string | Field content will be used as a copyright message. See second line of `NOTICE.txt` file. |
|
||||
| description | string | Field content will be used as notice file description. See third line of `NOTICE.txt` file. |
|
||||
| reviewers | array of GitHub user/teams | Those will be automatically assigned to the PRs as reviewers. |
|
||||
| dependencies | array | If any dependency name mentioned, it will be automatically added even if it is not a first-level dependency. |
|
||||
| devDependencies | array | If any dependency name mentioned, it will be added when it is referenced in devDependency section. |
|
||||
| search | array | Pipeline will search for package.json files mentioned here. Globstar format is supported ie. `packages/**/package.json`. |
|
||||
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
---
|
||||
|
||||
title: "Mattermost Mobile"
|
||||
copyright: "© 2016-present Mattermost, Inc. All Rights Reserved. See LICENSE.txt for license information."
|
||||
description: "This document includes a list of open source components used in Mattermost Mobile, including those that have been modified."
|
||||
reviewers:
|
||||
- "mattermost/release-managers"
|
||||
- "enahum"
|
||||
search:
|
||||
- "package.json"
|
||||
dependencies: []
|
||||
devDependencies: []
|
||||
|
||||
...
|
||||
@@ -8,8 +8,8 @@ GEM
|
||||
artifactory (3.0.15)
|
||||
atomos (0.1.3)
|
||||
aws-eventstream (1.2.0)
|
||||
aws-partitions (1.602.0)
|
||||
aws-sdk-core (3.131.2)
|
||||
aws-partitions (1.590.0)
|
||||
aws-sdk-core (3.131.1)
|
||||
aws-eventstream (~> 1, >= 1.0.2)
|
||||
aws-partitions (~> 1, >= 1.525.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
@@ -56,8 +56,8 @@ GEM
|
||||
faraday-em_synchrony (1.0.0)
|
||||
faraday-excon (1.1.0)
|
||||
faraday-httpclient (1.0.1)
|
||||
faraday-multipart (1.0.4)
|
||||
multipart-post (~> 2)
|
||||
faraday-multipart (1.0.3)
|
||||
multipart-post (>= 1.2, < 3)
|
||||
faraday-net_http (1.0.1)
|
||||
faraday-net_http_persistent (1.2.0)
|
||||
faraday-patron (1.0.0)
|
||||
@@ -66,7 +66,7 @@ GEM
|
||||
faraday_middleware (1.2.0)
|
||||
faraday (~> 1.0)
|
||||
fastimage (2.2.6)
|
||||
fastlane (2.207.0)
|
||||
fastlane (2.206.1)
|
||||
CFPropertyList (>= 2.3, < 4.0.0)
|
||||
addressable (>= 2.8, < 3.0.0)
|
||||
artifactory (~> 3.0)
|
||||
@@ -111,9 +111,9 @@ GEM
|
||||
fastlane-plugin-find_replace_string (0.1.0)
|
||||
fastlane-plugin-versioning_android (0.1.0)
|
||||
gh_inspector (1.1.3)
|
||||
google-apis-androidpublisher_v3 (0.23.0)
|
||||
google-apis-core (>= 0.6, < 2.a)
|
||||
google-apis-core (0.7.0)
|
||||
google-apis-androidpublisher_v3 (0.21.0)
|
||||
google-apis-core (>= 0.4, < 2.a)
|
||||
google-apis-core (0.5.0)
|
||||
addressable (~> 2.5, >= 2.5.1)
|
||||
googleauth (>= 0.16.2, < 2.a)
|
||||
httpclient (>= 2.8.1, < 3.a)
|
||||
@@ -122,19 +122,19 @@ GEM
|
||||
retriable (>= 2.0, < 4.a)
|
||||
rexml
|
||||
webrick
|
||||
google-apis-iamcredentials_v1 (0.12.0)
|
||||
google-apis-core (>= 0.6, < 2.a)
|
||||
google-apis-playcustomapp_v1 (0.9.0)
|
||||
google-apis-core (>= 0.6, < 2.a)
|
||||
google-apis-storage_v1 (0.16.0)
|
||||
google-apis-core (>= 0.6, < 2.a)
|
||||
google-apis-iamcredentials_v1 (0.10.0)
|
||||
google-apis-core (>= 0.4, < 2.a)
|
||||
google-apis-playcustomapp_v1 (0.7.0)
|
||||
google-apis-core (>= 0.4, < 2.a)
|
||||
google-apis-storage_v1 (0.14.0)
|
||||
google-apis-core (>= 0.4, < 2.a)
|
||||
google-cloud-core (1.6.0)
|
||||
google-cloud-env (~> 1.0)
|
||||
google-cloud-errors (~> 1.0)
|
||||
google-cloud-env (1.6.0)
|
||||
faraday (>= 0.17.3, < 3.0)
|
||||
google-cloud-errors (1.2.0)
|
||||
google-cloud-storage (1.37.0)
|
||||
google-cloud-storage (1.36.2)
|
||||
addressable (~> 2.8)
|
||||
digest-crc (~> 0.4)
|
||||
google-apis-iamcredentials_v1 (~> 0.1)
|
||||
@@ -142,7 +142,7 @@ GEM
|
||||
google-cloud-core (~> 1.6)
|
||||
googleauth (>= 0.16.2, < 2.a)
|
||||
mini_mime (~> 1.0)
|
||||
googleauth (1.2.0)
|
||||
googleauth (1.1.3)
|
||||
faraday (>= 0.17.3, < 3.a)
|
||||
jwt (>= 1.4, < 3.0)
|
||||
memoist (~> 0.16)
|
||||
@@ -150,12 +150,12 @@ GEM
|
||||
os (>= 0.9, < 2.0)
|
||||
signet (>= 0.16, < 2.a)
|
||||
highline (2.0.3)
|
||||
http-cookie (1.0.5)
|
||||
http-cookie (1.0.4)
|
||||
domain_name (~> 0.5)
|
||||
httpclient (2.8.3)
|
||||
jmespath (1.6.1)
|
||||
json (2.6.2)
|
||||
jwt (2.4.1)
|
||||
jwt (2.3.0)
|
||||
memoist (0.16.2)
|
||||
mini_magick (4.11.0)
|
||||
mini_mime (1.1.2)
|
||||
@@ -183,9 +183,9 @@ GEM
|
||||
ruby2_keywords (0.0.5)
|
||||
rubyzip (2.3.2)
|
||||
security (0.1.3)
|
||||
signet (0.17.0)
|
||||
signet (0.16.1)
|
||||
addressable (~> 2.8)
|
||||
faraday (>= 0.17.5, < 3.a)
|
||||
faraday (>= 0.17.5, < 3.0)
|
||||
jwt (>= 1.5, < 3.0)
|
||||
multi_json (~> 1.10)
|
||||
simctl (1.6.8)
|
||||
@@ -203,11 +203,11 @@ GEM
|
||||
uber (0.1.0)
|
||||
unf (0.1.4)
|
||||
unf_ext
|
||||
unf_ext (0.0.8.2)
|
||||
unf_ext (0.0.8.1)
|
||||
unicode-display_width (1.8.0)
|
||||
webrick (1.7.0)
|
||||
word_wrap (1.0.0)
|
||||
xcodeproj (1.22.0)
|
||||
xcodeproj (1.21.0)
|
||||
CFPropertyList (>= 2.3.3, < 4.0)
|
||||
atomos (~> 0.1.3)
|
||||
claide (>= 1.0.2, < 2.0)
|
||||
|
||||
@@ -911,7 +911,7 @@
|
||||
CODE_SIGN_ENTITLEMENTS = Mattermost/Mattermost.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CURRENT_PROJECT_VERSION = 410;
|
||||
CURRENT_PROJECT_VERSION = 404;
|
||||
DEAD_CODE_STRIPPING = NO;
|
||||
DEVELOPMENT_TEAM = UQ8HT4Q2XM;
|
||||
ENABLE_BITCODE = NO;
|
||||
@@ -953,7 +953,7 @@
|
||||
CODE_SIGN_ENTITLEMENTS = Mattermost/Mattermost.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CURRENT_PROJECT_VERSION = 410;
|
||||
CURRENT_PROJECT_VERSION = 404;
|
||||
DEAD_CODE_STRIPPING = NO;
|
||||
DEVELOPMENT_TEAM = UQ8HT4Q2XM;
|
||||
ENABLE_BITCODE = NO;
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.54.0</string>
|
||||
<string>1.53.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleURLTypes</key>
|
||||
@@ -37,7 +37,7 @@
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>410</string>
|
||||
<string>404</string>
|
||||
<key>ITSAppUsesNonExemptEncryption</key>
|
||||
<false/>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
|
||||
@@ -19,9 +19,9 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>XPC!</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.54.0</string>
|
||||
<string>1.53.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>410</string>
|
||||
<string>404</string>
|
||||
<key>NSAppTransportSecurity</key>
|
||||
<dict>
|
||||
<key>NSAllowsArbitraryLoads</key>
|
||||
|
||||
@@ -19,9 +19,9 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>XPC!</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.54.0</string>
|
||||
<string>1.53.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>410</string>
|
||||
<string>404</string>
|
||||
<key>NSExtension</key>
|
||||
<dict>
|
||||
<key>NSExtensionPointIdentifier</key>
|
||||
|
||||
2
package-lock.json
generated
2
package-lock.json
generated
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "mattermost-mobile",
|
||||
"version": "1.54.0",
|
||||
"version": "1.53.0",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "mattermost-mobile",
|
||||
"version": "1.54.0",
|
||||
"version": "1.53.0",
|
||||
"description": "Mattermost Mobile with React Native",
|
||||
"repository": "git@github.com:mattermost/mattermost-mobile.git",
|
||||
"author": "Mattermost, Inc.",
|
||||
|
||||
2
types/modules/react-native-webrtc.d.ts
vendored
2
types/modules/react-native-webrtc.d.ts
vendored
@@ -168,7 +168,7 @@ declare module 'react-native-webrtc' {
|
||||
}
|
||||
|
||||
export interface RTCPeerConnectionConfiguration {
|
||||
iceServers: Array<ConfigurationParamWithUrls | ConfigurationParamWithUrl>;
|
||||
iceServers: ConfigurationParamWithUrls[] | ConfigurationParamWithUrl[];
|
||||
iceTransportPolicy?: 'all' | 'relay' | 'nohost' | 'none' | undefined;
|
||||
bundlePolicy?: 'balanced' | 'max-compat' | 'max-bundle' | undefined;
|
||||
rtcpMuxPolicy?: 'negotiate' | 'require' | undefined;
|
||||
|
||||
Reference in New Issue
Block a user