diff --git a/app/src/main/java/org/linphone/activities/DialerActivity.java b/app/src/main/java/org/linphone/activities/DialerActivity.java index e8c0bb056..911bfa527 100644 --- a/app/src/main/java/org/linphone/activities/DialerActivity.java +++ b/app/src/main/java/org/linphone/activities/DialerActivity.java @@ -57,6 +57,7 @@ public class DialerActivity extends MainActivity implements AddressText.AddressC private boolean mIsTransfer; private CoreListenerStub mListener; private boolean mInterfaceLoaded; + private String mAddressToCallOnLayoutReady; @Override protected void onCreate(Bundle savedInstanceState) { @@ -84,6 +85,10 @@ public class DialerActivity extends MainActivity implements AddressText.AddressC fragmentContainer.addView(view, params); initUI(view); mInterfaceLoaded = true; + if (mAddressToCallOnLayoutReady != null) { + mAddress.setText(mAddressToCallOnLayoutReady); + mAddressToCallOnLayoutReady = null; + } } }); @@ -318,7 +323,11 @@ public class DialerActivity extends MainActivity implements AddressText.AddressC } if (addressToCall != null) { - mAddress.setText(addressToCall); + if (mAddress != null) { + mAddress.setText(addressToCall); + } else { + mAddressToCallOnLayoutReady = addressToCall; + } } } diff --git a/app/src/main/java/org/linphone/activities/LinphoneLauncherActivity.java b/app/src/main/java/org/linphone/activities/LinphoneLauncherActivity.java index 7b9f74939..975368cad 100644 --- a/app/src/main/java/org/linphone/activities/LinphoneLauncherActivity.java +++ b/app/src/main/java/org/linphone/activities/LinphoneLauncherActivity.java @@ -28,6 +28,7 @@ import org.linphone.LinphoneService; import org.linphone.R; import org.linphone.assistant.MenuAssistantActivity; import org.linphone.chat.ChatActivity; +import org.linphone.contacts.ContactsActivity; import org.linphone.history.HistoryActivity; import org.linphone.settings.LinphonePreferences; import org.linphone.utils.LinphoneUtils; @@ -74,6 +75,8 @@ public class LinphoneLauncherActivity extends Activity { classToStart = ChatActivity.class; } else if (HistoryActivity.NAME.equals(activity)) { classToStart = HistoryActivity.class; + } else if (ContactsActivity.NAME.equals(activity)) { + classToStart = ContactsActivity.class; } else { classToStart = DialerActivity.class; } @@ -97,6 +100,7 @@ public class LinphoneLauncherActivity extends Activity { } intent.setAction(getIntent().getAction()); intent.setType(getIntent().getType()); + intent.setData(getIntent().getData()); startActivity(intent); } }, diff --git a/app/src/main/java/org/linphone/contacts/ContactsActivity.java b/app/src/main/java/org/linphone/contacts/ContactsActivity.java index 21ea2f2d3..fe4cda67f 100644 --- a/app/src/main/java/org/linphone/contacts/ContactsActivity.java +++ b/app/src/main/java/org/linphone/contacts/ContactsActivity.java @@ -28,13 +28,17 @@ import android.view.View; import android.widget.Toast; import org.linphone.R; import org.linphone.activities.MainActivity; +import org.linphone.core.tools.Log; public class ContactsActivity extends MainActivity { + public static final String NAME = "Contacts"; + private boolean mEditOnClick; private String mEditSipUri, mEditDisplayName; @Override protected void onCreate(Bundle savedInstanceState) { + getIntent().putExtra("Activity", NAME); super.onCreate(savedInstanceState); mPermissionsToHave = @@ -53,6 +57,10 @@ public class ContactsActivity extends MainActivity { if (getIntent() != null && getIntent().getExtras() != null) { Bundle extras = getIntent().getExtras(); + Uri uri = getIntent().getData(); + if (uri != null) { + extras.putString("ContactUri", uri.toString()); + } handleIntentExtras(extras); } else if (getIntent() != null && getIntent().getData() != null) { Uri uri = getIntent().getData(); @@ -132,6 +140,7 @@ public class ContactsActivity extends MainActivity { if (extras.containsKey("ContactUri")) { String uri = extras.getString("ContactUri"); + Log.i("[Contacts Activity] Found ContactUri " + uri); Uri contactUri = Uri.parse(uri); String id = ContactsManager.getInstance().getAndroidContactIdFromUri(contactUri); @@ -142,6 +151,7 @@ public class ContactsActivity extends MainActivity { } } else if (extras.containsKey("Contact")) { LinphoneContact contact = (LinphoneContact) extras.get("Contact"); + Log.i("[Contacts Activity] Found Contact " + contact); if (extras.containsKey("Edit")) { showContactEdit(contact, extras, true); } else { @@ -151,6 +161,11 @@ public class ContactsActivity extends MainActivity { mEditOnClick = extras.getBoolean("CreateOrEdit"); mEditSipUri = extras.getString("SipUri", null); mEditDisplayName = extras.getString("DisplayName", null); + Log.i( + "[Contacts Activity] CreateOrEdit with values " + + mEditSipUri + + " / " + + mEditDisplayName); Toast.makeText(this, R.string.toast_choose_contact_for_edition, Toast.LENGTH_LONG) .show(); @@ -179,6 +194,7 @@ public class ContactsActivity extends MainActivity { Bundle extras = new Bundle(); if (contact != null) { extras.putSerializable("Contact", contact); + Log.i("[Contacts Activity] Displaying Contact " + contact); } ContactDetailsFragment fragment = new ContactDetailsFragment(); @@ -193,6 +209,7 @@ public class ContactsActivity extends MainActivity { private void showContactEdit(LinphoneContact contact, Bundle extras, boolean isChild) { if (contact != null) { extras.putSerializable("Contact", contact); + Log.i("[Contacts Activity] Editing Contact " + contact); } if (mEditOnClick) { mEditOnClick = false;