Esempio n. 1
0
        private void SetState(ChatSearchState state, MessageSender from = null, ChatSearchMediaFilter filter = null)
        {
            var viewModel = ViewModel;

            if (viewModel == null)
            {
                return;
            }

            if (from != null)
            {
                Field.Filter = null;
                Field.From   = from;

                if (viewModel.CacheService.TryGetUser(from, out User user))
                {
                    Field.Header = user.GetFullName();
                }
                else if (viewModel.CacheService.TryGetChat(from, out Chat chat))
                {
                    Field.Header = chat.Title;
                }
            }
            else
            {
                Field.From   = null;
                Field.Filter = filter;

                Field.Header = filter?.Text;
            }

            Field.Text  = string.Empty;
            Field.State = state;

            switch (state)
            {
            case ChatSearchState.Members:
                ToolsPanel.Visibility  = Visibility.Collapsed;
                viewModel.Autocomplete = new UsernameCollection(viewModel.ProtoService, viewModel.Dialog.Chat.Id, 0, string.Empty, false, true);
                break;

            case ChatSearchState.Media:
                ToolsPanel.Visibility  = Visibility.Collapsed;
                viewModel.Autocomplete = viewModel.Filters;
                break;

            case ChatSearchState.TextByMember:
            case ChatSearchState.TextByMedia:
                ToolsPanel.Visibility  = Visibility.Collapsed;
                viewModel.Autocomplete = null;
                break;

            default:
                ToolsPanel.Visibility  = viewModel.Dialog.Type != DialogType.History && viewModel.Dialog.Type != DialogType.Thread ? Visibility.Collapsed : Visibility.Visible;
                viewModel.Autocomplete = null;
                break;
            }

            DeleteButton.Visibility = string.IsNullOrEmpty(Field.Text) && state == ChatSearchState.Text ? Visibility.Collapsed : Visibility.Visible;
        }
Esempio n. 2
0
        private void SetState(ChatSearchState state, User from = null, ChatSearchMediaFilter filter = null)
        {
            if (from != null)
            {
                Field.Filter = null;
                Field.From   = from;
            }
            else
            {
                Field.From   = null;
                Field.Filter = filter;
            }

            Field.Text  = string.Empty;
            Field.State = state;

            switch (state)
            {
            case ChatSearchState.Members:
                ToolsPanel.Visibility  = ToolsMiniPanel.Visibility = Visibility.Collapsed;
                ViewModel.Autocomplete = new UsernameCollection(ViewModel.ProtoService, ViewModel.Dialog.Chat.Id, string.Empty, false, true);
                break;

            case ChatSearchState.Media:
                ToolsPanel.Visibility  = ToolsMiniPanel.Visibility = Visibility.Collapsed;
                ViewModel.Autocomplete = ViewModel.Filters;
                break;

            case ChatSearchState.TextByMember:
            case ChatSearchState.TextByMedia:
                ToolsPanel.Visibility  = ToolsMiniPanel.Visibility = Visibility.Collapsed;
                ViewModel.Autocomplete = null;
                break;

            default:
                ToolsPanel.Visibility  = ToolsMiniPanel.Visibility = Visibility.Visible;
                ViewModel.Autocomplete = null;
                break;
            }

            DeleteButton.Visibility = string.IsNullOrEmpty(Field.Text) && state == ChatSearchState.Text ? Visibility.Collapsed : Visibility.Visible;
        }