private async void TweenMain_Shown(object sender, EventArgs e)
{
NotifyIcon1.Visible = true;
if (this.IsNetworkAvailable())
{
StartUserStream();
var loadTasks = new List<Task>
{
this.RefreshMuteUserIdsAsync(),
this.RefreshBlockIdsAsync(),
this.RefreshNoRetweetIdsAsync(),
this.RefreshTwitterConfigurationAsync(),
this.GetHomeTimelineAsync(),
this.GetReplyAsync(),
this.GetDirectMessagesAsync(),
this.GetPublicSearchAllAsync(),
this.GetUserTimelineAllAsync(),
this.GetListTimelineAllAsync(),
};
if (this._cfgCommon.StartupFollowers)
loadTasks.Add(this.RefreshFollowerIdsAsync());
if (this._cfgCommon.GetFav)
loadTasks.Add(this.GetFavoritesAsync());
var allTasks = Task.WhenAll(loadTasks);
var i = 0;
while (true)
{
var timeout = Task.Delay(5000);
if (await Task.WhenAny(allTasks, timeout) != timeout)
break;
i += 1;
if (i > 24) break; // 120秒間初期処理が終了しなかったら強制的に打ち切る
if (MyCommon._endingFlag)
return;
}
if (MyCommon._endingFlag) return;
if (ApplicationSettings.VersionInfoUrl != null)
{
//バージョンチェック(引数:起動時チェックの場合はtrue・・・チェック結果のメッセージを表示しない)
if (this._cfgCommon.StartupVersion)
await this.CheckNewVersion(true);
}
else
{
// ApplicationSetting.cs の設定により更新チェックが無効化されている場合
this.VerUpMenuItem.Enabled = false;
this.VerUpMenuItem.Available = false;
this.ToolStripSeparator16.Available = false; // VerUpMenuItem の一つ上にあるセパレータ
}
// 権限チェック read/write権限(xAuthで取得したトークン)の場合は再認証を促す
if (MyCommon.TwitterApiInfo.AccessLevel == TwitterApiAccessLevel.ReadWrite)
{
MessageBox.Show(Properties.Resources.ReAuthorizeText);
SettingStripMenuItem_Click(null, null);
}
// 取得失敗の場合は再試行する
var reloadTasks = new List<Task>();
if (!tw.GetFollowersSuccess && this._cfgCommon.StartupFollowers)
reloadTasks.Add(this.RefreshFollowerIdsAsync());
if (!tw.GetNoRetweetSuccess)
reloadTasks.Add(this.RefreshNoRetweetIdsAsync());
if (this.tw.Configuration.PhotoSizeLimit == 0)
reloadTasks.Add(this.RefreshTwitterConfigurationAsync());
await Task.WhenAll(reloadTasks);
}
_initial = false;
TimerTimeline.Enabled = true;
}