/**
* galaxy inc.
* meetup client for android
*/
package com.galaxy.meetup.client.android.hangout.crash;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Iterator;
import java.util.Map;
import com.galaxy.meetup.client.android.hangout.Log;
/**
*
* @author sihai
*
*/
public class CrashSender {
public static boolean sendReport(Map map, String s, byte abyte0[])
{
String s1 = (new StringBuilder("----------")).append(Long.toString((long)(1234567890123D * Math.random()))).append(System.currentTimeMillis()).toString();
HttpURLConnection httpurlconnection = null;
int i;
try {
httpurlconnection = (HttpURLConnection)(new URL("https://clients2.google.com/cr/report")).openConnection();
httpurlconnection.setDoOutput(true);
httpurlconnection.setRequestMethod("POST");
httpurlconnection.setRequestProperty("Content-Type", (new StringBuilder("multipart/form-data; boundary=")).append(s1).toString());
writePostContent(httpurlconnection.getOutputStream(), s1, map, s, abyte0);
i = httpurlconnection.getResponseCode();
Object aobj[] = new Object[2];
aobj[0] = map.get("sig");
aobj[1] = Integer.valueOf(i);
Log.info("Sent crash report with signature %s, response %d", aobj);
if(i != 200) {
return false;
} else {
String s2 = (new BufferedReader(new InputStreamReader(httpurlconnection.getInputStream()))).readLine();
Log.info((new StringBuilder("Report id: ")).append(s2).toString());
return true;
}
} catch (IOException e) {
return false;
} finally {
if(null != httpurlconnection) {
httpurlconnection.disconnect();
}
}
}
private static void writePostContent(OutputStream outputstream, String s, Map map, String s1, byte abyte0[])
throws IOException
{
java.util.Map.Entry entry;
for(Iterator iterator = map.entrySet().iterator(); iterator.hasNext(); outputstream.write((new StringBuilder("--")).append(s).append("\r\nContent-Disposition: form-data; name=\"").append((String)entry.getKey()).append("\"\r\n").append("\r\n").append((String)entry.getValue()).append("\r\n").toString().getBytes()))
entry = (java.util.Map.Entry)iterator.next();
if(abyte0 != null)
{
outputstream.write((new StringBuilder("--")).append(s).append("\r\nContent-Disposition: form-data; name=\"").append(s1).append("\"; filename=\"").append(s1).append("\"\r\n").append("Content-Type: application/octet-stream\r\n").append("\r\n").toString().getBytes());
outputstream.write(abyte0);
outputstream.write("\r\n".getBytes());
}
outputstream.write((new StringBuilder("--")).append(s).append("--\r\n").toString().getBytes());
}
}