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();
}
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());
}
});
}
});
}
Aggregations