Beispiel #1
0
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            setting = new StoreSettings();
            var tweetCount = setting.TryGetValueWithDefault("TweetCount", 50);
            int index;

            switch (tweetCount)
            {
            case 50:
                index = 0;
                break;

            case 100:
                index = 1;
                break;

            default:
                index = 2;
                break;
            }

            TweetCountBox.SelectedIndex = index;

            var textFontSize = setting.TryGetValueWithDefault("TextFontSize", 1);

            TextFontSizeBox.SelectedIndex = textFontSize;
        }
Beispiel #2
0
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            setting = new StoreSettings();
            var usingInAppBrowser = setting.TryGetValueWithDefault("UseInAppBrowser", true);

            UsingBrowserToggle.IsOn = usingInAppBrowser;
        }
        public async Task Run()
        {
            var setting = new StoreSettings();
            var count   = setting.TryGetValueWithDefault("TweetCount", 50);

            switch (columnRole)
            {
            case ColumnRoles.HomeTimeLine:
                await GetHomeTimeline(count, null);

                break;

            case ColumnRoles.Mention:
                await GetMentionsTimeline(count, null);

                break;

            case ColumnRoles.DirectMessage:
                break;

            case ColumnRoles.Search:
                break;

            case ColumnRoles.UserTimeLine:
                await GetUserTimeline(count, null);

                break;

            default:
                throw new Exception("columnRollが指定されていません。");
            }
        }
        private async void Init()
        {
            TweetTextBox.TweetButton   = TweetButton;
            TweetTextBox.TweetUserList = TweetUserList;

            TmpUserData.PreviousBackRequest = DateTime.Now;

            var storage = new StoreSettings();
            var tokens  = storage.TryGetValueWithDefault <ObservableCollection <AccessToken> >("AccessTokens", null);

            if (tokens != null)
            {
                if (tokens.Count != 0)
                {
                    viewModel                      = new MainPageViewModel(tokens);
                    MainGrid.DataContext           = viewModel;
                    RetweetUserListBox.DataContext = viewModel.tokens;
                }
            }
            else
            {
                var message = new MessageDialog(loader.GetString("MainPage_FirstContact_Text"), loader.GetString("MainPage_FirstContact_Title"));
                await message.ShowAsync();

                Frame.Navigate(typeof(Pages.Settings.AuthorizePage));
            }
        }
Beispiel #5
0
        public AccountColumn(AccessToken accessToken, ObservableCollection <UserAccessToken> tokens)
        {
            this.accessToken = accessToken;
            tweetColumns     = new ObservableCollection <TweetColumn>();
            columnTitle      = "@" + accessToken.screenName;
            this.tokens      = tokens;

            var setting = new StoreSettings();

            tweetCountUpper   = setting.TryGetValueWithDefault("TweetCount", 50);
            accountColumnRole = AccountColumnRole.AccountColumn;
        }
 public AuthorizePage()
 {
     this.InitializeComponent();
     loader     = new ResourceLoader();
     authorizer = new OAuthorizer();
     storage    = new StoreSettings();
     tokens     = storage.TryGetValueWithDefault <ObservableCollection <AccessToken> >("AccessTokens", null);
     if (tokens == null)
     {
         tokens = new ObservableCollection <AccessToken>();
     }
     Windows.UI.Core.SystemNavigationManager.GetForCurrentView().BackRequested += AuthorizePage_BackRequested;
 }
Beispiel #7
0
        protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            Windows.UI.Core.SystemNavigationManager.GetForCurrentView().BackRequested += _BackRequested;
            var setting = new StoreSettings();

            var tokens = setting.TryGetValueWithDefault <ObservableCollection <AccessToken> >("AccessTokens", null);

            if (tokens != null)
            {
                if (tokens.Count != 0)
                {
                    users = TmpUserData.Accounts;
                    SearchUserSelect.DataContext = users;

                    userIndex = setting.TryGetValueWithDefault("SearchPage_UserIndex", 0);
                    SearchUserSelect.SelectedItem = users[userIndex];
                }
                else
                {
                    var message = new MessageDialog("まずは設定からアカウントを登録する必要があります。", "おや?なにかがおかしいようです。");
                    await message.ShowAsync();
                }
            }
        }
Beispiel #8
0
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            var storage = new StoreSettings();

            tokens = storage.TryGetValueWithDefault <ObservableCollection <AccessToken> >("AccessTokens", null);

            if (tokens != null)
            {
                userAccessTokens = new ObservableCollection <UserAccessToken>();
                foreach (var token in tokens)
                {
                    userAccessTokens.Add(new UserAccessToken(token));
                }
                accountList.DataContext = userAccessTokens;
            }
        }
        public async void Init()
        {
            Images = new ObservableCollection <SendableImage>();

            var storage = new StoreSettings();
            var tokens  = storage.TryGetValueWithDefault <ObservableCollection <AccessToken> >("AccessTokens", null);

            if (tokens != null)
            {
                if (tokens.Count != 0)
                {
                    Tokens = TmpUserData.Accounts;
                }
            }
            else
            {
                var message = new MessageDialog("アカウントがありません。まずは設定からアカウントを追加してください。", "おや?なにかがおかしいようです。");
                await message.ShowAsync();
            }
        }
Beispiel #10
0
        private void Load(object obj)
        {
            StoreSettings setting = new StoreSettings();
            var           count   = setting.TryGetValueWithDefault("TweetCount", 50);

            switch (column.columnRole)
            {
            case TweetColumn.ColumnRoles.HomeTimeLine:
                column.GetAdditionalTimeline(count);
                break;

            case TweetColumn.ColumnRoles.Search:
                column.GetAdditionalSearchResult(count);
                break;

            case TweetColumn.ColumnRoles.UserTimeLine:
                column.GetAdditionalUserTimeline(count);
                break;

            default:
                throw new Exception("このカラムでは追加のツイートを取得できません。");
            }
        }
Beispiel #11
0
        private async void SearchButtonClicked(object sender, RoutedEventArgs e)
        {
            var word = SearchWordBox.Text;

            if (!string.IsNullOrEmpty(word))
            {
                StoreSettings setting = new StoreSettings();
                var           count   = setting.TryGetValueWithDefault("TweetCount", 50);
                column = new TweetColumn(users[SearchUserSelect.SelectedIndex].accessToken, TweetColumn.ColumnRoles.Search);
                TweetListItemsControl.DataContext = column.tweetList;
                try
                {
                    await column.GetSearchResultTimeline(word, count, null);
                }
                catch (Exception ex)
                {
                    var message = new MessageDialog(ex.Message, "おや?何かがおかしいようです。");
                    await message.ShowAsync();
                }
            }
            else
            {
            }
        }
Beispiel #12
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();
                }
            }
        }