예제 #1
0
        //대화가 존재하지 않는 경우 호출되어 대화를 새로 생성함.
        private Dialogue CreateNewDialogue(TextMessage objSMS)
        {
            Dialogue objDialogue = new Dialogue();

            objDialogue.Address = objSMS.Address;
            objDialogue.Contact = ContactDBManager.Get().GetContactDataByAddress(objSMS.Address, false);        //메시지 DB 로드가 느린 원인

            if (objDialogue.Contact != null)
            {
                objDialogue.DisplayName = objDialogue.Contact.Name;
            }
            else
            {
                objDialogue.DisplayName = GetDisplayNameIfUsual(objDialogue.Address);
            }
            objDialogue.Thread_id = objSMS.Thread_id;
            return(objDialogue);
        }
예제 #2
0
        //연락처에 없는 대화 중 수신 메시지만 메모리에 올린다. inboxType으로 송신/수신 메시지만 불러오는것도 가능.
        public void LoadUnknownMetaDatas()
        {
            //SMS, MMS 메타데이터(주소와 thread_id)만 수집
            DialogueSet smsMetaDatas = LoadSMSMetaDatas();
            DialogueSet mmsMetaDatas = LoadMMSMetaDatas();

            //mms메타데이터와 smsMetaData를 병합, sms메타데이터 리스트에 mms메타데이터를 넣는다.
            foreach (Dialogue objDialogue in mmsMetaDatas.DialogueList.Values)
            {
                //mms만 있는 경우 리스트에 추가
                if (!smsMetaDatas.IsContain(objDialogue.Thread_id))
                {
                    smsMetaDatas.DialogueList.Add(objDialogue.Thread_id, objDialogue);
                }
                //mms와 sms가 둘다 있는 경우 sms 리스트에 mms를 하나씩 추가함.
                else
                {
                    foreach (MultiMediaMessage mms in objDialogue.TextMessageList)
                    {
                        smsMetaDatas.DialogueList[objDialogue.Thread_id].Add(mms);
                    }
                }
            }

            //연락처에 없는 놈들만 찾는다.
            foreach (Dialogue objDialogue in smsMetaDatas.DialogueList.Values)
            {
                if (ContactDBManager.Get().GetContactDataByAddress(objDialogue.Address, false) == null)
                {
                    if (!_UnknownDialogueSet.IsContain(objDialogue.Thread_id))
                    {
                        _UnknownDialogueSet.DialogueList.Add(objDialogue.Thread_id, objDialogue);
                    }
                    else
                    {
                        _UnknownDialogueSet.DialogueList[objDialogue.Thread_id] = objDialogue;
                    }
                }
            }
        }