예제 #1
0
 public static PreferenciaBLL create()
 {
     if (_Preferencia == null)
     {
         _Preferencia = new PreferenciaBLL();
     }
     return(_Preferencia);
 }
예제 #2
0
        public void OnLocationChanged(Location location)
        {
            if (desativando)
            {
                return;
            }
            LocalizacaoInfo local = converterLocalizacao(location);

            /*
             * local.Velocidade = 20;
             * local.Latitude = -16.620743;
             * local.Longitude = -49.356621;
             * local.Sentido = 324;
             */
            if (Situacao == GPSSituacaoEnum.Ativo)
            {
                if (Xamarin.Forms.Forms.IsInitialized)
                {
                    local = GPSUtils.atualizarPosicao(local);
                    RadarInfo radar = RadarBLL.RadarAtual;
                    if (radar != null)
                    {
                        //var velocidadeImagem = mRootLayout.FindViewById<ImageView>(Resource.Id.velocidadeImagem);
                        atualizarVelocidadeRadar(radar.Velocidade);
                        var distanciaRadar = mRootLayout.FindViewById <TextView>(Resource.Id.distanciaRadar);
                        int distancia      = Convert.ToInt32(Math.Floor(local.Distancia));
                        //velocidadeImagem.SetImageResource(Resource.Drawable.radar_20);
                        //velocidadeRadar.Text = radar.VelocidadeStr;
                        distanciaRadar.Text = distancia.ToString() + " m";
                        if (mRootLayout.Visibility != ViewStates.Visible)
                        {
                            mRootLayout.Visibility = ViewStates.Visible;
                        }
                    }
                    else
                    {
                        if (mRootLayout.Visibility == ViewStates.Visible)
                        {
                            mRootLayout.Visibility = ViewStates.Invisible;
                        }
                    }
                }
            }
            else if (Situacao == GPSSituacaoEnum.Espera)
            {
                var regraPreferencia = new PreferenciaBLL();
                if (regraPreferencia.pegar("ligarDesligar", "") == "1" && local.Precisao <= 30)
                {
                    if (local.Velocidade >= 15)
                    {
                        Situacao = GPSSituacaoEnum.Ativo;
                        if (!Xamarin.Forms.Forms.IsInitialized)
                        {
                            Intent intent = new Intent(this, typeof(MainActivity));
                            intent.AddFlags(ActivityFlags.NewTask);
                            StartActivity(intent);
                        }
                        else if (MainActivity.Situacao != JanelaSituacaoEnum.Aberta)
                        {
                            Intent intent = new Intent(this, typeof(MainActivity));
                            intent.AddFlags(ActivityFlags.NewTask);
                            StartActivity(intent);
                        }
                    }
                    else
                    {
                        desativarGPS();
                        new Handler().PostDelayed(() => { ativarGPS(); }, 30000);
                    }
                }
            }
        }