/** * galaxy inc. * meetup client for android */ package com.galaxy.meetup.client.android.api; import java.io.IOException; import android.content.Context; import android.content.Intent; import com.galaxy.meetup.client.android.content.DbLocation; import com.galaxy.meetup.client.android.content.EsAccount; import com.galaxy.meetup.client.android.content.EsPostsData; import com.galaxy.meetup.client.android.network.PlusiOperation; import com.galaxy.meetup.client.android.network.http.HttpOperation; import com.galaxy.meetup.client.android.service.EsSyncAdapterService; import com.galaxy.meetup.server.client.domain.ActivityFilters; import com.galaxy.meetup.server.client.domain.ClientEmbedOptions; import com.galaxy.meetup.server.client.domain.FieldRequestOptions; import com.galaxy.meetup.server.client.domain.NearbyStreamRequestLatLongE7; import com.galaxy.meetup.server.client.domain.UpdateFilter; import com.galaxy.meetup.server.client.domain.request.NearbyStreamRequest; import com.galaxy.meetup.server.client.domain.response.NearbyStreamResponse; import com.galaxy.meetup.server.client.v2.request.Request; import com.galaxy.meetup.server.client.v2.response.Response; /** * * @author sihai * */ public class GetNearbyActivitiesOperation extends PlusiOperation { private final String mContinuationToken; private final DbLocation mLocation; private final int mMaxCount; private final EsSyncAdapterService.SyncState mSyncState; public GetNearbyActivitiesOperation(Context context, EsAccount esaccount, DbLocation dblocation, String s, int i, EsSyncAdapterService.SyncState syncstate, Intent intent, HttpOperation.OperationListener operationlistener) { super(context, esaccount, "nearbystream", null, operationlistener, NearbyStreamResponse.class); mLocation = dblocation; mContinuationToken = s; if(i <= 0) i = 10; mMaxCount = i; mSyncState = syncstate; } protected final void handleResponse(Response response) throws IOException { NearbyStreamResponse nearbystreamresponse = (NearbyStreamResponse)response; String s = EsPostsData.buildActivitiesStreamKey(null, null, mLocation, false, 2); EsPostsData.updateStreamActivities(mContext, mAccount, s, nearbystreamresponse.stream.update, "DEFAULT", mContinuationToken, nearbystreamresponse.stream.continuationToken, mSyncState); } protected final Request populateRequest() { NearbyStreamRequest nearbystreamrequest = new NearbyStreamRequest(); nearbystreamrequest.latLongE7 = new NearbyStreamRequestLatLongE7(); nearbystreamrequest.latLongE7.latitude = Integer.valueOf(mLocation.getLatitudeE7()); nearbystreamrequest.latLongE7.longitude = Integer.valueOf(mLocation.getLongitudeE7()); nearbystreamrequest.continuationToken = mContinuationToken; nearbystreamrequest.maxResults = Integer.valueOf(mMaxCount); nearbystreamrequest.activityFilters = new ActivityFilters(); nearbystreamrequest.activityFilters.fieldRequestOptions = new FieldRequestOptions(); nearbystreamrequest.activityFilters.fieldRequestOptions.includeLegacyMediaData = Boolean.FALSE; nearbystreamrequest.activityFilters.fieldRequestOptions.includeEmbedsData = Boolean.TRUE; nearbystreamrequest.activityFilters.updateFilter = new UpdateFilter(); nearbystreamrequest.activityFilters.updateFilter.includeNamespace = EsPostsData.getStreamNamespaces(false); nearbystreamrequest.embedOptions = new ClientEmbedOptions(); nearbystreamrequest.embedOptions.includeType = EsPostsData.getEmbedsWhitelist(); return nearbystreamrequest; } }