using System; using System.Collections; using System.Collections.Generic; 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 List currentVoters = new List(); 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); } /// /// 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); foreach (Player p in _newVoters) { if (!currentVoters.Contains(p)) { currentVoters.Add(p); VoterSticker sticker = Instantiate(voterStickerPrefab, playerGrid).GetComponent(); sticker.playerNameLabel.text = p.name; Debug.Log($"{p.name} has just voted for {proposition.owner.name}'s proposition."); } } } }