Skip to content

Conversation

cartland
Copy link
Contributor

The lint tool reported an ImplicitSamInstance warning in PictureInPictureSnippets.kt. Lambdas used as listeners were being implicitly converted to new SAM instances, causing removeOnUserLeaveHintListener to fail because the listener instances did not match. This could lead to a memory leak.

This commit fixes the issue by explicitly wrapping the listener lambdas in a 'Runnable' instance. This ensures a stable object reference is used for both adding and removing the listener.

The lint tool reported an "ImplicitSamInstance" warning in PictureInPictureSnippets.kt. Lambdas used as listeners were being implicitly converted to new SAM instances, causing removeOnUserLeaveHintListener to fail because the listener instances did not match. This could lead to a memory leak.

This commit fixes the issue by explicitly wrapping the listener lambdas in a 'Runnable' instance. This ensures a stable object reference is used for both adding and removing the listener.
@cartland cartland added the enhancement New feature or request label Aug 29, 2025
@cartland cartland merged commit f95ab59 into main Aug 29, 2025
4 checks passed
@cartland cartland deleted the cartland/fix-sam-conversion branch August 29, 2025 22:57
dturner added a commit that referenced this pull request Sep 23, 2025
* main: (74 commits)
  Add basic WindowInsetsRulers cases (#621)
  Adding shadows code snippets (#620)
  Update the wear preview code
  Update state based (#619)
  add WindowInsetsRulers snippet (#616)
  Migrate snippets from dac/training/wearables/tiles/screen-size (#617)
  Resolve warnings in the Wakelock code snippets (#615)
  Disabling some "unused" warnings (#610)
  Add android_wear_tile_version_fallback (#614)
  Add viewmodel screen for KMP (#613)
  Fix missing snippet (#612)
  Add KMP ViewModel snippets (#611)
  docs(modifiers): Add TODOs for inspectableProperties lint warnings (#589)
  Fix: Prevent memory leak from implicit SAM conversion (#588)
  Fix(gestures): Handle pointer events inside awaitPointerEventScope (#590)
  Lint: Use specialized state holders to avoid autoboxing (#591)
  Refactor: Rename Composable functions to follow naming conventions (#592)
  Refactor(text): Use KTX extension for isDigitsOnly check (#593)
  Refactor(SearchBar): Reorder modifier parameter to follow convention (#594)
  Add padding to avoid overwriting TimeText (#529)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants