Exemplo n.º 1
0
 private void WebView_Navigated(object sender, WebNavigatedEventArgs e)
 {
     try
     {
         //Action onFinish = new Action(() => { Navigation.PushAsync(new Page1()); Navigation.RemovePage(this); });
         Action onFinish = new Action(() => { buttonContinue.IsVisible = true; });
         var    thread   = new Thread(async() => {
             await Task.Delay(30 * 1000); //wait 30 seconds before start measuring
             TestMeViewModel b = new TestMeViewModel();
             b.Progress        = 0;
             MeasurementHandler.GetStressResult(-1, b);
             while (b.IsFinished == false)
             {
                 if (b.StressResult.StartsWith("Error"))
                 {
                     //TODO: alert user and try again
                     return;
                 }
             }
             //int repetitionTime = MeasurementHandler.measureRepetitionTime;
             //DependencyService.Get<ISchedule>().ScheduleMeasurement(repetitionTime); //Schedule measurement every 6 minutes
             Xamarin.Forms.Device.BeginInvokeOnMainThread(onFinish);
         });
         thread.Start();
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
     }
 }
Exemplo n.º 2
0
        private void StartMeasure(int pseudo)
        {
            TestMeViewModel b = (TestMeViewModel)BindingContext;

            b.PNN50 = 0;
            //don't make the UI thread wait
            var thread = new Thread(
                () =>
            {
                MeasurementHandler.GetStressResult(pseudo, b);
            });

            b.Progress = 0;
            thread.Start();
            double msPass   = 0;
            int    testTime = MeasurementHandler.testTimeInSec;

            Device.StartTimer(TimeSpan.FromMilliseconds(50), () =>
            {
                if (b.Progress < 1)
                {
                    msPass    += 50;
                    b.Progress = msPass <= testTime * 1000 ? msPass / (testTime * 1000) : (msPass - 1) / msPass;
                    if (b.StressResult.StartsWith("Error"))
                    {
                        return(false);
                    }
                    return(true);
                }
                if (isSignup)
                {
                    if (b.StressResult.StartsWith("you")) //succeeded
                    {
                        Device.BeginInvokeOnMainThread(async() =>
                        {
                            await Navigation.PushAsync(new Pages.SignupStressTest());
                            Navigation.RemovePage(this); //user can't go back});
                        });
                        return(false);
                    }
                    return(true);
                }
                else
                {
                    return(false);
                }
            });
        }