Search in sources :

Example 1 with Ride

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

the class Util method createChatAssets.

public static void createChatAssets(Ride ride, Context context) {
    Ride rideWithUsers = ride;
    int color = 0, bgRes = 0;
    if (rideWithUsers.getZone().equals("Centro")) {
        color = ContextCompat.getColor(context, R.color.zone_centro);
        bgRes = R.drawable.bg_bt_raise_zone_centro;
    }
    if (rideWithUsers.getZone().equals("Zona Sul")) {
        color = ContextCompat.getColor(context, R.color.zone_sul);
        bgRes = R.drawable.bg_bt_raise_zone_sul;
    }
    if (rideWithUsers.getZone().equals("Zona Oeste")) {
        color = ContextCompat.getColor(context, R.color.zone_oeste);
        bgRes = R.drawable.bg_bt_raise_zone_oeste;
    }
    if (rideWithUsers.getZone().equals("Zona Norte")) {
        color = ContextCompat.getColor(context, R.color.zone_norte);
        bgRes = R.drawable.bg_bt_raise_zone_norte;
    }
    if (rideWithUsers.getZone().equals("Baixada")) {
        color = ContextCompat.getColor(context, R.color.zone_baixada);
        bgRes = R.drawable.bg_bt_raise_zone_baixada;
    }
    if (rideWithUsers.getZone().equals("Grande Niterói")) {
        color = ContextCompat.getColor(context, R.color.zone_niteroi);
        bgRes = R.drawable.bg_bt_raise_zone_niteroi;
    }
    if (rideWithUsers.getZone().equals("Outros")) {
        color = ContextCompat.getColor(context, R.color.zone_outros);
        bgRes = R.drawable.bg_bt_raise_zone_outros;
    }
    final String location;
    if (rideWithUsers.isGoing())
        location = rideWithUsers.getNeighborhood() + " ➜ " + rideWithUsers.getHub();
    else
        location = rideWithUsers.getHub() + " ➜ " + rideWithUsers.getNeighborhood();
    final int finalColor = color, finalBgRes = bgRes;
    List<ChatAssets> l = ChatAssets.find(ChatAssets.class, "ride_id = ?", rideWithUsers.getDbId() + "");
    if (l == null || l.isEmpty())
        new ChatAssets(rideWithUsers.getDbId() + "", location, finalColor, finalBgRes, Util.formatBadDateWithoutYear(rideWithUsers.getDate()), Util.formatTime(rideWithUsers.getTime())).save();
}
Also used : ChatAssets(br.ufrj.caronae.models.ChatAssets) Ride(br.ufrj.caronae.models.Ride) Paint(android.graphics.Paint)

Example 2 with Ride

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

the class RideOfferFrag method sendBt.

@OnClick(R.id.send_bt)
public void sendBt() {
    if (!checkCarOwnerDialog())
        return;
    String neighborhood = neighborhood_et.getText().toString();
    String hub = center_et.getText().toString();
    if (hub.isEmpty() || hub.equals("Centro Universitário") || neighborhood.isEmpty() || neighborhood.equals("Bairro")) {
        Util.toast(R.string.frag_rideoffer_nullLocation);
        return;
    }
    String place = place_et.getText().toString();
    String way = way_et.getText().toString();
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/MM/yyyy", Locale.US);
    String etDateString = date_et.getText().toString();
    Date todayDate = new Date();
    String todayString = simpleDateFormat.format(todayDate);
    try {
        todayDate = simpleDateFormat.parse(todayString);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    if (etDateString.isEmpty()) {
        Util.toast(getString(R.string.frag_rideoffer_nullDate));
        return;
    } else {
        try {
            Date etDate = simpleDateFormat.parse(etDateString);
            if (etDate.before(todayDate)) {
                Util.toast(getActivity().getString(R.string.frag_rideoffersearch_pastdate));
                return;
            }
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
    String time = time_et.getText().toString();
    if (time.isEmpty()) {
        Util.toast(getString(R.string.frag_rideoffer_nullTime));
        return;
    }
    String slots = slots_et.getSelectedItemPosition() + 1 + "";
    String description = description_et.getText().toString();
    if (hub.isEmpty()) {
        if (going) {
            center_et.setText(Util.getFundaoCenters()[0]);
            hub = center_et.getText().toString();
        } else {
            center_et.setText(Util.getFundaoHubs()[0]);
            hub = center_et.getText().toString();
        }
    }
    boolean routine = routine_cb.isChecked();
    String weekDays = "", repeatsUntil = "";
    if (routine) {
        weekDays = monday_cb.isChecked() ? "1," : "";
        weekDays += tuesday_cb.isChecked() ? "2," : "";
        weekDays += wednesday_cb.isChecked() ? "3," : "";
        weekDays += thursday_cb.isChecked() ? "4," : "";
        weekDays += friday_cb.isChecked() ? "5," : "";
        weekDays += saturday_cb.isChecked() ? "6," : "";
        weekDays += sunday_cb.isChecked() ? "7," : "";
        if (weekDays.isEmpty()) {
            Util.toast(R.string.frag_rideOffer_noRoutineDays);
            return;
        }
        weekDays = weekDays.substring(0, weekDays.length() - 1);
        int months = 0;
        int id2 = radioGroup2.getCheckedRadioButtonId();
        switch(id2) {
            case R.id.r2months_rb:
                months = 2;
                break;
            case R.id.r3months_rb:
                months = 3;
                break;
            case R.id.r4months_rb:
                months = 4;
                break;
        }
        Calendar c = Calendar.getInstance();
        try {
            c.setTime(simpleDateFormat.parse(etDateString));
        } catch (ParseException e) {
            e.printStackTrace();
        }
        c.add(Calendar.MONTH, months);
        repeatsUntil = simpleDateFormat.format(c.getTime());
    }
    String campus = campi_et.getText().toString();
    final Ride ride = new Ride(zone, neighborhood, place, way, etDateString, time, slots, hub, campus, description, going, routine, weekDays, repeatsUntil);
    checkAndCreateRide(ride);
    String lastRideOffer = new Gson().toJson(ride);
    if (going)
        SharedPref.saveLastRideGoingPref(lastRideOffer);
    else
        SharedPref.saveLastRideNotGoingPref(lastRideOffer);
}
Also used : Calendar(java.util.Calendar) Gson(com.google.gson.Gson) ParseException(java.text.ParseException) SimpleDateFormat(java.text.SimpleDateFormat) Date(java.util.Date) Ride(br.ufrj.caronae.models.Ride) OnClick(butterknife.OnClick)

Example 3 with Ride

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

the class RideOfferFrag method loadLastRide.

private void loadLastRide(String lastRideOffer) {
    Ride ride = new Gson().fromJson(lastRideOffer, Ride.class);
    zone = ride.getZone();
    neighborhood_et.setText(ride.getNeighborhood());
    place_et.setText(ride.getPlace());
    way_et.setText(ride.getRoute());
    slots_et.setSelection(Integer.parseInt(ride.getSlots()) - 1);
    center_et.setText(ride.getHub());
    description_et.setText(ride.getDescription());
    boolean isRoutine = ride.isRoutine();
    routine_cb.setChecked(isRoutine);
    if (isRoutine) {
        days_lo.setVisibility(routine_cb.isChecked() ? View.VISIBLE : View.GONE);
        monday_cb.setChecked(ride.getWeekDays().contains("1"));
        tuesday_cb.setChecked(ride.getWeekDays().contains("2"));
        wednesday_cb.setChecked(ride.getWeekDays().contains("3"));
        thursday_cb.setChecked(ride.getWeekDays().contains("4"));
        friday_cb.setChecked(ride.getWeekDays().contains("5"));
        saturday_cb.setChecked(ride.getWeekDays().contains("6"));
        sunday_cb.setChecked(ride.getWeekDays().contains("7"));
    }
}
Also used : Gson(com.google.gson.Gson) Ride(br.ufrj.caronae.models.Ride)

Example 4 with Ride

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

the class ActiveRideAct method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_active_ride);
    ButterKnife.bind(this);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    final ActionBar ab = getSupportActionBar();
    if (ab != null) {
        ab.setDisplayHomeAsUpEnabled(true);
    }
    rideWithUsers = getIntent().getExtras().getParcelable("ride");
    if (rideWithUsers == null) {
        Util.toast(getString(R.string.act_activeride_rideNUll));
        finish();
        return;
    }
    final User driver = rideWithUsers.getDriver();
    final boolean isDriver = driver.getDbId() == App.getUser().getDbId();
    int color = 0, colorPressed = 0, bgRes = 0;
    if (rideWithUsers.getZone().equals("Centro")) {
        color = ContextCompat.getColor(this, R.color.zone_centro);
        colorPressed = ContextCompat.getColor(this, R.color.light_zone_centro_transparency);
        bgRes = R.drawable.bg_bt_raise_zone_centro;
    }
    if (rideWithUsers.getZone().equals("Zona Sul")) {
        color = ContextCompat.getColor(this, R.color.zone_sul);
        colorPressed = ContextCompat.getColor(this, R.color.light_zone_sul_transparency);
        bgRes = R.drawable.bg_bt_raise_zone_sul;
    }
    if (rideWithUsers.getZone().equals("Zona Oeste")) {
        color = ContextCompat.getColor(this, R.color.zone_oeste);
        colorPressed = ContextCompat.getColor(this, R.color.light_zone_oeste_transparency);
        bgRes = R.drawable.bg_bt_raise_zone_oeste;
    }
    if (rideWithUsers.getZone().equals("Zona Norte")) {
        color = ContextCompat.getColor(this, R.color.zone_norte);
        colorPressed = ContextCompat.getColor(this, R.color.light_zone_norte_transparency);
        bgRes = R.drawable.bg_bt_raise_zone_norte;
    }
    if (rideWithUsers.getZone().equals("Baixada")) {
        color = ContextCompat.getColor(this, R.color.zone_baixada);
        colorPressed = ContextCompat.getColor(this, R.color.light_zone_baixada_transparency);
        bgRes = R.drawable.bg_bt_raise_zone_baixada;
    }
    if (rideWithUsers.getZone().equals("Grande Niterói")) {
        color = ContextCompat.getColor(this, R.color.zone_niteroi);
        colorPressed = ContextCompat.getColor(this, R.color.light_zone_niteroi_transparency);
        bgRes = R.drawable.bg_bt_raise_zone_niteroi;
    }
    if (rideWithUsers.getZone().equals("Outros")) {
        color = ContextCompat.getColor(this, R.color.zone_outros);
        colorPressed = ContextCompat.getColor(this, R.color.light_gray);
        bgRes = R.drawable.bg_bt_raise_zone_outros;
    }
    lay1.setBackgroundColor(color);
    toolbar.setBackgroundColor(color);
    chat_bt.setColorNormal(color);
    chat_bt.setColorPressed(colorPressed);
    finish_bt.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).load(R.drawable.user_pic).into(user_pic);
    } else {
        Picasso.with(this).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(ActiveRideAct.this, ProfileAct.class);
                intent.putExtra("user", new Gson().toJson(driver));
                intent.putExtra("from", "activeRides");
                startActivity(intent);
            }
        }
    });
    location_tv.setText(location);
    name_tv.setText(driver.getName());
    profile_tv.setText(driver.getProfile());
    if (rideWithUsers.getRoute().equals("")) {
        way_tv.setVisibility(View.GONE);
        way_text_tv.setVisibility(View.GONE);
    } else {
        way_tv.setText(rideWithUsers.getRoute());
    }
    if (rideWithUsers.getPlace().equals("")) {
        place_text_tv.setVisibility(View.GONE);
        place_tv.setVisibility(View.GONE);
    } else {
        place_tv.setText(rideWithUsers.getPlace());
    }
    phoneNumber_tv.setText(driver.getPhoneNumber());
    course_tv.setText(driver.getCourse());
    if (rideWithUsers.isGoing())
        time_tv.setText(getString(R.string.arrivingAt, Util.formatTime(rideWithUsers.getTime())));
    else
        time_tv.setText(getString(R.string.leavingAt, Util.formatTime(rideWithUsers.getTime())));
    time_tv.setTextColor(color);
    date_tv.setText(Util.formatBadDateWithoutYear(rideWithUsers.getDate()));
    date_tv.setTextColor(color);
    carModel_tv.setText(driver.getCarModel());
    carColor_tv.setText(driver.getCarColor());
    carPlate_tv.setText(driver.getCarPlate());
    if (rideWithUsers.getDescription().equals("")) {
        description_text_tv.setVisibility(View.GONE);
        description_tv.setVisibility(View.GONE);
    } else {
        description_tv.setText(rideWithUsers.getDescription());
    }
    ridersList.setAdapter(new RidersAdapter(rideWithUsers.getRiders(), this));
    ridersList.setHasFixedSize(true);
    ridersList.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
    final int finalColor = color, finalBgRes = bgRes;
    chat_bt.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            List<ChatAssets> l = ChatAssets.find(ChatAssets.class, "ride_id = ?", rideWithUsers.getDbId() + "");
            if (l == null || l.isEmpty())
                new ChatAssets(rideWithUsers.getDbId() + "", location, finalColor, finalBgRes, Util.formatBadDateWithoutYear(rideWithUsers.getDate()), Util.formatTime(rideWithUsers.getTime())).save();
            Intent intent = new Intent(ActiveRideAct.this, ChatAct.class);
            intent.putExtra("rideId", rideWithUsers.getDbId() + "");
            startActivity(intent);
        }
    });
    rideId2 = rideWithUsers.getDbId() + "";
    final String rideId = rideId2;
    if (isDriver) {
        leave_bt.setText(R.string.act_activeride_quitBtn);
        seeProfile_iv.setVisibility(View.GONE);
    }
    leave_bt.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            Dialog.Builder builder = new SimpleDialog.Builder(R.style.SimpleDialogLight) {

                @Override
                public void onPositiveActionClicked(DialogFragment fragment) {
                    final ProgressDialog pd = ProgressDialog.show(ActiveRideAct.this, "", getString(R.string.wait), true, true);
                    CaronaeAPI.service(getApplicationContext()).leaveRide(rideId).enqueue(new Callback<ResponseBody>() {

                        @Override
                        public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
                            if (response.isSuccessful()) {
                                pd.dismiss();
                                if (isDriver)
                                    Util.toast(getString(R.string.act_activeride_cancelledRide));
                                else
                                    Util.toast(getString(R.string.act_activeride_quitRide));
                                FirebaseTopicsHandler.unsubscribeFirebaseTopic(rideId + "");
                                List<Ride> rides = Ride.find(Ride.class, "db_id = ?", rideId);
                                if (rides != null && !rides.isEmpty())
                                    rides.get(0).delete();
                                ActiveRide.deleteAll(ActiveRide.class, "db_id = ?", rideId);
                                SharedPref.saveRemoveRideFromList(rideId);
                                finish();
                            } else {
                                Util.treatResponseFromServer(response);
                                pd.dismiss();
                                Util.toast(R.string.errorRideDeleted);
                                Log.e("leaveRide", response.message());
                            }
                        }

                        @Override
                        public void onFailure(Call<ResponseBody> call, Throwable t) {
                            pd.dismiss();
                            Util.toast(R.string.errorRideDeleted);
                            Log.e("leaveRide", t.getMessage());
                        }
                    });
                    super.onPositiveActionClicked(fragment);
                }

                @Override
                public void onNegativeActionClicked(DialogFragment fragment) {
                    super.onNegativeActionClicked(fragment);
                }
            };
            String title;
            if (isDriver) {
                title = getString(R.string.act_activeRide_sureWantToCancel);
                ((SimpleDialog.Builder) builder).message(getString(R.string.act_activeRide_cancelRideMsg)).title(title).positiveAction(getString(R.string.ok)).negativeAction(getString(R.string.cancel));
            } else {
                title = getString(R.string.act_activeRide_sureWantToQuit);
                builder.title(title).positiveAction(getString(R.string.ok)).negativeAction(getString(R.string.cancel));
            }
            DialogFragment fragment = DialogFragment.newInstance(builder);
            fragment.show(getSupportFragmentManager(), null);
        }
    });
    if (!isDriver) {
        finish_bt.setVisibility(View.GONE);
    }
    finish_bt.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            Dialog.Builder builder = new SimpleDialog.Builder(R.style.SimpleDialogLight) {

                @Override
                public void onPositiveActionClicked(DialogFragment fragment) {
                    final ProgressDialog pd = ProgressDialog.show(ActiveRideAct.this, "", getString(R.string.wait), true, true);
                    CaronaeAPI.service(getApplicationContext()).finishRide(rideId).enqueue(new Callback<ResponseBody>() {

                        @Override
                        public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
                            if (response.isSuccessful()) {
                                pd.dismiss();
                                Util.toast(R.string.rideFinished);
                                FirebaseTopicsHandler.unsubscribeFirebaseTopic(rideId + "");
                                List<Ride> rides = Ride.find(Ride.class, "db_id = ?", rideId);
                                if (rides != null && !rides.isEmpty())
                                    rides.get(0).delete();
                                ActiveRide.deleteAll(ActiveRide.class, "db_id = ?", rideId);
                                SharedPref.saveRemoveRideFromList(rideId);
                                finish();
                            } else {
                                Util.treatResponseFromServer(response);
                                pd.dismiss();
                                if (response.code() == 403) {
                                    Util.toast(R.string.finishFutureRide);
                                } else {
                                    Util.toast(R.string.errorFinishRide);
                                    Log.e("finish_bt", response.message());
                                }
                            }
                        }

                        @Override
                        public void onFailure(Call<ResponseBody> call, Throwable t) {
                            pd.dismiss();
                            Util.toast(R.string.errorFinishRide);
                            Log.e("finish_bt", t.getMessage());
                        }
                    });
                    super.onPositiveActionClicked(fragment);
                }

                @Override
                public void onNegativeActionClicked(DialogFragment fragment) {
                    super.onNegativeActionClicked(fragment);
                }
            };
            builder.title(getString(R.string.act_activeride_sureWantToFinish)).positiveAction(getString(R.string.ok)).negativeAction(getString(R.string.cancel));
            DialogFragment fragment = DialogFragment.newInstance(builder);
            fragment.show(getSupportFragmentManager(), null);
        }
    });
    phoneNumber_tv.setOnClickListener((View v) -> {
        actionNumberTouch(0, driver);
    });
    phoneNumber_tv.setOnLongClickListener((View v) -> {
        actionNumberTouch(1, driver);
        return true;
    });
    App.getBus().register(this);
    notVisible = false;
    scheduledToClose = false;
    configureShareBt();
}
Also used : User(br.ufrj.caronae.models.User) ChatAssets(br.ufrj.caronae.models.ChatAssets) DialogFragment(com.rey.material.app.DialogFragment) Gson(com.google.gson.Gson) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) ProgressDialog(android.app.ProgressDialog) SimpleDialog(com.rey.material.app.SimpleDialog) List(java.util.List) RidersAdapter(br.ufrj.caronae.adapters.RidersAdapter) ActionBar(android.support.v7.app.ActionBar) Toolbar(android.support.v7.widget.Toolbar) Call(retrofit2.Call) Intent(android.content.Intent) ImageView(android.widget.ImageView) BindView(butterknife.BindView) View(android.view.View) TextView(android.widget.TextView) RecyclerView(android.support.v7.widget.RecyclerView) Response(retrofit2.Response) Callback(retrofit2.Callback) RoundedTransformation(br.ufrj.caronae.RoundedTransformation) ActiveRide(br.ufrj.caronae.models.ActiveRide) Ride(br.ufrj.caronae.models.Ride)

Example 5 with Ride

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

the class ChatAct method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_chat);
    ButterKnife.bind(this);
    toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    App.getBus().register(this);
    SharedPref.setChatActIsForeground(true);
    final ActionBar ab = getSupportActionBar();
    if (ab != null) {
        ab.setDisplayHomeAsUpEnabled(true);
    }
    rideId = getIntent().getExtras().getString(RIDE_ID_BUNDLE_KEY);
    // ChatAssets chatAssets;
    List<ChatAssets> l = ChatAssets.find(ChatAssets.class, "ride_id = ?", rideId);
    if (l == null || l.isEmpty()) {
        List<Ride> ride = Ride.find(Ride.class, "db_id = ?", rideId);
        if (ride == null || ride.isEmpty()) {
            getRideFromServer(this);
        }
    } else {
        configureActivityWithChatAssets(l.get(0));
    }
}
Also used : ChatAssets(br.ufrj.caronae.models.ChatAssets) ActionBar(android.support.v7.app.ActionBar) Ride(br.ufrj.caronae.models.Ride)

Aggregations

Ride (br.ufrj.caronae.models.Ride)7 ChatAssets (br.ufrj.caronae.models.ChatAssets)3 Gson (com.google.gson.Gson)3 List (java.util.List)3 ProgressDialog (android.app.ProgressDialog)2 Intent (android.content.Intent)2 ActionBar (android.support.v7.app.ActionBar)2 RecyclerView (android.support.v7.widget.RecyclerView)2 View (android.view.View)2 ImageView (android.widget.ImageView)2 TextView (android.widget.TextView)2 User (br.ufrj.caronae.models.User)2 DialogFragment (com.rey.material.app.DialogFragment)2 SimpleDialog (com.rey.material.app.SimpleDialog)2 ArrayList (java.util.ArrayList)2 Call (retrofit2.Call)2 Callback (retrofit2.Callback)2 Response (retrofit2.Response)2 Paint (android.graphics.Paint)1 LinearLayoutManager (android.support.v7.widget.LinearLayoutManager)1