public void onBindViewHolder()

in Android/app/src/main/java/com/harvard/studyappmodule/StudyListAdapter.java [155:380]


  public void onBindViewHolder(final Holder holder, @SuppressLint("RecyclerView") final int position) {

    if (!AppController.getHelperSharedPreference()
        .readPreference(context, context.getResources().getString(R.string.userid), "")
        .equalsIgnoreCase("")) {
      holder.status.setVisibility(View.VISIBLE);
      holder.statusImg.setVisibility(View.VISIBLE);
      holder.completionVal.setVisibility(View.VISIBLE);
      holder.adherenceVal.setVisibility(View.VISIBLE);
      holder.adherence.setVisibility(View.VISIBLE);
      holder.progressBar1.setVisibility(View.VISIBLE);
      holder.progressBar2.setVisibility(View.VISIBLE);

      if (items.get(position).getStudyStatus() != null) {
        if (items.get(position).getStudyStatus().equalsIgnoreCase(StudyFragment.COMPLETED)) {
          holder.statusImg.setImageResource(R.drawable.completed_icn1);
          holder.status.setText(R.string.completed);
        } else if (items
            .get(position)
            .getStudyStatus()
            .equalsIgnoreCase(StudyFragment.NOT_ELIGIBLE)) {
          holder.statusImg.setImageResource(R.drawable.not_eligible_icn1);
          holder.status.setText(R.string.not_eligible);
        } else if (items
            .get(position)
            .getStudyStatus()
            .equalsIgnoreCase(StudyFragment.IN_PROGRESS)) {
          holder.statusImg.setImageResource(R.drawable.in_progress_icn);
          if (items.get(position).getStatus().equalsIgnoreCase("closed")) {
            holder.status.setText(R.string.partial_participation);
          } else {
            holder.status.setText(R.string.in_progress);
          }
        } else if (items
            .get(position)
            .getStudyStatus()
            .equalsIgnoreCase(StudyFragment.YET_TO_JOIN)) {
          holder.statusImg.setImageResource(R.drawable.yet_to_join_icn1);
          if (items.get(position).getStatus().equalsIgnoreCase("closed")) {
            holder.status.setText(R.string.no_participation);
          } else {
            holder.status.setText(R.string.yet_to_join);
          }
        } else if (items.get(position).getStudyStatus().equalsIgnoreCase(StudyFragment.WITHDRAWN)) {
          holder.statusImg.setImageResource(R.drawable.withdrawn_icn1);
          holder.status.setText(R.string.withdrawn);
        } else {
          holder.statusImg.setImageResource(R.drawable.yet_to_join_icn1);
          holder.status.setText(R.string.yet_to_join);
        }
      } else {
        holder.statusImg.setImageResource(R.drawable.yet_to_join_icn1);
        holder.status.setText(R.string.yet_to_join);
      }

      if (items.get(position).getStudyStatus().equalsIgnoreCase(StudyFragment.IN_PROGRESS)
              || items.get(position).getStudyStatus().equalsIgnoreCase(StudyFragment.COMPLETED)) {
        holder.progresslayout.setVisibility(View.VISIBLE);
      } else {
        holder.progresslayout.setVisibility(View.GONE);
      }

      if (completionAdherenceCalcs.size() > 0) {
        try {
          holder.completionVal.setText(
              ""
                  + ((int)
                      completionAdherenceCalcs.get(holder.getAdapterPosition()).getCompletion())
                  + " %");
          holder.adherenceVal.setText(
              ""
                  + ((int)
                      completionAdherenceCalcs.get(holder.getAdapterPosition()).getAdherence())
                  + " %");
          holder.progressBar1.setProgress(
              (int) completionAdherenceCalcs.get(holder.getAdapterPosition()).getCompletion());
          holder.progressBar2.setProgress(
              (int) completionAdherenceCalcs.get(holder.getAdapterPosition()).getAdherence());
        } catch (IndexOutOfBoundsException e) {
          Logger.log(e);
        }
      }

    } else {
      holder.status.setVisibility(View.GONE);
      holder.statusImg.setVisibility(View.GONE);
      holder.completionVal.setVisibility(View.GONE);
      holder.adherenceVal.setVisibility(View.GONE);
      holder.adherence.setVisibility(View.GONE);
      holder.progressBar1.setVisibility(View.GONE);
      holder.progressBar2.setVisibility(View.GONE);
    }

    holder.state.setText(items.get(position).getStatus());
    GradientDrawable bgShape = (GradientDrawable) holder.stateIcon.getBackground();
    if (items.get(position).getStatus().equalsIgnoreCase("active")) {
      bgShape.setColor(context.getResources().getColor(R.color.bullet_green_color));
    } else if (items.get(position).getStatus().equalsIgnoreCase("closed")) {
      bgShape.setColor(context.getResources().getColor(R.color.red));
    } else if (items.get(position).getStatus().equalsIgnoreCase("paused")) {
      bgShape.setColor(context.getResources().getColor(R.color.rectangle_yellow));
    }

    RequestOptions requestOptions = new RequestOptions()
            .diskCacheStrategy(DiskCacheStrategy.ALL)
            .skipMemoryCache(false);

    Glide.with(context)
            .load(Base64.decode(items.get(holder.getAdapterPosition()).getLogo().split(",")[1], Base64.DEFAULT))
            .thumbnail(0.5f)
            .apply(requestOptions)
            .listener(new RequestListener<Drawable>() {
              @Override
              public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
                holder.defaultthumbnail.setVisibility(View.VISIBLE);
                return false;
              }

              @Override
              public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
                holder.defaultthumbnail.setVisibility(View.GONE);
                holder.studyImg.setImageDrawable(resource);
                return false;
              }
            }).into(holder.studyImg);

    holder.studyTitle.setText(items.get(position).getTitle());
    holder.studyTitleLatin.setText(Html.fromHtml(items.get(position).getTagline()));
    try {
      holder.imgTitle.setText(items.get(position).getCategory().toUpperCase());
    } catch (Exception e) {
      Logger.log(e);
    }
    String sponser = "";
    sponser = items.get(position).getSponsorName();
    holder.sponser.setText(sponser);

    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.study_list));
            analyticsInstance.logEvent(
                    CustomFirebaseAnalytics.Event.ADD_BUTTON_CLICK, eventProperties);
            if (click) {
              click = false;
              new Handler()
                  .postDelayed(
                      new Runnable() {
                        @Override
                        public void run() {
                          click = true;
                        }
                      },
                      1500);
              try {
                AppController.getHelperSharedPreference()
                    .writePreference(
                        context,
                        context.getString(R.string.title),
                        "" + items.get(holder.getAdapterPosition()).getTitle());
                AppController.getHelperSharedPreference()
                    .writePreference(
                        context,
                        context.getString(R.string.status),
                        "" + items.get(holder.getAdapterPosition()).getStatus());
                AppController.getHelperSharedPreference()
                    .writePreference(
                        context,
                        context.getString(R.string.studyStatus),
                        "" + items.get(holder.getAdapterPosition()).getStudyStatus());
                AppController.getHelperSharedPreference()
                    .writePreference(
                        context,
                        context.getString(R.string.position),
                        "" + holder.getAdapterPosition());
                AppController.getHelperSharedPreference()
                    .writePreference(
                        context,
                        context.getString(R.string.enroll),
                        "" + items.get(holder.getAdapterPosition()).getSetting().isEnrolling());
                AppController.getHelperSharedPreference()
                    .writePreference(
                        context,
                        context.getString(R.string.studyVersion),
                        "" + items.get(holder.getAdapterPosition()).getStudyVersion());
              } catch (Exception e) {
                Logger.log(e);
              }
              if (items
                      .get(position)
                      .getStatus()
                      .equalsIgnoreCase(context.getString(R.string.active))
                  && items
                      .get(position)
                      .getStudyStatus()
                      .equalsIgnoreCase(StudyFragment.IN_PROGRESS)) {
                studyFragment.getStudyUpdate(
                    items.get(holder.getAdapterPosition()).getStudyId(),
                    items.get(holder.getAdapterPosition()).getStudyVersion(),
                    items.get(holder.getAdapterPosition()).getTitle(),
                    "",
                    "",
                    "",
                    "");
              } else {
                Intent intent =
                    new Intent(context.getApplicationContext(), StudyInfoActivity.class);
                intent.putExtra("studyId", items.get(holder.getAdapterPosition()).getStudyId());
                intent.putExtra("title", items.get(holder.getAdapterPosition()).getTitle());
                intent.putExtra("status", items.get(holder.getAdapterPosition()).getStatus());
                intent.putExtra(
                    "studyStatus", items.get(holder.getAdapterPosition()).getStudyStatus());
                intent.putExtra("position", "" + holder.getAdapterPosition());
                intent.putExtra(
                    "enroll",
                    "" + items.get(holder.getAdapterPosition()).getSetting().isEnrolling());
                ((StudyActivity) context).startActivityForResult(intent, 100);
              }
            }
          }
        });
  }