John McCutchan 2024-03-28 18:45:16 -07:00 committed by GitHub
parent a01206ad39
commit e5289fdce1
2 changed files with 11 additions and 2 deletions

View File

@ -414,6 +414,11 @@ public class FlutterRenderer implements TextureRegistry {
// Flip when debugging to see verbose logs.
private static final boolean VERBOSE_LOGS = false;
// If we cleanup the ImageReaders on memory pressure it breaks VirtualDisplay
// backed platform views. Disable for now as this is only necessary to work
// around a Samsung-specific Android 14 bug.
private static final boolean CLEANUP_ON_MEMORY_PRESSURE = false;
private final long id;
private boolean released;
@ -649,6 +654,9 @@ public class FlutterRenderer implements TextureRegistry {
@Override
public void onTrimMemory(int level) {
if (!CLEANUP_ON_MEMORY_PRESSURE) {
return;
}
cleanup();
createNewReader = true;
}

View File

@ -648,11 +648,12 @@ public class FlutterRendererTest {
assertEquals(1, texture.numImages());
// Invoke the onTrimMemory callback.
// This should do nothing.
texture.onTrimMemory(0);
shadowOf(Looper.getMainLooper()).idle();
assertEquals(0, texture.numImageReaders());
assertEquals(0, texture.numImages());
assertEquals(1, texture.numImageReaders());
assertEquals(1, texture.numImages());
}
// A 0x0 ImageReader is a runtime error.