From 53d590947ed7d60129fddb014550cd8490ec71c4 Mon Sep 17 00:00:00 2001 From: Moxie Marlinspike Date: Mon, 30 Jan 2017 13:31:38 -0800 Subject: [PATCH] Force capability refresh on conversation load if in webrtc beta // FREEBIE --- .../securesms/ConversationActivity.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/org/thoughtcrime/securesms/ConversationActivity.java b/src/org/thoughtcrime/securesms/ConversationActivity.java index fe37ecca63..795fd75221 100644 --- a/src/org/thoughtcrime/securesms/ConversationActivity.java +++ b/src/org/thoughtcrime/securesms/ConversationActivity.java @@ -259,6 +259,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity initializeDraft(); } }); + initializeBetaCalling(); } @Override @@ -944,6 +945,38 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity return future; } + private void initializeBetaCalling() { + if (!TextSecurePreferences.isWebrtcCallingEnabled(this)) { + return; + } + + new AsyncTask() { + @Override + protected boolean[] doInBackground(Void... params) { + try { + Context context = ConversationActivity.this; + UserCapabilities userCapabilities = DirectoryHelper.refreshDirectoryFor(context, masterSecret, recipients, + TextSecurePreferences.getLocalNumber(context)); + + + return new boolean[] {userCapabilities.getTextCapability() == Capability.SUPPORTED, + userCapabilities.getVideoCapability() == Capability.SUPPORTED && !isSelfConversation(), + Util.isDefaultSmsProvider(context)}; + } catch (IOException e) { + Log.w(TAG, e); + return null; + } + } + + @Override + protected void onPostExecute(boolean[] result) { + if (result != null && (result[0] != isSecureText || result[1] != isSecureVideo || result[2] != isDefaultSms)) { + handleSecurityChange(result[0], result[1], result[2]); + } + } + }.execute(); + } + private void onSecurityUpdated() { updateRecipientPreferences(); }