|
|
|
@ -23,6 +23,7 @@ import android.content.Intent;
|
|
|
|
|
import android.content.res.TypedArray;
|
|
|
|
|
import android.graphics.Color;
|
|
|
|
|
import android.graphics.PorterDuff;
|
|
|
|
|
import android.graphics.drawable.Drawable;
|
|
|
|
|
import android.os.Build;
|
|
|
|
|
import android.support.annotation.NonNull;
|
|
|
|
|
import android.text.TextUtils;
|
|
|
|
@ -100,6 +101,10 @@ public class ConversationItem extends LinearLayout {
|
|
|
|
|
private Button mmsDownloadButton;
|
|
|
|
|
private TextView mmsDownloadingLabel;
|
|
|
|
|
|
|
|
|
|
private int defaultBubbleColor;
|
|
|
|
|
private Drawable selectedBackground;
|
|
|
|
|
private Drawable normalBackground;
|
|
|
|
|
|
|
|
|
|
private final MmsDownloadClickListener mmsDownloadClickListener = new MmsDownloadClickListener();
|
|
|
|
|
private final MmsPreferencesClickListener mmsPreferencesClickListener = new MmsPreferencesClickListener();
|
|
|
|
|
private final ClickListener clickListener = new ClickListener();
|
|
|
|
@ -119,6 +124,7 @@ public class ConversationItem extends LinearLayout {
|
|
|
|
|
protected void onFinishInflate() {
|
|
|
|
|
super.onFinishInflate();
|
|
|
|
|
|
|
|
|
|
initializeAttributes();
|
|
|
|
|
ViewGroup pendingIndicatorStub = (ViewGroup) findViewById(R.id.pending_indicator_stub);
|
|
|
|
|
|
|
|
|
|
if (pendingIndicatorStub != null) {
|
|
|
|
@ -181,6 +187,18 @@ public class ConversationItem extends LinearLayout {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void initializeAttributes() {
|
|
|
|
|
final int[] attributes = new int[] {R.attr.conversation_item_bubble_background,
|
|
|
|
|
R.attr.conversation_list_item_background_selected,
|
|
|
|
|
R.attr.conversation_item_background};
|
|
|
|
|
final TypedArray attrs = context.obtainStyledAttributes(attributes);
|
|
|
|
|
|
|
|
|
|
defaultBubbleColor = attrs.getColor(0, Color.WHITE);
|
|
|
|
|
selectedBackground = attrs.getDrawable(1);
|
|
|
|
|
normalBackground = attrs.getDrawable(2);
|
|
|
|
|
attrs.recycle();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void unbind() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -191,12 +209,8 @@ public class ConversationItem extends LinearLayout {
|
|
|
|
|
/// MessageRecord Attribute Parsers
|
|
|
|
|
|
|
|
|
|
private void setBubbleState(MessageRecord messageRecord) {
|
|
|
|
|
int[] attributes = new int[]{R.attr.conversation_item_bubble_background};
|
|
|
|
|
TypedArray colors = context.obtainStyledAttributes(attributes);
|
|
|
|
|
int defaultColor = colors.getColor(0, Color.WHITE);
|
|
|
|
|
|
|
|
|
|
if (messageRecord.isOutgoing()) {
|
|
|
|
|
bodyBubble.getBackground().setColorFilter(defaultColor, PorterDuff.Mode.MULTIPLY);
|
|
|
|
|
bodyBubble.getBackground().setColorFilter(defaultBubbleColor, PorterDuff.Mode.MULTIPLY);
|
|
|
|
|
} else {
|
|
|
|
|
bodyBubble.getBackground().setColorFilter(messageRecord.getIndividualRecipient()
|
|
|
|
|
.getColor()
|
|
|
|
@ -204,22 +218,14 @@ public class ConversationItem extends LinearLayout {
|
|
|
|
|
PorterDuff.Mode.MULTIPLY);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
colors.recycle();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void setSelectionBackgroundDrawables(MessageRecord messageRecord) {
|
|
|
|
|
int[] attributes = new int[]{R.attr.conversation_list_item_background_selected,
|
|
|
|
|
R.attr.conversation_item_background};
|
|
|
|
|
|
|
|
|
|
TypedArray drawables = context.obtainStyledAttributes(attributes);
|
|
|
|
|
|
|
|
|
|
if (batchSelected.contains(messageRecord)) {
|
|
|
|
|
setBackgroundDrawable(drawables.getDrawable(0));
|
|
|
|
|
setBackgroundDrawable(selectedBackground);
|
|
|
|
|
} else {
|
|
|
|
|
setBackgroundDrawable(drawables.getDrawable(1));
|
|
|
|
|
setBackgroundDrawable(normalBackground);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
drawables.recycle();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private boolean hasConversationBubble(MessageRecord messageRecord) {
|
|
|
|
|