/** * galaxy inc. * meetup client for android */ package com.galaxy.meetup.client.android.content; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.IOException; import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.List; import android.text.TextUtils; import com.galaxy.meetup.server.client.domain.EmbedsPerson; import com.galaxy.meetup.server.client.domain.HangoutConsumer; /** * * @author sihai * */ public class DbEmbedHangout extends DbSerializer { protected List mAttendeeAvatarUrls; protected List mAttendeeGaiaIds; protected List mAttendeeNames; protected String mHangoutId; protected String mStatus; protected String mYoutubeLiveId; protected DbEmbedHangout() { } private DbEmbedHangout(HangoutConsumer hangoutconsumer) { if (hangoutconsumer.startContext != null) mHangoutId = hangoutconsumer.startContext.hangoutId; else mHangoutId = null; mAttendeeGaiaIds = new ArrayList(); mAttendeeNames = new ArrayList(); mAttendeeAvatarUrls = new ArrayList(); if (hangoutconsumer.attendees != null) { int i = 0; for (int j = hangoutconsumer.attendees.size(); i < j; i++) { EmbedsPerson embedsperson = hangoutconsumer.attendees.get(i); mAttendeeGaiaIds.add(embedsperson.getOwnerObfuscatedId()); mAttendeeNames.add(embedsperson.getName()); mAttendeeAvatarUrls.add(embedsperson.getImageUrl()); } } mYoutubeLiveId = hangoutconsumer.youtubeLiveId; mStatus = hangoutconsumer.status; } public static DbEmbedHangout deserialize(byte abyte0[]) { DbEmbedHangout dbembedhangout; if (abyte0 == null) { dbembedhangout = null; } else { ByteBuffer bytebuffer = ByteBuffer.wrap(abyte0); dbembedhangout = new DbEmbedHangout(); dbembedhangout.mHangoutId = getShortString(bytebuffer); dbembedhangout.mAttendeeGaiaIds = (ArrayList) getShortStringList(bytebuffer); dbembedhangout.mAttendeeNames = (ArrayList) getShortStringList(bytebuffer); dbembedhangout.mAttendeeAvatarUrls = (ArrayList) getShortStringList(bytebuffer); dbembedhangout.mYoutubeLiveId = getShortString(bytebuffer); dbembedhangout.mStatus = getShortString(bytebuffer); } return dbembedhangout; } public static byte[] serialize(HangoutConsumer hangoutconsumer) throws IOException { DbEmbedHangout dbembedhangout = new DbEmbedHangout(hangoutconsumer); ByteArrayOutputStream bytearrayoutputstream = new ByteArrayOutputStream( 256); DataOutputStream dataoutputstream = new DataOutputStream( bytearrayoutputstream); putShortString(dataoutputstream, dbembedhangout.mHangoutId); putShortStringList(dataoutputstream, dbembedhangout.mAttendeeGaiaIds); putShortStringList(dataoutputstream, dbembedhangout.mAttendeeNames); putShortStringList(dataoutputstream, dbembedhangout.mAttendeeAvatarUrls); putShortString(dataoutputstream, dbembedhangout.mYoutubeLiveId); putShortString(dataoutputstream, dbembedhangout.mStatus); byte abyte0[] = bytearrayoutputstream.toByteArray(); dataoutputstream.close(); return abyte0; } public final List getAttendeeAvatarUrls() { return mAttendeeAvatarUrls; } public final List getAttendeeGaiaIds() { return mAttendeeGaiaIds; } public final List getAttendeeNames() { return mAttendeeNames; } public final String getHangoutId() { return mHangoutId; } public final int getNumAttendees() { return mAttendeeGaiaIds.size(); } public final String getYoutubeLiveId() { return mYoutubeLiveId; } public final boolean isInProgress() { return TextUtils.equals("ACTIVE", mStatus); } public final boolean isJoinable() { return TextUtils.isEmpty(mYoutubeLiveId); } }