Help prevent OOM while running SystemUI tests on cuttlefish.
Don't setup (choose) a FalsingManager implementation every time that
DeviceConfig.OnPropertiesChangedListener fires.
Bug: 139860714
Test: run `atest frameworks/base/packages/SystemUI/tests/` on cuttlefish, verify no OOM
Change-Id: I80408c4f9097f74b8170e7be478229b4538ef0a5
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerProxy.java b/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerProxy.java
index ee79e6b..4120334 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerProxy.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerProxy.java
@@ -52,16 +52,17 @@
private FalsingManager mInternalFalsingManager;
private final Handler mMainHandler;
+ private boolean mBrightlineEnabled;
@Inject
FalsingManagerProxy(Context context, PluginManager pluginManager,
@Named(MAIN_HANDLER_NAME) Handler handler) {
mMainHandler = handler;
+ setupFalsingManager(context);
DeviceConfig.addOnPropertiesChangedListener(DeviceConfig.NAMESPACE_SYSTEMUI,
command -> mMainHandler.post(command),
properties -> onDeviceConfigPropertiesChanged(context, properties.getNamespace())
);
- setupFalsingManager(context);
final PluginListener<FalsingPlugin> mPluginListener = new PluginListener<FalsingPlugin>() {
public void onPluginConnected(FalsingPlugin plugin, Context context) {
FalsingManager pluginFalsingManager = plugin.getFalsingManager(context);
@@ -94,6 +95,10 @@
public void setupFalsingManager(Context context) {
boolean brightlineEnabled = DeviceConfig.getBoolean(
DeviceConfig.NAMESPACE_SYSTEMUI, BRIGHTLINE_FALSING_MANAGER_ENABLED, true);
+ if (brightlineEnabled == mBrightlineEnabled && mInternalFalsingManager != null) {
+ return;
+ }
+ mBrightlineEnabled = brightlineEnabled;
if (mInternalFalsingManager != null) {
mInternalFalsingManager.cleanup();