Fix BroadcastReceiver memory leak in scanForWifi #4
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fix BroadcastReceiver memory leak in scanForWifi
Summary
Fixed a critical memory leak in the Android implementation where a
BroadcastReceiverwas registered inscanForWifi()but never unregistered. The receiver is now properly unregistered after scan results are processed in all code paths:startScan()returns false (fallback case)Files changed:
android/src/main/java/com/lindsor/capacitor/wifi/Wifi.java- Added 3 lines to unregister the receiverReview & Testing Checklist for Human
This is a YELLOW risk change - the fix is straightforward but I was unable to test on an actual Android device.
scanWifi()still works correctly and returns resultsIllegalArgumentExceptionfrom attempting to unregister an already-unregistered receiverwifiManager.startScan()returnsfalse(may require specific device conditions or mocking)Test Plan
scanWifi()multiple times in succession (10-20 times)Notes
npm run verify:android) to verify compilation, only ran TypeScript build and prettier checks which passedLink to Devin run: https://app.devin.ai/sessions/7fcc006dadc142ac80efd3ab5b608a62
Requested by: Marcelo Luz (marcelo.luz@lindsor.com) (@Lindsor)