diff options
3 files changed, 18 insertions, 2 deletions
diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java index 0a21b9e27862..58c763a34fa5 100644 --- a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java @@ -749,7 +749,6 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub public void unregisterUiTestAutomationService(IAccessibilityServiceClient serviceClient) { synchronized (mLock) { mUiAutomationManager.unregisterUiTestAutomationServiceLocked(serviceClient); - onUserStateChangedLocked(getCurrentUserStateLocked()); } } diff --git a/services/accessibility/java/com/android/server/accessibility/UiAutomationManager.java b/services/accessibility/java/com/android/server/accessibility/UiAutomationManager.java index f05711265e18..56a95345aad0 100644 --- a/services/accessibility/java/com/android/server/accessibility/UiAutomationManager.java +++ b/services/accessibility/java/com/android/server/accessibility/UiAutomationManager.java @@ -28,6 +28,7 @@ import android.os.RemoteException; import android.util.Slog; import android.view.accessibility.AccessibilityEvent; +import com.android.internal.util.DumpUtils; import com.android.server.wm.WindowManagerInternal; import java.io.FileDescriptor; @@ -45,6 +46,8 @@ class UiAutomationManager { private AccessibilityServiceInfo mUiAutomationServiceInfo; + private AccessibilityClientConnection.SystemSupport mSystemSupport; + private int mUiAutomationFlags; private IBinder mUiAutomationServiceOwner; @@ -92,6 +95,7 @@ class UiAutomationManager { return; } + mSystemSupport = systemSupport; mUiAutomationService = new UiAutomationService(context, accessibilityServiceInfo, id, mainHandler, lock, securityPolicy, systemSupport, windowManagerInternal, globalActionPerfomer); @@ -169,6 +173,7 @@ class UiAutomationManager { mUiAutomationServiceOwner.unlinkToDeath(mUiAutomationServiceOwnerDeathRecipient, 0); mUiAutomationServiceOwner = null; } + mSystemSupport.onClientChange(false); } private class UiAutomationService extends AccessibilityClientConnection { @@ -224,6 +229,17 @@ class UiAutomationManager { return true; } + @Override + public void dump(FileDescriptor fd, final PrintWriter pw, String[] args) { + if (!DumpUtils.checkDumpPermission(mContext, LOG_TAG, pw)) return; + synchronized (mLock) { + pw.append("Ui Automation[eventTypes=" + + AccessibilityEvent.eventTypeToString(mEventTypes)); + pw.append(", notificationTimeout=" + mNotificationTimeout); + pw.append("]"); + } + } + // Since this isn't really an accessibility service, several methods are just stubbed here. @Override public boolean setSoftKeyboardShowMode(int mode) { diff --git a/services/tests/servicestests/src/com/android/server/accessibility/UiAutomationManagerTest.java b/services/tests/servicestests/src/com/android/server/accessibility/UiAutomationManagerTest.java index dbebd01e2460..45ecbfb891a5 100644 --- a/services/tests/servicestests/src/com/android/server/accessibility/UiAutomationManagerTest.java +++ b/services/tests/servicestests/src/com/android/server/accessibility/UiAutomationManagerTest.java @@ -153,13 +153,14 @@ public class UiAutomationManagerTest { } @Test - public void uiAutomationBinderDiesBeforeConnecting_shouldNotCrash() throws Exception { + public void uiAutomationBinderDiesBeforeConnecting_notifiesSystem() throws Exception { register(0); ArgumentCaptor<IBinder.DeathRecipient> captor = ArgumentCaptor.forClass( IBinder.DeathRecipient.class); verify(mMockOwner).linkToDeath(captor.capture(), anyInt()); captor.getValue().binderDied(); mMessageCapturingHandler.sendAllMessages(); + verify(mMockSystemSupport).onClientChange(false); } private void register(int flags) { |