Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit 78fb893f authored by Avichal Rakesh's avatar Avichal Rakesh
Browse files

ImageReader: Fix rogue RuntimeException in #detachImage

ImageReader#detach documents that an IllegalStateException will be thrown
if there are any errors detaching Image from a Surface. As ImageReaders
are set up, it is common for this exception to be thrown. Applications
are expected to catch and recover from the exception. However,
ImageReader#nativeDetachImage, that ImageReader#detachImage calls into,
explicitly threw a RuntimeException causing applications that didn't
expect RuntimeException to crash.

This behavior has stuck around for a few years, so changing the behavior
to match the documentation will break backwards compatibility for many
apps. However, RuntimeException is an incredibly generic exception that
applications shouldn't be forced to catch as it can hide more serious
bugs.

This CL updates #nativeDetachImage to accept an additional flag.
When this flag is set to True, #nativeDetachImage only throws
IllegalStateException and preserves previous behavior when the flag is
set to False.

The flag is populated through the App Compatibility Framework which
changes the behavior only for apps that set their targetSdk to > 33.

Bug: 236825255
Bug: 204438677
Test: Manually tested that the flag is set to true for Apps targetting
      Android SDK > 33
Change-Id: I20bd986f11dbe7acf4898cf0ce794c27f42e1ee2
parent 14e6daea
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment