Esempio n. 1
0
        private IEnumerator FollowingUserFriends()
        {
            bool   IsConnectionAvailable = false;
            string responseJson          = string.Empty;

            yield return(WebService.GET("https://graph.facebook.com/me/friends?access_token=" + FB.AccessToken,
                                        (status, response) =>
            {
                if (status)
                {
                    IsConnectionAvailable = status;
                    responseJson = response;
                }
            }
                                        ));

            //Esperar que se refresque el valores
            yield return(new WaitForSeconds(0.5f));

            if (IsConnectionAvailable)
            {
                Dictionary <long, string> usuarioFriendsFacebook = new Dictionary <long, string>();
                var json = new JSONObject(responseJson);
                if (json.HasField("data"))
                {
                    var data = json.GetField("data");
                    foreach (var item in data.list)
                    {
                        var id   = 0L;
                        var name = string.Empty;

                        if (item.HasField("id"))
                        {
                            id = Convert.ToInt64(item.GetField("id").str);
                        }

                        if (item.HasField("name"))
                        {
                            name = item.GetField("name").str;
                        }

                        usuarioFriendsFacebook.Add(id, name);

                        //if (Application.platform == RuntimePlatform.WindowsEditor)
                        //{
                        //    StartCoroutine(SendUserFacebookId(new Usuario() { idUsuarioFacebook = id, apellido = item.GetField("last_name").str, nombre = item.GetField("fist_name").str }));
                        //}
                    }
                }

                //Filtrar usuario que no han sido enviadas
                WWWForm form = new WWWForm();
                form.AddField("id", FB.UserId);

                yield return(WebService.POST(SERVER_URL + "/usuario/following", form,
                                             (status, response) =>
                {
                    if (status)
                    {
                        var data = new JSONObject(response);
                        for (int i = 0; i < data.list.Count; ++i)
                        {
                            var idFollowing = Convert.ToInt64(data.list[i].GetField("id").str);

                            if (usuarioFriendsFacebook.ContainsKey(idFollowing))
                            {
                                usuarioFriendsFacebook.Remove(idFollowing);
                            }
                        }
                    }
                }
                                             ));

                yield return(new WaitForSeconds(0.5f));

                //Get Item Template
                Transform itemTemplate = (Resources.Load("GUI/FriendFollowingItem") as GameObject).transform;

                //Get Parent
                Transform parent = UIUtils.FindGUI("MenuSendFollowingRequest/ScrollView").transform;

                int k = 0;
                foreach (var usuario in usuarioFriendsFacebook)
                {
                    var id = usuario.Key;

                    WWW       photo   = new WWW("https://graph.facebook.com/" + id + "/picture?width=50&height=50"); //?access_token=" + FB.AccessToken);
                    Texture2D textFb2 = new Texture2D(50, 50, TextureFormat.DXT5, false);                            //TextureFormat must be DXT5

                    yield return(photo);

                    photo.LoadImageIntoTexture(textFb2);

                    var friendItem = GameObject.Instantiate(itemTemplate.gameObject) as GameObject;

                    friendItem.name                 = "ItemFriend" + k;
                    friendItem.transform.parent     = parent;
                    friendItem.transform.localScale = itemTemplate.localScale;

                    //Agregando la posicion relativa del hijo con relacion al padre
                    friendItem.transform.localPosition = new Vector3(
                        itemTemplate.localPosition.x,
                        itemTemplate.localPosition.y - 60f * k,
                        itemTemplate.localPosition.z
                        );

                    friendItem.transform.FindChild("Image").GetComponent <UITexture>().mainTexture = textFb2;
                    friendItem.transform.FindChild("Label").GetComponent <UILabel>().text          = usuario.Value;

                    var checkBoxGameObject = friendItem.transform.FindChild("CheckBox");
                    checkBoxGameObject.name = checkBoxGameObject.name + friendItem.name;
                    checkBoxGameObject.GetComponent <UIToggle>().value = false;


                    var menu = MenuManager.GetInstance().GetCurrentMenu() as MenuSendFollowingRequest;

                    var checkBox = new CheckBox(checkBoxGameObject.name);
                    checkBox.OnChangeEvent += new OnChangeEventHandler(menu.OnChangeCheckBox);

                    checkBox.ObjectTag = new { idUsuario = id };

                    menu.GetCheckBoxList().Add(checkBox);

                    friendItem.GetComponent <BoxCollider>().enabled = true;

                    k++;
                }
            }
        }