/** * 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 android.text.TextUtils; 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.ClientEmbedOptions; import com.galaxy.meetup.server.client.domain.FieldRequestOptions; import com.galaxy.meetup.server.client.domain.StreamParams; import com.galaxy.meetup.server.client.domain.UpdateFilter; import com.galaxy.meetup.server.client.domain.UpdateMixinFilter; import com.galaxy.meetup.server.client.domain.request.GetActivitiesRequest; import com.galaxy.meetup.server.client.domain.response.GetActivitiesResponse; import com.galaxy.meetup.server.client.v2.request.Request; import com.galaxy.meetup.server.client.v2.response.Response; /** * * @author sihai * */ public class CheckStreamChangeOperation extends PlusiOperation { private final String mCircleId; private final boolean mFromWidget; private final String mGaiaId; private final String mSquareStreamId; private boolean mStreamHasChanged; private final int mView; public CheckStreamChangeOperation(Context context, EsAccount esaccount, int i, String s, String s1, String s2, boolean flag, Intent intent, HttpOperation.OperationListener operationlistener) { super(context, esaccount, "getactivities", null, null, GetActivitiesResponse.class); mView = i; if(!TextUtils.isEmpty(s) && s.startsWith("f.")) s = s.substring(2); mCircleId = s; mGaiaId = s1; mSquareStreamId = s2; mFromWidget = flag; } protected final void handleResponse(Response response) throws IOException { GetActivitiesResponse getactivitiesresponse = (GetActivitiesResponse)response; String s; if(mView == 4) s = EsPostsData.buildSquareStreamKey(mGaiaId, mSquareStreamId, false); else s = EsPostsData.buildActivitiesStreamKey(mGaiaId, mCircleId, null, false, mView); mStreamHasChanged = EsPostsData.hasStreamChanged(mContext, mAccount, s, getactivitiesresponse.stream.update); } public final boolean hasStreamChanged() { return mStreamHasChanged; } @Override protected final Request populateRequest() { GetActivitiesRequest getactivitiesrequest = new GetActivitiesRequest(); getactivitiesrequest.streamParams = new StreamParams(); String s = "ALL"; switch(mView) { case 0: s = "CIRCLES"; break; case 1: s = "WHATS_HOT"; break; case 2: case 3: s = "ALL"; break; case 4: s = "SQUARES"; break; default: s = "ALL"; break; } getactivitiesrequest.streamParams.viewType = s; boolean flag; boolean flag1; if(mView != 3 && mView != 0 || mCircleId != null || mGaiaId != null) getactivitiesrequest.streamParams.sort = "LATEST"; else getactivitiesrequest.streamParams.sort = "BEST"; getactivitiesrequest.streamParams.focusGroupId = mCircleId; getactivitiesrequest.streamParams.productionStreamOid = mGaiaId; getactivitiesrequest.streamParams.squareStreamId = mSquareStreamId; getactivitiesrequest.continuesToken = null; getactivitiesrequest.streamParams.maxNumUpdates = Integer.valueOf(1); getactivitiesrequest.streamParams.collapserType = "MOBILE"; getactivitiesrequest.streamParams.maxComments = Integer.valueOf(0); getactivitiesrequest.streamParams.maxNumImages = Integer.valueOf(0); getactivitiesrequest.streamParams.fieldRequestOptions = new FieldRequestOptions(); getactivitiesrequest.streamParams.fieldRequestOptions.includeLegacyMediaData = Boolean.FALSE; getactivitiesrequest.streamParams.fieldRequestOptions.includeEmbedsData = Boolean.TRUE; getactivitiesrequest.streamParams.updateFilter = new UpdateFilter(); getactivitiesrequest.streamParams.updateFilter.includeNamespace = EsPostsData.getStreamNamespaces(mFromWidget); if(mView == 0 && mCircleId == null && mGaiaId == null) flag = true; else flag = false; if(!flag) flag1 = true; else flag1 = false; getactivitiesrequest.skipPopularMixin = Boolean.valueOf(flag1); getactivitiesrequest.streamParams.updateMixinFilter = new UpdateMixinFilter(); getactivitiesrequest.streamParams.updateMixinFilter.mixinType = EsPostsData.getMixinsWhitelist(flag); getactivitiesrequest.embedOptions = new ClientEmbedOptions(); getactivitiesrequest.embedOptions.includeType = EsPostsData.getEmbedsWhitelist(); getactivitiesrequest.isUserInitiated = Boolean.FALSE; return getactivitiesrequest; } }