diff --git a/app/src/main/java/org/linphone/LinphoneService.java b/app/src/main/java/org/linphone/LinphoneService.java index 3bb0bb517..077f710ef 100644 --- a/app/src/main/java/org/linphone/LinphoneService.java +++ b/app/src/main/java/org/linphone/LinphoneService.java @@ -163,7 +163,7 @@ public final class LinphoneService extends Service { super.onStartCommand(intent, flags, startId); boolean isPush = false; - if (intent.getBooleanExtra("PushNotification", false)) { + if (intent != null && intent.getBooleanExtra("PushNotification", false)) { Log.i("[Service] [Push Notification] LinphoneService started because of a push"); isPush = true; } diff --git a/app/src/main/java/org/linphone/call/CallActivity.java b/app/src/main/java/org/linphone/call/CallActivity.java index 2d12197cf..71aca8b5f 100644 --- a/app/src/main/java/org/linphone/call/CallActivity.java +++ b/app/src/main/java/org/linphone/call/CallActivity.java @@ -1472,10 +1472,10 @@ public class CallActivity extends LinphoneGenericActivity if (lContact == null) { String displayName = LinphoneUtils.getAddressDisplayName(lAddress); contactName.setText(displayName); - ContactAvatar.displayAvatar(displayName, mAvatarLayout, R.drawable.avatar_mask_border); + ContactAvatar.displayAvatar(displayName, mAvatarLayout, true); } else { contactName.setText(lContact.getFullName()); - ContactAvatar.displayAvatar(lContact, mAvatarLayout, R.drawable.avatar_mask_border); + ContactAvatar.displayAvatar(lContact, mAvatarLayout, true); } } diff --git a/app/src/main/java/org/linphone/call/CallIncomingActivity.java b/app/src/main/java/org/linphone/call/CallIncomingActivity.java index 1f8872686..cc5d0c9c7 100644 --- a/app/src/main/java/org/linphone/call/CallIncomingActivity.java +++ b/app/src/main/java/org/linphone/call/CallIncomingActivity.java @@ -185,13 +185,11 @@ public class CallIncomingActivity extends LinphoneGenericActivity { Address address = mCall.getRemoteAddress(); LinphoneContact contact = ContactsManager.getInstance().findContactFromAddress(address); if (contact != null) { - ContactAvatar.displayAvatar( - contact, findViewById(R.id.avatar_layout), R.drawable.avatar_mask_border); + ContactAvatar.displayAvatar(contact, findViewById(R.id.avatar_layout), true); mName.setText(contact.getFullName()); } else { String displayName = LinphoneUtils.getAddressDisplayName(address); - ContactAvatar.displayAvatar( - displayName, findViewById(R.id.avatar_layout), R.drawable.avatar_mask_border); + ContactAvatar.displayAvatar(displayName, findViewById(R.id.avatar_layout), true); mName.setText(displayName); } mNumber.setText(address.asStringUriOnly()); diff --git a/app/src/main/java/org/linphone/call/CallOutgoingActivity.java b/app/src/main/java/org/linphone/call/CallOutgoingActivity.java index fb8f15009..c3fc8ccb8 100644 --- a/app/src/main/java/org/linphone/call/CallOutgoingActivity.java +++ b/app/src/main/java/org/linphone/call/CallOutgoingActivity.java @@ -185,13 +185,11 @@ public class CallOutgoingActivity extends LinphoneGenericActivity implements OnC Address address = mCall.getRemoteAddress(); LinphoneContact contact = ContactsManager.getInstance().findContactFromAddress(address); if (contact != null) { - ContactAvatar.displayAvatar( - contact, findViewById(R.id.avatar_layout), R.drawable.avatar_mask_border); + ContactAvatar.displayAvatar(contact, findViewById(R.id.avatar_layout), true); mName.setText(contact.getFullName()); } else { String displayName = LinphoneUtils.getAddressDisplayName(address); - ContactAvatar.displayAvatar( - displayName, findViewById(R.id.avatar_layout), R.drawable.avatar_mask_border); + ContactAvatar.displayAvatar(displayName, findViewById(R.id.avatar_layout), true); mName.setText(displayName); } mNumber.setText(LinphoneUtils.getDisplayableAddress(address)); diff --git a/app/src/main/java/org/linphone/views/ContactAvatar.java b/app/src/main/java/org/linphone/views/ContactAvatar.java index 262f6baf0..d0c593d91 100644 --- a/app/src/main/java/org/linphone/views/ContactAvatar.java +++ b/app/src/main/java/org/linphone/views/ContactAvatar.java @@ -34,6 +34,7 @@ import org.linphone.core.tools.Log; class ContactAvatarHolder { public final ImageView contactPicture; public final ImageView avatarMask; + public final ImageView avatarBorder; public final ImageView securityLevel; public final TextView generatedAvatar; @@ -42,12 +43,14 @@ class ContactAvatarHolder { avatarMask = v.findViewById(R.id.mask); securityLevel = v.findViewById(R.id.security_level); generatedAvatar = v.findViewById(R.id.generated_avatar); + avatarBorder = v.findViewById(R.id.border); } public void init() { contactPicture.setVisibility(View.VISIBLE); generatedAvatar.setVisibility(View.VISIBLE); securityLevel.setVisibility(View.GONE); + avatarBorder.setVisibility(View.GONE); } } @@ -96,7 +99,8 @@ public class ContactAvatar { } } - public static void displayAvatar(String displayName, View v, int maskResource) { + public static void displayAvatar( + String displayName, View v, boolean showBorder, int maskResource) { if (displayName == null || v == null) return; ContactAvatarHolder holder = new ContactAvatarHolder(v); @@ -120,10 +124,17 @@ public class ContactAvatar { if (maskResource != 0) { holder.avatarMask.setImageResource(maskResource); } + if (showBorder) { + holder.avatarBorder.setVisibility(View.VISIBLE); + } + } + + public static void displayAvatar(String displayName, View v, boolean showBorder) { + displayAvatar(displayName, v, showBorder, 0); } public static void displayAvatar(String displayName, View v) { - displayAvatar(displayName, v, 0); + displayAvatar(displayName, v, false, 0); } public static void displayAvatar( @@ -132,7 +143,8 @@ public class ContactAvatar { setSecurityLevel(securityLevel, v); } - public static void displayAvatar(LinphoneContact contact, View v, int maskResource) { + public static void displayAvatar( + LinphoneContact contact, View v, boolean showBorder, int maskResource) { if (contact == null || v == null) return; ContactAvatarHolder holder = new ContactAvatarHolder(v); @@ -176,10 +188,17 @@ public class ContactAvatar { if (maskResource != 0) { holder.avatarMask.setImageResource(maskResource); } + if (showBorder) { + holder.avatarBorder.setVisibility(View.VISIBLE); + } + } + + public static void displayAvatar(LinphoneContact contact, View v, boolean showBorder) { + displayAvatar(contact, v, showBorder, 0); } public static void displayAvatar(LinphoneContact contact, View v) { - displayAvatar(contact, v, 0); + displayAvatar(contact, v, false, 0); } public static void displayAvatar( diff --git a/app/src/main/res/drawable-xhdpi/avatar_border.png b/app/src/main/res/drawable-xhdpi/avatar_border.png new file mode 100644 index 000000000..612e9b10c Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/avatar_border.png differ diff --git a/app/src/main/res/drawable-xhdpi/avatar_mask_border.png b/app/src/main/res/drawable-xhdpi/avatar_mask_border.png deleted file mode 100644 index 606d9012e..000000000 Binary files a/app/src/main/res/drawable-xhdpi/avatar_mask_border.png and /dev/null differ diff --git a/app/src/main/res/layout/contact_avatar.xml b/app/src/main/res/layout/contact_avatar.xml index 75d7c2ea3..dd9015cd0 100644 --- a/app/src/main/res/layout/contact_avatar.xml +++ b/app/src/main/res/layout/contact_avatar.xml @@ -30,6 +30,15 @@ android:adjustViewBounds="true" android:src="@drawable/avatar_mask" /> + + + + + + + +