Loading services/java/com/android/server/accessibility/AccessibilityManagerService.java +12 −25 Original line number Diff line number Diff line Loading @@ -143,6 +143,8 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub private final SecurityPolicy mSecurityPolicy; private Service mUiAutomationService; /** * Handler for delayed event dispatch. */ Loading Loading @@ -494,19 +496,15 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub } } // Hook the automation service up. Service service = new Service(componentName, accessibilityServiceInfo, true); service.onServiceConnected(componentName, listener.asBinder()); mUiAutomationService = new Service(componentName, accessibilityServiceInfo, true); mUiAutomationService.onServiceConnected(componentName, listener.asBinder()); } public void unregisterUiTestAutomationService(IEventListener listener) { synchronized (mLock) { final int serviceCount = mServices.size(); for (int i = 0; i < serviceCount; i++) { Service service = mServices.get(i); if (service.mServiceInterface == listener && service.mIsAutomation) { // Automation service is not bound, so pretend it died to perform clean up. service.binderDied(); } if (mUiAutomationService != null) { mUiAutomationService.binderDied(); } } } Loading Loading @@ -741,7 +739,10 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub * Manages services by starting enabled ones and stopping disabled ones. */ private void manageServicesLocked() { unbindAutomationService(); // While the UI automation service is running it takes over. if (mUiAutomationService != null) { return; } populateEnabledServicesLocked(mEnabledServices); final int enabledInstalledServicesCount = updateServicesStateLocked(mInstalledServices, mEnabledServices); Loading @@ -768,21 +769,6 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub } } /** * Unbinds the automation service if such is running. */ private void unbindAutomationService() { List<Service> runningServices = mServices; int runningServiceCount = mServices.size(); for (int i = 0; i < runningServiceCount; i++) { Service service = runningServices.get(i); if (service.mIsAutomation) { service.unbind(); return; } } } /** * Populates a list with the {@link ComponentName}s of all enabled * {@link AccessibilityService}s. Loading Loading @@ -1248,6 +1234,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub // We no longer have an automation service, so restore // the state based on values in the settings database. if (mIsAutomation) { mUiAutomationService = null; handleAccessibilityEnabledSettingChangedLocked(); } } Loading Loading
services/java/com/android/server/accessibility/AccessibilityManagerService.java +12 −25 Original line number Diff line number Diff line Loading @@ -143,6 +143,8 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub private final SecurityPolicy mSecurityPolicy; private Service mUiAutomationService; /** * Handler for delayed event dispatch. */ Loading Loading @@ -494,19 +496,15 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub } } // Hook the automation service up. Service service = new Service(componentName, accessibilityServiceInfo, true); service.onServiceConnected(componentName, listener.asBinder()); mUiAutomationService = new Service(componentName, accessibilityServiceInfo, true); mUiAutomationService.onServiceConnected(componentName, listener.asBinder()); } public void unregisterUiTestAutomationService(IEventListener listener) { synchronized (mLock) { final int serviceCount = mServices.size(); for (int i = 0; i < serviceCount; i++) { Service service = mServices.get(i); if (service.mServiceInterface == listener && service.mIsAutomation) { // Automation service is not bound, so pretend it died to perform clean up. service.binderDied(); } if (mUiAutomationService != null) { mUiAutomationService.binderDied(); } } } Loading Loading @@ -741,7 +739,10 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub * Manages services by starting enabled ones and stopping disabled ones. */ private void manageServicesLocked() { unbindAutomationService(); // While the UI automation service is running it takes over. if (mUiAutomationService != null) { return; } populateEnabledServicesLocked(mEnabledServices); final int enabledInstalledServicesCount = updateServicesStateLocked(mInstalledServices, mEnabledServices); Loading @@ -768,21 +769,6 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub } } /** * Unbinds the automation service if such is running. */ private void unbindAutomationService() { List<Service> runningServices = mServices; int runningServiceCount = mServices.size(); for (int i = 0; i < runningServiceCount; i++) { Service service = runningServices.get(i); if (service.mIsAutomation) { service.unbind(); return; } } } /** * Populates a list with the {@link ComponentName}s of all enabled * {@link AccessibilityService}s. Loading Loading @@ -1248,6 +1234,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub // We no longer have an automation service, so restore // the state based on values in the settings database. if (mIsAutomation) { mUiAutomationService = null; handleAccessibilityEnabledSettingChangedLocked(); } } Loading