47 lines
1.2 KiB
C#
47 lines
1.2 KiB
C#
|
using System;
|
|||
|
|
|||
|
using UnityEngine;
|
|||
|
|
|||
|
using PlasticGui;
|
|||
|
using CodiceApp.Gravatar;
|
|||
|
|
|||
|
namespace Unity.PlasticSCM.Editor.UI.Avatar
|
|||
|
{
|
|||
|
internal static class GetAvatar
|
|||
|
{
|
|||
|
internal static Texture2D ForEmail(
|
|||
|
string email,
|
|||
|
Action avatarLoadedAction)
|
|||
|
{
|
|||
|
if (string.IsNullOrEmpty(email))
|
|||
|
return Images.GetEmptyGravatar();
|
|||
|
|
|||
|
if (AvatarImages.HasGravatar(email))
|
|||
|
return AvatarImages.GetAvatar(email);
|
|||
|
|
|||
|
Texture2D defaultImage =
|
|||
|
Images.GetEmptyGravatar();
|
|||
|
|
|||
|
AvatarImages.AddGravatar(email, defaultImage);
|
|||
|
|
|||
|
LoadAvatar.ForEmail(
|
|||
|
email, avatarLoadedAction,
|
|||
|
AfterDownloadSucceed);
|
|||
|
|
|||
|
return defaultImage;
|
|||
|
}
|
|||
|
|
|||
|
static void AfterDownloadSucceed(
|
|||
|
string email,
|
|||
|
GravatarImagesProvider.Result result,
|
|||
|
Action avatarLoadedAction)
|
|||
|
{
|
|||
|
if (result.ResultCode == GravatarImagesProvider.Result.OperationResult.OK)
|
|||
|
{
|
|||
|
AvatarImages.UpdateGravatar(email, result.RawGravatar);
|
|||
|
|
|||
|
avatarLoadedAction();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|