Notas da versão do SDK de consumidor para Android

Esta seção contém as notas da versão do SDK Consumer para Android.

2.3.0 (2 de agosto de 2024)

Mudanças na API

2.2.0 (7 de maio de 2024)

Mudanças na API

  • API de suporte adicionada para integração com o Jetpack Compose. Este é um recurso experimental. Para ver detalhes sobre a integração com o Jetpack Compose, entre em contato com seu representante.

2.1.0 (17 de janeiro de 2024)

Correções de bugs

  • Correção de falhas que ocorrem quando o SDK é inicializado mais de uma vez no ciclo de vida do aplicativo.

Mudanças na API

  • Apresenta o método para recuperar a instância GoogleMap criada pelo SDK (ConsumerGoogleMap.getGoogleMap()).
  • Apresenta a API para recuperar as instâncias Marker criadas pelo SDK para representar o veículo (ConsumerController.getConsumerMarker()).
  • Apresenta a API para receber atualizações projetadas pelo cliente para o tempo e a distância durante o compartilhamento da jornada (ProjectedRouteEta).

1.99.2 (3 de novembro de 2023)

  • Correção de falhas que ocorrem quando o SDK é inicializado em um processo remoto, separado do aplicativo.

  • Correção de falhas que ocorrem ao executar uma animação da câmera e não há espaço vertical ou horizontal suficiente para o padding. Isso ocorre apenas no renderizador de mapas mais recente.

  • Corrige o bug que faz com que o primeiro trecho de uma viagem de ida e volta seja cortado quando o segundo trecho passa pela mesma estrada.

Problemas

  • O ConsumerApi.initialize() gera uma exceção se for invocado quando uma instância da API já existir. Para contornar esse problema, primeiro chame ConsumerApi.getInstance() e avalie o Task retornado para determinar se uma instância da API já existe.

2.0.0 (15 de setembro de 2023)

Anúncio: mudanças importantes

  • O requisito de nível mínimo da API foi atualizado de 21 para 23.

  • Atualização do requisito de versão do SDK do Maps de v17.0.0 para v18.1.0

  • O requisito mínimo da versão da biblioteca padrão do Kotlin foi atualizado da v1.6.10 para a v1.9.0.

  • Atualizar as versões das dependências do Google Play Services

    • O requisito mínimo de versão da biblioteca play-services-base foi atualizado da v18.0.1 para a v18.2.0.

    • O requisito mínimo de versão da biblioteca play-services-basement foi atualizado da v18.0.0 para a v18.2.0.

    • O requisito mínimo de versão da biblioteca play-services-location foi atualizado da v17.0.0 para a v21.0.1.

    • O requisito mínimo da versão da biblioteca play-services-tasks foi atualizado da v18.0.1 para a v18.0.2.

  • Adiciona a biblioteca androidx.room:room-runtime com o requisito de versão mínima definido como v2.5.2.

  • Atualize as versões das seguintes dependências

    • O requisito mínimo da versão da biblioteca android-maps-utils foi atualizado da v0.4.2 para a v3.5.2.

    • O requisito mínimo de versão com.google.android.datatransport:transport-backend-cct foi atualizado da v3.0.0 para a v3.1.9.

    • O requisito mínimo da versão com.google.android.datatransport:transport-runtime foi atualizado da v3.0.1 para a v3.1.9

    • O requisito mínimo da versão androidx.lifecycle:lifecycle-extensions foi atualizado da v2.0.0 para a v2.2.0.

    • O requisito mínimo da versão androidx.lifecycle:lifecycle-common-java8 foi atualizado da v2.0.0 para a v2.6.1.

    • O requisito mínimo da versão androidx.appCompat:appCompatibilidade foi atualizado da v1.0.0 para a v1.6.1.

    • O requisito mínimo de versão do androidx.fragment:fragment foi atualizado de v1.0.0 para v1.6.1.

  • As seguintes APIs descontinuadas foram removidas: ConsumerTrip, ConsumerTripCallback, ConsumerTripManager e ConsumerTripOptions. Eles foram substituídos por TripModel, TripModelCallback, TripModelManager e TripModelOptions.

  • Os apps que usam o SDK do consumidor agora precisam ter targetSdkVersion da API 31 ou mais recente, compileSdkVersion da API 33 ou mais recente.

  • Os apps que usam o SDK do consumidor agora precisam ativar o suporte à biblioteca Java 8. Consulte https://developer.android.com/studio/write/java8-support para instruções de atualização.

  • Os apps que usam Proguard ou Dexguard precisam migrar para o R8. Consulte https://developer.android.com/build/shrink-code para mais informações.

  • Os apps que usam o SDK do consumidor precisam ativar a simplificação. Consulte https://developer.android.com/studio/write/java8-support#library-desugaring para ver instruções.

  • O método ConsumerApi.initialize() agora gera uma exceção se estiver sendo invocado quando já houver uma instância da API criada. O Task retornado por ConsumerApi.getInstance() precisa ser usado para determinar se há uma instância da API criada anteriormente.

Anúncio: descontinuação de APIs

  • As classes de anotação Trip.TripStatus e Trip.TripType foram descontinuadas e as classes de anotação TripInfo.TripStatus e TripInfo.TripType foram adicionadas para substituí-las.

    • Como parte dessa mudança, TripModelCallback#onTripStatusUpdated(TripInfo tripInfo, @Trip.TripStatus int status) foi descontinuado e TripModelCallback#onTripStatusUpdate(TripInfo tripInfo, @TripInfo.TripStatus int status) foi adicionado para substituí-lo.

    • Como parte dessa mudança, TripInfo#getTripStatus() foi descontinuado, e TripInfo#getCurrentTripStatus() foi adicionado para substituí-lo.

    • Como parte dessa mudança, TripInfo#getTripType() foi descontinuado, e TripInfo#getCurrentTripType() foi adicionado para substituí-lo.

  • Descontinua a classe Trip.

Outras mudanças e correções de bugs

  • Suporte a solicitações do renderizador mais recente do SDK do Maps. Consulte Novo renderizador de mapas para mais detalhes.

  • Oferece suporte ao intervalo do SDK do Maps, da versão v18.1.0 (incluindo) até a v19.0.0 (exclusiva).

  • Correção do erro "prazo excedido" para comunicações internas entre o SDK e o back-end do Google.

  • Corrige o problema de renderização para telas pequenas e o modo picture-in-picture

Guia de migração

1.99.1 (31 de agosto de 2023)

Correções de bugs

  • Corrige a falha que ocorre quando a atividade ou o fragmento do host do SDK é destruído.

  • Correção da falha que ocorre quando as dimensões do MapView são 0 (altura ou largura).

  • Correção de falha que ocorre ao projetar o local do veículo na poligonal da rota.

Melhorias

  • Impede que o SDK falhe quando o aplicativo host é instalado por sideload e os recursos visuais padrão não estão presentes.

1.99.0 (22 de junho de 2023)

Correções de bugs

  • Correção do problema de renderização para telas pequenas e para o modo picture-in-picture.

  • Correção de oscilações do veículo durante o compartilhamento de trajetos.

1.2.1 (7 de junho de 2023)

Correções de bugs

  • Correção de um bug que faz o veículo piscar durante o compartilhamento de trajeto.

1.2.0 (21 de novembro de 2022)

Correções de bugs

  • Corrige o bug que fazia com que o tráfego vazio fosse informado no callback onTripActiveRouteTrafficUpdated.

Novos recursos

  • As polilinhas com informações de tráfego agora estão disponíveis para todos os usuários.

1.1.2 (27 de outubro de 2022)

Correções de bugs

  • Correção de um bug que faz com que a linha poligonal da rota desapareça depois que uma JourneySharingSession é iniciada mais de uma vez para um TripModel.

Aviso: suporte suspenso para o Android 5 (25 de julho de 2022)

Para a versão v1.1.1 do SDK, estamos oferecendo mais um ano de suporte para apps executados no Android 5, para os níveis 21 e 22 da API.

O que isso significa:

  • O SDK do consumidor executado nos seus apps Android terá suporte mínimo ao Android 5 (nível 21 da API) até 30 de junho de 2023.

  • Depois de 30 de junho de 2023, só vamos oferecer suporte aos níveis 23 e mais recentes da API do Android. Em outras palavras, vamos deixar de oferecer suporte aos níveis 21 e 22 da API do Android em todas as versões do SDK após essa data. Isso significa que os bugs relacionados ao Android 21 ou 22 em qualquer versão do SDK (incluindo 4.x) não serão corrigidos, e não garantimos que os SDKs vão se comportar corretamente.

v1.1.1 (25 de julho de 2022)

Mudança na dependência

  • O nível mínimo da API do Android com suporte foi rebaixado para 21.

v1.1.0 (28 de abril de 2022)

  • Melhorias internas.

v1.0.19 (17 de março de 2022)

Correções de bugs

  • Correção de um vazamento de memória na classe ConsumerApi

v1.0.14 (30 de novembro de 2021)

O nível mínimo da API Android com suporte agora é 23.

Mudanças na API

  • Mudanças nas classes ConsumerTrip e ConsumerTripManager.

    • Alguns nomes de métodos foram limpos para deixar o significado mais claro e alinhar com a plataforma iOS.
  • Mudanças para ConsumerTripCallback, ConsumerTrip e TripInfo.

    • Alguns nomes de classe foram alterados para formar paridade com o iOS. Foram introduzidos TripModel, TirpModelManager e TripModelOptions para descontinuar ConsumerTrip, ConsumerTripManager e ConsumerTripOptions.

    • Limpeza de alguns nomes de métodos. Comentários do JavaDoc revisados ou adicionados a métodos para transmitir significados mais claros.

    • Melhoramos o tratamento de erros.

Personalização de estilo

  • Wrappers legados descontinuados

    • MarkerStyleOptions e PolylineStyleOptions foram descontinuados e substituídos por MarkerOptions e PolylineOptions, que são compartilhados com o SDK do Maps.

Monitoramento de falhas

  • Detecção de falhas e geração de registros adicionadas.

    • Foi feita uma adição para permitir que você desative essa funcionalidade. Isso foi feito como parte de um esforço maior de monitoramento de falhas em todo o mundo.

Alterações na autenticação

  • Métodos desnecessários foram removidos das interfaces de autenticação.
    • O parâmetro ServiceType foi removido.

v0.9.28 (18 de maio de 2021)

Mudanças na API

  • Todos os métodos ConsumerTripCallback foram atualizados para usar TripInfo como o parâmetro.
  • Inclusão de ConsumerTrip.isRefreshing(), que indica se o ConsumerTrip está se atualizando ativamente com informações de viagem novas do Fleet Engine.
  • ConsumerTripCallback.onTripRemainingRouteDistanceUpdated() foi adicionado.
  • ConsumerTripCallback.onTripRemainingRouteUpdated() foi adicionado.
  • Substitua os tipos de retorno do Guava (ImmutableSet, ImmutableList) por classes equivalentes de java.util.
  • Mudanças no nome do pacote:

    • com.google.android.libraries.ridesharing.common.AuthTokenContext -> com.google.android.libraries.ridesharing.consumer.auth.AuthTokenContext
    • com.google.android.libraries.ridesharing.common.AuthTokenFactory -> com.google.android.libraries.ridesharing.consumer.auth.AuthTokenFactory
    • com.google.android.libraries.ridesharing.common.FleetEngineServiceType -> com.google.android.libraries.ridesharing.consumer.auth.FleetEngineServiceType - com.google.android.libraries.ridesharing.common.model.Trip

                                  ->
                                                                  com.google.android.libraries.ridesharing.consumer.model.Trip
      
                                  -   com.google.android.libraries.ridesharing.common.model.Vehicle
      
                                                          ->
                                      com.google.android.libraries.ridesharing.consumer.model.Vehicle
      

Mudanças na implementação

  • Correção de uma condição de disputa em que o SDK podia falhar devido a interações com o mapa antes que ele estivesse pronto.
  • O SDK não contém mais uma cópia não ofuscada de io.grpc.
  • Correção de um bug com polilinhas de tráfego piscando em determinados dispositivos. Os segmentos de tráfego agora terão extremidades arredondadas.

v0.9.15 (7 de outubro de 2020)

Mudanças na API

  • Esta versão introduz as polilinhas com reconhecimento de tráfego. - Foram adicionados TripInfo.getActiveRouteTraffic() e TripInfo.getRemainingRouteTraffic().
    • ConsumerTripCallback.onTripActiveRouteTrafficUpdated() e ConsumerTripCallback.onTripRemainingRouteTrafficUpdated() foram adicionados para indicar quando o tráfego mudou.
    • Adição de PolylineStyleOptions para personalização de tráfego (setTrafficEnabled(), setTrafficColorNoData(), setTrafficColorNormal(), setTrafficColorSlow(), setTrafficColorTrafficJam()).
    • Exposição de PolylineStyleOptions.TRAFFIC_Z_INDEX_ADDITION.
    • TripWaypoint.getTrafficData() foi adicionado.
    • Tipo de dados TrafficData adicionado.
    • ConsumerController.hideAllSessions() foi adicionado. ConsumerController.showSession() não aceita mais nulo como argumento.

v0.9.9 (15 de julho de 2020)

Mudanças na API

  • Essa é uma mudança importante que introduz uma arquitetura modular com uma relação mais clara entre a camada somente de dados (por exemplo, ConsumerTripManager) e a camada da interface do usuário (por exemplo, JourneySharingSession). Para saber como migrar para a nova arquitetura, consulte o Guia de migração de modularização. - O objeto ConsumerTrip agora é recebido de ConsumerTripManager.getTrip().
    • ConsumerTrip.unregisterCallback foi renomeado como ConsumerTrip.unregisterTripCallback.
    • ConsumerTrip.isCallbackRegistered foi renomeado como ConsumerTrip.isTripCallbackRegistered.
    • Os elementos ConsumerTrip.setConsumerTripOptions() e a ConsumerTrip.getConsumerTripOptions() foram adicionados.
    • ConsumerTrip.setAutoRefreshInterval() foi removido.
  • Remoção de APIs de compartilhamento que não são de jornada
    • Mapa de densidade de veículos removido.
    • Estado de visualização da viagem removido.
    • O estado de seleção de retirada foi removido.
    • O estado de seleção de entrega foi removido.
    • Os seguintes tipos de marcador foram removidos: SELECTED_PICKUP_POINT, SUGGESTED_PICKUP_POINT, HIGHLIGHTED_PICKUP_POINT e SELECTED_DROPOFF_POINT.
  • Mudança de OnConsumerMarkerClickCallback e ConsumerMapReadyCallback de interfaces para classes abstratas.
  • ConsumerController.getCameraUpdate(), ConsumerController.isAutoCameraEnabled() e ConsumerController.enableAutoCamera() foram adicionados.
  • O botão flutuante personalizado e os métodos associados a ele (ConsumerController.isMyLocationFabEnabled e ConsumerController.setMyLocationFabEnabled) foram removidos.

Mudanças na implementação

  • Um ConsumerTripCallback, registrado com ou sem um LifecycleOwner, não é mais cancelado automaticamente no TripStatus.COMPLETE ou no TripStatus.CANCELED.
  • AutoCamera agora está ativado por padrão e nunca reativa ou desativa a si mesmo. Antes, a AutoCamera era reativada automaticamente em TripStatus.ARRIVED_AT_PICKUP e se desativava quando o usuário interagia com o mapa durante o compartilhamento da viagem.
  • As seguintes melhorias foram feitas na animação do veículo com compartilhamento de viagens:
    • A animação de compartilhamento de trajeto agora lida com a situação em que um veículo pode voltar legitimamente por uma rota já percorrida.
    • O veículo agora vai animar em linha reta em vez de interpolar a rota entre pontos quando for determinado algoritmicamente como sendo apropriado.
  • As permissões FINE_LOCATION não são mais necessárias.

Outras mudanças

  • As seguintes versões de dependência foram atualizadas:
    • com.google.android.datatransport:transport-api:2.2.0
    • com.google.android.datatransport:transport-backend-cct:2.2.0
    • com.google.android.datatransport:transport-runtime:2.2.0

v0.9.1 (23 de março de 2020)

Mudanças na API

  • TripInfo.getVehicleId(), TripInfo.getNumberOfPassengers(), TripInfo.getIntermediateDestinationIndex(), TripInfo.getTripActiveRoute() e TripInfo.getTripRemainingRoute() foram adicionados.
  • Adição da classe options usada durante a inicialização do ConsumerApi, que permite que o endereço FleetEngine seja definido dinamicamente. Se a API não for chamada com um valor FleetEngine, ela tentará buscá-lo no manifesto do Android ou retornará o valor padrão.

Melhorias

  • A poligonal do trajeto não é mostrada quando o status da viagem é ARRIVED_AT_PICKUP.
  • O rastreamento de veículos fora da rota foi aprimorado (requer o DriverSDK 1.15):
    • O rastreamento não coloca o veículo no trajeto quando ele passa do ponto de embarque.
    • O rastreamento permite mostrar o veículo fora da via, por exemplo, em estacionamentos não mapeados.
  • O ícone do veículo agora é atualizado quando o destino do motorista não corresponde ao destino no Fleet Engine.

v0.8.6 (16 de dezembro de 2019)

Mudanças na API

  • TripInfo.getVehicleLocation() foi adicionado.

  • ConsumerMapView não é mais final.

Mudanças na implementação

  • A distância restante do trecho ativo agora é calculada com a distância do servidor (informação do motorista + rota estática, quando aplicável) em vez do ajuste local. Essa alteração produz valores de distância restantes mais precisos.

Outras mudanças

  • Novas dependências necessárias. Consulte o arquivo .pom para mais detalhes.

    • com.google.android.datatransport:transport-api:2.0.0
    • com.google.android.datatransport:transport-backend-cct:2.0.2
    • com.google.android.datatransport:transport-runtime:2.0.0
  • Foram adicionados registros para latência de solicitação de viagem.

  • Registros de erros de resposta de viagem foram adicionados.

Observações

  • Desde a versão 0.8.1, o SDK do consumidor para Android é enviado como um arquivo zip jetificado. Para saber como desfazer a jetificação, consulte Jetifier: modo reverso.

v0.8.1 (13 de setembro de 2019)

Novos recursos

Mudanças na API

  • ConsumerController.disableAutoCamera() foi adicionado como a função oposta a centerMapForState().

  • VehicleLocation.getUpdateTime() agora retorna um Long que representa o carimbo de data/hora (em milissegundos).

  • A interface AuthTokenFactory foi simplificada para expor um único método de geração de tokens. AuthTokenFactory foi modificado de uma interface para uma classe abstrata para permitir a compatibilidade com versões anteriores no Java7. Essa mudança é compatível com versões anteriores, mas os métodos antigos para geração de token de serviço único foram descontinuados e serão removidos.

Mudanças na implementação

  • Os recursos agora são centralizados no centro do ícone, eliminando o deslocamento da sombra.

  • setState para JOURNEY_SHARING onStartTripMonitoring() em vez de esperar pelo status da viagem monitorada.

  • Sempre retorna dados para a primeira atualização de dados da viagem, mesmo quando os dados da viagem estão fora da sincronização.

  • Foram adicionados os Utils do Mapa do Android como uma dependência fornecida.

Correções de bugs

  • Correção da sintaxe de exportação do proguard para grpc keep.

v0.7.0 (7 de agosto de 2019)

Novos recursos

  • Suporte a vários destinos para o Compartilhamento de jornada.

Mudanças na API

  • Novos métodos para ConsumerTripCallback.

    • onTripIntermediateDestinationsUpdated().
    • onTripETAToNextTripWaypointUpdated().
  • Novos métodos ConsumerController.

    • getIntermediateDestinations().
    • setIntermediateDestinations(List<TerminalLocation> intermediateDestinations).
  • Novo TripStatuses.

    • TripStatus.ENROUTE_TO_INTERMEDIATE_DESTINATION.
    • TripStatus.ARRIVED_AT_INTERMEDIATE_DESTINATION.
  • Novos getters TripWaypoint.

    • getETAMillis().
    • getDistanceMeters().
  • A classe TripInfo foi adicionada.

    • É possível receber TripInfo para a viagem ativa com ConsumerTripManager.getActiveTripInfo().
  • WaypointType.INTERMEDIATE_DESTINATION foi adicionado.

  • MarkerType.TRIP_INTERMEDIATE_DESTINATION foi adicionado.

  • ConsumerMapState.JOURNEY_SHARING foi criado a partir de ConsumerMapStates ENROUTE_TO_PICKUP, ARRIVED_AT_PICKUP, ENROUTE_TO_DROPOFF e COMPLETE mesclados.

    • A tabela StateChangeCallbacks foi atualizada.

    • onStateJourneySharing() foi adicionado.

    • onStateWaitingForPickup(), onStateDriverArrived(), onStateEnroute() e onStateEndofTrip() foram removidos.

Correções de bugs

  • Correção de um bug em que a rota não era ajustada ao local do veículo quando o monitoramento da viagem começava no meio de uma viagem ativa (não no início da rota).

  • Correção de um bug em que os callbacks de viagem não eram invocados para listeners registrados no TripManager depois que o TripManager já tinha buscado dados de viagem.

  • O zoom da câmera agora inclui apenas o trajeto ativo e o próximo waypoint da viagem (waypoint que pertence à viagem). Mesmo que o restante do trajeto esteja visível, o zoom nunca vai incluí-lo. Antes, o ponto de entrega era incluído no zoom quando o veículo estava a caminho da coleta ou chegava ao local. Isso não é mais verdade.

Melhorias

  • Preencha o zero do waypoint restante com os dados do motorista. A lista de waypoints restantes é retornada de ConsumerTripCallback.onTripRemainingWaypointsUpdated e TripInfo.getRemainingWaypoints().

  • Atualiza todos os ETAs restantes do ponto de passagem quando o ETA para o primeiro ponto de passagem na lista muda.

  • Forçar a reativação da câmera automática apenas quando o motorista chega no local de embarque. Antes, a câmera automática era redefinida para ativada a cada mudança de estado da viagem. A câmera automática ainda está ativada por padrão. A câmera automática não será reativada se uma nova viagem ativa for definida sem uma nova chamada para startTripMonitoring().

v0.6.1 (26 de junho de 2019)

Novos recursos

  • Suporte ao Carpool para compartilhamento de trajetos.

Mudanças na API

  • ConsumerController.getConsumerMapStyle() agora retorna ConsumerMapStyle em vez de Task<ConsumerMapStyle>.

  • PolylineStyle.setZIndex() foi adicionado.

Correções de bugs

  • A animação de trajeto agora acontece apenas quando o segmento de trajeto está sincronizado, resultando em uma experiência do usuário melhor.

  • Correção do "tremulação" do veículo durante a interpolação de animação quando as atualizações de localização do motorista estão próximas.

  • Correção de um bug em que o veículo começa na cabeça da rota em vez de no local mais atualizado quando o monitoramento de viagem começa no meio de uma viagem ativa.

  • Mostre a polilinha do trajeto ativo acima do restante quando elas se sobrepuserem.

Melhorias

  • Agora exponha a classe Status do gRPC com métodos não ofuscados.

v0.5.1.01 (17 de maio de 2019)

Novos recursos

  • Suporte consecutivo para o compartilhamento de jornadas.

Mudanças na API

  • Nova classe ConsumerController.

PolylineType

Valor antigo Novo valor
TRIP_PREVIEW_AUTO_ROUTE PREVIEW_AUTO_ROUTE
TRIP_PREVIEW_TAXI_ROUTE PREVIEW_TAXI_ROUTE
TRIP_PREVIEW_TRUCK_ROUTE PREVIEW_TRUCK_ROUTE
TRIP_PREVIEW_TWO_WHEELER_ROUTE PREVIEW_TWO_WHEELER_ROUTE
TRIP_ROUTE ACTIVE_ROUTE
REMAINING_ROUTE

ConsumerTripCallback

Valor antigo Novo valor
onTripRouteUpdated onTripActiveRouteUpdated
onTripRemainingDistanceUpdated onTripActiveRouteRemainingDistanceUpdated
onTripRemainingWaypointsUpdated()

ConsumerController

  • Agora é possível definir callbacks para estados sem entrar no estado.
Método Chamada de retorno
startPickupSelection setPickupSelectionCallback
startDropoffSelection setDropoffSelectionCallback
startTripPreview setTripPreviewSelectionCallback
  • ConsumerController.setLanguage(String languageCode) permite definir o idioma usado nas chamadas do FleetEngine, por exemplo, para descrições de pontos de retirada.

Melhorias

  • O estado de seleção de entrega agora tem um pino que pode ser arrastado.
  • A animação da câmera foi removida no estado INITIALIZE.
  • A ManagedChannelBuilder foi substituída pela AndroidChannelBuilder