public PinchAndZoom()
        {
            InitializeComponent();

            media = MediaTransitionHelper.Instance.Media;

            if (media.Constructor == Constructor.messageMediaPhoto)
            {
                ImageViewportElement.Visibility = Visibility.Visible;
                PlaybackControls.Visibility     = Visibility.Collapsed;

                MessageMediaPhotoConstructor cons = (MessageMediaPhotoConstructor)media;

                if (cons.photo.Constructor == Constructor.photoEmpty)
                {
                }
                else if (cons.photo.Constructor == Constructor.photo)
                {
                    PhotoConstructor photoConstructor = (PhotoConstructor)cons.photo;
                    author = TelegramSession.Instance.GetUser(photoConstructor.user_id);
                    MetaInfoAuthor.Text = author.FullName;
                    MetaInfoDate.Text   = Formatters.FormatDialogDateTimestampUnix(photoConstructor.date);
                }

                DoLoadPhoto();
                return;
            }
            else if (media.Constructor == Constructor.messageMediaVideo)
            {
                ImageViewportElement.Visibility = Visibility.Collapsed;
                PlaybackControls.Visibility     = Visibility.Visible;
                VideoPlayerElement.Visibility   = Visibility.Visible;
                PlaybackButton.Visibility       = Visibility.Visible;

                MessageMediaVideoConstructor cons = (MessageMediaVideoConstructor)media;

                if (cons.video.Constructor == Constructor.videoEmpty)
                {
                }
                else if (cons.video.Constructor == Constructor.video)
                {
                    VideoConstructor videoConstructor = (VideoConstructor)cons.video;
                    author = TelegramSession.Instance.GetUser(videoConstructor.user_id);

                    MetaInfoAuthor.Text = author.FullName;
                    MetaInfoDate.Text   = Formatters.FormatDialogDateTimestampUnix(videoConstructor.date);
                }

                VideoPlayerElement.MediaEnded += delegate {
                    PlaybackButton.Visibility = Visibility.Visible;
                };
            }
            else
            {
                return;
            }
        }
Exemple #2
0
        private void OnDialogSelected(object sender, DialogModel model)
        {
            InputPeer inputPeer = null;

            if (!(model is DialogModelPlain))
            {
                return;
            }

            DialogModelPlain dmp = (DialogModelPlain)model;

            if (fromMedia == 1)
            {
                MessageMedia media = MediaTransitionHelper.Instance.Media;

                InputMedia im = null;
                if (media.Constructor == Constructor.messageMediaPhoto)
                {
                    MessageMediaPhotoConstructor mmpc = (MessageMediaPhotoConstructor)media;
                    InputPhoto ip = TL.inputPhoto(((PhotoConstructor)mmpc.photo).id, ((PhotoConstructor)mmpc.photo).access_hash);

                    im = TL.inputMediaPhoto(ip);
                }
                else if (media.Constructor == Constructor.messageMediaVideo)
                {
                    MessageMediaVideoConstructor mmvc = (MessageMediaVideoConstructor)media;
                    InputVideo iv = TL.inputVideo(((VideoConstructor)mmvc.video).id, ((VideoConstructor)mmvc.video).access_hash);

                    im = TL.inputMediaVideo(iv);
                }
                else if (media.Constructor == Constructor.messageMediaGeo)
                {
                    MessageMediaGeoConstructor mmgc = (MessageMediaGeoConstructor)media;
                    GeoPointConstructor        gpc  = (GeoPointConstructor)mmgc.geo;

                    InputGeoPoint point = TL.inputGeoPoint(gpc.lat, gpc.lng);
                    im = TL.inputMediaGeoPoint(point);
                }

                if (im != null)
                {
                    dmp.SendMedia(im);
                    NavigationService.GoBack();
                }

                return;
            }

            if (messageId.Count == 0)
            {
                logger.error("error forwarding, no messageId");
            }

            Peer peer = model.Peer;

            if (model.IsChat)
            {
                inputPeer = TL.inputPeerChat(((PeerChatConstructor)peer).chat_id);
            }
            else
            {
                inputPeer = TL.inputPeerContact(((PeerUserConstructor)peer).user_id);
            }

            DoForwardMessages(inputPeer);

            int modelId = TelegramSession.Instance.Dialogs.Model.Dialogs.IndexOf(model);

            NavigationService.Navigate(new Uri("/UI/Pages/DialogPage.xaml?modelId=" + modelId, UriKind.Relative));
        }