/**
* galaxy inc.
* meetup client for android
*/
package com.galaxy.meetup.client.android.ui.view;
import android.content.Context;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.telephony.PhoneNumberUtils;
import android.text.Html;
import android.text.SpannableStringBuilder;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.TextView;
import com.galaxy.meetup.client.android.R;
import com.galaxy.meetup.client.android.common.Recyclable;
import com.galaxy.meetup.client.android.content.AvatarRequest;
import com.galaxy.meetup.client.android.content.EsAvatarData;
import com.galaxy.meetup.client.android.content.EsPeopleData;
import com.galaxy.meetup.client.android.service.ImageCache;
import com.galaxy.meetup.client.android.service.ImageCache.ImageConsumer;
import com.galaxy.meetup.client.android.service.ImageCache.OnAvatarChangeListener;
import com.galaxy.meetup.client.android.ui.fragments.CircleNameResolver;
import com.galaxy.meetup.client.util.SpannableUtils;
/**
*
* @author sihai
*
*/
public class PeopleListItemView extends CheckableListItemView implements
OnClickListener, ImageConsumer, OnAvatarChangeListener, Recyclable {
private static Drawable sAddButtonIcon;
private static Bitmap sDefaultUserImage;
private static int sMediumAvatarSize;
private static Drawable sRemoveButtonIcon;
private static int sSmallAvatarSize;
private static int sTinyAvatarSize;
private static Drawable sUnblockButtonIcon;
private static Drawable sVerticalDivider;
private static Drawable sWellFormedEmailIcon;
private static Drawable sWellFormedSmsIcon;
private TextView mActionButton;
private final int mActionButtonResourceId;
private boolean mActionButtonVisible;
private final int mActionButtonWidth;
private ImageView mAddButton;
private boolean mAddButtonVisible;
private Bitmap mAvatarBitmap;
private final Rect mAvatarBounds;
private final ImageCache mAvatarCache;
private boolean mAvatarInvalidated;
private final Rect mAvatarOriginalBounds;
private final Paint mAvatarPaint;
private AvatarRequest mAvatarRequest;
private int mAvatarRequestSize;
private final int mAvatarSize;
private String mAvatarUrl;
private boolean mAvatarVisible;
private final Drawable mCircleIconDrawable;
private final int mCircleIconSize;
private boolean mCircleIconVisible;
private int mCircleLineHeight;
private boolean mCircleListVisible;
private CircleNameResolver mCircleNameResolver;
private final int mCirclesTextColor;
private final float mCirclesTextSize;
private final TextView mCirclesTextView;
private String mContactLookupKey;
private Bitmap mDefaultAvatarBitmap;
private String mDisplayName;
private final int mEmailIconPaddingLeft;
private final int mEmailIconPaddingTop;
private final SpannableStringBuilder mEmailTextBuilder;
private boolean mFirstRow;
private String mGaiaId;
private final int mGapBetweenIconAndCircles;
private final int mGapBetweenImageAndText;
private final int mGapBetweenNameAndCircles;
private final int mGapBetweenTextAndButton;
private String mHighlightedText;
private OnActionButtonClickListener mListener;
private final SpannableStringBuilder mNameTextBuilder;
private final TextView mNameTextView;
private final int mPaddingBottom;
private final int mPaddingLeft;
private final int mPaddingRight;
private final int mPaddingTop;
private String mPersonId;
private boolean mPlusPage;
private final int mPreferredHeight;
private ImageView mRemoveButton;
private boolean mRemoveButtonVisible;
protected SectionHeaderView mSectionHeader;
protected int mSectionHeaderHeight;
protected boolean mSectionHeaderVisible;
private TextView mTypeTextView;
private boolean mTypeTextViewVisible;
private ImageView mUnblockButton;
private boolean mUnblockButtonVisible;
private int mVerticalDividerLeft;
private final int mVerticalDividerPadding;
private final int mVerticalDividerWidth;
private String mWellFormedEmail;
private boolean mWellFormedEmailMode;
private String mWellFormedSms;
private boolean mWellFormedSmsMode;
public PeopleListItemView(Context context) {
this(context, null);
}
public PeopleListItemView(Context context, AttributeSet attributeset) {
super(context, attributeset);
mAvatarVisible = true;
mFirstRow = true;
mNameTextBuilder = new SpannableStringBuilder();
mEmailTextBuilder = new SpannableStringBuilder();
mAvatarOriginalBounds = new Rect();
mAvatarBounds = new Rect();
mAvatarCache = ImageCache.getInstance(context);
TypedArray typedarray = context.obtainStyledAttributes(attributeset, R.styleable.ContactListItemView);
mPreferredHeight = typedarray.getDimensionPixelSize(0, 0);
mPaddingTop = typedarray.getDimensionPixelOffset(1, 0);
mPaddingBottom = typedarray.getDimensionPixelOffset(2, 0);
mPaddingLeft = typedarray.getDimensionPixelOffset(3, 0);
mPaddingRight = typedarray.getDimensionPixelOffset(4, 0);
float f = typedarray.getFloat(6, 0.0F);
mCirclesTextSize = typedarray.getFloat(9, 0.0F);
mGapBetweenImageAndText = typedarray.getDimensionPixelOffset(5, 0);
mCircleIconDrawable = typedarray.getDrawable(7);
mCircleIconSize = typedarray.getDimensionPixelSize(8, 0);
mGapBetweenNameAndCircles = typedarray.getDimensionPixelOffset(11, 0);
mGapBetweenIconAndCircles = typedarray.getDimensionPixelOffset(12, 0);
mGapBetweenTextAndButton = typedarray.getDimensionPixelOffset(13, 0);
mActionButtonResourceId = typedarray.getResourceId(14, 0);
mActionButtonWidth = typedarray.getDimensionPixelSize(15, 0);
mVerticalDividerWidth = typedarray.getDimensionPixelSize(16, 0);
mVerticalDividerPadding = typedarray.getDimensionPixelOffset(17, 0);
mCirclesTextColor = typedarray.getColor(10, 0);
mEmailIconPaddingTop = typedarray.getDimensionPixelOffset(18, 0);
mEmailIconPaddingLeft = typedarray.getDimensionPixelOffset(19, 0);
typedarray.recycle();
mNameTextView = new TextView(context);
mNameTextView.setSingleLine(true);
mNameTextView.setEllipsize(android.text.TextUtils.TruncateAt.END);
mNameTextView.setTextAppearance(context, 0x1030044);
mNameTextView.setTextSize(f);
mNameTextView.setGravity(16);
mNameTextView.setLayoutParams(new android.view.ViewGroup.LayoutParams(-2, -2));
addView(mNameTextView);
mCirclesTextView = new TextView(context);
mCirclesTextView.setSingleLine(true);
mCirclesTextView.setEllipsize(android.text.TextUtils.TruncateAt.END);
mCirclesTextView.setTextAppearance(context, 0x1030044);
mCirclesTextView.setTextSize(mCirclesTextSize);
mCirclesTextView.setTextColor(mCirclesTextColor);
mCirclesTextView.setGravity(16);
mCirclesTextView.setLayoutParams(new android.view.ViewGroup.LayoutParams(-2, -2));
addView(mCirclesTextView);
mAvatarPaint = new Paint();
if(sDefaultUserImage == null)
sDefaultUserImage = EsAvatarData.getMediumDefaultAvatar(context);
mDefaultAvatarBitmap = sDefaultUserImage;
if(sVerticalDivider == null)
sVerticalDivider = context.getApplicationContext().getResources().getDrawable(R.drawable.divider);
if(sWellFormedEmailIcon == null)
sWellFormedEmailIcon = context.getApplicationContext().getResources().getDrawable(R.drawable.profile_email);
if(sWellFormedSmsIcon == null)
sWellFormedSmsIcon = context.getApplicationContext().getResources().getDrawable(R.drawable.profile_sms);
mAvatarSize = Math.min(sDefaultUserImage.getWidth(), mPreferredHeight);
if(sMediumAvatarSize == 0)
{
sMediumAvatarSize = EsAvatarData.getMediumAvatarSize(context);
sSmallAvatarSize = EsAvatarData.getSmallAvatarSize(context);
sTinyAvatarSize = EsAvatarData.getTinyAvatarSize(context);
}
if(mAvatarSize > sMediumAvatarSize)
{
mAvatarRequestSize = 2;
mAvatarPaint.setFilterBitmap(true);
} else
if(mAvatarSize == sMediumAvatarSize)
mAvatarRequestSize = 2;
else
if(mAvatarSize > sSmallAvatarSize)
{
mAvatarRequestSize = 2;
mAvatarPaint.setFilterBitmap(true);
} else
if(mAvatarSize == sSmallAvatarSize)
mAvatarRequestSize = 1;
else
if(mAvatarSize > sTinyAvatarSize)
{
mAvatarRequestSize = 1;
mAvatarPaint.setFilterBitmap(true);
} else
if(mAvatarSize == sTinyAvatarSize)
{
mAvatarRequestSize = 0;
} else
{
mAvatarRequestSize = 0;
mAvatarPaint.setFilterBitmap(true);
}
}
public static PeopleListItemView createInstance(Context context) {
PeopleListItemView peoplelistitemview = null;
try {
if(android.os.Build.VERSION.SDK_INT < 11) {
peoplelistitemview = new PeopleListItemView(context);
} else {
peoplelistitemview = (PeopleListItemView)Class.forName("views.PeopleListItemViewV11").getConstructor(new Class[] {
Context.class
}).newInstance(new Object[] {
context
});
}
} catch (Exception e) {
Log.e("PeopleListItemView", "Cannot instantiate", e);
}
return peoplelistitemview;
}
private void updateDisplayName() {
if(mDisplayName != null) {
SpannableUtils.setTextWithHighlight(mNameTextView, mDisplayName, mNameTextBuilder, mHighlightedText, sBoldSpan, sColorSpan);
} else {
mWellFormedEmailMode = true;
mNameTextView.setText(mWellFormedEmail);
}
}
public void dispatchDraw(Canvas canvas) {
if(mWellFormedEmailMode)
{
int j2 = sWellFormedEmailIcon.getIntrinsicWidth();
int k2 = sWellFormedEmailIcon.getIntrinsicHeight();
int l2 = mAvatarBounds.left + (mAvatarSize - j2) / 2;
int i3 = mAvatarBounds.top + (mAvatarSize - k2) / 2;
sWellFormedEmailIcon.setBounds(l2, i3, l2 + j2, i3 + k2);
sWellFormedEmailIcon.draw(canvas);
} else
if(mWellFormedSmsMode)
{
int j1 = sWellFormedSmsIcon.getIntrinsicWidth();
int k1 = sWellFormedSmsIcon.getIntrinsicHeight();
int l1 = mAvatarBounds.left + (mAvatarSize - j1) / 2;
int i2 = mAvatarBounds.top + (mAvatarSize - k1) / 2;
sWellFormedSmsIcon.setBounds(l1, i2, l1 + j1, i2 + k1);
sWellFormedSmsIcon.draw(canvas);
} else
if(mFirstRow)
{
int i;
int j;
int k;
int l;
Bitmap bitmap;
if(mCircleIconVisible)
mCircleIconDrawable.draw(canvas);
if(mAvatarVisible)
{
if(mAvatarInvalidated && mAvatarRequest != null)
{
mAvatarInvalidated = false;
mAvatarCache.refreshImage(this, mAvatarRequest);
}
if(mAvatarBitmap != null)
bitmap = mAvatarBitmap;
else
bitmap = mDefaultAvatarBitmap;
mAvatarOriginalBounds.set(0, 0, bitmap.getWidth(), bitmap.getHeight());
canvas.drawBitmap(bitmap, mAvatarOriginalBounds, mAvatarBounds, mAvatarPaint);
}
if(mContactLookupKey != null)
{
i = sWellFormedEmailIcon.getIntrinsicWidth();
j = sWellFormedEmailIcon.getIntrinsicHeight();
k = mNameTextView.getLeft() - i - mEmailIconPaddingLeft;
l = mEmailIconPaddingTop;
sWellFormedEmailIcon.setBounds(k, l, k + i, l + j);
sWellFormedEmailIcon.draw(canvas);
}
}
if(mActionButtonVisible || mAddButtonVisible || mRemoveButtonVisible || mUnblockButtonVisible)
{
int i1;
if(mSectionHeaderVisible)
i1 = mSectionHeaderHeight + mVerticalDividerPadding;
else
i1 = mVerticalDividerPadding;
sVerticalDivider.setBounds(mVerticalDividerLeft, i1, mVerticalDividerLeft + mVerticalDividerWidth, getHeight() - mVerticalDividerPadding);
sVerticalDivider.draw(canvas);
}
super.dispatchDraw(canvas);
}
protected final void drawBackground(Canvas canvas, Drawable drawable)
{
int i;
if(mSectionHeaderVisible)
i = mSectionHeaderHeight;
else
i = 0;
drawable.setBounds(0, i, getWidth(), getHeight());
drawable.draw(canvas);
}
public String getContactName()
{
return mDisplayName;
}
public String getGaiaId()
{
return mGaiaId;
}
public String getPersonId()
{
return mPersonId;
}
public String getWellFormedEmail()
{
return mWellFormedEmail;
}
public String getWellFormedSms()
{
return mWellFormedSms;
}
public boolean isPlusPage()
{
return mPlusPage;
}
protected void onAttachedToWindow()
{
super.onAttachedToWindow();
ImageCache _tmp = mAvatarCache;
ImageCache.registerAvatarChangeListener(this);
}
public void onAvatarChanged(String s)
{
if(s != null && s.equals(mGaiaId))
{
mAvatarInvalidated = true;
invalidate();
}
}
public void onClick(View view) {
if(mListener == null) {
return;
}
if(view != mAddButton) {
if(view == mRemoveButton)
mListener.onActionButtonClick(this, 1);
else
if(view == mUnblockButton)
mListener.onActionButtonClick(this, 2);
else
if(view == mActionButton)
mListener.onActionButtonClick(this, 3);
} else {
mListener.onActionButtonClick(this, 0);
}
}
protected void onDetachedFromWindow()
{
super.onDetachedFromWindow();
ImageCache _tmp = mAvatarCache;
ImageCache.unregisterAvatarChangeListener(this);
}
protected void onLayout(boolean flag, int i, int j, int k, int l)
{
int i1 = l - j;
boolean flag1 = mSectionHeaderVisible;
int j1 = 0;
if(flag1)
{
mSectionHeader.layout(0, 0, k - i, mSectionHeaderHeight);
j1 = 0 + mSectionHeaderHeight;
}
int k1 = mPaddingLeft;
if(mAvatarVisible)
{
mAvatarBounds.left = k1;
mAvatarBounds.top = j1 + (i1 - j1 - mAvatarSize) / 2;
mAvatarBounds.right = mAvatarBounds.left + mAvatarSize;
mAvatarBounds.bottom = mAvatarBounds.top + mAvatarSize;
k1 += mAvatarSize + mGapBetweenImageAndText;
}
int l1 = k - i - mPaddingRight;
if(mActionButtonVisible)
{
int l10 = mActionButton.getMeasuredWidth();
int i11 = l1 - l10;
mVerticalDividerLeft = i11 - mVerticalDividerWidth;
TextView textview6 = mActionButton;
int j11 = i11 + l10;
textview6.layout(i11, j1, j11, i1);
l1 -= l10;
}
if(mUnblockButtonVisible)
{
int k10 = mUnblockButton.getMeasuredWidth();
mVerticalDividerLeft = l1 - k10;
mUnblockButton.layout(mVerticalDividerLeft + mVerticalDividerWidth, j1, l1, i1);
l1 -= k10;
}
if(mRemoveButtonVisible)
{
int j10 = mRemoveButton.getMeasuredWidth();
mVerticalDividerLeft = l1 - j10;
mRemoveButton.layout(mVerticalDividerLeft + mVerticalDividerWidth, j1, l1, i1);
l1 -= j10;
}
int i2;
int k9 = mAddButton.getMeasuredWidth();
int i7;
int j7;
TextView textview4;
int k7;
TextView textview5;
int l7;
int i8;
int j8;
int k8;
int l8;
CheckBox checkbox;
int i9;
int j9;
int l9;
ImageView imageview;
int i10;
if(mAddButtonVisible)
{
if(!mRemoveButtonVisible)
{
mVerticalDividerLeft = l1 - k9;
l9 = mVerticalDividerLeft + mVerticalDividerWidth;
} else
{
l9 = mVerticalDividerLeft - k9;
}
imageview = mAddButton;
i10 = l9 + k9;
imageview.layout(l9, j1, i10, i1);
l1 -= k9;
}
if(mCheckBoxVisible)
{
j8 = mCheckBox.getMeasuredWidth();
k8 = mCheckBox.getMeasuredHeight();
l8 = j1 + (i1 - j1 - k8) / 2;
checkbox = mCheckBox;
i9 = l1 - j8;
j9 = l8 + k8;
checkbox.layout(i9, l8, l1, j9);
l1 -= j8;
}
if(mActionButtonVisible || mRemoveButtonVisible || mAddButtonVisible || mUnblockButtonVisible || mCheckBoxVisible)
l1 -= mGapBetweenTextAndButton;
if(mTypeTextViewVisible)
i2 = mTypeTextView.getMeasuredWidth();
else
i2 = 0;
if(!mFirstRow)
{
i7 = mCirclesTextView.getMeasuredHeight();
j7 = j1 + (i1 - j1 - i7) / 2;
if(mTypeTextViewVisible)
{
textview5 = mTypeTextView;
l7 = l1 - i2;
i8 = j7 + i7;
textview5.layout(l7, j7, l1, i8);
l1 -= i2 + mGapBetweenIconAndCircles;
}
textview4 = mCirclesTextView;
k7 = j7 + i7;
textview4.layout(k1, j7, l1, k7);
} else
if(mCircleListVisible)
{
int i3 = mNameTextView.getMeasuredHeight();
int j3 = mCirclesTextView.getMeasuredHeight();
int k3 = j3;
if(mCircleIconVisible)
k3 = Math.max(mCircleIconSize, k3);
int l3 = k3 + i3;
int i4 = j1 + (mPreferredHeight - l3) / 2;
int j4 = k1;
if(mContactLookupKey != null)
j4 += sWellFormedEmailIcon.getIntrinsicWidth() + mEmailIconPaddingLeft;
TextView textview1 = mNameTextView;
int k4 = i4 + i3;
textview1.layout(j4, i4, l1, k4);
int l4 = i4 + (i3 + mGapBetweenNameAndCircles);
int i5 = k1;
if(mCircleIconVisible)
{
int j6 = l4 + (mCircleLineHeight - mCircleIconSize) / 2;
Drawable drawable = mCircleIconDrawable;
int k6 = k1 + mCircleIconSize;
int l6 = j6 + mCircleIconSize;
drawable.setBounds(k1, j6, k6, l6);
i5 += mCircleIconSize + mGapBetweenIconAndCircles;
}
int j5 = l4 + (mCircleLineHeight - j3) / 2;
if(mTypeTextViewVisible)
{
TextView textview3 = mTypeTextView;
int l5 = l1 - i2;
int i6 = j5 + j3;
textview3.layout(l5, j5, l1, i6);
l1 -= i2 + mGapBetweenIconAndCircles;
}
TextView textview2 = mCirclesTextView;
int k5 = j5 + j3;
textview2.layout(i5, j5, l1, k5);
} else
{
int j2 = mNameTextView.getMeasuredHeight();
int k2 = j1 + (i1 - j1 - j2) / 2;
TextView textview = mNameTextView;
int l2 = k2 + j2;
textview.layout(k1, k2, l1, l2);
}
if(mAvatarVisible && !mWellFormedEmailMode && !mWellFormedSmsMode && mAvatarBitmap == null && mAvatarRequest != null)
mAvatarCache.loadImage(this, mAvatarRequest);
}
protected void onMeasure(int i, int j)
{
int k = resolveSize(0, i);
int l = k - mPaddingLeft - mPaddingRight;
if(mAvatarVisible)
l -= mAvatarSize + mGapBetweenImageAndText;
boolean flag = mActionButtonVisible;
int i1 = 0;
int j1 = 0;
if(flag)
{
mActionButton.measure(0, j);
i1 = mActionButton.getMeasuredWidth();
j1 = Math.max(0, mActionButton.getMeasuredHeight());
l -= i1 + mVerticalDividerWidth;
}
if(mAddButtonVisible)
{
mAddButton.measure(android.view.View.MeasureSpec.makeMeasureSpec(mActionButtonWidth, 0x40000000), j);
j1 = Math.max(j1, mAddButton.getMeasuredHeight());
l -= mActionButtonWidth + mVerticalDividerWidth;
}
if(mRemoveButtonVisible)
{
mRemoveButton.measure(android.view.View.MeasureSpec.makeMeasureSpec(mActionButtonWidth, 0x40000000), j);
j1 = Math.max(j1, mRemoveButton.getMeasuredHeight());
l -= mActionButtonWidth + mVerticalDividerWidth;
}
if(mUnblockButtonVisible)
{
mUnblockButton.measure(android.view.View.MeasureSpec.makeMeasureSpec(mActionButtonWidth, 0x40000000), j);
j1 = Math.max(j1, mUnblockButton.getMeasuredHeight());
l -= mActionButtonWidth + mVerticalDividerWidth;
}
if(mCheckBoxVisible)
{
mCheckBox.measure(0, j);
Math.max(j1, mCheckBox.getMeasuredHeight());
l -= mCheckBox.getMeasuredWidth();
}
if(mRemoveButtonVisible || mActionButtonVisible || mAddButtonVisible || mUnblockButtonVisible || mCheckBoxVisible)
l -= mGapBetweenTextAndButton;
int k1 = l;
if(mContactLookupKey != null)
k1 -= sWellFormedEmailIcon.getIntrinsicWidth() + mGapBetweenIconAndCircles;
mNameTextView.measure(android.view.View.MeasureSpec.makeMeasureSpec(k1, 0x40000000), j);
int l1 = mAvatarSize;
int i2 = l;
if(mCircleIconVisible)
i2 -= mCircleIconSize + mGapBetweenIconAndCircles;
if(mTypeTextViewVisible)
{
mTypeTextView.measure(0, 0);
i2 -= mTypeTextView.getMeasuredWidth() + mGapBetweenIconAndCircles;
}
if(mCircleListVisible)
{
mCirclesTextView.measure(0, 0);
int k2 = Math.min(mCirclesTextView.getMeasuredWidth(), i2);
mCircleLineHeight = Math.max(mCircleIconSize, mCirclesTextView.getMeasuredHeight());
mCirclesTextView.measure(android.view.View.MeasureSpec.makeMeasureSpec(k2, 0x40000000), android.view.View.MeasureSpec.makeMeasureSpec(mCircleLineHeight, 0x40000000));
l1 = Math.max(l1, mNameTextView.getMeasuredHeight() + mGapBetweenNameAndCircles + mCircleLineHeight);
}
int j2 = Math.max(l1 + (mPaddingTop + mPaddingBottom), mPreferredHeight);
if(mActionButtonVisible)
mActionButton.measure(android.view.View.MeasureSpec.makeMeasureSpec(i1, 0x40000000), android.view.View.MeasureSpec.makeMeasureSpec(j2, 0x40000000));
if(mSectionHeaderVisible)
{
mSectionHeader.measure(i, 0);
mSectionHeaderHeight = mSectionHeader.getMeasuredHeight();
j2 += mSectionHeaderHeight;
}
setMeasuredDimension(k, j2);
}
public void onRecycle()
{
mPersonId = null;
mGaiaId = null;
mContactLookupKey = null;
mAvatarVisible = true;
mAvatarRequest = null;
mAvatarBitmap = null;
mDisplayName = null;
mPlusPage = false;
mFirstRow = true;
mWellFormedEmailMode = false;
mWellFormedEmail = null;
mWellFormedSmsMode = false;
mWellFormedSms = null;
mHighlightedText = null;
mCirclesTextView.setText(null);
}
public void setActionButtonLabel(int i)
{
if(mActionButton == null)
{
mActionButton = new TextView(getContext());
mActionButton.setBackgroundResource(mActionButtonResourceId);
mActionButton.setGravity(17);
mActionButton.setPadding(mVerticalDividerPadding, 0, mVerticalDividerPadding, 0);
mActionButton.setOnClickListener(this);
addView(mActionButton);
}
String s = getResources().getString(i);
mActionButton.setText(s.toUpperCase());
}
public void setActionButtonVisible(boolean flag) {
if(mActionButtonVisible == flag) {
return;
}
mActionButtonVisible = flag;
if(mActionButtonVisible)
{
if(mActionButton == null)
setActionButtonLabel(R.string.add);
mActionButton.setVisibility(0);
} else
if(mActionButton != null)
mActionButton.setVisibility(8);
}
public void setAddButtonVisible(boolean flag) {
if(mAddButtonVisible == flag) {
return;
}
mAddButtonVisible = flag;
if(mAddButtonVisible)
{
if(mAddButton == null)
{
mAddButton = new ImageView(getContext());
mAddButton.setBackgroundResource(mActionButtonResourceId);
mAddButton.setOnClickListener(this);
mAddButton.setFocusable(false);
ImageView imageview = mAddButton;
if(sAddButtonIcon == null)
sAddButtonIcon = getContext().getApplicationContext().getResources().getDrawable(R.drawable.ic_btn_add_member);
imageview.setImageDrawable(sAddButtonIcon);
mAddButton.setScaleType(android.widget.ImageView.ScaleType.CENTER);
mAddButton.setContentDescription(getResources().getString(R.string.add_to_circles));
addView(mAddButton);
}
mAddButton.setVisibility(0);
} else
if(mAddButton != null)
mAddButton.setVisibility(8);
}
public void setAvatarVisible(boolean flag)
{
mAvatarVisible = flag;
}
public void setBitmap(Bitmap bitmap, boolean flag)
{
if(mAvatarRequest != null)
{
mAvatarBitmap = bitmap;
invalidate();
}
}
public void setCircleNameResolver(CircleNameResolver circlenameresolver)
{
mCircleNameResolver = circlenameresolver;
}
public void setContactIdAndAvatarUrl(String s, String s1, String s2)
{
if((!TextUtils.equals(mGaiaId, s) || !TextUtils.equals(mContactLookupKey, s1)) && mAvatarVisible)
{
mGaiaId = s;
mContactLookupKey = s1;
mAvatarUrl = s2;
if(mContactLookupKey != null)
mAvatarRequest = null;
else
if(mGaiaId == null)
mAvatarRequest = null;
else
mAvatarRequest = new AvatarRequest(mGaiaId, mAvatarUrl, mAvatarRequestSize);
mAvatarBitmap = null;
requestLayout();
}
}
public void setContactName(String s)
{
mDisplayName = s;
updateDisplayName();
}
public void setCustomText(String s)
{
mCircleListVisible = true;
mCircleIconVisible = false;
mCirclesTextView.setText(s);
}
public void setDefaultAvatar(Bitmap bitmap)
{
if(bitmap == null)
bitmap = sDefaultUserImage;
mDefaultAvatarBitmap = bitmap;
}
public void setFirstRow(boolean flag)
{
mFirstRow = flag;
TextView textview = mNameTextView;
int i;
if(mFirstRow)
i = 0;
else
i = 8;
textview.setVisibility(i);
}
public void setGaiaId(String s)
{
setGaiaIdAndAvatarUrl(s, null);
}
public void setGaiaIdAndAvatarUrl(String s, String s1)
{
if(!TextUtils.equals(mGaiaId, s) && mAvatarVisible)
{
mGaiaId = s;
if(mGaiaId != null)
mAvatarRequest = new AvatarRequest(s, s1, mAvatarRequestSize);
else
mAvatarRequest = null;
mAvatarBitmap = null;
requestLayout();
}
}
public void setHighlightedText(String s)
{
if(s == null)
mHighlightedText = null;
else
mHighlightedText = s.toUpperCase();
}
public void setOnActionButtonClickListener(OnActionButtonClickListener onactionbuttonclicklistener)
{
mListener = onactionbuttonclicklistener;
}
public void setPackedCircleIds(String s)
{
boolean flag = true;
if(mCircleNameResolver != null)
{
boolean flag1;
if(s != null)
flag1 = flag;
else
flag1 = false;
mCircleListVisible = flag1;
if(TextUtils.isEmpty(s))
flag = false;
mCircleIconVisible = flag;
mCirclesTextView.setText(mCircleNameResolver.getCircleNamesForPackedIds(s));
}
}
public void setPackedCircleIdsAndEmailAddress(String s, String s1, String s2)
{
setPackedCircleIdsEmailAddressAndPhoneNumber(s, s1, s2, null, null);
}
public void setPackedCircleIdsEmailAddressAndPhoneNumber(String s, String s1, String s2, String s3, String s4)
{
setPackedCircleIdsEmailAddressPhoneNumberAndSnippet(s, s1, s2, s3, s4, null);
}
public void setPackedCircleIdsEmailAddressPhoneNumberAndSnippet(String s, String s1, String s2, String s3, String s4, String s5)
{
mTypeTextViewVisible = false;
TextView textview;
int i;
if(!TextUtils.isEmpty(s3))
{
mCircleListVisible = true;
mCircleIconVisible = false;
mCirclesTextView.setText(PhoneNumberUtils.formatNumber(s3));
String s8 = EsPeopleData.getStringForPhoneType(getContext(), s4);
if(!TextUtils.isEmpty(s8))
{
if(mTypeTextView == null)
{
Context context = getContext();
mTypeTextView = new TextView(context);
mTypeTextView.setSingleLine(true);
mTypeTextView.setTextAppearance(context, 0x1030044);
mTypeTextView.setTextSize(mCirclesTextSize);
mTypeTextView.setTextColor(mCirclesTextColor);
mTypeTextView.setGravity(16);
addView(mTypeTextView);
}
mTypeTextView.setText(s8.toUpperCase());
mTypeTextViewVisible = true;
}
} else
if(!TextUtils.isEmpty(s2))
{
mCircleListVisible = true;
if(!TextUtils.isEmpty(s))
{
int k = 1;
int l = 0;
do
{
int i1 = s.indexOf('|', l);
if(i1 == -1)
break;
k++;
l = i1 + 1;
} while(true);
String s6 = (new StringBuilder("|")).append(s2).toString();
Resources resources = getResources();
int j1 = R.plurals.circle_count_and_matched_email;
Object aobj[] = new Object[2];
aobj[0] = Integer.valueOf(k);
aobj[1] = s6;
resources.getQuantityString(j1, k, aobj).toUpperCase().indexOf(s6);
Resources resources1 = getResources();
int k1 = R.plurals.circle_count_and_matched_email;
Object aobj1[] = new Object[2];
aobj1[0] = Integer.valueOf(k);
aobj1[1] = s2;
String s7 = resources1.getQuantityString(k1, k, aobj1);
SpannableUtils.setTextWithHighlight(mCirclesTextView, s7, mEmailTextBuilder, mHighlightedText, sBoldSpan, sColorSpan);
mCircleIconVisible = true;
} else
{
SpannableUtils.setTextWithHighlight(mCirclesTextView, s2, mEmailTextBuilder, mHighlightedText, sBoldSpan, sColorSpan);
mCircleIconVisible = false;
}
} else
if(!TextUtils.isEmpty(s))
{
mCircleListVisible = true;
mCircleIconVisible = true;
if(mCircleNameResolver != null)
mCirclesTextView.setText(mCircleNameResolver.getCircleNamesForPackedIds(s));
} else
if(!TextUtils.isEmpty(s1))
{
mCircleListVisible = true;
mCircleIconVisible = false;
mCirclesTextView.setText(s1);
} else
if(!TextUtils.isEmpty(s5))
{
mCircleListVisible = true;
mCircleIconVisible = false;
mCirclesTextView.setText(Html.fromHtml(s5));
} else
{
mCircleListVisible = false;
mCircleIconVisible = false;
mCirclesTextView.setText(null);
}
textview = mCirclesTextView;
if(mCircleListVisible)
i = 0;
else
i = 8;
textview.setVisibility(i);
if(mTypeTextView != null)
{
TextView textview1 = mTypeTextView;
int j;
if(mTypeTextViewVisible)
j = 0;
else
j = 8;
textview1.setVisibility(j);
}
}
public void setPersonId(String s)
{
mPersonId = s;
}
public void setPlusPage(boolean flag)
{
mPlusPage = flag;
}
public void setRemoveButtonVisible(boolean flag) {
if(mRemoveButtonVisible == flag) {
return;
}
mRemoveButtonVisible = flag;
if(mRemoveButtonVisible)
{
if(mRemoveButton == null)
{
mRemoveButton = new ImageView(getContext());
mRemoveButton.setBackgroundResource(mActionButtonResourceId);
mRemoveButton.setOnClickListener(this);
mRemoveButton.setFocusable(false);
ImageView imageview = mRemoveButton;
if(sRemoveButtonIcon == null)
sRemoveButtonIcon = getContext().getApplicationContext().getResources().getDrawable(R.drawable.ic_btn_dismiss_person);
imageview.setImageDrawable(sRemoveButtonIcon);
mRemoveButton.setScaleType(android.widget.ImageView.ScaleType.CENTER);
mRemoveButton.setContentDescription(getResources().getString(R.string.remove_from_circles));
addView(mRemoveButton);
}
mRemoveButton.setVisibility(0);
} else
if(mRemoveButton != null)
mRemoveButton.setVisibility(8);
}
public void setSectionHeader(char c)
{
setSectionHeaderVisible(true);
mSectionHeader.setText(String.valueOf(c));
}
protected void setSectionHeaderBackgroundColor()
{
mSectionHeader.setBackgroundColor(getContext().getResources().getColor(R.color.section_header_opaque_bg));
}
public void setSectionHeaderVisible(boolean flag) {
mSectionHeaderVisible = flag;
if(!mSectionHeaderVisible) {
if(mSectionHeader != null)
mSectionHeader.setVisibility(8);
} else {
if(mSectionHeader == null)
{
mSectionHeader = (SectionHeaderView)LayoutInflater.from(getContext()).inflate(R.layout.section_header, this, false);
setSectionHeaderBackgroundColor();
addView(mSectionHeader);
} else
{
mSectionHeader.setVisibility(0);
}
}
}
public void setUnblockButtonVisible(boolean flag) {
if(mUnblockButtonVisible == flag) {
return;
}
mUnblockButtonVisible = flag;
if(mUnblockButtonVisible)
{
if(mUnblockButton == null)
{
mUnblockButton = new ImageView(getContext());
mUnblockButton.setBackgroundResource(mActionButtonResourceId);
mUnblockButton.setOnClickListener(this);
mUnblockButton.setFocusable(false);
ImageView imageview = mUnblockButton;
if(sUnblockButtonIcon == null)
sUnblockButtonIcon = getContext().getApplicationContext().getResources().getDrawable(R.drawable.list_unblock);
imageview.setImageDrawable(sUnblockButtonIcon);
mUnblockButton.setScaleType(android.widget.ImageView.ScaleType.CENTER);
mUnblockButton.setContentDescription(getResources().getString(R.string.menu_item_unblock_person));
addView(mUnblockButton);
}
mUnblockButton.setVisibility(0);
} else
if(mUnblockButton != null)
mUnblockButton.setVisibility(8);
}
public void setWellFormedEmail(String s)
{
mWellFormedEmail = s;
updateDisplayName();
}
public void setWellFormedSms(String s)
{
mWellFormedSmsMode = true;
mWellFormedSms = s;
mNameTextView.setText(s);
}
public void updateContentDescription()
{
Resources resources;
CharSequence charsequence;
resources = getResources();
charsequence = mCirclesTextView.getText();
if(!mCircleListVisible || charsequence == null || charsequence.length() <= 0) {
if(mDisplayName != null)
{
int j = R.string.person_entry_content_description;
Object aobj1[] = new Object[1];
aobj1[0] = mDisplayName;
setContentDescription(resources.getString(j, aobj1));
} else
if(mWellFormedEmail != null)
{
int i = R.string.person_entry_email_content_description;
Object aobj[] = new Object[1];
aobj[0] = mWellFormedEmail;
setContentDescription(resources.getString(i, aobj));
}
} else {
int k = R.string.person_with_subtitle_entry_content_description;
Object aobj2[] = new Object[2];
aobj2[0] = mDisplayName;
aobj2[1] = charsequence;
setContentDescription(resources.getString(k, aobj2));
}
}
public static interface OnActionButtonClickListener {
void onActionButtonClick(PeopleListItemView peoplelistitemview, int i);
}
}