package net.cavdar.android.droidtranslate.translate; import android.app.ProgressDialog; import android.content.Context; import android.net.http.AndroidHttpClient; import android.os.AsyncTask; import android.util.Log; import net.cavdar.android.droidtranslate.helper.JsonUtil; import net.cavdar.android.droidtranslate.ui.MainActivity; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.ResponseHandler; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.BasicResponseHandler; import java.io.IOException; /** * User: accavdar * Date: 08/01/14 */ public class TranslateTask extends AsyncTask<String, Void, String> { private static final String TAG = TranslateTask.class.getSimpleName(); private TranslateHandler translateHandler; private Context context; private ProgressDialog progressDialog; public TranslateTask(Context context, TranslateHandler translateHandler) { this.context = context; this.translateHandler = translateHandler; } @Override protected void onPreExecute() { progressDialog = new ProgressDialog(context); progressDialog.setTitle("Translating"); progressDialog.setMessage("Please wait. Translating..."); progressDialog.setIndeterminate(true); progressDialog.show(); } @Override protected String doInBackground(String... params) { try { AndroidHttpClient client = AndroidHttpClient.newInstance("droidtranslate"); HttpGet request = new HttpGet(params[0]); ResponseHandler<String> responseHandler = new BasicResponseHandler(); String serverResponse = client.execute(request, responseHandler); return JsonUtil.getTranslatedTextFromJson(serverResponse); } catch (ClientProtocolException e) { Log.e(TAG, e.getMessage()); } catch (IOException e) { Log.e(TAG, e.getMessage()); } return null; } @Override protected void onPostExecute(String translatedText) { translateHandler.handleTranslation(translatedText); progressDialog.dismiss(); } }