/** * galaxy inc. * meetup client for android */ package com.galaxy.meetup.client.android.api; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import android.content.Context; import android.content.Intent; import android.database.sqlite.SQLiteDatabase; import com.galaxy.meetup.client.android.content.AudienceData; import com.galaxy.meetup.client.android.content.EsAccount; import com.galaxy.meetup.client.android.content.EsAvatarData; import com.galaxy.meetup.client.android.content.EsDatabaseHelper; import com.galaxy.meetup.client.android.content.EsPeopleData; import com.galaxy.meetup.client.android.content.PersonData; import com.galaxy.meetup.client.android.network.PlusiOperation; import com.galaxy.meetup.client.android.network.http.HttpOperation; import com.galaxy.meetup.server.client.domain.Person; import com.galaxy.meetup.server.client.domain.request.GetAudienceRequest; import com.galaxy.meetup.server.client.domain.response.GetAudienceResponse; import com.galaxy.meetup.server.client.v2.request.Request; import com.galaxy.meetup.server.client.v2.response.Response; /** * * @author sihai * */ public class GetAudienceOperation extends PlusiOperation { private final String mActivityId; private AudienceData mAudienceData; public GetAudienceOperation(Context context, EsAccount esaccount, String s, Intent intent, HttpOperation.OperationListener operationlistener) { super(context, esaccount, "getaudience", intent, operationlistener, GetAudienceResponse.class); mActivityId = s; } public final AudienceData getAudience() { return mAudienceData; } protected final void handleResponse(Response response) throws IOException { int i; int j; GetAudienceResponse getaudienceresponse = (GetAudienceResponse)response; Person person; if(getaudienceresponse.gaiaAudienceCount == null) i = 0; else i = getaudienceresponse.gaiaAudienceCount.intValue(); if(getaudienceresponse.nonGaiaAudienceCount == null) j = 0; else j = getaudienceresponse.nonGaiaAudienceCount.intValue(); ArrayList arraylist = new ArrayList(); if(null != getaudienceresponse.person) { SQLiteDatabase sqlitedatabase = EsDatabaseHelper.getDatabaseHelper(mContext, mAccount).getWritableDatabase(); try { sqlitedatabase.beginTransaction(); for(Iterator iterator = getaudienceresponse.person.iterator(); iterator.hasNext(); EsPeopleData.replaceUserInTransaction(sqlitedatabase, person.obfuscatedId, person.userName, person.photoUrl)) { person = (Person)iterator.next(); arraylist.add(new PersonData(person.obfuscatedId, person.userName, null, EsAvatarData.compressAvatarUrl(person.photoUrl))); } sqlitedatabase.setTransactionSuccessful(); } finally { sqlitedatabase.endTransaction(); } } mAudienceData = new AudienceData(arraylist, null, i + j); return; } protected final Request populateRequest() { GetAudienceRequest getaudiencerequest = new GetAudienceRequest(); getaudiencerequest.updateId = mActivityId; getaudiencerequest.returnFullProfile = Boolean.valueOf(true); return getaudiencerequest; } }