aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/java/eu/siacs/conversations/ui/ConversationActivity.java93
-rw-r--r--src/main/java/eu/siacs/conversations/ui/ConversationFragment.java197
-rw-r--r--src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java135
3 files changed, 172 insertions, 253 deletions
diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java
index 7c4f2cde..bbefd5be 100644
--- a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java
@@ -15,6 +15,7 @@ import android.os.SystemClock;
import android.provider.MediaStore;
import android.support.v4.widget.SlidingPaneLayout;
import android.support.v4.widget.SlidingPaneLayout.PanelSlideListener;
+import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
@@ -31,6 +32,7 @@ import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
+import eu.siacs.conversations.Config;
import eu.siacs.conversations.R;
import eu.siacs.conversations.entities.Contact;
import eu.siacs.conversations.entities.Conversation;
@@ -72,8 +74,8 @@ public class ConversationActivity extends XmppActivity implements
private List<Conversation> conversationList = new ArrayList<Conversation>();
private Conversation selectedConversation = null;
private ListView listView;
+ private ConversationFragment mConversationFragment;
- private boolean paneShouldBeOpen = true;
private ArrayAdapter<Conversation> listAdapter;
private Toast prepareImageToast;
@@ -95,10 +97,6 @@ public class ConversationActivity extends XmppActivity implements
return this.listView;
}
- public boolean shouldPaneBeOpen() {
- return paneShouldBeOpen;
- }
-
public void showConversationsOverview() {
if (mContentView instanceof SlidingPaneLayout) {
SlidingPaneLayout mSlidingPaneLayout = (SlidingPaneLayout) mContentView;
@@ -143,10 +141,14 @@ public class ConversationActivity extends XmppActivity implements
@Override
protected void onCreate(Bundle savedInstanceState) {
+ Log.d(Config.LOGTAG, "on create");
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
+ Log.d(Config.LOGTAG, savedInstanceState.toString());
+
mOpenConverstaion = savedInstanceState.getString(
STATE_OPEN_CONVERSATION, null);
+ Log.d(Config.LOGTAG, "recovered " + mOpenConverstaion);
mPanelOpen = savedInstanceState.getBoolean(STATE_PANEL_OPEN, true);
String pending = savedInstanceState.getString(STATE_PENDING_URI, null);
if (pending != null) {
@@ -156,6 +158,11 @@ public class ConversationActivity extends XmppActivity implements
setContentView(R.layout.fragment_conversations_overview);
+ this.mConversationFragment = new ConversationFragment();
+ FragmentTransaction transaction = getFragmentManager().beginTransaction();
+ transaction.replace(R.id.selected_conversation, this.mConversationFragment, "conversation");
+ transaction.commit();
+
listView = (ListView) findViewById(R.id.list);
getActionBar().setDisplayHomeAsUpEnabled(false);
@@ -168,13 +175,11 @@ public class ConversationActivity extends XmppActivity implements
@Override
public void onItemClick(AdapterView<?> arg0, View clickedView,
int position, long arg3) {
- paneShouldBeOpen = false;
if (getSelectedConversation() != conversationList.get(position)) {
setSelectedConversation(conversationList.get(position));
- swapConversationFragment();
- } else {
- hideConversationsOverview();
+ ConversationActivity.this.mConversationFragment.reInit(getSelectedConversation());
}
+ hideConversationsOverview();
}
});
mContentView = findViewById(R.id.content_view_spl);
@@ -191,7 +196,6 @@ public class ConversationActivity extends XmppActivity implements
@Override
public void onPanelOpened(View arg0) {
- paneShouldBeOpen = true;
ActionBar ab = getActionBar();
if (ab != null) {
ab.setDisplayHomeAsUpEnabled(false);
@@ -209,7 +213,6 @@ public class ConversationActivity extends XmppActivity implements
@Override
public void onPanelClosed(View arg0) {
- paneShouldBeOpen = false;
if ((conversationList.size() > 0)
&& (getSelectedConversation() != null)) {
openConversation(getSelectedConversation());
@@ -436,7 +439,6 @@ public class ConversationActivity extends XmppActivity implements
public void endConversation(Conversation conversation) {
conversation.setStatus(Conversation.STATUS_ARCHIVED);
- paneShouldBeOpen = true;
showConversationsOverview();
xmppConnectionService.archiveConversation(conversation);
if (conversationList.size() > 0) {
@@ -608,23 +610,6 @@ public class ConversationActivity extends XmppActivity implements
builder.create().show();
}
- protected ConversationFragment swapConversationFragment() {
- ConversationFragment selectedFragment = new ConversationFragment();
- if (!isFinishing()) {
-
- FragmentTransaction transaction = getFragmentManager()
- .beginTransaction();
- transaction.replace(R.id.selected_conversation, selectedFragment,
- "conversation");
- try {
- transaction.commitAllowingStateLoss();
- } catch (IllegalStateException e) {
- return selectedFragment;
- }
- }
- return selectedFragment;
- }
-
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
@@ -674,6 +659,7 @@ public class ConversationActivity extends XmppActivity implements
public void onSaveInstanceState(Bundle savedInstanceState) {
Conversation conversation = getSelectedConversation();
if (conversation != null) {
+ Log.d(Config.LOGTAG, "saving conversation: " + conversation.getName() + " " + conversation.getUuid());
savedInstanceState.putString(STATE_OPEN_CONVERSATION,
conversation.getUuid());
}
@@ -700,24 +686,18 @@ public class ConversationActivity extends XmppActivity implements
handleViewConversationIntent(getIntent());
setIntent(null);
} else if (mOpenConverstaion != null) {
+ Log.d(Config.LOGTAG, "open conversation: " + mOpenConverstaion);
selectConversationByUuid(mOpenConverstaion);
- paneShouldBeOpen = mPanelOpen;
- if (paneShouldBeOpen) {
+ if (mPanelOpen) {
showConversationsOverview();
}
- swapConversationFragment();
+ this.mConversationFragment.reInit(getSelectedConversation());
mOpenConverstaion = null;
- } else {
+ } else if (getSelectedConversation() == null) {
showConversationsOverview();
- ConversationFragment selectedFragment = (ConversationFragment) getFragmentManager()
- .findFragmentByTag("conversation");
- if (selectedFragment != null) {
- selectedFragment.onBackendConnected();
- } else {
- mPendingImageUri = null;
- setSelectedConversation(conversationList.get(0));
- swapConversationFragment();
- }
+ mPendingImageUri = null;
+ setSelectedConversation(conversationList.get(0));
+ this.mConversationFragment.reInit(getSelectedConversation());
}
if (mPendingImageUri != null) {
@@ -730,10 +710,12 @@ public class ConversationActivity extends XmppActivity implements
private void handleViewConversationIntent(Intent intent) {
String uuid = (String) intent.getExtras().get(CONVERSATION);
- String text = intent.getExtras().getString(TEXT, null);
+ String text = intent.getExtras().getString(TEXT, "");
selectConversationByUuid(uuid);
- paneShouldBeOpen = false;
- swapConversationFragment().setText(text);
+ this.mConversationFragment.reInit(getSelectedConversation());
+ this.mConversationFragment.appendText(text);
+ hideConversationsOverview();
+ openConversation(getSelectedConversation());
}
private void selectConversationByUuid(String uuid) {
@@ -917,19 +899,12 @@ public class ConversationActivity extends XmppActivity implements
@Override
public void run() {
updateConversationList();
- if (paneShouldBeOpen) {
- if (conversationList.size() >= 1) {
- swapConversationFragment();
- } else {
+ if (conversationList.size() == 0) {
startActivity(new Intent(getApplicationContext(),
StartConversationActivity.class));
finish();
- }
- }
- ConversationFragment selectedFragment = (ConversationFragment) getFragmentManager()
- .findFragmentByTag("conversation");
- if (selectedFragment != null) {
- selectedFragment.updateMessages();
+ } else {
+ ConversationActivity.this.mConversationFragment.updateMessages();
}
}
});
@@ -937,16 +912,12 @@ public class ConversationActivity extends XmppActivity implements
@Override
public void onRosterUpdate() {
- final ConversationFragment fragment = (ConversationFragment) getFragmentManager()
- .findFragmentByTag("conversation");
- if (fragment != null) {
- runOnUiThread(new Runnable() {
+ runOnUiThread(new Runnable() {
@Override
public void run() {
- fragment.updateMessages();
+ ConversationActivity.this.mConversationFragment.updateMessages();
}
});
- }
}
}
diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java
index f72b4d13..a49a70a6 100644
--- a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java
+++ b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java
@@ -9,8 +9,6 @@ import android.content.Intent;
import android.content.IntentSender;
import android.content.IntentSender.SendIntentException;
import android.os.Bundle;
-import android.text.Editable;
-import android.text.Selection;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Gravity;
@@ -60,80 +58,6 @@ import eu.siacs.conversations.utils.UIHelper;
public class ConversationFragment extends Fragment {
protected Conversation conversation;
- protected ListView messagesView;
- protected LayoutInflater inflater;
- protected List<Message> messageList = new ArrayList<Message>();
- protected MessageAdapter messageListAdapter;
- protected Contact contact;
-
- protected String queuedPqpMessage = null;
-
- private EditMessage mEditMessage;
- private ImageButton mSendButton;
- private String pastedText = null;
- private RelativeLayout snackbar;
- private TextView snackbarMessage;
- private TextView snackbarAction;
-
- private boolean messagesLoaded = false;
-
- private IntentSender askForPassphraseIntent = null;
-
- private ConcurrentLinkedQueue<Message> mEncryptedMessages = new ConcurrentLinkedQueue<Message>();
- private boolean mDecryptJobRunning = false;
-
- private OnEditorActionListener mEditorActionListener = new OnEditorActionListener() {
-
- @Override
- public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
- if (actionId == EditorInfo.IME_ACTION_SEND) {
- InputMethodManager imm = (InputMethodManager) v.getContext()
- .getSystemService(Context.INPUT_METHOD_SERVICE);
- imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
- sendMessage();
- return true;
- } else {
- return false;
- }
- }
- };
-
- private OnClickListener mSendButtonListener = new OnClickListener() {
-
- @Override
- public void onClick(View v) {
- sendMessage();
- }
- };
- protected OnClickListener clickToDecryptListener = new OnClickListener() {
-
- @Override
- public void onClick(View v) {
- if (activity.hasPgp() && askForPassphraseIntent != null) {
- try {
- getActivity().startIntentSenderForResult(
- askForPassphraseIntent,
- ConversationActivity.REQUEST_DECRYPT_PGP, null, 0,
- 0, 0);
- } catch (SendIntentException e) {
- //
- }
- }
- }
- };
-
- private OnClickListener clickToMuc = new OnClickListener() {
-
- @Override
- public void onClick(View v) {
- Intent intent = new Intent(getActivity(),
- ConferenceDetailsActivity.class);
- intent.setAction(ConferenceDetailsActivity.ACTION_VIEW_MUC);
- intent.putExtra("uuid", conversation.getUuid());
- startActivity(intent);
- }
- };
-
private OnClickListener leaveMuc = new OnClickListener() {
@Override
@@ -141,7 +65,6 @@ public class ConversationFragment extends Fragment {
activity.endConversation(conversation);
}
};
-
private OnClickListener joinMuc = new OnClickListener() {
@Override
@@ -149,7 +72,6 @@ public class ConversationFragment extends Fragment {
activity.xmppConnectionService.joinMuc(conversation);
}
};
-
private OnClickListener enterPassword = new OnClickListener() {
@Override
@@ -169,7 +91,18 @@ public class ConversationFragment extends Fragment {
});
}
};
-
+ protected ListView messagesView;
+ protected LayoutInflater inflater;
+ protected List<Message> messageList = new ArrayList<Message>();
+ protected MessageAdapter messageListAdapter;
+ protected Contact contact;
+ protected String queuedPqpMessage = null;
+ private EditMessage mEditMessage;
+ private ImageButton mSendButton;
+ private RelativeLayout snackbar;
+ private TextView snackbarMessage;
+ private TextView snackbarAction;
+ private boolean messagesLoaded = false;
private OnScrollListener mOnScrollListener = new OnScrollListener() {
@Override
@@ -197,7 +130,58 @@ public class ConversationFragment extends Fragment {
}
}
};
+ private IntentSender askForPassphraseIntent = null;
+ protected OnClickListener clickToDecryptListener = new OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+ if (activity.hasPgp() && askForPassphraseIntent != null) {
+ try {
+ getActivity().startIntentSenderForResult(
+ askForPassphraseIntent,
+ ConversationActivity.REQUEST_DECRYPT_PGP, null, 0,
+ 0, 0);
+ } catch (SendIntentException e) {
+ //
+ }
+ }
+ }
+ };
+ private ConcurrentLinkedQueue<Message> mEncryptedMessages = new ConcurrentLinkedQueue<Message>();
+ private boolean mDecryptJobRunning = false;
+ private OnEditorActionListener mEditorActionListener = new OnEditorActionListener() {
+
+ @Override
+ public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
+ if (actionId == EditorInfo.IME_ACTION_SEND) {
+ InputMethodManager imm = (InputMethodManager) v.getContext()
+ .getSystemService(Context.INPUT_METHOD_SERVICE);
+ imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
+ sendMessage();
+ return true;
+ } else {
+ return false;
+ }
+ }
+ };
+ private OnClickListener mSendButtonListener = new OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+ sendMessage();
+ }
+ };
+ private OnClickListener clickToMuc = new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent intent = new Intent(getActivity(),
+ ConferenceDetailsActivity.class);
+ intent.setAction(ConferenceDetailsActivity.ACTION_VIEW_MUC);
+ intent.putExtra("uuid", conversation.getUuid());
+ startActivity(intent);
+ }
+ };
private ConversationActivity activity;
private Message selectedMessage;
@@ -467,15 +451,6 @@ public class ConversationFragment extends Fragment {
}
@Override
- public void onStart() {
- super.onStart();
- this.activity = (ConversationActivity) getActivity();
- if (activity.xmppConnectionServiceBound) {
- this.onBackendConnected();
- }
- }
-
- @Override
public void onStop() {
mDecryptJobRunning = false;
super.onStop();
@@ -484,36 +459,18 @@ public class ConversationFragment extends Fragment {
}
}
- public void onBackendConnected() {
- this.activity = (ConversationActivity) getActivity();
- this.conversation = activity.getSelectedConversation();
- if (this.conversation == null) {
- return;
- }
- String oldString = conversation.getNextMessage().trim();
- if (this.pastedText == null) {
- this.mEditMessage.setText(oldString);
- } else {
-
- if (oldString.isEmpty()) {
- mEditMessage.setText(pastedText);
- } else {
- mEditMessage.setText(oldString + " " + pastedText);
- }
- pastedText = null;
- }
- int position = mEditMessage.length();
- Editable etext = mEditMessage.getText();
- Selection.setSelection(etext, position);
- if (activity.isConversationsOverviewHideable()) {
- if (!activity.shouldPaneBeOpen()) {
- activity.hideConversationsOverview();
- activity.openConversation(conversation);
- }
+ public void reInit(Conversation conversation) {
+ if (this.conversation != null) {
+ this.conversation.setNextMessage(mEditMessage.getText().toString());
}
+ this.activity = (ConversationActivity) getActivity();
+ this.conversation = conversation;
if (this.conversation.getMode() == Conversation.MODE_MULTI) {
- conversation.setNextPresence(null);
+ this.conversation.setNextPresence(null);
}
+ this.mEditMessage.setText("");
+ this.mEditMessage.append(this.conversation.getNextMessage());
+ this.messagesView.invalidate();
updateMessages();
}
@@ -611,7 +568,7 @@ public class ConversationFragment extends Fragment {
}
getActivity().invalidateOptionsMenu();
updateChatMsgHint();
- if (!activity.shouldPaneBeOpen()) {
+ if (!activity.isConversationsOverviewVisable() || !activity.isConversationsOverviewHideable()) {
activity.xmppConnectionService.markRead(conversation, true);
activity.updateConversationList();
}
@@ -888,8 +845,12 @@ public class ConversationFragment extends Fragment {
}
}
- public void setText(String text) {
- this.pastedText = text;
+ public void appendText(String text) {
+ String previous = this.mEditMessage.getText().toString();
+ if (previous.length() != 0 && !previous.endsWith(" ")) {
+ text = " " + text;
+ }
+ this.mEditMessage.append(text);
}
public void clearInputField() {
diff --git a/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java b/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java
index a24f90d7..da7a548c 100644
--- a/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java
+++ b/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java
@@ -1,16 +1,5 @@
package eu.siacs.conversations.ui.adapter;
-import java.util.List;
-
-import eu.siacs.conversations.Config;
-import eu.siacs.conversations.R;
-import eu.siacs.conversations.entities.Contact;
-import eu.siacs.conversations.entities.Conversation;
-import eu.siacs.conversations.entities.Downloadable;
-import eu.siacs.conversations.entities.Message;
-import eu.siacs.conversations.entities.Message.ImageParams;
-import eu.siacs.conversations.ui.ConversationActivity;
-import eu.siacs.conversations.utils.UIHelper;
import android.content.Intent;
import android.graphics.Typeface;
import android.text.Spannable;
@@ -19,9 +8,9 @@ import android.text.style.ForegroundColorSpan;
import android.text.style.StyleSpan;
import android.util.DisplayMetrics;
import android.view.View;
-import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
+import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
@@ -29,6 +18,18 @@ import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
+import java.util.List;
+
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.entities.Contact;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.Downloadable;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.entities.Message.ImageParams;
+import eu.siacs.conversations.ui.ConversationActivity;
+import eu.siacs.conversations.utils.UIHelper;
+
public class MessageAdapter extends ArrayAdapter<Message> {
private static final int SENT = 0;
@@ -323,10 +324,6 @@ public class MessageAdapter extends ArrayAdapter<Message> {
.findViewById(R.id.message_box);
viewHolder.contact_picture = (ImageView) view
.findViewById(R.id.message_photo);
- viewHolder.contact_picture.setImageBitmap(activity
- .avatarService().get(
- item.getConversation().getAccount(),
- activity.getPixel(48)));
viewHolder.download_button = (Button) view
.findViewById(R.id.download_button);
viewHolder.indicator = (ImageView) view
@@ -350,11 +347,6 @@ public class MessageAdapter extends ArrayAdapter<Message> {
.findViewById(R.id.message_photo);
viewHolder.download_button = (Button) view
.findViewById(R.id.download_button);
- if (item.getConversation().getMode() == Conversation.MODE_SINGLE) {
- viewHolder.contact_picture.setImageBitmap(activity
- .avatarService().get(item.getContact(),
- activity.getPixel(48)));
- }
viewHolder.indicator = (ImageView) view
.findViewById(R.id.security_indicator);
viewHolder.image = (ImageView) view
@@ -363,6 +355,8 @@ public class MessageAdapter extends ArrayAdapter<Message> {
.findViewById(R.id.message_body);
viewHolder.time = (TextView) view
.findViewById(R.id.message_time);
+ viewHolder.indicatorReceived = (ImageView) view
+ .findViewById(R.id.indicator_received);
view.setTag(viewHolder);
break;
case STATUS:
@@ -370,30 +364,6 @@ public class MessageAdapter extends ArrayAdapter<Message> {
R.layout.message_status, parent, false);
viewHolder.contact_picture = (ImageView) view
.findViewById(R.id.message_photo);
- if (item.getConversation().getMode() == Conversation.MODE_SINGLE) {
-
- viewHolder.contact_picture.setImageBitmap(activity
- .avatarService().get(
- item.getConversation().getContact(),
- activity.getPixel(32)));
- viewHolder.contact_picture.setAlpha(0.5f);
- viewHolder.contact_picture
- .setOnClickListener(new OnClickListener() {
-
- @Override
- public void onClick(View v) {
- String name = item.getConversation()
- .getName();
- String read = getContext()
- .getString(
- R.string.contact_has_read_up_to_this_point,
- name);
- Toast.makeText(getContext(), read,
- Toast.LENGTH_SHORT).show();
- }
- });
-
- }
break;
default:
viewHolder = null;
@@ -404,9 +374,32 @@ public class MessageAdapter extends ArrayAdapter<Message> {
}
if (type == STATUS) {
+ if (item.getConversation().getMode() == Conversation.MODE_SINGLE) {
+
+ viewHolder.contact_picture.setImageBitmap(activity
+ .avatarService().get(
+ item.getConversation().getContact(),
+ activity.getPixel(32)));
+ viewHolder.contact_picture.setAlpha(0.5f);
+ viewHolder.contact_picture
+ .setOnClickListener(new OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+ String name = item.getConversation()
+ .getName();
+ String read = getContext()
+ .getString(
+ R.string.contact_has_read_up_to_this_point,
+ name);
+ Toast.makeText(getContext(), read,
+ Toast.LENGTH_SHORT).show();
+ }
+ });
+
+ }
return view;
- }
- if (type == NULL) {
+ } else if (type == NULL) {
if (position == getCount() - 1) {
view.getLayoutParams().height = 1;
} else {
@@ -415,6 +408,19 @@ public class MessageAdapter extends ArrayAdapter<Message> {
}
view.setLayoutParams(view.getLayoutParams());
return view;
+ } else if (type == RECEIVED) {
+ Contact contact = item.getContact();
+ if (contact != null) {
+ viewHolder.contact_picture.setImageBitmap(activity.avatarService().get(contact, activity.getPixel(48)));
+ } else if (item.getConversation().getMode() == Conversation.MODE_MULTI) {
+ String name = item.getPresence();
+ if (name == null) {
+ name = item.getCounterpart();
+ }
+ viewHolder.contact_picture.setImageBitmap(activity.avatarService().get(name, activity.getPixel(48)));
+ }
+ } else if (type == SENT) {
+ viewHolder.contact_picture.setImageBitmap(activity.avatarService().get(item.getConversation().getAccount(), activity.getPixel(48)));
}
if (viewHolder.contact_picture != null) {
@@ -426,7 +432,6 @@ public class MessageAdapter extends ArrayAdapter<Message> {
if (MessageAdapter.this.mOnContactPictureClickedListener != null) {
MessageAdapter.this.mOnContactPictureClickedListener
.onContactPictureClicked(item);
- ;
}
}
@@ -447,24 +452,6 @@ public class MessageAdapter extends ArrayAdapter<Message> {
});
}
- if (type == RECEIVED) {
- if (item.getConversation().getMode() == Conversation.MODE_MULTI) {
- Contact contact = item.getContact();
- if (contact != null) {
- viewHolder.contact_picture.setImageBitmap(activity
- .avatarService()
- .get(contact, activity.getPixel(48)));
- } else {
- String name = item.getPresence();
- if (name == null) {
- name = item.getCounterpart();
- }
- viewHolder.contact_picture.setImageBitmap(activity
- .avatarService().get(name, activity.getPixel(48)));
- }
- }
- }
-
if (item.getType() == Message.TYPE_IMAGE
|| item.getDownloadable() != null) {
Downloadable d = item.getDownloadable();
@@ -532,6 +519,14 @@ public class MessageAdapter extends ArrayAdapter<Message> {
}
}
+ public interface OnContactPictureClicked {
+ public void onContactPictureClicked(Message message);
+ }
+
+ public interface OnContactPictureLongClicked {
+ public void onContactPictureLongClicked(Message message);
+ }
+
private static class ViewHolder {
protected LinearLayout message_box;
@@ -544,12 +539,4 @@ public class MessageAdapter extends ArrayAdapter<Message> {
protected ImageView contact_picture;
}
-
- public interface OnContactPictureClicked {
- public void onContactPictureClicked(Message message);
- }
-
- public interface OnContactPictureLongClicked {
- public void onContactPictureLongClicked(Message message);
- }
}