public override void OnCreate() { notificationManager = (NotificationManager)GetSystemService(Context.NotificationService); StartForegroundService(); handler = new Handler(); new Task(() => { Detector = new StreamerDetector(); Detector.LoadStreamers(); isStreamerListReaded = true; Detector.TryToReadToken(); if (Detector.TokenNotReady) { if (!AskAuthHandler()) { IsAlive = false; StopSelf(); return; } TwitchSelfServer self = new TwitchSelfServer(); self.Start(); handler.Post(() => { UpdateNotify(GetString(Resource.String.wait_token)); string url = String.Format("https://id.twitch.tv/oauth2/authorize?response_type=code&client_id={0}&redirect_uri=http://localhost:8080/twitch/callback&state=123456", TwitchID.ID); var uri = Android.Net.Uri.Parse(url); var intent = new Intent(Intent.ActionView, uri); intent.AddFlags(ActivityFlags.NewTask); StartActivity(intent); }); while (self.ReceivedResponse == null) { Thread.Sleep(1000); } Detector.SetToken(self.ReceivedResponse); } handler.Post(() => { notifyBuilder.SetContentText(GetString(Resource.String.wait_for_fetcher)); notificationManager.Notify(1, notifyBuilder.Build()); }); Detector.StartListener = this; OnServiceStart?.Invoke(); }).Start(); Repeat(); base.OnCreate(); }
public void AuthSelf() { TwitchSelfServer self = new TwitchSelfServer(); self.Start(); string url = String.Format("https://id.twitch.tv/oauth2/authorize?response_type=code&client_id={0}&redirect_uri=http://localhost:8080/twitch/callback&state=123456", TwitchID.ID); Process.Start(url); while (self.ReceivedResponse == null) { Thread.Sleep(1000); } detector.SetToken(self.ReceivedResponse); }