aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/ui/MediaBrowserActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/pixart/messenger/ui/MediaBrowserActivity.java')
-rw-r--r--src/main/java/de/pixart/messenger/ui/MediaBrowserActivity.java33
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