// -------------------------------------------

        /*
         * CheckForwardVectorRemote
         */
        private void CheckForwardVectorRemote()
        {
            for (int i = 0; i < m_clients.Count; i++)
            {
                if (m_clients[i] != null)
                {
                    ItemClientView itemClientView = m_clients[i].GetComponent <ItemClientView>();
                    if (itemClientView != null)
                    {
                        if (itemClientView.Forward == null)
                        {
                            for (int j = 0; j < NetworkVariablesController.Instance.NetworkVariables.Count; j++)
                            {
                                INetworkVariable variable = NetworkVariablesController.Instance.NetworkVariables[j];
                                if (itemClientView.ConnectionData.Id == variable.Owner)
                                {
                                    if (variable is NetworkVector3)
                                    {
                                        itemClientView.Forward = (NetworkVector3)variable;
                                        NetworkEventController.Instance.DelayNetworkEvent(EVENT_MAINMENU_REQUEST_PHONE_NUMBERS, 0.2f);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        // -------------------------------------------

        /*
         * OnUIEvent
         */
        private void OnUIEvent(string _nameEvent, params object[] _list)
        {
            if (_nameEvent == EVENT_MAINMENU_CHECK_VALID_ORIGIN)
            {
                int  xPos    = (int)_list[0];
                int  yPos    = (int)_list[1];
                bool isValid = !m_container.GetComponent <RectTransform>().rect.Contains(new Vector2(xPos, yPos));
                UIEventController.Instance.DispatchUIEvent(DrawingLinesController.EVENT_DRAWINGLINES_VALID_POINT, isValid);
            }

            if (m_isCustomer)
            {
                return;
            }

            if (_nameEvent == UIEventController.EVENT_SCREENMAINCOMMANDCENTER_LIST_USERS)
            {
                m_playerSelected = null;
                FillClientList((List <PlayerConnectionData>)_list[0]);
            }
            if (_nameEvent == UIEventController.EVENT_SCREENMAINCOMMANDCENTER_TEXTURE_REMOTE_STREAMING_DATA)
            {
                int idPlayer = (int)_list[0];
                if (m_playerSelected.ConnectionData.Id == idPlayer)
                {
                    int    textWidth   = (int)_list[1];
                    int    textHeight  = (int)_list[2];
                    byte[] textureData = (byte[])_list[3];
                    ImageUtils.LoadBytesImage(m_streamingWindow, textWidth, textHeight, textureData);
                }
            }
            if (_nameEvent == BaseItemView.EVENT_ITEM_SELECTED)
            {
                GameObject itemSelected = (GameObject)_list[0];
                if (itemSelected == null)
                {
                    return;
                }

                // CLIENTS
                if (itemSelected.GetComponent <IBasicItemView>().ContainerParent == m_gridClients)
                {
                    if (itemSelected.GetComponent <ItemClientView>() != null)
                    {
                        bool selected     = (bool)_list[1];
                        int  indexClicked = -1;
                        for (int i = 0; i < m_clients.Count; i++)
                        {
                            if (m_clients[i].gameObject == itemSelected)
                            {
                                indexClicked = i;
                            }
                            else
                            {
                                if (selected)
                                {
                                    m_clients[i].GetComponent <BaseItemView>().Selected = false;
                                }
                            }
                        }

                        if (indexClicked != -1)
                        {
                            if (selected)
                            {
                                m_playerSelected = m_clients[indexClicked].GetComponent <ItemClientView>();
                                if (m_playerSelected.Forward != null)
                                {
                                    DrawingLinesController.Instance.ForwardPlayer = m_playerSelected.Forward;
                                    PlayUMP(m_playerSelected.PhoneNumber);
                                    m_publicKeyAddressCustomer = m_playerSelected.PublicBlockchainAddress;
                                    ScreenNetworkingController.Instance.CreatePopUpScreenConfirmation(LanguageController.Instance.GetText("text.call.me"), LanguageController.Instance.GetText("text.do.you.want.to.call") + " " + m_playerSelected.PhoneNumber, SUBEVENT_ACTION_CALL_PHONE_NUMBER);
                                }
                            }
                            else
                            {
                                m_playerSelected = null;
#if ENABLE_STREAMING
                                if (m_ump != null)
                                {
                                    m_ump.Stop();
                                }
#endif
                                DrawingLinesController.Instance.ForwardPlayer = null;
                            }
                        }
                    }
                }
            }
            if (_nameEvent == ScreenController.EVENT_CONFIRMATION_POPUP)
            {
                GameObject screen       = (GameObject)_list[0];
                bool       accepted     = (bool)_list[1];
                string     subnameEvent = (string)_list[2];
                if (subnameEvent == SUBEVENT_ACTION_CALL_PHONE_NUMBER)
                {
                    if (m_playerSelected != null)
                    {
                        if (accepted)
                        {
                            Application.OpenURL("tel://" + m_playerSelected.PhoneNumber);
                        }
                    }
                }
            }
        }