package com.odc.beachodc.webservices.image; import android.app.Activity; import android.app.ProgressDialog; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.AsyncTask; import android.util.Log; import com.odc.beachodc.R; import com.odc.beachodc.db.models.Imagen; import com.odc.beachodc.utilities.Image; import com.odc.beachodc.utilities.Utilities; import com.odc.beachodc.utilities.ValidacionPlaya; import com.odc.beachodc.webservices.Request; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.mime.HttpMultipartMode; import org.apache.http.entity.mime.MultipartEntityBuilder; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.protocol.BasicHttpContext; import org.apache.http.protocol.HttpContext; import org.apache.http.util.EntityUtils; import org.json.JSONObject; import java.util.Date; import de.keyboardsurfer.android.widget.crouton.Crouton; import de.keyboardsurfer.android.widget.crouton.Style; /** * Created by Paco on 05/08/2014. */ public class UploadToImgurTask extends AsyncTask<String, Void, String> { Activity ctx; ProgressDialog pd; Bitmap imagen; public void setParams (Activity ctx, ProgressDialog pd, Bitmap imagen){ this.ctx = ctx; this.pd = pd; this.imagen = imagen; } @Override protected String doInBackground(String... params) { final String upload_to = "https://api.imgur.com/3/image"; HttpClient httpClient = new DefaultHttpClient(); HttpContext localContext = new BasicHttpContext(); HttpPost httpPost = new HttpPost(upload_to); httpPost.setHeader("Authorization", "Client-ID " + ctx.getString(R.string.clientid_imgur)); try { MultipartEntityBuilder entityBuilder = MultipartEntityBuilder.create(); entityBuilder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); entityBuilder.addTextBody("image", Image.ImageToBase64(this.imagen)); HttpEntity entity = entityBuilder.build(); httpPost.setEntity(entity); final HttpResponse response = httpClient.execute(httpPost, localContext); final String response_string = EntityUtils.toString(response.getEntity()); final JSONObject json = new JSONObject(response_string); return json.getJSONObject("data").optString("link"); } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String result) { // Mandar link (Result) al servidor if (result != null){ Imagen imagen = new Imagen(Utilities.getUserIdFacebook(ctx), ValidacionPlaya.playa.idserver, "", Utilities.getUserNameFacebook(ctx), new Date(), result); Request.nuevaImagenPlaya(ctx, imagen, pd); } else { if ((pd != null) && (pd.isShowing())) pd.dismiss(); Crouton.makeText(ctx, ctx.getString(R.string.error_unknown), Style.ALERT).show(); } } }