Search in sources :

Example 1 with RideFiltersForJson

use of br.ufrj.caronae.models.modelsforjson.RideFiltersForJson in project caronae-android by caronae.

the class MainAct method updateFilterCard.

public static void updateFilterCard(Context context, String filtersJsonString) {
    if (!filtersJsonString.equals(SharedPref.MISSING_PREF)) {
        RideFiltersForJson filters = loadFilters(filtersJsonString);
        String resumeLocation = filters.getResumeLocation();
        String center = filters.getCenter();
        String campus = filters.getCampus();
        String zone = filters.getZone();
        String filtering = "Filtrando: ";
        SpannableString cardText;
        if (!resumeLocation.equals("")) {
            if (center.equals("")) {
                if (campus.equals("")) {
                    center = "Todos os Campi";
                } else {
                    center = campus;
                }
                if (center.equals("Todos os Campi")) {
                    cardText = new SpannableString(filtering + resumeLocation);
                } else if (resumeLocation.equals("Todos os Bairros")) {
                    cardText = new SpannableString(filtering + center);
                } else {
                    cardText = new SpannableString(filtering + center + ", " + resumeLocation);
                }
                cardText.setSpan(new StyleSpan(Typeface.BOLD), 0, filtering.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
                filterText.setText(cardText);
            }
        } else if (!zone.equals("")) {
            if (center.equals("")) {
                if (campus.equals("")) {
                    center = "Todos os Campi";
                } else {
                    center = campus;
                }
                if (center.equals("Todos os Campi")) {
                    cardText = new SpannableString(filtering + zone);
                } else if (zone.equals("Todos os Bairros")) {
                    cardText = new SpannableString(filtering + center);
                } else {
                    cardText = new SpannableString(filtering + center + ", " + zone);
                }
                cardText.setSpan(new StyleSpan(Typeface.BOLD), 0, filtering.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
                filterText.setText(cardText);
            }
        }
        showFilterCard(context);
    }
}
Also used : SpannableString(android.text.SpannableString) RideFiltersForJson(br.ufrj.caronae.models.modelsforjson.RideFiltersForJson) StyleSpan(android.text.style.StyleSpan) SpannableString(android.text.SpannableString)

Example 2 with RideFiltersForJson

use of br.ufrj.caronae.models.modelsforjson.RideFiltersForJson 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;
    }
}
Also used : RideForJson(br.ufrj.caronae.models.modelsforjson.RideForJson) RideForJsonDeserializer(br.ufrj.caronae.models.modelsforjson.RideForJsonDeserializer) RideFiltersForJson(br.ufrj.caronae.models.modelsforjson.RideFiltersForJson) Gson(com.google.gson.Gson) BindView(butterknife.BindView) View(android.view.View) Date(java.util.Date) AllRidesFragmentPagerAdapter(br.ufrj.caronae.adapters.AllRidesFragmentPagerAdapter) RideOfferComparatorByDateAndTime(br.ufrj.caronae.comparators.RideOfferComparatorByDateAndTime) Iterator(java.util.Iterator) ArrayList(java.util.ArrayList) List(java.util.List) SimpleDateFormat(java.text.SimpleDateFormat) Snackbar(android.support.design.widget.Snackbar)

Example 3 with RideFiltersForJson

use of br.ufrj.caronae.models.modelsforjson.RideFiltersForJson 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;
        }
    }
}
Also used : RideForJson(br.ufrj.caronae.models.modelsforjson.RideForJson) RideForJsonDeserializer(br.ufrj.caronae.models.modelsforjson.RideForJsonDeserializer) RideFiltersForJson(br.ufrj.caronae.models.modelsforjson.RideFiltersForJson) ArrayList(java.util.ArrayList) Gson(com.google.gson.Gson) Date(java.util.Date) RideOfferComparatorByDateAndTime(br.ufrj.caronae.comparators.RideOfferComparatorByDateAndTime) Iterator(java.util.Iterator) ArrayList(java.util.ArrayList) List(java.util.List) SimpleDateFormat(java.text.SimpleDateFormat)

Example 4 with RideFiltersForJson

use of br.ufrj.caronae.models.modelsforjson.RideFiltersForJson in project caronae-android by caronae.

the class RideFilterFrag method loadLastFilters.

private void loadLastFilters(String lastFilters) {
    RideFiltersForJson rideFilters = new Gson().fromJson(lastFilters, RideFiltersForJson.class);
    neighborhoods = rideFilters.getLocation();
    location_et.setText(rideFilters.getResumeLocation());
    center_et.setText(rideFilters.getCenter());
    campi_et.setText(rideFilters.getCampus());
}
Also used : RideFiltersForJson(br.ufrj.caronae.models.modelsforjson.RideFiltersForJson) Gson(com.google.gson.Gson)

Example 5 with RideFiltersForJson

use of br.ufrj.caronae.models.modelsforjson.RideFiltersForJson in project caronae-android by caronae.

the class RideFilterFrag method search.

@OnClick(R.id.search_bt)
public void search() {
    Log.e("CENTRO", "campi: " + center);
    RideFiltersForJson rideFilters;
    String lastRideFilters;
    if (center_et.getText().toString().isEmpty() && location_et.getText().toString().isEmpty()) {
        Intent intent = new Intent(getActivity(), StartAct.class);
        startActivity(intent);
    } else {
        if (center.equals("Cidade Universitária")) {
            center = "";
        }
        if (campi.equals(Util.getCampi()[0]) || center_et.getText().toString().isEmpty())
            campi = "Todos os Campi";
        Log.e("CENTRO", "campi: " + center);
        rideFilters = new RideFiltersForJson(location, center, campi, zone, resumeLocation);
        lastRideFilters = new Gson().toJson(rideFilters);
        SharedPref.saveLastFiltersPref(lastRideFilters);
        SharedPref.saveFilterPref(lastRideFilters);
        MainAct.updateFilterCard(getContext(), lastRideFilters);
        Intent intent = new Intent(getActivity(), StartAct.class);
        startActivity(intent);
    }
}
Also used : RideFiltersForJson(br.ufrj.caronae.models.modelsforjson.RideFiltersForJson) Gson(com.google.gson.Gson) Intent(android.content.Intent) OnClick(butterknife.OnClick)

Aggregations

RideFiltersForJson (br.ufrj.caronae.models.modelsforjson.RideFiltersForJson)6 Gson (com.google.gson.Gson)4 SpannableString (android.text.SpannableString)2 StyleSpan (android.text.style.StyleSpan)2 RideOfferComparatorByDateAndTime (br.ufrj.caronae.comparators.RideOfferComparatorByDateAndTime)2 RideForJson (br.ufrj.caronae.models.modelsforjson.RideForJson)2 RideForJsonDeserializer (br.ufrj.caronae.models.modelsforjson.RideForJsonDeserializer)2 SimpleDateFormat (java.text.SimpleDateFormat)2 ArrayList (java.util.ArrayList)2 Date (java.util.Date)2 Iterator (java.util.Iterator)2 List (java.util.List)2 Intent (android.content.Intent)1 Snackbar (android.support.design.widget.Snackbar)1 View (android.view.View)1 AllRidesFragmentPagerAdapter (br.ufrj.caronae.adapters.AllRidesFragmentPagerAdapter)1 BindView (butterknife.BindView)1 OnClick (butterknife.OnClick)1