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