Exemplo n.º 1
0
        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));
            });

            
        }
Exemplo n.º 2
0
        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();
            }
           
        }