Fix crash with sms configuration

This commit is contained in:
Sylvain Berfini 2014-07-15 16:13:29 +02:00
parent d36697ee33
commit 5a32346d2c
2 changed files with 21 additions and 5 deletions

View file

@ -54,8 +54,12 @@ public class LinphonePreferences {
}
public void setContext(Context c) {
mContext = c;
}
private String getString(int key) {
if (mContext == null) {
if (mContext == null && LinphoneManager.isInstanciated()) {
mContext = LinphoneManager.getInstance().getContext();
}
@ -71,8 +75,14 @@ public class LinphonePreferences {
public LpConfig getConfig() {
LinphoneCore lc = getLc();
if (lc != null)
if (lc != null) {
return lc.getConfig();
}
if (!LinphoneManager.isInstanciated()) {
Log.w("LinphoneManager not instanciated yet...");
return LinphoneCoreFactory.instance().createLpConfig(mContext.getFilesDir().getAbsolutePath() + "/.linphonerc");
}
return LinphoneCoreFactory.instance().createLpConfig(LinphoneManager.getInstance().mLinphoneConfigFile);
}
@ -986,9 +996,13 @@ public class LinphonePreferences {
}
public void setRemoteProvisioningUrl(String url) {
if (url != null && url.length() == 0)
if (url != null && url.length() == 0) {
url = null;
getConfig().setString("misc", "config-uri", url);
}
LpConfig config = getConfig();
config.setString("misc", "config-uri", url);
config.sync();
}
public String getRemoteProvisioningUrl() {

View file

@ -22,6 +22,7 @@ import static android.content.Intent.ACTION_MAIN;
import org.linphone.LinphoneActivity;
import org.linphone.LinphoneLauncherActivity;
import org.linphone.LinphoneManager;
import org.linphone.LinphonePreferences;
import org.linphone.LinphoneService;
import org.linphone.LinphoneSimpleListener.LinphoneOnRemoteProvisioningListener;
@ -157,13 +158,14 @@ public class RemoteProvisioningActivity extends Activity implements LinphoneOnRe
private void setRemoteProvisioningAddressAndRestart(String configUri) {
if (spinner != null) spinner.setVisibility(View.VISIBLE);
LinphonePreferences.instance().setContext(this); // Needed, else the next call will crash
LinphonePreferences.instance().setRemoteProvisioningUrl(configUri);
LinphonePreferences.instance().firstRemoteProvisioningSuccessful();
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
// Restart Linphone
LinphoneManager.destroy();
stopService(new Intent(ACTION_MAIN).setClass(RemoteProvisioningActivity.this, LinphoneService.class));
Intent intent = new Intent();
intent.setClass(RemoteProvisioningActivity.this, LinphoneLauncherActivity.class);