text: package com.alorma.github.ui.utils;
  
  import core.User;
  import java.io.UnsupportedEncodingException;
  import java.net.URLEncoder;
  import java.security.MessageDigest;
  import java.security.NoSuchAlgorithmException;
  
  public class AvatarHelper {
  
    private static final String GITHUB_AVATAR =
        "https://camo.githubusercontent.com/a8dd47617ff250cc8de355d383227032e8a9cf4d/68747470733a2f2f302e67726176617461722e636f6d2f6176617461722f37376366623362363061306336663039623233373964396265363736396239353f643d68747470732533412532462532466173736574732d63646e2e6769746875622e636f6d253246696d6167657325324667726176617461727325324667726176617461722d757365722d3432302e706e6726723d7826733d313430";
  
    public static String getAvatar(User user) {
      if (user == null) {
        return null;
      } else if (user.getAvatar() != null) {
        return user.getAvatar();
      } else if (user.getEmail() != null) {
        try {
          return "https://www.gravatar.com/avatar/" + md5(user.getEmail()) + "?d=" + urlEncode(GITHUB_AVATAR);
        } catch (UnsupportedEncodingException e) {
          return GITHUB_AVATAR;
        }
      } else {
        return null;
      }
    }
  
    private static String md5(final String s) {
      final String MD5 = "MD5";
      try {
        // Create MD5 Hash
        MessageDigest digest = java.security.MessageDigest.getInstance(MD5);
        digest.update(s.getBytes());
        byte messageDigest[] = digest.digest();
  
        // Create Hex String
        StringBuilder hexString = new StringBuilder();
        for (byte aMessageDigest : messageDigest) {
          String h = Integer.toHexString(0xFF & aMessageDigest);
          while (h.length() < 2) h = "0" + h;
          hexString.append(h);
        }
        return hexString.toString();
      } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
      }
      return GITHUB_AVATAR;
    }
  
    private static String urlEncode(String s) throws UnsupportedEncodingException {
      return URLEncoder.encode(s, "UTF-8");
    }
  }
  