Esta seção contém notas da versão do SDK do consumidor para Android.
2.2.0 (7 de maio de 2024)
Mudanças na API
- Foi adicionada a API de suporte à integração do Jetpack Compose. Este é um recurso experimental. Para mais 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
- 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
Problemas
ConsumerApi.initialize()
gera uma exceção quando invocado quando uma instância de API já existe. Para contornar esse problema, primeiro chameConsumerApi.getInstance()
e avalie oTask
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
eConsumerTripOptions
. Eles foram substituídos porTripModel
,TripModelCallback
,TripModelManager
eTripModelOptions
.Os apps que usam o SDK do consumidor agora precisam ter o
targetSdkVersion
da API 31 ou mais recente, ocompileSdkVersion
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. OTask
retornado porConsumerApi.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
eTrip.TripType
foi descontinuado e adicionadas as classes de anotaçãoTripInfo.TripStatus
eTripInfo.TripType
para substituí-las.Como parte dessa mudança, o
TripModelCallback#onTripStatusUpdated(TripInfo tripInfo, @Trip.TripStatus int status)
foi descontinuado eTripModelCallback#onTripStatusUpdate(TripInfo tripInfo, @TripInfo.TripStatus int status)
foi adicionado para substituí-lo.Como parte dessa mudança, o uso de
TripInfo#getTripStatus()
foi descontinuado eTripInfo#getCurrentTripStatus()
foi adicionado para substituí-lo.Como parte dessa mudança, o uso de
TripInfo#getTripType()
foi descontinuado eTripInfo#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 umTripModel
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
eConsumerTripManager
.- Alguns nomes de métodos foram esclarecidos para deixar o significado mais claro e para se alinhar à plataforma iOS.
Mudanças em
ConsumerTripCallback
,ConsumerTrip
eTripInfo
.Os nomes de algumas classes foram mudados para que haja paridade com o iOS.
TripModel
,TirpModelManager
eTripModelOptions
foram introduzidos para descontinuarConsumerTrip
,ConsumerTripManager
eConsumerTripOptions
.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
ePolylineStyleOptions
foram descontinuados e substituídos porMarkerOptions
ePolylineOptions
, 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
.
- Remoção do parâmetro
v0.9.28 (18 de maio de 2021)
Mudanças na API
- Todos os métodos
ConsumerTripCallback
foram atualizados para usarTripInfo
como o parâmetro. - Adição de
ConsumerTrip.isRefreshing()
, que indica seConsumerTrip
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 equivalentesjava.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()
eTripInfo.getRemainingRouteTraffic()
.ConsumerTripCallback.onTripActiveRouteTrafficUpdated()
eConsumerTripCallback.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 objetoConsumerTrip
agora é recebido deConsumerTripManager.getTrip()
.ConsumerTrip.unregisterCallback
foi renomeado comoConsumerTrip.unregisterTripCallback
.ConsumerTrip.isCallbackRegistered
foi renomeado comoConsumerTrip.isTripCallbackRegistered
.- Os elementos
ConsumerTrip.setConsumerTripOptions()
e aConsumerTrip.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
eSELECTED_DROPOFF_POINT
.
OnConsumerMarkerClickCallback
eConsumerMapReadyCallback
foram mudados de interfaces para classes abstratas.- Foram adicionados
ConsumerController.getCameraUpdate()
,ConsumerController.isAutoCameraEnabled()
eConsumerController.enableAutoCamera()
. - O FAB personalizado e os métodos associados
(
ConsumerController.isMyLocationFabEnabled
eConsumerController.setMyLocationFabEnabled
) foram removidos.
Alterações de implementação
- Um
ConsumerTripCallback
, registrado com ou sem umLifecycleOwner
, não cancela mais o registro automaticamente emTripStatus.COMPLETE
ouTripStatus.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()
eTripInfo.getTripRemainingRoute()
. - Foi adicionada a classe
options
, usada durante a inicialização deConsumerApi
, que permite que o endereçoFleetEngine
seja definido dinamicamente. Se a API não for chamada com um valorFleetEngine
, 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
Compatibilidade com ConsumerMapView.
Os artefatos ODRD agora são enviados em um repositório do Maven em vez de em um arquivo ZIP .aar. Para mais informações, consulte Adicionar o SDK do consumidor ao seu app.
Mudanças na API
Adição de
ConsumerController.disableAutoCamera()
como a função oposta acenterMapForState()
.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 deAuthTokenFactory
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
paraJOURNEY_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 usandoConsumerTripManager.getActiveTripInfo()
.
- Você pode receber
Adição de
WaypointType.INTERMEDIATE_DESTINATION
Adição de
MarkerType.TRIP_INTERMEDIATE_DESTINATION
Criação de
ConsumerMapState.JOURNEY_SHARING
a partir deConsumerMapStates
ENROUTE_TO_PICKUP
,ARRIVED_AT_PICKUP
,ENROUTE_TO_DROPOFF
eCOMPLETE
mesclados.A tabela
StateChangeCallbacks
foi atualizada.Adição de
onStateJourneySharing()
Remoção de
onStateWaitingForPickup()
,onStateDriverArrived()
,onStateEnroute()
eonStateEndofTrip()
.
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
eTripInfo.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 retornaConsumerMapStyle
em vez deTask<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 pelaAndroidChannelBuilder