Allow default per-thread and per-process OnHeaderDecodedListeners

Sometimes it is not always practical to set a listener at the time of
decoding. However, often it is still useful to enforce default
parameters. To enable this, create default listeners at the per-thread
and per-process levels.

If both a default process listener and a default thread listener are
provided, the thread listener will be run and the process listener
skipped. If a listener is passed in during decoding, it will always be
run last.

New CtsGraphicsTestCases were added to test this commit:
testDefaultProcessListener, testDefaultThreadListener, and
testDefaultsAndLocalListener.

Bug: 468061774
Test: atest CtsGraphicsTestCases:android.graphics.cts.ImageDecoderTest
Flag: com.android.graphics.hwui.flags.image_decoder_default_listener
Cherrypick-From: https://googleplex-android-review.googlesource.com/q/commit:a68d03895843f24b7720d05b394ebc8be646e911
Cherrypick-From: https://googleplex-android-review.googlesource.com/q/commit:406446fdedb2fb01f021eb8f93f29b7ccad9e6e8
Merged-In: I694d45deb8755aab5e994c12d2627fe08b5ce78c
Change-Id: I694d45deb8755aab5e994c12d2627fe08b5ce78c
1 file changed