Loading core/java/android/provider/Settings.java +6 −0 Original line number Diff line number Diff line Loading @@ -9739,6 +9739,12 @@ public final class Settings { public static final String ACCESSIBILITY_MAGNIFICATION_MODE = "accessibility_magnification_mode"; /** * Magnification mode value that is a default value for the magnification logging feature. * @hide */ public static final int ACCESSIBILITY_MAGNIFICATION_MODE_NONE = 0x0; /** * Magnification mode value that magnifies whole display. * @hide Loading core/java/com/android/internal/accessibility/util/AccessibilityStatsLogUtils.java +11 −0 Original line number Diff line number Diff line Loading @@ -133,6 +133,17 @@ public final class AccessibilityStatsLogUtils { duration); } /** * Logs the activated mode of the magnification when the IME window is shown on the screen. * Calls this when the magnification is enabled and the IME window is shown on the screen. * * @param mode The activated magnification mode. */ public static void logMagnificationModeWithImeOn(int mode) { FrameworkStatsLog.write(FrameworkStatsLog.MAGNIFICATION_MODE_WITH_IME_ON_REPORTED, convertToLoggingMagnificationMode(mode)); } private static int convertToLoggingShortcutType(@ShortcutType int shortcutType) { switch (shortcutType) { case ACCESSIBILITY_BUTTON: Loading services/accessibility/java/com/android/server/accessibility/magnification/FullScreenMagnificationController.java +33 −9 Original line number Diff line number Diff line Loading @@ -79,7 +79,7 @@ public class FullScreenMagnificationController { private final ScreenStateObserver mScreenStateObserver; private final MagnificationRequestObserver mMagnificationRequestObserver; private final MagnificationInfoChangedCallback mMagnificationInfoChangedCallback; private int mUserId; Loading Loading @@ -284,6 +284,14 @@ public class FullScreenMagnificationController { mControllerCtx.getHandler().sendMessage(m); } @Override public void onImeWindowVisibilityChanged(boolean shown) { final Message m = PooledLambda.obtainMessage( FullScreenMagnificationController::notifyImeWindowVisibilityChanged, FullScreenMagnificationController.this, shown); mControllerCtx.getHandler().sendMessage(m); } /** * Update our copy of the current magnification region * Loading Loading @@ -329,7 +337,7 @@ public class FullScreenMagnificationController { final boolean lastMagnificationActivated = mMagnificationActivated; mMagnificationActivated = spec.scale > 1.0f; if (mMagnificationActivated != lastMagnificationActivated) { mMagnificationRequestObserver.onFullScreenMagnificationActivationState( mMagnificationInfoChangedCallback.onFullScreenMagnificationActivationState( mMagnificationActivated); } } Loading Loading @@ -498,7 +506,7 @@ public class FullScreenMagnificationController { sendSpecToAnimation(mCurrentMagnificationSpec, animationCallback); if (isMagnifying() && (id != INVALID_ID)) { mIdOfLastServiceToMagnify = id; mMagnificationRequestObserver.onRequestMagnificationSpec(mDisplayId, mMagnificationInfoChangedCallback.onRequestMagnificationSpec(mDisplayId, mIdOfLastServiceToMagnify); } return changed; Loading Loading @@ -631,12 +639,12 @@ public class FullScreenMagnificationController { */ public FullScreenMagnificationController(@NonNull Context context, @NonNull AccessibilityManagerService ams, @NonNull Object lock, @NonNull MagnificationRequestObserver magnificationRequestObserver) { @NonNull MagnificationInfoChangedCallback magnificationInfoChangedCallback) { this(new ControllerContext(context, ams, LocalServices.getService(WindowManagerInternal.class), new Handler(context.getMainLooper()), context.getResources().getInteger(R.integer.config_longAnimTime)), lock, magnificationRequestObserver); magnificationInfoChangedCallback); } /** Loading @@ -645,12 +653,12 @@ public class FullScreenMagnificationController { @VisibleForTesting public FullScreenMagnificationController(@NonNull ControllerContext ctx, @NonNull Object lock, @NonNull MagnificationRequestObserver magnificationRequestObserver) { @NonNull MagnificationInfoChangedCallback magnificationInfoChangedCallback) { mControllerCtx = ctx; mLock = lock; mMainThreadId = mControllerCtx.getContext().getMainLooper().getThread().getId(); mScreenStateObserver = new ScreenStateObserver(mControllerCtx.getContext(), this); mMagnificationRequestObserver = magnificationRequestObserver; mMagnificationInfoChangedCallback = magnificationInfoChangedCallback; } /** Loading Loading @@ -1167,6 +1175,16 @@ public class FullScreenMagnificationController { } } /** * Notifies that the IME window visibility changed. * * @param shown {@code true} means the IME window shows on the screen. Otherwise it's * hidden. */ void notifyImeWindowVisibilityChanged(boolean shown) { mMagnificationInfoChangedCallback.onImeWindowVisibilityChanged(shown); } /** * Returns {@code true} if the magnifiable regions of the display is forced to be shown. * Loading Loading @@ -1528,7 +1546,7 @@ public class FullScreenMagnificationController { return animate ? STUB_ANIMATION_CALLBACK : null; } interface MagnificationRequestObserver { interface MagnificationInfoChangedCallback { /** * Called when the {@link MagnificationSpec} is changed with non-default Loading @@ -1545,7 +1563,13 @@ public class FullScreenMagnificationController { * * @param activated {@code true} if the magnification is activated, otherwise {@code false}. */ @GuardedBy("mLock") void onFullScreenMagnificationActivationState(boolean activated); /** * Called when the IME window visibility changed. * @param shown {@code true} means the IME window shows on the screen. Otherwise it's * hidden. */ void onImeWindowVisibilityChanged(boolean shown); } } services/accessibility/java/com/android/server/accessibility/magnification/MagnificationController.java +56 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.server.accessibility.magnification; import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_ALL; import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN; import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_NONE; import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW; import android.annotation.NonNull; Loading @@ -33,6 +34,7 @@ import android.util.SparseArray; import android.view.accessibility.MagnificationAnimationCallback; import com.android.internal.accessibility.util.AccessibilityStatsLogUtils; import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.VisibleForTesting; import com.android.server.accessibility.AccessibilityManagerService; Loading @@ -58,7 +60,7 @@ import com.android.server.accessibility.AccessibilityManagerService; */ public class MagnificationController implements WindowMagnificationManager.Callback, MagnificationGestureHandler.Callback, FullScreenMagnificationController.MagnificationRequestObserver { FullScreenMagnificationController.MagnificationInfoChangedCallback { private static final boolean DEBUG = false; private static final String TAG = "MagnificationController"; Loading @@ -73,6 +75,10 @@ public class MagnificationController implements WindowMagnificationManager.Callb private WindowMagnificationManager mWindowMagnificationMgr; private int mMagnificationCapabilities = ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN; @GuardedBy("mLock") private int mActivatedMode = ACCESSIBILITY_MAGNIFICATION_MODE_NONE; @GuardedBy("mLock") private boolean mImeWindowVisible = false; private long mWindowModeEnabledTime = 0; private long mFullScreenModeEnabledTime = 0; Loading Loading @@ -216,9 +222,18 @@ public class MagnificationController implements WindowMagnificationManager.Callb public void onWindowMagnificationActivationState(boolean activated) { if (activated) { mWindowModeEnabledTime = SystemClock.uptimeMillis(); synchronized (mLock) { mActivatedMode = ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW; } logMagnificationModeWithImeOnIfNeeded(); } else { logMagnificationUsageState(ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW, SystemClock.uptimeMillis() - mWindowModeEnabledTime); synchronized (mLock) { mActivatedMode = ACCESSIBILITY_MAGNIFICATION_MODE_NONE; } } } Loading @@ -226,12 +241,29 @@ public class MagnificationController implements WindowMagnificationManager.Callb public void onFullScreenMagnificationActivationState(boolean activated) { if (activated) { mFullScreenModeEnabledTime = SystemClock.uptimeMillis(); synchronized (mLock) { mActivatedMode = ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN; } logMagnificationModeWithImeOnIfNeeded(); } else { logMagnificationUsageState(ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN, SystemClock.uptimeMillis() - mFullScreenModeEnabledTime); synchronized (mLock) { mActivatedMode = ACCESSIBILITY_MAGNIFICATION_MODE_NONE; } } } @Override public void onImeWindowVisibilityChanged(boolean shown) { synchronized (mLock) { mImeWindowVisible = shown; } logMagnificationModeWithImeOnIfNeeded(); } /** * Wrapper method of logging the magnification activated mode and its duration of the usage * when the magnification is disabled. Loading @@ -244,6 +276,17 @@ public class MagnificationController implements WindowMagnificationManager.Callb AccessibilityStatsLogUtils.logMagnificationUsageState(mode, duration); } /** * Wrapper method of logging the activated mode of the magnification when the IME window * is shown on the screen. * * @param mode The activated magnification mode. */ @VisibleForTesting public void logMagnificationModeWithIme(int mode) { AccessibilityStatsLogUtils.logMagnificationModeWithImeOn(mode); } /** * Updates the active user ID of {@link FullScreenMagnificationController} and {@link * WindowMagnificationManager}. Loading Loading @@ -295,6 +338,18 @@ public class MagnificationController implements WindowMagnificationManager.Callb } } private void logMagnificationModeWithImeOnIfNeeded() { final int mode; synchronized (mLock) { if (!mImeWindowVisible || mActivatedMode == ACCESSIBILITY_MAGNIFICATION_MODE_NONE) { return; } mode = mActivatedMode; } logMagnificationModeWithIme(mode); } /** * Getter of {@link FullScreenMagnificationController}. * Loading services/core/java/com/android/server/wm/AccessibilityController.java +27 −1 Original line number Diff line number Diff line Loading @@ -514,6 +514,18 @@ final class AccessibilityController { } } void onImeSurfaceShownChanged(WindowState windowState, boolean shown) { if (mAccessibilityTracing.isEnabled()) { mAccessibilityTracing.logState(TAG + ".onImeSurfaceShownChanged", "windowState=" + windowState + "; shown=" + shown); } final int displayId = windowState.getDisplayId(); final DisplayMagnifier displayMagnifier = mDisplayMagnifiers.get(displayId); if (displayMagnifier != null) { displayMagnifier.onImeSurfaceShownChanged(shown); } } private static void populateTransformationMatrix(WindowState windowState, Matrix outMatrix) { windowState.getTransformationMatrix(sTempFloats, outMatrix); Loading Loading @@ -766,6 +778,15 @@ final class AccessibilityController { } } void onImeSurfaceShownChanged(boolean shown) { if (mAccessibilityTracing.isEnabled()) { mAccessibilityTracing.logState( LOG_TAG + ".onImeSurfaceShownChanged", "shown=" + shown); } mHandler.obtainMessage(MyHandler.MESSAGE_NOTIFY_IME_WINDOW_VISIBILITY_CHANGED, shown ? 1 : 0, 0).sendToTarget(); } MagnificationSpec getMagnificationSpecForWindow(WindowState windowState) { if (mAccessibilityTracing.isEnabled()) { mAccessibilityTracing.logState(LOG_TAG + ".getMagnificationSpecForWindow", Loading Loading @@ -1337,6 +1358,7 @@ final class AccessibilityController { public static final int MESSAGE_NOTIFY_USER_CONTEXT_CHANGED = 3; public static final int MESSAGE_NOTIFY_ROTATION_CHANGED = 4; public static final int MESSAGE_SHOW_MAGNIFIED_REGION_BOUNDS_IF_NEEDED = 5; public static final int MESSAGE_NOTIFY_IME_WINDOW_VISIBILITY_CHANGED = 6; MyHandler(Looper looper) { super(looper); Loading Loading @@ -1380,6 +1402,11 @@ final class AccessibilityController { } } } break; case MESSAGE_NOTIFY_IME_WINDOW_VISIBILITY_CHANGED: { final boolean shown = message.arg1 == 1; mCallbacks.onImeWindowVisibilityChanged(shown); } break; } } } Loading Loading @@ -2123,5 +2150,4 @@ final class AccessibilityController { } } } } Loading
core/java/android/provider/Settings.java +6 −0 Original line number Diff line number Diff line Loading @@ -9739,6 +9739,12 @@ public final class Settings { public static final String ACCESSIBILITY_MAGNIFICATION_MODE = "accessibility_magnification_mode"; /** * Magnification mode value that is a default value for the magnification logging feature. * @hide */ public static final int ACCESSIBILITY_MAGNIFICATION_MODE_NONE = 0x0; /** * Magnification mode value that magnifies whole display. * @hide Loading
core/java/com/android/internal/accessibility/util/AccessibilityStatsLogUtils.java +11 −0 Original line number Diff line number Diff line Loading @@ -133,6 +133,17 @@ public final class AccessibilityStatsLogUtils { duration); } /** * Logs the activated mode of the magnification when the IME window is shown on the screen. * Calls this when the magnification is enabled and the IME window is shown on the screen. * * @param mode The activated magnification mode. */ public static void logMagnificationModeWithImeOn(int mode) { FrameworkStatsLog.write(FrameworkStatsLog.MAGNIFICATION_MODE_WITH_IME_ON_REPORTED, convertToLoggingMagnificationMode(mode)); } private static int convertToLoggingShortcutType(@ShortcutType int shortcutType) { switch (shortcutType) { case ACCESSIBILITY_BUTTON: Loading
services/accessibility/java/com/android/server/accessibility/magnification/FullScreenMagnificationController.java +33 −9 Original line number Diff line number Diff line Loading @@ -79,7 +79,7 @@ public class FullScreenMagnificationController { private final ScreenStateObserver mScreenStateObserver; private final MagnificationRequestObserver mMagnificationRequestObserver; private final MagnificationInfoChangedCallback mMagnificationInfoChangedCallback; private int mUserId; Loading Loading @@ -284,6 +284,14 @@ public class FullScreenMagnificationController { mControllerCtx.getHandler().sendMessage(m); } @Override public void onImeWindowVisibilityChanged(boolean shown) { final Message m = PooledLambda.obtainMessage( FullScreenMagnificationController::notifyImeWindowVisibilityChanged, FullScreenMagnificationController.this, shown); mControllerCtx.getHandler().sendMessage(m); } /** * Update our copy of the current magnification region * Loading Loading @@ -329,7 +337,7 @@ public class FullScreenMagnificationController { final boolean lastMagnificationActivated = mMagnificationActivated; mMagnificationActivated = spec.scale > 1.0f; if (mMagnificationActivated != lastMagnificationActivated) { mMagnificationRequestObserver.onFullScreenMagnificationActivationState( mMagnificationInfoChangedCallback.onFullScreenMagnificationActivationState( mMagnificationActivated); } } Loading Loading @@ -498,7 +506,7 @@ public class FullScreenMagnificationController { sendSpecToAnimation(mCurrentMagnificationSpec, animationCallback); if (isMagnifying() && (id != INVALID_ID)) { mIdOfLastServiceToMagnify = id; mMagnificationRequestObserver.onRequestMagnificationSpec(mDisplayId, mMagnificationInfoChangedCallback.onRequestMagnificationSpec(mDisplayId, mIdOfLastServiceToMagnify); } return changed; Loading Loading @@ -631,12 +639,12 @@ public class FullScreenMagnificationController { */ public FullScreenMagnificationController(@NonNull Context context, @NonNull AccessibilityManagerService ams, @NonNull Object lock, @NonNull MagnificationRequestObserver magnificationRequestObserver) { @NonNull MagnificationInfoChangedCallback magnificationInfoChangedCallback) { this(new ControllerContext(context, ams, LocalServices.getService(WindowManagerInternal.class), new Handler(context.getMainLooper()), context.getResources().getInteger(R.integer.config_longAnimTime)), lock, magnificationRequestObserver); magnificationInfoChangedCallback); } /** Loading @@ -645,12 +653,12 @@ public class FullScreenMagnificationController { @VisibleForTesting public FullScreenMagnificationController(@NonNull ControllerContext ctx, @NonNull Object lock, @NonNull MagnificationRequestObserver magnificationRequestObserver) { @NonNull MagnificationInfoChangedCallback magnificationInfoChangedCallback) { mControllerCtx = ctx; mLock = lock; mMainThreadId = mControllerCtx.getContext().getMainLooper().getThread().getId(); mScreenStateObserver = new ScreenStateObserver(mControllerCtx.getContext(), this); mMagnificationRequestObserver = magnificationRequestObserver; mMagnificationInfoChangedCallback = magnificationInfoChangedCallback; } /** Loading Loading @@ -1167,6 +1175,16 @@ public class FullScreenMagnificationController { } } /** * Notifies that the IME window visibility changed. * * @param shown {@code true} means the IME window shows on the screen. Otherwise it's * hidden. */ void notifyImeWindowVisibilityChanged(boolean shown) { mMagnificationInfoChangedCallback.onImeWindowVisibilityChanged(shown); } /** * Returns {@code true} if the magnifiable regions of the display is forced to be shown. * Loading Loading @@ -1528,7 +1546,7 @@ public class FullScreenMagnificationController { return animate ? STUB_ANIMATION_CALLBACK : null; } interface MagnificationRequestObserver { interface MagnificationInfoChangedCallback { /** * Called when the {@link MagnificationSpec} is changed with non-default Loading @@ -1545,7 +1563,13 @@ public class FullScreenMagnificationController { * * @param activated {@code true} if the magnification is activated, otherwise {@code false}. */ @GuardedBy("mLock") void onFullScreenMagnificationActivationState(boolean activated); /** * Called when the IME window visibility changed. * @param shown {@code true} means the IME window shows on the screen. Otherwise it's * hidden. */ void onImeWindowVisibilityChanged(boolean shown); } }
services/accessibility/java/com/android/server/accessibility/magnification/MagnificationController.java +56 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.server.accessibility.magnification; import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_ALL; import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN; import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_NONE; import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW; import android.annotation.NonNull; Loading @@ -33,6 +34,7 @@ import android.util.SparseArray; import android.view.accessibility.MagnificationAnimationCallback; import com.android.internal.accessibility.util.AccessibilityStatsLogUtils; import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.VisibleForTesting; import com.android.server.accessibility.AccessibilityManagerService; Loading @@ -58,7 +60,7 @@ import com.android.server.accessibility.AccessibilityManagerService; */ public class MagnificationController implements WindowMagnificationManager.Callback, MagnificationGestureHandler.Callback, FullScreenMagnificationController.MagnificationRequestObserver { FullScreenMagnificationController.MagnificationInfoChangedCallback { private static final boolean DEBUG = false; private static final String TAG = "MagnificationController"; Loading @@ -73,6 +75,10 @@ public class MagnificationController implements WindowMagnificationManager.Callb private WindowMagnificationManager mWindowMagnificationMgr; private int mMagnificationCapabilities = ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN; @GuardedBy("mLock") private int mActivatedMode = ACCESSIBILITY_MAGNIFICATION_MODE_NONE; @GuardedBy("mLock") private boolean mImeWindowVisible = false; private long mWindowModeEnabledTime = 0; private long mFullScreenModeEnabledTime = 0; Loading Loading @@ -216,9 +222,18 @@ public class MagnificationController implements WindowMagnificationManager.Callb public void onWindowMagnificationActivationState(boolean activated) { if (activated) { mWindowModeEnabledTime = SystemClock.uptimeMillis(); synchronized (mLock) { mActivatedMode = ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW; } logMagnificationModeWithImeOnIfNeeded(); } else { logMagnificationUsageState(ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW, SystemClock.uptimeMillis() - mWindowModeEnabledTime); synchronized (mLock) { mActivatedMode = ACCESSIBILITY_MAGNIFICATION_MODE_NONE; } } } Loading @@ -226,12 +241,29 @@ public class MagnificationController implements WindowMagnificationManager.Callb public void onFullScreenMagnificationActivationState(boolean activated) { if (activated) { mFullScreenModeEnabledTime = SystemClock.uptimeMillis(); synchronized (mLock) { mActivatedMode = ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN; } logMagnificationModeWithImeOnIfNeeded(); } else { logMagnificationUsageState(ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN, SystemClock.uptimeMillis() - mFullScreenModeEnabledTime); synchronized (mLock) { mActivatedMode = ACCESSIBILITY_MAGNIFICATION_MODE_NONE; } } } @Override public void onImeWindowVisibilityChanged(boolean shown) { synchronized (mLock) { mImeWindowVisible = shown; } logMagnificationModeWithImeOnIfNeeded(); } /** * Wrapper method of logging the magnification activated mode and its duration of the usage * when the magnification is disabled. Loading @@ -244,6 +276,17 @@ public class MagnificationController implements WindowMagnificationManager.Callb AccessibilityStatsLogUtils.logMagnificationUsageState(mode, duration); } /** * Wrapper method of logging the activated mode of the magnification when the IME window * is shown on the screen. * * @param mode The activated magnification mode. */ @VisibleForTesting public void logMagnificationModeWithIme(int mode) { AccessibilityStatsLogUtils.logMagnificationModeWithImeOn(mode); } /** * Updates the active user ID of {@link FullScreenMagnificationController} and {@link * WindowMagnificationManager}. Loading Loading @@ -295,6 +338,18 @@ public class MagnificationController implements WindowMagnificationManager.Callb } } private void logMagnificationModeWithImeOnIfNeeded() { final int mode; synchronized (mLock) { if (!mImeWindowVisible || mActivatedMode == ACCESSIBILITY_MAGNIFICATION_MODE_NONE) { return; } mode = mActivatedMode; } logMagnificationModeWithIme(mode); } /** * Getter of {@link FullScreenMagnificationController}. * Loading
services/core/java/com/android/server/wm/AccessibilityController.java +27 −1 Original line number Diff line number Diff line Loading @@ -514,6 +514,18 @@ final class AccessibilityController { } } void onImeSurfaceShownChanged(WindowState windowState, boolean shown) { if (mAccessibilityTracing.isEnabled()) { mAccessibilityTracing.logState(TAG + ".onImeSurfaceShownChanged", "windowState=" + windowState + "; shown=" + shown); } final int displayId = windowState.getDisplayId(); final DisplayMagnifier displayMagnifier = mDisplayMagnifiers.get(displayId); if (displayMagnifier != null) { displayMagnifier.onImeSurfaceShownChanged(shown); } } private static void populateTransformationMatrix(WindowState windowState, Matrix outMatrix) { windowState.getTransformationMatrix(sTempFloats, outMatrix); Loading Loading @@ -766,6 +778,15 @@ final class AccessibilityController { } } void onImeSurfaceShownChanged(boolean shown) { if (mAccessibilityTracing.isEnabled()) { mAccessibilityTracing.logState( LOG_TAG + ".onImeSurfaceShownChanged", "shown=" + shown); } mHandler.obtainMessage(MyHandler.MESSAGE_NOTIFY_IME_WINDOW_VISIBILITY_CHANGED, shown ? 1 : 0, 0).sendToTarget(); } MagnificationSpec getMagnificationSpecForWindow(WindowState windowState) { if (mAccessibilityTracing.isEnabled()) { mAccessibilityTracing.logState(LOG_TAG + ".getMagnificationSpecForWindow", Loading Loading @@ -1337,6 +1358,7 @@ final class AccessibilityController { public static final int MESSAGE_NOTIFY_USER_CONTEXT_CHANGED = 3; public static final int MESSAGE_NOTIFY_ROTATION_CHANGED = 4; public static final int MESSAGE_SHOW_MAGNIFIED_REGION_BOUNDS_IF_NEEDED = 5; public static final int MESSAGE_NOTIFY_IME_WINDOW_VISIBILITY_CHANGED = 6; MyHandler(Looper looper) { super(looper); Loading Loading @@ -1380,6 +1402,11 @@ final class AccessibilityController { } } } break; case MESSAGE_NOTIFY_IME_WINDOW_VISIBILITY_CHANGED: { final boolean shown = message.arg1 == 1; mCallbacks.onImeWindowVisibilityChanged(shown); } break; } } } Loading Loading @@ -2123,5 +2150,4 @@ final class AccessibilityController { } } } }