using System; using System.Collections; using System.Collections.Generic; using System.Linq; using Firebase.Extensions; using Firebase.Storage; using TMPro; using UnityEngine; using UnityEngine.Networking; using UnityEngine.UI; public class PropositionFrame : MonoBehaviour { public RawImage picture; public GameObject voterStickerPrefab; public TextMeshProUGUI playerName; public Transform playerGrid; private Dictionary currentVoters = new Dictionary(); private Proposition proposition; public void Initialize(Proposition _proposition) { Debug.Log($"Initializing {_proposition.owner.name}'s proposition", this); proposition = _proposition; playerName.text = proposition.owner.name; if (!string.IsNullOrEmpty(proposition.photoUrl)) DisplayPicture(proposition.photoUrl); foreach(var voters in currentVoters) { Destroy(voters.Value); } currentVoters.Clear(); } /// /// Url is Google bucket URL. We /// /// private void DisplayPicture(string _gsUrl) { //Debug.Log($"Google Storage URL : {_gsUrl}"); StorageManager.ConvertGoogleStorageURLToHttpsUrl(_gsUrl, _url => { StartCoroutine(StorageManager.DownloadImage_Coroutine(_url, _texture => { //Debug.Log("Set texture in the raw image"); picture.texture = _texture; })); }); } public void UpdateVoters(List _newVoters) { //Debug.Log($"There are some new voters for {proposition.owner}'s proposition", this); int index = 0; foreach (Player p in _newVoters) { index++; if (!currentVoters.Keys.Contains(p)) { PlayerSticker sticker = Instantiate(voterStickerPrefab, playerGrid).GetComponent(); sticker.Initialize(p.name, index); currentVoters.Add(p, sticker.gameObject); Debug.Log($"{p.name} has just voted for {proposition.owner.name}'s proposition."); } } } }