mirror of https://github.com/KokaKiwi/BarInsta
83 lines
3.4 KiB
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);
|
|
});
|
|
}
|
|
} |