/** * 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.os.Bundle; import android.util.Log; import com.galaxy.meetup.client.android.content.EsAccount; import com.galaxy.meetup.client.android.network.PlusiOperation; import com.galaxy.meetup.client.android.network.http.ApiaryHttpRequestConfiguration; import com.galaxy.meetup.client.android.network.http.HttpOperation; import com.galaxy.meetup.client.android.network.http.MeetupRequest; import com.galaxy.meetup.client.util.EsLog; import com.galaxy.meetup.server.client.domain.request.UploadMediaRequest; import com.galaxy.meetup.server.client.domain.response.UploadMediaResponse; import com.galaxy.meetup.server.client.v2.request.Request; import com.galaxy.meetup.server.client.v2.response.Response; /** * * @author sihai * */ public class UploadMediaOperation extends PlusiOperation { private static final Bundle QUERY_PARAMS; private final String mAlbumId; private final String mAlbumLabel; private final String mAlbumTitle; private final String mOwnerId; private final byte mPayloadData[]; private UploadMediaResponse mResponse; private Integer mTopOffset; static { Bundle bundle = new Bundle(); bundle.putString("uploadType", "multipart"); QUERY_PARAMS = bundle; } public UploadMediaOperation(Context context, EsAccount esaccount, Intent intent, HttpOperation.OperationListener operationlistener, String s, String s1, String s2, String s3, byte abyte0[]) { super(context, esaccount, "uploadmedia", QUERY_PARAMS, intent, operationlistener, new ApiaryHttpRequestConfiguration(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", null, "multipart/related; boundary=onetwothreefourfivesixseven"), UploadMediaResponse.class); mOwnerId = s; mAlbumId = s1; mAlbumTitle = s2; mAlbumLabel = s3; mTopOffset = null; mPayloadData = abyte0; } public UploadMediaOperation(Context context, EsAccount esaccount, Intent intent, HttpOperation.OperationListener operationlistener, String s, String s1, byte abyte0[]) { this(context, esaccount, intent, operationlistener, s, s1, null, null, abyte0); } public UploadMediaOperation(Context context, EsAccount esaccount, Intent intent, HttpOperation.OperationListener operationlistener, String s, String s1, byte abyte0[], Integer integer) { this(context, esaccount, intent, operationlistener, s, s1, null, null, abyte0); mTopOffset = integer; } protected final MeetupRequest createHttpEntity(Request request) { UploadMediaRequest uploadmediarequest = (UploadMediaRequest)request; return new MeetupRequest(mAccount, uploadmediarequest, mPayloadData); } public final UploadMediaResponse getUploadMediaResponse() { return mResponse; } protected final void handleResponse(Response response) throws IOException { UploadMediaResponse uploadmediaresponse; uploadmediaresponse = (UploadMediaResponse)response; onStartResultProcessing(); mResponse = uploadmediaresponse; if(!uploadmediaresponse.setProfilePhotoSucceeded.booleanValue()) { if(!EsLog.isLoggable("HttpTransaction", 6)) { // TODO ??? throw new UploadMediaException(); } else { if(!"profile".equals(mAlbumId)) { if("scrapbook".equals(mAlbumId)) Log.e("HttpTransaction", "Failed to upload and set cover photo"); throw new UploadMediaException(); } else { Log.e("HttpTransaction", "Failed to upload and set profile photo"); throw new UploadMediaException(); } } } } protected final Request populateRequest() { UploadMediaRequest uploadmediarequest = new UploadMediaRequest(); uploadmediarequest.ownerId = mOwnerId; uploadmediarequest.albumId = mAlbumId; uploadmediarequest.autoResize = Boolean.valueOf(true); if(mAlbumLabel != null) uploadmediarequest.albumLabel = mAlbumLabel; if(mAlbumTitle != null) uploadmediarequest.albumTitle = mAlbumTitle; if(mTopOffset != null) uploadmediarequest.offset = mTopOffset; return uploadmediarequest; } public static final class UploadMediaException extends ProtocolException { public UploadMediaException() { } } }