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; }
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; }