1package eu.siacs.conversations.ui;
2
3import android.content.Context;
4import android.content.Intent;
5import android.os.Bundle;
6import androidx.databinding.DataBindingUtil;
7import eu.siacs.conversations.R;
8import eu.siacs.conversations.databinding.ActivityMediaBrowserBinding;
9import eu.siacs.conversations.entities.Account;
10import eu.siacs.conversations.entities.Contact;
11import eu.siacs.conversations.entities.Conversation;
12import eu.siacs.conversations.ui.adapter.MediaAdapter;
13import eu.siacs.conversations.ui.interfaces.OnMediaLoaded;
14import eu.siacs.conversations.ui.util.Attachment;
15import eu.siacs.conversations.ui.util.GridManager;
16import eu.siacs.conversations.xmpp.Jid;
17import java.util.List;
18
19public class MediaBrowserActivity extends XmppActivity implements OnMediaLoaded {
20
21 private ActivityMediaBrowserBinding binding;
22
23 private MediaAdapter mMediaAdapter;
24
25 @Override
26 protected void onCreate(final Bundle savedInstanceState) {
27 super.onCreate(savedInstanceState);
28 this.binding = DataBindingUtil.setContentView(this, R.layout.activity_media_browser);
29 Activities.setStatusAndNavigationBarColors(this, binding.getRoot());
30 setSupportActionBar(binding.toolbar);
31 configureActionBar(getSupportActionBar());
32 mMediaAdapter = new MediaAdapter(this, R.dimen.media_size);
33 this.binding.media.setAdapter(mMediaAdapter);
34 GridManager.setupLayoutManager(this, this.binding.media, R.dimen.browser_media_size);
35 }
36
37 @Override
38 protected void refreshUiReal() {}
39
40 @Override
41 protected void onBackendConnected() {
42 Intent intent = getIntent();
43 String account = intent == null ? null : intent.getStringExtra("account");
44 String jid = intent == null ? null : intent.getStringExtra("jid");
45 if (account != null && jid != null) {
46 xmppConnectionService.getAttachments(account, Jid.of(jid), 0, this);
47 }
48 }
49
50 public static void launch(Context context, Contact contact) {
51 launch(context, contact.getAccount(), contact.getJid().asBareJid().toString());
52 }
53
54 public static void launch(Context context, Conversation conversation) {
55 launch(context, conversation.getAccount(), conversation.getJid().asBareJid().toString());
56 }
57
58 private static void launch(Context context, Account account, String jid) {
59 final Intent intent = new Intent(context, MediaBrowserActivity.class);
60 intent.putExtra("account", account.getUuid());
61 intent.putExtra("jid", jid);
62 context.startActivity(intent);
63 }
64
65 @Override
66 public void onMediaLoaded(List<Attachment> attachments) {
67 runOnUiThread(
68 () -> {
69 mMediaAdapter.setAttachments(attachments);
70 });
71 }
72}