diff --git a/res/layout/incoming.xml b/res/layout/incoming.xml index 16ffcc4d3..91e53bbdd 100644 --- a/res/layout/incoming.xml +++ b/res/layout/incoming.xml @@ -28,15 +28,17 @@ - - diff --git a/src/org/linphone/IncomingCallActivity.java b/src/org/linphone/IncomingCallActivity.java index b4c3c1946..442be6247 100644 --- a/src/org/linphone/IncomingCallActivity.java +++ b/src/org/linphone/IncomingCallActivity.java @@ -18,9 +18,18 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package org.linphone; +import org.linphone.core.LinphoneAddress; +import org.linphone.core.LinphoneCall; +import org.linphone.core.LinphoneCore; +import org.linphone.ui.CallButton; +import org.linphone.ui.HangCallButton; + import android.app.Activity; import android.os.Bundle; +import android.view.KeyEvent; +import android.view.View; import android.view.WindowManager; +import android.view.View.OnClickListener; import android.widget.TextView; /** @@ -29,20 +38,28 @@ import android.widget.TextView; * * @author Guillaume Beraudo */ -public class IncomingCallActivity extends Activity { +public class IncomingCallActivity extends Activity implements OnClickListener { private TextView mNameView; private TextView mNumberView; + private LinphoneCall mCall; @Override protected void onCreate(Bundle savedInstanceState) { + LinphoneCore lc = LinphoneManager.getLc(); + mCall = lc.getCurrentCall(); + super.onCreate(savedInstanceState); setContentView(R.layout.incoming); mNameView = (TextView) findViewById(R.id.incoming_caller_name); mNumberView = (TextView) findViewById(R.id.incoming_caller_number); + HangCallButton hang = (HangCallButton) findViewById(R.id.Decline); + CallButton accept = (CallButton) findViewById(R.id.Answer); + hang.setExternalClickListener(this); + accept.setExternalClickListener(this); // set this flag so this activity will stay in front of the keyguard int flags = WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED; @@ -52,8 +69,23 @@ public class IncomingCallActivity extends Activity { @Override protected void onResume() { - mNameView.setText(getIntent().getStringExtra("name")); - mNumberView.setText(getIntent().getStringExtra("number")); + LinphoneAddress address = mCall.getRemoteAddress(); + String from = LinphoneManager.extractADisplayName(getResources(), address); + mNameView.setText(from); + mNumberView.setText(address.asStringUriOnly()); super.onResume(); } + + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_BACK || keyCode == KeyEvent.KEYCODE_HOME) { + LinphoneManager.getLc().terminateCall(mCall); + } + return super.onKeyDown(keyCode, event); + } + + @Override + public void onClick(View v) { + finish(); + } }