diff --git a/src/android/org/linphone/ContactEditorFragment.java b/src/android/org/linphone/ContactEditorFragment.java index 54df95532..b44332209 100644 --- a/src/android/org/linphone/ContactEditorFragment.java +++ b/src/android/org/linphone/ContactEditorFragment.java @@ -18,16 +18,6 @@ package org.linphone; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.IOException; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; - -import org.linphone.mediastream.Log; -import org.linphone.mediastream.Version; - import android.annotation.SuppressLint; import android.app.Activity; import android.app.Dialog; @@ -57,6 +47,16 @@ import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; +import org.linphone.mediastream.Log; +import org.linphone.mediastream.Version; + +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.IOException; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + public class ContactEditorFragment extends Fragment { private View view; private ImageView cancel, deleteContact, ok; @@ -73,7 +73,7 @@ public class ContactEditorFragment extends Fragment { private List numbersAndAddresses; private int firstSipAddressIndex = -1; private LinearLayout sipAddresses, numbers; - private String newSipOrNumberToAdd; + private String newSipOrNumberToAdd, newDisplayName; private Uri pickedPhotoForContactUri; private byte[] photoToAdd; @@ -90,9 +90,14 @@ public class ContactEditorFragment extends Fragment { isNewContact = false; if (getArguments().getString("NewSipAdress") != null) { newSipOrNumberToAdd = getArguments().getString("NewSipAdress"); + }if (getArguments().getString("NewDisplayName") != null) { + newDisplayName = getArguments().getString("NewDisplayName"); } } else if (getArguments().getString("NewSipAdress") != null) { newSipOrNumberToAdd = getArguments().getString("NewSipAdress"); + if (getArguments().getString("NewDisplayName") != null) { + newDisplayName = getArguments().getString("NewDisplayName"); + } } } @@ -439,6 +444,12 @@ public class ContactEditorFragment extends Fragment { } } + if (newDisplayName != null) { + EditText lastNameEditText = (EditText) view.findViewById(R.id.contactLastName); + if (view != null) + lastNameEditText.setText(newDisplayName); + } + if (controls.getChildCount() == 0) { addEmptyRowToAllowNewNumberOrAddress(controls,false); } diff --git a/src/android/org/linphone/ContactsListFragment.java b/src/android/org/linphone/ContactsListFragment.java index dbab611d7..59b400167 100644 --- a/src/android/org/linphone/ContactsListFragment.java +++ b/src/android/org/linphone/ContactsListFragment.java @@ -19,12 +19,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. package org.linphone; -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Locale; -import java.util.Map; - import android.app.Dialog; import android.app.Fragment; import android.os.Bundle; @@ -49,6 +43,12 @@ import android.widget.ProgressBar; import android.widget.SectionIndexer; import android.widget.TextView; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; + /** * @author Sylvain Berfini */ @@ -62,7 +62,7 @@ public class ContactsListFragment extends Fragment implements OnClickListener, O private LinearLayout editList, topbar; private int lastKnownPosition; private boolean editOnClick = false, editConsumed = false, onlyDisplayChatAddress = false; - private String sipAddressToAdd; + private String sipAddressToAdd, displayName = null; private ImageView clearSearchField; private EditText searchField; private ProgressBar contactsFetchInProgress; @@ -75,8 +75,9 @@ public class ContactsListFragment extends Fragment implements OnClickListener, O if (getArguments() != null) { editOnClick = getArguments().getBoolean("EditOnClick"); sipAddressToAdd = getArguments().getString("SipAddress"); - - onlyDisplayChatAddress = getArguments().getBoolean("ChatAddressOnly"); + if(getArguments().getString("DisplayName") != null) + displayName = getArguments().getString("DisplayName"); + onlyDisplayChatAddress = getArguments().getBoolean("ChatAddressOnly"); } noSipContact = (TextView) view.findViewById(R.id.noSipContact); @@ -253,7 +254,10 @@ public class ContactsListFragment extends Fragment implements OnClickListener, O if (id == R.id.newContact) { editConsumed = true; - LinphoneActivity.instance().addContact(null, sipAddressToAdd); + if(displayName != null) + LinphoneActivity.instance().addContact(displayName, sipAddressToAdd); + else + LinphoneActivity.instance().addContact(null, sipAddressToAdd); } else if (id == R.id.clearSearchField) { searchField.setText(""); diff --git a/src/android/org/linphone/HistoryDetailFragment.java b/src/android/org/linphone/HistoryDetailFragment.java index 8ede8d395..5d66f0fbb 100644 --- a/src/android/org/linphone/HistoryDetailFragment.java +++ b/src/android/org/linphone/HistoryDetailFragment.java @@ -164,13 +164,17 @@ public class HistoryDetailFragment extends Fragment implements OnClickListener { LinphoneActivity.instance().displayChat(sipUri, null, null); } else if (id == R.id.add_contact) { String uri = sipUri; + LinphoneAddress addr = null; try { - LinphoneAddress addr = LinphoneCoreFactory.instance().createLinphoneAddress(sipUri); + addr = LinphoneCoreFactory.instance().createLinphoneAddress(sipUri); uri = addr.asStringUriOnly(); } catch (LinphoneCoreException e) { Log.e(e); } - LinphoneActivity.instance().displayContactsForEdition(uri); + if(addr != null && !addr.getDisplayName().equals("Dust Android")) + LinphoneActivity.instance().displayContactsForEdition(addr.asStringUriOnly(), addr.getDisplayName()); + else + LinphoneActivity.instance().displayContactsForEdition(uri); } else if (id == R.id.goto_contact) { LinphoneActivity.instance().displayContact(contact, false); } diff --git a/src/android/org/linphone/LinphoneActivity.java b/src/android/org/linphone/LinphoneActivity.java index ed1a4ca34..1d318a58e 100644 --- a/src/android/org/linphone/LinphoneActivity.java +++ b/src/android/org/linphone/LinphoneActivity.java @@ -628,6 +628,14 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick changeCurrentFragment(FragmentsAvailable.ABOUT, null); } + public void displayContactsForEdition(String sipAddress, String displayName) { + Bundle extras = new Bundle(); + extras.putBoolean("EditOnClick", true); + extras.putString("SipAddress", sipAddress); + extras.putString("DisplayName", displayName); + changeCurrentFragment(FragmentsAvailable.CONTACTS_LIST, extras); + } + public void displayAssistant() { startActivity(new Intent(LinphoneActivity.this, AssistantActivity.class)); } @@ -1091,6 +1099,7 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick { Bundle extras = new Bundle(); extras.putSerializable("NewSipAdress", sipUri); + extras.putSerializable("NewDisplayName", displayName); changeCurrentFragment(FragmentsAvailable.CONTACT_EDITOR, extras); } diff --git a/submodules/linphone b/submodules/linphone index ddd080522..f28d968a6 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit ddd08052226c879df63b08ab11d4a4917cfc1da5 +Subproject commit f28d968a67eab65e07e60ef8a8b19621c6401e82 diff --git a/submodules/mediastreamer2 b/submodules/mediastreamer2 index 6b78f9562..d765c5b94 160000 --- a/submodules/mediastreamer2 +++ b/submodules/mediastreamer2 @@ -1 +1 @@ -Subproject commit 6b78f95624660c4e1160c3caac74732250321ce1 +Subproject commit d765c5b947f2de52d97061e80784091ec043f5a0 diff --git a/submodules/oRTP b/submodules/oRTP index ce3dedb58..e9c2d48c9 160000 --- a/submodules/oRTP +++ b/submodules/oRTP @@ -1 +1 @@ -Subproject commit ce3dedb58706f154c647bc99412aca8a42416d9d +Subproject commit e9c2d48c917d78c529eefb9f824ae52238f950d4