diff options
Diffstat (limited to 'src/main/java/de/pixart/messenger/ui/MediaBrowserActivity.java')
-rw-r--r-- | src/main/java/de/pixart/messenger/ui/MediaBrowserActivity.java | 33 |
1 files changed, 25 insertions, 8 deletions
diff --git a/src/main/java/de/pixart/messenger/ui/MediaBrowserActivity.java b/src/main/java/de/pixart/messenger/ui/MediaBrowserActivity.java index 2ed416c17..b75af44e9 100644 --- a/src/main/java/de/pixart/messenger/ui/MediaBrowserActivity.java +++ b/src/main/java/de/pixart/messenger/ui/MediaBrowserActivity.java @@ -3,6 +3,7 @@ package de.pixart.messenger.ui; import android.content.Context; import android.content.Intent; import android.os.Bundle; +import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; @@ -13,6 +14,7 @@ import androidx.databinding.DataBindingUtil; import java.util.ArrayList; import java.util.List; +import de.pixart.messenger.Config; import de.pixart.messenger.R; import de.pixart.messenger.databinding.ActivityMediaBrowserBinding; import de.pixart.messenger.entities.Account; @@ -38,6 +40,14 @@ public class MediaBrowserActivity extends XmppActivity implements OnMediaLoaded private String account; private String jid; + @Override + protected void onStart() { + super.onStart(); + filter(OnlyImagesVideos); + invalidateOptionsMenu(); + refreshUiReal(); + } + public static void launch(Context context, Contact contact) { launch(context, contact.getAccount(), contact.getJid().asBareJid().toEscapedString()); } @@ -79,7 +89,7 @@ public class MediaBrowserActivity extends XmppActivity implements OnMediaLoaded } @Override - protected void refreshUiReal() { + public void refreshUiReal() { mMediaAdapter.notifyDataSetChanged(); } @@ -145,19 +155,18 @@ public class MediaBrowserActivity extends XmppActivity implements OnMediaLoaded @Override public void onMediaLoaded(List<Attachment> attachments) { + allAttachments.clear(); allAttachments.addAll(attachments); runOnUiThread(() -> { - if (OnlyImagesVideos) { filter(OnlyImagesVideos); - } else { - loadAttachments(allAttachments); - } }); } private void loadAttachments(List<Attachment> attachments) { if (attachments.size() > 0) { + if (mMediaAdapter.getItemCount() != attachments.size()) { mMediaAdapter.setAttachments(attachments); + } this.binding.noMedia.setVisibility(View.GONE); this.binding.progressbar.setVisibility(View.GONE); } else { @@ -172,20 +181,28 @@ public class MediaBrowserActivity extends XmppActivity implements OnMediaLoaded } } + @Override + public void onResume() { + super.onResume(); + filter(OnlyImagesVideos); + } + protected void filterAttachments(boolean needle) { if (allAttachments.size() > 0) { + if (needle) { final ArrayList<Attachment> attachments = new ArrayList<>(allAttachments); filteredAttachments.clear(); - if (needle) { for (Attachment attachment : attachments) { if (attachment.getMime() != null && (attachment.getMime().startsWith("image/") || attachment.getMime().startsWith("video/"))) { filteredAttachments.add(attachment); } } + loadAttachments(filteredAttachments); } else { - filteredAttachments.addAll(allAttachments); + loadAttachments(allAttachments); } - loadAttachments(filteredAttachments); + } else { + loadAttachments(allAttachments); } } }
\ No newline at end of file |