Beispiel #1
0
        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();
        }
Beispiel #2
0
        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);
        }