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)); }; }
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; } }