Search in sources :

Example 1 with RidersAdapter

use of br.ufrj.caronae.adapters.RidersAdapter in project caronae-android by caronae.

the class ProfileAct method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_profile);
    ButterKnife.bind(this);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    final ActionBar ab = getSupportActionBar();
    if (ab != null) {
        ab.setDisplayHomeAsUpEnabled(true);
    }
    String user2 = getIntent().getExtras().getString("user");
    user = new Gson().fromJson(user2, User.class);
    name_tv.setText(user.getName());
    profile_tv.setText(user.getProfile());
    course_tv.setText(user.getCourse());
    phone_tv.setText(user.getPhoneNumber());
    String profilePicUrl = user.getProfilePicUrl();
    if (profilePicUrl != null && !profilePicUrl.isEmpty())
        Picasso.with(this).load(profilePicUrl).placeholder(R.drawable.user_pic).error(R.drawable.user_pic).transform(new RoundedTransformation()).into(user_pic_iv);
    try {
        String date = user.getCreatedAt().split(" ")[0];
        date = Util.formatBadDateWithYear(date).substring(3);
        createdAt_tv.setText(date);
    } catch (Exception e) {
        e.printStackTrace();
    }
    CaronaeAPI.service(getApplicationContext()).getRidesHistoryCount(user.getDbId() + "").enqueue(new Callback<HistoryRideCountForJson>() {

        @Override
        public void onResponse(Call<HistoryRideCountForJson> call, Response<HistoryRideCountForJson> response) {
            if (response.isSuccessful()) {
                HistoryRideCountForJson historyRideCountForJson = response.body();
                ridesOffered_tv.setText(String.valueOf(historyRideCountForJson.getOfferedCount()));
                ridesTaken_tv.setText(String.valueOf(historyRideCountForJson.getTakenCount()));
            } else {
                Util.treatResponseFromServer(response);
                Util.toast(R.string.act_profile_errorCountRidesHistory);
                Log.e("getRidesHistoryCount", response.message());
            }
        }

        @Override
        public void onFailure(Call<HistoryRideCountForJson> call, Throwable t) {
            Util.toast(R.string.act_profile_errorCountRidesHistory);
            Log.e("getRidesHistoryCount", t.getMessage());
        }
    });
    try {
        AccessToken token = AccessToken.getCurrentAccessToken();
        if (token != null) {
            if (user.getFaceId() != null) {
                String name = user.getName().split(" ")[0];
                openProfile_tv.setText(getString(R.string.act_profile_openFbProfile, name));
                openProfile_tv.setVisibility(View.VISIBLE);
                CaronaeAPI.service(getApplicationContext()).getMutualFriends(token.getToken(), user.getFaceId()).enqueue(new Callback<FacebookFriendForJson>() {

                    @Override
                    public void onResponse(Call<FacebookFriendForJson> call, Response<FacebookFriendForJson> response) {
                        if (response.isSuccessful()) {
                            FacebookFriendForJson mutualFriends = response.body();
                            if (mutualFriends.getTotalCount() < 1)
                                return;
                            mutualFriends_lay.setVisibility(View.VISIBLE);
                            int totalCount = mutualFriends.getTotalCount();
                            String s = mutualFriends.getTotalCount() > 1 ? "s" : "";
                            int size = mutualFriends.getMutualFriends().size();
                            String s1 = mutualFriends.getMutualFriends().size() != 1 ? "m" : "";
                            mutualFriends_tv.setText(getString(R.string.act_profile_mutualFriends, totalCount, s, size, s1));
                            mutualFriendsList.setAdapter(new RidersAdapter(mutualFriends.getMutualFriends(), ProfileAct.this));
                            mutualFriendsList.setHasFixedSize(true);
                            mutualFriendsList.setLayoutManager(new LinearLayoutManager(ProfileAct.this, LinearLayoutManager.HORIZONTAL, false));
                        } else {
                            Util.treatResponseFromServer(response);
                            // Util.toast(getString(R.string.act_profile_errorMutualFriends));
                            Log.e("getMutualFriends", response.message());
                        }
                    }

                    @Override
                    public void onFailure(Call<FacebookFriendForJson> call, Throwable t) {
                        Log.e("getMutualFriends", t.getMessage());
                    }
                });
            } else {
                Log.i("profileact,facebook", "user face id is null");
            }
        }
    } catch (Exception e) {
        Log.e("profileact", e.getMessage());
    }
    String from = getIntent().getExtras().getString("from");
    if (from != null && (from.equals("activeRides"))) {
        // Controls the options that appears on app when user touch (short or long) on phone number
        phone_tv.setOnClickListener((View v) -> {
            actionNumberTouch(0);
        });
        phone_tv.setOnLongClickListener((View v) -> {
            actionNumberTouch(1);
            return true;
        });
    } else {
        phone_icon.setVisibility(View.INVISIBLE);
        phone_tv.setVisibility(View.INVISIBLE);
    }
}
Also used : FacebookFriendForJson(br.ufrj.caronae.models.modelsforjson.FacebookFriendForJson) User(br.ufrj.caronae.models.User) Gson(com.google.gson.Gson) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) ImageView(android.widget.ImageView) BindView(butterknife.BindView) View(android.view.View) RecyclerView(android.support.v7.widget.RecyclerView) TextView(android.widget.TextView) AccessToken(com.facebook.AccessToken) RoundedTransformation(br.ufrj.caronae.RoundedTransformation) HistoryRideCountForJson(br.ufrj.caronae.models.modelsforjson.HistoryRideCountForJson) RidersAdapter(br.ufrj.caronae.adapters.RidersAdapter) ActionBar(android.support.v7.app.ActionBar) Toolbar(android.support.v7.widget.Toolbar)

Example 2 with RidersAdapter

use of br.ufrj.caronae.adapters.RidersAdapter 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)

Aggregations

ActionBar (android.support.v7.app.ActionBar)2 LinearLayoutManager (android.support.v7.widget.LinearLayoutManager)2 RecyclerView (android.support.v7.widget.RecyclerView)2 Toolbar (android.support.v7.widget.Toolbar)2 View (android.view.View)2 ImageView (android.widget.ImageView)2 TextView (android.widget.TextView)2 RoundedTransformation (br.ufrj.caronae.RoundedTransformation)2 RidersAdapter (br.ufrj.caronae.adapters.RidersAdapter)2 User (br.ufrj.caronae.models.User)2 BindView (butterknife.BindView)2 Gson (com.google.gson.Gson)2 ProgressDialog (android.app.ProgressDialog)1 Intent (android.content.Intent)1 ActiveRide (br.ufrj.caronae.models.ActiveRide)1 ChatAssets (br.ufrj.caronae.models.ChatAssets)1 Ride (br.ufrj.caronae.models.Ride)1 FacebookFriendForJson (br.ufrj.caronae.models.modelsforjson.FacebookFriendForJson)1 HistoryRideCountForJson (br.ufrj.caronae.models.modelsforjson.HistoryRideCountForJson)1 AccessToken (com.facebook.AccessToken)1