From cea9ff385aff9ddfac73eeb67f8acdb4234d14b1 Mon Sep 17 00:00:00 2001 From: Elliot Sisteron Date: Mon, 14 Aug 2023 14:08:48 +0000 Subject: [PATCH] Respond with null data when no screen lock. Safety Center expects a response to the broadcast in this case. The Settings app should respond with explicitely no data to Safety Center rather than not respond. Bug: 295845686 Test: atest LockScreenSafetySourceTest Change-Id: Ibaa134b1f93304731f37444ab222b3dc628bae02 --- .../settings/safetycenter/LockScreenSafetySource.java | 6 ++++++ .../settings/safetycenter/LockScreenSafetySourceTest.java | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/safetycenter/LockScreenSafetySource.java b/src/com/android/settings/safetycenter/LockScreenSafetySource.java index de20e24fe6f..4e085c1c011 100644 --- a/src/com/android/settings/safetycenter/LockScreenSafetySource.java +++ b/src/com/android/settings/safetycenter/LockScreenSafetySource.java @@ -63,6 +63,12 @@ public final class LockScreenSafetySource { } if (!screenLockPreferenceDetailsUtils.isAvailable()) { + SafetyCenterManagerWrapper.get().setSafetySourceData( + context, + SAFETY_SOURCE_ID, + /* safetySourceData= */ null, + safetyEvent + ); return; } diff --git a/tests/unit/src/com/android/settings/safetycenter/LockScreenSafetySourceTest.java b/tests/unit/src/com/android/settings/safetycenter/LockScreenSafetySourceTest.java index 9dc39da5d5c..4a6afb1f850 100644 --- a/tests/unit/src/com/android/settings/safetycenter/LockScreenSafetySourceTest.java +++ b/tests/unit/src/com/android/settings/safetycenter/LockScreenSafetySourceTest.java @@ -102,15 +102,15 @@ public class LockScreenSafetySourceTest { } @Test - public void setSafetySourceData_whenScreenLockIsDisabled_doesNotSetData() { + public void setSafetySourceData_whenScreenLockIsDisabled_setsNullData() { when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true); when(mScreenLockPreferenceDetailsUtils.isAvailable()).thenReturn(false); LockScreenSafetySource.setSafetySourceData(mApplicationContext, mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED); - verify(mSafetyCenterManagerWrapper, never()).setSafetySourceData( - any(), any(), any(), any()); + verify(mSafetyCenterManagerWrapper).setSafetySourceData( + any(), eq(LockScreenSafetySource.SAFETY_SOURCE_ID), eq(null), any()); } @Test