SimpleMultipartEntity.java 4.17 KB
package net.hockeyapp.android.utils;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Random;

public class SimpleMultipartEntity
{
  private static final char[] a = "-_1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();
  private boolean b = false;
  private boolean c = false;
  private ByteArrayOutputStream d = new ByteArrayOutputStream();
  private String e;
  
  public SimpleMultipartEntity()
  {
    StringBuffer localStringBuffer = new StringBuffer();
    Random localRandom = new Random();
    while (i < 30)
    {
      localStringBuffer.append(a[localRandom.nextInt(a.length)]);
      i += 1;
    }
    this.e = localStringBuffer.toString();
  }
  
  public void addPart(String paramString, File paramFile, boolean paramBoolean)
    throws IOException
  {
    addPart(paramString, paramFile.getName(), new FileInputStream(paramFile), paramBoolean);
  }
  
  public void addPart(String paramString1, String paramString2)
    throws IOException
  {
    writeFirstBoundaryIfNeeds();
    this.d.write(("Content-Disposition: form-data; name=\"" + paramString1 + "\"\r\n").getBytes());
    this.d.write("Content-Type: text/plain; charset=UTF-8\r\n".getBytes());
    this.d.write("Content-Transfer-Encoding: 8bit\r\n\r\n".getBytes());
    this.d.write(paramString2.getBytes());
    this.d.write(("\r\n--" + this.e + "\r\n").getBytes());
  }
  
  public void addPart(String paramString1, String paramString2, InputStream paramInputStream, String paramString3, boolean paramBoolean)
    throws IOException
  {
    writeFirstBoundaryIfNeeds();
    try
    {
      paramString3 = "Content-Type: " + paramString3 + "\r\n";
      this.d.write(("Content-Disposition: form-data; name=\"" + paramString1 + "\"; filename=\"" + paramString2 + "\"\r\n").getBytes());
      this.d.write(paramString3.getBytes());
      this.d.write("Content-Transfer-Encoding: binary\r\n\r\n".getBytes());
      paramString1 = new byte['က'];
      for (;;)
      {
        int i = paramInputStream.read(paramString1);
        if (i == -1) {
          break;
        }
        this.d.write(paramString1, 0, i);
      }
      try
      {
        paramInputStream.close();
        throw paramString1;
        this.d.flush();
        if (paramBoolean) {
          writeLastBoundaryIfNeeds();
        }
        for (;;)
        {
          try
          {
            paramInputStream.close();
            return;
          }
          catch (IOException paramString1)
          {
            paramString1.printStackTrace();
            return;
          }
          this.d.write(("\r\n--" + this.e + "\r\n").getBytes());
        }
      }
      catch (IOException paramString2)
      {
        for (;;)
        {
          paramString2.printStackTrace();
        }
      }
    }
    finally {}
  }
  
  public void addPart(String paramString1, String paramString2, InputStream paramInputStream, boolean paramBoolean)
    throws IOException
  {
    addPart(paramString1, paramString2, paramInputStream, "application/octet-stream", paramBoolean);
  }
  
  public String getBoundary()
  {
    return this.e;
  }
  
  public long getContentLength()
  {
    writeLastBoundaryIfNeeds();
    return this.d.toByteArray().length;
  }
  
  public String getContentType()
  {
    return "multipart/form-data; boundary=" + getBoundary();
  }
  
  public ByteArrayOutputStream getOutputStream()
  {
    writeLastBoundaryIfNeeds();
    return this.d;
  }
  
  public void writeFirstBoundaryIfNeeds()
    throws IOException
  {
    if (!this.c) {
      this.d.write(("--" + this.e + "\r\n").getBytes());
    }
    this.c = true;
  }
  
  public void writeLastBoundaryIfNeeds()
  {
    if (this.b) {
      return;
    }
    try
    {
      this.d.write(("\r\n--" + this.e + "--\r\n").getBytes());
      this.b = true;
      return;
    }
    catch (IOException localIOException)
    {
      for (;;)
      {
        localIOException.printStackTrace();
      }
    }
  }
}


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