82 lines
1.9 KiB
C#
82 lines
1.9 KiB
C#
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace Unity.Notifications
|
|
{
|
|
[System.Serializable]
|
|
internal class DrawableResourceData
|
|
{
|
|
public string Id;
|
|
public NotificationIconType Type;
|
|
public Texture2D Asset;
|
|
|
|
private bool m_IsValid = false;
|
|
private List<string> m_Errors = null;
|
|
private Texture2D m_PreviewTexture;
|
|
|
|
public bool IsValid
|
|
{
|
|
get
|
|
{
|
|
if (m_IsValid == false && m_Errors == null)
|
|
Verify();
|
|
|
|
return m_IsValid;
|
|
}
|
|
}
|
|
|
|
public string[] Errors
|
|
{
|
|
get
|
|
{
|
|
if (m_IsValid == false && m_Errors == null)
|
|
Verify();
|
|
|
|
return m_Errors.ToArray();
|
|
}
|
|
}
|
|
|
|
public Texture2D GetPreviewTexture(bool update)
|
|
{
|
|
if (Asset == null)
|
|
return null;
|
|
|
|
if (m_IsValid && (m_PreviewTexture == null || update))
|
|
m_PreviewTexture = TextureAssetUtils.ProcessTextureForType(Asset, Type);
|
|
|
|
return m_PreviewTexture;
|
|
}
|
|
|
|
internal bool Initialized()
|
|
{
|
|
return !string.IsNullOrEmpty(Id) && Asset != null;
|
|
}
|
|
|
|
public void Clean()
|
|
{
|
|
m_IsValid = false;
|
|
m_Errors = null;
|
|
m_PreviewTexture = null;
|
|
}
|
|
|
|
public bool Verify()
|
|
{
|
|
m_IsValid = TextureAssetUtils.VerifyTextureByType(Asset, Type, out m_Errors);
|
|
return m_IsValid;
|
|
}
|
|
|
|
public string GenerateErrorString()
|
|
{
|
|
var errors = Errors;
|
|
|
|
var errorString = string.Empty;
|
|
for (var i = 0; i < errors.Length; i++)
|
|
{
|
|
errorString += string.Format("{0}{1}", errors[i], i + 1 >= errors.Length ? "." : ", ");
|
|
}
|
|
|
|
return errorString;
|
|
}
|
|
}
|
|
}
|