From b0d78b4517d533987ae44310dbe8310f192090cb Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 24 Sep 2012 14:01:39 +0200 Subject: [PATCH] Added outgoing call from intent --- src/org/linphone/DialerFragment.java | 19 +++++++++++++++++++ src/org/linphone/LinphoneActivity.java | 7 +++++++ 2 files changed, 26 insertions(+) diff --git a/src/org/linphone/DialerFragment.java b/src/org/linphone/DialerFragment.java index c875cd98a..e6cdb1f01 100644 --- a/src/org/linphone/DialerFragment.java +++ b/src/org/linphone/DialerFragment.java @@ -18,12 +18,14 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ import org.linphone.core.LinphoneCore; +import org.linphone.core.Log; import org.linphone.ui.AddressAware; import org.linphone.ui.AddressText; import org.linphone.ui.CallButton; import org.linphone.ui.EraseButton; import android.app.Activity; +import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.support.v4.app.Fragment; @@ -177,4 +179,21 @@ public class DialerFragment extends Fragment { public void enableDisableAddContact() { mAddContact.setEnabled(LinphoneManager.getLc().getCallsNb() > 0 || !mAddress.getText().toString().equals("")); } + + public void newOutgoingCall(Intent intent) { + String scheme = intent.getData().getScheme(); + if (scheme.startsWith("imto")) { + mAddress.setText("sip:" + intent.getData().getLastPathSegment()); + } else if (scheme.startsWith("call") || scheme.startsWith("sip")) { + mAddress.setText(intent.getData().getSchemeSpecificPart()); + } else { + Log.e("Unknown scheme: ",scheme); + mAddress.setText(intent.getData().getSchemeSpecificPart()); + } + + mAddress.clearDisplayedName(); + intent.setData(null); + + LinphoneManager.getInstance().newOutgoingCall(mAddress); + } } diff --git a/src/org/linphone/LinphoneActivity.java b/src/org/linphone/LinphoneActivity.java index 32d648779..dfabdf154 100644 --- a/src/org/linphone/LinphoneActivity.java +++ b/src/org/linphone/LinphoneActivity.java @@ -1096,8 +1096,15 @@ public class LinphoneActivity extends FragmentActivity implements OnClickListene } } } + else { + if (dialerFragment != null) { + ((DialerFragment) dialerFragment).newOutgoingCall(intent); + } + } } + + public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if (currentFragment == FragmentsAvailable.DIALER) {