in Android/app/src/main/java/com/example/samplestickerapp/StickerPackListAdapter.java [53:82]
public void onBindViewHolder(@NonNull final StickerPackListItemViewHolder viewHolder, final int index) {
StickerPack pack = stickerPacks.get(index);
final Context context = viewHolder.publisherView.getContext();
viewHolder.publisherView.setText(pack.publisher);
viewHolder.filesizeView.setText(Formatter.formatShortFileSize(context, pack.getTotalSize()));
viewHolder.titleView.setText(pack.name);
viewHolder.container.setOnClickListener(view -> {
Intent intent = new Intent(view.getContext(), StickerPackDetailsActivity.class);
intent.putExtra(StickerPackDetailsActivity.EXTRA_SHOW_UP_BUTTON, true);
intent.putExtra(StickerPackDetailsActivity.EXTRA_STICKER_PACK_DATA, pack);
view.getContext().startActivity(intent);
});
viewHolder.imageRowView.removeAllViews();
//if this sticker pack contains less stickers than the max, then take the smaller size.
int actualNumberOfStickersToShow = Math.min(maxNumberOfStickersInARow, pack.getStickers().size());
for (int i = 0; i < actualNumberOfStickersToShow; i++) {
final SimpleDraweeView rowImage = (SimpleDraweeView) LayoutInflater.from(context).inflate(R.layout.sticker_packs_list_image_item, viewHolder.imageRowView, false);
rowImage.setImageURI(StickerPackLoader.getStickerAssetUri(pack.identifier, pack.getStickers().get(i).imageFileName));
final LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) rowImage.getLayoutParams();
final int marginBetweenImages = minMarginBetweenImages - lp.leftMargin - lp.rightMargin;
if (i != actualNumberOfStickersToShow - 1 && marginBetweenImages > 0) { //do not set the margin for the last image
lp.setMargins(lp.leftMargin, lp.topMargin, lp.rightMargin + marginBetweenImages, lp.bottomMargin);
rowImage.setLayoutParams(lp);
}
viewHolder.imageRowView.addView(rowImage);
}
setAddButtonAppearance(viewHolder.addButton, pack);
viewHolder.animatedStickerPackIndicator.setVisibility(pack.animatedStickerPack ? View.VISIBLE : View.GONE);
}