Use effectiveAvatarEmail() for avatar lookup Support the new avatarEmail account field which allows users to select which email address is used for Gravatar lookup, independent of their preferred email for communication. This change uses Account.effectiveAvatarEmail() which returns avatarEmail if set, otherwise falls back to preferredEmail. Depends-On: I045c075b1bbd7ee7eabb1a144d9b577e907daf5f Change-Id: I5b977389b1088bf5c3f36a92784794be5971196d
diff --git a/src/main/java/com/googlesource/gerrit/plugins/avatars/gravatar/GravatarAvatarProvider.java b/src/main/java/com/googlesource/gerrit/plugins/avatars/gravatar/GravatarAvatarProvider.java index 56a4b92..3ba5ba5 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/avatars/gravatar/GravatarAvatarProvider.java +++ b/src/main/java/com/googlesource/gerrit/plugins/avatars/gravatar/GravatarAvatarProvider.java
@@ -76,14 +76,15 @@ @Override public String getUrl(IdentifiedUser forUser, int imageSize) { - String preferredEmail = forUser.getAccount().preferredEmail(); - if (preferredEmail == null && !defaultImage) { + // Use effectiveAvatarEmail() which returns avatarEmail if set, otherwise preferredEmail + String avatarEmail = forUser.getAccount().effectiveAvatarEmail(); + if (avatarEmail == null && !defaultImage) { return null; } String emailMd5; - if (preferredEmail != null) { - final String email = preferredEmail.trim().toLowerCase(); + if (avatarEmail != null) { + final String email = avatarEmail.trim().toLowerCase(); try { MessageDigest digest = MessageDigest.getInstance("MD5"); emailMd5 = hex(digest.digest(email.getBytes("UTF-8")));