/** * 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.server.client.domain.ActivityFilters; 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 CheckNearbyStreamChangeOperation extends PlusiOperation { private final DbLocation mLocation; private boolean mStreamHasChanged; public CheckNearbyStreamChangeOperation(Context context, EsAccount esaccount, DbLocation dblocation, Intent intent, HttpOperation.OperationListener operationlistener) { super(context, esaccount, "nearbystream", null, null, NearbyStreamResponse.class); mLocation = dblocation; } protected final void handleResponse(Response response) throws IOException { NearbyStreamResponse nearbystreamresponse = (NearbyStreamResponse)response; String s = EsPostsData.buildActivitiesStreamKey(null, null, mLocation, false, 2); mStreamHasChanged = EsPostsData.hasStreamChanged(mContext, mAccount, s, nearbystreamresponse.stream.update); } public final boolean hasStreamChanged() { return mStreamHasChanged; } @Override 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 = null; nearbystreamrequest.maxResults = Integer.valueOf(1); 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(true); return nearbystreamrequest; } }