diff --git a/src/org/linphone/EditContactFragment.java b/src/org/linphone/EditContactFragment.java index 4f00ae0dd..f46c43f72 100644 --- a/src/org/linphone/EditContactFragment.java +++ b/src/org/linphone/EditContactFragment.java @@ -5,6 +5,7 @@ import java.util.ArrayList; import java.util.List; import org.linphone.compatibility.Compatibility; +import org.linphone.mediastream.Log; import org.linphone.mediastream.Version; import org.linphone.ui.AvatarWithShadow; @@ -209,7 +210,7 @@ public class EditContactFragment extends Fragment { } } if (newSipOrNumberToAdd != null) { - View view = displayNumberOrAddress(controls, newSipOrNumberToAdd, true); + View view = displayNumberOrAddress(controls, newSipOrNumberToAdd); if (view != null) controls.addView(view); } @@ -243,7 +244,8 @@ public class EditContactFragment extends Fragment { } private View displayNumberOrAddress(final TableLayout controls, String numberOrAddress, boolean forceAddNumber) { - boolean isSip = numberOrAddress.startsWith("sip:"); + boolean isSip = LinphoneUtils.isStrictSipAddress(numberOrAddress) || !LinphoneUtils.isNumberAddress(numberOrAddress); + if (isSip) { if (firstSipAddressIndex == -1) { firstSipAddressIndex = controls.getChildCount(); diff --git a/src/org/linphone/LinphoneUtils.java b/src/org/linphone/LinphoneUtils.java index 108625276..8c0432474 100644 --- a/src/org/linphone/LinphoneUtils.java +++ b/src/org/linphone/LinphoneUtils.java @@ -86,6 +86,10 @@ public final class LinphoneUtils { } } + public static boolean isNumberAddress(String numberOrAddress) { + return numberOrAddress.matches("[-+]?\\d*\\.?\\d+"); + } + public static boolean isStrictSipAddress(String numberOrAddress) { return isSipAddress(numberOrAddress) && numberOrAddress.startsWith("sip:"); }