/** * 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 android.util.Log; 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.client.util.EsLog; 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 GetActivitiesOperation extends PlusiOperation { private final String mCircleId; private final String mContinuationToken; private final boolean mFromWidget; private final String mGaiaId; private final int mMaxCount; private long mRequestTime; private final String mSquareStreamId; private final EsSyncAdapterService.SyncState mSyncState; private final int mView; public GetActivitiesOperation(Context context, EsAccount esaccount, int i, String s, String s1, String s2, boolean flag, String s3, int j, EsSyncAdapterService.SyncState syncstate, Intent intent, HttpOperation.OperationListener operationlistener) { super(context, esaccount, "getactivities", null, operationlistener, GetActivitiesResponse.class); mView = i; if(!TextUtils.isEmpty(s) && s.startsWith("f.")) s = s.substring(2); mCircleId = s; mGaiaId = s1; mSquareStreamId = s2; mFromWidget = flag; mContinuationToken = s3; if(j <= 0) j = 10; mMaxCount = j; mSyncState = syncstate; } 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, mFromWidget, mView); if(EsLog.isLoggable("GetActivitiesOp", 4)) { boolean flag = TextUtils.equals(mContinuationToken, getactivitiesresponse.stream.continuationToken); StringBuilder stringbuilder = new StringBuilder(); String s1; StringBuilder stringbuilder1; Object obj; StringBuilder stringbuilder2; String s2; if(flag) s1 = "!!!!!"; else s1 = ""; stringbuilder1 = stringbuilder.append(s1).append("Sent token ").append(mContinuationToken).append(" at time ").append(mRequestTime).append(" and received token ").append(getactivitiesresponse.stream.continuationToken).append(" with "); if(getactivitiesresponse.stream.update == null) obj = "0"; else obj = Integer.valueOf(getactivitiesresponse.stream.update.size()); stringbuilder2 = stringbuilder1.append(obj).append(" activities for "); if(mAccount == null) s2 = "?"; else s2 = mAccount.getName(); Log.i("GetActivitiesOp", stringbuilder2.append(s2).toString()); } EsPostsData.updateStreamActivities(mContext, mAccount, s, getactivitiesresponse.stream.update, "MOBILE", mContinuationToken, getactivitiesresponse.stream.continuationToken, mSyncState); } protected final Request populateRequest() { boolean flag = true; GetActivitiesRequest getactivitiesrequest = new GetActivitiesRequest(); getactivitiesrequest.streamParams = new StreamParams(); StreamParams streamparams = getactivitiesrequest.streamParams; String s = "ALL"; switch(mView) { case 0: s = "CIRCLES"; break; case 1: s = "WHATS_HOT"; break; case 2: s = "ALL"; break; case 3: s = "ALL"; break; case 4: break; default: s = "ALL"; break; } streamparams.viewType = s; boolean flag1; boolean flag2; 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 = mContinuationToken; getactivitiesrequest.streamParams.maxNumUpdates = Integer.valueOf(mMaxCount); getactivitiesrequest.streamParams.collapserType = "MOBILE"; getactivitiesrequest.streamParams.maxComments = Integer.valueOf(0); getactivitiesrequest.streamParams.maxNumImages = Integer.valueOf(4); 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) flag1 = flag; else flag1 = false; if(!flag1) flag2 = flag; else flag2 = false; getactivitiesrequest.skipPopularMixin = Boolean.valueOf(flag2); getactivitiesrequest.streamParams.updateMixinFilter = new UpdateMixinFilter(); getactivitiesrequest.streamParams.updateMixinFilter.mixinType = EsPostsData.getMixinsWhitelist(flag1); getactivitiesrequest.embedOptions = new ClientEmbedOptions(); getactivitiesrequest.embedOptions.includeType = EsPostsData.getEmbedsWhitelist(); if(mFromWidget) flag = false; getactivitiesrequest.isUserInitiated = Boolean.valueOf(flag); mRequestTime = System.currentTimeMillis(); return getactivitiesrequest; } }