package com.yoesuv.demoretrofit;
import android.app.ProgressDialog;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.Arrays;
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 ListView listView_tempat;
private ArrayAdapter<String> adapter;
private ProgressDialog pDialog;
private String[] dataGambar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
if(getSupportActionBar()!=null){
getSupportActionBar().setElevation(5);
}
listView_tempat = (ListView) findViewById(R.id.listView_tempat);
adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1);
pDialog = new ProgressDialog(this);
loadTempat();
listView_tempat.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent i = new Intent(view.getContext(), MainImage.class);
i.putExtra(MainImage.EXTRA_NAMA,adapter.getItem(position));
i.putExtra(MainImage.EXTRA_IMAGE, dataGambar[position]);
startActivity(i);
}
});
}
private void loadTempat(){
pDialog.setMessage("Please Wait...");
pDialog.setCancelable(false);
pDialog.setCanceledOnTouchOutside(false);
pDialog.show();
Retrofit retrofit = new Retrofit.Builder().baseUrl(getResources().getString(R.string.url_json))
.addConverterFactory(GsonConverterFactory.create()).build();
DataInterface dataInterface = retrofit.create(DataInterface.class);
Call<List<DataTempat>> callData = dataInterface.callTempat();
callData.enqueue(new Callback<List<DataTempat>>() {
@Override
public void onResponse(Call<List<DataTempat>> call, Response<List<DataTempat>> response) {
if (response.isSuccessful()) {
int i = 0;
dataGambar = new String[response.body().size()];
for (DataTempat tempat : response.body()) {
adapter.add(tempat.getNama());
dataGambar[i] = tempat.getGambar();
i++;
}
listView_tempat.setAdapter(adapter);
pDialog.dismiss();
}
}
@Override
public void onFailure(Call<List<DataTempat>> call, Throwable t) {
}
});
}
}