using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.UI;

public class StudentDataUI : MonoBehaviour
{
    public Text studentName;
    public Text examChapter;
    public Text timeLeft;
    public Image headImage;

    public Sprite headSpriteDefault;
    public Sprite headSpriteTemp;

    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {

    }


    public IEnumerator UpdateStudentData(string name, string examChapter, string timeLeft, string spriteUrl)
    {
        this.studentName.text = name;
        this.examChapter.text = examChapter;
        this.timeLeft.text = timeLeft;
        this.headImage.sprite = headSpriteDefault;
        if (spriteUrl != null && spriteUrl != "null" && spriteUrl != "")
        {
            yield return GetSpriteFromUrl(spriteUrl);
            headImage.sprite = headSpriteTemp;
        }

    }

    public void UpdateLeftTime(string timeLeft)
    {
        this.timeLeft.text = timeLeft;
    }


    public IEnumerator GetSpriteFromUrl(string url)
    {
        headSpriteTemp = null;
        UnityWebRequest request = UnityWebRequestTexture.GetTexture(url);

        yield return request.SendWebRequest();

        if (request.result == UnityWebRequest.Result.ConnectionError || request.result == UnityWebRequest.Result.ProtocolError || request.responseCode == 0)
        {
            Debug.Log(request.error);
        }
        else
        {
            Texture2D webTexture = ((DownloadHandlerTexture)request.downloadHandler).texture as Texture2D;
            headSpriteTemp = Sprite.Create(webTexture, new Rect(0.0f, 0.0f, webTexture.width, webTexture.height), new Vector2(0.5f, 0.5f), 100.0f);
        }
    }

}