gracefully handle null statuses in notifications

This commit is contained in:
Conny Duck 2018-03-01 21:10:10 +01:00
commit ed60cc3a78
4 changed files with 60 additions and 21 deletions

View file

@ -78,19 +78,24 @@ public class StatusViewHolder extends StatusBaseViewHolder {
@Override
void setupWithStatus(StatusViewData.Concrete status, final StatusActionListener listener,
boolean mediaPreviewEnabled) {
super.setupWithStatus(status, listener, mediaPreviewEnabled);
String rebloggedByDisplayName = status.getRebloggedByUsername();
if (rebloggedByDisplayName == null) {
hideRebloggedByDisplayName();
if(status == null) {
showContent(false);
} else {
setRebloggedByDisplayName(rebloggedByDisplayName);
}
showContent(true);
super.setupWithStatus(status, listener, mediaPreviewEnabled);
// I think it's not efficient to create new object every time we bind a holder.
// More efficient approach would be creating View.OnClickListener during holder creation
// and storing StatusActionListener in a variable after binding.
rebloggedBar.setOnClickListener(v -> listener.onOpenReblog(getAdapterPosition()));
String rebloggedByDisplayName = status.getRebloggedByUsername();
if (rebloggedByDisplayName == null) {
hideRebloggedByDisplayName();
} else {
setRebloggedByDisplayName(rebloggedByDisplayName);
}
// I think it's not efficient to create new object every time we bind a holder.
// More efficient approach would be creating View.OnClickListener during holder creation
// and storing StatusActionListener in a variable after binding.
rebloggedBar.setOnClickListener(v -> listener.onOpenReblog(getAdapterPosition()));
}
}
private void setRebloggedByDisplayName(String name) {