Skip to content

Missing return and error handling #34

@gavrilikhin-d

Description

@gavrilikhin-d

Hi! 👋

Firstly, thanks for your work on this project! 🙂

Today I used patch-package to patch react-native-sound-level@1.2.0 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions