78 lines
2.7 KiB
Java
78 lines
2.7 KiB
Java
package com.example.apidigimon;
|
|
|
|
import android.os.Bundle;
|
|
import android.widget.Toast;
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
import androidx.appcompat.widget.SearchView;
|
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
|
import androidx.recyclerview.widget.RecyclerView;
|
|
import java.util.List;
|
|
import retrofit2.Call;
|
|
import retrofit2.Callback;
|
|
import retrofit2.Response;
|
|
import retrofit2.Retrofit;
|
|
import retrofit2.converter.gson.GsonConverterFactory;
|
|
|
|
public class MainActivity extends AppCompatActivity {
|
|
|
|
private RecyclerView rv;
|
|
private DigimonAdapter adapter;
|
|
private SearchView searchView;
|
|
|
|
@Override
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
setContentView(R.layout.activity_main);
|
|
|
|
// Iniciar componentes
|
|
rv = findViewById(R.id.recyclerViewDigimon);
|
|
searchView = findViewById(R.id.searchView);
|
|
rv.setLayoutManager(new LinearLayoutManager(this));
|
|
|
|
// Configurar Retrofit
|
|
Retrofit retrofit = new Retrofit.Builder()
|
|
.baseUrl("https://digimon-api.vercel.app/api/")
|
|
.addConverterFactory(GsonConverterFactory.create())
|
|
.build();
|
|
|
|
DigimonService service = retrofit.create(DigimonService.class);
|
|
|
|
// Chamar a API
|
|
service.getDigimons().enqueue(new Callback<List<Digimon>>() {
|
|
@Override
|
|
public void onResponse(Call<List<Digimon>> call, Response<List<Digimon>> response) {
|
|
if (response.isSuccessful() && response.body() != null) {
|
|
// Criar o adapter com a lista que veio da internet
|
|
adapter = new DigimonAdapter(MainActivity.this, response.body());
|
|
rv.setAdapter(adapter);
|
|
|
|
// Configurar o filtro da barra de pesquisa só depois de termos os dados
|
|
configurarPesquisa();
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onFailure(Call<List<Digimon>> call, Throwable t) {
|
|
Toast.makeText(MainActivity.this, "Erro de rede!", Toast.LENGTH_SHORT).show();
|
|
}
|
|
});
|
|
}
|
|
|
|
private void configurarPesquisa() {
|
|
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
|
|
@Override
|
|
public boolean onQueryTextSubmit(String query) {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public boolean onQueryTextChange(String newText) {
|
|
// Filtra a lista enquanto o utilizador escreve
|
|
if (adapter != null) {
|
|
adapter.filtrar(newText);
|
|
}
|
|
return true;
|
|
}
|
|
});
|
|
}
|
|
} |