/**
* Copyright (c) 2016-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
package com.facebook.react.devsupport;
import android.util.Log;
import java.io.File;
import java.io.IOException;
import java.util.List;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
/**
* Created by cwdick on 7/22/16.
*/
public class JSCHeapUpload {
public static JSCHeapCapture.CaptureCallback captureCallback(final String uploadUrl) {
return new JSCHeapCapture.CaptureCallback() {
@Override
public void onComplete(
List<File> captures,
List<JSCHeapCapture.CaptureException> failures) {
for (JSCHeapCapture.CaptureException e : failures) {
Log.e("JSCHeapCapture", e.getMessage());
}
OkHttpClient httpClient = new OkHttpClient.Builder().build();
for (File path : captures) {
RequestBody body = RequestBody.create(MediaType.parse("application/json"), path);
Request request = new Request.Builder()
.url(uploadUrl)
.method("POST", body)
.build();
Call call = httpClient.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
Log.e("JSCHeapCapture", "Upload of heap capture failed: " + e.toString());
}
@Override
public void onResponse(Call call, Response response) throws IOException {
if (!response.isSuccessful()) {
Log.e("JSCHeapCapture", "Upload of heap capture failed with code: " + Integer.toString(response.code()));
}
}
});
}
}
};
}
}