diff --git a/src/org/linphone/DialerFragment.java b/src/org/linphone/DialerFragment.java index 32c54c3ed..6a760dd3f 100644 --- a/src/org/linphone/DialerFragment.java +++ b/src/org/linphone/DialerFragment.java @@ -122,13 +122,15 @@ public class DialerFragment extends Fragment { } } + instance = this; + return view; } /** * @return null if not ready yet */ - public static DialerFragment instance() { + public static DialerFragment instance() { return instance; } @@ -166,7 +168,7 @@ public class DialerFragment extends Fragment { } public void resetLayout(boolean callTransfer) { - isCallTransferOngoing = callTransfer; + isCallTransferOngoing = LinphoneActivity.instance().isCallTransfer(); LinphoneCore lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull(); if (lc == null) { return; diff --git a/src/org/linphone/LinphoneActivity.java b/src/org/linphone/LinphoneActivity.java index 5a93cc348..0dea57932 100644 --- a/src/org/linphone/LinphoneActivity.java +++ b/src/org/linphone/LinphoneActivity.java @@ -133,6 +133,7 @@ public class LinphoneActivity extends Activity implements OnClickListener, Conta private ImageView menu; private boolean fetchedContactsOnce = false; private boolean doNotGoToCallActivity = false; + private boolean callTransfer = false; static final boolean isInstanciated() { return instance != null; @@ -998,7 +999,11 @@ public class LinphoneActivity extends Activity implements OnClickListener, Conta } } - private void initInCallMenuLayout(boolean callTransfer) { + public Boolean isCallTransfer(){ + return callTransfer; + } + + private void initInCallMenuLayout(final boolean callTransfer) { selectMenu(FragmentsAvailable.DIALER); DialerFragment dialerFragment = DialerFragment.instance(); if (dialerFragment != null) { @@ -1009,7 +1014,7 @@ public class LinphoneActivity extends Activity implements OnClickListener, Conta public void resetClassicMenuLayoutAndGoBackToCallIfStillRunning() { DialerFragment dialerFragment = DialerFragment.instance(); if (dialerFragment != null) { - ((DialerFragment) dialerFragment).resetLayout(false); + ((DialerFragment) dialerFragment).resetLayout(true); } if (LinphoneManager.isInstanciated() && LinphoneManager.getLc().getCallsNb() > 0) { @@ -1073,7 +1078,7 @@ public class LinphoneActivity extends Activity implements OnClickListener, Conta } } else if (resultCode == Activity.RESULT_FIRST_USER && requestCode == CALL_ACTIVITY) { getIntent().putExtra("PreviousActivity", CALL_ACTIVITY); - boolean callTransfer = data == null ? false : data.getBooleanExtra("Transfer", false); + callTransfer = data == null ? false : data.getBooleanExtra("Transfer", false); boolean chat = data == null ? false : data.getBooleanExtra("chat", false); if(chat){ pendingFragmentTransaction = FragmentsAvailable.CHAT_LIST; @@ -1103,6 +1108,8 @@ public class LinphoneActivity extends Activity implements OnClickListener, Conta if (lc != null) { lc.removeListener(mListener); } + + callTransfer = false; super.onPause(); }