示例#1
0
        public override void setAttachmentState(Attachment.AttachmentState attachmentState)
        {
            this.FileAttachment.FileState = attachmentState;
            Deployment.Current.Dispatcher.BeginInvoke(() =>
            {
                var currentPage = ((App)Application.Current).RootFrame.Content as NewChatThread;
                if (currentPage != null)
                {
                    ContextMenu contextMenu = currentPage.createAttachmentContextMenu(attachmentState, true, false);
                    ContextMenuService.SetContextMenu(this, contextMenu);
                    switch (attachmentState)
                    {
                    case Attachment.AttachmentState.CANCELED:
                        uploadOrDownloadCanceled();
                        MessagesTableUtils.removeUploadingOrDownloadingMessage(this.MessageId);
                        break;

                    case Attachment.AttachmentState.FAILED_OR_NOT_STARTED:
                        uploadOrDownloadCanceled();
                        MessagesTableUtils.removeUploadingOrDownloadingMessage(this.MessageId);
                        break;

                    case Attachment.AttachmentState.COMPLETED:
                        uploadOrDownloadCompleted();
                        MessagesTableUtils.removeUploadingOrDownloadingMessage(this.MessageId);
                        break;

                    case Attachment.AttachmentState.STARTED:
                        uploadOrDownloadStarted();
                        MessagesTableUtils.addUploadingOrDownloadingMessage(this.MessageId, this);
                        break;
                    }
                }
            });
        }
示例#2
0
        public void updateProfile_Callback(JObject obj)
        {
            Deployment.Current.Dispatcher.BeginInvoke(() =>
            {
                if (obj != null && HikeConstants.OK == (string)obj[HikeConstants.STAT])
                {
                    App.ViewModel.ConvMap[groupId].Avatar = fullViewImageBytes;
                    groupImage.Source = grpImage;
                    groupImage.Height = 83;
                    groupImage.Width  = 83;

                    string msg                  = string.Format(AppResources.GroupImgChangedByGrpMember_Txt, AppResources.You_Txt);
                    ConvMessage cm              = new ConvMessage(msg, groupId, TimeUtils.getCurrentTimeStamp(), ConvMessage.State.RECEIVED_READ, -1, -1);
                    cm.GrpParticipantState      = ConvMessage.ParticipantInfoState.GROUP_PIC_CHANGED;
                    cm.GroupParticipant         = App.MSISDN;
                    JObject jo                  = new JObject();
                    jo[HikeConstants.TYPE]      = HikeConstants.MqttMessageTypes.GROUP_DISPLAY_PIC;
                    cm.MetaDataString           = jo.ToString(Newtonsoft.Json.Formatting.None);
                    ConversationListObject cobj = MessagesTableUtils.addChatMessage(cm, false);
                    if (cobj == null)
                    {
                        return;
                    }

                    // handle msgs
                    object[] vs = new object[2];
                    vs[0]       = cm;
                    vs[1]       = cobj;
                    mPubSub.publish(HikePubSub.MESSAGE_RECEIVED, vs);

                    // handle saving image
                    object[] vals = new object[3];
                    vals[0]       = groupId;
                    vals[1]       = fullViewImageBytes;
                    vals[2]       = thumbnailBytes;
                    mPubSub.publish(HikePubSub.ADD_OR_UPDATE_PROFILE, vals);
                }
                else
                {
                    MessageBox.Show(AppResources.CannotChangeGrpImg_Txt, AppResources.Something_Wrong_Txt, MessageBoxButton.OK);
                }
                //progressBar.IsEnabled = false;
                shellProgress.IsVisible = false;
                isProfilePicTapped      = false;
            });
        }
        private void MenuItem_Click_Delete(object sender, RoutedEventArgs e)
        {
            MessageBoxResult result = MessageBox.Show("Are you sure about deleting conversation.", "Delete Conversation ?", MessageBoxButton.OKCancel);

            if (result == MessageBoxResult.Cancel)
            {
                return;
            }
            ListBoxItem selectedListBoxItem = this.myListBox.ItemContainerGenerator.ContainerFromItem((sender as MenuItem).DataContext) as ListBoxItem;

            if (selectedListBoxItem == null)
            {
                return;
            }
            ConversationListObject convObj = selectedListBoxItem.DataContext as ConversationListObject;

            convMap.Remove(convObj.Msisdn);                                // removed entry from map
            App.ViewModel.MessageListPageCollection.Remove(convObj);       // removed from observable collection
            ConversationTableUtils.deleteConversation(convObj.Msisdn);     // removed entry from conversation table
            MessagesTableUtils.deleteAllMessagesForMsisdn(convObj.Msisdn); //removed all chat messages for this msisdn
        }
        private void LoadMessages()
        {
            List <Conversation> conversationList = ConversationTableUtils.getAllConversations();

            if (conversationList == null)
            {
                return;
            }
            for (int i = 0; i < conversationList.Count; i++)
            {
                Conversation conv        = conversationList[i];
                ConvMessage  lastMessage = MessagesTableUtils.getLastMessageForMsisdn(conv.Msisdn); // why we are not getting only lastmsg as string
                ContactInfo  contact     = UsersTableUtils.getContactInfoFromMSISDN(conv.Msisdn);

                Thumbnails             thumbnail = MiscDBUtil.getThumbNailForMSisdn(conv.Msisdn);
                ConversationListObject mObj      = new ConversationListObject((contact == null) ? conv.Msisdn : contact.Msisdn, (contact == null) ? conv.Msisdn : contact.Name, lastMessage.Message, (contact == null) ? conv.OnHike : contact.OnHike,
                                                                              TimeUtils.getTimeString(lastMessage.Timestamp), thumbnail == null ? null : thumbnail.Avatar);
                convMap.Add(conv.Msisdn, mObj);
                App.ViewModel.MessageListPageCollection.Add(mObj);
            }
        }