private void apresentaInfo(MotoristaRetornoInfo info, Position localizacaoAtual)
        {
            try
            {
                _CustomMap.Polyline = MapaUtils.decodePolyline(info.Polyline);

                /*
                 * if (_CustomMap.RouteCoordinates == null)
                 * {
                 *  foreach (var ponto in pontos)
                 *  {
                 *      _CustomMap.RouteCoordinates.Add(ponto);
                 *  }
                 * }
                 * else
                 * {
                 *  _CustomMap.addPolyline(pontos);
                 * }
                 */
                _CustomMap.MoveToRegion(MapSpan.FromCenterAndRadius(localizacaoAtual, Distance.FromMiles(0.1)));
                _Distancia.Text = "Distância até o destino: " + info.DistanciaStr;
                _Tempo.Text     = "Tempo até o destino: " + info.TempoStr;
            } catch (Exception) {
            }
        }
 public AcompanhaFreteMotoristaPage(MotoristaRetornoInfo info)
 {
     _IdFrete  = (int)info.IdFrete;
     _Situacao = (FreteSituacaoEnum)info.CodSituacao;
     inicializarComponente();
     Title   = "Acompanhar entrega";
     Content = new StackLayout()
     {
         VerticalOptions   = LayoutOptions.Fill,
         HorizontalOptions = LayoutOptions.Fill,
         Children          =
         {
             _CustomMap,
             _Distancia,
             _Tempo,
             _ContatoButton,
             _PickerRota,
             _AbrirRota,
             _AcaoButton
         }
     };
     if (_Situacao == FreteSituacaoEnum.Entregue)
     {
         ((StackLayout)Content).Children.Remove(_AcaoButton);
     }
     this._PosicaoAlterada += async(sender, e) =>
     {
         var retPedido = await new MotoristaBLL().listarPedidosAsync();
         apresentaInfo(retPedido, new Position(e.Position.Latitude, e.Position.Longitude));
     };
 }
Example #3
0
        private static async Task atualizaPedidosMotoristaAsync()
        {
            MotoristaRetornoInfo ret = null;

            if (new MotoristaBLL().pegarAtual() != null &&
                new MotoristaBLL().pegarAtual().Situacao == MotoristaSituacaoEnum.Ativo)
            {
                ret = await new MotoristaBLL().listarPedidosAsync();
                if (!confirm && ret != null)
                {
                    if (ret.IdFrete == null && ret.Pedidos != null && ret.Pedidos.Count > 0)
                    {
                        Device.BeginInvokeOnMainThread(async() =>
                        {
                            var pedido = ret.Pedidos.First();
                            confirm    = await UserDialogs.Instance.ConfirmAsync("Nova entrega no valor de R$ " + pedido.Valor.ToString("N2") + " disponível para iniciar.", "Entrega", "Ver", "Não quero");
                            if (confirm)
                            {
                                ((RootPage)App.Current.MainPage).PushAsync(new Pages.FreteResumoPage(pedido));
                            }
                            else
                            {
                                //var retAceite = await FreteFactory.create().aceitar(false, pedido.IdFrete, new MotoristaBLL().pegarAtual().Id);
                            }
                        });
                    }
                }
            }

            task = Task.Factory.StartNew(() =>
            {
                Task.Delay(delay).Wait();
                atualizaPedidosMotoristaAsync().Wait();
            });
        }
        public async System.Threading.Tasks.Task iniciaAsync(MotoristaRetornoInfo info)
        {
            if (MapsUtils.IsLocationAvailable())
            {
                var ret = await CrossGeolocator.Current.GetLastKnownLocationAsync();

                apresentaInfo(info, new Position(ret.Latitude, ret.Longitude));
                if (CrossGeolocator.Current.IsListening)
                {
                    await CrossGeolocator.Current.StopListeningAsync();
                }
                await CrossGeolocator.Current.StartListeningAsync(new TimeSpan(5000), 20);

                CrossGeolocator.Current.PositionChanged += testeAsync;
            }
        }