From 1cd98769c1a330fe41c8289c048d0b103a115e4f Mon Sep 17 00:00:00 2001 From: Hoa Hoang Date: Mon, 15 Nov 2021 13:42:57 +0000 Subject: [PATCH] bootanim: audioplay: do not start audio thread if it is not allowed If playSoundsAllowed() returns false, then no need to start new audio thread. Bug: 232955344 Test: Manual - applied this wear-dev change to a local main and verified in an emulator that when launching bootanimation (as root), init() early exits with no negative consequences when BootAnimationUtil.cpp's playSoundsAllowed() returns false. Also tested when playSoundsAllowed() returns true, init() continues (but exits when partWithAudio is null checked). Change-Id: Ia3ff397ab004b09e60acca1b4ad23c5e76d698cb (cherry picked from commit 61b667b5bce33ee857a19688a23eef79bdf66a99) (cherry picked from commit 226331c3b20571fd3dc38bb5da7e0455c4a34f13) --- cmds/bootanimation/audioplay.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cmds/bootanimation/audioplay.cpp b/cmds/bootanimation/audioplay.cpp index c5e16c6b7deb6..da85a1c572a52 100644 --- a/cmds/bootanimation/audioplay.cpp +++ b/cmds/bootanimation/audioplay.cpp @@ -334,6 +334,11 @@ class AudioAnimationCallbacks : public android::BootAnimation::Callbacks { public: void init(const Vector& parts) override { const Animation::Part* partWithAudio = nullptr; + + if (!playSoundsAllowed()) { + return; + } + for (const Animation::Part& part : parts) { if (part.audioData != nullptr) { partWithAudio = ∂