Loading core/java/android/accessibilityservice/AccessibilityService.java +16 −11 Original line number Diff line number Diff line Loading @@ -825,17 +825,7 @@ public abstract class AccessibilityService extends Service { for (int i = 0; i < mMagnificationControllers.size(); i++) { mMagnificationControllers.valueAt(i).onServiceConnectedLocked(); } AccessibilityServiceInfo info = getServiceInfo(); if (info != null) { boolean requestIme = (info.flags & AccessibilityServiceInfo.FLAG_INPUT_METHOD_EDITOR) != 0; if (requestIme && !mInputMethodInitialized) { mInputMethod = onCreateInputMethod(); mInputMethodInitialized = true; } } else { Log.e(LOG_TAG, "AccessibilityServiceInfo is null in dispatchServiceConnected"); } updateInputMethod(getServiceInfo()); } if (mSoftKeyboardController != null) { mSoftKeyboardController.onServiceConnected(); Loading @@ -846,6 +836,20 @@ public abstract class AccessibilityService extends Service { onServiceConnected(); } private void updateInputMethod(AccessibilityServiceInfo info) { if (info != null) { boolean requestIme = (info.flags & AccessibilityServiceInfo.FLAG_INPUT_METHOD_EDITOR) != 0; if (requestIme && !mInputMethodInitialized) { mInputMethod = onCreateInputMethod(); mInputMethodInitialized = true; } else if (!requestIme & mInputMethodInitialized) { mInputMethod = null; mInputMethodInitialized = false; } } } /** * This method is a part of the {@link AccessibilityService} lifecycle and is * called after the system has successfully bound to the service. If is Loading Loading @@ -2521,6 +2525,7 @@ public abstract class AccessibilityService extends Service { */ public final void setServiceInfo(AccessibilityServiceInfo info) { mInfo = info; updateInputMethod(info); sendServiceInfo(); } Loading services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java +8 −3 Original line number Diff line number Diff line Loading @@ -281,9 +281,9 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ void onDoubleTapAndHold(int displayId); void requestImeLocked(AccessibilityServiceConnection connection); void requestImeLocked(AbstractAccessibilityServiceConnection connection); void unbindImeLocked(AccessibilityServiceConnection connection); void unbindImeLocked(AbstractAccessibilityServiceConnection connection); } public AbstractAccessibilityServiceConnection(Context context, ComponentName componentName, Loading Loading @@ -387,7 +387,6 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ & AccessibilityServiceInfo.FLAG_REQUEST_FINGERPRINT_GESTURES) != 0; mRequestAccessibilityButton = (info.flags & AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON) != 0; // TODO(b/218193835): request ime when ime flag is set and clean up when ime flag is unset mRequestImeApis = (info.flags & AccessibilityServiceInfo.FLAG_INPUT_METHOD_EDITOR) != 0; } Loading Loading @@ -439,6 +438,7 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ // If the XML manifest had data to configure the service its info // should be already set. In such a case update only the dynamically // configurable properties. boolean oldRequestIme = mRequestImeApis; AccessibilityServiceInfo oldInfo = mAccessibilityServiceInfo; if (oldInfo != null) { oldInfo.updateDynamicallyConfigurableProperties(mIPlatformCompat, info); Loading @@ -447,6 +447,11 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ setDynamicallyConfigurableProperties(info); } mSystemSupport.onClientChangeLocked(true); if (!oldRequestIme && mRequestImeApis) { mSystemSupport.requestImeLocked(this); } else if (oldRequestIme && !mRequestImeApis) { mSystemSupport.unbindImeLocked(this); } } } finally { Binder.restoreCallingIdentity(identity); Loading services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +5 −5 Original line number Diff line number Diff line Loading @@ -4305,7 +4305,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub } @Override public void requestImeLocked(AccessibilityServiceConnection connection) { public void requestImeLocked(AbstractAccessibilityServiceConnection connection) { mMainHandler.sendMessage(obtainMessage( AccessibilityManagerService::createSessionForConnection, this, connection)); mMainHandler.sendMessage(obtainMessage( Loading @@ -4313,12 +4313,12 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub } @Override public void unbindImeLocked(AccessibilityServiceConnection connection) { public void unbindImeLocked(AbstractAccessibilityServiceConnection connection) { mMainHandler.sendMessage(obtainMessage( AccessibilityManagerService::unbindInputForConnection, this, connection)); } private void createSessionForConnection(AccessibilityServiceConnection connection) { private void createSessionForConnection(AbstractAccessibilityServiceConnection connection) { synchronized (mLock) { if (mInputSessionRequested) { connection.createImeSessionLocked(); Loading @@ -4326,7 +4326,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub } } private void bindAndStartInputForConnection(AccessibilityServiceConnection connection) { private void bindAndStartInputForConnection(AbstractAccessibilityServiceConnection connection) { synchronized (mLock) { if (mInputBinding != null) { connection.bindInputLocked(mInputBinding); Loading @@ -4336,7 +4336,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub } } private void unbindInputForConnection(AccessibilityServiceConnection connection) { private void unbindInputForConnection(AbstractAccessibilityServiceConnection connection) { InputMethodManagerInternal.get().unbindAccessibilityFromCurrentClient(connection.mId); synchronized (mLock) { connection.unbindInputLocked(); Loading Loading
core/java/android/accessibilityservice/AccessibilityService.java +16 −11 Original line number Diff line number Diff line Loading @@ -825,17 +825,7 @@ public abstract class AccessibilityService extends Service { for (int i = 0; i < mMagnificationControllers.size(); i++) { mMagnificationControllers.valueAt(i).onServiceConnectedLocked(); } AccessibilityServiceInfo info = getServiceInfo(); if (info != null) { boolean requestIme = (info.flags & AccessibilityServiceInfo.FLAG_INPUT_METHOD_EDITOR) != 0; if (requestIme && !mInputMethodInitialized) { mInputMethod = onCreateInputMethod(); mInputMethodInitialized = true; } } else { Log.e(LOG_TAG, "AccessibilityServiceInfo is null in dispatchServiceConnected"); } updateInputMethod(getServiceInfo()); } if (mSoftKeyboardController != null) { mSoftKeyboardController.onServiceConnected(); Loading @@ -846,6 +836,20 @@ public abstract class AccessibilityService extends Service { onServiceConnected(); } private void updateInputMethod(AccessibilityServiceInfo info) { if (info != null) { boolean requestIme = (info.flags & AccessibilityServiceInfo.FLAG_INPUT_METHOD_EDITOR) != 0; if (requestIme && !mInputMethodInitialized) { mInputMethod = onCreateInputMethod(); mInputMethodInitialized = true; } else if (!requestIme & mInputMethodInitialized) { mInputMethod = null; mInputMethodInitialized = false; } } } /** * This method is a part of the {@link AccessibilityService} lifecycle and is * called after the system has successfully bound to the service. If is Loading Loading @@ -2521,6 +2525,7 @@ public abstract class AccessibilityService extends Service { */ public final void setServiceInfo(AccessibilityServiceInfo info) { mInfo = info; updateInputMethod(info); sendServiceInfo(); } Loading
services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java +8 −3 Original line number Diff line number Diff line Loading @@ -281,9 +281,9 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ void onDoubleTapAndHold(int displayId); void requestImeLocked(AccessibilityServiceConnection connection); void requestImeLocked(AbstractAccessibilityServiceConnection connection); void unbindImeLocked(AccessibilityServiceConnection connection); void unbindImeLocked(AbstractAccessibilityServiceConnection connection); } public AbstractAccessibilityServiceConnection(Context context, ComponentName componentName, Loading Loading @@ -387,7 +387,6 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ & AccessibilityServiceInfo.FLAG_REQUEST_FINGERPRINT_GESTURES) != 0; mRequestAccessibilityButton = (info.flags & AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON) != 0; // TODO(b/218193835): request ime when ime flag is set and clean up when ime flag is unset mRequestImeApis = (info.flags & AccessibilityServiceInfo.FLAG_INPUT_METHOD_EDITOR) != 0; } Loading Loading @@ -439,6 +438,7 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ // If the XML manifest had data to configure the service its info // should be already set. In such a case update only the dynamically // configurable properties. boolean oldRequestIme = mRequestImeApis; AccessibilityServiceInfo oldInfo = mAccessibilityServiceInfo; if (oldInfo != null) { oldInfo.updateDynamicallyConfigurableProperties(mIPlatformCompat, info); Loading @@ -447,6 +447,11 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ setDynamicallyConfigurableProperties(info); } mSystemSupport.onClientChangeLocked(true); if (!oldRequestIme && mRequestImeApis) { mSystemSupport.requestImeLocked(this); } else if (oldRequestIme && !mRequestImeApis) { mSystemSupport.unbindImeLocked(this); } } } finally { Binder.restoreCallingIdentity(identity); Loading
services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +5 −5 Original line number Diff line number Diff line Loading @@ -4305,7 +4305,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub } @Override public void requestImeLocked(AccessibilityServiceConnection connection) { public void requestImeLocked(AbstractAccessibilityServiceConnection connection) { mMainHandler.sendMessage(obtainMessage( AccessibilityManagerService::createSessionForConnection, this, connection)); mMainHandler.sendMessage(obtainMessage( Loading @@ -4313,12 +4313,12 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub } @Override public void unbindImeLocked(AccessibilityServiceConnection connection) { public void unbindImeLocked(AbstractAccessibilityServiceConnection connection) { mMainHandler.sendMessage(obtainMessage( AccessibilityManagerService::unbindInputForConnection, this, connection)); } private void createSessionForConnection(AccessibilityServiceConnection connection) { private void createSessionForConnection(AbstractAccessibilityServiceConnection connection) { synchronized (mLock) { if (mInputSessionRequested) { connection.createImeSessionLocked(); Loading @@ -4326,7 +4326,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub } } private void bindAndStartInputForConnection(AccessibilityServiceConnection connection) { private void bindAndStartInputForConnection(AbstractAccessibilityServiceConnection connection) { synchronized (mLock) { if (mInputBinding != null) { connection.bindInputLocked(mInputBinding); Loading @@ -4336,7 +4336,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub } } private void unbindInputForConnection(AccessibilityServiceConnection connection) { private void unbindInputForConnection(AbstractAccessibilityServiceConnection connection) { InputMethodManagerInternal.get().unbindAccessibilityFromCurrentClient(connection.mId); synchronized (mLock) { connection.unbindInputLocked(); Loading