From 9e0a441896f5161fefeefca6705def1bb0e7719c Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Fri, 17 May 2019 10:51:04 +0200 Subject: [PATCH] Fixed crash & improved logs when linphone is started from a contact --- app/src/main/AndroidManifest.xml | 5 +-- .../java/org/linphone/LinphoneService.java | 3 +- .../linphone/activities/DialerActivity.java | 38 +++++++++++-------- 3 files changed, 24 insertions(+), 22 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a67218abd..09a309679 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -87,19 +87,16 @@ android:name=".activities.DialerActivity" android:launchMode="singleTop"> + - - - - diff --git a/app/src/main/java/org/linphone/LinphoneService.java b/app/src/main/java/org/linphone/LinphoneService.java index 0bf1e6390..c05fc4eed 100644 --- a/app/src/main/java/org/linphone/LinphoneService.java +++ b/app/src/main/java/org/linphone/LinphoneService.java @@ -190,10 +190,9 @@ public final class LinphoneService extends Service { return START_STICKY; } - mLinphoneManager = new LinphoneManager(this); sInstance = this; // sInstance is ready once linphone manager has been created - + mNotificationManager = new NotificationsManager(this); if (Version.sdkAboveOrEqual(Version.API26_O_80) && intent != null diff --git a/app/src/main/java/org/linphone/activities/DialerActivity.java b/app/src/main/java/org/linphone/activities/DialerActivity.java index a4f4927ca..17cb43cec 100644 --- a/app/src/main/java/org/linphone/activities/DialerActivity.java +++ b/app/src/main/java/org/linphone/activities/DialerActivity.java @@ -22,6 +22,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. import android.Manifest; import android.content.Intent; import android.content.res.Configuration; +import android.net.Uri; import android.os.Bundle; import android.view.LayoutInflater; import android.view.TextureView; @@ -266,24 +267,29 @@ public class DialerActivity extends MainActivity implements AddressText.AddressC String numberToCall = intent.getStringExtra("NumberToCall"); Log.i("[Dialer] ACTION_CALL_LINPHONE with number: " + numberToCall); LinphoneManager.getCallManager().newOutgoingCall(numberToCall, null); - } else if (Intent.ACTION_CALL.equals(action)) { - if (intent.getData() != null) { - addressToCall = intent.getData().toString(); - addressToCall = addressToCall.replace("%40", "@"); - addressToCall = addressToCall.replace("%3A", ":"); - if (addressToCall.startsWith("sip:")) { - addressToCall = addressToCall.substring("sip:".length()); - } else if (addressToCall.startsWith("tel:")) { - addressToCall = addressToCall.substring("tel:".length()); + } else { + Uri uri = intent.getData(); + if (uri != null) { + Log.i("[Dialer] Intent data is: " + uri.toString()); + if (Intent.ACTION_CALL.equals(action)) { + addressToCall = intent.getData().toString(); + addressToCall = addressToCall.replace("%40", "@"); + addressToCall = addressToCall.replace("%3A", ":"); + if (addressToCall.startsWith("sip:")) { + addressToCall = addressToCall.substring("sip:".length()); + } else if (addressToCall.startsWith("tel:")) { + addressToCall = addressToCall.substring("tel:".length()); + } + Log.i("[Dialer] ACTION_CALL with number: " + addressToCall); + } else { + addressToCall = + ContactsManager.getInstance() + .getAddressOrNumberForAndroidContact(getContentResolver(), uri); + Log.i("[Dialer] " + action + " with number: " + addressToCall); } - Log.i("[Dialer] ACTION_CALL with number: " + addressToCall); + } else { + Log.w("[Dialer] Intent data is null for action " + action); } - } else if (Intent.ACTION_VIEW.equals(action)) { - addressToCall = - ContactsManager.getInstance() - .getAddressOrNumberForAndroidContact( - getContentResolver(), intent.getData()); - Log.i("[Dialer] ACTION_VIEW with number: " + addressToCall); } if (addressToCall != null) {