Fixed minor contact related issues

This commit is contained in:
Sylvain Berfini 2019-11-27 11:11:57 +01:00
parent 92b3832ab8
commit e550efc094
3 changed files with 21 additions and 18 deletions

View file

@ -136,12 +136,15 @@ public class ContactEditorFragment extends Fragment {
if (mIsNewContact) { if (mIsNewContact) {
boolean areAllFielsEmpty = true; boolean areAllFielsEmpty = true;
for (LinphoneNumberOrAddress nounoa : mNumbersAndAddresses) { for (LinphoneNumberOrAddress nounoa : mNumbersAndAddresses) {
if (nounoa.getValue() != null && !nounoa.getValue().equals("")) { String value = nounoa.getValue();
if (value != null && !value.trim().isEmpty()) {
areAllFielsEmpty = false; areAllFielsEmpty = false;
break; break;
} }
} }
if (areAllFielsEmpty) { if (areAllFielsEmpty) {
Log.i(
"[Contact Editor] All SIP and phone fields are empty, aborting");
getFragmentManager().popBackStackImmediate(); getFragmentManager().popBackStackImmediate();
return; return;
} }
@ -158,27 +161,24 @@ public class ContactEditorFragment extends Fragment {
} }
for (LinphoneNumberOrAddress noa : mNumbersAndAddresses) { for (LinphoneNumberOrAddress noa : mNumbersAndAddresses) {
if (noa.getValue() == null || noa.getValue().isEmpty()) { String value = noa.getValue();
if (noa.getOldValue() != null && !noa.getOldValue().isEmpty()) { String oldValue = noa.getOldValue();
Log.i("[Contact Editor] Removing number " + noa.getOldValue());
if (value == null || value.trim().isEmpty()) {
if (oldValue != null && !oldValue.isEmpty()) {
Log.i("[Contact Editor] Removing number " + oldValue);
mContact.removeNumberOrAddress(noa); mContact.removeNumberOrAddress(noa);
} }
} else { } else {
if (noa.getOldValue() != null if (oldValue != null && oldValue.equals(value)) {
&& noa.getOldValue().equals(noa.getValue())) { Log.i("[Contact Editor] Keeping existing number " + value);
Log.i(
"[Contact Editor] Keeping existing number "
+ noa.getValue());
continue; continue;
} }
if (noa.isSIPAddress()) { if (noa.isSIPAddress()) {
noa.setValue(LinphoneUtils.getFullAddressFromUsername(value));
noa.setValue(
LinphoneUtils.getFullAddressFromUsername(
noa.getValue()));
} }
Log.i("[Contact Editor] Adding new number " + noa.getValue()); Log.i("[Contact Editor] Adding new number " + value);
mContact.addOrUpdateNumberOrAddress(noa); mContact.addOrUpdateNumberOrAddress(noa);
} }

View file

@ -559,7 +559,8 @@ public class LinphoneContact extends AndroidContact
String data3 = c.getString(c.getColumnIndex("data3")); String data3 = c.getString(c.getColumnIndex("data3"));
String data4 = c.getString(c.getColumnIndex("data4")); String data4 = c.getString(c.getColumnIndex("data4"));
if (getFullName() == null) { String fullName = getFullName();
if (fullName == null || !fullName.equals(displayName)) {
Log.d("[Linphone Contact] Setting display name " + displayName); Log.d("[Linphone Contact] Setting display name " + displayName);
setFullName(displayName); setFullName(displayName);
} }

View file

@ -221,14 +221,15 @@ public class DialerActivity extends MainActivity implements AddressText.AddressC
private void enableVideoPreviewIfTablet(boolean enable) { private void enableVideoPreviewIfTablet(boolean enable) {
Core core = LinphoneManager.getCore(); Core core = LinphoneManager.getCore();
TextureView preview = findViewById(R.id.video_preview); TextureView preview = findViewById(R.id.video_preview);
if (preview != null && core != null) { ImageView changeCamera = findViewById(R.id.video_preview_change_camera);
if (preview != null && changeCamera != null && core != null) {
if (enable && isTablet() && LinphonePreferences.instance().isVideoPreviewEnabled()) { if (enable && isTablet() && LinphonePreferences.instance().isVideoPreviewEnabled()) {
preview.setVisibility(View.VISIBLE); preview.setVisibility(View.VISIBLE);
core.setNativePreviewWindowId(preview); core.setNativePreviewWindowId(preview);
core.enableVideoPreview(true); core.enableVideoPreview(true);
ImageView changeCamera = findViewById(R.id.video_preview_change_camera); if (core.getVideoDevicesList().length > 1) {
if (changeCamera != null && core.getVideoDevicesList().length > 1) {
changeCamera.setVisibility(View.VISIBLE); changeCamera.setVisibility(View.VISIBLE);
changeCamera.setOnClickListener( changeCamera.setOnClickListener(
new View.OnClickListener() { new View.OnClickListener() {
@ -240,6 +241,7 @@ public class DialerActivity extends MainActivity implements AddressText.AddressC
} }
} else { } else {
preview.setVisibility(View.GONE); preview.setVisibility(View.GONE);
changeCamera.setVisibility(View.GONE);
core.setNativePreviewWindowId(null); core.setNativePreviewWindowId(null);
core.enableVideoPreview(false); core.enableVideoPreview(false);
} }