diff --git a/library/src/main/java/com/readystatesoftware/chuck/internal/support/JsonConvertor.java b/library/src/main/java/com/readystatesoftware/chuck/internal/support/JsonConvertor.java index 0d0e3b03..db220840 100644 --- a/library/src/main/java/com/readystatesoftware/chuck/internal/support/JsonConvertor.java +++ b/library/src/main/java/com/readystatesoftware/chuck/internal/support/JsonConvertor.java @@ -31,12 +31,19 @@ private JsonConvertor() { public static Gson getInstance() { if (gson == null) { - gson = new GsonBuilder() - .setPrettyPrinting() - .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES) - .registerTypeAdapter(Date.class, new DateTypeAdapter()) - .create(); + gson = getDefaultGsonBuilder().create(); } return gson; } + + public static void setInstance(Gson gson) { + JsonConvertor.gson = gson; + } + + public static GsonBuilder getDefaultGsonBuilder() { + return new GsonBuilder() + .setPrettyPrinting() + .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES) + .registerTypeAdapter(Date.class, new DateTypeAdapter()); + } } diff --git a/sample/src/main/java/com/readystatesoftware/chuck/sample/MainActivity.java b/sample/src/main/java/com/readystatesoftware/chuck/sample/MainActivity.java index d56c231f..136287cb 100644 --- a/sample/src/main/java/com/readystatesoftware/chuck/sample/MainActivity.java +++ b/sample/src/main/java/com/readystatesoftware/chuck/sample/MainActivity.java @@ -17,13 +17,14 @@ import android.content.Context; import android.os.Bundle; +import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.view.View; - +import com.google.gson.Gson; import com.readystatesoftware.chuck.Chuck; import com.readystatesoftware.chuck.ChuckInterceptor; - +import com.readystatesoftware.chuck.internal.support.JsonConvertor; import okhttp3.OkHttpClient; import okhttp3.logging.HttpLoggingInterceptor; import retrofit2.Call; @@ -53,11 +54,20 @@ public void onClick(View view) { private OkHttpClient getClient(Context context) { return new OkHttpClient.Builder() // Add a ChuckInterceptor instance to your OkHttp client - .addInterceptor(new ChuckInterceptor(context)) + .addInterceptor(createChuckInterceptor(context)) .addInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY)) .build(); } + @NonNull + private ChuckInterceptor createChuckInterceptor(Context context) { + Gson gson = JsonConvertor.getDefaultGsonBuilder() + .serializeNulls() + .create(); + JsonConvertor.setInstance(gson); + return new ChuckInterceptor(context); + } + private void launchChuckDirectly() { // Optionally launch Chuck directly from your own app UI startActivity(Chuck.getLaunchIntent(this));