BarInsta/app/src/main/java/awais/instagrabber/adapters/viewholder/StoryListViewHolder.java

83 lines
3.4 KiB
Java

package awais.instagrabber.adapters.viewholder;
import android.view.View;
import androidx.recyclerview.widget.RecyclerView;
import awais.instagrabber.R;
import awais.instagrabber.adapters.FeedStoriesListAdapter.OnFeedStoryClickListener;
import awais.instagrabber.adapters.HighlightStoriesListAdapter.OnHighlightStoryClickListener;
import awais.instagrabber.databinding.ItemNotificationBinding;
import awais.instagrabber.repositories.responses.stories.Story;
import awais.instagrabber.utils.ResponseBodyUtils;
public final class StoryListViewHolder extends RecyclerView.ViewHolder {
private final ItemNotificationBinding binding;
public StoryListViewHolder(final ItemNotificationBinding binding) {
super(binding.getRoot());
this.binding = binding;
}
public void bind(final Story model,
final OnFeedStoryClickListener notificationClickListener) {
if (model == null) return;
final int storiesCount = model.getMediaCount();
binding.tvComment.setVisibility(View.VISIBLE);
binding.tvComment.setText(itemView.getResources().getQuantityString(R.plurals.stories_count, storiesCount, storiesCount));
binding.tvSubComment.setVisibility(View.GONE);
binding.tvDate.setText(model.getDateTime());
binding.tvUsername.setText(model.getUser().getUsername());
binding.ivProfilePic.setImageURI(model.getUser().getProfilePicUrl());
binding.ivProfilePic.setOnClickListener(v -> {
if (notificationClickListener == null) return;
notificationClickListener.onProfileClick(model.getUser().getUsername());
});
if (model.getItems() != null && model.getItems().size() > 0) {
binding.ivPreviewPic.setVisibility(View.VISIBLE);
binding.ivPreviewPic.setImageURI(ResponseBodyUtils.getThumbUrl(model.getItems().get(0)));
} else binding.ivPreviewPic.setVisibility(View.INVISIBLE);
float alpha = model.getSeen() != null && model.getSeen().equals(model.getLatestReelMedia())
? 0.5F : 1.0F;
binding.ivProfilePic.setAlpha(alpha);
binding.ivPreviewPic.setAlpha(alpha);
binding.tvUsername.setAlpha(alpha);
binding.tvComment.setAlpha(alpha);
binding.tvDate.setAlpha(alpha);
itemView.setOnClickListener(v -> {
if (notificationClickListener == null) return;
notificationClickListener.onFeedStoryClick(model);
});
}
public void bind(final Story model,
final int position,
final OnHighlightStoryClickListener notificationClickListener) {
if (model == null) return;
final int storiesCount = model.getMediaCount();
binding.tvComment.setVisibility(View.VISIBLE);
binding.tvComment.setText(itemView.getResources().getQuantityString(R.plurals.stories_count, storiesCount, storiesCount));
binding.tvSubComment.setVisibility(View.GONE);
binding.tvUsername.setText(model.getDateTime());
binding.ivProfilePic.setVisibility(View.GONE);
binding.ivPreviewPic.setVisibility(View.VISIBLE);
binding.ivPreviewPic.setImageURI(model.getCoverImageVersion().getUrl());
itemView.setOnClickListener(v -> {
if (notificationClickListener == null) return;
notificationClickListener.onHighlightClick(model, position);
});
}
}