Fix contacts

This commit is contained in:
Margaux Clerc 2015-04-29 11:05:55 +02:00
parent b61c49f9a1
commit e076acb251
3 changed files with 15 additions and 8 deletions

View file

@ -22,6 +22,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.linphone.compatibility.Compatibility; import org.linphone.compatibility.Compatibility;
import org.linphone.core.LinphoneCore;
import org.linphone.core.LinphoneFriend; import org.linphone.core.LinphoneFriend;
import android.content.ContentResolver; import android.content.ContentResolver;
@ -104,12 +105,15 @@ public class Contact implements Serializable {
public void refresh(ContentResolver cr) { public void refresh(ContentResolver cr) {
this.numbersOrAddresses = Compatibility.extractContactNumbersAndAddresses(id, cr); this.numbersOrAddresses = Compatibility.extractContactNumbersAndAddresses(id, cr);
for(LinphoneFriend friend : LinphoneManager.getLcIfManagerNotDestroyedOrNull().getFriendList()) { LinphoneCore lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull();
if(lc != null && lc.getFriendList() != null) {
for (LinphoneFriend friend :lc.getFriendList()){
if (friend.getRefKey().equals(id)) { if (friend.getRefKey().equals(id)) {
hasFriends = true; hasFriends = true;
this.numbersOrAddresses.add(friend.getAddress().asStringUriOnly()); this.numbersOrAddresses.add(friend.getAddress().asStringUriOnly());
} }
} }
}
this.name = Compatibility.refreshContactName(cr, id); this.name = Compatibility.refreshContactName(cr, id);
} }
} }

View file

@ -199,7 +199,7 @@ public class DialerFragment extends Fragment {
mAddress.setText(intent.getData().getSchemeSpecificPart()); mAddress.setText(intent.getData().getSchemeSpecificPart());
} else { } else {
Uri contactUri = intent.getData(); Uri contactUri = intent.getData();
String address = ContactsManager.getInstance().queryAddressOrNumber(getActivity().getContentResolver(),contactUri); String address = ContactsManager.getInstance().queryAddressOrNumber(LinphoneService.instance().getContentResolver(),contactUri);
if(address != null) { if(address != null) {
mAddress.setText(address); mAddress.setText(address);
} else { } else {

View file

@ -53,9 +53,12 @@ public class EditContactFragment extends Fragment {
isNewContact = false; isNewContact = false;
contactID = Integer.parseInt(contact.getID()); contactID = Integer.parseInt(contact.getID());
contact.refresh(getActivity().getContentResolver()); contact.refresh(getActivity().getContentResolver());
}
if (getArguments().getString("NewSipAdress") != null) { if (getArguments().getString("NewSipAdress") != null) {
newSipOrNumberToAdd = getArguments().getString("NewSipAdress"); newSipOrNumberToAdd = getArguments().getString("NewSipAdress");
}
} else if (getArguments().getString("NewSipAdress") != null) {
newSipOrNumberToAdd = getArguments().getString("NewSipAdress");
isNewContact = true; isNewContact = true;
} }
} }
@ -257,7 +260,7 @@ public class EditContactFragment extends Fragment {
if (forceAddNumber) { if (forceAddNumber) {
tempNounoa = new NewOrUpdatedNumberOrAddress(isSip); tempNounoa = new NewOrUpdatedNumberOrAddress(isSip);
} else { } else {
if(isNewContact) { if(isNewContact || newSipOrNumberToAdd != null) {
tempNounoa = new NewOrUpdatedNumberOrAddress(isSip, numberOrAddress); tempNounoa = new NewOrUpdatedNumberOrAddress(isSip, numberOrAddress);
} else { } else {
tempNounoa = new NewOrUpdatedNumberOrAddress(numberOrAddress, isSip); tempNounoa = new NewOrUpdatedNumberOrAddress(numberOrAddress, isSip);