react-native-sound-level icon indicating copy to clipboard operation
react-native-sound-level copied to clipboard

Missing `return` and error handling

Open gavrilikhin-d opened this issue 2 years ago • 0 comments

Hi! 👋

Firstly, thanks for your work on this project! 🙂

Today I used patch-package to patch [email protected] for the project I'm working on.

You seems to forget return from function when MediaRecorder can't prepare. This, probably, leads to a crash in recorder.start().

Here is the diff that solved my problem:

diff --git a/node_modules/react-native-sound-level/android/src/main/java/com/punarinta/RNSoundLevel/RNSoundLevelModule.java b/node_modules/react-native-sound-level/android/src/main/java/com/punarinta/RNSoundLevel/RNSoundLevelModule.java
index 35b3ac4..d788044 100644
--- a/node_modules/react-native-sound-level/android/src/main/java/com/punarinta/RNSoundLevel/RNSoundLevelModule.java
+++ b/node_modules/react-native-sound-level/android/src/main/java/com/punarinta/RNSoundLevel/RNSoundLevelModule.java
@@ -63,9 +63,15 @@ class RNSoundLevelModule extends ReactContextBaseJavaModule {
       recorder.prepare();
     } catch (final Exception e) {
       logAndRejectPromise(promise, "COULDNT_PREPARE_RECORDING", e.getMessage());
+      return;
     }
 
-    recorder.start();
+    try {
+      recorder.start();
+    } catch (final Exception e) {
+      logAndRejectPromise(promise, "COULDNT_START_RECORDING", e.getMessage());
+      return;
+    }
 
     frameId = 0;
     isRecording = true;

This issue body was partially generated by patch-package.

gavrilikhin-d avatar Aug 07 '23 08:08 gavrilikhin-d