private void appBarButtonSearch_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e) { appBar_Bottom.IsOpen = false; appBar_Top.IsOpen = false; SearchDetailFlyout flyout = new SearchDetailFlyout(viewModel); flyout.onAddTimeline += (timelineName, searchWord, account) => { var timeline = new SearchTimeline(account, timelineName, viewModel.GetNowTab().TabTitle, searchWord, viewModel.Setting, viewModel.CallTimelineAction, viewModel.CallRowAction); viewModel.AddTimelineCommand.Execute(timeline); }; flyout.Show(); }
private async void btnAdd_Click(object sender, RoutedEventArgs e) { bool isInputOK = true; if (textTimelineName.Text == string.Empty) { MessageDialog dialog = new MessageDialog("タイムライン名が入力されていません", "入力エラー"); await dialog.ShowAsync(); isInputOK = false; } foreach (var t in viewModel.NowTimelineList) { if (t.ListTitle == textTimelineName.Text) { MessageDialog dialog = new MessageDialog("タイムライン名が競合しています。固有のタイムライン名を入力してください", "入力エラー"); await dialog.ShowAsync(); isInputOK = false; } } if (this.comboBoxAccount.SelectedIndex == -1) { MessageDialog dialog = new MessageDialog("アカウント名が選択されていません", "入力エラー"); await dialog.ShowAsync(); isInputOK = false; } if (this.comboBoxTimelineType.SelectedIndex == -1) { MessageDialog dialog = new MessageDialog("タイムラインタイプが選択されていません", "入力エラー"); await dialog.ShowAsync(); isInputOK = false; } if (isInputOK == true) { TimelineBase resultModel = null; TwitterAccount account = (TwitterAccount)comboBoxAccount.SelectedItem; switch (comboBoxTimelineType.SelectedIndex) { case 0: resultModel = new HomeTimeline(account, textTimelineName.Text, viewModel.GetNowTab().TabTitle, viewModel.Setting, viewModel.CallTimelineAction, viewModel.CallRowAction); break; case 1: resultModel = new MentionTimeline(account, textTimelineName.Text, viewModel.GetNowTab().TabTitle, viewModel.Setting, viewModel.CallTimelineAction, viewModel.CallRowAction); break; case 2: resultModel = new NotificationTimeline(account, textTimelineName.Text, viewModel.GetNowTab().TabTitle, viewModel.Setting, viewModel.CallTimelineAction, viewModel.CallRowAction); break; case 3: if (textSearchWord.Text == string.Empty) { MessageDialog dialog = new MessageDialog("検索ワードが入力されていません", "入力エラー"); await dialog.ShowAsync(); return; } resultModel = new SearchTimeline(account, textTimelineName.Text, viewModel.GetNowTab().TabTitle, textSearchWord.Text, viewModel.Setting, viewModel.CallTimelineAction, viewModel.CallRowAction); break; case 4: if (comboList.SelectedIndex == -1) { MessageDialog dialog = new MessageDialog("リストが選択されていません", "入力エラー"); await dialog.ShowAsync(); return; } resultModel = new ListTimeline(account, textTimelineName.Text, viewModel.GetNowTab().TabTitle, (TwitterList)comboList.SelectedItem, viewModel.Setting, viewModel.CallTimelineAction, viewModel.CallRowAction); break; case 5: resultModel = new DirectMessageTimeline(account, textTimelineName.Text, viewModel.GetNowTab().TabTitle, viewModel.Setting, viewModel.CallTimelineAction, viewModel.CallRowAction); break; case 6: if (textUser.Text == string.Empty) { MessageDialog dialog = new MessageDialog("ユーザー名が入力されていません", "入力エラー"); await dialog.ShowAsync(); return; } resultModel = new UserTimeline(account, textTimelineName.Text, viewModel.GetNowTab().TabTitle, textUser.Text, viewModel.Setting, viewModel.CallTimelineAction, viewModel.CallRowAction); break; case 7: resultModel = new ImageTimeline(account, textTimelineName.Text, viewModel.GetNowTab().TabTitle, viewModel.Setting, viewModel.CallTimelineAction, viewModel.CallRowAction); break; case 8: resultModel = new LinkTimeline(account, textTimelineName.Text, viewModel.GetNowTab().TabTitle, viewModel.Setting, viewModel.CallTimelineAction, viewModel.CallRowAction); break; } if (toggleTimelineFiltering.IsOn) { resultModel.ExtractionAccountScreenNameStr = textExtractionAccount.Text; resultModel.ExcludeAccountScreenNameStr = textExcludeAccount.Text; resultModel.ExtractionWordStr = textExtractionWord.Text; resultModel.ExcludeWordStr = textExcludeWord.Text; resultModel.IsTimelineFiltering = toggleTimelineFiltering.IsOn; resultModel.IsNewNotification = toggleNotification.IsOn; } viewModel.AddTimelineCommand.Execute(resultModel); onCreateCallBack(resultModel); this.Hide(); } }
private void MessengerRegister() { Messenger.Default.Register <string>(this, "GetAuthorizedUrl", str => { authenticationBrowser.NavigateUrl(str); }); Messenger.Default.Register <bool>(this, "AuthorizedCompleted", async bln => { if (bln) { authenticationBrowser.Close(); } else { MessageDialog dialog = new MessageDialog("ピンコードが違います", "エラー"); await dialog.ShowAsync(); authenticationBrowser.Close(); Authentication(); } }); Messenger.Default.Register <string>(this, "BrowsUrl", str => { PreviewBrowserFlyout flyout = new PreviewBrowserFlyout(); flyout.Show(new Uri(str), Window.Current.Bounds.Width * 2 / 3); }); Messenger.Default.Register <SearchDetail>(this, "ShowSearchDetail", sd => { SearchDetailFlyout flyout = new SearchDetailFlyout(viewModel); flyout.onAddTimeline += (timelineName, searchWord, account) => { var timeline = new SearchTimeline(account, timelineName, viewModel.GetNowTab().TabTitle, searchWord, viewModel.Setting, viewModel.CallTimelineAction, viewModel.CallRowAction); viewModel.AddTimelineCommand.Execute(timeline); }; flyout.ShowIndependent(); }); Messenger.Default.Register <UserDetail>(this, "ShowUserDetail", ud => { UserDetailFlyout flyout = new UserDetailFlyout(viewModel, () => { viewModel.DirectMessageDetailCommand.Execute(new DirectMessageDetailParameter(ud.OwnerAccount.UserInfomation.screen_name, new DirectMessage { recipient_screen_name = viewModel.UserDetail.UserInformation.screen_name })); DirectMessageFlyout d_flyout = new DirectMessageFlyout(this.viewModel); d_flyout.ShowIndependent(); }); flyout.ShowIndependent(); }); Messenger.Default.Register <TweetDetail>(this, "ShowTweetDetail", td => { TweetDetailFlyout flyout = new TweetDetailFlyout(viewModel); flyout.ShowIndependent(); }); Messenger.Default.Register <bool>(this, "InternalNotification", async tweet => { notificationBarStoryboard.Begin(); if (viewModel.Setting.IsSoundEnable) { mediaElementNotification.Play(); } }); Messenger.Default.Register <bool>(this, "ToastNotification", async tweet => { ToastText toast = new ToastText(viewModel.NotifyMessage.Message, Windows.UI.Notifications.ToastTemplateType.ToastText01); toast.Show(); }); Messenger.Default.Register <NotificationState>(this, "ChangeNotificationState", state => { }); Messenger.Default.Register <PostStatusBase>(this, "OnTweetBegin", status => { }); Messenger.Default.Register <PostStatusBase>(this, "OnTweetFailed", status => { }); Messenger.Default.Register <PostStatusBase>(this, "OnTweetCompleted", status => { }); Messenger.Default.Register <HttpRequestException>(this, "OnHttpGetError", e => { }); Messenger.Default.Register <HttpRequestException>(this, "OnHttpPostError", e => { }); Messenger.Default.Register <HttpRequestException>(this, "OnUserStreamHttpError", e => { }); Messenger.Default.Register <HttpRequestException>(this, "OnFollowStreamHttpError", e => { }); Messenger.Default.Register <TimelineBase>(this, "EditTimeline", timeline => { EditTimelineFlyout flyout = new EditTimelineFlyout(viewModel); flyout.ShowIndependent(); }); Messenger.Default.Register <TimelineBase>(this, "DeleteTimeline", timeline => { ChangeTimelineSize(new Size(Window.Current.Bounds.Width, Window.Current.Bounds.Height)); }); Messenger.Default.Register <TimelineTab>(this, "EditTimelineTab", tab => { EditTabFlyout flyout = new EditTabFlyout(viewModel); flyout.ShowIndependent(); }); Messenger.Default.Register <TimelineTab>(this, "DeleteTimelineTab", tab => { }); Messenger.Default.Register <string>(this, "DeletePostImage", str => { }); Messenger.Default.Register <int>(this, "SetPostTextCursor", pos => { if (timelineState == TimelineState.MultiTimeline) { textPost.Select(pos, 0); } else { textPostBottom.Select(pos, 0); } }); Messenger.Default.Register <TimelineBase>(this, "AddTimeline", timeline => { ChangeTimelineSize(new Size(Window.Current.Bounds.Width, Window.Current.Bounds.Height)); }); Messenger.Default.Register <DirectMessage>(this, "ShowDirectMessageDetail", dm => { DirectMessageFlyout flyout = new DirectMessageFlyout(this.viewModel); flyout.ShowIndependent(); }); Messenger.Default.Register <TimelineTab>(this, "ChangeTab", tab => { ChangeTimelineSize(new Size(Window.Current.Bounds.Width, Window.Current.Bounds.Height)); }); }