Notas da versão do SDK de consumidor para Android

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

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

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

1.99.2 (3 de novembro de 2023)

  • Correção de falhas que ocorrem quando o SDK é inicializado usando 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 só ocorre no renderizador de mapas mais recente.

  • Correção de um bug que faz com que o primeiro trecho de uma viagem ida e volta seja cortado quando o segundo trecho passa pela mesma estrada

Issues

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

2.0.0 (15 de setembro de 2023)

Aviso: alterações interruptivas

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

  • Atualiza o requisito da versão do SDK do Maps da v17.0.0 para a 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 da versão da biblioteca Play-services-base foi atualizado da v18.0.1 para a v18.2.0.

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

    • O requisito mínimo da 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.

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

  • Atualizar as seguintes versões das 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 de com.google.android.datatransport:transport-backend-cct foi atualizado da v3.0.0 para a v3.1.9.

    • O requisito mínimo de 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 do androidx.Lifecycle:Lifecycle-extensions foi atualizado da v2.0.0 para a v2.2.0.

    • O requisito mínimo da versão do androidx.Lifecycle:ciclo de vida-common-java8 foi atualizado da v2.0.0 para a v2.6.1.

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

    • O requisito mínimo da versão do androidx.fragment:fragment foi atualizado da v1.0.0 para a 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 o targetSdkVersion da API 31 ou mais recente, o compileSdkVersion do nível 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 conferir instruções de atualização.

  • Os apps que usam o Proguard ou o Dexguard precisam migrar para o R8. Para saber mais, consulte https://developer.android.com/build/shrink-code.

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

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

Anúncio: APIs descontinuadas

  • O uso das classes de anotação Trip.TripStatus e Trip.TripType foi descontinuado e adicionadas as classes de anotação TripInfo.TripStatus e TripInfo.TripType para substituí-las.

    • Como parte dessa mudança, o 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, o uso de TripInfo#getTripStatus() foi descontinuado e TripInfo#getCurrentTripStatus() foi adicionado para substituí-lo.

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

  • Descontinua a classe Trip.

Outras mudanças e correções de bugs

  • Aceita a solicitação do renderizador mais recente do SDK do Maps. Confira mais detalhes em Novo renderizador de mapas.

  • Oferece suporte ao SDK do Maps das versões v18.1.0(inclusive) a 19.0.0(exclusivas).

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

  • Correção do problema de renderização para tela pequena e modo picture-in-picture

Guia de migração

1.99.1 (31 de agosto de 2023)

Correções de bugs

  • Correção de falhas que ocorrem quando a atividade ou o fragmento do host do SDK é destruído.

  • Correção de falhas que ocorrem quando as dimensões da MapView são 0 (altura ou largura)

  • Correção de um acidente que ocorre ao projetar o local do veículo na polilinha do trajeto

Melhorias

  • Impede que o SDK falhe quando o aplicativo host é transferido 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 em telas pequenas e no modo picture-in-picture

  • Correção da oscilação do veículo durante o compartilhamento da viagem

1.2.1 (7 de junho de 2023)

Correções de bugs

  • Correção de um bug que fazia o veículo piscar durante o compartilhamento da viagem

1.2.0 (21 de novembro de 2022)

Correções de bugs

  • Correção do bug que fazia com que o tráfego vazio fosse informado no callback onTripActiveRouteTrafficUpdated

Novos recursos

  • As "polilinhas com informações de trânsito" já estão disponíveis para todos os usuários.

1.1.2 (27 de outubro de 2022)

Correções de bugs

  • Resolvemos o bug que faz com que a polilinha do trajeto desapareça depois que um JourneySharingSession é iniciado mais de uma vez para um TripModel

Anúncio: congelamento da compatibilidade com o Android 5 (25 de julho de 2022)

Para nossa versão v1.1.1 do SDK, estamos fornecendo um ano adicional 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 em execução nos seus apps Android vai oferecer suporte ao Android 5 (nível 21 da API) pelo menos até 30 de junho de 2023.

  • Após 30 de junho de 2023, vamos oferecer suporte apenas ao Android de nível 23 ou mais recente. Em outras palavras, não daremos mais 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 o 4.x) não serão corrigidos e não garantimos que os SDKs se comportem corretamente.

v1.1.1 (25 de julho de 2022)

Mudança na dependência

  • Faz downgrade do nível mínimo da API do Android com suporte 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 do Android com suporte agora é 23.

Mudanças na API

  • Mudanças nas classes ConsumerTrip e ConsumerTripManager.

    • Alguns nomes de métodos foram esclarecidos para deixar o significado mais claro e para se alinhar à plataforma iOS.
  • Mudanças em ConsumerTripCallback, ConsumerTrip e TripInfo.

    • Os nomes de algumas classes foram mudados para que haja paridade com o iOS. TripModel, TirpModelManager e TripModelOptions foram introduzidos para descontinuar ConsumerTrip, ConsumerTripManager e ConsumerTripOptions.

    • Limpeza de alguns nomes de método. Revisamos ou adicionamos comentários do JavaDoc a métodos para transmitir significados mais claros.

    • Melhoria no 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 em escala geográfica de monitoramento de falhas.

Alterações na autenticação

  • Remover métodos desnecessários das interfaces do Authentication.
    • Remoção do parâmetro ServiceType.

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.
  • Adição de ConsumerTrip.isRefreshing(), que indica se ConsumerTrip está se atualizando ativamente com novas informações de viagem do Fleet Engine.
  • Adição de ConsumerTripCallback.onTripRemainingRouteDistanceUpdated()
  • Adição de ConsumerTripCallback.onTripRemainingRouteUpdated()
  • Substitua os tipos de retorno do Guava (ImmutableSet, ImmutableList) por classes equivalentes 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
      

Alterações de implementação

  • Correção de uma disputa em que o SDK podia falhar a partir das interações com o mapa antes de ficar 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ânsito 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.
    • Adição de TripWaypoint.getTrafficData()
    • O tipo de dados TrafficData foi adicionado.
    • Adição de ConsumerController.hideAllSessions() 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 modularizada com uma relação mais clara entre a camada somente de dados (por exemplo, ConsumerTripManager) e a camada de interface do usuário (por exemplo, JourneySharingSession). Para informações sobre 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.
  • As APIs de compartilhamento que não são de jornada foram removidas.
    • Mapa de densidade de veículos removido.
    • O estado de visualização da viagem foi removido.
    • O estado de seleção de retirada foi removido.
    • O estado da seleção de desembarque foi removido.
    • Os seguintes tipos de marcador foram removidos: SELECTED_PICKUP_POINT, SUGGESTED_PICKUP_POINT, HIGHLIGHTED_PICKUP_POINT e SELECTED_DROPOFF_POINT.
  • OnConsumerMarkerClickCallback e ConsumerMapReadyCallback foram mudados de interfaces para classes abstratas.
  • Foram adicionados ConsumerController.getCameraUpdate(), ConsumerController.isAutoCameraEnabled() e ConsumerController.enableAutoCamera().
  • O FAB personalizado e os métodos associados (ConsumerController.isMyLocationFabEnabled e ConsumerController.setMyLocationFabEnabled) foram removidos.

Alterações de implementação

  • Um ConsumerTripCallback, registrado com ou sem um LifecycleOwner, não cancela mais o registro automaticamente em TripStatus.COMPLETE ou TripStatus.CANCELED.
  • A câmera automática agora fica ativada por padrão e nunca é reativada ou desativada. Antes, a AutoCamera era reativada automaticamente em TripStatus.ARRIVED_AT_PICKUP e desativada quando o usuário interagia com o mapa durante o compartilhamento da viagem.
  • As seguintes melhorias foram feitas na animação do veículo de compartilhamento da jornada:
    • A animação de compartilhamento de jornada agora processa a situação em que um veículo pode voltar por um trajeto já percorrido.
    • Agora, o veículo será animado em linha reta em vez de interpolação de trajeto entre os pontos quando for determinado algoritmicamente como sendo adequado.
  • 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

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

Melhorias

  • A polilinha do trajeto não é exibida quando o status da viagem é ARRIVED_AT_PICKUP.
  • O rastreamento de veículos fora do trajeto foi aprimorado (requer o DriverSDK 1.15):
    • O rastreamento de veículos não o ajusta ao trajeto quando ele passa do ponto de embarque.
    • O rastreamento de veículos 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

  • Adição de TripInfo.getVehicleLocation()

  • ConsumerMapView não é mais definitiva.

Alterações de implementação

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

Outras mudanças

  • Novas dependências são necessárias. Consulte o arquivo .pom para 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 a latência da solicitação de viagem.

  • Foram adicionados registros para erros de resposta de viagem.

Observações

  • Desde a versão 0.8.1, o SDK do consumidor para Android é enviado como um arquivo ZIP jetificado. Para saber mais sobre como remover o jetifier, consulte Jetifier: modo reverso.

v0.8.1 (13 de setembro de 2019)

Novos recursos

Mudanças na API

  • Adição de ConsumerController.disableAutoCamera() 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. Mudança de AuthTokenFactory de uma interface para uma classe abstrata para ativar a compatibilidade com versões anteriores no Java7 Essa alteração é compatível com versões anteriores, mas os métodos antigos para a geração de tokens de serviço único estão obsoletos e serão removidos.

Alterações de implementação

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

  • setState para JOURNEY_SHARING onStartTripMonitoring(), em vez de aguardar o monitoramento do status da viagem.

  • Sempre retorna dados da primeira atualização de dados de viagem, mesmo quando eles estão fora de sincronia.

  • Foram adicionados utilitários de mapas do Android como uma dependência fornecida.

Correções de bugs

  • Foi corrigida a sintaxe de exportação do ProGuard corrompida para o keep do gRPC.

v0.7.0 (7 de agosto de 2019)

Novos recursos

  • Compatibilidade com vários destinos para 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.

    • Você pode receber TripInfo para a viagem ativa usando ConsumerTripManager.getActiveTripInfo().
  • Adição de WaypointType.INTERMEDIATE_DESTINATION

  • Adição de MarkerType.TRIP_INTERMEDIATE_DESTINATION

  • Criação de ConsumerMapState.JOURNEY_SHARING a partir de ConsumerMapStates ENROUTE_TO_PICKUP, ARRIVED_AT_PICKUP, ENROUTE_TO_DROPOFF e COMPLETE mesclados.

    • A tabela StateChangeCallbacks foi atualizada.

    • Adição de onStateJourneySharing()

    • Remoção de onStateWaitingForPickup(), onStateDriverArrived(), onStateEnroute() e onStateEndofTrip().

Correções de bugs

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

  • 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á tivesse buscado dados da 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 trecho restante esteja visível, o zoom nunca o incluirá. Anteriormente, o ponto de desembarque era incluído no zoom quando o veículo estava se deslocando para o embarque ou chegava na retirada. Isso não é mais verdade.

Melhorias

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

  • Atualize todos os HECs dos waypoints restantes quando o HEC para o primeiro waypoint na lista mudar.

  • Forçar a reativação da câmera automática somente quando o motorista chegar no local do embarque. Antes, a câmera automática era redefinida como ativada em cada mudança no estado da viagem. A câmera automática ainda fica 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 do Waze Carpool para compartilhamento de jornadas.

Mudanças na API

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

  • Adição de PolylineStyle.setZIndex()

Correções de bugs

  • A animação do trajeto agora acontece apenas quando o trecho do trajeto está sincronizado, o que melhora a experiência do usuário.

  • Correção da "pistilação" do veículo durante a interpolação da 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çava no início do trajeto, em vez de no local mais atualizado, quando o monitoramento da viagem começava no meio de uma viagem ativa.

  • Mostre a polilinha do trajeto ativa acima do trajeto 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 para o compartilhamento de jornada em sequência.

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 que você defina o idioma usado nas chamadas do FleetEngine (para descrições de ponto de retirada, por exemplo).

Melhorias

  • O estado de seleção do dropoff agora tem um alfinete arrastável.
  • A animação da câmera no estado INITIALIZE foi removida.
  • A ManagedChannelBuilder foi substituída pela AndroidChannelBuilder