Esempio n. 1
0
        private void TweetCountChanged(object sender, SelectionChangedEventArgs e)
        {
            ComboBoxItem count = (ComboBoxItem)((ComboBox)sender).SelectedValue;

            if (count != null)
            {
                setting.AddOrUpdateValue("TweetCount", int.Parse((string)count.Content));
            }
        }
Esempio n. 2
0
        private async void DeleteAccount(object sender, RoutedEventArgs e)
        {
            var button     = (Button)sender;
            var user       = (UserAccessToken)button.DataContext;
            var screenName = user.accessToken.screenName;

            var storage = new StoreSettings();

            try
            {
                var item = from token in tokens
                           where token.screenName == screenName
                           select token;

                tokens.Remove(item.First());

                storage.AddOrUpdateValue("AccessTokens", tokens);

                MessageDialog success = new MessageDialog("アカウント: @" + screenName + "が削除されました。");
                await success.ShowAsync();

                Frame.Navigate(typeof(AccountPage));
            }
            catch (Exception ex)
            {
                MessageDialog message = new MessageDialog("アカウントを削除できませんでした。:" + ex.Message, "おや?何かがおかしいようです。");
                await message.ShowAsync();
            }
        }
        private async void AuthButtonTapped(object sender, TappedRoutedEventArgs e)
        {
            string pin = PINBox.Text;

            if (!String.IsNullOrEmpty(pin))
            {
                var accessToken = await authorizer.GetAccessToken(pin);

                var exist = from token in tokens
                            where token.screenName == accessToken.screenName
                            select token;

                if (exist.Count() != 0)
                {
                    var message = new MessageDialog(loader.GetString("Settings_AuthorizePage_AccountDuplicated"), loader.GetString("ErrorTitle1"));
                    await message.ShowAsync();
                }
                else
                {
                    if (accessToken.token != null && accessToken.tokenSecret != null && accessToken.screenName != null)
                    {
                        tokens.Add(accessToken);
                        storage.AddOrUpdateValue("AccessTokens", tokens);
                        var message = new MessageDialog(loader.GetString("Settings_AuthorizePage_AccountAdded"));
                        await message.ShowAsync();

                        Frame.Navigate(typeof(MainPage));
                    }
                    else
                    {
                    }
                }
            }
            else
            {
                var message = new MessageDialog(loader.GetString("Settings_AuthorizePage_EnterThePin"), loader.GetString("ErrorTitle1"));
                await message.ShowAsync();
            }
        }
Esempio n. 4
0
        private void UsingBrowserToggle_Toggled(object sender, RoutedEventArgs e)
        {
            var value = UsingBrowserToggle.IsOn;

            setting.AddOrUpdateValue("UseInAppBrowser", value);
        }
Esempio n. 5
0
        public async Task GetStream(int retryCount)
        {
            TwitterClient client = new TwitterClient(accessToken);

            IsStreamRunning       = true;
            IsStreamRunningString = "Streaming...";
            try
            {
                await client.GetStream(async (tweet) =>
                {
                    if (tweet != null)
                    {
                        switch (tweet.tweetRole)//ここでいろいろ振り分けるぞ~^^
                        {
                        case AdvancedTweet.TweetRoles.Tweet:
                            tweetColumns[0].tweetList.Insert(0, tweet);
                            var user = tweet.tweet.entities.user_mentions.Where(x => x.screen_name == accessToken.screenName).FirstOrDefault();
                            if (user != null)
                            {
                                tweetColumns[1].tweetList.Insert(0, tweet);
                            }
                            break;

                        case AdvancedTweet.TweetRoles.Event:
                            break;

                        case AdvancedTweet.TweetRoles.Delete:
                            break;

                        case AdvancedTweet.TweetRoles.Friends:
                            var storage = new StoreSettings();
                            var cache   = new StoreCache();
                            List <User> friends;

                            if (TmpUserData.Friends == null)
                            {
                                TmpUserData.Friends = new ObservableCollection <User>();
                            }

                            var prev = storage.TryGetValueWithDefault("FriendCount" + accessToken.screenName, 0);

                            if (prev == tweet.friends.friends.Count)
                            {
                                friends = await cache.TryLoadCache <List <User> >("FriendObject" + accessToken.screenName);
                                if (friends == null)
                                {
                                    var friendsClient = new TwitterClient(accessToken);
                                    friends           = await friendsClient.GetUsersDetailsByIds(tweet.friends.friends);
                                    storage.AddOrUpdateValue("FriendCount" + accessToken.screenName, tweet.friends.friends.Count);
                                    await cache.SaveCache("FriendObject" + accessToken.screenName, friends);
                                }
                            }
                            else
                            {
                                var friendsClient = new TwitterClient(accessToken);
                                friends           = await friendsClient.GetUsersDetailsByIds(tweet.friends.friends);
                                storage.AddOrUpdateValue("FriendCount" + accessToken.screenName, tweet.friends.friends.Count);
                                await cache.SaveCache("FriendObject" + accessToken.screenName, friends);
                            }

                            if (friends != null)
                            {
                                foreach (var friend in friends)
                                {
                                    TmpUserData.Friends.Add(friend);
                                }
                            }
                            break;

                        default:
                            break;
                        }
                        foreach (var column in tweetColumns)
                        {
                            var count = column.tweetList.Count;
                            if (count > tweetCountUpper)
                            {
                                column.tweetList.RemoveAt(count - 2);
                                column.tweetList.RemoveAt(count - 3);
                            }
                        }
                    }
                });
            }
            catch (Exception ex)
            {
                if (retryCount < 3)
                {
                    var message = new MessageDialog("ユーザーストリームへの接続に失敗しました。リトライします。" + ex.Message, "おや?なにかがおかしいようです。");
                    await message.ShowAsync();
                    await GetStream(++retryCount);
                }
                else
                {
                    IsStreamRunning       = false;
                    IsStreamRunningString = "Disconnected.";
                    var message = new MessageDialog("ユーザーストリームへの接続に3回連続で失敗しました。ネットワークへの接続を確認してください。:" + ex.Message, "おや?なにかがおかしいようです。");
                    await message.ShowAsync();
                }
            }
        }