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" />
+
+
+
+
+
+
+
+