Fix some thumbnail images not showing up in MediaGallery.

This commit is contained in:
Clark 2023-01-24 13:44:04 -05:00 committed by Greyson Parrelli
parent 25aa4f39a3
commit e3b38e6d38

View file

@ -183,6 +183,14 @@ final class MediaGalleryAllAdapter extends StickyHeaderGridAdapter {
}
}
@Override
public void onViewAttachedToWindow(@NonNull ViewHolder holder) {
super.onViewAttachedToWindow(holder);
if (holder instanceof SelectableViewHolder) {
((SelectableViewHolder) holder).onAttached();
}
}
@Override
public int getSectionCount() {
return media.getSectionCount();
@ -264,6 +272,10 @@ final class MediaGalleryAllAdapter extends StickyHeaderGridAdapter {
bound = true;
}
void rebind() {
bound = true;
}
void unbind() {
bound = false;
}
@ -297,6 +309,12 @@ final class MediaGalleryAllAdapter extends StickyHeaderGridAdapter {
unbind();
}
}
void onAttached() {
if (!bound) {
rebind();
}
}
}
private class GalleryViewHolder extends SelectableViewHolder {
@ -307,6 +325,8 @@ final class MediaGalleryAllAdapter extends StickyHeaderGridAdapter {
private final ThumbnailView thumbnailView;
private final TextView imageFileSize;
private Slide slide;
GalleryViewHolder(@NonNull View itemView) {
super(itemView);
this.thumbnailView = itemView.findViewById(R.id.image);
@ -316,7 +336,7 @@ final class MediaGalleryAllAdapter extends StickyHeaderGridAdapter {
@Override
public void bind(@NonNull Context context, @NonNull MediaTable.MediaRecord mediaRecord, @NonNull Slide slide) {
super.bind(context, mediaRecord, slide);
this.slide = slide;
if (showFileSizes | detailView) {
imageFileSize.setText(Util.getPrettyFileSize(slide.getFileSize()));
imageFileSize.setVisibility(View.VISIBLE);
@ -340,6 +360,12 @@ final class MediaGalleryAllAdapter extends StickyHeaderGridAdapter {
thumbnailView.setScaleY(scale);
}
@Override
void rebind() {
thumbnailView.setImageResource(glideRequests, slide, false, false);
super.rebind();
}
@Override
void unbind() {
thumbnailView.clear(glideRequests);
@ -398,6 +424,13 @@ final class MediaGalleryAllAdapter extends StickyHeaderGridAdapter {
liveDataPair.observeForever(this);
}
@Override
void rebind() {
liveDataPair.observeForever(this);
handler.postDelayed(selectForMarque, 2500);
super.rebind();
}
@Override
void unbind() {
liveDataPair.removeObserver(this);
@ -517,6 +550,12 @@ final class MediaGalleryAllAdapter extends StickyHeaderGridAdapter {
return context.getString(R.string.ThreadRecord_voice_message);
}
@Override
void rebind() {
super.rebind();
audioItemListener.registerPlaybackStateObserver(audioView.getPlaybackStateObserver());
}
@Override
void unbind() {
super.unbind();
@ -533,6 +572,8 @@ final class MediaGalleryAllAdapter extends StickyHeaderGridAdapter {
private final ThumbnailView thumbnailView;
private Slide slide;
GalleryDetailViewHolder(@NonNull View itemView) {
super(itemView);
this.thumbnailView = itemView.findViewById(R.id.image);
@ -541,7 +582,7 @@ final class MediaGalleryAllAdapter extends StickyHeaderGridAdapter {
@Override
public void bind(@NonNull Context context, @NonNull MediaTable.MediaRecord mediaRecord, @NonNull Slide slide) {
super.bind(context, mediaRecord, slide);
this.slide = slide;
thumbnailView.setImageResource(glideRequests, slide, false, false);
thumbnailView.setOnClickListener(view -> itemClickListener.onMediaClicked(mediaRecord));
thumbnailView.setOnLongClickListener(view -> onLongClick());
@ -554,6 +595,12 @@ final class MediaGalleryAllAdapter extends StickyHeaderGridAdapter {
return super.getFileTypeDescription(context, slide);
}
@Override
void rebind() {
thumbnailView.setImageResource(glideRequests, slide, false, false);
super.rebind();
}
@Override
void unbind() {
thumbnailView.clear(glideRequests);