public void onBindViewHolder()

in Android/app/src/main/java/com/harvard/studyappmodule/NotificationListAdapter.java [98:334]


  public void onBindViewHolder(final Holder holder, final int position) {
    try {
      holder.notificationMsg.setText(items.get(holder.getAdapterPosition()).getMessage());
      holder.dayTimeDisplay.setText(
          AppController.getDateFormatForNotification()
              .format(
                  AppController.getDateFormatForApi()
                      .parse(items.get(holder.getAdapterPosition()).getDate())));

      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.notification_list));
              analyticsInstance.logEvent(
                  CustomFirebaseAnalytics.Event.ADD_BUTTON_CLICK, eventProperties);
              if (!AppController.getHelperSharedPreference()
                  .readPreference(context, context.getResources().getString(R.string.userid), "")
                  .equalsIgnoreCase("")) {
                if (items.get(holder.getAdapterPosition()).getType().equalsIgnoreCase("Gateway")) {
                  if (items
                      .get(holder.getAdapterPosition())
                      .getSubtype()
                      .equalsIgnoreCase("Study")
                      || items
                      .get(holder.getAdapterPosition())
                      .getSubtype().equalsIgnoreCase("Activity")
                      || items
                      .get(holder.getAdapterPosition())
                      .getSubtype().equalsIgnoreCase("Announcement")
                      || items
                      .get(holder.getAdapterPosition())
                      .getSubtype().equalsIgnoreCase("studyEvent")) {

                    Study study = dbServiceSubscriber.getStudyListFromDB(realm);
                    if (study != null) {
                      RealmList<StudyList> studyListArrayList = study.getStudies();
                      studyListArrayList =
                          dbServiceSubscriber.saveStudyStatusToStudyList(studyListArrayList, realm);
                      boolean isStudyAvailable = false;
                      for (int i = 0; i < studyListArrayList.size(); i++) {
                        if (items
                            .get(holder.getAdapterPosition())
                            .getStudyId()
                            .equalsIgnoreCase(studyListArrayList.get(i).getStudyId())) {
                          try {
                            AppController.getHelperSharedPreference()
                                .writePreference(
                                    context,
                                    context.getString(R.string.title),
                                    "" + studyListArrayList.get(i).getTitle());
                            AppController.getHelperSharedPreference()
                                .writePreference(
                                    context,
                                    context.getString(R.string.status),
                                    "" + studyListArrayList.get(i).getStatus());
                            AppController.getHelperSharedPreference()
                                .writePreference(
                                    context,
                                    context.getString(R.string.studyStatus),
                                    "" + studyListArrayList.get(i).getStudyStatus());
                            AppController.getHelperSharedPreference()
                                .writePreference(
                                    context, context.getString(R.string.position), "" + i);
                            AppController.getHelperSharedPreference()
                                .writePreference(
                                    context,
                                    context.getString(R.string.enroll),
                                    "" + studyListArrayList.get(i).getSetting().isEnrolling());
                            AppController.getHelperSharedPreference()
                                .writePreference(
                                    context,
                                    context.getString(R.string.studyVersion),
                                    "" + studyListArrayList.get(i).getStudyVersion());
                          } catch (Exception e) {
                            Logger.log(e);
                          }
                          if (studyListArrayList
                                  .get(i)
                                  .getStatus()
                                  .equalsIgnoreCase(context.getString(R.string.active))
                              && studyListArrayList
                                  .get(i)
                                  .getStudyStatus()
                                  .equalsIgnoreCase(StudyFragment.IN_PROGRESS)) {
                            Intent intent = new Intent(context, SurveyActivity.class);
                            intent.putExtra(
                                "studyId", items.get(holder.getAdapterPosition()).getStudyId());
                            context.startActivity(intent);
                          } else if (studyListArrayList
                              .get(i)
                              .getStatus()
                              .equalsIgnoreCase(context.getString(R.string.paused))) {
                            Toast.makeText(context, R.string.study_paused, Toast.LENGTH_SHORT)
                                .show();
                          } else if (studyListArrayList
                              .get(i)
                              .getStatus()
                              .equalsIgnoreCase(context.getString(R.string.closed))) {
                            Toast.makeText(context, R.string.study_resume, Toast.LENGTH_SHORT)
                                .show();
                          } else {
                            Intent intent =
                                new Intent(
                                    context.getApplicationContext(), StudyInfoActivity.class);
                            intent.putExtra("studyId", studyListArrayList.get(i).getStudyId());
                            intent.putExtra("title", studyListArrayList.get(i).getTitle());
                            intent.putExtra("status", studyListArrayList.get(i).getStatus());
                            intent.putExtra(
                                "studyStatus", studyListArrayList.get(i).getStudyStatus());
                            intent.putExtra("position", "" + i);
                            intent.putExtra(
                                "enroll",
                                "" + studyListArrayList.get(i).getSetting().isEnrolling());
                            context.startActivity(intent);
                          }
                          isStudyAvailable = true;
                          break;
                        }
                      }
                      if (!isStudyAvailable) {
                        Intent intent =
                            new Intent(context.getApplicationContext(), StudyActivity.class);
                        context.startActivity(intent);
                      }
                    } else {
                      Toast.makeText(context, R.string.studyNotAvailable, Toast.LENGTH_SHORT)
                          .show();
                    }
                  } else if (items
                      .get(holder.getAdapterPosition())
                      .getSubtype()
                      .equalsIgnoreCase("Resource")) {
                    Intent intent = new Intent();
                    intent.putExtra("action", "refresh");
                    ((Activity) context).setResult(Activity.RESULT_OK, intent);
                    ((Activity) context).finish();
                  }
                } else if (items
                    .get(holder.getAdapterPosition())
                    .getType()
                    .equalsIgnoreCase("Study")) {
                  if (items
                          .get(holder.getAdapterPosition())
                          .getSubtype()
                          .equalsIgnoreCase("Activity")
                      || items
                          .get(holder.getAdapterPosition())
                          .getSubtype()
                          .equalsIgnoreCase("Resource")) {
                    Study study = dbServiceSubscriber.getStudyListFromDB(realm);
                    if (study != null) {
                      RealmList<StudyList> studyListArrayList = study.getStudies();
                      studyListArrayList =
                          dbServiceSubscriber.saveStudyStatusToStudyList(studyListArrayList, realm);
                      boolean isStudyAvailable = false;
                      boolean isStudyJoined = false;
                      for (int i = 0; i < studyListArrayList.size(); i++) {
                        if (items
                            .get(holder.getAdapterPosition())
                            .getStudyId()
                            .equalsIgnoreCase(studyListArrayList.get(i).getStudyId())) {
                          isStudyAvailable = true;
                          try {
                            AppController.getHelperSharedPreference()
                                .writePreference(
                                    context,
                                    context.getString(R.string.title),
                                    "" + studyListArrayList.get(i).getTitle());
                            AppController.getHelperSharedPreference()
                                .writePreference(
                                    context,
                                    context.getString(R.string.status),
                                    "" + studyListArrayList.get(i).getStatus());
                            AppController.getHelperSharedPreference()
                                .writePreference(
                                    context,
                                    context.getString(R.string.studyStatus),
                                    "" + studyListArrayList.get(i).getStudyStatus());
                            AppController.getHelperSharedPreference()
                                .writePreference(
                                    context, context.getString(R.string.position), "" + i);
                            AppController.getHelperSharedPreference()
                                .writePreference(
                                    context,
                                    context.getString(R.string.enroll),
                                    "" + studyListArrayList.get(i).getSetting().isEnrolling());
                          } catch (Exception e) {
                            Logger.log(e);
                          }
                          if (studyListArrayList
                                  .get(i)
                                  .getStatus()
                                  .equalsIgnoreCase(context.getString(R.string.active))
                              && studyListArrayList
                                  .get(i)
                                  .getStudyStatus()
                                  .equalsIgnoreCase(StudyFragment.IN_PROGRESS)) {
                            Intent intent = new Intent(context, SurveyActivity.class);
                            intent.putExtra(
                                "studyId", items.get(holder.getAdapterPosition()).getStudyId());
                            intent.putExtra("from", "NotificationActivity");
                            intent.putExtra(
                                "to", items.get(holder.getAdapterPosition()).getSubtype());
                            context.startActivity(intent);
                            isStudyJoined = true;
                            break;
                          } else {
                            isStudyJoined = false;
                            break;
                          }
                        }
                      }
                      if (!isStudyAvailable) {
                        Toast.makeText(context, R.string.studyNotAvailable, Toast.LENGTH_SHORT)
                            .show();
                      } else if (!isStudyJoined) {
                        Toast.makeText(context, R.string.studyNotJoined, Toast.LENGTH_SHORT).show();
                      }
                    } else {
                      Toast.makeText(context, R.string.studyNotAvailable, Toast.LENGTH_SHORT)
                          .show();
                    }
                  }
                }
              } else {
                Toast.makeText(context, R.string.studyNotAvailable, Toast.LENGTH_SHORT).show();
              }
            }
          });
    } catch (Exception e) {
      Logger.log(e);
    }
  }