SendFeedbackTask.java 12.5 KB
package net.hockeyapp.android.tasks;

import android.app.ProgressDialog;
import android.content.Context;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import java.io.File;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.hockeyapp.android.Constants;
import net.hockeyapp.android.R.string;
import net.hockeyapp.android.utils.HockeyLog;
import net.hockeyapp.android.utils.HttpURLConnectionBuilder;
import net.hockeyapp.android.utils.Util;

public class SendFeedbackTask
  extends ConnectionTask<Void, Void, HashMap<String, String>>
{
  public static final String BUNDLE_FEEDBACK_RESPONSE = "feedback_response";
  public static final String BUNDLE_FEEDBACK_STATUS = "feedback_status";
  public static final String BUNDLE_REQUEST_TYPE = "request_type";
  private Context a;
  private Handler b;
  private String c;
  private String d;
  private String e;
  private String f;
  private String g;
  private List<Uri> h;
  private String i;
  private boolean j;
  private ProgressDialog k;
  private boolean l;
  private int m;
  
  public SendFeedbackTask(Context paramContext, String paramString1, String paramString2, String paramString3, String paramString4, String paramString5, List<Uri> paramList, String paramString6, Handler paramHandler, boolean paramBoolean)
  {
    this.a = paramContext;
    this.c = paramString1;
    this.d = paramString2;
    this.e = paramString3;
    this.f = paramString4;
    this.g = paramString5;
    this.h = paramList;
    this.i = paramString6;
    this.b = paramHandler;
    this.j = paramBoolean;
    this.l = true;
    this.m = -1;
    if (paramContext != null) {
      Constants.loadFromContext(paramContext);
    }
  }
  
  private HashMap<String, String> a()
  {
    localHashMap1 = new HashMap();
    localHashMap1.put("type", "send");
    Object localObject6 = null;
    Object localObject5 = null;
    localObject2 = localObject5;
    localObject1 = localObject6;
    for (;;)
    {
      try
      {
        HashMap localHashMap2 = new HashMap();
        localObject2 = localObject5;
        localObject1 = localObject6;
        localHashMap2.put("name", this.d);
        localObject2 = localObject5;
        localObject1 = localObject6;
        localHashMap2.put("email", this.e);
        localObject2 = localObject5;
        localObject1 = localObject6;
        localHashMap2.put("subject", this.f);
        localObject2 = localObject5;
        localObject1 = localObject6;
        localHashMap2.put("text", this.g);
        localObject2 = localObject5;
        localObject1 = localObject6;
        localHashMap2.put("bundle_identifier", Constants.APP_PACKAGE);
        localObject2 = localObject5;
        localObject1 = localObject6;
        localHashMap2.put("bundle_short_version", Constants.APP_VERSION_NAME);
        localObject2 = localObject5;
        localObject1 = localObject6;
        localHashMap2.put("bundle_version", Constants.APP_VERSION);
        localObject2 = localObject5;
        localObject1 = localObject6;
        localHashMap2.put("os_version", Constants.ANDROID_VERSION);
        localObject2 = localObject5;
        localObject1 = localObject6;
        localHashMap2.put("oem", Constants.PHONE_MANUFACTURER);
        localObject2 = localObject5;
        localObject1 = localObject6;
        localHashMap2.put("model", Constants.PHONE_MODEL);
        localObject2 = localObject5;
        localObject1 = localObject6;
        if (this.i != null)
        {
          localObject2 = localObject5;
          localObject1 = localObject6;
          this.c = (this.c + this.i + "/");
        }
        localObject2 = localObject5;
        localObject1 = localObject6;
        HttpURLConnectionBuilder localHttpURLConnectionBuilder = new HttpURLConnectionBuilder(this.c);
        localObject2 = localObject5;
        localObject1 = localObject6;
        if (this.i == null) {
          continue;
        }
        localObject4 = "PUT";
        localObject2 = localObject5;
        localObject1 = localObject6;
        localObject4 = localHttpURLConnectionBuilder.setRequestMethod((String)localObject4).writeFormFields(localHashMap2).build();
        localObject2 = localObject4;
        localObject1 = localObject4;
        ((HttpURLConnection)localObject4).connect();
        localObject2 = localObject4;
        localObject1 = localObject4;
        localHashMap1.put("status", String.valueOf(((HttpURLConnection)localObject4).getResponseCode()));
        localObject2 = localObject4;
        localObject1 = localObject4;
        localHashMap1.put("response", getStringFromConnection((HttpURLConnection)localObject4));
      }
      catch (IOException localIOException)
      {
        Object localObject4;
        localObject1 = localObject2;
        localIOException.printStackTrace();
        return localHashMap1;
      }
      finally
      {
        if (localObject1 == null) {
          continue;
        }
        ((HttpURLConnection)localObject1).disconnect();
      }
      return localHashMap1;
      localObject4 = "POST";
    }
  }
  
  private HashMap<String, String> b()
  {
    localHashMap1 = new HashMap();
    localHashMap1.put("type", "send");
    Object localObject6 = null;
    Object localObject5 = null;
    localObject2 = localObject5;
    localObject1 = localObject6;
    for (;;)
    {
      try
      {
        HashMap localHashMap2 = new HashMap();
        localObject2 = localObject5;
        localObject1 = localObject6;
        localHashMap2.put("name", this.d);
        localObject2 = localObject5;
        localObject1 = localObject6;
        localHashMap2.put("email", this.e);
        localObject2 = localObject5;
        localObject1 = localObject6;
        localHashMap2.put("subject", this.f);
        localObject2 = localObject5;
        localObject1 = localObject6;
        localHashMap2.put("text", this.g);
        localObject2 = localObject5;
        localObject1 = localObject6;
        localHashMap2.put("bundle_identifier", Constants.APP_PACKAGE);
        localObject2 = localObject5;
        localObject1 = localObject6;
        localHashMap2.put("bundle_short_version", Constants.APP_VERSION_NAME);
        localObject2 = localObject5;
        localObject1 = localObject6;
        localHashMap2.put("bundle_version", Constants.APP_VERSION);
        localObject2 = localObject5;
        localObject1 = localObject6;
        localHashMap2.put("os_version", Constants.ANDROID_VERSION);
        localObject2 = localObject5;
        localObject1 = localObject6;
        localHashMap2.put("oem", Constants.PHONE_MANUFACTURER);
        localObject2 = localObject5;
        localObject1 = localObject6;
        localHashMap2.put("model", Constants.PHONE_MODEL);
        localObject2 = localObject5;
        localObject1 = localObject6;
        if (this.i != null)
        {
          localObject2 = localObject5;
          localObject1 = localObject6;
          this.c = (this.c + this.i + "/");
        }
        localObject2 = localObject5;
        localObject1 = localObject6;
        HttpURLConnectionBuilder localHttpURLConnectionBuilder = new HttpURLConnectionBuilder(this.c);
        localObject2 = localObject5;
        localObject1 = localObject6;
        if (this.i == null) {
          continue;
        }
        localObject4 = "PUT";
        localObject2 = localObject5;
        localObject1 = localObject6;
        localObject4 = localHttpURLConnectionBuilder.setRequestMethod((String)localObject4).writeMultipartData(localHashMap2, this.a, this.h).build();
        localObject2 = localObject4;
        localObject1 = localObject4;
        ((HttpURLConnection)localObject4).connect();
        localObject2 = localObject4;
        localObject1 = localObject4;
        localHashMap1.put("status", String.valueOf(((HttpURLConnection)localObject4).getResponseCode()));
        localObject2 = localObject4;
        localObject1 = localObject4;
        localHashMap1.put("response", getStringFromConnection((HttpURLConnection)localObject4));
      }
      catch (IOException localIOException)
      {
        Object localObject4;
        localObject1 = localObject2;
        localIOException.printStackTrace();
        return localHashMap1;
      }
      finally
      {
        if (localObject1 == null) {
          continue;
        }
        ((HttpURLConnection)localObject1).disconnect();
      }
      return localHashMap1;
      localObject4 = "POST";
    }
  }
  
  private HashMap<String, String> c()
  {
    Object localObject4 = new StringBuilder();
    ((StringBuilder)localObject4).append(this.c + Util.encodeParam(this.i));
    if (this.m != -1) {
      ((StringBuilder)localObject4).append("?last_message_id=" + this.m);
    }
    localHashMap = new HashMap();
    localObject3 = null;
    localObject1 = null;
    try
    {
      localObject4 = new HttpURLConnectionBuilder(((StringBuilder)localObject4).toString()).build();
      localObject1 = localObject4;
      localObject3 = localObject4;
      localHashMap.put("type", "fetch");
      localObject1 = localObject4;
      localObject3 = localObject4;
      ((HttpURLConnection)localObject4).connect();
      localObject1 = localObject4;
      localObject3 = localObject4;
      localHashMap.put("status", String.valueOf(((HttpURLConnection)localObject4).getResponseCode()));
      localObject1 = localObject4;
      localObject3 = localObject4;
      localHashMap.put("response", getStringFromConnection((HttpURLConnection)localObject4));
    }
    catch (IOException localIOException)
    {
      localObject3 = localObject1;
      localIOException.printStackTrace();
      return localHashMap;
    }
    finally
    {
      if (localObject3 == null) {
        break label195;
      }
      ((HttpURLConnection)localObject3).disconnect();
    }
    return localHashMap;
  }
  
  public void attach(Context paramContext)
  {
    this.a = paramContext;
  }
  
  public void detach()
  {
    this.a = null;
    this.k = null;
  }
  
  protected HashMap<String, String> doInBackground(Void... paramVarArgs)
  {
    if ((this.j) && (this.i != null)) {
      return c();
    }
    if (!this.j)
    {
      if (this.h.isEmpty()) {
        return a();
      }
      paramVarArgs = b();
      Object localObject1 = (String)paramVarArgs.get("status");
      if ((localObject1 != null) && (((String)localObject1).startsWith("2")) && (this.a != null))
      {
        localObject1 = new File(this.a.getCacheDir(), "HockeyApp");
        if (((File)localObject1).exists())
        {
          localObject1 = ((File)localObject1).listFiles();
          int i1 = localObject1.length;
          int n = 0;
          while (n < i1)
          {
            Object localObject2 = localObject1[n];
            if ((localObject2 != null) && (!Boolean.valueOf(((File)localObject2).delete()).booleanValue())) {
              HockeyLog.debug("SendFeedbackTask", "Error deleting file from temporary folder");
            }
            n += 1;
          }
        }
      }
      return paramVarArgs;
    }
    return null;
  }
  
  protected void onPostExecute(HashMap<String, String> paramHashMap)
  {
    if (this.k != null) {}
    try
    {
      this.k.dismiss();
      if (this.b != null)
      {
        Message localMessage = new Message();
        localBundle = new Bundle();
        if (paramHashMap != null)
        {
          localBundle.putString("request_type", (String)paramHashMap.get("type"));
          localBundle.putString("feedback_response", (String)paramHashMap.get("response"));
          localBundle.putString("feedback_status", (String)paramHashMap.get("status"));
          localMessage.setData(localBundle);
          this.b.sendMessage(localMessage);
        }
      }
      else
      {
        return;
      }
    }
    catch (Exception localException)
    {
      for (;;)
      {
        Bundle localBundle;
        localException.printStackTrace();
        continue;
        localBundle.putString("request_type", "unknown");
      }
    }
  }
  
  protected void onPreExecute()
  {
    String str = this.a.getString(R.string.hockeyapp_feedback_sending_feedback_text);
    if (this.j) {
      str = this.a.getString(R.string.hockeyapp_feedback_fetching_feedback_text);
    }
    if (((this.k == null) || (!this.k.isShowing())) && (this.l)) {
      this.k = ProgressDialog.show(this.a, "", str, true, false);
    }
  }
  
  public void setLastMessageId(int paramInt)
  {
    this.m = paramInt;
  }
  
  public void setShowProgressDialog(boolean paramBoolean)
  {
    this.l = paramBoolean;
  }
}


/* Location:              /home/merong/decompile/hackery-dex2jar.jar!/net/hockeyapp/android/tasks/SendFeedbackTask.class
 * Java compiler version: 6 (50.0)
 * JD-Core Version:       0.7.1
 */