use of org.fossasia.openevent.core.bookmark.BookmarkStatus.Status.CODE_UNDO_REMOVED in project open-event-android by fossasia.
the class DayScheduleViewHolder method bindSession.
public void bindSession(RealmDataRepository realmRepo) {
String startTimeText = DateConverter.formatDateWithDefault(DateConverter.FORMAT_24H, session.getStartsAt());
String endTimeText = DateConverter.formatDateWithDefault(DateConverter.FORMAT_24H, session.getEndsAt());
String title = Utils.checkStringEmpty(session.getTitle());
startTime.setText(startTimeText);
endTime.setText(endTimeText);
slotTitle.setText(title);
Track sessionTrack = session.getTrack();
if (!RealmDataRepository.isNull(sessionTrack)) {
int storedColor = Color.parseColor(sessionTrack.getColor());
slotTrack.setVisibility(View.VISIBLE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
slotTrack.setBackground(context.getDrawable(R.drawable.button_ripple));
}
slotTrack.getBackground().setColorFilter(storedColor, PorterDuff.Mode.SRC_ATOP);
slotTrack.setText(sessionTrack.getName());
if (session.getIsBookmarked()) {
slotBookmark.setImageResource(R.drawable.ic_bookmark_white_24dp);
} else {
slotBookmark.setImageResource(R.drawable.ic_bookmark_border_white_24dp);
}
slotBookmark.setColorFilter(storedColor, PorterDuff.Mode.SRC_ATOP);
final int sessionId = session.getId();
slotBookmark.setOnClickListener(v -> {
if (session.getIsBookmarked()) {
realmRepo.setBookmark(sessionId, false).subscribe();
slotBookmark.setImageResource(R.drawable.ic_bookmark_border_white_24dp);
if (onBookmarkSelectedListener != null)
onBookmarkSelectedListener.showSnackbar(new BookmarkStatus(storedColor, sessionId, CODE_UNDO_REMOVED));
} else {
// TODO: Move all logic to ViewModel
NotificationUtil.createNotification(session, context).subscribe(() -> {
if (onBookmarkSelectedListener != null)
onBookmarkSelectedListener.showSnackbar(new BookmarkStatus(storedColor, sessionId, CODE_UNDO_ADDED));
}, throwable -> {
if (onBookmarkSelectedListener != null)
onBookmarkSelectedListener.showSnackbar(new BookmarkStatus(-1, -1, CODE_ERROR));
});
realmRepo.setBookmark(sessionId, true).subscribe();
slotBookmark.setImageResource(R.drawable.ic_bookmark_white_24dp);
slotBookmark.setColorFilter(storedColor, PorterDuff.Mode.SRC_ATOP);
}
WidgetUpdater.updateWidget(context);
});
slotTrack.setOnClickListener(v -> {
Intent intent = new Intent(context, TrackSessionsActivity.class);
intent.putExtra(ConstantStrings.TRACK, sessionTrack.getName());
intent.putExtra(ConstantStrings.TRACK_ID, sessionTrack.getId());
context.startActivity(intent);
});
itemView.setOnClickListener(v -> {
final String sessionName = session.getTitle();
realmRepo.getTrack(session.getTrack().getId()).addChangeListener((RealmChangeListener<Track>) track -> {
String trackName = track.getName();
Intent intent = new Intent(context, SessionDetailActivity.class);
intent.putExtra(ConstantStrings.SESSION, sessionName);
intent.putExtra(ConstantStrings.TRACK, trackName);
intent.putExtra(ConstantStrings.ID, session.getId());
context.startActivity(intent);
});
});
} else {
slotTrack.setOnClickListener(null);
slotTrack.setVisibility(View.GONE);
itemView.setOnClickListener(v -> {
final String sessionName = session.getTitle();
Intent intent = new Intent(context, SessionDetailActivity.class);
intent.putExtra(ConstantStrings.SESSION, sessionName);
intent.putExtra(ConstantStrings.ID, session.getId());
context.startActivity(intent);
});
Timber.d("This session has no track somehow : " + session + " " + sessionTrack);
}
if (session.getMicrolocation() != null) {
String locationName = Utils.checkStringEmpty(session.getMicrolocation().getName());
slotLocation.setText(locationName);
}
}
Aggregations