aboutsummaryrefslogtreecommitdiffstats
path: root/src/eu/siacs/conversations/ui/ShareWithActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/eu/siacs/conversations/ui/ShareWithActivity.java')
-rw-r--r--src/eu/siacs/conversations/ui/ShareWithActivity.java128
1 files changed, 128 insertions, 0 deletions
diff --git a/src/eu/siacs/conversations/ui/ShareWithActivity.java b/src/eu/siacs/conversations/ui/ShareWithActivity.java
new file mode 100644
index 00000000..81616212
--- /dev/null
+++ b/src/eu/siacs/conversations/ui/ShareWithActivity.java
@@ -0,0 +1,128 @@
+package eu.siacs.conversations.ui;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Contact;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.utils.UIHelper;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+public class ShareWithActivity extends XmppActivity {
+
+ private LinearLayout conversations;
+ private LinearLayout contacts;
+
+ private OnClickListener click = new OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+ // TODO Auto-generated method stub
+
+ }
+ };
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+
+ super.onCreate(savedInstanceState);
+
+ setContentView(R.layout.share_with);
+ setTitle("Share with Conversation");
+
+ contacts = (LinearLayout) findViewById(R.id.contacts);
+ conversations = (LinearLayout) findViewById(R.id.conversations);
+
+ }
+
+
+ public View createContactView(String name, String msgTxt, Bitmap bm) {
+ View view = (View) getLayoutInflater().inflate(R.layout.contact, null);
+ view.setBackgroundResource(R.drawable.greybackground);
+ TextView contactName =(TextView) view.findViewById(R.id.contact_display_name);
+ contactName.setText(name);
+ TextView msg = (TextView) view.findViewById(R.id.contact_jid);
+ msg.setText(msgTxt);
+ ImageView imageView = (ImageView) view.findViewById(R.id.contact_photo);
+ imageView.setImageBitmap(bm);
+ return view;
+ }
+
+
+
+ @Override
+ void onBackendConnected() {
+ Set<String> displayedContacts = new HashSet<String>();
+ conversations.removeAllViews();
+ List<Conversation> convList = xmppConnectionService.getConversations();
+ Collections.sort(convList, new Comparator<Conversation>() {
+ @Override
+ public int compare(Conversation lhs, Conversation rhs) {
+ return (int) (rhs.getLatestMessage().getTimeSent() - lhs.getLatestMessage().getTimeSent());
+ }
+ });
+ for(final Conversation conversation : convList) {
+ View view = createContactView(conversation.getName(), conversation.getLatestMessage().getBody().trim(), UIHelper.getContactPicture(conversation.getContact(),conversation.getName(), 90,this.getApplicationContext()));
+ view.setOnClickListener(new OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+ String sharedText = getIntent().getStringExtra(Intent.EXTRA_TEXT);
+ switchToConversation(conversation, sharedText);
+ finish();
+ }
+ });
+ conversations.addView(view);
+ if (conversation.getContact() != null) {
+ displayedContacts.add(conversation.getContact().getUuid());
+ }
+ }
+ contacts.removeAllViews();
+ final List<Contact> contactsList = new ArrayList<Contact>();
+ for(Account account : xmppConnectionService.getAccounts()) {
+ for(final Contact contact : xmppConnectionService.getRoster(account)) {
+ if (!displayedContacts.contains(contact.getUuid())) {
+ contactsList.add(contact);
+ }
+ }
+ }
+
+ Collections.sort(contactsList, new Comparator<Contact>() {
+ @Override
+ public int compare(Contact lhs, Contact rhs) {
+ return lhs.getDisplayName().compareToIgnoreCase(rhs.getDisplayName());
+ }
+ });
+
+ for(int i = 0; i < contactsList.size(); ++i) {
+ final Contact con = contactsList.get(i);
+ View view = createContactView(con.getDisplayName(), con.getJid(), UIHelper.getContactPicture(con,null, 90,this.getApplicationContext()));
+ view.setOnClickListener(new OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+ String sharedText = getIntent().getStringExtra(Intent.EXTRA_TEXT);
+ Conversation conversation = xmppConnectionService.findOrCreateConversation(con.getAccount(), con.getJid(), false);
+ switchToConversation(conversation, sharedText);
+ finish();
+ }
+ });
+ contacts.addView(view);
+ }
+ }
+
+}