/** * 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.EsAccount; import com.galaxy.meetup.client.android.content.EsPostsData; import com.galaxy.meetup.client.android.network.ApiaryActivity; import com.galaxy.meetup.client.android.network.ApiaryActivityFactory; import com.galaxy.meetup.client.android.network.ApiaryApiInfo; import com.galaxy.meetup.client.android.network.PlatformHttpRequestConfiguration; import com.galaxy.meetup.client.android.network.PlusiOperation; import com.galaxy.meetup.client.android.network.http.HttpOperation; import com.galaxy.meetup.client.util.Property; import com.galaxy.meetup.server.client.domain.ClientEmbedOptions; import com.galaxy.meetup.server.client.domain.request.LinkPreviewRequest; import com.galaxy.meetup.server.client.domain.response.LinkPreviewResponse; import com.galaxy.meetup.server.client.v2.request.Request; import com.galaxy.meetup.server.client.v2.response.Response; /** * * @author sihai * */ public class LinkPreviewOperation extends PlusiOperation { private ApiaryActivity mActivity; private final CallToActionData mCallToAction; private final String mSourceUrl; public LinkPreviewOperation(Context context, EsAccount esaccount, Intent intent, HttpOperation.OperationListener operationlistener, String s, CallToActionData calltoactiondata, ApiaryApiInfo apiaryapiinfo) { super(context, esaccount, "linkpreview", null, null, new PlatformHttpRequestConfiguration(context, esaccount, "oauth2:https://www.googleapis.com/auth/plus.me https://www.googleapis.com/auth/plus.stream.read https://www.googleapis.com/auth/plus.stream.write https://www.googleapis.com/auth/plus.circles.write https://www.googleapis.com/auth/plus.circles.read https://www.googleapis.com/auth/plus.photos.readwrite https://www.googleapis.com/auth/plus.native", Property.PLUS_BACKEND_URL.get(), apiaryapiinfo), LinkPreviewResponse.class); mSourceUrl = s; mCallToAction = calltoactiondata; } public final ApiaryActivity getActivity() { return mActivity; } protected final void handleResponse(Response response) throws IOException { LinkPreviewResponse linkpreviewresponse = (LinkPreviewResponse)response; if(linkpreviewresponse != null) mActivity = ApiaryActivityFactory.getApiaryActivity(linkpreviewresponse); } protected final Request populateRequest() { LinkPreviewRequest linkpreviewrequest = new LinkPreviewRequest(); linkpreviewrequest.content = mSourceUrl; if(mCallToAction != null) { linkpreviewrequest.isInteractivePost = Boolean.valueOf(true); linkpreviewrequest.callToActionLabel = mCallToAction.mLabel; linkpreviewrequest.callToActionUrl = mCallToAction.mUrl; linkpreviewrequest.callToActionDeepLinkId = mCallToAction.mDeepLinkId; } linkpreviewrequest.useBlackboxPreviewData = Boolean.valueOf(true); linkpreviewrequest.fallbackToUrl = Boolean.valueOf(true); linkpreviewrequest.embedOptions = new ClientEmbedOptions(); linkpreviewrequest.embedOptions.includeType = EsPostsData.getShareboxEmbedsWhitelist(); return linkpreviewrequest; } }