summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Chun-Ku Lin <chunkulin@google.com> 2024-03-15 17:28:50 +0000
committer Chun-Ku Lin <chunkulin@google.com> 2024-04-11 21:56:26 +0000
commitbb338d7a969c7f45b88586bf075a6176980aa812 (patch)
tree0793fc8489c5a3abd715b6b93437291758a6bfff
parent9a079170a6e71305f060a880d3b686b6cd698991 (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)
-rw-r--r--services/accessibility/java/com/android/server/accessibility/ProxyAccessibilityServiceConnection.java6
-rw-r--r--services/tests/servicestests/src/com/android/server/accessibility/ProxyAccessibilityServiceConnectionTest.java21
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();
+ }
}