Trabalho final da disciplina de Gerência de Configuração de Software, realizado pelos alunos Diogo de Lima Menezes, João Pedro Cintra Karpinski e Luis Henrique Souza Carvalho
0
stars
0
forks
source link
Permitir preenchimento automático de informações de cidade, ao cadastrar endereços #9
O projeto atual da aplicação permite aos usuários adicionar endereços a partir das informações de Descrição, Latitude e Longitude. No entanto, os usuários também precisam selecionar manualmente uma cidade relacionada ao endereço, onde as cidades são cadastradas pelo próprio usuário com as informações de Cidade (nome da cidade) e Estado (sigla ou nome do estado). Essa abordagem pode levar a erros de digitação ou inconsistências nos nomes e siglas dos estados, resultando em dados incorretos e dificultando a integridade e a uniformidade das informações no sistema.
A necessidade de cadastro manual de cidade e estado aumenta a possibilidade de erros e torna o processo de adição de endereços mais complicado e propenso a inconsistências. Esses problemas não apenas afetam a qualidade dos dados armazenados, mas também podem causar confusão entre os usuários ao visualizar e gerenciar seus endereços.
Para resolver esse problema, proponho que se retire o cadastro manual de cidade e estado, e que essas informações sejam extraídas automaticamente a partir da seleção do usuário de uma latitude e longitude. A API do Google Maps oferece funcionalidades para obter informações detalhadas sobre a localização, incluindo o nome da cidade e o estado, com base nas coordenadas geográficas fornecidas.
Na tela de adição de endereço, o usuário deve continuar a fornecer a Descrição, Latitude e Longitude. No entanto, em vez de selecionar a cidade manualmente, a aplicação deve utilizar a API do Google Maps para obter e preencher automaticamente as informações da cidade e estado. Essa abordagem não apenas reduzirá a possibilidade de erros, mas também simplificará o processo de adição de endereços para o usuário.
No arquivo AddAddressFragment.java, podemos adicionar uma função para obter informações da cidade e do estado a partir da API do Google Maps:
private void fetchCityAndState(double latitude, double longitude) {
Geocoder geocoder = new Geocoder(getContext(), Locale.getDefault());
try {
List<Address> addresses = geocoder.getFromLocation(latitude, longitude, 1);
if (addresses != null && !addresses.isEmpty()) {
Address address = addresses.get(0);
String city = address.getLocality();
String state = address.getAdminArea();
cityEditText.setText(city);
stateEditText.setText(state);
} else {
Toast.makeText(getContext(), "Não foi possível obter a cidade e o estado.", Toast.LENGTH_SHORT).show();
}
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(getContext(), "Erro ao obter a cidade e o estado.", Toast.LENGTH_SHORT).show();
}
}
Essa função deve ser chamada após o usuário fornecer a latitude e longitude:
latitudeEditText.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
double latitude = Double.parseDouble(latitudeEditText.getText().toString());
double longitude = Double.parseDouble(longitudeEditText.getText().toString());
fetchCityAndState(latitude, longitude);
}
// outros métodos do TextWatcher podem ser deixados em branco
});
Recomendo o envolvimento da equipe de Requisitos para revisar essa necessidade com o cliente, garantindo que a solução proposta atenda às expectativas e necessidades do usuário final. A equipe de Requisitos deve auxiliar a equipe de Desenvolvimento a entender melhor o problema e a delimitar uma solução efetiva. Essa abordagem deve ser discutida e validada em conjunto com a equipe de Desenvolvimento para garantir que todas as implicações técnicas sejam consideradas e abordadas adequadamente. Caso necessário, essa issue pode ser ramificada em sub-tarefas específicas para facilitar a gestão e a implementação das mudanças propostas.
O projeto atual da aplicação permite aos usuários adicionar endereços a partir das informações de
Descrição
,Latitude
eLongitude
. No entanto, os usuários também precisam selecionar manualmente uma cidade relacionada ao endereço, onde as cidades são cadastradas pelo próprio usuário com as informações deCidade
(nome da cidade) eEstado
(sigla ou nome do estado). Essa abordagem pode levar a erros de digitação ou inconsistências nos nomes e siglas dos estados, resultando em dados incorretos e dificultando a integridade e a uniformidade das informações no sistema.A necessidade de cadastro manual de cidade e estado aumenta a possibilidade de erros e torna o processo de adição de endereços mais complicado e propenso a inconsistências. Esses problemas não apenas afetam a qualidade dos dados armazenados, mas também podem causar confusão entre os usuários ao visualizar e gerenciar seus endereços.
Para resolver esse problema, proponho que se retire o cadastro manual de cidade e estado, e que essas informações sejam extraídas automaticamente a partir da seleção do usuário de uma latitude e longitude. A API do Google Maps oferece funcionalidades para obter informações detalhadas sobre a localização, incluindo o nome da cidade e o estado, com base nas coordenadas geográficas fornecidas.
Na tela de adição de endereço, o usuário deve continuar a fornecer a
Descrição
,Latitude
eLongitude
. No entanto, em vez de selecionar a cidade manualmente, a aplicação deve utilizar a API do Google Maps para obter e preencher automaticamente as informações da cidade e estado. Essa abordagem não apenas reduzirá a possibilidade de erros, mas também simplificará o processo de adição de endereços para o usuário.No arquivo
AddAddressFragment.java
, podemos adicionar uma função para obter informações da cidade e do estado a partir da API do Google Maps:Essa função deve ser chamada após o usuário fornecer a latitude e longitude:
Recomendo o envolvimento da equipe de Requisitos para revisar essa necessidade com o cliente, garantindo que a solução proposta atenda às expectativas e necessidades do usuário final. A equipe de Requisitos deve auxiliar a equipe de Desenvolvimento a entender melhor o problema e a delimitar uma solução efetiva. Essa abordagem deve ser discutida e validada em conjunto com a equipe de Desenvolvimento para garantir que todas as implicações técnicas sejam consideradas e abordadas adequadamente. Caso necessário, essa issue pode ser ramificada em sub-tarefas específicas para facilitar a gestão e a implementação das mudanças propostas.