From 6187466b06628061b555a621b352f1f6f3e54f24 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 16 Sep 2019 12:23:37 +0200 Subject: [PATCH] Prevent account linking on non sip.linphone.org proxy configs --- app/src/main/java/org/linphone/LinphoneManager.java | 8 +++++--- .../assistant/PhoneAccountLinkingAssistantActivity.java | 4 ++++ .../org/linphone/settings/AccountSettingsFragment.java | 3 +++ 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/linphone/LinphoneManager.java b/app/src/main/java/org/linphone/LinphoneManager.java index b2a8679fa..65944e11c 100644 --- a/app/src/main/java/org/linphone/LinphoneManager.java +++ b/app/src/main/java/org/linphone/LinphoneManager.java @@ -594,6 +594,10 @@ public class LinphoneManager implements SensorEventListener { if (LinphonePreferences.instance().getLinkPopupTime() != null && Long.parseLong(LinphonePreferences.instance().getLinkPopupTime()) >= now) return; + ProxyConfig proxyConfig = mCore.getDefaultProxyConfig(); + if (proxyConfig == null) return; + if (!proxyConfig.getDomain().equals(getString(R.string.default_domain))) return; + long future = new Timestamp( mContext.getResources() @@ -609,9 +613,7 @@ public class LinphoneManager implements SensorEventListener { mContext, String.format( getString(R.string.link_account_popup), - mCore.getDefaultProxyConfig() - .getIdentityAddress() - .asStringUriOnly())); + proxyConfig.getIdentityAddress().asStringUriOnly())); Button delete = dialog.findViewById(R.id.dialog_delete_button); delete.setVisibility(View.GONE); Button ok = dialog.findViewById(R.id.dialog_ok_button); diff --git a/app/src/main/java/org/linphone/assistant/PhoneAccountLinkingAssistantActivity.java b/app/src/main/java/org/linphone/assistant/PhoneAccountLinkingAssistantActivity.java index 8c67a2061..6f29661ca 100644 --- a/app/src/main/java/org/linphone/assistant/PhoneAccountLinkingAssistantActivity.java +++ b/app/src/main/java/org/linphone/assistant/PhoneAccountLinkingAssistantActivity.java @@ -72,6 +72,10 @@ public class PhoneAccountLinkingAssistantActivity extends AssistantActivity { Log.e("[Account Linking] Proxy doesn't have an identity address"); unexpectedError(); } + if (!mProxyConfig.getDomain().equals(getString(R.string.default_domain))) { + Log.e("[Account Linking] Can't link account on domain " + mProxyConfig.getDomain()); + unexpectedError(); + } mAccountCreator.setUsername(identity.getUsername()); AuthInfo authInfo = mProxyConfig.findAuthInfo(); diff --git a/app/src/main/java/org/linphone/settings/AccountSettingsFragment.java b/app/src/main/java/org/linphone/settings/AccountSettingsFragment.java index 1dcbc639c..78bf42216 100644 --- a/app/src/main/java/org/linphone/settings/AccountSettingsFragment.java +++ b/app/src/main/java/org/linphone/settings/AccountSettingsFragment.java @@ -670,6 +670,9 @@ public class AccountSettingsFragment extends SettingsFragment { if (proxy != null) { mTransport.setValue(proxy.getTransport().toInt()); } + + mLinkAccount.setEnabled( + mProxyConfig.getDomain().equals(getString(R.string.default_domain))); } setListeners();