diff --git a/android/plugins/inspector/InspectorSonarPlugin.java b/android/plugins/inspector/InspectorSonarPlugin.java index a7f676e95..fc3e61a56 100644 --- a/android/plugins/inspector/InspectorSonarPlugin.java +++ b/android/plugins/inspector/InspectorSonarPlugin.java @@ -48,8 +48,14 @@ public class InspectorSonarPlugin implements SonarPlugin { SonarReceiver receiver(ObjectTracker tracker, SonarConnection connection); } + private static Application getAppContextFromContext(Context context) { + Context nonNullContext = + context.getApplicationContext() == null ? context : context.getApplicationContext(); + return (Application) context; + } + public InspectorSonarPlugin(Context context, DescriptorMapping descriptorMapping) { - this(context, descriptorMapping, new NullScriptingEnvironment()); + this(getAppContextFromContext(context), descriptorMapping, new NullScriptingEnvironment()); } public InspectorSonarPlugin( @@ -57,7 +63,7 @@ public class InspectorSonarPlugin implements SonarPlugin { DescriptorMapping descriptorMapping, ScriptingEnvironment scriptingEnvironment) { this( - new ApplicationWrapper((Application) context.getApplicationContext()), + new ApplicationWrapper(getAppContextFromContext(context)), descriptorMapping, scriptingEnvironment, null); @@ -68,7 +74,7 @@ public class InspectorSonarPlugin implements SonarPlugin { DescriptorMapping descriptorMapping, @Nullable List extensions) { this( - new ApplicationWrapper((Application) context.getApplicationContext()), + new ApplicationWrapper(getAppContextFromContext(context)), descriptorMapping, new NullScriptingEnvironment(), extensions); @@ -79,8 +85,9 @@ public class InspectorSonarPlugin implements SonarPlugin { DescriptorMapping descriptorMapping, ScriptingEnvironment scriptingEnvironment, @Nullable List extensions) { + this( - new ApplicationWrapper((Application) context.getApplicationContext()), + new ApplicationWrapper(getAppContextFromContext(context)), descriptorMapping, scriptingEnvironment, extensions); diff --git a/android/src/main/java/com/facebook/sonar/android/AndroidSonarClient.java b/android/src/main/java/com/facebook/sonar/android/AndroidSonarClient.java index a648188b4..913f0ccc1 100644 --- a/android/src/main/java/com/facebook/sonar/android/AndroidSonarClient.java +++ b/android/src/main/java/com/facebook/sonar/android/AndroidSonarClient.java @@ -25,7 +25,8 @@ public final class AndroidSonarClient { sConnectionThread = new SonarThread("SonarConnectionThread"); sConnectionThread.start(); - final Context app = context.getApplicationContext(); + final Context app = + context.getApplicationContext() == null ? context : context.getApplicationContext(); SonarClientImpl.init( sSonarThread.getEventBase(), sConnectionThread.getEventBase(),