/** * galaxy inc. * meetup client for android */ package com.galaxy.meetup.client.android.api; import java.io.IOException; import java.util.ArrayList; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.text.TextUtils; import android.util.Log; import com.galaxy.meetup.client.android.InstantUpload; import com.galaxy.meetup.client.android.content.EsAccount; import com.galaxy.meetup.client.android.content.EsEventData; import com.galaxy.meetup.client.android.network.PlusiOperation; import com.galaxy.meetup.client.android.network.http.HttpOperation; import com.galaxy.meetup.client.util.EsLog; import com.galaxy.meetup.server.client.domain.EventSelector; import com.galaxy.meetup.server.client.domain.PlusEvent; import com.galaxy.meetup.server.client.domain.ReadOptions; import com.galaxy.meetup.server.client.domain.ReadOptionsCommentsOptions; import com.galaxy.meetup.server.client.domain.ReadOptionsFramesOptions; import com.galaxy.meetup.server.client.domain.ReadOptionsPhotosOptions; import com.galaxy.meetup.server.client.domain.ReadOptionsUpdateOptions; import com.galaxy.meetup.server.client.domain.request.EventReadRequest; import com.galaxy.meetup.server.client.domain.response.EventLeafResponse; import com.galaxy.meetup.server.client.v2.request.Request; import com.galaxy.meetup.server.client.v2.response.Response; /** * * @author sihai * */ public class GetEventOperation extends PlusiOperation { private final String mAuthKey; private final String mEventId; public GetEventOperation(Context context, EsAccount esaccount, String s, String s1, Intent intent, HttpOperation.OperationListener operationlistener) { super(context, esaccount, "eventread", null, null, EventLeafResponse.class); if(TextUtils.isEmpty(s)) { throw new IllegalArgumentException("Event ID must not be empty"); } else { mEventId = s; mAuthKey = s1; return; } } protected final void handleResponse(Response response) throws IOException { Cursor cursor = null; EventLeafResponse eventleafresponse = (EventLeafResponse)response; String s = eventleafresponse.activityId; PlusEvent plusevent = eventleafresponse.plusEvent; long l = 0L; String s1 = null; String s2 = null; try { cursor = EsEventData.getEvent(mContext, mAccount, plusevent.getId(), EventQuery.PROJECTION); if(cursor.moveToFirst()) { s1 = cursor.getString(0); s2 = cursor.getString(1); l = cursor.getLong(2); } } finally { if(null != cursor) { cursor.close(); } } EsEventData.updateEventActivities(mContext, mAccount, s, plusevent, eventleafresponse.update, s1, s2, null, true, l, null); } public final void onHttpOperationComplete(int i, String s, Exception exception) { if(i == 404){ EsEventData.deleteEvent(mContext, mAccount, mEventId); return; } if(i >= 400 && TextUtils.equals(mEventId, InstantUpload.getInstantShareEventId(mContext))) { if(EsLog.isLoggable("HttpTransaction", 4)) Log.i("HttpTransaction", (new StringBuilder("[GET_EVENT] received error: ")).append(i).append("; disable IS").toString()); EsEventData.disableInstantShare(mContext); } } protected final Request populateRequest() { EventReadRequest eventreadrequest = new EventReadRequest(); ReadOptionsFramesOptions readoptionsframesoptions = new ReadOptionsFramesOptions(); readoptionsframesoptions.maxFrames = Integer.valueOf(0); ReadOptionsCommentsOptions readoptionscommentsoptions = new ReadOptionsCommentsOptions(); readoptionscommentsoptions.maxComments = Integer.valueOf(0); ArrayList arraylist = new ArrayList(); ReadOptionsPhotosOptions readoptionsphotosoptions = new ReadOptionsPhotosOptions(); readoptionsphotosoptions.maxPhotos = Integer.valueOf(0); arraylist.add(readoptionsphotosoptions); ReadOptionsUpdateOptions readoptionsupdateoptions = new ReadOptionsUpdateOptions(); readoptionsupdateoptions.includeActivityId = Boolean.valueOf(true); readoptionsupdateoptions.includeUpdate = Boolean.valueOf(true); EventSelector eventselector = new EventSelector(); eventselector.eventId = mEventId; eventselector.authKey = mAuthKey; ArrayList arraylist1 = new ArrayList(); ReadOptions readoptions = new ReadOptions(); readoptions.photosOptions = arraylist; readoptions.framesOptions = readoptionsframesoptions; readoptions.commentsOptions = readoptionscommentsoptions; readoptions.responseFormat = "LIST"; readoptions.includePlusEvent = Boolean.valueOf(true); readoptions.resolvePersons = Boolean.valueOf(true); readoptions.eventUpdateOptions = readoptionsupdateoptions; arraylist1.add(readoptions); eventreadrequest.readOptions = arraylist1; eventreadrequest.eventSelector = eventselector; return eventreadrequest; } public static interface EventQuery { public static final String PROJECTION[] = { "polling_token", "resume_token", "display_time" }; } }