refactored the message adapter a bit
This commit is contained in:
parent
be358b77d6
commit
aaeba697bd
|
@ -25,6 +25,7 @@ import java.util.List;
|
||||||
|
|
||||||
import eu.siacs.conversations.Config;
|
import eu.siacs.conversations.Config;
|
||||||
import eu.siacs.conversations.R;
|
import eu.siacs.conversations.R;
|
||||||
|
import eu.siacs.conversations.entities.Account;
|
||||||
import eu.siacs.conversations.entities.Contact;
|
import eu.siacs.conversations.entities.Contact;
|
||||||
import eu.siacs.conversations.entities.Conversation;
|
import eu.siacs.conversations.entities.Conversation;
|
||||||
import eu.siacs.conversations.entities.Downloadable;
|
import eu.siacs.conversations.entities.Downloadable;
|
||||||
|
@ -339,7 +340,9 @@ public class MessageAdapter extends ArrayAdapter<Message> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View getView(int position, View view, ViewGroup parent) {
|
public View getView(int position, View view, ViewGroup parent) {
|
||||||
final Message item = getItem(position);
|
final Message message = getItem(position);
|
||||||
|
final Conversation conversation = message.getConversation();
|
||||||
|
final Account account = conversation.getAccount();
|
||||||
int type = getItemViewType(position);
|
int type = getItemViewType(position);
|
||||||
ViewHolder viewHolder;
|
ViewHolder viewHolder;
|
||||||
if (view == null) {
|
if (view == null) {
|
||||||
|
@ -407,10 +410,9 @@ public class MessageAdapter extends ArrayAdapter<Message> {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type == STATUS) {
|
if (type == STATUS) {
|
||||||
if (item.getConversation().getMode() == Conversation.MODE_SINGLE) {
|
if (conversation.getMode() == Conversation.MODE_SINGLE) {
|
||||||
viewHolder.contact_picture.setImageBitmap(activity
|
viewHolder.contact_picture.setImageBitmap(activity
|
||||||
.avatarService().get(
|
.avatarService().get(conversation.getContact(),
|
||||||
item.getConversation().getContact(),
|
|
||||||
activity.getPixel(32)));
|
activity.getPixel(32)));
|
||||||
viewHolder.contact_picture.setAlpha(0.5f);
|
viewHolder.contact_picture.setAlpha(0.5f);
|
||||||
viewHolder.contact_picture
|
viewHolder.contact_picture
|
||||||
|
@ -418,8 +420,7 @@ public class MessageAdapter extends ArrayAdapter<Message> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
String name = item.getConversation()
|
String name = conversation.getName();
|
||||||
.getName();
|
|
||||||
String read = getContext()
|
String read = getContext()
|
||||||
.getString(
|
.getString(
|
||||||
R.string.contact_has_read_up_to_this_point,
|
R.string.contact_has_read_up_to_this_point,
|
||||||
|
@ -441,15 +442,15 @@ public class MessageAdapter extends ArrayAdapter<Message> {
|
||||||
view.setLayoutParams(view.getLayoutParams());
|
view.setLayoutParams(view.getLayoutParams());
|
||||||
return view;
|
return view;
|
||||||
} else if (type == RECEIVED) {
|
} else if (type == RECEIVED) {
|
||||||
Contact contact = item.getContact();
|
Contact contact = message.getContact();
|
||||||
if (contact != null) {
|
if (contact != null) {
|
||||||
viewHolder.contact_picture.setImageBitmap(activity.avatarService().get(contact, activity.getPixel(48)));
|
viewHolder.contact_picture.setImageBitmap(activity.avatarService().get(contact, activity.getPixel(48)));
|
||||||
} else if (item.getConversation().getMode() == Conversation.MODE_MULTI) {
|
} else if (conversation.getMode() == Conversation.MODE_MULTI) {
|
||||||
viewHolder.contact_picture.setImageBitmap(activity.avatarService().get(getDisplayedMucCounterpart(item.getCounterpart()),
|
viewHolder.contact_picture.setImageBitmap(activity.avatarService().get(getDisplayedMucCounterpart(message.getCounterpart()),
|
||||||
activity.getPixel(48)));
|
activity.getPixel(48)));
|
||||||
}
|
}
|
||||||
} else if (type == SENT) {
|
} else if (type == SENT && viewHolder.contact_picture != null) {
|
||||||
viewHolder.contact_picture.setImageBitmap(activity.avatarService().get(item.getConversation().getAccount(), activity.getPixel(48)));
|
viewHolder.contact_picture.setImageBitmap(activity.avatarService().get(account, activity.getPixel(48)));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (viewHolder != null && viewHolder.contact_picture != null) {
|
if (viewHolder != null && viewHolder.contact_picture != null) {
|
||||||
|
@ -460,7 +461,7 @@ public class MessageAdapter extends ArrayAdapter<Message> {
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
if (MessageAdapter.this.mOnContactPictureClickedListener != null) {
|
if (MessageAdapter.this.mOnContactPictureClickedListener != null) {
|
||||||
MessageAdapter.this.mOnContactPictureClickedListener
|
MessageAdapter.this.mOnContactPictureClickedListener
|
||||||
.onContactPictureClicked(item);
|
.onContactPictureClicked(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -472,7 +473,7 @@ public class MessageAdapter extends ArrayAdapter<Message> {
|
||||||
public boolean onLongClick(View v) {
|
public boolean onLongClick(View v) {
|
||||||
if (MessageAdapter.this.mOnContactPictureLongClickedListener != null) {
|
if (MessageAdapter.this.mOnContactPictureLongClickedListener != null) {
|
||||||
MessageAdapter.this.mOnContactPictureLongClickedListener
|
MessageAdapter.this.mOnContactPictureLongClickedListener
|
||||||
.onContactPictureLongClicked(item);
|
.onContactPictureLongClicked(message);
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
|
@ -481,10 +482,10 @@ public class MessageAdapter extends ArrayAdapter<Message> {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.getDownloadable() != null && item.getDownloadable().getStatus() != Downloadable.STATUS_UPLOADING) {
|
if (message.getDownloadable() != null && message.getDownloadable().getStatus() != Downloadable.STATUS_UPLOADING) {
|
||||||
Downloadable d = item.getDownloadable();
|
Downloadable d = message.getDownloadable();
|
||||||
if (d.getStatus() == Downloadable.STATUS_DOWNLOADING) {
|
if (d.getStatus() == Downloadable.STATUS_DOWNLOADING) {
|
||||||
if (item.getType() == Message.TYPE_FILE) {
|
if (message.getType() == Message.TYPE_FILE) {
|
||||||
displayInfoMessage(viewHolder,activity.getString(R.string.receiving_file,d.getMimeType(),d.getProgress()));
|
displayInfoMessage(viewHolder,activity.getString(R.string.receiving_file,d.getMimeType(),d.getProgress()));
|
||||||
} else {
|
} else {
|
||||||
displayInfoMessage(viewHolder,activity.getString(R.string.receiving_image,d.getProgress()));
|
displayInfoMessage(viewHolder,activity.getString(R.string.receiving_image,d.getProgress()));
|
||||||
|
@ -492,35 +493,35 @@ public class MessageAdapter extends ArrayAdapter<Message> {
|
||||||
} else if (d.getStatus() == Downloadable.STATUS_CHECKING) {
|
} else if (d.getStatus() == Downloadable.STATUS_CHECKING) {
|
||||||
displayInfoMessage(viewHolder,activity.getString(R.string.checking_image));
|
displayInfoMessage(viewHolder,activity.getString(R.string.checking_image));
|
||||||
} else if (d.getStatus() == Downloadable.STATUS_DELETED) {
|
} else if (d.getStatus() == Downloadable.STATUS_DELETED) {
|
||||||
if (item.getType() == Message.TYPE_FILE) {
|
if (message.getType() == Message.TYPE_FILE) {
|
||||||
displayInfoMessage(viewHolder, activity.getString(R.string.file_deleted));
|
displayInfoMessage(viewHolder, activity.getString(R.string.file_deleted));
|
||||||
} else {
|
} else {
|
||||||
displayInfoMessage(viewHolder, activity.getString(R.string.image_file_deleted));
|
displayInfoMessage(viewHolder, activity.getString(R.string.image_file_deleted));
|
||||||
}
|
}
|
||||||
} else if (d.getStatus() == Downloadable.STATUS_OFFER) {
|
} else if (d.getStatus() == Downloadable.STATUS_OFFER) {
|
||||||
if (item.getType() == Message.TYPE_FILE) {
|
if (message.getType() == Message.TYPE_FILE) {
|
||||||
displayDownloadableMessage(viewHolder,item,activity.getString(R.string.download_file,d.getMimeType()));
|
displayDownloadableMessage(viewHolder,message,activity.getString(R.string.download_file,d.getMimeType()));
|
||||||
} else {
|
} else {
|
||||||
displayDownloadableMessage(viewHolder, item,activity.getString(R.string.download_image));
|
displayDownloadableMessage(viewHolder, message,activity.getString(R.string.download_image));
|
||||||
}
|
}
|
||||||
} else if (d.getStatus() == Downloadable.STATUS_OFFER_CHECK_FILESIZE) {
|
} else if (d.getStatus() == Downloadable.STATUS_OFFER_CHECK_FILESIZE) {
|
||||||
displayDownloadableMessage(viewHolder, item,activity.getString(R.string.check_image_filesize));
|
displayDownloadableMessage(viewHolder, message,activity.getString(R.string.check_image_filesize));
|
||||||
} else if (d.getStatus() == Downloadable.STATUS_FAILED) {
|
} else if (d.getStatus() == Downloadable.STATUS_FAILED) {
|
||||||
if (item.getType() == Message.TYPE_FILE) {
|
if (message.getType() == Message.TYPE_FILE) {
|
||||||
displayInfoMessage(viewHolder, activity.getString(R.string.file_transmission_failed));
|
displayInfoMessage(viewHolder, activity.getString(R.string.file_transmission_failed));
|
||||||
} else {
|
} else {
|
||||||
displayInfoMessage(viewHolder, activity.getString(R.string.image_transmission_failed));
|
displayInfoMessage(viewHolder, activity.getString(R.string.image_transmission_failed));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (item.getType() == Message.TYPE_IMAGE && item.getEncryption() != Message.ENCRYPTION_PGP && item.getEncryption() != Message.ENCRYPTION_DECRYPTION_FAILED) {
|
} else if (message.getType() == Message.TYPE_IMAGE && message.getEncryption() != Message.ENCRYPTION_PGP && message.getEncryption() != Message.ENCRYPTION_DECRYPTION_FAILED) {
|
||||||
displayImageMessage(viewHolder, item);
|
displayImageMessage(viewHolder, message);
|
||||||
} else if (item.getType() == Message.TYPE_FILE && item.getEncryption() != Message.ENCRYPTION_PGP && item.getEncryption() != Message.ENCRYPTION_DECRYPTION_FAILED) {
|
} else if (message.getType() == Message.TYPE_FILE && message.getEncryption() != Message.ENCRYPTION_PGP && message.getEncryption() != Message.ENCRYPTION_DECRYPTION_FAILED) {
|
||||||
if (item.getImageParams().width > 0) {
|
if (message.getImageParams().width > 0) {
|
||||||
displayImageMessage(viewHolder,item);
|
displayImageMessage(viewHolder,message);
|
||||||
} else {
|
} else {
|
||||||
displayOpenableMessage(viewHolder, item);
|
displayOpenableMessage(viewHolder, message);
|
||||||
}
|
}
|
||||||
} else if (item.getEncryption() == Message.ENCRYPTION_PGP) {
|
} else if (message.getEncryption() == Message.ENCRYPTION_PGP) {
|
||||||
if (activity.hasPgp()) {
|
if (activity.hasPgp()) {
|
||||||
displayInfoMessage(viewHolder,activity.getString(R.string.encrypted_message));
|
displayInfoMessage(viewHolder,activity.getString(R.string.encrypted_message));
|
||||||
} else {
|
} else {
|
||||||
|
@ -537,13 +538,13 @@ public class MessageAdapter extends ArrayAdapter<Message> {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (item.getEncryption() == Message.ENCRYPTION_DECRYPTION_FAILED) {
|
} else if (message.getEncryption() == Message.ENCRYPTION_DECRYPTION_FAILED) {
|
||||||
displayDecryptionFailed(viewHolder);
|
displayDecryptionFailed(viewHolder);
|
||||||
} else {
|
} else {
|
||||||
displayTextMessage(viewHolder, item);
|
displayTextMessage(viewHolder, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
displayStatus(viewHolder, item);
|
displayStatus(viewHolder, message);
|
||||||
|
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue