diff options
| author | 2024-03-15 17:28:50 +0000 | |
|---|---|---|
| committer | 2024-04-11 21:56:26 +0000 | |
| commit | bb338d7a969c7f45b88586bf075a6176980aa812 (patch) | |
| tree | 0793fc8489c5a3abd715b6b93437291758a6bfff | |
| parent | 9a079170a6e71305f060a880d3b686b6cd698991 (diff) | |
Prevent NPE by return empty list
Bug: 329502978
Test: atest ProxyAccessibilityServiceConnectionTest
Flag: EXEMPT simple bug fix
Change-Id: I93f876e324044311780fba6ebeeb53f174d5056b
(cherry picked from commit fbc3ca8ea7fe504f4f0a6743dfb4649eb59b960d)
2 files changed, 17 insertions, 10 deletions
diff --git a/services/accessibility/java/com/android/server/accessibility/ProxyAccessibilityServiceConnection.java b/services/accessibility/java/com/android/server/accessibility/ProxyAccessibilityServiceConnection.java index 6aa4702ec7d5..b77b2bef57a2 100644 --- a/services/accessibility/java/com/android/server/accessibility/ProxyAccessibilityServiceConnection.java +++ b/services/accessibility/java/com/android/server/accessibility/ProxyAccessibilityServiceConnection.java @@ -126,7 +126,7 @@ public class ProxyAccessibilityServiceConnection extends AccessibilityServiceCon * @param infos the list of enabled and installed services. */ @Override - public void setInstalledAndEnabledServices(List<AccessibilityServiceInfo> infos) { + public void setInstalledAndEnabledServices(@NonNull List<AccessibilityServiceInfo> infos) { final long identity = Binder.clearCallingIdentity(); try { synchronized (mLock) { @@ -216,9 +216,11 @@ public class ProxyAccessibilityServiceConnection extends AccessibilityServiceCon } @Override + @NonNull public List<AccessibilityServiceInfo> getInstalledAndEnabledServices() { synchronized (mLock) { - return mInstalledAndEnabledServices; + return mInstalledAndEnabledServices != null + ? mInstalledAndEnabledServices : Collections.emptyList(); } } diff --git a/services/tests/servicestests/src/com/android/server/accessibility/ProxyAccessibilityServiceConnectionTest.java b/services/tests/servicestests/src/com/android/server/accessibility/ProxyAccessibilityServiceConnectionTest.java index 6ac3658bc3b4..3d0db71ba17f 100644 --- a/services/tests/servicestests/src/com/android/server/accessibility/ProxyAccessibilityServiceConnectionTest.java +++ b/services/tests/servicestests/src/com/android/server/accessibility/ProxyAccessibilityServiceConnectionTest.java @@ -24,6 +24,13 @@ import static android.accessibilityservice.AccessibilityServiceInfo.FLAG_REQUEST import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation; +import static com.google.common.truth.Truth.assertThat; + +import static org.junit.Assert.assertThrows; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + import android.accessibilityservice.AccessibilityServiceInfo; import android.accessibilityservice.AccessibilityTrace; import android.content.ComponentName; @@ -33,13 +40,6 @@ import android.graphics.Color; import android.os.Handler; import android.view.accessibility.AccessibilityEvent; -import static com.google.common.truth.Truth.assertThat; - -import static org.junit.Assert.assertThrows; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - import com.android.server.wm.WindowManagerInternal; import org.junit.Before; @@ -225,7 +225,7 @@ public class ProxyAccessibilityServiceConnectionTest { } @Test - public void testDisableSelf_setIllegalOperationExceptionThrown_() { + public void testDisableSelf_setIllegalOperationExceptionThrown() { UnsupportedOperationException thrown = assertThrows( UnsupportedOperationException.class, @@ -233,4 +233,9 @@ public class ProxyAccessibilityServiceConnectionTest { assertThat(thrown).hasMessageThat().contains("disableSelf is not supported"); } + + @Test + public void getInstalledAndEnabledServices_noServices_returnEmpty() { + assertThat(mProxyConnection.getInstalledAndEnabledServices()).isEmpty(); + } } |