Beispiel #1
0
        private void apresentaInfo(FreteRetornoInfo info, Position localizacaoAtual)
        {
            _AcaoButton.Text      = getMensagemBotao(info.Situacao);
            _AcaoButton.IsEnabled = (info.Situacao == FreteSituacaoEnum.Entregue ? true : false);
            //var pontos = MapsUtils.DecodePolyline(info.Polyline);
            _CustomMap.Polyline = MapaUtils.decodePolyline(info.Polyline);

            /*
             * if (_CustomMap.RouteCoordinates == null || _CustomMap.RouteCoordinates.Count == 0)
             * {
             *  foreach (var ponto in pontos)
             *  {
             *      _CustomMap.RouteCoordinates.Add(ponto);
             *  }
             * }
             * else
             * {
             *  _CustomMap.addPolyline(pontos);
             * }
             */
            _CustomMap.MoveToRegion(MapSpan.FromCenterAndRadius(localizacaoAtual, Distance.FromMiles(0.1)));

            var pin = new Pin
            {
                Type     = PinType.Place,
                Position = localizacaoAtual,
                Label    = "Motorista",
                Address  = "Toque para ver detalhes..."
            };

            pin.Clicked += (sender, e) => {
                UserDialogs.Instance.Alert((_FreteInfo == null ?
                                            "Obtendo motorista"
                         : "Nome: " + _FreteInfo.Motorista.Usuario.Nome
                                            + "\nTelefone: " + _FreteInfo.Motorista.Usuario.Telefone
                                            + "\nPlaca: " + _FreteInfo.Motorista.Placa), "Motorista", "Fechar");
            };
            _CustomMap.Pins.Clear();
            _CustomMap.Pins.Add(pin);
            _Distancia.Text = "Distância até o destino: " + info.DistanciaStr;
            _Tempo.Text     = "Tempo até o destino: " + info.TempoStr;
        }
Beispiel #2
0
 public AcompanhaFretePage(FreteRetornoInfo info)
 {
     _IdFrete  = (int)info.IdFrete;
     _Situacao = (FreteSituacaoEnum)info.Situacao;
     inicializarComponente();
     iniciaAsync(info).Wait();
     Title   = "Acompanhar entrega";
     Content = new StackLayout()
     {
         VerticalOptions   = LayoutOptions.Fill,
         HorizontalOptions = LayoutOptions.Fill,
         Children          =
         {
             _CustomMap,
             _Distancia,
             _Tempo,
             _AcaoButton
         }
     };
 }
Beispiel #3
0
        public async Task iniciaAsync(FreteRetornoInfo info)
        {
            if ((info.Latitude + ";" + info.Longitude) != _LastLatLon)
            {
                Device.BeginInvokeOnMainThread(async() =>
                {
                    if (_FreteInfo == null)
                    {
                        _FreteInfo = await FreteFactory.create().pegar(info.IdFrete);
                    }
                    apresentaInfo(info, new Position(info.Latitude, info.Longitude));
                });

                _LastLatLon = (info.Latitude + ";" + info.Longitude);
            }

            task = Task.Factory.StartNew(async() =>
            {
                await Task.Delay(delay);
                var retInfo = await FreteFactory.create().atualizar(_IdFrete);
                await iniciaAsync(retInfo);
            });
        }