From c451bfd686248ac9ea6e6bf437ad694e2b7240b9 Mon Sep 17 00:00:00 2001 From: AbdElHamid Nasser Date: Tue, 27 Feb 2024 13:17:32 +0200 Subject: [PATCH 1/2] fix(example): fix fatal hangs and ANR crash buttons --- ...RNInstabugExampleCrashReportingModule.java | 31 +++++++++++++------ 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/examples/default/android/app/src/main/java/com/instabug/react/example/RNInstabugExampleCrashReportingModule.java b/examples/default/android/app/src/main/java/com/instabug/react/example/RNInstabugExampleCrashReportingModule.java index 96769ed5dc..26bd1a54c8 100644 --- a/examples/default/android/app/src/main/java/com/instabug/react/example/RNInstabugExampleCrashReportingModule.java +++ b/examples/default/android/app/src/main/java/com/instabug/react/example/RNInstabugExampleCrashReportingModule.java @@ -2,6 +2,8 @@ import static com.instabug.reactlibrary.utils.InstabugUtil.getMethod; +import android.content.Context; +import android.os.Handler; import com.facebook.react.bridge.Promise; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; @@ -10,6 +12,7 @@ import com.instabug.crash.models.IBGNonFatalException; import com.instabug.library.Feature; import com.instabug.react.example.nativeLibs.CppNativeLib; +import com.instabug.library.Instabug; import com.instabug.reactlibrary.RNInstabugReactnativeModule; import com.instabug.reactlibrary.utils.MainThreadHandler; @@ -51,20 +54,28 @@ public void sendNativeFatalCrash() { @ReactMethod public void sendANR() { - try { - Thread.sleep(20000); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } + sendHang(20000); } @ReactMethod public void sendFatalHang() { - try { - Thread.sleep(3000); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } + sendHang(3000); + } + + private void sendHang(long duration) { + Context applicationContext = Instabug.getApplicationContext(); + if (applicationContext == null) + return; + + Handler handler = new Handler(applicationContext.getMainLooper()); + + handler.post(() -> { + try { + Thread.sleep(duration); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + }); } @ReactMethod From 2274df13a13eb49a5664c64fa99c097f7641816a Mon Sep 17 00:00:00 2001 From: AbdElHamid Nasser Date: Tue, 27 Feb 2024 13:18:11 +0200 Subject: [PATCH 2/2] chore(example): optimize imports --- .../RNInstabugExampleCrashReportingModule.java | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/examples/default/android/app/src/main/java/com/instabug/react/example/RNInstabugExampleCrashReportingModule.java b/examples/default/android/app/src/main/java/com/instabug/react/example/RNInstabugExampleCrashReportingModule.java index 26bd1a54c8..4ccb7ad3ce 100644 --- a/examples/default/android/app/src/main/java/com/instabug/react/example/RNInstabugExampleCrashReportingModule.java +++ b/examples/default/android/app/src/main/java/com/instabug/react/example/RNInstabugExampleCrashReportingModule.java @@ -1,32 +1,20 @@ package com.instabug.react.example; -import static com.instabug.reactlibrary.utils.InstabugUtil.getMethod; - import android.content.Context; import android.os.Handler; -import com.facebook.react.bridge.Promise; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; import com.instabug.crash.CrashReporting; import com.instabug.crash.models.IBGNonFatalException; -import com.instabug.library.Feature; -import com.instabug.react.example.nativeLibs.CppNativeLib; import com.instabug.library.Instabug; -import com.instabug.reactlibrary.RNInstabugReactnativeModule; -import com.instabug.reactlibrary.utils.MainThreadHandler; - -import org.json.JSONObject; +import com.instabug.react.example.nativeLibs.CppNativeLib; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; +import javax.annotation.Nonnull; import java.util.ArrayList; import java.util.List; import java.util.Random; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; - public class RNInstabugExampleCrashReportingModule extends ReactContextBaseJavaModule { public RNInstabugExampleCrashReportingModule(ReactApplicationContext reactApplicationContext) {