Search in sources :

Example 1 with ActiveRide

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

the class RideOfferAct method configureActivityWithRide.

private void configureActivityWithRide(final RideForJson rideWithUsers, boolean isFull) {
    final boolean requested = getIntent().getBooleanExtra("requested", false);
    if (rideWithUsers == null) {
        Util.toast(getString(R.string.act_activeride_rideNUll));
        finish();
    }
    AllRidesFrag.setPageThatWas(rideWithUsers.isGoing());
    final User driver = rideWithUsers.getDriver();
    final boolean isDriver = driver.getDbId() == App.getUser().getDbId();
    int color = Util.getColorbyZone(rideWithUsers.getZone());
    join_bt.setBackgroundColor(color);
    location_dt.setTextColor(color);
    final String location;
    if (rideWithUsers.isGoing())
        location = rideWithUsers.getNeighborhood() + " ➜ " + rideWithUsers.getHub();
    else
        location = rideWithUsers.getHub() + " ➜ " + rideWithUsers.getNeighborhood();
    String profilePicUrl = driver.getProfilePicUrl();
    if (profilePicUrl == null || profilePicUrl.isEmpty()) {
        Picasso.with(this.getApplicationContext()).load(R.drawable.user_pic).into(user_pic);
    } else {
        Picasso.with(this.getApplicationContext()).load(profilePicUrl).placeholder(R.drawable.user_pic).error(R.drawable.user_pic).transform(new RoundedTransformation()).into(user_pic);
    }
    user_pic.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            if (!isDriver) {
                // dont allow user to open own profile
                Intent intent = new Intent(getApplicationContext(), ProfileAct.class);
                intent.putExtra("user", new Gson().toJson(driver));
                intent.putExtra("from", "rideoffer");
                startActivity(intent);
            }
        }
    });
    location_dt.setText(location);
    name_dt.setText(driver.getName());
    profile_dt.setText(driver.getProfile());
    if (rideWithUsers.getRoute().equals("")) {
        way_dt.setText("- - -");
    } else {
        way_dt.setText(rideWithUsers.getRoute());
    }
    if (rideWithUsers.getPlace().equals("")) {
        place_dt.setText("- - -");
    } else {
        place_dt.setText(rideWithUsers.getPlace());
    }
    course_dt.setText(driver.getCourse());
    if (rideWithUsers.isGoing())
        time_dt.setText(getString(R.string.arrivingAt, Util.formatTime(rideWithUsers.getTime())));
    else
        time_dt.setText(getString(R.string.leavingAt, Util.formatTime(rideWithUsers.getTime())));
    time_dt.setTextColor(color);
    date_dt.setText(Util.formatBadDateWithoutYear(rideWithUsers.getDate()));
    date_dt.setTextColor(color);
    if (rideWithUsers.getDescription().equals("")) {
        description_dt.setText("- - -");
    } else {
        description_dt.setText(rideWithUsers.getDescription());
    }
    if (isDriver) {
        join_bt.setVisibility(View.GONE);
    } else {
        if (requested) {
            join_bt.setVisibility(View.GONE);
            requested_dt.setVisibility(View.VISIBLE);
        } else {
            if (isFull) {
                join_bt.setText("CARONA CHEIA");
                join_bt.setClickable(false);
            } else {
                join_bt.setClickable(true);
                final Context context = this;
                join_bt.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View view) {
                        List<ActiveRide> list = ActiveRide.find(ActiveRide.class, "date = ? and going = ?", rideWithUsers.getDate(), rideWithUsers.isGoing() ? "1" : "0");
                        if (list != null && !list.isEmpty()) {
                            Util.toast(getString(R.string.act_rideOffer_rideConflict));
                            return;
                        }
                        com.rey.material.app.Dialog.Builder builder = new SimpleDialog.Builder(R.style.SlideInDialog) {

                            @Override
                            protected void onBuildDone(com.rey.material.app.Dialog dialog) {
                                dialog.layoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
                                dialog.getWindow().getAttributes().windowAnimations = R.style.SlideInRightDialog;
                            }

                            @Override
                            public void onPositiveActionClicked(com.rey.material.app.DialogFragment fragment) {
                                final ProgressDialog pd = ProgressDialog.show(context, "", getString(R.string.wait), true, true);
                                CaronaeAPI.service(context).requestJoin(String.valueOf(rideWithUsers.getDbId())).enqueue(new Callback<ResponseBody>() {

                                    @Override
                                    public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
                                        if (response.isSuccessful()) {
                                            RideRequestSent rideRequest = new RideRequestSent(rideWithUsers.getDbId(), rideWithUsers.isGoing(), rideWithUsers.getDate());
                                            rideRequest.save();
                                            createChatAssets(rideWithUsers);
                                            join_bt.startAnimation(getAnimationForSendButton());
                                            requested_dt.startAnimation(getAnimationForResquestedText());
                                            App.getBus().post(rideRequest);
                                            pd.dismiss();
                                            Util.snack(coordinatorLayout, getResources().getString(R.string.requestSent));
                                        } else {
                                            Util.treatResponseFromServer(response);
                                            pd.dismiss();
                                            Util.snack(coordinatorLayout, getResources().getString(R.string.errorRequestSent));
                                            Log.e("requestJoin", response.message());
                                        }
                                    }

                                    @Override
                                    public void onFailure(Call<ResponseBody> call, Throwable t) {
                                        pd.dismiss();
                                        Util.snack(coordinatorLayout, getResources().getString(R.string.requestSent));
                                        Log.e("requestJoin", t.getMessage());
                                    }
                                });
                                super.onPositiveActionClicked(fragment);
                            }

                            @Override
                            public void onNegativeActionClicked(com.rey.material.app.DialogFragment fragment) {
                                super.onNegativeActionClicked(fragment);
                            }
                        };
                        ((SimpleDialog.Builder) builder).message(getString(R.string.act_rideOffer_requestWarn)).title(getString(R.string.attention)).positiveAction(getString(R.string.ok)).negativeAction(getString(R.string.cancel));
                        com.rey.material.app.DialogFragment fragment = com.rey.material.app.DialogFragment.newInstance(builder);
                        fragment.show(getSupportFragmentManager(), "a");
                    }
                });
            }
        }
    }
    configureShareButton();
}
Also used : User(br.ufrj.caronae.models.User) Gson(com.google.gson.Gson) ProgressDialog(android.app.ProgressDialog) SimpleDialog(com.rey.material.app.SimpleDialog) List(java.util.List) ActiveRide(br.ufrj.caronae.models.ActiveRide) Context(android.content.Context) Call(retrofit2.Call) Intent(android.content.Intent) ImageView(android.widget.ImageView) BindView(butterknife.BindView) View(android.view.View) CardView(android.support.v7.widget.CardView) TextView(android.widget.TextView) ScrollView(android.widget.ScrollView) Response(retrofit2.Response) Callback(retrofit2.Callback) RideRequestSent(br.ufrj.caronae.models.RideRequestSent) RoundedTransformation(br.ufrj.caronae.RoundedTransformation)

Example 2 with ActiveRide

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

the class MyRidesListFrag method getActiveRides.

private void getActiveRides() {
    getActivity().runOnUiThread(new Runnable() {

        @Override
        public void run() {
            CaronaeAPI.service(getContext()).getMyActiveRides().enqueue(new Callback<List<RideForJson>>() {

                @Override
                public void onResponse(Call<List<RideForJson>> call, Response<List<RideForJson>> response) {
                    if (response.isSuccessful()) {
                        List<RideForJson> rideWithUsersList = response.body();
                        if (rideWithUsersList == null || rideWithUsersList.isEmpty()) {
                            MyRidesFrag.hideProgressBar();
                            myRidesList.setAdapter(new MyActiveRidesAdapter(new ArrayList<RideForJson>(), (MainAct) getActivity()));
                            myRidesList.setHasFixedSize(true);
                            myRidesList.setLayoutManager(new LinearLayoutManager(getActivity()));
                            new LoadRides().execute();
                            return;
                        }
                        ActiveRide.deleteAll(ActiveRide.class);
                        // subscribe to ride id topic
                        for (RideForJson rideWithUsers : rideWithUsersList) {
                            int rideId = rideWithUsers.getId().intValue();
                            rideWithUsers.setDbId(rideId);
                            FirebaseTopicsHandler.subscribeFirebaseTopic(rideId + "");
                            new ActiveRide(rideWithUsers.getDbId(), rideWithUsers.isGoing(), rideWithUsers.getDate()).save();
                        }
                        Collections.sort(rideWithUsersList, new RideOfferComparatorByDateAndTime());
                        addAllActiveRidesToList(rideWithUsersList);
                        MyRidesFrag.hideProgressBar();
                    } else {
                        Util.treatResponseFromServer(response);
                        MyRidesFrag.hideProgressBar();
                        norides_tv.setVisibility(View.VISIBLE);
                        Util.toast(R.string.frag_myactiverides_errorGetActiveRides);
                        Log.e("getMyActiveRides", response.message());
                    }
                    new LoadRides().execute();
                }

                @Override
                public void onFailure(Call<List<RideForJson>> call, Throwable t) {
                    MyRidesFrag.hideProgressBar();
                    norides_tv.setVisibility(View.VISIBLE);
                    Util.toast(R.string.frag_myactiverides_errorGetActiveRides);
                    new LoadRides().execute();
                    Log.e("getMyActiveRides", t.getMessage());
                }
            });
        }
    });
}
Also used : Call(retrofit2.Call) RideForJson(br.ufrj.caronae.models.modelsforjson.RideForJson) MyActiveRidesAdapter(br.ufrj.caronae.adapters.MyActiveRidesAdapter) ArrayList(java.util.ArrayList) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) Response(retrofit2.Response) Callback(retrofit2.Callback) RideOfferComparatorByDateAndTime(br.ufrj.caronae.comparators.RideOfferComparatorByDateAndTime) MainAct(br.ufrj.caronae.acts.MainAct) ActiveRide(br.ufrj.caronae.models.ActiveRide)

Aggregations

ActiveRide (br.ufrj.caronae.models.ActiveRide)2 Call (retrofit2.Call)2 Callback (retrofit2.Callback)2 Response (retrofit2.Response)2 ProgressDialog (android.app.ProgressDialog)1 Context (android.content.Context)1 Intent (android.content.Intent)1 CardView (android.support.v7.widget.CardView)1 LinearLayoutManager (android.support.v7.widget.LinearLayoutManager)1 View (android.view.View)1 ImageView (android.widget.ImageView)1 ScrollView (android.widget.ScrollView)1 TextView (android.widget.TextView)1 RoundedTransformation (br.ufrj.caronae.RoundedTransformation)1 MainAct (br.ufrj.caronae.acts.MainAct)1 MyActiveRidesAdapter (br.ufrj.caronae.adapters.MyActiveRidesAdapter)1 RideOfferComparatorByDateAndTime (br.ufrj.caronae.comparators.RideOfferComparatorByDateAndTime)1 RideRequestSent (br.ufrj.caronae.models.RideRequestSent)1 User (br.ufrj.caronae.models.User)1 RideForJson (br.ufrj.caronae.models.modelsforjson.RideForJson)1