diff options
author | Christian Schneppe <kriztan@users.noreply.github.com> | 2018-09-27 18:42:25 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-27 18:42:25 +0200 |
commit | 4f4a52f068f3b3956aca5934531a48d1f90d7974 (patch) | |
tree | da24e0f840730a75f2b3dab69a3b5f12025391be /src/main/java/de/pixart/messenger/ui/MediaBrowserActivity.java | |
parent | 1816092e68584b5794303578b6af6d621ffc58d4 (diff) | |
parent | f4ac1f68feac3e3b19ab5932ede9d79dd14bff27 (diff) |
Merge branch 'master' into bubble-into-avatar
Diffstat (limited to '')
-rw-r--r-- | src/main/java/de/pixart/messenger/ui/MediaBrowserActivity.java | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/src/main/java/de/pixart/messenger/ui/MediaBrowserActivity.java b/src/main/java/de/pixart/messenger/ui/MediaBrowserActivity.java new file mode 100644 index 000000000..4b32b42ab --- /dev/null +++ b/src/main/java/de/pixart/messenger/ui/MediaBrowserActivity.java @@ -0,0 +1,77 @@ +package de.pixart.messenger.ui; + +import android.content.Context; +import android.content.Intent; +import android.databinding.DataBindingUtil; +import android.os.Bundle; +import android.support.v7.widget.Toolbar; + +import java.util.List; + +import de.pixart.messenger.R; +import de.pixart.messenger.databinding.ActivityMediaBrowserBinding; +import de.pixart.messenger.entities.Account; +import de.pixart.messenger.entities.Contact; +import de.pixart.messenger.entities.Conversation; +import de.pixart.messenger.ui.adapter.MediaAdapter; +import de.pixart.messenger.ui.interfaces.OnMediaLoaded; +import de.pixart.messenger.ui.util.Attachment; +import de.pixart.messenger.ui.util.GridManager; +import rocks.xmpp.addr.Jid; + + +public class MediaBrowserActivity extends XmppActivity implements OnMediaLoaded { + + private ActivityMediaBrowserBinding binding; + + private MediaAdapter mMediaAdapter; + + public static void launch(Context context, Contact contact) { + launch(context, contact.getAccount(), contact.getJid().asBareJid().toEscapedString()); + } + + public static void launch(Context context, Conversation conversation) { + launch(context, conversation.getAccount(), conversation.getJid().asBareJid().toEscapedString()); + } + + private static void launch(Context context, Account account, String jid) { + final Intent intent = new Intent(context, MediaBrowserActivity.class); + intent.putExtra("account", account.getUuid()); + intent.putExtra("jid", jid); + context.startActivity(intent); + } + + @Override + protected void onCreate(final Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + this.binding = DataBindingUtil.setContentView(this, R.layout.activity_media_browser); + setSupportActionBar((Toolbar) binding.toolbar); + configureActionBar(getSupportActionBar()); + mMediaAdapter = new MediaAdapter(this, R.dimen.media_size); + this.binding.media.setAdapter(mMediaAdapter); + GridManager.setupLayoutManager(this, this.binding.media, R.dimen.browser_media_size); + + } + + @Override + protected void refreshUiReal() { + + } + + @Override + void onBackendConnected() { + Intent intent = getIntent(); + String account = intent == null ? null : intent.getStringExtra("account"); + String jid = intent == null ? null : intent.getStringExtra("jid"); + if (account != null && jid != null) { + xmppConnectionService.getAttachments(account, Jid.of(jid), 0, this); + } + } + + @Override + public void onMediaLoaded(List<Attachment> attachments) { + runOnUiThread(() -> { + mMediaAdapter.setAttachments(attachments); + }); + } +}
\ No newline at end of file |