package com.galaxy.meetup.client.android.content; import java.util.Arrays; import java.util.List; import android.content.Context; import android.content.res.Resources; import android.os.Parcel; import android.os.Parcelable; import android.text.TextUtils; import com.galaxy.meetup.client.android.R; /** * * @author sihai * */ public class AudienceData implements Parcelable, Cloneable { public static final android.os.Parcelable.Creator CREATOR = new android.os.Parcelable.Creator() { public final Object createFromParcel(Parcel parcel) { return new AudienceData(parcel); } public final Object[] newArray(int i) { return new AudienceData[i]; } }; private CircleData mCircles[]; private SquareTargetData mSquareTargets[]; private int mTotalPersonCount; private PersonData mUsers[]; private AudienceData(Parcel parcel) { mUsers = new PersonData[parcel.readInt()]; parcel.readTypedArray(mUsers, PersonData.CREATOR); mCircles = new CircleData[parcel.readInt()]; parcel.readTypedArray(mCircles, CircleData.CREATOR); mSquareTargets = new SquareTargetData[parcel.readInt()]; parcel.readTypedArray(mSquareTargets, SquareTargetData.CREATOR); mTotalPersonCount = parcel.readInt(); } public AudienceData(CircleData circledata) { mUsers = new PersonData[0]; mCircles = new CircleData[1]; mSquareTargets = new SquareTargetData[0]; mCircles[0] = circledata; } public AudienceData(PersonData persondata) { mUsers = new PersonData[1]; mCircles = new CircleData[0]; mSquareTargets = new SquareTargetData[0]; mUsers[0] = persondata; mTotalPersonCount = 1; } public AudienceData(SquareTargetData squaretargetdata) { mUsers = new PersonData[0]; mCircles = new CircleData[0]; mSquareTargets = new SquareTargetData[1]; mSquareTargets[0] = squaretargetdata; } public AudienceData(List list, List list1) { this(list, list1, ((List) (null))); } public AudienceData(List list, List list1, int i) { this(list, null, null, i); } public AudienceData(List list, List list1, List list2) { this(list, list1, list2, null == list ? 0 : list.size()); } public AudienceData(List list, List list1, List list2, int i) { if (list != null) { mUsers = new PersonData[list.size()]; list.toArray(mUsers); } else { mUsers = new PersonData[0]; } if (list1 != null) { mCircles = new CircleData[list1.size()]; list1.toArray(mCircles); } else { mCircles = new CircleData[0]; } if (list2 != null) { mSquareTargets = new SquareTargetData[list2.size()]; list2.toArray(mSquareTargets); } else { mSquareTargets = new SquareTargetData[0]; } mTotalPersonCount = i; } public final AudienceData clone() { return new AudienceData(Arrays.asList(mUsers), Arrays.asList(mCircles), Arrays.asList(mSquareTargets), mTotalPersonCount); } public int describeContents() { return 0; } public boolean equals(Object obj) { boolean flag = true; if (!(obj instanceof AudienceData)) flag = false; AudienceData audiencedata = (AudienceData) obj; if (mTotalPersonCount != audiencedata.mTotalPersonCount || !Arrays.equals(mUsers, audiencedata.mUsers) || !Arrays.equals(mCircles, audiencedata.mCircles) || !Arrays.equals(mSquareTargets, audiencedata.mSquareTargets)) flag = false; return flag; } public final CircleData getCircle(int i) { return mCircles[i]; } public final int getCircleCount() { return mCircles.length; } public final CircleData[] getCircles() { return mCircles; } public final int getHiddenUserCount() { return Math.max(0, mTotalPersonCount - mUsers.length); } public final SquareTargetData getSquareTarget(int i) { return mSquareTargets[0]; } public final int getSquareTargetCount() { return mSquareTargets.length; } public final SquareTargetData[] getSquareTargets() { return mSquareTargets; } public final PersonData getUser(int i) { return mUsers[i]; } public final int getUserCount() { return mUsers.length; } public final PersonData[] getUsers() { return mUsers; } public int hashCode() { return 31 * (31 * (31 * (527 + mTotalPersonCount) + Arrays .hashCode(mUsers)) + Arrays.hashCode(mCircles)) + Arrays.hashCode(mSquareTargets); } public final boolean isEmpty() { boolean flag; if (mUsers.length == 0 && mCircles.length == 0 && mSquareTargets.length == 0) flag = true; else flag = false; return flag; } public final String toNameList(Context context) { Resources resources = context.getResources(); String s = resources.getString(R.string.compose_acl_separator); String s1 = resources.getString(0x104000e); String s2 = resources.getString(R.string.loading); String s3 = resources.getString(R.string.square_unknown); int i = mCircles.length + mUsers.length + mSquareTargets.length; StringBuilder stringbuilder = new StringBuilder(); int j = 0; int k = 0; while (k < mCircles.length) { String s8 = mCircles[k].getName(); if (TextUtils.isEmpty(s8)) s8 = s2; stringbuilder.append(s8); if (++j < i) stringbuilder.append(s); k++; } int l = 0; while (l < mUsers.length) { String s6 = mUsers[l].getName(); String s7 = mUsers[l].getEmail(); if (TextUtils.isEmpty(s6)) if (!TextUtils.isEmpty(s7)) s6 = s7; else s6 = s1; stringbuilder.append(s6); if (++j < i) stringbuilder.append(s); l++; } int i1 = 0; while (i1 < mSquareTargets.length) { String s4 = mSquareTargets[i1].getSquareName(); String s5 = mSquareTargets[i1].getSquareStreamName(); if (TextUtils.isEmpty(s4)) s4 = s3; if (TextUtils.isEmpty(s5)) stringbuilder.append(s4); else stringbuilder.append(resources .getString(R.string.square_name_and_topic, new Object[] { s4, s5 })); if (++j < i) stringbuilder.append(s); i1++; } return stringbuilder.toString(); } public String toString() { return (new StringBuilder("Audience circles: ")) .append(Arrays.asList(mCircles)).append(", users: ") .append(Arrays.asList(mUsers)).append(", squares: ") .append(Arrays.asList(mSquareTargets)) .append(", hidden users: ").append(getHiddenUserCount()) .toString(); } public void writeToParcel(Parcel parcel, int i) { parcel.writeInt(mUsers.length); parcel.writeTypedArray(mUsers, 0); parcel.writeInt(mCircles.length); parcel.writeTypedArray(mCircles, 0); parcel.writeInt(mSquareTargets.length); parcel.writeTypedArray(mSquareTargets, 0); parcel.writeInt(mTotalPersonCount); } }