Skip to content

Instantly share code, notes, and snippets.

@akhy
Last active September 26, 2017 14:57
Show Gist options
  • Save akhy/e97709611af4331ef429 to your computer and use it in GitHub Desktop.
Save akhy/e97709611af4331ef429 to your computer and use it in GitHub Desktop.
Android Kotlin Helpers
// requires StringHelpers
enum class GravatarDefault(val str: String) {
ERROR_404 ("404"),
MYSTERY ("mm"),
IDENTICON ("identicon"),
MONSTER ("monsterid"),
WAVATAR ("wavatar"),
RETRO ("retro"),
BLANK ("blank"),
}
fun gravatarUrl(email: String,
size: Int = 80,
default: GravatarDefault = GravatarDefault.MYSTERY,
secure: Boolean = false): String {
val hash = email.trim().toLowerCase().md5()
val protocol = if (secure) "https" else "http"
return "$protocol://www.gravatar.com/avatar/$hash?s=$size&d=${default.str}"
}
@Throws(Exception::class)
fun String.md5(): String {
val md = MessageDigest.getInstance("MD5")
md.update(this.toByteArray())
val byteData = md.digest()
val hexString = StringBuffer()
for (i in byteData.indices) {
val hex = Integer.toHexString(255 and byteData[i].toInt())
if (hex.length == 1) hexString.append('0')
hexString.append(hex)
}
return hexString.toString()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment