[DisplayName] automatically add displayName in contactEditor if create new contact and DisplayName exists

This commit is contained in:
Brieuc Viel 2017-09-27 14:28:52 +02:00
parent 21ed2955ef
commit ab6e3737b1
7 changed files with 54 additions and 26 deletions

View file

@ -18,16 +18,6 @@ package org.linphone;
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 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.annotation.SuppressLint;
import android.app.Activity; import android.app.Activity;
import android.app.Dialog; import android.app.Dialog;
@ -57,6 +47,16 @@ import android.widget.EditText;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.LinearLayout; 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 { public class ContactEditorFragment extends Fragment {
private View view; private View view;
private ImageView cancel, deleteContact, ok; private ImageView cancel, deleteContact, ok;
@ -73,7 +73,7 @@ public class ContactEditorFragment extends Fragment {
private List<LinphoneNumberOrAddress> numbersAndAddresses; private List<LinphoneNumberOrAddress> numbersAndAddresses;
private int firstSipAddressIndex = -1; private int firstSipAddressIndex = -1;
private LinearLayout sipAddresses, numbers; private LinearLayout sipAddresses, numbers;
private String newSipOrNumberToAdd; private String newSipOrNumberToAdd, newDisplayName;
private Uri pickedPhotoForContactUri; private Uri pickedPhotoForContactUri;
private byte[] photoToAdd; private byte[] photoToAdd;
@ -90,9 +90,14 @@ public class ContactEditorFragment extends Fragment {
isNewContact = false; isNewContact = false;
if (getArguments().getString("NewSipAdress") != null) { if (getArguments().getString("NewSipAdress") != null) {
newSipOrNumberToAdd = getArguments().getString("NewSipAdress"); newSipOrNumberToAdd = getArguments().getString("NewSipAdress");
}if (getArguments().getString("NewDisplayName") != null) {
newDisplayName = getArguments().getString("NewDisplayName");
} }
} else if (getArguments().getString("NewSipAdress") != null) { } else if (getArguments().getString("NewSipAdress") != null) {
newSipOrNumberToAdd = getArguments().getString("NewSipAdress"); 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) { if (controls.getChildCount() == 0) {
addEmptyRowToAllowNewNumberOrAddress(controls,false); addEmptyRowToAllowNewNumberOrAddress(controls,false);
} }

View file

@ -19,12 +19,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
package org.linphone; 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.Dialog;
import android.app.Fragment; import android.app.Fragment;
import android.os.Bundle; import android.os.Bundle;
@ -49,6 +43,12 @@ import android.widget.ProgressBar;
import android.widget.SectionIndexer; import android.widget.SectionIndexer;
import android.widget.TextView; 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 * @author Sylvain Berfini
*/ */
@ -62,7 +62,7 @@ public class ContactsListFragment extends Fragment implements OnClickListener, O
private LinearLayout editList, topbar; private LinearLayout editList, topbar;
private int lastKnownPosition; private int lastKnownPosition;
private boolean editOnClick = false, editConsumed = false, onlyDisplayChatAddress = false; private boolean editOnClick = false, editConsumed = false, onlyDisplayChatAddress = false;
private String sipAddressToAdd; private String sipAddressToAdd, displayName = null;
private ImageView clearSearchField; private ImageView clearSearchField;
private EditText searchField; private EditText searchField;
private ProgressBar contactsFetchInProgress; private ProgressBar contactsFetchInProgress;
@ -75,8 +75,9 @@ public class ContactsListFragment extends Fragment implements OnClickListener, O
if (getArguments() != null) { if (getArguments() != null) {
editOnClick = getArguments().getBoolean("EditOnClick"); editOnClick = getArguments().getBoolean("EditOnClick");
sipAddressToAdd = getArguments().getString("SipAddress"); sipAddressToAdd = getArguments().getString("SipAddress");
if(getArguments().getString("DisplayName") != null)
onlyDisplayChatAddress = getArguments().getBoolean("ChatAddressOnly"); displayName = getArguments().getString("DisplayName");
onlyDisplayChatAddress = getArguments().getBoolean("ChatAddressOnly");
} }
noSipContact = (TextView) view.findViewById(R.id.noSipContact); noSipContact = (TextView) view.findViewById(R.id.noSipContact);
@ -253,7 +254,10 @@ public class ContactsListFragment extends Fragment implements OnClickListener, O
if (id == R.id.newContact) { if (id == R.id.newContact) {
editConsumed = true; 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) { else if (id == R.id.clearSearchField) {
searchField.setText(""); searchField.setText("");

View file

@ -164,13 +164,17 @@ public class HistoryDetailFragment extends Fragment implements OnClickListener {
LinphoneActivity.instance().displayChat(sipUri, null, null); LinphoneActivity.instance().displayChat(sipUri, null, null);
} else if (id == R.id.add_contact) { } else if (id == R.id.add_contact) {
String uri = sipUri; String uri = sipUri;
LinphoneAddress addr = null;
try { try {
LinphoneAddress addr = LinphoneCoreFactory.instance().createLinphoneAddress(sipUri); addr = LinphoneCoreFactory.instance().createLinphoneAddress(sipUri);
uri = addr.asStringUriOnly(); uri = addr.asStringUriOnly();
} catch (LinphoneCoreException e) { } catch (LinphoneCoreException e) {
Log.e(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) { } else if (id == R.id.goto_contact) {
LinphoneActivity.instance().displayContact(contact, false); LinphoneActivity.instance().displayContact(contact, false);
} }

View file

@ -628,6 +628,14 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick
changeCurrentFragment(FragmentsAvailable.ABOUT, null); 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() { public void displayAssistant() {
startActivity(new Intent(LinphoneActivity.this, AssistantActivity.class)); startActivity(new Intent(LinphoneActivity.this, AssistantActivity.class));
} }
@ -1091,6 +1099,7 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick
{ {
Bundle extras = new Bundle(); Bundle extras = new Bundle();
extras.putSerializable("NewSipAdress", sipUri); extras.putSerializable("NewSipAdress", sipUri);
extras.putSerializable("NewDisplayName", displayName);
changeCurrentFragment(FragmentsAvailable.CONTACT_EDITOR, extras); changeCurrentFragment(FragmentsAvailable.CONTACT_EDITOR, extras);
} }

@ -1 +1 @@
Subproject commit ddd08052226c879df63b08ab11d4a4917cfc1da5 Subproject commit f28d968a67eab65e07e60ef8a8b19621c6401e82

@ -1 +1 @@
Subproject commit 6b78f95624660c4e1160c3caac74732250321ce1 Subproject commit d765c5b947f2de52d97061e80784091ec043f5a0

@ -1 +1 @@
Subproject commit ce3dedb58706f154c647bc99412aca8a42416d9d Subproject commit e9c2d48c917d78c529eefb9f824ae52238f950d4