private void OnSmileIconClick(object sender, EventArgs e)
        {
            if (EmojiInstance == null)
            {
                // Initialize EmojiControl
                EmojiInstance = EmojiControl.GetInstance();
                EmojiInstance.BindTextBox(InputTextBox);

                ContentPanel.Children.Add(EmojiInstance); // Add to view
            }

            EmojiInstance.IsOpen = !EmojiInstance.IsOpen;
        }
        public SecretDialogDetailsView()
        {
            _timer = System.Diagnostics.Stopwatch.StartNew();

            InitializeComponent();

            _sendButton.Click   += (sender, args) => ViewModel.Send();
            _attachButton.Click += (sender, args) =>
            {
                EmojiPlaceholder.Visibility = Visibility.Collapsed;
                Self.Focus();
                ViewModel.Attach();
            };
            _manageButton.Click += (sender, args) => SwitchToSelectionMode();
            _deleteButton.Click += (sender, args) =>
            {
                ViewModel.DeleteMessages();
                SwitchToNormalMode();
            };
            _smileButton.Click += (sender, args) =>
            {
                if (_emojiKeyboard == null)
                {
                    _emojiKeyboard = EmojiControl.GetInstance();

                    _emojiKeyboard.BindTextBox(InputMessage);
                    EmojiPlaceholder.Content = _emojiKeyboard;
                    _emojiKeyboard.IsOpen    = true;
                }

                if (EmojiPlaceholder.Visibility == Visibility.Visible)
                {
                    if (InputMessage == FocusManager.GetFocusedElement())
                    {
                        _smileButtonPressed = true;
                        Items.Focus();

                        EmojiPlaceholder.Opacity = 1.0;
                        EmojiPlaceholder.Height  = EmojiControl.PortraitOrientationHeight;
                    }
                    else
                    {
                        EmojiPlaceholder.Visibility = Visibility.Collapsed;
                    }
                }
                else
                {
                    var awaitKeyboardDown = false;
                    if (InputMessage == FocusManager.GetFocusedElement())
                    {
                        awaitKeyboardDown = true;
                        Items.Focus();
                    }

                    ThreadPool.QueueUserWorkItem(state =>
                    {
                        if (awaitKeyboardDown)
                        {
                            Thread.Sleep(400);
                        }
                        Deployment.Current.Dispatcher.BeginInvoke(() =>
                        {
                            EmojiPlaceholder.Visibility = Visibility.Visible;
                        });
                    });
                }
            };

            Loaded   += OnLoaded;
            Unloaded += OnUnloaded;
        }
Exemple #3
0
        public SecretDialogDetailsView()
        {
            _timer = System.Diagnostics.Stopwatch.StartNew();

            InitializeComponent();

            //Full HD
            OptimizeFullHD();

            _sendButton.Click   += (sender, args) => ViewModel.Send();
            _attachButton.Click += (sender, args) =>
            {
                EmojiPlaceholder.Visibility = Visibility.Collapsed;
                AudioRecorder.Visibility    = GetAudioRecorderVisibility(); //Visibility.Visible;
                Title.Visibility            = Visibility.Visible;
                DialogPhoto.Visibility      = Visibility.Visible;

                Self.Focus();
                ViewModel.Attach();
            };
            _manageButton.Click += (sender, args) => SwitchToSelectionMode();
            _deleteButton.Click += (sender, args) =>
            {
                ViewModel.DeleteMessages();
                SwitchToNormalMode();
            };
            _smileButton.Click += (sender, args) =>
            {
                if (_emojiKeyboard == null)
                {
                    _emojiKeyboard = EmojiControl.GetInstance();

                    _emojiKeyboard.BindTextBox(InputMessage, true);
                    _emojiKeyboard.StickerSelected += OnStickerSelected;
                    EmojiPlaceholder.Content        = _emojiKeyboard;
                    _emojiKeyboard.IsOpen           = true;
                }

                if (EmojiPlaceholder.Visibility == Visibility.Visible)
                {
                    if (InputMessage == FocusManager.GetFocusedElement())
                    {
                        Items.Focus();
                        _smileButtonPressed      = true;
                        EmojiPlaceholder.Opacity = 1.0;
                        EmojiPlaceholder.Height  = EmojiControl.PortraitOrientationHeight;
                    }
                    else
                    {
                        EmojiPlaceholder.Visibility = Visibility.Collapsed;
                        AudioRecorder.Visibility    = GetAudioRecorderVisibility(); //Visibility.Visible;
                        Title.Visibility            = Visibility.Visible;
                        DialogPhoto.Visibility      = Visibility.Visible;
                    }
                }
                else
                {
                    var awaitKeyboardDown = false;
                    if (InputMessage == FocusManager.GetFocusedElement())
                    {
                        awaitKeyboardDown = true;
                        Items.Focus();
                    }

                    Telegram.Api.Helpers.Execute.BeginOnThreadPool(() =>
                    {
                        if (awaitKeyboardDown)
                        {
                            Thread.Sleep(400);
                        }
                        Telegram.Api.Helpers.Execute.BeginOnUIThread(() =>
                        {
                            EmojiPlaceholder.Visibility = Visibility.Visible;
                            AudioRecorder.Visibility    = Visibility.Collapsed;
                            Title.Visibility            = Visibility.Collapsed;
                            DialogPhoto.Visibility      = Visibility.Collapsed;
                        });
                    });
                }
            };

            Loaded   += OnLoaded;
            Unloaded += OnUnloaded;
        }
        public DialogDetailsView()
        {
            InitializeComponent();

            AnimationContext = LayoutRoot;

            _sendButton.Click   += (sender, args) => ViewModel.Send();
            _attachButton.Click += (sender, args) =>
            {
                EmojiPlaceholder.Visibility = Visibility.Collapsed;
                //DialogPhoto.Visibility = Visibility.Visible;
                //Title.Visibility = Visibility.Visible;

                ChooseAttachment.Focus();
                ViewModel.Attach();
            };
            _smileButton.Click += (sender, args) =>
            {
                if (_emojiKeyboard == null)
                {
                    _emojiKeyboard = EmojiControl.GetInstance();

                    _emojiKeyboard.BindTextBox(InputMessage);
                    EmojiPlaceholder.Content = _emojiKeyboard;
                    _emojiKeyboard.IsOpen    = true;
                }

                if (EmojiPlaceholder.Visibility == Visibility.Visible)
                {
                    if (InputMessage == FocusManager.GetFocusedElement())
                    {
                        _smileButtonPressed = true;

                        EmojiPlaceholder.Opacity = 1.0;
                        EmojiPlaceholder.Height  = EmojiControl.PortraitOrientationHeight;
                        Items.Focus();
                    }
                    else
                    {
                        EmojiPlaceholder.Visibility = Visibility.Collapsed;
                        //DialogPhoto.Visibility = Visibility.Visible;
                        //Title.Visibility = Visibility.Visible;
                    }
                }
                else
                {
                    var awaitKeyboardDown = false;
                    if (InputMessage == FocusManager.GetFocusedElement())
                    {
                        awaitKeyboardDown = true;
                        Items.Focus();
                    }

                    ThreadPool.QueueUserWorkItem(state =>
                    {
                        if (awaitKeyboardDown)
                        {
                            Thread.Sleep(400);
                        }
                        Deployment.Current.Dispatcher.BeginInvoke(() =>
                        {
                            EmojiPlaceholder.Opacity    = 1.0;
                            EmojiPlaceholder.Visibility = Visibility.Visible;
                            //DialogPhoto.Visibility = Visibility.Collapsed;
                            //Title.Visibility = Visibility.Collapsed;
                        });
                    });
                }
            };
            _manageButton.Click  += (sender, args) => SwitchToSelectionMode();
            _forwardButton.Click += (sender, args) =>
            {
                var selectedItems = ViewModel.Items.Where(x => x.Id != null && x.IsSelected).ToList();
                if (selectedItems.Count == 0)
                {
                    return;
                }

                ViewModel.IsSelectionEnabled = false;

                Deployment.Current.Dispatcher.BeginInvoke(() =>
                {
                    try
                    {
                        if (Items.Visibility == Visibility.Visible)
                        {
                            var writeableBitmap   = new WriteableBitmap(Items, null);
                            ViewModel.With.Bitmap = writeableBitmap;
                        }
                    }
                    catch (Exception ex)
                    {
                        Telegram.Api.Helpers.Execute.ShowDebugMessage("WritableBitmap exception " + ex);
                    }

                    ViewModel.ForwardMessages(selectedItems);
                });
            };
            _deleteButton.Click += (sender, args) => ViewModel.DeleteMessages();

            Loaded += (sender, args) =>
            {
                SetRootFrameBinding();

                if (!ViewModel.StateService.IsEmptyBackground)
                {
                    var color = Colors.White;
                    color.A = 254;
                    SystemTray.ForegroundColor = color;
                }

                if (ViewModel.StateService.CurrentBackground != null)
                {
                    var color = Colors.White;
                    color.A = 254;
                    SystemTray.ForegroundColor = color;
                }

                if (ViewModel.With is TLBroadcastChat)
                {
                    _forwardButton.IsEnabled = false;
                }

                ThreadPool.QueueUserWorkItem(state =>
                {
                    Thread.Sleep(300);

                    Deployment.Current.Dispatcher.BeginInvoke(() =>
                    {
                        if (ViewModel.StateService.FocusOnInputMessage)
                        {
                            ViewModel.StateService.FocusOnInputMessage = false;
                            InputMessage.Focus();
                        }
                    });
                });
                if (ViewModel.ChooseAttachment != null)
                {
                    ViewModel.ChooseAttachment.PropertyChanged += OnChooseAttachmentPropertyChanged;
                }
                if (ViewModel.ImageViewer != null)
                {
                    ViewModel.ImageViewer.PropertyChanged += OnImageViewerPropertyChanged;
                }
                if (ViewModel.ImageEditor != null)
                {
                    ViewModel.ImageEditor.PropertyChanged += OnImageEditorPropertyChanged;
                }
                ViewModel.PropertyChanged += OnViewModelPropertyChanged;
                ViewModel.ScrollToBottom  += OnViewModelScrollToBottom;

                BuildLocalizedAppBar();
                //MessageBox.Show("Time: " + timer.Elapsed);
            };

            Unloaded += (sender, args) =>
            {
                RemoveRootFrameBinding();

                if (ViewModel.ChooseAttachment != null)
                {
                    ViewModel.ChooseAttachment.PropertyChanged -= OnChooseAttachmentPropertyChanged;
                }
                if (ViewModel.ImageViewer != null)
                {
                    ViewModel.ImageViewer.PropertyChanged -= OnImageViewerPropertyChanged;
                }
                if (ViewModel.ImageEditor != null)
                {
                    ViewModel.ImageEditor.PropertyChanged -= OnImageEditorPropertyChanged;
                }
                ViewModel.ScrollToBottom  -= OnViewModelScrollToBottom;
                ViewModel.PropertyChanged -= OnViewModelPropertyChanged;
            };
        }