diff --git a/src/org/linphone/DialerActivity.java b/src/org/linphone/DialerActivity.java index 9fa7d418d..f72396dbe 100644 --- a/src/org/linphone/DialerActivity.java +++ b/src/org/linphone/DialerActivity.java @@ -84,6 +84,7 @@ public class DialerActivity extends Activity implements LinphoneGuiListener { private LinearLayout mInCallControls; private static DialerActivity instance; + public boolean mVisible; private boolean mPreventDoubleCallOnRotation; private AlertDialog wizardDialog; @@ -359,6 +360,7 @@ public class DialerActivity extends Activity implements LinphoneGuiListener { @Override protected void onPause() { super.onPause(); + mVisible = false; if (mCamera != null) { mCamera.release(); @@ -502,6 +504,7 @@ public class DialerActivity extends Activity implements LinphoneGuiListener { // and set to the to be destroyed Dialer. // Note1: We wait as long as possible before setting the last message. // Note2: Linphone service is in charge of instantiating LinphoneManager + mVisible = true; mStatus.setText(LinphoneManager.getInstance().getLastLcStatusMessage()); super.onResume(); @@ -534,6 +537,11 @@ public class DialerActivity extends Activity implements LinphoneGuiListener { @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (LinphoneUtils.onKeyVolumeSoftAdjust(keyCode)) return true; + if (keyCode == KeyEvent.KEYCODE_BACK && LinphoneManager.getLc().isIncall()) { + // If we are in call on dialer, we go back to the incall view + LinphoneActivity.instance().startIncallActivity(); + return true; + } return super.onKeyDown(keyCode, event); } } diff --git a/src/org/linphone/VideoCallActivity.java b/src/org/linphone/VideoCallActivity.java index 42bd32e4d..780ec212b 100755 --- a/src/org/linphone/VideoCallActivity.java +++ b/src/org/linphone/VideoCallActivity.java @@ -480,7 +480,8 @@ public class VideoCallActivity extends Activity implements params.setMargins(0, 0, 15, 15); params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); - mVideoCaptureViewReady.setLayoutParams(params); + if (mVideoViewReady != null) + mVideoCaptureViewReady.setLayoutParams(params); } public void onConfigurationChanged(Configuration newConfig) { diff --git a/src/org/linphone/ui/Digit.java b/src/org/linphone/ui/Digit.java index 050a67d53..83e74661a 100644 --- a/src/org/linphone/ui/Digit.java +++ b/src/org/linphone/ui/Digit.java @@ -18,6 +18,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package org.linphone.ui; +import org.linphone.DialerActivity; import org.linphone.LinphoneManager; import org.linphone.LinphoneService; import org.linphone.R; @@ -103,9 +104,8 @@ public class Digit extends Button implements AddressAware { LinphoneCore lc = LinphoneManager.getLc(); lc.stopDtmf(); mIsDtmfStarted =false; - if (lc.isIncall()) { + if (lc.isIncall() && !DialerActivity.instance().mVisible) { lc.sendDtmf(mKeyCode.charAt(0)); -// return; } }