From b9e002f7b1e83debfbcc4995fca561e1b6598b93 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Fri, 9 Jun 2023 12:29:51 -0300 Subject: [PATCH] Update call links parsing. --- app/src/main/AndroidManifest.xml | 7 +++++-- .../thoughtcrime/securesms/calls/links/CallLinks.kt | 12 ++++++++---- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c36fe4aa7c..133539c493 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -602,10 +602,13 @@ + - + + + + diff --git a/app/src/main/java/org/thoughtcrime/securesms/calls/links/CallLinks.kt b/app/src/main/java/org/thoughtcrime/securesms/calls/links/CallLinks.kt index 01e3d14786..50115bf725 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/calls/links/CallLinks.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/calls/links/CallLinks.kt @@ -6,8 +6,8 @@ package org.thoughtcrime.securesms.calls.links import io.reactivex.rxjava3.core.Observable -import org.signal.core.util.Hex import org.signal.core.util.logging.Log +import org.signal.ringrtc.CallException import org.signal.ringrtc.CallLinkRootKey import org.thoughtcrime.securesms.database.CallLinkTable import org.thoughtcrime.securesms.database.DatabaseObserver @@ -25,7 +25,7 @@ object CallLinks { private val TAG = Log.tag(CallLinks::class.java) - fun url(linkKeyBytes: ByteArray) = "$LINK_PREFIX${Hex.dump(linkKeyBytes)}" + fun url(linkKeyBytes: ByteArray) = "$LINK_PREFIX${CallLinkRootKey(linkKeyBytes)}" fun watchCallLink(roomId: CallLinkRoomId): Observable { return Observable.create { emitter -> @@ -82,7 +82,11 @@ object CallLinks { return null } - // TODO Parse the key into a byte array - return null + return try { + CallLinkRootKey(key) + } catch (e: CallException) { + Log.w(TAG, "Invalid root key found in fragment query string.") + null + } } }