public virtual void cadastrarRadar(Object sender, EventArgs e)
 {
     if (InternetUtils.estarConectado())
     {
         LocalizacaoInfo local     = GPSUtils.UltimaLocalizacao;
         float           latitude  = (float)local.Latitude;
         float           longitude = (float)local.Longitude;
         GeocoderUtils.pegarAsync(latitude, longitude, (send, ev) =>
         {
             var endereco = ev.Endereco;
             Emagine.Utils.MensagemUtils.avisar(endereco.Logradouro);
         });
     }
     try
     {
         LocalizacaoInfo local = GPSUtils.UltimaLocalizacao;
         if (local != null)
         {
             RadarBLL regraRadar = RadarFactory.create();
             regraRadar.inserir(local);
             MensagemUtils.avisar("Radar incluído com sucesso.");
         }
         else
         {
             MensagemUtils.avisar("Nenhum movimento registrado pelo GPS.");
         }
     }
     catch (Exception e2)
     {
         MensagemUtils.avisar(e2.Message);
     }
 }
示例#2
0
        public bool iniciarGravacao()
        {
            if (PercursoUtils.Gravando)
            {
                return(false);
            }
            PercursoInfo percurso = new PercursoInfo();

            gravar(percurso);
            //atualizarEndereco();
            PercursoUtils.PercursoAtual = percurso;
            //_dataAnterior = DateTime.MinValue;
            //_ultimoMovimentoReal = DateTime.MinValue;
            PercursoUtils.Gravando  = true;
            PercursoUtils.Latitude  = 0;
            PercursoUtils.Longitude = 0;
            //_emMovimento = true;
            //MensagemUtils.notificar(2, "Gravando Percurso", "Gravando percurso agora!");
            MensagemUtils.avisar("Iniciando gravação do percurso!");
            MensagemUtils.notificarPermanente(
                NOTIFICACAO_GRAVAR_PERCURSO_ID,
                "Gravando Percurso...", "",
                NOTIFICACAO_PARAR_PERCURSO_ID,
                "Parar", ACAO_PARAR_GRAVACAO
                );
            return(true);
        }
        public DownloaderAtualizacao()
        {
            this.aoCompletar += (sender, nomeArquivo) =>
            {
                fecharPopup();
                MensagemUtils.avisar("Banco de dados atualizado com sucesso.");
                PreferenciaUtils.UltimaVerificacao = DateTime.Now;
                var ultimaAtualizacao = PreferenciaUtils.UltimaAtualizacao;
                if (ultimaAtualizacao == DateTime.MinValue)
                {
                    PreferenciaUtils.UltimaAtualizacao = DateTime.Now;
                }

                /*
                 * if (_janela != null)
                 * {
                 *  _janela.Titulo = "Aguarde alguns segundos...";
                 *  _janela.Progresso = 1;
                 *  _janela.Descricao = "";
                 * }
                 *
                 * if (ArquivoUtils.existe(NOME_ARQUIVO))
                 * {
                 *  if (_janela != null)
                 *  {
                 *      _janela.Titulo = "Processando arquivo...";
                 *      _janela.Progresso = 0;
                 *      _janela.Descricao = "";
                 *  }
                 *  var task = Task.Factory.StartNew(() =>
                 *  {
                 *      string arquivo = ArquivoUtils.abrirTexto(NOME_ARQUIVO);
                 *      string[] linhas = arquivo.Split("\n".ToCharArray());
                 *
                 *      int i = 0;
                 *      foreach (string linha in linhas) {
                 *          bool executou = false;
                 *          ThreadUtils.RunOnUiThread(() => {
                 *              processarArquivo(i, linhas.Count());
                 *              i++;
                 *              executou = true;
                 *          });
                 *          while (true) {
                 *              if (executou)
                 *                  break;
                 *              Task.Delay(1).Wait();
                 *          }
                 *      }
                 *      MensagemUtils.avisar(nomeArquivo);
                 *      fecharPopup();
                 *  });
                 *  //task.Start();
                 * }
                 * else
                 *  MensagemUtils.avisar("Arquivo não encontrado!");
                 */
            };
        }
示例#4
0
        private void gravarPercurso()
        {
            PercursoBLL regraPercurso = PercursoFactory.create();

            if (regraPercurso.iniciarGravacao())
            {
                _RootLayout.Children.Remove(_GravarButton);
                _RootLayout.Children.Add(_PararButton);
            }
            else
            {
                MensagemUtils.avisar("Não foi possível iniciar a gravação!");
            }
        }
示例#5
0
        public bool pararGravacao()
        {
            if (!PercursoUtils.Gravando)
            {
                return(false);
            }
            var percurso = PercursoUtils.PercursoAtual;

            PercursoUtils.PercursoAtual = null;
            PercursoUtils.Gravando      = false;
            MensagemUtils.avisar("Gravação finalizada!");
            MensagemUtils.pararNotificaoPermanente(PercursoBLL.NOTIFICACAO_GRAVAR_PERCURSO_ID);
            atualizarEndereco(percurso);
            return(true);
        }
示例#6
0
        public bool pararGravacao()
        {
            if (!PercursoUtils.Gravando)
            {
                return(false);
            }
            //MensagemUtils.notificar(2, "Gravando Percurso", "Gravando percurso agora!");
            var percurso = PercursoUtils.PercursoAtual;

            PercursoUtils.PercursoAtual = null;
            //_dataAnterior = DateTime.MinValue;
            //_ultimoMovimentoReal = DateTime.MinValue;
            PercursoUtils.Gravando = false;
            //_emMovimento = false;
            MensagemUtils.avisar("Gravação finalizada!");
            MensagemUtils.pararNotificaoPermanente(PercursoBLL.NOTIFICACAO_GRAVAR_PERCURSO_ID);
            atualizarEndereco(percurso);
            return(true);
        }
示例#7
0
        private void criarBotaoRemover()
        {
            _RemoverRadarButton = new Image
            {
                Aspect        = Aspect.AspectFit,
                Source        = ImageSource.FromFile("menos.png"),
                WidthRequest  = 180,
                HeightRequest = 180
            };
            AbsoluteLayout.SetLayoutBounds(_RemoverRadarButton, new Rectangle(0.93, 0.93, 0.2, 0.2));
            AbsoluteLayout.SetLayoutFlags(_RemoverRadarButton, AbsoluteLayoutFlags.All);


            _RemoverRadarButton.GestureRecognizers.Add(
                new TapGestureRecognizer()
            {
                Command = new Command(() =>
                {
                    try
                    {
                        AudioUtils.stop();
                        if (RadarBLL.RadarAtual != null)
                        {
                            RadarBLL regraRadar = RadarFactory.create();
                            regraRadar.excluir(RadarBLL.RadarAtual);
                            MensagemUtils.avisar("Radar excluído com sucesso.");
                            RadarBLL.RadarAtual = null;
                        }
                        else
                        {
                            MensagemUtils.avisar("Nenhum radar selecionado.");
                        }
                    }
                    catch (Exception e)
                    {
                        MensagemUtils.avisar(e.Message);
                    }
                }
                                      )
            });
        }
示例#8
0
        private async void pararPercurso()
        {
            var retorno = await DisplayActionSheet("Tem certeza que deseja parar a gravação?", null, null, "Parar", "Continuar gravando");

            if (retorno == "Parar")
            {
                PercursoBLL regraPercurso = PercursoFactory.create();
                if (regraPercurso.pararGravacao())
                {
                    _RootLayout.Children.Remove(_PararButton);
                    _RootLayout.Children.Add(_GravarButton);

                    var percursos = regraPercurso.listar();
                    _PercursoListView.BindingContext = percursos;
                }
                else
                {
                    MensagemUtils.avisar("Não foi possível parar a gravação!");
                }
            }
        }
示例#9
0
        public bool iniciarGravacao()
        {
            if (PercursoUtils.Gravando)
            {
                return(false);
            }
            PercursoInfo percurso = new PercursoInfo();

            gravar(percurso);
            PercursoUtils.PercursoAtual = percurso;
            PercursoUtils.Gravando      = true;
            PercursoUtils.Latitude      = 0;
            PercursoUtils.Longitude     = 0;
            MensagemUtils.avisar("Iniciando gravação do percurso!");
            MensagemUtils.notificarPermanente(
                NOTIFICACAO_GRAVAR_PERCURSO_ID,
                "Gravando Percurso...", "",
                NOTIFICACAO_PARAR_PERCURSO_ID,
                "Parar", ACAO_PARAR_GRAVACAO
                );
            return(true);
        }
示例#10
0
        protected virtual void inicializarComponente()
        {
            _GPSSentidoLabel = new Label
            {
                Text     = "0º",
                FontSize = 16,
                HorizontalTextAlignment = TextAlignment.Center,
                VerticalTextAlignment   = TextAlignment.Center
            };
            AbsoluteLayout.SetLayoutBounds(_GPSSentidoLabel, new Rectangle(0.9, 0.12, 0.15, 0.15));
            //AbsoluteLayout.SetLayoutBounds(_PrecisaoLabel, new Rectangle(0.11, 0.12, 0.15, 0.15));
            AbsoluteLayout.SetLayoutFlags(_GPSSentidoLabel, AbsoluteLayoutFlags.All);

            _VelocidadeRadarLabel = new Label
            {
                Text     = "Velocidade",
                FontSize = 16,
                HorizontalTextAlignment = TextAlignment.Center,
                VerticalTextAlignment   = TextAlignment.Center
            };
            if (Device.OS == TargetPlatform.iOS)
            {
            }
            AbsoluteLayout.SetLayoutBounds(_VelocidadeRadarLabel, new Rectangle(1, 0.950, 1, 0.1));
            AbsoluteLayout.SetLayoutFlags(_VelocidadeRadarLabel, AbsoluteLayoutFlags.All);

            _DistanciaRadarLabel = new Label
            {
                Text     = "0 m",
                FontSize = 16,
                //HorizontalTextAlignment = TextAlignment.Center,
                //VerticalTextAlignment = TextAlignment.Center
            };
            //AbsoluteLayout.SetLayoutBounds(_DistanciaRadarLabel, new Rectangle(1, 0.975, 1, 0.1));
            //AbsoluteLayout.SetLayoutFlags(_DistanciaRadarLabel, AbsoluteLayoutFlags.All);


            if (PreferenciaUtils.ExibirBotaoRemover)
            {
                _RemoverRadarButton = new Image
                {
                    Aspect        = Aspect.AspectFit,
                    Source        = ImageSource.FromFile("menos.png"),
                    WidthRequest  = 180,
                    HeightRequest = 180
                };
                AbsoluteLayout.SetLayoutBounds(_RemoverRadarButton, new Rectangle(0.93, 0.975, 0.2, 0.2));
                AbsoluteLayout.SetLayoutFlags(_RemoverRadarButton, AbsoluteLayoutFlags.All);

                _RemoverRadarButton.GestureRecognizers.Add(
                    new TapGestureRecognizer()
                {
                    Command = new Command(() =>
                    {
                        //var regraAviso = new AvisoSonoroBLL();
                        //regraAviso.play(RadarTipoEnum.RadarFixo, 40, 300);
                        //AudioUtils.play(AudioEnum.Alarm001);
                        //MensagemUtils.avisar("teste");
                        //var downloader = new DownloaderAtualizacao();
                        //downloader.download();

                        if (InternetUtils.estarConectado())
                        {
                            LocalizacaoInfo local = GPSUtils.UltimaLocalizacao;
                            float latitude        = (float)local.Latitude;
                            float longitude       = (float)local.Longitude;
                            GeocoderUtils.pegarAsync(latitude, longitude, (sender, e) =>
                            {
                                var endereco = e.Endereco;
                                ClubManagement.Utils.MensagemUtils.avisar(endereco.Logradouro);
                            });
                        }



                        try
                        {
                            LocalizacaoInfo local = GPSUtils.UltimaLocalizacao;
                            if (local != null)
                            {
                                RadarBLL regraRadar = RadarFactory.create();
                                regraRadar.gravar(local, false);
                                MensagemUtils.avisar("Radar incluído com sucesso.");
                            }
                            else
                            {
                                MensagemUtils.avisar("Nenhum movimento registrado pelo GPS.");
                            }
                        }
                        catch (Exception e)
                        {
                            MensagemUtils.avisar(e.Message);
                        }
                    }
                                          )
                });
            }
            if (PreferenciaUtils.ExibirBotaoAdicionar)
            {
                _AdicionarRadarButton = new Image
                {
                    Aspect        = Aspect.AspectFit,
                    Source        = ImageSource.FromFile("mais.png"),
                    WidthRequest  = 180,
                    HeightRequest = 180
                };
                AbsoluteLayout.SetLayoutBounds(_AdicionarRadarButton, new Rectangle(0.93, 0.975, 0.2, 0.2));
                AbsoluteLayout.SetLayoutFlags(_AdicionarRadarButton, AbsoluteLayoutFlags.All);


                if (TelaUtils.Orientacao == "Landscape")
                {
                    AbsoluteLayout.SetLayoutBounds(_AdicionarRadarButton, new Rectangle(1, 0.5, 0.2, 0.2));
                    AbsoluteLayout.SetLayoutFlags(_AdicionarRadarButton, AbsoluteLayoutFlags.All);
                }
                _AdicionarRadarButton.GestureRecognizers.Add(
                    new TapGestureRecognizer()
                {
                    Command = new Command(() =>
                    {
                        //var regraAviso = new AvisoSonoroBLL();
                        //regraAviso.play(RadarTipoEnum.RadarFixo, 40, 300);
                        //AudioUtils.play(AudioEnum.Alarm001);
                        //MensagemUtils.avisar("teste");
                        //var downloader = new DownloaderAtualizacao();
                        //downloader.download();

                        if (InternetUtils.estarConectado())
                        {
                            LocalizacaoInfo local = GPSUtils.UltimaLocalizacao;
                            float latitude        = (float)local.Latitude;
                            float longitude       = (float)local.Longitude;
                            GeocoderUtils.pegarAsync(latitude, longitude, (sender, e) =>
                            {
                                var endereco = e.Endereco;
                                ClubManagement.Utils.MensagemUtils.avisar(endereco.Logradouro);
                            });
                        }



                        try
                        {
                            LocalizacaoInfo local = GPSUtils.UltimaLocalizacao;
                            if (local != null)
                            {
                                RadarBLL regraRadar = RadarFactory.create();
                                regraRadar.gravar(local, false);
                                MensagemUtils.avisar("Radar incluído com sucesso.");
                            }
                            else
                            {
                                MensagemUtils.avisar("Nenhum movimento registrado pelo GPS.");
                            }
                        }
                        catch (Exception e)
                        {
                            MensagemUtils.avisar(e.Message);
                        }
                    }
                                          )
                });
            }


            _BussolaFundo = new Image
            {
                Aspect        = Aspect.AspectFit,
                Source        = ImageSource.FromFile("bussolacorpo.png"),
                WidthRequest  = 180,
                HeightRequest = 180
            };
            AbsoluteLayout.SetLayoutBounds(_BussolaFundo, new Rectangle(0.93, 0, 0.2, 0.2));
            AbsoluteLayout.SetLayoutFlags(_BussolaFundo, AbsoluteLayoutFlags.All);

            _BussolaAgulha = new Image
            {
                Aspect        = Aspect.AspectFit,
                Source        = ImageSource.FromFile("bussolaagulha.png"),
                WidthRequest  = 180,
                HeightRequest = 180
            };
            AbsoluteLayout.SetLayoutBounds(_BussolaAgulha, new Rectangle(0.93, 0, 0.2, 0.2));
            AbsoluteLayout.SetLayoutFlags(_BussolaAgulha, AbsoluteLayoutFlags.All);

            _PrecisaoFundoImage = new Image
            {
                Aspect        = Aspect.AspectFit,
                Source        = ImageSource.FromFile("bussolacorpo.png"),
                WidthRequest  = 180,
                HeightRequest = 180
            };
            AbsoluteLayout.SetLayoutBounds(_PrecisaoFundoImage, new Rectangle(0.07, 0, 0.2, 0.2));
            AbsoluteLayout.SetLayoutFlags(_PrecisaoFundoImage, AbsoluteLayoutFlags.All);

            _PrecisaoImage = new Image
            {
                Aspect        = Aspect.AspectFit,
                Source        = ImageSource.FromFile("sat04.png"),
                WidthRequest  = 180,
                HeightRequest = 180
            };
            AbsoluteLayout.SetLayoutBounds(_PrecisaoImage, new Rectangle(0.11, 0.04, 0.15, 0.15));
            AbsoluteLayout.SetLayoutFlags(_PrecisaoImage, AbsoluteLayoutFlags.All);

            _PrecisaoLabel = new Label
            {
                Text     = "0 m",
                FontSize = 16,
                HorizontalTextAlignment = TextAlignment.Center,
                VerticalTextAlignment   = TextAlignment.Center
            };
            //AbsoluteLayout.SetLayoutBounds(_PrecisaoLabel, new Rectangle(0.1, 0.025, 0.1, 0.1));
            AbsoluteLayout.SetLayoutBounds(_PrecisaoLabel, new Rectangle(0.11, 0.12, 0.15, 0.15));
            AbsoluteLayout.SetLayoutFlags(_PrecisaoLabel, AbsoluteLayoutFlags.All);
        }
示例#11
0
        public GastoNovoPage()
        {
            Title = "Novo Custo";
            var gasto = new GastoInfo {
                DataInclusao = DateTime.Now
            };
            var local = GPSUtils.UltimaLocalizacao;

            if (local != null)
            {
                gasto.Latitude  = (float)local.Latitude;
                gasto.Longitude = (float)local.Longitude;
            }
            BindingContext = gasto;

            var gravarButton = new ToolbarItem {
                Text = "Inserir"
            };

            gravarButton.Clicked += (sender, e) => {
                var novoGasto  = (GastoInfo)BindingContext;
                var regraGasto = GastoFactory.create();
                regraGasto.gravar(novoGasto);

                MensagemUtils.avisar("Gasto incluído com sucesso!");
                ((MasterDetailPage)Application.Current.MainPage).Detail = new NavigationPage(new VelocimetroPage());
                //NavigationX.create(this).PopAsync();
            };
            ToolbarItems.Add(gravarButton);

            if (TelaUtils.Orientacao == "Landscape")
            {
                _width = (int)TelaUtils.LarguraSemPixel * 0.5;
            }
            else
            {
                _width = (int)TelaUtils.LarguraSemPixel * 0.8;
            }

            inicializarComponente();

            Content = new ScrollView
            {
                Orientation     = ScrollOrientation.Vertical,
                VerticalOptions = LayoutOptions.FillAndExpand,
                Content         = new StackLayout
                {
                    BackgroundColor   = Color.Transparent,
                    Orientation       = StackOrientation.Vertical,
                    VerticalOptions   = LayoutOptions.StartAndExpand,
                    HorizontalOptions = LayoutOptions.CenterAndExpand,
                    Children          =
                    {
                        new StackLayout                 {
                            Orientation = StackOrientation.Horizontal,
                            Children    =
                            {
                                new Image               {
                                    Source            = "ic_monetization_on_black_24dp.png",
                                    VerticalOptions   = LayoutOptions.Center,
                                    HorizontalOptions = LayoutOptions.Center,
                                },
                                _ValorEntry
                            }
                        },
                        new StackLayout()
                        {
                            Orientation = StackOrientation.Horizontal,
                            Children    =
                            {
                                new Image()
                                {
                                    Source            = "ic_event_black_24dp.png",
                                    VerticalOptions   = LayoutOptions.Center,
                                    HorizontalOptions = LayoutOptions.Center,
                                },
                                new DatePicker
                                {
                                    IsVisible    = true,
                                    IsEnabled    = true,
                                    WidthRequest = _width,
                                }
                            }
                        },
                        new StackLayout()
                        {
                            Orientation = StackOrientation.Horizontal,
                            Children    =
                            {
                                new Image               {
                                    Source            = "ic_map_black_24dp.png",
                                    VerticalOptions   = LayoutOptions.Start,
                                    HorizontalOptions = LayoutOptions.Center
                                },
                                new StackLayout         {
                                    Orientation       = StackOrientation.Vertical,
                                    VerticalOptions   = LayoutOptions.Start,
                                    HorizontalOptions = LayoutOptions.Start,
                                    Children          =
                                    {
                                        _LocalEntry,
                                        new StackLayout {
                                            Margin            = new Thickness(5,            0),
                                            Orientation       = StackOrientation.Horizontal,
                                            VerticalOptions   = LayoutOptions.Start,
                                            HorizontalOptions = LayoutOptions.Start,
                                            Spacing           = 2,
                                            Children          =
                                            {
                                                _LatitudeLabel,
                                                _LongitudeLabel
                                            }
                                        }
                                    }
                                }
                            }
                        },
                        new StackLayout()
                        {
                            Orientation = StackOrientation.Horizontal,
                            Children    =
                            {
                                new Image               {
                                    Source            = "ic_shopping_cart_black_24dp.png",
                                    VerticalOptions   = LayoutOptions.Center,
                                    HorizontalOptions = LayoutOptions.Center,
                                },
                                _TipoGastoPicker
                            }
                        },
                        new StackLayout                 {
                            Orientation = StackOrientation.Horizontal,
                            Children    =
                            {
                                new Image               {
                                    Source            = "ic_edit_black_24dp.png",
                                    VerticalOptions   = LayoutOptions.Center,
                                    HorizontalOptions = LayoutOptions.Center,
                                },
                                _ObservacaoEntry
                            }
                        },
                        new StackLayout
                        {
                            Orientation = StackOrientation.Horizontal,
                            Children    =
                            {
                                _FotoImage
                            }
                        }
                    }
                }
            };
        }
示例#12
0
        public static bool simularPercurso(int idPercurso)
        {
            if (_simulando)
            {
                Emagine.Utils.MensagemUtils.avisar("Já existe uma simulação em andamento.");
                return(false);
            }
            PercursoBLL regraPercurso = PercursoFactory.create();

            _percursoSimulado = regraPercurso.pegar(idPercurso);
            _simulando        = true;
            _indexPercuso     = 0;
            _ultimoPonto      = DateTime.MinValue;
            if (_percursoSimulado == null)
            {
                Emagine.Utils.MensagemUtils.avisar("Percurso não encontrado.");
                return(false);
            }
            if (_percursoSimulado.Pontos.Count() == 0)
            {
                MensagemUtils.avisar("Nenhum movimento registrado nesse percurso.");
                return(false);
            }
            //MensagemUtils.notificarPermanente(NOTIFICACAO_SIMULACAO_ID, "Simulando percurso!", string.Empty);
            MensagemUtils.notificarPermanente(
                PercursoBLL.NOTIFICACAO_SIMULACAO_PERCURSO_ID,
                "Radar Club", "Simulando percurso...",
                PercursoBLL.NOTIFICACAO_SIMULACAO_PARAR_PERCURSO_ID,
                "Parar",
                PercursoBLL.ACAO_PARAR_SIMULACAO
                );
            MensagemUtils.avisar("Iniciando simulação!");

            /*
             * var task = Task.Factory.StartNew(() =>
             * {
             *  while (_simulando)
             *  {
             *      if (_indexPercuso < _percursoSimulado.Pontos.Count())
             *      {
             *          PercursoPontoInfo ponto = _percursoSimulado.Pontos[_indexPercuso];
             *
             *                                  LocalizacaoInfo local = new LocalizacaoInfo
             *                                  {
             *                                          Latitude = ponto.Latitude,
             *                                          Longitude = ponto.Longitude,
             *                                          Sentido = ponto.Sentido,
             *                                          Precisao = ponto.Precisao,
             *                                          Tempo = ponto.Data,
             *                                          Velocidade = ponto.Velocidade
             *                                  };
             *                                  //executarPosicao(local);
             *                                  ThreadUtils.RunOnUiThread(() =>
             *                                  {
             *                                          executarPosicao(local);
             *                                  });
             *
             *
             *          if (_ultimoPonto != DateTime.MinValue)
             *          {
             *              TimeSpan delay = ponto.Data.Subtract(_ultimoPonto);
             *              Task.Delay((int)delay.TotalMilliseconds).Wait();
             *              //_ultimoPonto = ponto.Data;
             *          }
             *          _ultimoPonto = ponto.Data;
             *          _indexPercuso++;
             *      }
             *      else {
             *          pararSimulacao();
             *          break;
             *      }
             *  }
             * });
             */
            return(true);
        }