예제 #1
0
 private void OnFavoriteTapped(object sender, EventArgs e)
 {
     if (FavoriteCommand?.CanExecute(FavoriteCommandParameter) == true)
     {
         FavoriteCommand.Execute(FavoriteCommandParameter);
     }
 }
예제 #2
0
        public async void CallRowAction(RowAction action)
        {
            switch (action.ActionType)
            {
            case RowActionType.Favorite:
                FavoriteCommand.Execute(action.Parameter as Tweet);
                break;

            case RowActionType.Retweet:
                RetweetCommand.Execute(action.Parameter as Tweet);
                break;

            case RowActionType.Quote:
                QuoteCommand.Execute(action.Parameter as Tweet);
                break;

            case RowActionType.Reply:
                ReplyCommand.Execute(action.Parameter as Tweet);
                break;

            case RowActionType.TweetDetail:
                var tweetParameter = action.Parameter as TweetDetailParameter;

                TweetDetailCommand.Execute(tweetParameter);
                break;

            case RowActionType.UserDetail:
                var userParameter = action.Parameter as UserDetailParameter;

                UserDetailCommand.Execute(userParameter);
                break;

            case RowActionType.Search:
                var searchParameter = action.Parameter as SearchDetailParameter;
                SearchCommand.Execute(searchParameter);
                break;

            case RowActionType.Browse:
                BrowseCommand.Execute(action.Parameter.ToString());
                break;

            case RowActionType.Description:
                DescriptionDommand.Execute(action.Parameter as Tweet);
                break;

            case RowActionType.Delete:
                var tweet  = action.Parameter as Tweet;
                var client = AccountList.Where(q => q.UserInfomation.screen_name == tweet.user.screen_name).Select(q => q.TwitterClient).Single();
                await client.DestroyStatusAsync(tweet);

                break;

            case RowActionType.DirectMessage:
                var dmParameter = action.Parameter as DirectMessageDetailParameter;

                DirectMessageDetailCommand.Execute(dmParameter);
                break;

            case RowActionType.Share:
                break;

            case RowActionType.SavePreviewImage:
                Uri          uri    = action.Parameter as Uri;
                FolderPicker picker = new FolderPicker();
                picker.FileTypeFilter.Add(".png");
                picker.FileTypeFilter.Add(".jpg");
                picker.FileTypeFilter.Add(".bmp");
                picker.FileTypeFilter.Add(".gif");
                var folder = await picker.PickSingleFolderAsync();

                if (folder != null)
                {
                    HttpClient hClient = new HttpClient();
                    var        bytes   = await hClient.GetByteArrayAsync(uri);

                    var file = await folder.CreateFileAsync(DateTime.Now.ToString("yyyMMhhmmss") + ".png");

                    DataWriter writer = new DataWriter(await file.OpenAsync(FileAccessMode.ReadWrite));
                    writer.WriteBytes(bytes);
                    await writer.StoreAsync();

                    await writer.FlushAsync();

                    writer.DetachStream();

                    await NotificationAsync(new NotificationMessage
                    {
                        Message      = "画像を保存しました",
                        TweetMessage = Tweet.ZeroTweet
                    });
                }


                break;
            }
        }