use of br.ufrj.caronae.models.modelsforjson.RideForJsonDeserializer 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;
}
}
use of br.ufrj.caronae.models.modelsforjson.RideForJsonDeserializer in project caronae-android by caronae.
the class AllRidesListFrag method refreshRideList.
void refreshRideList(final int pageNumber) {
final long bytesSoFar = TrafficStats.getUidRxBytes(Process.myUid());
String going = null;
if (pageIdentifier == AllRidesFragmentPagerAdapter.PAGE_GOING)
going = "1";
else
going = "0";
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(pageNumber + "", going, neighborhoods, zone, hub, "", campus).enqueue(new retrofit2.Callback<RideForJsonDeserializer>() {
@Override
public void onResponse(Call<RideForJsonDeserializer> call, Response<RideForJsonDeserializer> response) {
totalBytesConsumed = totalBytesConsumed + TrafficStats.getUidRxBytes(Process.myUid()) - bytesSoFar;
Log.e("CONSUMPTION", "Bytes Consumed: " + totalBytesConsumed);
switch(pageIdentifier) {
case 0:
Log.e("CONSUMPTION", "Tamanho da lista " + goingRides.size());
break;
case 1:
Log.e("CONSUMPTION", "Tamanho da lista " + notGoingRides.size());
break;
}
if (response.isSuccessful()) {
if (pageCounter == FIRST_PAGE_TO_LOAD) {
goingRides = new ArrayList<>();
notGoingRides = new ArrayList<>();
}
RideForJsonDeserializer data = response.body();
List<RideForJson> rideOffers = data.getData();
if (rideOffers != null && !rideOffers.isEmpty()) {
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);
}
}
}
}
Collections.sort(goingRides, new RideOfferComparatorByDateAndTime());
Collections.sort(notGoingRides, new RideOfferComparatorByDateAndTime());
}
if (pageIdentifier == AllRidesFragmentPagerAdapter.PAGE_GOING) {
if (goingRides == null || goingRides.isEmpty()) {
} else {
adapter.makeList(goingRides);
scrollListener.resetState();
}
} else {
if (notGoingRides == null || notGoingRides.isEmpty()) {
} else {
adapter.makeList(notGoingRides);
scrollListener.resetState();
}
}
refreshLayout.setRefreshing(false);
} else {
Util.treatResponseFromServer(response);
Util.toast(R.string.frag_allrides_errorGetRides);
refreshLayout.setRefreshing(false);
Log.e("listAllRides", response.message());
}
scrollListener.resetState();
}
@Override
public void onFailure(Call<RideForJsonDeserializer> call, Throwable t) {
refreshLayout.setRefreshing(false);
Log.e("listAllRides", t.getMessage());
scrollListener.resetState();
}
});
if (filter != null) {
switch(pageNumber) {
case 0:
if (filteredGoingList.size() <= 8) {
loadOneMorePage();
}
if (filteredNotGoingList.size() <= 8) {
loadOneMorePage();
}
break;
case 1:
if (filteredGoingList.size() <= 8) {
loadOneMorePage();
}
if (filteredNotGoingList.size() <= 8) {
loadOneMorePage();
}
break;
}
}
}
Aggregations