diff --git a/src/org/linphone/LinphoneActivity.java b/src/org/linphone/LinphoneActivity.java index 2f4a99437..6c51f582e 100644 --- a/src/org/linphone/LinphoneActivity.java +++ b/src/org/linphone/LinphoneActivity.java @@ -106,7 +106,7 @@ public class LinphoneActivity extends FragmentActivity implements OnClickListene } setContentView(R.layout.main); - initButtons(); + initButtons(); if (LinphoneManager.isInstanciated()) { LinphoneManager.addListener(this); @@ -353,10 +353,15 @@ public class LinphoneActivity extends FragmentActivity implements OnClickListene public void updateStatusFragment(StatusFragment fragment) { statusFragment = fragment; + if (LinphoneManager.getLc().getDefaultProxyConfig() != null) { statusFragment.registrationStateChanged(LinphoneManager.getLc().getDefaultProxyConfig().getState()); } } + + public StatusFragment getStatusFragment() { + return statusFragment; + } public ArrayList getChatList() { if (chatStorage != null) { @@ -470,8 +475,7 @@ public class LinphoneActivity extends FragmentActivity implements OnClickListene changeCurrentFragment(FragmentsAvailable.DIALER, null); } - public void onRegistrationStateChanged(RegistrationState state, - String message) { + public void onRegistrationStateChanged(RegistrationState state, String message) { if (statusFragment != null) { statusFragment.registrationStateChanged(state); } diff --git a/src/org/linphone/LinphoneService.java b/src/org/linphone/LinphoneService.java index 0b9e2105b..599f0df64 100644 --- a/src/org/linphone/LinphoneService.java +++ b/src/org/linphone/LinphoneService.java @@ -471,14 +471,13 @@ public final class LinphoneService extends Service implements LinphoneServiceLis sendNotification(IC_LEVEL_OFFLINE, R.string.notification_register_failure); } - if (state == RegistrationState.RegistrationOk || state == RegistrationState.RegistrationFailed) { - mHandler.post(new Runnable() { - public void run() { - if (LinphoneActivity.isInstanciated()) - LinphoneActivity.instance().onRegistrationStateChanged(state, message); + mHandler.post(new Runnable() { + public void run() { + if (LinphoneActivity.isInstanciated()) { + LinphoneActivity.instance().onRegistrationStateChanged(state, message); } - }); - } + } + }); } public void setActivityToLaunchOnIncomingReceived(Class activity) { diff --git a/src/org/linphone/StatusFragment.java b/src/org/linphone/StatusFragment.java index 9936b7e4e..e1c681069 100644 --- a/src/org/linphone/StatusFragment.java +++ b/src/org/linphone/StatusFragment.java @@ -67,6 +67,7 @@ public class StatusFragment extends Fragment { @Override public void onAttach(Activity activity) { super.onAttach(activity); + isAttached = true; if (activity instanceof LinphoneActivity) { ((LinphoneActivity) activity).updateStatusFragment(this); @@ -75,8 +76,6 @@ public class StatusFragment extends Fragment { ((InCallActivity) activity).updateStatusFragment(this); isInCall = true; } - - isAttached = true; } @Override @@ -93,7 +92,7 @@ public class StatusFragment extends Fragment { @Override public void run() { try { - if (state == RegistrationState.RegistrationOk) { + if (state == RegistrationState.RegistrationOk && LinphoneManager.getLc().getDefaultProxyConfig().isRegistered()) { statusLed.setImageResource(R.drawable.connected_led); statusText.setText(getString(R.string.status_connected)); } else {