private void ContinueSendLocation(TLMessageMediaBase mediaBase) { var mediaVenue = mediaBase as TLMessageMediaVenue; if (mediaVenue != null) { SendVenue(mediaVenue); return; } var mediaGeoLive = mediaBase as TLMessageMediaGeoLive; if (mediaGeoLive != null) { SendLiveLocation(mediaGeoLive); return; } var mediaGeo = mediaBase as TLMessageMediaGeo; if (mediaGeo != null) { SendLocation(mediaGeo); return; } }
protected static bool IsInlineMedia(TLMessageMediaBase media) { if (media == null) { return(false); } if (media.TypeId == TLType.MessageMediaContact) { return(true); } else if (media.TypeId == TLType.MessageMediaGeoLive) { return(true); } else if (media.TypeId == TLType.MessageMediaVenue) { return(true); } else if (media.TypeId == TLType.MessageMediaPhoto) { var photoMedia = media as TLMessageMediaPhoto; if (string.IsNullOrWhiteSpace(photoMedia.Caption)) { return(false); } return(true); } else if (media.TypeId == TLType.MessageMediaDocument) { var documentMedia = media as TLMessageMediaDocument; if (TLMessage.IsMusic(documentMedia.Document)) { return(true); } else if (TLMessage.IsVoice(documentMedia.Document)) { return(true); } else if (TLMessage.IsVideo(documentMedia.Document)) { if (string.IsNullOrWhiteSpace(documentMedia.Caption)) { return(false); } } else if (TLMessage.IsGif(documentMedia.Document)) { if (string.IsNullOrWhiteSpace(documentMedia.Caption)) { return(false); } } return(true); } return(false); }
public static bool MediaFileExists(TLMessageMediaBase value) { var mediaDocument = value as TLMessageMediaDocument; if (mediaDocument == null) { return(true); } if (!string.IsNullOrEmpty(mediaDocument.IsoFileName)) { return(true); } var document = mediaDocument.Document as TLDocument; if (document == null) { return(true); } var fileName = document.GetFileName(); using (var store = IsolatedStorageFile.GetUserStoreForApplication()) { if (store.FileExists(fileName)) { return(true); } } return(false); }
private void OnMediaChanged(TLMessageMediaBase newValue, TLMessageMediaBase oldValue) { var documentMedia = newValue as TLMessageMediaDocument; if (documentMedia != null) { var document = documentMedia.Document as TLDocument; if (document != null) { var audioAttribute = document.Attributes.OfType <TLDocumentAttributeAudio>().FirstOrDefault(); if (audioAttribute != null) { if (audioAttribute.HasWaveform) { UpdateSlide(audioAttribute.Waveform); } else { UpdateSlide(new byte[] { 0 }); } } else { UpdateSlide(new byte[] { 0 }); } } } }
private void ContinueSendLocation(TLMessageMediaBase mediaBase) { var mediaVenue = mediaBase as TLMessageMediaVenue; if (mediaVenue != null) { var chat = Chat as TLEncryptedChat17; if (chat != null && chat.Layer.Value >= Constants.MinSecretChatWithVenuesLayer) { SendVenue(mediaVenue); } else { SendLocation(mediaVenue); } return; } var mediaGeo = mediaBase as TLMessageMediaGeo; if (mediaGeo != null) { SendLocation(mediaGeo); return; } }
protected static bool IsFullMedia(TLMessageMediaBase media, bool width = false) { if (media == null) { return(false); } if (media.TypeId == TLType.MessageMediaGeo) { return(true); } else if (media.TypeId == TLType.MessageMediaGeoLive) { return(true); } else if (media.TypeId == TLType.MessageMediaVenue) { return(true); } else if (media.TypeId == TLType.MessageMediaPhoto) { return(true); } else if (media.TypeId == TLType.MessageMediaDocument) { var documentMedia = media as TLMessageMediaDocument; if (TLMessage.IsGif(documentMedia.Document)) { return(true); } else if (TLMessage.IsVideo(documentMedia.Document)) { return(true); } } else if (media.TypeId == TLType.MessageMediaInvoice && width) { var invoiceMedia = media as TLMessageMediaInvoice; if (invoiceMedia.HasPhoto && invoiceMedia.Photo != null) { return(true); } } //else if (media.TypeId == TLType.MessageMediaWebPage && width) //{ // var webPageMedia = media as TLMessageMediaWebPage; // var webPage = webPageMedia.WebPage as TLWebPage; // if (webPage != null && MediaTemplateSelector.IsWebPagePhotoTemplate(webPage)) // { // return true; // } //} return(false); }
public override TLObject FromBytes(byte[] bytes, ref int position) { bytes.ThrowExceptionIfIncorrect(ref position, Signature); Id = GetObject <TLInt>(bytes, ref position); Date = GetObject <TLInt>(bytes, ref position); Media = GetObject <TLMessageMediaBase>(bytes, ref position); Pts = GetObject <TLInt>(bytes, ref position); PtsCount = GetObject <TLInt>(bytes, ref position); Links = GetObject <TLVector <TLLinkBase> >(bytes, ref position); return(this); }
protected static bool IsFullMedia(TLMessageMediaBase media, bool width = false) { if (media == null) { return(false); } if (media is TLMessageMediaGeo) { return(true); } else if (media is TLMessageMediaGeoLive) { return(true); } else if (media is TLMessageMediaVenue) { return(true); } else if (media is TLMessageMediaPhoto) { return(true); } else if (media is TLMessageMediaDocument documentMedia) { if (TLMessage.IsGif(documentMedia.Document)) { return(true); } else if (TLMessage.IsVideo(documentMedia.Document)) { return(true); } } else if (media is TLMessageMediaInvoice invoiceMedia && width) { if (invoiceMedia.HasPhoto && invoiceMedia.Photo != null) { return(true); } }
private TLMessageBase GetServiceMessage(TLInt fromId, TLString text, TLMessageMediaBase media, TLInt date = null) { var message = TLUtils.GetMessage( fromId, new TLPeerUser { Id = new TLInt(StateService.CurrentUserId) }, MessageStatus.Confirmed, TLBool.False, TLBool.True, date ?? TLUtils.DateToUniversalTimeTLInt(MTProtoService.ClientTicksDelta, DateTime.Now), text, media, TLLong.Random(), new TLInt(0) ); message.Id = new TLInt(0); return(message); }
private static void SaveVideoAsync(TLMessageMediaBase mediaBase) { var mediaDocument = mediaBase as TLMessageMediaDocument45; if (mediaDocument != null && TLMessageBase.IsVideo(mediaDocument.Document)) { var video = mediaDocument.Video as TLDocument22; if (video == null) { return; } var fileName = video.GetFileName(); Execute.BeginOnThreadPool(() => SaveVideo(fileName)); return; } var mediaVideo = mediaBase as TLMessageMediaVideo; if (mediaVideo != null) { var video = mediaVideo.Video as TLVideo; if (video == null) { return; } var fileName = video.GetFileName(); Execute.BeginOnThreadPool(() => SaveVideo(fileName)); return; } }
public TLMessage34 GetMessage(TLObject With, TLInputPeerBase Peer, TLString text, TLMessageMediaBase media) { var broadcast = With as TLBroadcastChat; var channel = With as TLChannel; var toId = channel != null ? new TLPeerChannel { Id = channel.Id } : broadcast != null ? new TLPeerBroadcast { Id = broadcast.Id } : TLUtils.InputPeerToPeer(Peer, IoC.Get <IStateService>().CurrentUserId); var date = TLUtils.DateToUniversalTimeTLInt(IoC.Get <IMTProtoService>().ClientTicksDelta, DateTime.Now); var message = TLUtils.GetMessage( new TLInt(IoC.Get <IStateService>().CurrentUserId), toId, broadcast != null && channel == null ? MessageStatus.Broadcast : MessageStatus.Sending, TLBool.True, TLBool.True, date, text, media, TLLong.Random(), new TLInt(0) ); return(message); }
protected object ConvertMedia(TLMessageMediaBase media) { return(ViewModel); }