From 2d3744fdbd0c0fae288aeb50bf8759f3575f5252 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 30 Oct 2019 15:08:42 +0100 Subject: [PATCH] Changes for assistant : fixed SHA-256, improved logs & use of xml default configs --- .../AccountConnectionAssistantActivity.java | 16 ++++++-- .../linphone/assistant/AssistantActivity.java | 31 ++++++++++++++++ ...EmailAccountCreationAssistantActivity.java | 24 +++++++++--- ...ailAccountValidationAssistantActivity.java | 6 ++- .../GenericConnectionAssistantActivity.java | 9 +++++ .../OpenH264DownloadAssistantActivity.java | 6 +-- ...PhoneAccountCreationAssistantActivity.java | 24 +++++++++--- .../PhoneAccountLinkingAssistantActivity.java | 37 +++++++++++++------ .../main/res/raw/default_assistant_create.rc | 1 + .../main/res/raw/linphone_assistant_create.rc | 1 + 10 files changed, 125 insertions(+), 30 deletions(-) diff --git a/app/src/main/java/org/linphone/assistant/AccountConnectionAssistantActivity.java b/app/src/main/java/org/linphone/assistant/AccountConnectionAssistantActivity.java index 635994b82..7e4ed53f0 100644 --- a/app/src/main/java/org/linphone/assistant/AccountConnectionAssistantActivity.java +++ b/app/src/main/java/org/linphone/assistant/AccountConnectionAssistantActivity.java @@ -31,9 +31,11 @@ import android.widget.RelativeLayout; import android.widget.Switch; import android.widget.TextView; import androidx.annotation.Nullable; +import org.linphone.LinphoneManager; import org.linphone.R; import org.linphone.core.AccountCreator; import org.linphone.core.AccountCreatorListenerStub; +import org.linphone.core.Core; import org.linphone.core.DialPlan; import org.linphone.core.tools.Log; @@ -70,7 +72,6 @@ public class AccountConnectionAssistantActivity extends AssistantActivity { new View.OnClickListener() { @Override public void onClick(View v) { - mAccountCreator.setDomain(getString(R.string.default_domain)); mConnect.setEnabled(false); if (mUsernameConnectionSwitch.isChecked()) { @@ -83,7 +84,9 @@ public class AccountConnectionAssistantActivity extends AssistantActivity { AccountCreator.Status status = mAccountCreator.recoverAccount(); if (status != AccountCreator.Status.RequestOk) { - Log.e("[Account Connection] recoverAccount returned " + status); + Log.e( + "[Account Connection Assistant] recoverAccount returned " + + status); mConnect.setEnabled(true); showGenericErrorDialog(status); } @@ -202,7 +205,9 @@ public class AccountConnectionAssistantActivity extends AssistantActivity { @Override public void onRecoverAccount( AccountCreator creator, AccountCreator.Status status, String resp) { - Log.i("[Account Connection] onRecoverAccount status is " + status); + Log.i( + "[Account Connection Assistant] onRecoverAccount status is " + + status); if (status.equals(AccountCreator.Status.RequestOk)) { Intent intent = new Intent( @@ -216,6 +221,11 @@ public class AccountConnectionAssistantActivity extends AssistantActivity { } } }; + + Core core = LinphoneManager.getCore(); + if (core != null) { + reloadLinphoneAccountCreatorConfig(); + } } @Override diff --git a/app/src/main/java/org/linphone/assistant/AssistantActivity.java b/app/src/main/java/org/linphone/assistant/AssistantActivity.java index 2edc702b5..58852270e 100644 --- a/app/src/main/java/org/linphone/assistant/AssistantActivity.java +++ b/app/src/main/java/org/linphone/assistant/AssistantActivity.java @@ -33,6 +33,7 @@ import org.linphone.R; import org.linphone.activities.DialerActivity; import org.linphone.activities.LinphoneGenericActivity; import org.linphone.core.AccountCreator; +import org.linphone.core.Config; import org.linphone.core.Core; import org.linphone.core.DialPlan; import org.linphone.core.Factory; @@ -104,22 +105,52 @@ public abstract class AssistantActivity extends LinphoneGenericActivity } } + private void reloadAccountCreatorConfig(String path) { + Core core = LinphoneManager.getCore(); + if (core != null) { + core.loadConfigFromXml(path); + if (mAccountCreator != null) { + // Below two settings are applied to account creator when it is built. + // Reloading Core config after won't change the account creator configuration, + // hence the manual reload + Config config = LinphonePreferences.instance().getConfig(); + mAccountCreator.setDomain(config.getString("assistant", "domain", null)); + mAccountCreator.setAlgorithm(config.getString("assistant", "algorithm", null)); + } + } + } + + void reloadDefaultAccountCreatorConfig() { + Log.i("[Assistant] Reloading configuration with default"); + reloadAccountCreatorConfig(LinphonePreferences.instance().getDefaultDynamicConfigFile()); + } + + void reloadLinphoneAccountCreatorConfig() { + Log.i("[Assistant] Reloading configuration with specifics"); + reloadAccountCreatorConfig(LinphonePreferences.instance().getLinphoneDynamicConfigFile()); + } + void createProxyConfigAndLeaveAssistant() { Core core = LinphoneManager.getCore(); boolean useLinphoneDefaultValues = getString(R.string.default_domain).equals(mAccountCreator.getDomain()); if (useLinphoneDefaultValues) { + Log.i("[Assistant] Default domain found, reloading configuration"); core.loadConfigFromXml(LinphonePreferences.instance().getLinphoneDynamicConfigFile()); + } else { + Log.i("[Assistant] Third party domain found, keeping default values"); } ProxyConfig proxyConfig = mAccountCreator.createProxyConfig(); if (useLinphoneDefaultValues) { // Restore default values + Log.i("[Assistant] Restoring default assistant configuration"); core.loadConfigFromXml(LinphonePreferences.instance().getDefaultDynamicConfigFile()); } else { // If this isn't a sip.linphone.org account, disable push notifications and enable // service notification, otherwise incoming calls won't work (most probably) + Log.w("[Assistant] Unknown domain used, push probably won't work, enable service mode"); LinphonePreferences.instance().setServiceNotificationVisibility(true); LinphoneContext.instance().getNotificationManager().startForeground(); } diff --git a/app/src/main/java/org/linphone/assistant/EmailAccountCreationAssistantActivity.java b/app/src/main/java/org/linphone/assistant/EmailAccountCreationAssistantActivity.java index 36812b18a..dc11d3fb0 100644 --- a/app/src/main/java/org/linphone/assistant/EmailAccountCreationAssistantActivity.java +++ b/app/src/main/java/org/linphone/assistant/EmailAccountCreationAssistantActivity.java @@ -30,9 +30,11 @@ import android.view.View; import android.widget.EditText; import android.widget.TextView; import androidx.annotation.Nullable; +import org.linphone.LinphoneManager; import org.linphone.R; import org.linphone.core.AccountCreator; import org.linphone.core.AccountCreatorListenerStub; +import org.linphone.core.Core; import org.linphone.core.tools.Log; public class EmailAccountCreationAssistantActivity extends AssistantActivity { @@ -161,12 +163,13 @@ public class EmailAccountCreationAssistantActivity extends AssistantActivity { @Override public void onClick(View v) { enableButtonsAndFields(false); - mAccountCreator.setDomain(getString(R.string.default_domain)); AccountCreator.Status status = mAccountCreator.isAccountExist(); if (status != AccountCreator.Status.RequestOk) { enableButtonsAndFields(true); - Log.e("[Email Account Creation] isAccountExists returned " + status); + Log.e( + "[Email Account Creation Assistant] isAccountExists returned " + + status); showGenericErrorDialog(status); } } @@ -177,7 +180,9 @@ public class EmailAccountCreationAssistantActivity extends AssistantActivity { new AccountCreatorListenerStub() { public void onIsAccountExist( AccountCreator creator, AccountCreator.Status status, String resp) { - Log.i("[Email Account Creation] onIsAccountExist status is " + status); + Log.i( + "[Email Account Creation Assistant] onIsAccountExist status is " + + status); if (status.equals(AccountCreator.Status.AccountExist) || status.equals(AccountCreator.Status.AccountExistWithAlias)) { showAccountAlreadyExistsDialog(); @@ -185,7 +190,9 @@ public class EmailAccountCreationAssistantActivity extends AssistantActivity { } else if (status.equals(AccountCreator.Status.AccountNotExist)) { status = mAccountCreator.createAccount(); if (status != AccountCreator.Status.RequestOk) { - Log.e("[Email Account Creation] createAccount returned " + status); + Log.e( + "[Email Account Creation Assistant] createAccount returned " + + status); enableButtonsAndFields(true); showGenericErrorDialog(status); } @@ -198,7 +205,9 @@ public class EmailAccountCreationAssistantActivity extends AssistantActivity { @Override public void onCreateAccount( AccountCreator creator, AccountCreator.Status status, String resp) { - Log.i("[Email Account Creation] onCreateAccount status is " + status); + Log.i( + "[Email Account Creation Assistant] onCreateAccount status is " + + status); if (status.equals(AccountCreator.Status.AccountCreated)) { startActivity( new Intent( @@ -210,6 +219,11 @@ public class EmailAccountCreationAssistantActivity extends AssistantActivity { } } }; + + Core core = LinphoneManager.getCore(); + if (core != null) { + reloadLinphoneAccountCreatorConfig(); + } } private void enableButtonsAndFields(boolean enable) { diff --git a/app/src/main/java/org/linphone/assistant/EmailAccountValidationAssistantActivity.java b/app/src/main/java/org/linphone/assistant/EmailAccountValidationAssistantActivity.java index 40c6c342f..81d08f836 100644 --- a/app/src/main/java/org/linphone/assistant/EmailAccountValidationAssistantActivity.java +++ b/app/src/main/java/org/linphone/assistant/EmailAccountValidationAssistantActivity.java @@ -52,7 +52,9 @@ public class EmailAccountValidationAssistantActivity extends AssistantActivity { AccountCreator.Status status = mAccountCreator.isAccountActivated(); if (status != AccountCreator.Status.RequestOk) { - Log.e("[Email Account Validation] activateAccount returned " + status); + Log.e( + "[Email Account Validation Assistant] activateAccount returned " + + status); mFinishCreation.setEnabled(true); showGenericErrorDialog(status); } @@ -65,7 +67,7 @@ public class EmailAccountValidationAssistantActivity extends AssistantActivity { public void onIsAccountActivated( AccountCreator creator, AccountCreator.Status status, String resp) { Log.i( - "[Email Account Validation] onIsAccountActivated status is " + "[Email Account Validation Assistant] onIsAccountActivated status is " + status); if (status.equals(AccountCreator.Status.AccountActivated)) { createProxyConfigAndLeaveAssistant(); diff --git a/app/src/main/java/org/linphone/assistant/GenericConnectionAssistantActivity.java b/app/src/main/java/org/linphone/assistant/GenericConnectionAssistantActivity.java index 3dd5b8247..3c029e3f1 100644 --- a/app/src/main/java/org/linphone/assistant/GenericConnectionAssistantActivity.java +++ b/app/src/main/java/org/linphone/assistant/GenericConnectionAssistantActivity.java @@ -27,8 +27,11 @@ import android.widget.EditText; import android.widget.RadioGroup; import android.widget.TextView; import androidx.annotation.Nullable; +import org.linphone.LinphoneManager; import org.linphone.R; +import org.linphone.core.Core; import org.linphone.core.TransportType; +import org.linphone.core.tools.Log; public class GenericConnectionAssistantActivity extends AssistantActivity implements TextWatcher { private TextView mLogin; @@ -60,6 +63,12 @@ public class GenericConnectionAssistantActivity extends AssistantActivity implem mDomain = findViewById(R.id.assistant_domain); mDomain.addTextChangedListener(this); mTransport = findViewById(R.id.assistant_transports); + + Core core = LinphoneManager.getCore(); + if (core != null) { + Log.i("[Generic Connection Assistant] Reloading configuration with default"); + reloadDefaultAccountCreatorConfig(); + } } private void configureAccount() { diff --git a/app/src/main/java/org/linphone/assistant/OpenH264DownloadAssistantActivity.java b/app/src/main/java/org/linphone/assistant/OpenH264DownloadAssistantActivity.java index cc564fb7a..b2b38ecc5 100644 --- a/app/src/main/java/org/linphone/assistant/OpenH264DownloadAssistantActivity.java +++ b/app/src/main/java/org/linphone/assistant/OpenH264DownloadAssistantActivity.java @@ -58,7 +58,7 @@ public class OpenH264DownloadAssistantActivity extends AssistantActivity { public void onClick(View v) { mYes.setEnabled(false); mNo.setEnabled(false); - Log.e("[OpenH264 Downloader] Start download"); + Log.e("[OpenH264 Downloader Assistant] Start download"); mProgress.setVisibility(View.VISIBLE); mHelper.downloadCodec(); } @@ -71,7 +71,7 @@ public class OpenH264DownloadAssistantActivity extends AssistantActivity { public void onClick(View v) { mYes.setEnabled(false); mNo.setEnabled(false); - Log.e("[OpenH264 Downloader] Download refused"); + Log.e("[OpenH264 Downloader Assistant] Download refused"); goToLinphoneActivity(); } }); @@ -96,7 +96,7 @@ public class OpenH264DownloadAssistantActivity extends AssistantActivity { @Override public void OnError(String s) { - Log.e("[OpenH264 Downloader] " + s); + Log.e("[OpenH264 Downloader Assistant] " + s); mYes.setEnabled(true); mNo.setEnabled(true); } diff --git a/app/src/main/java/org/linphone/assistant/PhoneAccountCreationAssistantActivity.java b/app/src/main/java/org/linphone/assistant/PhoneAccountCreationAssistantActivity.java index fb66e5c45..424b934a0 100644 --- a/app/src/main/java/org/linphone/assistant/PhoneAccountCreationAssistantActivity.java +++ b/app/src/main/java/org/linphone/assistant/PhoneAccountCreationAssistantActivity.java @@ -30,9 +30,11 @@ import android.widget.EditText; import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.Nullable; +import org.linphone.LinphoneManager; import org.linphone.R; import org.linphone.core.AccountCreator; import org.linphone.core.AccountCreatorListenerStub; +import org.linphone.core.Core; import org.linphone.core.DialPlan; import org.linphone.core.tools.Log; @@ -74,11 +76,12 @@ public class PhoneAccountCreationAssistantActivity extends AssistantActivity { } else { mAccountCreator.setUsername(mAccountCreator.getPhoneNumber()); } - mAccountCreator.setDomain(getString(R.string.default_domain)); AccountCreator.Status status = mAccountCreator.isAccountExist(); if (status != AccountCreator.Status.RequestOk) { - Log.e("[Phone Account Creation] isAccountExists returned " + status); + Log.e( + "[Phone Account Creation Assistant] isAccountExists returned " + + status); enableButtonsAndFields(true); showGenericErrorDialog(status); } @@ -167,7 +170,9 @@ public class PhoneAccountCreationAssistantActivity extends AssistantActivity { new AccountCreatorListenerStub() { public void onIsAccountExist( AccountCreator creator, AccountCreator.Status status, String resp) { - Log.i("[Phone Account Creation] onIsAccountExist status is " + status); + Log.i( + "[Phone Account Creation Assistant] onIsAccountExist status is " + + status); if (status.equals(AccountCreator.Status.AccountExist) || status.equals(AccountCreator.Status.AccountExistWithAlias)) { showAccountAlreadyExistsDialog(); @@ -175,7 +180,9 @@ public class PhoneAccountCreationAssistantActivity extends AssistantActivity { } else if (status.equals(AccountCreator.Status.AccountNotExist)) { status = mAccountCreator.createAccount(); if (status != AccountCreator.Status.RequestOk) { - Log.e("[Phone Account Creation] createAccount returned " + status); + Log.e( + "[Phone Account Creation Assistant] createAccount returned " + + status); enableButtonsAndFields(true); showGenericErrorDialog(status); } @@ -188,7 +195,9 @@ public class PhoneAccountCreationAssistantActivity extends AssistantActivity { @Override public void onCreateAccount( AccountCreator creator, AccountCreator.Status status, String resp) { - Log.i("[Phone Account Creation] onCreateAccount status is " + status); + Log.i( + "[Phone Account Creation Assistant] onCreateAccount status is " + + status); if (status.equals(AccountCreator.Status.AccountCreated)) { startActivity( new Intent( @@ -200,6 +209,11 @@ public class PhoneAccountCreationAssistantActivity extends AssistantActivity { } } }; + + Core core = LinphoneManager.getCore(); + if (core != null) { + reloadLinphoneAccountCreatorConfig(); + } } @Override diff --git a/app/src/main/java/org/linphone/assistant/PhoneAccountLinkingAssistantActivity.java b/app/src/main/java/org/linphone/assistant/PhoneAccountLinkingAssistantActivity.java index 95edb6a52..02f23f189 100644 --- a/app/src/main/java/org/linphone/assistant/PhoneAccountLinkingAssistantActivity.java +++ b/app/src/main/java/org/linphone/assistant/PhoneAccountLinkingAssistantActivity.java @@ -56,7 +56,7 @@ public class PhoneAccountLinkingAssistantActivity extends AssistantActivity { int proxyConfigIndex = getIntent().getExtras().getInt("AccountNumber"); Core core = LinphoneManager.getCore(); if (core == null) { - Log.e("[Account Linking] Core not available"); + Log.e("[Account Linking Assistant] Core not available"); unexpectedError(); } @@ -66,12 +66,12 @@ public class PhoneAccountLinkingAssistantActivity extends AssistantActivity { Address identity = mProxyConfig.getIdentityAddress(); if (identity == null) { - Log.e("[Account Linking] Proxy doesn't have an identity address"); + Log.e("[Account Linking Assistant] 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 " + "[Account Linking Assistant] Can't link account on domain " + mProxyConfig.getDomain()); unexpectedError(); } @@ -79,18 +79,18 @@ public class PhoneAccountLinkingAssistantActivity extends AssistantActivity { AuthInfo authInfo = mProxyConfig.findAuthInfo(); if (authInfo == null) { - Log.e("[Account Linking] Auth info not found"); + Log.e("[Account Linking Assistant] Auth info not found"); unexpectedError(); } mAccountCreator.setHa1(authInfo.getHa1()); - - mAccountCreator.setDomain(getString(R.string.default_domain)); } else { - Log.e("[Account Linking] Proxy config index out of bounds: " + proxyConfigIndex); + Log.e( + "[Account Linking Assistant] Proxy config index out of bounds: " + + proxyConfigIndex); unexpectedError(); } } else { - Log.e("[Account Linking] Proxy config index not found"); + Log.e("[Account Linking Assistant] Proxy config index not found"); unexpectedError(); } @@ -114,7 +114,9 @@ public class PhoneAccountLinkingAssistantActivity extends AssistantActivity { AccountCreator.Status status = mAccountCreator.isAliasUsed(); if (status != AccountCreator.Status.RequestOk) { - Log.e("[Phone Account Linking] isAliasUsed returned " + status); + Log.e( + "[Phone Account Linking Assistant] isAliasUsed returned " + + status); enableButtonsAndFields(true); showGenericErrorDialog(status); } @@ -178,11 +180,15 @@ public class PhoneAccountLinkingAssistantActivity extends AssistantActivity { @Override public void onIsAliasUsed( AccountCreator creator, AccountCreator.Status status, String resp) { - Log.i("[Phone Account Linking] onIsAliasUsed status is " + status); + Log.i( + "[Phone Account Linking Assistant] onIsAliasUsed status is " + + status); if (status.equals(AccountCreator.Status.AliasNotExist)) { status = mAccountCreator.linkAccount(); if (status != AccountCreator.Status.RequestOk) { - Log.e("[Phone Account Linking] linkAccount returned " + status); + Log.e( + "[Phone Account Linking Assistant] linkAccount returned " + + status); enableButtonsAndFields(true); showGenericErrorDialog(status); } @@ -200,7 +206,9 @@ public class PhoneAccountLinkingAssistantActivity extends AssistantActivity { @Override public void onLinkAccount( AccountCreator creator, AccountCreator.Status status, String resp) { - Log.i("[Phone Account Linking] onLinkAccount status is " + status); + Log.i( + "[Phone Account Linking Assistant] onLinkAccount status is " + + status); if (status.equals(AccountCreator.Status.RequestOk)) { Intent intent = new Intent( @@ -214,6 +222,11 @@ public class PhoneAccountLinkingAssistantActivity extends AssistantActivity { } } }; + + Core core = LinphoneManager.getCore(); + if (core != null) { + reloadLinphoneAccountCreatorConfig(); + } } @Override diff --git a/app/src/main/res/raw/default_assistant_create.rc b/app/src/main/res/raw/default_assistant_create.rc index b96506737..489dfaa24 100644 --- a/app/src/main/res/raw/default_assistant_create.rc +++ b/app/src/main/res/raw/default_assistant_create.rc @@ -27,6 +27,7 @@
+ MD5 -1 0 diff --git a/app/src/main/res/raw/linphone_assistant_create.rc b/app/src/main/res/raw/linphone_assistant_create.rc index 0025e2f00..0c793b49e 100644 --- a/app/src/main/res/raw/linphone_assistant_create.rc +++ b/app/src/main/res/raw/linphone_assistant_create.rc @@ -27,6 +27,7 @@ https://lime.linphone.org/lime-server/lime-server.php
+ sip.linphone.org SHA-256 -1 1