fix: Rare NoSuchMethodError crash on SurfaceControl setEarlyWakeupStart and setEarlyWakeupEnd

Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
This commit is contained in:
Pun Butrach
2025-10-02 21:32:58 +07:00
parent b4762ec549
commit c60a421d93
3 changed files with 21 additions and 4 deletions

View File

@@ -46,6 +46,7 @@ Compatibility list:
* [Lawnchair] Reimplement Bulk icons toggle
* SettingsCache crashing with SecurityException with unreadable keys (@hide) in Android 12 and newer (assume false)
* Assume flags `enableMovingContentIntoPrivateSpace` is false when ClassNotFoundException on Android 16 devices
* Rare NoSuchMethodError crash on SurfaceControl setEarlyWakeupStart and setEarlyWakeupEnd
#### Known Bugs
* Preview can't show device wallpaper -> (lIxkAYGg)

View File

@@ -260,11 +260,19 @@ public final class TaskbarOverlayController {
boolean wantsEarlyWakeUp = radius > 0 && radius < mMaxBlurRadius;
if (wantsEarlyWakeUp && !mInEarlyWakeUp) {
Log.d(TAG, "setBackgroundBlurRadius: setting early wakeup");
transaction.setEarlyWakeupStart();
try {
transaction.setEarlyWakeupStart();
} catch (NoSuchMethodError e) {
// LC-Ignored: wtf?
}
mInEarlyWakeUp = true;
} else if (!wantsEarlyWakeUp && mInEarlyWakeUp) {
Log.d(TAG, "setBackgroundBlurRadius: clearing early wakeup");
transaction.setEarlyWakeupEnd();
try {
transaction.setEarlyWakeupEnd();
} catch (NoSuchMethodError e) {
// LC-Ignored: wtf?
}
mInEarlyWakeUp = false;
}

View File

@@ -208,10 +208,18 @@ public class BaseDepthController {
// SurfaceFlinger will adjust its internal offsets to avoid jank.
boolean wantsEarlyWakeUp = depth > 0 && depth < 1;
if (wantsEarlyWakeUp && !mInEarlyWakeUp) {
transaction.setEarlyWakeupStart();
try {
transaction.setEarlyWakeupStart();
} catch (NoSuchMethodError e) {
// LC-Ignored: wtf?
}
mInEarlyWakeUp = true;
} else if (!wantsEarlyWakeUp && mInEarlyWakeUp) {
transaction.setEarlyWakeupEnd();
try {
transaction.setEarlyWakeupEnd();
} catch (NoSuchMethodError e) {
// LC-Ignored: wtf?
}
mInEarlyWakeUp = false;
}