Example #1
0
        public override void SetData(Dictionary <string, object> data)
        {
            base.SetData(data);

            Body = Get <string>(data, KEY_BODY);
            User = DataUser.GetUser(GetDict(data, KEY_USER));
        }
Example #2
0
        void OnDisable()
        {
            mNavigation.OnSwitchDone    -= OnSwitchPage;
            ChatManager.OnGetChat       -= OnGetChat;
            DataManager.Me.OnDataUpdate -= OnMyDataUpdated;

            mCurrentContact = null;
        }
        public static DataUser[] GetUserArray(List <object> data)
        {
            DataUser[] result = new DataUser[data.Count];

            for (int i = 0; i < data.Count; i++)
            {
                result[i] = GetUser(data[i] as Dictionary <string, object>);
            }

            return(result);
        }
Example #4
0
        private DataUser[] RelationsToContacts(DataRelationship[] relations)
        {
            DataUser[] result = new DataUser[relations.Length];

            for (int i = 0; i < result.Length; i++)
            {
                result[i] = relations[i].Contact;
            }

            return(result);
        }
Example #5
0
        public void Initialize(ScreenChat screenChat, DataUser contact)
        {
            SetState(true);

            mChat          = screenChat;
            mContact       = contact;
            mNameText.text = contact.UserDetails.FullName;

            mMessageIndicator.Initialize(contact);

            mProfileImage.SetDetails(contact.UserDetails);
        }
Example #6
0
        public void ChatWith(DataUser contact)
        {
            mCurrentContact = contact;
            GlobalStatus.SetSeenMessages(mCurrentContact.ID);
            ChatManager.FetchChat(mCurrentContact.ID);

            mContactPage.Close();
            mChatPage.Open(mCurrentContact);

            mChatPage.Refresh();

            UIHeader.Show(mHeaderTag, BackToContacts);
        }
Example #7
0
        private void SetOtherContacts(DataUser[] others)
        {
            // Clear rows
            if (mRows != null)
            {
                for (int i = 0; i < mRows.Length; i++)
                {
                    if (mRows[i] != null)
                    {
                        Destroy(mRows[i].gameObject);
                    }
                }
            }

            mRows = new Transform[Mathf.CeilToInt((float)others.Length / BUTTONS_PER_ROW)];
            int row        = -1;
            int entryCount = 3;

            // Create rows
            for (int i = 0; i < others.Length; i++)
            {
                DataUser contact = others[i];

                // Fill rows with contacts
                if (entryCount > 2)
                {
                    // Row full, create new row and start filling it instead
                    entryCount = 0;
                    row++;

                    Transform newRow = Instantiate(mRowTemplate, mRowTemplate.parent);
                    mRows[row] = newRow;
                    newRow.gameObject.SetActive(true);

                    for (int j = newRow.childCount - 1; j >= 0; j--)
                    {
                        Destroy(newRow.GetChild(j).gameObject);
                    }
                }
                else
                {
                    entryCount++;
                }

                Instantiate(mButtonTemplate, mRows[row]).Initialize(mChatScreen, contact);
            }

            SetOtherPlaceHolders(mRows.Length * 3 - others.Length);
        }
        /// <summary> If a user with the id does not exist, create it and return the new instance.
        /// If a user with that id exists, update that user with the new data and return the user instance. </summary>
        public static DataUser GetUser(Dictionary <string, object> data)
        {
            int id = GetInt(data, KEY_ID);

            if (mUsers.ContainsKey(id))
            {
                DataUser user = mUsers[id];
                user.SetData(data);
                return(user);
            }

            DataUser newUser = new DataUser();

            newUser.SetData(data);
            mUsers[id] = newUser;
            return(newUser);
        }
Example #9
0
        public void Open(DataUser contact)
        {
            mCurrentContact = contact;
            SetState(true);

            mProfileImage.SetDetails(mCurrentContact.UserDetails);

            mNameText.text  = mCurrentContact.UserDetails.FullName;
            mPhoneText.text = mCurrentContact.UserDetails.CellPhone;
            mMailText.text  = mCurrentContact.UserDetails.Email;

            mEntryOther.gameObject.SetActive(false);
            mEntryMe.gameObject.SetActive(false);

            Clear();

            Refresh();
        }
Example #10
0
        public override void SetData(Dictionary <string, object> data)
        {
            base.SetData(data);

            List <object> userData = GetList(data, KEY_USERS);

            Users = new DataUser[userData.Count];

            for (int i = 0; i < Users.Length; i++)
            {
                Users[i] = DataUser.GetUser(userData[i] as Dictionary <string, object>);
            }

            Messages = DataChatMessage.ListFromData(GetList(data, KEY_MESSAGES));

            for (int i = 0; i < Users.Length; i++)
            {
                if (!Users[i].IsMe)
                {
                    Contact = Users[i];
                    break;
                }
            }
        }
Example #11
0
 public void Initialize(DataUser user)
 {
     mContact = user;
     UpdateState();
 }
Example #12
0
        public override void SetData(Dictionary <string, object> data)
        {
            base.SetData(data);

            Contact = DataUser.GetUser(GetDict(data, KEY_CONTACT));
        }
Example #13
0
 void OnDisable()
 {
     Backend.OnSendChatMessageSuccess -= OnSendMessageSuccess;
     mCurrentContact = null;
 }