diff --git a/power-libperfmgr/Power.cpp b/power-libperfmgr/Power.cpp index 7eabdf8..53cf3bd 100644 --- a/power-libperfmgr/Power.cpp +++ b/power-libperfmgr/Power.cpp @@ -97,9 +97,12 @@ ndk::ScopedAStatus Power::setMode(Mode type, bool enabled) { #endif case Mode::SUSTAINED_PERFORMANCE: if (enabled) { + endAllHints(); HintManager::GetInstance()->DoHint("SUSTAINED_PERFORMANCE"); + } else { + HintManager::GetInstance()->EndHint("SUSTAINED_PERFORMANCE"); } - mSustainedPerfModeOn = true; + mSustainedPerfModeOn = enabled; break; case Mode::LOW_POWER: if (enabled) { @@ -111,9 +114,6 @@ ndk::ScopedAStatus Power::setMode(Mode type, bool enabled) { mBatterySaverOn = enabled; break; case Mode::LAUNCH: - if (mSustainedPerfModeOn) { - break; - } [[fallthrough]]; #ifndef TAP_TO_WAKE_NODE case Mode::DOUBLE_TAP_TO_WAKE: @@ -132,7 +132,9 @@ ndk::ScopedAStatus Power::setMode(Mode type, bool enabled) { case Mode::AUDIO_STREAMING_LOW_LATENCY: [[fallthrough]]; default: - if (mBatterySaverOn) break; + if (mBatterySaverOn || mSustainedPerfModeOn) { + break; + } if (enabled) { HintManager::GetInstance()->DoHint(toString(type)); } else {