use of br.ufrj.caronae.adapters.AllRidesFragmentPagerAdapter in project caronae-android by caronae.
the class AllRidesFrag method listAllRides.
private void listAllRides(final int pageNum) {
final Snackbar snackbar = makeNoConexionSnack();
progressBar2.setVisibility(View.VISIBLE);
if (isAdded() && (getActivity() != null)) {
String going = null;
String neighborhoods = null;
String zone = null;
String hub = null;
String campus = null;
String filtersJsonString = SharedPref.getFiltersPref();
if (!filtersJsonString.equals(SharedPref.MISSING_PREF)) {
RideFiltersForJson rideFilters = new Gson().fromJson(filtersJsonString, RideFiltersForJson.class);
neighborhoods = rideFilters.getLocation();
if (!rideFilters.getCampus().equals("Todos os Campi")) {
hub = rideFilters.getCenter();
campus = rideFilters.getCampus();
}
zone = rideFilters.getZone();
}
CaronaeAPI.service(getContext()).listAllRides(pageNum + "", going, neighborhoods, zone, hub, "", campus).enqueue(new Callback<RideForJsonDeserializer>() {
@Override
public void onResponse(Call<RideForJsonDeserializer> call, Response<RideForJsonDeserializer> response) {
if (response.isSuccessful()) {
progressBar2.setVisibility(View.GONE);
RideForJsonDeserializer data = response.body();
List<RideForJson> rideOffers = data.getData();
if (rideOffers != null && !rideOffers.isEmpty()) {
Collections.sort(rideOffers, new RideOfferComparatorByDateAndTime());
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/MM/yyyy", Locale.US);
Date todayDate = new Date();
String todayString = simpleDateFormat.format(todayDate);
simpleDateFormat = new SimpleDateFormat("HH:mm", Locale.US);
String time = simpleDateFormat.format(todayDate);
Iterator<RideForJson> it = rideOffers.iterator();
while (it.hasNext()) {
RideForJson rideOffer = it.next();
if (Util.formatBadDateWithYear(rideOffer.getDate()).equals(todayString) && Util.formatTime(rideOffer.getTime()).compareTo(time) < 0)
it.remove();
else {
rideOffer.setDbId(rideOffer.getId().intValue());
if (rideOffer.isGoing())
if (!checkIfRideIsInList(goingRides, rideOffer))
goingRides.add(rideOffer);
else if (!checkIfRideIsInList(notGoingRides, rideOffer))
notGoingRides.add(rideOffer);
}
}
}
if (isAdded()) {
viewPager.setAdapter(new AllRidesFragmentPagerAdapter(getChildFragmentManager(), goingRides, notGoingRides, App.getInst().getResources().getStringArray(R.array.tab_tags)));
tabLayout.setupWithViewPager(viewPager);
if (PAGE_WAS_GOING)
viewPager.setCurrentItem(0);
else
viewPager.setCurrentItem(1);
tabLayout.setBackground(ContextCompat.getDrawable(App.getInst(), R.drawable.transparency_gradient_top_botton));
configureTabIndicators();
}
} else {
Util.treatResponseFromServer(response);
progressBar2.setVisibility(View.GONE);
Log.e("listAllRides", response.message());
}
}
@Override
public void onFailure(Call<RideForJsonDeserializer> call, Throwable t) {
progressBar2.setVisibility(View.GONE);
Log.e("listAllRides", t.getMessage());
snackbar.setAction("CONECTAR", new View.OnClickListener() {
@Override
public void onClick(View v) {
listAllRides(pageNum);
}
});
}
});
} else {
Util.toast("Activity not atached");
return;
}
}
Aggregations