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