shamsdev / davinci

An esay-to-use image downloading and caching library for Unity

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Bug: does not return image not found error

hdev72 opened this issue · comments

hello dear friends
when i request to load unavailable image, davinci does not return error and returns Image has been loaded.

here is my code

Davinci.get()
.load(imgUrl)
.into(into)
.setErrorPlaceholder(errorSprite)
.setFadeTime(0) // 0 for disable fading
.withStartAction(() =>
{
H.log(TAG, "Download has been started.");
})
.withDownloadProgressChangedAction((progress) =>
{
H.log(TAG, "Download progress: " + progress);
})
.withDownloadedAction(() =>
{
H.log(TAG, "Download has been completed.");
})
.withLoadedAction(() =>
{
H.log(TAG, "Image has been loaded.");
// //H.log("into.sprit:" + into.sprite );
if(!avatarHistory.ContainsKey(avatarName)){
avatarHistory.Add(avatarName, into.sprite);
}
})
.withErrorAction((error) =>
{
H.log(TAG, "loadAvatarImage error:" + error);
if(gender == 0){
into.sprite = Resources.Load("avatar_boy");
}else{
into.sprite = Resources.Load("avatar_girl");
}
})
.withEndAction(() =>
{
H.log(TAG, "Operation has been finished.");
})
.start();

simple resolve: but maybe not good:

i added this codes to private IEnumerator Downloader() method:

    string response = System.Text.Encoding.ASCII.GetString(www.bytes);
    Debug.Log("[Davinci] urlResponse : " + response);
    if(response.ToLower().Contains("not found")){
        error("Not Found");
        yield return null;
    }else{

        if (www.error == null)
            File.WriteAllBytes(filePath + uniqueHash, www.bytes);
            
            

        www.Dispose();
        www = null;

        if (onDownloadedAction != null)
            onDownloadedAction.Invoke();

        loadSpriteToImage();

        underProcessDavincies.Remove(uniqueHash);
    }