public void onBindViewHolder()

in Android/app/src/main/java/com/harvard/studyappmodule/SurveyActivitiesListAdapter.java [156:917]


  public void onBindViewHolder(final Holder holder, int position) {
   final ArrayList<String> mScheduledTime = new ArrayList<>();
    timePos.add(-1);
    GradientDrawable bgShape = (GradientDrawable) holder.process.getBackground();
    if (status
            .get(holder.getAdapterPosition())
            .equalsIgnoreCase(SurveyActivitiesFragment.STATUS_CURRENT)) {
      holder.state.setText(R.string.current1);
    } else if (status
            .get(holder.getAdapterPosition())
            .equalsIgnoreCase(SurveyActivitiesFragment.STATUS_UPCOMING)) {
      holder.state.setText(R.string.upcoming1);
    } else {
      holder.state.setText(R.string.past);
    }
    if (holder.getAdapterPosition() == 0
            || !status
            .get(holder.getAdapterPosition())
            .equalsIgnoreCase(status.get(holder.getAdapterPosition() - 1))) {
      holder.stateLayout.setVisibility(View.VISIBLE);
      holder.hrLine1.setVisibility(View.GONE);
    } else {
      holder.hrLine1.setVisibility(View.VISIBLE);
      holder.stateLayout.setVisibility(View.GONE);
    }

    if (items.get(holder.getAdapterPosition()).getActivityId().equalsIgnoreCase("")
            || (items.get(holder.getAdapterPosition()).getActivityId().equalsIgnoreCase(null))) {
      holder.container2.setVisibility(View.VISIBLE);
      holder.container.setVisibility(View.GONE);
      holder.hrLine1.setVisibility(View.GONE);
    } else {
      holder.container2.setVisibility(View.GONE);
      holder.container.setVisibility(View.VISIBLE);
      if (status
              .get(holder.getAdapterPosition())
              .equalsIgnoreCase(SurveyActivitiesFragment.STATUS_UPCOMING)
              || status
              .get(holder.getAdapterPosition())
              .equalsIgnoreCase(SurveyActivitiesFragment.STATUS_COMPLETED)) {
        holder.process.setVisibility(View.GONE);
      } else if (currentRunStatusForActivities
              .get(holder.getAdapterPosition())
              .getStatus()
              .equalsIgnoreCase(SurveyActivitiesFragment.YET_To_START)) {
        holder.process.setVisibility(View.VISIBLE);
        holder.process.setText(R.string.start);
        bgShape.setColor(context.getResources().getColor(R.color.colorPrimary));
      } else if (currentRunStatusForActivities
              .get(holder.getAdapterPosition())
              .getStatus()
              .equalsIgnoreCase(SurveyActivitiesFragment.IN_PROGRESS)) {
        holder.process.setVisibility(View.VISIBLE);
        holder.process.setText(R.string.resume);
        bgShape.setColor(context.getResources().getColor(R.color.rectangle_yellow));
      } else if (currentRunStatusForActivities
              .get(holder.getAdapterPosition())
              .getStatus()
              .equalsIgnoreCase(SurveyActivitiesFragment.COMPLETED)) {
        holder.process.setVisibility(View.VISIBLE);
        holder.process.setText(R.string.completed2);
        bgShape.setColor(context.getResources().getColor(R.color.bullet_green_color));
      } else if (currentRunStatusForActivities
              .get(holder.getAdapterPosition())
              .getStatus()
              .equalsIgnoreCase(SurveyActivitiesFragment.INCOMPLETE)) {
        holder.process.setVisibility(View.VISIBLE);
        holder.process.setText(R.string.missedrun);
        bgShape.setColor(context.getResources().getColor(R.color.red));
      } else {
        holder.process.setVisibility(View.VISIBLE);
      }

      if (items.get(holder.getAdapterPosition()).getType().equalsIgnoreCase("questionnaire")) {
        holder.surveyIcon.setImageResource(R.drawable.survey_icn_small);
      } else if (items.get(holder.getAdapterPosition()).getType().equalsIgnoreCase("task")) {
        holder.surveyIcon.setImageResource(R.drawable.task_icn_small);
      } else {
        holder.surveyIcon.setVisibility(View.INVISIBLE);
      }

      if (status
              .get(holder.getAdapterPosition())
              .equalsIgnoreCase(SurveyActivitiesFragment.STATUS_UPCOMING)) {
        holder.run.setVisibility(View.GONE);
      } else {
        if (currentRunStatusForActivities.get(holder.getAdapterPosition()).getCurrentRunId() == 0) {
          holder.process.setVisibility(View.GONE);
        }
        holder.run.setVisibility(View.VISIBLE);
        holder.run.setText(
                context.getResources().getString(R.string.run)
                        + ": "
                        + currentRunStatusForActivities.get(holder.getAdapterPosition()).getCurrentRunId()
                        + " of "
                        + currentRunStatusForActivities.get(holder.getAdapterPosition()).getTotalRun()
                        + ", "
                        + currentRunStatusForActivities.get(holder.getAdapterPosition()).getCompletedRun()
                        + " "
                        + context.getResources().getString(R.string.done2)
                        + ", "
                        + currentRunStatusForActivities.get(holder.getAdapterPosition()).getMissedRun()
                        + " "
                        + context.getResources().getString(R.string.missed));
      }
      // completed status incomplete/complete settings
      if (status
              .get(holder.getAdapterPosition())
              .equalsIgnoreCase(SurveyActivitiesFragment.STATUS_COMPLETED)) {
        int missedRunVal = currentRunStatusForActivities.get(holder.getAdapterPosition()).getMissedRun();
        int currentRunVal = currentRunStatusForActivities.get(holder.getAdapterPosition()).getCurrentRunId();
        int totalRunVal = currentRunStatusForActivities.get(holder.getAdapterPosition()).getTotalRun();
        int completedRunVal = currentRunStatusForActivities.get(holder.getAdapterPosition()).getCompletedRun();
        if (missedRunVal == 0 && currentRunVal == 0 && totalRunVal == 0 && completedRunVal == 0) {
          holder.process.setVisibility(View.VISIBLE);
          holder.process.setText(R.string.expired);
          bgShape.setColor(context.getResources().getColor(R.color.black_shade));
        } else if (missedRunVal > 0) {
          holder.process.setVisibility(View.VISIBLE);
          holder.process.setText(R.string.missedrun);
          bgShape.setColor(context.getResources().getColor(R.color.red));
        } else {
          // completed
          holder.process.setVisibility(View.VISIBLE);
          holder.process.setText(R.string.completed2);
          bgShape.setColor(context.getResources().getColor(R.color.bullet_green_color));
        }
      }

      holder.surveyTitle.setText(items.get(holder.getAdapterPosition()).getTitle());
      if (items.get(holder.getAdapterPosition()).getFrequency().getType().equalsIgnoreCase("Manually Schedule")) {
        holder.whenWasSurvey.setText(context.getResources().getString(R.string.as_scheduled));
      } else if (items.get(holder.getAdapterPosition()).getFrequency().getType().equalsIgnoreCase("One time")) {
        holder.whenWasSurvey.setText(context.getResources().getString(R.string.onetime));
      } else {
        holder.whenWasSurvey.setText(items.get(holder.getAdapterPosition()).getFrequency().getType());
      }
      Date startDate = null;
      Date endDate = null;
      SimpleDateFormat simpleDateFormat = AppController.getDateFormatForApi();
      SimpleDateFormat simpleDateFormatForActivityList =
              AppController.getDateFormatForActivityList();
      SimpleDateFormat simpleDateFormatForActivityListMonthly =
              AppController.getDateFormatForActivityListMonthly();
      SimpleDateFormat simpleDateFormatForOtherFreq = AppController.getDateFormatForOtherFreq();
      SimpleDateFormat simpleDateFormat5 = AppController.getDateFormatUtcNoZone();
      try {
        if (!items.get(holder.getAdapterPosition()).getStartTime().equalsIgnoreCase("")) {
          startDate = simpleDateFormat5.parse(items.get(holder.getAdapterPosition()).getStartTime().split("\\.")[0]);
        } else {
          startDate = new Date();
        }
        endDate = simpleDateFormat5.parse(items.get(holder.getAdapterPosition()).getEndTime().split("\\.")[0]);

      } catch (ParseException e) {
        Logger.log(e);
      }
      if (items
              .get(holder.getAdapterPosition())
              .getFrequency()
              .getType()
              .equalsIgnoreCase(SurveyScheduler.FREQUENCY_TYPE_DAILY)) {
        try {
          String abc = "";
          if (!items.get(holder.getAdapterPosition()).getFrequency().getRuns().isEmpty()) {

            for (int i = 0; i < items.get(holder.getAdapterPosition()).getFrequency().getRuns().size(); i++) {

              try {
                String dateString =
                        items.get(holder.getAdapterPosition()).getFrequency().getRuns().get(i).getStartTime().toString();
                SimpleDateFormat sdf = AppController.getHourMinuteSecondFormat();
                Date date = sdf.parse(dateString);
                SimpleDateFormat dateFormat = AppController.getHourAmPmFormat1();
                String formattedDate = dateFormat.format(date).toString();
                if (i == 0) {
                  abc = formattedDate;
                } else {
                  abc = abc + "<font color=\"#8c95a3\"> | </font>" + formattedDate;
                }
              } catch (ParseException e) {
                Logger.log(e);
              }
            }
          }
          if (!abc.isEmpty()) {
            holder.time.setText(Html.fromHtml(abc) + " everyday", TextView.BufferType.SPANNABLE);
            holder.time.setVisibility(View.VISIBLE);
          }
          holder.date.setText(
                  simpleDateFormatForActivityList.format(startDate)
                          + " "
                          + context.getResources().getString(R.string.to)
                          + " "
                          + simpleDateFormatForActivityList.format(endDate));
        } catch (Exception e) {
          Logger.log(e);
        }
        holder.more.setVisibility(View.GONE);
      } else if (items
              .get(holder.getAdapterPosition())
              .getFrequency()
              .getType()
              .equalsIgnoreCase(SurveyScheduler.FREQUENCY_TYPE_MONTHLY)) {
        try {
          String dateString = items.get(holder.getAdapterPosition()).getStartTime().toString();
          Date date = simpleDateFormat5.parse(dateString.split("\\.")[0]);
          SimpleDateFormat dateFormat1 = AppController.getHourAmPmFormat1();
          String formattedDate1 = dateFormat1.format(date).toString();
          SimpleDateFormat dateFormat2 = AppController.getDdFormat();
          String formattedDate2 = dateFormat2.format(date).toString();
          String text =
                  formattedDate1
                          + " "
                          + context.getResources().getString(R.string.on)
                          + " day"
                          + " "
                          + formattedDate2
                          + TEXT_EVERY_MONTH;
          holder.time.setText(text);
          holder.time.setVisibility(View.VISIBLE);

          holder.date.setText(
                  simpleDateFormatForActivityListMonthly.format(startDate)
                          + " "
                          + context.getResources().getString(R.string.to)
                          + " "
                          + simpleDateFormatForActivityListMonthly.format(endDate));
        } catch (Exception e) {
          Logger.log(e);
        }
        holder.more.setVisibility(View.GONE);
      } else if (items
              .get(holder.getAdapterPosition())
              .getFrequency()
              .getType()
              .equalsIgnoreCase(SurveyScheduler.FREQUENCY_TYPE_WEEKLY)) {
        try {
          String dateString = items.get(holder.getAdapterPosition()).getStartTime().toString();
          Date date = simpleDateFormat5.parse(dateString.split("\\.")[0]);
          SimpleDateFormat dateFormat1 = AppController.getHourAmPmFormat1();
          String formattedDate1 = dateFormat1.format(date).toString();
          SimpleDateFormat dateFormat2 = AppController.getEeFormat();
          String formattedDate2 = dateFormat2.format(date).toString();
          String text = formattedDate1 + TEXT_EVERY + formattedDate2;
          holder.time.setText(text);
          holder.time.setVisibility(View.VISIBLE);

          holder.date.setText(
                  simpleDateFormatForActivityList.format(startDate)
                          + " "
                          + context.getResources().getString(R.string.to)
                          + " "
                          + simpleDateFormatForActivityList.format(endDate));
        } catch (Exception e) {
          Logger.log(e);
        }
        holder.more.setVisibility(View.GONE);
      } else if (items
              .get(holder.getAdapterPosition())
              .getFrequency()
              .getType()
              .equalsIgnoreCase(SurveyScheduler.FREQUENCY_TYPE_ONE_TIME)) {
        try {
          holder.date.setText(getDateRange(items, endDate, holder.getAdapterPosition(), startDate, joiningDate, context, status));
        } catch (Exception e) {
          Logger.log(e);
        }
        holder.time.setVisibility(View.GONE);
        holder.more.setVisibility(View.GONE);
      } else if (items
              .get(holder.getAdapterPosition())
              .getFrequency()
              .getType()
              .equalsIgnoreCase(SurveyScheduler.FREQUENCY_TYPE_MANUALLY_SCHEDULE)) {
        try {

          /// Scheduled
          if (!items.get(holder.getAdapterPosition()).getFrequency().getRuns().isEmpty()) {
            int size = items.get(holder.getAdapterPosition()).getFrequency().getRuns().size();
            String startTime = "";
            String endTime = "";
            String finalTime;
            int finalpos = 0;
            int pos = -1;
            for (int i = 0; i < size; i++) {
              if (!items
                      .get(holder.getAdapterPosition())
                      .getFrequency()
                      .getRuns()
                      .get(i)
                      .getStartTime()
                      .toString()
                      .isEmpty()) {
                startTime =
                        getDateFormatedString(
                                items
                                        .get(holder.getAdapterPosition())
                                        .getFrequency()
                                        .getRuns()
                                        .get(i)
                                        .getStartTime()
                                        .toString()
                                        .split("\\.")[0]);
              }
              if (!items
                      .get(holder.getAdapterPosition())
                      .getFrequency()
                      .getRuns()
                      .get(i)
                      .getEndTime()
                      .toString()
                      .isEmpty()) {
                endTime =
                        getDateFormatedString(
                                items
                                        .get(holder.getAdapterPosition())
                                        .getFrequency()
                                        .getRuns()
                                        .get(i)
                                        .getEndTime()
                                        .toString()
                                        .split("\\.")[0]);
              }
              if (i < items
                      .get(holder.getAdapterPosition())
                      .getFrequency()
                      .getRuns().size() - 1) {
                pos = checkCurrentTimeInBetweenDates(items
                        .get(holder.getAdapterPosition())
                        .getFrequency()
                        .getRuns()
                        .get(i)
                        .getStartTime()
                        .split("\\.")[0], items
                        .get(holder.getAdapterPosition())
                        .getFrequency()
                        .getRuns()
                        .get(i + 1)
                        .getStartTime()
                        .split("\\.")[0], i);
              } else {
                pos = checkCurrentTimeInBetweenDates(items
                        .get(holder.getAdapterPosition())
                        .getFrequency()
                        .getRuns()
                        .get(i)
                        .getStartTime()
                        .split("\\.")[0], items
                        .get(holder.getAdapterPosition())
                        .getFrequency()
                        .getRuns()
                        .get(i)
                        .getEndTime()
                        .split("\\.")[0], i);
              }

              finalTime = startTime + " to " + endTime;
              mScheduledTime.add(finalTime);

              if (status
                      .get(holder.getAdapterPosition())
                      .equalsIgnoreCase(SurveyActivitiesFragment.STATUS_COMPLETED)) {
                try {
                  finalpos = i;
                  holder.date.setText(
                          simpleDateFormatForOtherFreq.format(
                                  simpleDateFormat5.parse(
                                          items
                                                  .get(holder.getAdapterPosition())
                                                  .getFrequency()
                                                  .getRuns()
                                                  .get(i)
                                                  .getStartTime()
                                                  .toString()
                                                  .split("\\.")[0]))
                                  + " to "
                                  + simpleDateFormatForOtherFreq.format(
                                  simpleDateFormat5.parse(
                                          items
                                                  .get(holder.getAdapterPosition())
                                                  .getFrequency()
                                                  .getRuns()
                                                  .get(i)
                                                  .getEndTime()
                                                  .toString()
                                                  .split("\\.")[0])));
                } catch (ParseException e) {
                  Logger.log(e);
                }
              } else {
                if (i == 0) {
                  finalpos = i;
                  // if only 0 then show
                  holder.date.setText(
                          simpleDateFormatForOtherFreq.format(
                                  simpleDateFormat5.parse(
                                          items
                                                  .get(holder.getAdapterPosition())
                                                  .getFrequency()
                                                  .getRuns()
                                                  .get(i)
                                                  .getStartTime()
                                                  .toString()
                                                  .split("\\.")[0]))
                                  + " to "
                                  + simpleDateFormatForOtherFreq.format(
                                  simpleDateFormat5.parse(
                                          items
                                                  .get(holder.getAdapterPosition())
                                                  .getFrequency()
                                                  .getRuns()
                                                  .get(i)
                                                  .getEndTime()
                                                  .toString()
                                                  .split("\\.")[0])));

                  if ((currentRunStatusForActivities
                          .get(holder.getAdapterPosition())
                          .getStatus()
                          .equalsIgnoreCase(SurveyActivitiesFragment.COMPLETED) || currentRunStatusForActivities
                          .get(holder.getAdapterPosition())
                          .getStatus()
                          .equalsIgnoreCase(SurveyActivitiesFragment.INCOMPLETE)) && pos < items
                          .get(holder.getAdapterPosition())
                          .getFrequency()
                          .getRuns()
                          .size() && status
                          .get(holder.getAdapterPosition())
                          .equalsIgnoreCase(SurveyActivitiesFragment.STATUS_CURRENT) || currentRunStatusForActivities
                          .get(holder.getAdapterPosition()).getCurrentRunId() == 0) {
                    int modifiedPos;
                    if (pos + 1 < items.get(holder.getAdapterPosition()).getFrequency().getRuns().size()) {
                      modifiedPos = pos + 1;
                    } else {
                      modifiedPos = pos;
                    }
                    finalpos = modifiedPos;
                      holder.date.setText(
                              simpleDateFormatForOtherFreq.format(
                                      simpleDateFormat5.parse(
                                              items
                                                      .get(holder.getAdapterPosition())
                                                      .getFrequency()
                                                      .getRuns()
                                                      .get(modifiedPos)
                                                      .getStartTime()
                                                      .toString()
                                                      .split("\\.")[0]))
                                      + " to "
                                      + simpleDateFormatForOtherFreq.format(
                                      simpleDateFormat5.parse(
                                              items
                                                      .get(holder.getAdapterPosition())
                                                      .getFrequency()
                                                      .getRuns()
                                                      .get(modifiedPos)
                                                      .getEndTime()
                                                      .toString()
                                                      .split("\\.")[0])));

                  }
                }

                if (pos > 0) {
                  try {
                    final Date d1 =
                            simpleDateFormat5.parse(
                                    items
                                            .get(holder.getAdapterPosition())
                                            .getFrequency()
                                            .getRuns()
                                            .get(i)
                                            .getStartTime()
                                            .toString()
                                            .split("\\.")[0]);
                    final Date d2 =
                            simpleDateFormat5.parse(
                                    items
                                            .get(holder.getAdapterPosition())
                                            .getFrequency()
                                            .getRuns()
                                            .get(i)
                                            .getEndTime()
                                            .toString()
                                            .split("\\.")[0]);
                    finalpos = i;
                    holder.date.setText(
                            simpleDateFormatForOtherFreq.format(d1)
                                    + " to "
                                    + simpleDateFormatForOtherFreq.format(d2));

                    if ((currentRunStatusForActivities
                            .get(holder.getAdapterPosition())
                            .getStatus()
                            .equalsIgnoreCase(SurveyActivitiesFragment.COMPLETED) || currentRunStatusForActivities
                            .get(holder.getAdapterPosition())
                            .getStatus()
                            .equalsIgnoreCase(SurveyActivitiesFragment.INCOMPLETE)) && pos < items
                            .get(holder.getAdapterPosition())
                            .getFrequency()
                            .getRuns()
                            .size() && status
                            .get(holder.getAdapterPosition())
                            .equalsIgnoreCase(SurveyActivitiesFragment.STATUS_CURRENT) || currentRunStatusForActivities
                            .get(holder.getAdapterPosition()).getCurrentRunId() == 0) {
                      int modifiedPos;
                      if (pos + 1 < items.get(holder.getAdapterPosition()).getFrequency().getRuns().size()) {
                        modifiedPos = pos + 1;
                      } else {
                        modifiedPos = pos;
                      }
                      finalpos = modifiedPos;
                      holder.date.setText(
                              simpleDateFormatForOtherFreq.format(
                                      simpleDateFormat5.parse(
                                              items
                                                      .get(holder.getAdapterPosition())
                                                      .getFrequency()
                                                      .getRuns()
                                                      .get(modifiedPos)
                                                      .getStartTime()
                                                      .toString()
                                                      .split("\\.")[0]))
                                      + " to "
                                      + simpleDateFormatForOtherFreq.format(
                                      simpleDateFormat5.parse(
                                              items
                                                      .get(holder.getAdapterPosition())
                                                      .getFrequency()
                                                      .getRuns()
                                                      .get(modifiedPos)
                                                      .getEndTime()
                                                      .toString()
                                                      .split("\\.")[0])));
                    }
                  } catch (Exception e) {
                    Logger.log(e);
                  }
                }
                if (status
                        .get(holder.getAdapterPosition())
                        .equalsIgnoreCase(SurveyActivitiesFragment.STATUS_UPCOMING)) {
                  finalpos = pos;
                  holder.date.setText(
                          simpleDateFormatForOtherFreq.format(
                                  simpleDateFormat5.parse(
                                          items
                                                  .get(holder.getAdapterPosition())
                                                  .getFrequency()
                                                  .getRuns()
                                                  .get(pos)
                                                  .getStartTime()
                                                  .toString()
                                                  .split("\\.")[0]))
                                  + " to "
                                  + simpleDateFormatForOtherFreq.format(
                                  simpleDateFormat5.parse(
                                          items
                                                  .get(holder.getAdapterPosition())
                                                  .getFrequency()
                                                  .getRuns()
                                                  .get(pos)
                                                  .getEndTime()
                                                  .toString()
                                                  .split("\\.")[0])));
                }
              }
            }
            timePos.set(holder.getAdapterPosition(), finalpos);

            try {
              if (mScheduledTime.size() > 1) {
                int pickerSize = mScheduledTime.size() - 1;
                String val =
                        "<u>"
                                + "+"
                                + pickerSize
                                + " "
                                + context.getResources().getString(R.string.more)
                                + "</u>";
                holder.more.setText(Html.fromHtml(val));
                holder.more.setVisibility(View.VISIBLE);
              } else {
                holder.more.setVisibility(View.GONE);
              }
            } catch (Exception e) {
              Logger.log(e);
            }
          }
          holder.time.setVisibility(View.GONE);

        } catch (Exception e) {
          Logger.log(e);
        }
      }

      holder.container.setOnClickListener(
          new View.OnClickListener() {
            @Override
            public void onClick(View view) {
              Bundle eventProperties = new Bundle();
              eventProperties.putString(
                  CustomFirebaseAnalytics.Param.BUTTON_CLICK_REASON,
                  context.getString(R.string.survey_activities_list));
              analyticsInstance.logEvent(
                  CustomFirebaseAnalytics.Event.ADD_BUTTON_CLICK, eventProperties);
              int currentRunVal =
                  currentRunStatusForActivities.get(holder.getAdapterPosition()).getCurrentRunId();
              int totalRunVal =
                  currentRunStatusForActivities.get(holder.getAdapterPosition()).getTotalRun();
              if (click) {
                click = false;
                new Handler()
                    .postDelayed(
                        new Runnable() {
                          @Override
                          public void run() {
                            click = true;
                          }
                        },
                        1500);
                if (paused) {
                  Toast.makeText(context, R.string.study_Joined_paused, Toast.LENGTH_SHORT).show();
                } else {
                  if (status
                          .get(holder.getAdapterPosition())
                          .equalsIgnoreCase(SurveyActivitiesFragment.STATUS_CURRENT)
                      && (currentRunStatusForActivities
                              .get(holder.getAdapterPosition())
                              .getStatus()
                              .equalsIgnoreCase(SurveyActivitiesFragment.IN_PROGRESS)
                          || currentRunStatusForActivities
                              .get(holder.getAdapterPosition())
                              .getStatus()
                              .equalsIgnoreCase(SurveyActivitiesFragment.YET_To_START))) {
                    if (currentRunStatusForActivities
                        .get(holder.getAdapterPosition())
                        .isRunIdAvailable()) {
                      surveyActivitiesFragment.getActivityInfo(
                          items.get(holder.getAdapterPosition()).getActivityId(),
                          currentRunStatusForActivities
                              .get(holder.getAdapterPosition())
                              .getCurrentRunId(),
                          currentRunStatusForActivities
                              .get(holder.getAdapterPosition())
                              .getStatus(),
                          items.get(holder.getAdapterPosition()).getBranching(),
                          items.get(holder.getAdapterPosition()).getActivityVersion(),
                          currentRunStatusForActivities.get(holder.getAdapterPosition()),
                          items.get(holder.getAdapterPosition()));
                    } else {
                      Toast.makeText(
                              context,
                              context.getResources().getString(R.string.survey_message),
                              Toast.LENGTH_SHORT)
                          .show();
                    }
                  } else if (status
                      .get(holder.getAdapterPosition())
                      .equalsIgnoreCase(SurveyActivitiesFragment.STATUS_UPCOMING)) {
                    Toast.makeText(context, R.string.upcoming_event, Toast.LENGTH_SHORT).show();
                  } else if (currentRunStatusForActivities
                      .get(holder.getAdapterPosition())
                      .getStatus()
                      .equalsIgnoreCase(SurveyActivitiesFragment.INCOMPLETE)) {
                    if (currentRunVal != totalRunVal) {
                      Toast.makeText(context, R.string.incomple_event, Toast.LENGTH_SHORT).show();
                    }
                  } else {
                    if (currentRunVal != totalRunVal) {
                      Toast.makeText(context, R.string.completed_event, Toast.LENGTH_SHORT).show();
                    }
                  }
                }
              }
            }
          });
      holder.more.setOnClickListener(
          new View.OnClickListener() {
            @Override
            public void onClick(View view) {
              Bundle eventProperties = new Bundle();
              eventProperties.putString(
                  CustomFirebaseAnalytics.Param.BUTTON_CLICK_REASON,
                  context.getString(R.string.survey_activities_list_more));
              analyticsInstance.logEvent(
                  CustomFirebaseAnalytics.Event.ADD_BUTTON_CLICK, eventProperties);
              int p = 0;
              try {
                p = timePos.get(holder.getAdapterPosition());
              } catch (Exception e) {
                Logger.log(e);
              }
              CustomActivitiesDailyDialogClass c =
                  new CustomActivitiesDailyDialogClass(
                      context,
                      mScheduledTime,
                      p,
                      false,
                      SurveyActivitiesListAdapter.this,
                      status.get(holder.getAdapterPosition()),
                      currentRunStatusForActivities.get(holder.getAdapterPosition()));
              c.show();
            }
          });

      if (status
              .get(holder.getAdapterPosition())
              .equalsIgnoreCase(SurveyActivitiesFragment.STATUS_CURRENT)) {
        if (!items.get(holder.getAdapterPosition()).getFrequency().getType().equalsIgnoreCase(SurveyScheduler.FREQUENCY_TYPE_ONE_TIME)) {
          if (currentRunStatusForActivities
                  .get(holder.getAdapterPosition())
                  .getStatus()
                  .equalsIgnoreCase(SurveyActivitiesFragment.COMPLETED) || currentRunStatusForActivities
                  .get(holder.getAdapterPosition())
                  .getStatus()
                  .equalsIgnoreCase(SurveyActivitiesFragment.INCOMPLETE) || currentRunStatusForActivities
                  .get(holder.getAdapterPosition()).getCurrentRunId() == 0) {
            holder.container.setBackgroundColor(Color.parseColor("#c6ccd0"));
            holder.itemlayout.setBackgroundColor(Color.parseColor("#c6ccd0"));
            holder.box1.setAlpha(.5f);
            holder.box2.setAlpha(.5f);

            if (currentRunStatusForActivities.get(holder.getAdapterPosition()).getCurrentRunId() <= currentRunStatusForActivities.get(holder.getAdapterPosition()).getTotalRun()) {
              holder.run.setText(
                      context.getResources().getString(R.string.run)
                              + ": "
                              + (currentRunStatusForActivities.get(holder.getAdapterPosition()).getCurrentRunId() + 1)
                              + " of "
                              + currentRunStatusForActivities.get(holder.getAdapterPosition()).getTotalRun()
                              + ", "
                              + currentRunStatusForActivities.get(holder.getAdapterPosition()).getCompletedRun()
                              + " "
                              + context.getResources().getString(R.string.done2)
                              + ", "
                              + currentRunStatusForActivities.get(holder.getAdapterPosition()).getMissedRun()
                              + " "
                              + context.getResources().getString(R.string.missed));
              holder.process.setText(R.string.start);
              bgShape.setColor(context.getResources().getColor(R.color.colorPrimary));
            }
          } else {
            holder.container.setBackgroundColor(context.getResources().getColor(R.color.white));
            holder.itemlayout.setBackgroundColor(context.getResources().getColor(R.color.white));
            holder.box1.setAlpha(1f);
            holder.box2.setAlpha(1f);
          }
        } else {
          holder.container.setBackgroundColor(context.getResources().getColor(R.color.white));
          holder.itemlayout.setBackgroundColor(context.getResources().getColor(R.color.white));
          holder.box1.setAlpha(1f);
          holder.box2.setAlpha(1f);
        }
      } else {
        holder.container.setBackgroundColor(context.getResources().getColor(R.color.white));
        holder.itemlayout.setBackgroundColor(context.getResources().getColor(R.color.white));
        holder.box1.setAlpha(1f);
        holder.box2.setAlpha(1f);
      }
    }
  }