From 56f01c29b9560879eb84ff6b2848fefda86a8cbe Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Thu, 10 Mar 2022 12:39:43 +0100 Subject: [PATCH 01/11] allow deletion of all files --- .../eu/siacs/conversations/persistance/FileBackend.java | 6 +++++- .../eu/siacs/conversations/ui/ConversationFragment.java | 7 ++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/persistance/FileBackend.java b/src/main/java/eu/siacs/conversations/persistance/FileBackend.java index 5c23bf0fa..55b324533 100644 --- a/src/main/java/eu/siacs/conversations/persistance/FileBackend.java +++ b/src/main/java/eu/siacs/conversations/persistance/FileBackend.java @@ -362,8 +362,12 @@ public class FileBackend { } private static boolean weOwnFileLollipop(final Uri uri) { + final String path = uri.getPath(); + if (path == null) { + return false; + } try { - File file = new File(uri.getPath()); + File file = new File(path); FileDescriptor fd = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY) .getFileDescriptor(); diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java index 073e77cc3..7420ca50a 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java @@ -1184,11 +1184,8 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke cancelTransmission.setVisible(true); } if (m.isFileOrImage() && !deleted && !cancelable) { - final String path = m.getRelativeFilePath(); - if (path == null || !path.startsWith("/")) { - deleteFile.setVisible(true); - deleteFile.setTitle(activity.getString(R.string.delete_x_file, UIHelper.getFileDescriptionString(activity, m))); - } + deleteFile.setVisible(true); + deleteFile.setTitle(activity.getString(R.string.delete_x_file, UIHelper.getFileDescriptionString(activity, m))); } if (showError) { showErrorMessage.setVisible(true); From b1ec3a0e29c1f8adf928e7f025de492f57ce36ab Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Thu, 10 Mar 2022 15:53:51 +0100 Subject: [PATCH 02/11] use libwebrtc m99 --- .github/workflows/android.yml | 2 +- build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index e25e1be7a..0b737c568 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -19,7 +19,7 @@ jobs: java-version: '11' distribution: 'adopt' - name: Download WebRTC - run: mkdir libs && wget -O libs/libwebrtc-m92.aar https://gultsch.de/files/libwebrtc-m92.aar + run: mkdir libs && wget -O libs/libwebrtc-m99.aar https://gultsch.de/files/libwebrtc-m99.aar - name: Grant execute permission for gradlew run: chmod +x gradlew - name: Build Quicksy diff --git a/build.gradle b/build.gradle index 54186f6d2..61b32120f 100644 --- a/build.gradle +++ b/build.gradle @@ -75,7 +75,7 @@ dependencies { implementation 'com.google.guava:guava:30.1.1-android' quicksyImplementation 'io.michaelrocks:libphonenumber-android:8.12.36' - implementation fileTree(include: ['libwebrtc-m92.aar'], dir: 'libs') + implementation fileTree(include: ['libwebrtc-m99.aar'], dir: 'libs') } ext { From 5c4eccec13508a8687452adc96f0799813b6f3c3 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Thu, 10 Mar 2022 15:54:23 +0100 Subject: [PATCH 03/11] be smarter about what files can be deleted --- .../persistance/FileBackend.java | 48 +++++++++++++++---- .../ui/ConversationFragment.java | 7 ++- 2 files changed, 45 insertions(+), 10 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/persistance/FileBackend.java b/src/main/java/eu/siacs/conversations/persistance/FileBackend.java index 55b324533..404f521f4 100644 --- a/src/main/java/eu/siacs/conversations/persistance/FileBackend.java +++ b/src/main/java/eu/siacs/conversations/persistance/FileBackend.java @@ -33,6 +33,7 @@ import androidx.core.content.FileProvider; import androidx.exifinterface.media.ExifInterface; import com.google.common.base.Strings; +import com.google.common.collect.ImmutableList; import com.google.common.io.ByteStreams; import java.io.ByteArrayOutputStream; @@ -83,21 +84,38 @@ public class FileBackend { private static final float IGNORE_PADDING = 0.15f; private final XmppConnectionService mXmppConnectionService; + private static final List STORAGE_TYPES; + + static { + final ImmutableList.Builder builder = + new ImmutableList.Builder() + .add( + Environment.DIRECTORY_DOWNLOADS, + Environment.DIRECTORY_PICTURES, + Environment.DIRECTORY_MOVIES, + Environment.DIRECTORY_DOCUMENTS); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + builder.add(Environment.DIRECTORY_RECORDINGS); + } + STORAGE_TYPES = builder.build(); + } + public FileBackend(XmppConnectionService service) { this.mXmppConnectionService = service; } public static long getFileSize(Context context, Uri uri) { - try { - final Cursor cursor = context.getContentResolver().query(uri, null, null, null, null); + try (final Cursor cursor = + context.getContentResolver().query(uri, null, null, null, null)) { if (cursor != null && cursor.moveToFirst()) { - long size = cursor.getLong(cursor.getColumnIndex(OpenableColumns.SIZE)); - cursor.close(); - return size; - } else { - return -1; + final int index = cursor.getColumnIndex(OpenableColumns.SIZE); + if (index == -1) { + return -1; + } + return cursor.getLong(index); } - } catch (Exception e) { + return -1; + } catch (final Exception ignored) { return -1; } } @@ -861,6 +879,20 @@ public class FileBackend { return new File(appDirectory, filename); } + public static boolean inConversationsDirectory(final Context context, String path) { + final File fileDirectory = new File(path).getParentFile(); + for (final String type : STORAGE_TYPES) { + final File typeDirectory = + new File( + Environment.getExternalStoragePublicDirectory(type), + context.getString(R.string.app_name)); + if (typeDirectory.equals(fileDirectory)) { + return true; + } + } + return false; + } + public void setupRelativeFilePath( final Message message, final String filename, final String mime) { final File file = getStorageLocation(filename, mime); diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java index 7420ca50a..1b334e5d4 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java @@ -1184,8 +1184,11 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke cancelTransmission.setVisible(true); } if (m.isFileOrImage() && !deleted && !cancelable) { - deleteFile.setVisible(true); - deleteFile.setTitle(activity.getString(R.string.delete_x_file, UIHelper.getFileDescriptionString(activity, m))); + final String path = m.getRelativeFilePath(); + if (path == null || !path.startsWith("/") || FileBackend.inConversationsDirectory(requireActivity(), path)) { + deleteFile.setVisible(true); + deleteFile.setTitle(activity.getString(R.string.delete_x_file, UIHelper.getFileDescriptionString(activity, m))); + } } if (showError) { showErrorMessage.setVisible(true); From 330980391cbfba90071760cd7b2e15eb82dc4d81 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Thu, 10 Mar 2022 16:14:26 +0100 Subject: [PATCH 04/11] pulled translations from transifex --- src/main/res/values-de/strings.xml | 10 +++++++++- src/main/res/values-gl/strings.xml | 10 +++++++++- src/main/res/values-zh-rCN/strings.xml | 10 +++++++++- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/main/res/values-de/strings.xml b/src/main/res/values-de/strings.xml index 7d8f45319..aba514c43 100644 --- a/src/main/res/values-de/strings.xml +++ b/src/main/res/values-de/strings.xml @@ -622,6 +622,8 @@ Lösche privaten Speicher, in dem die Dateien gespeichert werden (sie können erneut vom Server heruntergeladen werden) Ich habe diesen Link aus einer vertrauenswürdigen Quelle erhalten Du bist dabei, die OMEMO-Schlüssel von %1$s nach dem Klick auf diesen Link zu überprüfen. Dies ist nur sicher, wenn du diesen Link von einer vertrauenswürdigen Quelle erhalten hast, der nur von %2$s veröffentlicht werden konnte. + Du bist dabei, die OMEMO-Schlüssel deines eigenen Kontos zu verifizieren. Dies ist nur sicher, wenn du diesem Link aus einer vertrauenswürdigen Quelle gefolgt bist, bei der nur du diesen Link veröffentlicht haben kannst. + Weiter Überprüfe OMEMO-Schlüssel Inaktive anzeigen Inaktive ausblenden @@ -904,6 +906,7 @@ Eingehender Videoanruf Verbinden Verbunden + Erneut verbinden Anruf annehmen Anruf beenden Annehmen @@ -919,6 +922,8 @@ Auflegen Laufender Anruf Laufender Videoanruf + Anruf erneut verbinden + Videoanruf erneut verbinden Deaktiviere Tor, um Anrufe zu tätigen Eingehender Anruf Eingehender Anruf · %s @@ -968,4 +973,7 @@ Die Sicherung wurde gestartet. Du bekommst eine Benachrichtigung, sobald sie fertig ist. Video kann nicht aktiviert werden. Textdokument - + Kontoregistrierungen werden nicht unterstützt + Keine XMPP-Adresse gefunden + + diff --git a/src/main/res/values-gl/strings.xml b/src/main/res/values-gl/strings.xml index be14eb100..a5ea07ed0 100644 --- a/src/main/res/values-gl/strings.xml +++ b/src/main/res/values-gl/strings.xml @@ -622,6 +622,8 @@ Baleirar a almacenaxe privada onde se gardan os ficheiros (poderán volver a descargarse desde o servidor) Seguín esta ligazón desde unha fonte de confianza Vas verificar as chaves OMEMO de %1$s despois de premer na ligazón. Esto só é seguro se seguiches esta ligazón desde unha fonte de confianza onde só %2$s a podería ter publicado. + Vas verificar as chaves OMEMO da túa propia conta. Esto só é seguro se seguiches esta ligazón desde unha orixe segura onde só tí poderías ter publicado esta ligazón. + Continuar Validar chaves OMEMO Mostrar inactivos Agochar inactivos @@ -904,6 +906,7 @@ Videochamada entrante Conectando Conectado + Reconectando Aceptando a chamada Rematando a chamada Responder @@ -919,6 +922,8 @@ Colgar Chamada en curso Videochamada en curso + Reconectando a chamada + Reconectando a videochamada Desactivar Tor para facer chamadas Chamada entrante Conversa de · %s @@ -968,4 +973,7 @@ Comezou a creación da copia de apoio. Recibirás unha notificación cando remate. Non se puido activar o vídeo. Documento de texto plano - + Non está permitido o rexistro de novas contas + Non se atopa un enderezo XMPP + + diff --git a/src/main/res/values-zh-rCN/strings.xml b/src/main/res/values-zh-rCN/strings.xml index 6323cea4d..fe11961a4 100644 --- a/src/main/res/values-zh-rCN/strings.xml +++ b/src/main/res/values-zh-rCN/strings.xml @@ -617,6 +617,8 @@ 清除保存私密文件的存储 (可以从服务器上重新下载) 此链接的源头是可信的 点击链接后将会开始校验%1$s的OMEMO密钥。只有%2$s发布的链接才是安全的。 + 您将验证您自己帐户的 OMEMO 密钥。只有当您从可信的来源跟踪此链接时,这才是安全的。“可信”指的是此链接只可能是你在来源中发布的。 + 继续 校验OMEMO密钥 显示不活跃设备 隐藏不活跃设备 @@ -893,6 +895,7 @@ 视频来电 正在连接 已连接 + 重新连接 正在接通来电 正在结束来电 应答 @@ -908,6 +911,8 @@ 挂断 正在进行的通话 正在进行的视频通话 + 重连通话 + 重连视频通话 禁用Tor以拨打电话 来电 来电 · %s @@ -955,4 +960,7 @@ 已启动备份。一旦完成,你会收到通知。 无法启用视频 纯文本文档 - + 不支持注册账户 + 未找到 XMPP 地址 + + From 78048bbd3ddeab23eb5104e83895b91f1306b5de Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Tue, 8 Mar 2022 15:14:08 -0500 Subject: [PATCH 05/11] Enable WebRTC-BindUsingInterfaceName/Enabled/ This makes 464XLAT networks (such as T-Mobile LTE) work. https://bugs.chromium.org/p/webrtc/issues/detail?id=10707 --- .../eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java b/src/main/java/eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java index 0b990db43..8cd65447b 100644 --- a/src/main/java/eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java +++ b/src/main/java/eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java @@ -233,7 +233,9 @@ public class WebRTCWrapper { public void setup(final XmppConnectionService service, final AppRTCAudioManager.SpeakerPhonePreference speakerPhonePreference) throws InitializationException { try { PeerConnectionFactory.initialize( - PeerConnectionFactory.InitializationOptions.builder(service).createInitializationOptions() + PeerConnectionFactory.InitializationOptions.builder(service) + .setFieldTrials("WebRTC-BindUsingInterfaceName/Enabled/") + .createInitializationOptions() ); } catch (final UnsatisfiedLinkError e) { throw new InitializationException("Unable to initialize PeerConnectionFactory", e); From 99e4c3d2e0c10d5ea81bd5b4ddb5dad9f295687f Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Thu, 10 Mar 2022 18:37:10 +0100 Subject: [PATCH 06/11] version bump to 2.10.3-beta.2 --- build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 61b32120f..0598e5fe9 100644 --- a/build.gradle +++ b/build.gradle @@ -90,8 +90,8 @@ android { defaultConfig { minSdkVersion 21 targetSdkVersion 30 - versionCode 42024 - versionName "2.10.3-beta" + versionCode 42025 + versionName "2.10.3-beta.2" archivesBaseName += "-$versionName" applicationId "eu.siacs.conversations" resValue "string", "applicationId", applicationId From 3c1550b20857ade4d537ba63c136f5f8cc3ccaab Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Thu, 10 Mar 2022 18:40:30 +0100 Subject: [PATCH 07/11] show jid only for incoming calls during ringing --- .../conversations/ui/RtpSessionActivity.java | 26 ++++++++++++------- src/main/res/layout/activity_rtp_session.xml | 9 ++++--- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/ui/RtpSessionActivity.java b/src/main/java/eu/siacs/conversations/ui/RtpSessionActivity.java index 842811edb..0e286c8dc 100644 --- a/src/main/java/eu/siacs/conversations/ui/RtpSessionActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/RtpSessionActivity.java @@ -400,7 +400,7 @@ public class RtpSessionActivity extends XmppActivity } } else if (asList(ACTION_MAKE_VIDEO_CALL, ACTION_MAKE_VOICE_CALL).contains(action)) { proposeJingleRtpSession(account, with, actionToMedia(action)); - setWith(account.getRoster().getContact(with)); + setWith(account.getRoster().getContact(with), null); } else { throw new IllegalStateException("received onNewIntent without sessionId"); } @@ -424,7 +424,7 @@ public class RtpSessionActivity extends XmppActivity } } else if (asList(ACTION_MAKE_VIDEO_CALL, ACTION_MAKE_VOICE_CALL).contains(action)) { proposeJingleRtpSession(account, with, actionToMedia(action)); - setWith(account.getRoster().getContact(with)); + setWith(account.getRoster().getContact(with), null); } else if (Intent.ACTION_VIEW.equals(action)) { final String extraLastState = intent.getStringExtra(EXTRA_LAST_REPORTED_STATE); final RtpEndUserState state = @@ -437,7 +437,7 @@ public class RtpSessionActivity extends XmppActivity updateIncomingCallScreen(state); invalidateOptionsMenu(); } - setWith(account.getRoster().getContact(with)); + setWith(account.getRoster().getContact(with), state); if (xmppConnectionService .getJingleConnectionManager() .fireJingleRtpConnectionStateUpdates()) { @@ -454,13 +454,19 @@ public class RtpSessionActivity extends XmppActivity } } - private void setWidth() { - setWith(getWith()); + private void setWidth(final RtpEndUserState state) { + setWith(getWith(), state); } - private void setWith(final Contact contact) { + private void setWith(final Contact contact, final RtpEndUserState state) { binding.with.setText(contact.getDisplayName()); - binding.withJid.setText(contact.getJid().asBareJid().toEscapedString()); + if (Arrays.asList(RtpEndUserState.INCOMING_CALL, RtpEndUserState.ACCEPTING_CALL) + .contains(state)) { + binding.withJid.setText(contact.getJid().asBareJid().toEscapedString()); + binding.withJid.setVisibility(View.VISIBLE); + } else { + binding.withJid.setVisibility(View.GONE); + } } private void proposeJingleRtpSession( @@ -666,7 +672,7 @@ public class RtpSessionActivity extends XmppActivity requireRtpConnection().getState())) { putScreenInCallMode(); } - setWidth(); + setWidth(currentState); updateVideoViews(currentState); updateStateDisplay(currentState, media); updateVerifiedShield(verified && STATES_SHOWING_SWITCH_TO_CHAT.contains(currentState)); @@ -685,7 +691,7 @@ public class RtpSessionActivity extends XmppActivity finish(); return; } - RtpEndUserState state = terminatedRtpSession.state; + final RtpEndUserState state = terminatedRtpSession.state; resetIntent(account, with, terminatedRtpSession.state, terminatedRtpSession.media); updateButtonConfiguration(state); updateStateDisplay(state); @@ -693,7 +699,7 @@ public class RtpSessionActivity extends XmppActivity updateCallDuration(); updateVerifiedShield(false); invalidateOptionsMenu(); - setWith(account.getRoster().getContact(with)); + setWith(account.getRoster().getContact(with), state); } private void reInitializeActivityWithRunningRtpSession( diff --git a/src/main/res/layout/activity_rtp_session.xml b/src/main/res/layout/activity_rtp_session.xml index 4563d9a97..7c52cf8a2 100644 --- a/src/main/res/layout/activity_rtp_session.xml +++ b/src/main/res/layout/activity_rtp_session.xml @@ -53,24 +53,27 @@ android:layout_height="wrap_content" android:layout_below="@id/status" android:layout_marginLeft="16dp" - android:layout_marginTop="0dp" android:layout_marginRight="16dp" - android:layout_marginBottom="8dp" android:textAppearance="@style/TextAppearance.Conversations.Display2" android:textColor="@color/white" tools:text="Juliet Capulet" /> + + From f9acc3bf7187ff73499d0c631d25533c89462550 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Fri, 11 Mar 2022 08:34:05 +0100 Subject: [PATCH 08/11] bump libraries --- build.gradle | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/build.gradle b/build.gradle index 0598e5fe9..118dab5f2 100644 --- a/build.gradle +++ b/build.gradle @@ -48,8 +48,8 @@ dependencies { implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' implementation 'com.google.android.material:material:1.4.0' - implementation "androidx.emoji2:emoji2:1.1.0-rc01" - freeImplementation "androidx.emoji2:emoji2-bundled:1.1.0-rc01" + implementation "androidx.emoji2:emoji2:1.1.0" + freeImplementation "androidx.emoji2:emoji2-bundled:1.1.0" implementation 'org.bouncycastle:bcmail-jdk15on:1.64' //zxing stopped supporting Java 7 so we have to stick with 3.3.3 @@ -62,8 +62,8 @@ dependencies { implementation "com.wefika:flowlayout:0.4.1" implementation 'com.otaliastudios:transcoder:0.10.4' - implementation 'org.jxmpp:jxmpp-jid:1.0.2' - implementation 'org.osmdroid:osmdroid-android:6.1.10' + implementation 'org.jxmpp:jxmpp-jid:1.0.3' + implementation 'org.osmdroid:osmdroid-android:6.1.11' implementation 'org.hsluv:hsluv:0.2' implementation 'org.conscrypt:conscrypt-android:2.5.2' implementation 'me.drakeet.support:toastcompat:1.1.0' @@ -74,7 +74,7 @@ dependencies { implementation "com.squareup.okhttp3:okhttp:4.9.3" implementation 'com.google.guava:guava:30.1.1-android' - quicksyImplementation 'io.michaelrocks:libphonenumber-android:8.12.36' + quicksyImplementation 'io.michaelrocks:libphonenumber-android:8.12.44' implementation fileTree(include: ['libwebrtc-m99.aar'], dir: 'libs') } From 1969a23726bca8eff12a1eac01300e18b41e9430 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Fri, 11 Mar 2022 15:24:10 +0100 Subject: [PATCH 09/11] pulled translations from transifex --- src/main/res/values-it/strings.xml | 10 +++++++++- src/main/res/values-ro-rRO/strings.xml | 10 +++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/main/res/values-it/strings.xml b/src/main/res/values-it/strings.xml index 07a619dff..6fb2bc823 100644 --- a/src/main/res/values-it/strings.xml +++ b/src/main/res/values-it/strings.xml @@ -622,6 +622,8 @@ Svuota l\'archivio privato nella quale sono memorizzati i file (possono essere riscaricati dal server) Ho seguito questo link da una fonte fidata Stai per verificare le chiavi OMEMO di %1$s cliccando un link. Questo metodo è sicuro solo se hai seguito il link da una fonte fidata dove solo %2$s può averlo pubblicato. + Stai per verificare le chiavi OMEMO del tuo stesso account. Questo metodo è sicuro solo se hai seguito il link da una fonte fidata dove solo tu puoi averlo pubblicato. + Continua Verifica chiavi OMEMO Mostra inattivi Nascondi inattivi @@ -904,6 +906,7 @@ Chiamata video in arrivo Connessione Connesso + Riconnessione Accettazione chiamata Chiusura chiamata Rispondi @@ -919,6 +922,8 @@ Riaggancia Chiamata in corso Chiamata video in corso + Riconnessione chiamata + Riconnessione chiamata video Disattiva Tor per le chiamate Chiamata in arrivo Chiamata in arrivo · %s @@ -968,4 +973,7 @@ Il backup è iniziato. Riceverai una notifica una volta completato. Impossibile attivare il video. Documento di testo - + Le registrazioni di profili non sono supportate + Nessun indirizzo XMPP trovato + + diff --git a/src/main/res/values-ro-rRO/strings.xml b/src/main/res/values-ro-rRO/strings.xml index 93b11c506..253c97ad1 100644 --- a/src/main/res/values-ro-rRO/strings.xml +++ b/src/main/res/values-ro-rRO/strings.xml @@ -627,6 +627,8 @@ Locul unde sunt fișierele păstrate (pot fi descărcate de pe server din nou) Am urmat această legătură de la o sursă de încredere Urmează să verificați cheile OMEMO pentru %1$s după ce veți deschide legătura. Acest lucru se poate face în siguranță doar dacă ați primit legătura de la o sursă de încredere unde doar %2$s putea publica. + Urmează să verificați cheile OMEMO pentru contul dumneavoastră. Acest lucru se poate face în siguranță doar dacă ați primit legătura de la o sursă de încredere unde doar dumneavoastră ați fi putut publica. + Continuă Verificare chei OMEMO Arată inactive Ascunde inactive @@ -915,6 +917,7 @@ Apel video primit Conectare Conectat + Reconectare Se acceptă apelul Se încheie apelul Răspunde @@ -930,6 +933,8 @@ Închide Apel în curs Apel video în curs + Reconectare apel + Reconectare apel video Dezactivați Tor pentru a face apeluri Apel primit Apel primit · %s @@ -981,4 +986,7 @@ Se creează copia de siguranță. Veți primi o notificare când acesta este completă. Nu s-a putut activa camera video. Document text - + Nu este posibilă înregistrarea unui cont + Nu a fost găsită o adresă XMPP + + From 7731a864fd5095dd0cd795b47d3634499c8cd8e0 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Sat, 12 Mar 2022 17:57:32 +0100 Subject: [PATCH 10/11] catch security exception when importing backup --- .../java/eu/siacs/conversations/ui/ImportBackupActivity.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/conversations/java/eu/siacs/conversations/ui/ImportBackupActivity.java b/src/conversations/java/eu/siacs/conversations/ui/ImportBackupActivity.java index 90c214ab4..6e4815159 100644 --- a/src/conversations/java/eu/siacs/conversations/ui/ImportBackupActivity.java +++ b/src/conversations/java/eu/siacs/conversations/ui/ImportBackupActivity.java @@ -134,6 +134,8 @@ public class ImportBackupActivity extends ActionBarActivity implements ServiceCo } catch (final IOException | IllegalArgumentException e) { Log.d(Config.LOGTAG, "unable to open backup file " + uri, e); Snackbar.make(binding.coordinator, R.string.not_a_backup_file, Snackbar.LENGTH_LONG).show(); + } catch (final SecurityException e) { + Snackbar.make(binding.coordinator, R.string.sharing_application_not_grant_permission, Snackbar.LENGTH_LONG).show(); } } From ed9886050607515aca3849066ea13d8ff6fd6bce Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Sun, 13 Mar 2022 07:37:41 +0100 Subject: [PATCH 11/11] pulled translations from transifex --- src/main/res/values-pl/strings.xml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/res/values-pl/strings.xml b/src/main/res/values-pl/strings.xml index 2cba52246..b1c0db084 100644 --- a/src/main/res/values-pl/strings.xml +++ b/src/main/res/values-pl/strings.xml @@ -632,6 +632,8 @@ Wyczyść prywatny magazyn gdzie trzymane są pliki (mogą zostać pobrane ponownie z serwera) Trafiłem na ten link w zaufanym źródle Zaraz zweryfikujesz klucz OMEMO %1$s klikając w link. Jest to bezpieczne jedynie, kiedy link pochodzi z zaufanego źródła gdzie tylko %2$s mógł go opublikować. + Weryfikujesz właśnie klucze OMEMO własnego konta. To jest bezpieczne tylko jeśli kliknąłeś łącze w miejscu w którym jedynie ty mogłeś je zamieścić. + Kontynuuj Zweryfikuj klucze OMEMO Pokaż nieaktywne Ukryj nieaktywne @@ -927,6 +929,7 @@ Administrator twojego serwera będzie mógł czytać twoje wiadomości, ale moż Wideorozmowa przychodząca Łączenie Połączony + Ponowne łączenie Akceptowanie połączenia Kończenie połączenia Połącz @@ -942,6 +945,8 @@ Administrator twojego serwera będzie mógł czytać twoje wiadomości, ale moż Rozłącz Połączenie wychodzące Wideorozmowa wychodząca + Ponowne łączenie rozmowy + Ponowne łączenie rozmowy wideo Wyłącz Tor aby dzwonić Połączenie przychodzące Połączenie przychodzące · %s @@ -995,4 +1000,7 @@ Administrator twojego serwera będzie mógł czytać twoje wiadomości, ale moż Tworzenie kopii zapasowej się rozpoczęło. Dostaniesz powiadomienie kiedy się zakończy. Nie można włączyć wideo. Dokument zwykłego tekstu - + Rejestracja kont nie jest wspierana + Nie znaleziono adresu XMPP + +