MucUsersActivity.java

 1package eu.siacs.conversations.ui;
 2
 3import android.content.Intent;
 4import android.databinding.DataBindingUtil;
 5import android.os.Bundle;
 6import android.support.v7.widget.Toolbar;
 7import android.view.MenuItem;
 8import android.widget.Toast;
 9
10import java.util.ArrayList;
11import java.util.Collections;
12
13import eu.siacs.conversations.Config;
14import eu.siacs.conversations.R;
15import eu.siacs.conversations.databinding.ActivityMucUsersBinding;
16import eu.siacs.conversations.entities.Conversation;
17import eu.siacs.conversations.entities.MucOptions;
18import eu.siacs.conversations.services.XmppConnectionService;
19import eu.siacs.conversations.ui.adapter.UserAdapter;
20import eu.siacs.conversations.ui.util.MucDetailsContextMenuHelper;
21import rocks.xmpp.addr.Jid;
22
23public class MucUsersActivity extends XmppActivity implements XmppConnectionService.OnMucRosterUpdate, XmppConnectionService.OnAffiliationChanged {
24
25    private UserAdapter userAdapter;
26
27    private Conversation mConversation = null;
28
29    @Override
30    protected void refreshUiReal() {
31    }
32
33    @Override
34    void onBackendConnected() {
35        final Intent intent = getIntent();
36        final String uuid = intent == null ? null : intent.getStringExtra("uuid");
37        if (uuid != null) {
38            mConversation = xmppConnectionService.findConversationByUuid(uuid);
39        }
40        loadAndSubmitUsers();
41    }
42
43    private void loadAndSubmitUsers() {
44        if (mConversation != null) {
45            ArrayList<MucOptions.User> users = mConversation.getMucOptions().getUsers();
46            Collections.sort(users);
47            userAdapter.submitList(users);
48        }
49    }
50
51    @Override
52    public boolean onContextItemSelected(MenuItem item) {
53        if (!MucDetailsContextMenuHelper.onContextItemSelected(item, userAdapter.getSelectedUser(), this)) {
54            return super.onContextItemSelected(item);
55        }
56        return true;
57    }
58
59    @Override
60    protected void onCreate(final Bundle savedInstanceState) {
61        super.onCreate(savedInstanceState);
62        ActivityMucUsersBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_muc_users);
63        setSupportActionBar((Toolbar) binding.toolbar);
64        configureActionBar(getSupportActionBar(), true);
65        this.userAdapter = new UserAdapter(getPreferences().getBoolean("advanced_muc_mode", false));
66        binding.list.setAdapter(this.userAdapter);
67    }
68
69
70    @Override
71    public void onMucRosterUpdate() {
72        loadAndSubmitUsers();
73    }
74
75     private void displayToast(final String msg) {
76        runOnUiThread(() -> Toast.makeText(this, msg, Toast.LENGTH_SHORT).show());
77    }
78
79    @Override
80    public void onAffiliationChangedSuccessful(Jid jid) {
81
82    }
83
84    @Override
85    public void onAffiliationChangeFailed(Jid jid, int resId) {
86        displayToast(getString(resId, jid.asBareJid().toString()));
87    }
88
89}