Fix contacts
This commit is contained in:
parent
b61c49f9a1
commit
e076acb251
3 changed files with 15 additions and 8 deletions
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Reference in a new issue