private static VoiceMessageItem GetLoadedVoiceMessageItem(IVirtualizable item) { VoiceMessageItem voiceMessageItem = ConversationItems.GetVoiceMessageItem(item); if (voiceMessageItem != null && voiceMessageItem.CurrentState != VirtualizableState.Unloaded) { return(voiceMessageItem); } return((VoiceMessageItem)null); }
private double CreateVoiceMessage(double topMargin) { if (this._voiceMessageDoc == null) { return(0.0); } topMargin += 8.0; if (this._voiceMessageItem != null) { this._voiceMessageItem.Margin = new Thickness(0.0, topMargin, 0.0, 0.0); this._voiceMessageItem.IsHorizontal = this._isHorizontal; } else { this._voiceMessageItem = new VoiceMessageItem(this._verticalWidth, new Thickness(0.0, topMargin, 0.0, 0.0), this._voiceMessageDoc, this._isHorizontal, this._horizontalWidth); this.VirtualizableChildren.Add((IVirtualizable)this._voiceMessageItem); } return(this._voiceMessageItem.FixedHeight); }
private static VoiceMessageItem GetVoiceMessageItem(IVirtualizable item) { MessageItem messageItem = item as MessageItem; MessageContentItem messageContentItem = messageItem == null ? item as MessageContentItem : messageItem.VirtualizableChildren.FirstOrDefault <IVirtualizable>((Func <IVirtualizable, bool>)(i => i is MessageContentItem)) as MessageContentItem; if (messageContentItem != null) { if (messageContentItem.ForwardedList != null && messageContentItem.ForwardedList.Count > 0) { return((VoiceMessageItem)null); } AttachmentsItem attachmentsItem = messageContentItem.VirtualizableChildren.FirstOrDefault <IVirtualizable>((Func <IVirtualizable, bool>)(i => i is AttachmentsItem)) as AttachmentsItem; VoiceMessageItem voiceMessageItem = (attachmentsItem != null ? attachmentsItem.VirtualizableChildren.FirstOrDefault <IVirtualizable>((Func <IVirtualizable, bool>)(i => i is VoiceMessageItem)) : (IVirtualizable)null) as VoiceMessageItem; if (voiceMessageItem != null) { return(voiceMessageItem); } } return((VoiceMessageItem)null); }
public void Handle(VoiceMessagePlayEndedEvent message) { if (this._messages == null || this._messages.Count == 0) { return; } Doc doc1 = message.Doc; if (doc1 == null || doc1.owner_id == 0L || doc1.id == 0L) { return; } int index1 = -1; for (int index2 = this._messages.Count - 1; index2 >= 0; --index2) { VoiceMessageItem voiceMessageItem = ConversationItems.GetLoadedVoiceMessageItem((IVirtualizable)(this._messages[index2] as MessageItem)); Doc doc2 = voiceMessageItem != null ? voiceMessageItem.Doc : (Doc)null; if (voiceMessageItem != null && doc2 != null && (doc2.owner_id == doc1.owner_id && doc2.id == doc1.id)) { index1 = index2 - 1; break; } } if (index1 < 0) { return; } VoiceMessageItem voiceMessageItem1 = ConversationItems.GetLoadedVoiceMessageItem((IVirtualizable)(this._messages[index1] as MessageItem)); if (voiceMessageItem1 == null) { return; } voiceMessageItem1.PlayPause(); }