diff options
author | steckbrief <steckbrief@chefmail.de> | 2015-10-04 14:55:15 +0200 |
---|---|---|
committer | steckbrief <steckbrief@chefmail.de> | 2015-10-04 15:24:44 +0200 |
commit | 52aa81e82e57a2c1d0074d482e8e706960492b8a (patch) | |
tree | 26c21b35f4b70f840693877a782514498ce94db0 /src/main/java/de/thedevstack/conversationsplus/ui/listeners/ShowResourcesListDialogListener.java | |
parent | a3d62e6a10df307786079a2cc1f93eee591f96c5 (diff) |
Implements FS#72, FS#72, FS#73, FS#65, FS#66 - Resource List Dialog added, Open resource
list on long click in conversations overview, open resource list on click
on bare jid in contact details view, Message details dialog added
Diffstat (limited to '')
-rw-r--r-- | src/main/java/de/thedevstack/conversationsplus/ui/listeners/ShowResourcesListDialogListener.java | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/listeners/ShowResourcesListDialogListener.java b/src/main/java/de/thedevstack/conversationsplus/ui/listeners/ShowResourcesListDialogListener.java new file mode 100644 index 00000000..070ea58c --- /dev/null +++ b/src/main/java/de/thedevstack/conversationsplus/ui/listeners/ShowResourcesListDialogListener.java @@ -0,0 +1,47 @@ +package de.thedevstack.conversationsplus.ui.listeners; + +import android.content.Context; +import android.view.View; + +import de.thedevstack.conversationsplus.R; +import de.thedevstack.conversationsplus.entities.Contact; +import de.thedevstack.conversationsplus.ui.adapter.PresencesArrayAdapter; +import de.thedevstack.conversationsplus.ui.dialogs.AbstractAlertDialog; + +/** + * This listener shows the dialog with the resources of a contact. + * The resources are shown with the color of their current online mode. + * This listener implements OnClickListener and OnLongClickListener. + */ +public class ShowResourcesListDialogListener extends AbstractAlertDialog implements View.OnClickListener, View.OnLongClickListener { + private Contact contact; + + public ShowResourcesListDialogListener(Context context, Contact contact) { + super(context, getTitle(context, contact)); + this.contact = contact; + this.init(); + } + + private static final String getTitle(Context context, Contact contact) { + if (null != contact && null != contact.getJid() && null != contact.getJid().toBareJid()) { + int presenceCount = null != contact.getPresences() ? contact.getPresences().size() : 0; + return context.getString(R.string.dlg_resources_title, contact.getJid().toBareJid().toString(), presenceCount); + } + return null != contact ? contact.toString() : ""; + } + + protected void init() { + this.builder.setAdapter(new PresencesArrayAdapter(getContext(), this.contact.getPresences()), null); + } + + @Override + public void onClick(View v) { + this.show(); + } + + @Override + public boolean onLongClick(View view) { + this.show(); + return true; + } +} |