Loading services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java +12 −9 Original line number Diff line number Diff line Loading @@ -45,28 +45,28 @@ class AccessibilityInputFilter extends InputFilter implements EventStreamTransfo /** * Flag for enabling the screen magnification feature. * * @see #setEnabledFeatures(int) * @see #setUserAndEnabledFeatures(int, int) */ static final int FLAG_FEATURE_SCREEN_MAGNIFIER = 0x00000001; /** * Flag for enabling the touch exploration feature. * * @see #setEnabledFeatures(int) * @see #setUserAndEnabledFeatures(int, int) */ static final int FLAG_FEATURE_TOUCH_EXPLORATION = 0x00000002; /** * Flag for enabling the filtering key events feature. * * @see #setEnabledFeatures(int) * @see #setUserAndEnabledFeatures(int, int) */ static final int FLAG_FEATURE_FILTER_KEY_EVENTS = 0x00000004; /** * Flag for enabling "Automatically click on mouse stop" feature. * * @see #setEnabledFeatures(int) * @see #setUserAndEnabledFeatures(int, int) */ static final int FLAG_FEATURE_AUTOCLICK = 0x00000008; Loading Loading @@ -97,6 +97,8 @@ class AccessibilityInputFilter extends InputFilter implements EventStreamTransfo private boolean mInstalled; private int mUserId; private int mEnabledFeatures; private TouchExplorer mTouchExplorer; Loading Loading @@ -327,13 +329,14 @@ class AccessibilityInputFilter extends InputFilter implements EventStreamTransfo /* do nothing */ } void setEnabledFeatures(int enabledFeatures) { if (mEnabledFeatures == enabledFeatures) { void setUserAndEnabledFeatures(int userId, int enabledFeatures) { if (mEnabledFeatures == enabledFeatures && mUserId == userId) { return; } if (mInstalled) { disableFeatures(); } mUserId = userId; mEnabledFeatures = enabledFeatures; if (mInstalled) { enableFeatures(); Loading @@ -350,7 +353,7 @@ class AccessibilityInputFilter extends InputFilter implements EventStreamTransfo resetStreamState(); if ((mEnabledFeatures & FLAG_FEATURE_AUTOCLICK) != 0) { mAutoclickController = new AutoclickController(mContext); mAutoclickController = new AutoclickController(mContext, mUserId); addFirstEventHandler(mAutoclickController); } Loading @@ -360,7 +363,7 @@ class AccessibilityInputFilter extends InputFilter implements EventStreamTransfo } if ((mEnabledFeatures & FLAG_FEATURE_SCREEN_MAGNIFIER) != 0) { mScreenMagnifier = new ScreenMagnifier(mContext, mScreenMagnifier = new ScreenMagnifier(mContext, mUserId, Display.DEFAULT_DISPLAY, mAms); addFirstEventHandler(mScreenMagnifier); } Loading @@ -386,7 +389,7 @@ class AccessibilityInputFilter extends InputFilter implements EventStreamTransfo mEventHandler = handler; } void disableFeatures() { private void disableFeatures() { if (mAutoclickController != null) { mAutoclickController.onDestroy(); mAutoclickController = null; Loading services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +2 −2 Original line number Diff line number Diff line Loading @@ -1296,11 +1296,11 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub { inputFilter = mInputFilter; setInputFilter = true; } mInputFilter.setEnabledFeatures(flags); mInputFilter.setUserAndEnabledFeatures(userState.mUserId, flags); } else { if (mHasInputFilter) { mHasInputFilter = false; mInputFilter.disableFeatures(); mInputFilter.setUserAndEnabledFeatures(userState.mUserId, 0); inputFilter = null; setInputFilter = true; } Loading services/accessibility/java/com/android/server/accessibility/AutoclickController.java +12 −7 Original line number Diff line number Diff line Loading @@ -51,6 +51,8 @@ import android.view.accessibility.AccessibilityEvent; * * It is expected that each instance will receive mouse events from a single mouse device. User of * the class should handle cases where multiple mouse devices are present. * * Each instance is associated to a single user (and it does not handle user switch itself). */ public class AutoclickController implements EventStreamTransformation { Loading @@ -60,13 +62,15 @@ public class AutoclickController implements EventStreamTransformation { private EventStreamTransformation mNext; private final Context mContext; private final int mUserId; // Lazily created on the first mouse motion event. private ClickScheduler mClickScheduler; private ClickDelayObserver mClickDelayObserver; public AutoclickController(Context context) { public AutoclickController(Context context, int userId) { mContext = context; mUserId = userId; } @Override Loading @@ -75,7 +79,7 @@ public class AutoclickController implements EventStreamTransformation { if (mClickScheduler == null) { Handler handler = new Handler(mContext.getMainLooper()); mClickScheduler = new ClickScheduler(handler, DEFAULT_CLICK_DELAY_MS); mClickDelayObserver = new ClickDelayObserver(handler); mClickDelayObserver = new ClickDelayObserver(mUserId, handler); mClickDelayObserver.start(mContext.getContentResolver(), mClickScheduler); } Loading Loading @@ -168,9 +172,11 @@ public class AutoclickController implements EventStreamTransformation { private ContentResolver mContentResolver; private ClickScheduler mClickScheduler; private final int mUserId; public ClickDelayObserver(Handler handler) { public ClickDelayObserver(int userId, Handler handler) { super(handler); mUserId = userId; } /** Loading Loading @@ -199,7 +205,7 @@ public class AutoclickController implements EventStreamTransformation { mContentResolver = contentResolver; mClickScheduler = clickScheduler; mContentResolver.registerContentObserver(mAutoclickDelaySettingUri, false, this, UserHandle.USER_ALL); mUserId); // Initialize mClickScheduler's initial delay value. onChange(true, mAutoclickDelaySettingUri); Loading @@ -222,10 +228,9 @@ public class AutoclickController implements EventStreamTransformation { @Override public void onChange(boolean selfChange, Uri uri) { if (mAutoclickDelaySettingUri.equals(uri)) { // TODO: Plumb current user id down to here and use getIntForUser. int delay = Settings.Secure.getInt( int delay = Settings.Secure.getIntForUser( mContentResolver, Settings.Secure.ACCESSIBILITY_AUTOCLICK_DELAY, DEFAULT_CLICK_DELAY_MS); DEFAULT_CLICK_DELAY_MS, mUserId); mClickScheduler.updateDelay(delay); } } Loading services/accessibility/java/com/android/server/accessibility/ScreenMagnifier.java +9 −5 Original line number Diff line number Diff line Loading @@ -137,6 +137,8 @@ public final class ScreenMagnifier implements WindowManagerInternal.Magnificatio private final AccessibilityManagerService mAms; private final int mUserId; private final int mTapTimeSlop = ViewConfiguration.getJumpTapTimeout(); private final int mMultiTapTimeSlop; private final int mTapDistanceSlop; Loading Loading @@ -188,8 +190,10 @@ public final class ScreenMagnifier implements WindowManagerInternal.Magnificatio } }; public ScreenMagnifier(Context context, int displayId, AccessibilityManagerService service) { public ScreenMagnifier(Context context, int userId, int displayId, AccessibilityManagerService service) { mContext = context; mUserId = userId; mWindowManager = LocalServices.getService(WindowManagerInternal.class); mAms = service; Loading Loading @@ -882,17 +886,17 @@ public final class ScreenMagnifier implements WindowManagerInternal.Magnificatio new AsyncTask<Void, Void, Void>() { @Override protected Void doInBackground(Void... params) { Settings.Secure.putFloat(mContext.getContentResolver(), Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_SCALE, scale); Settings.Secure.putFloatForUser(mContext.getContentResolver(), Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_SCALE, scale, mUserId); return null; } }.execute(); } private float getPersistedScale() { return Settings.Secure.getFloat(mContext.getContentResolver(), return Settings.Secure.getFloatForUser(mContext.getContentResolver(), Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_SCALE, DEFAULT_MAGNIFICATION_SCALE); DEFAULT_MAGNIFICATION_SCALE, mUserId); } private static boolean isScreenMagnificationAutoUpdateEnabled(Context context) { Loading Loading
services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java +12 −9 Original line number Diff line number Diff line Loading @@ -45,28 +45,28 @@ class AccessibilityInputFilter extends InputFilter implements EventStreamTransfo /** * Flag for enabling the screen magnification feature. * * @see #setEnabledFeatures(int) * @see #setUserAndEnabledFeatures(int, int) */ static final int FLAG_FEATURE_SCREEN_MAGNIFIER = 0x00000001; /** * Flag for enabling the touch exploration feature. * * @see #setEnabledFeatures(int) * @see #setUserAndEnabledFeatures(int, int) */ static final int FLAG_FEATURE_TOUCH_EXPLORATION = 0x00000002; /** * Flag for enabling the filtering key events feature. * * @see #setEnabledFeatures(int) * @see #setUserAndEnabledFeatures(int, int) */ static final int FLAG_FEATURE_FILTER_KEY_EVENTS = 0x00000004; /** * Flag for enabling "Automatically click on mouse stop" feature. * * @see #setEnabledFeatures(int) * @see #setUserAndEnabledFeatures(int, int) */ static final int FLAG_FEATURE_AUTOCLICK = 0x00000008; Loading Loading @@ -97,6 +97,8 @@ class AccessibilityInputFilter extends InputFilter implements EventStreamTransfo private boolean mInstalled; private int mUserId; private int mEnabledFeatures; private TouchExplorer mTouchExplorer; Loading Loading @@ -327,13 +329,14 @@ class AccessibilityInputFilter extends InputFilter implements EventStreamTransfo /* do nothing */ } void setEnabledFeatures(int enabledFeatures) { if (mEnabledFeatures == enabledFeatures) { void setUserAndEnabledFeatures(int userId, int enabledFeatures) { if (mEnabledFeatures == enabledFeatures && mUserId == userId) { return; } if (mInstalled) { disableFeatures(); } mUserId = userId; mEnabledFeatures = enabledFeatures; if (mInstalled) { enableFeatures(); Loading @@ -350,7 +353,7 @@ class AccessibilityInputFilter extends InputFilter implements EventStreamTransfo resetStreamState(); if ((mEnabledFeatures & FLAG_FEATURE_AUTOCLICK) != 0) { mAutoclickController = new AutoclickController(mContext); mAutoclickController = new AutoclickController(mContext, mUserId); addFirstEventHandler(mAutoclickController); } Loading @@ -360,7 +363,7 @@ class AccessibilityInputFilter extends InputFilter implements EventStreamTransfo } if ((mEnabledFeatures & FLAG_FEATURE_SCREEN_MAGNIFIER) != 0) { mScreenMagnifier = new ScreenMagnifier(mContext, mScreenMagnifier = new ScreenMagnifier(mContext, mUserId, Display.DEFAULT_DISPLAY, mAms); addFirstEventHandler(mScreenMagnifier); } Loading @@ -386,7 +389,7 @@ class AccessibilityInputFilter extends InputFilter implements EventStreamTransfo mEventHandler = handler; } void disableFeatures() { private void disableFeatures() { if (mAutoclickController != null) { mAutoclickController.onDestroy(); mAutoclickController = null; Loading
services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +2 −2 Original line number Diff line number Diff line Loading @@ -1296,11 +1296,11 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub { inputFilter = mInputFilter; setInputFilter = true; } mInputFilter.setEnabledFeatures(flags); mInputFilter.setUserAndEnabledFeatures(userState.mUserId, flags); } else { if (mHasInputFilter) { mHasInputFilter = false; mInputFilter.disableFeatures(); mInputFilter.setUserAndEnabledFeatures(userState.mUserId, 0); inputFilter = null; setInputFilter = true; } Loading
services/accessibility/java/com/android/server/accessibility/AutoclickController.java +12 −7 Original line number Diff line number Diff line Loading @@ -51,6 +51,8 @@ import android.view.accessibility.AccessibilityEvent; * * It is expected that each instance will receive mouse events from a single mouse device. User of * the class should handle cases where multiple mouse devices are present. * * Each instance is associated to a single user (and it does not handle user switch itself). */ public class AutoclickController implements EventStreamTransformation { Loading @@ -60,13 +62,15 @@ public class AutoclickController implements EventStreamTransformation { private EventStreamTransformation mNext; private final Context mContext; private final int mUserId; // Lazily created on the first mouse motion event. private ClickScheduler mClickScheduler; private ClickDelayObserver mClickDelayObserver; public AutoclickController(Context context) { public AutoclickController(Context context, int userId) { mContext = context; mUserId = userId; } @Override Loading @@ -75,7 +79,7 @@ public class AutoclickController implements EventStreamTransformation { if (mClickScheduler == null) { Handler handler = new Handler(mContext.getMainLooper()); mClickScheduler = new ClickScheduler(handler, DEFAULT_CLICK_DELAY_MS); mClickDelayObserver = new ClickDelayObserver(handler); mClickDelayObserver = new ClickDelayObserver(mUserId, handler); mClickDelayObserver.start(mContext.getContentResolver(), mClickScheduler); } Loading Loading @@ -168,9 +172,11 @@ public class AutoclickController implements EventStreamTransformation { private ContentResolver mContentResolver; private ClickScheduler mClickScheduler; private final int mUserId; public ClickDelayObserver(Handler handler) { public ClickDelayObserver(int userId, Handler handler) { super(handler); mUserId = userId; } /** Loading Loading @@ -199,7 +205,7 @@ public class AutoclickController implements EventStreamTransformation { mContentResolver = contentResolver; mClickScheduler = clickScheduler; mContentResolver.registerContentObserver(mAutoclickDelaySettingUri, false, this, UserHandle.USER_ALL); mUserId); // Initialize mClickScheduler's initial delay value. onChange(true, mAutoclickDelaySettingUri); Loading @@ -222,10 +228,9 @@ public class AutoclickController implements EventStreamTransformation { @Override public void onChange(boolean selfChange, Uri uri) { if (mAutoclickDelaySettingUri.equals(uri)) { // TODO: Plumb current user id down to here and use getIntForUser. int delay = Settings.Secure.getInt( int delay = Settings.Secure.getIntForUser( mContentResolver, Settings.Secure.ACCESSIBILITY_AUTOCLICK_DELAY, DEFAULT_CLICK_DELAY_MS); DEFAULT_CLICK_DELAY_MS, mUserId); mClickScheduler.updateDelay(delay); } } Loading
services/accessibility/java/com/android/server/accessibility/ScreenMagnifier.java +9 −5 Original line number Diff line number Diff line Loading @@ -137,6 +137,8 @@ public final class ScreenMagnifier implements WindowManagerInternal.Magnificatio private final AccessibilityManagerService mAms; private final int mUserId; private final int mTapTimeSlop = ViewConfiguration.getJumpTapTimeout(); private final int mMultiTapTimeSlop; private final int mTapDistanceSlop; Loading Loading @@ -188,8 +190,10 @@ public final class ScreenMagnifier implements WindowManagerInternal.Magnificatio } }; public ScreenMagnifier(Context context, int displayId, AccessibilityManagerService service) { public ScreenMagnifier(Context context, int userId, int displayId, AccessibilityManagerService service) { mContext = context; mUserId = userId; mWindowManager = LocalServices.getService(WindowManagerInternal.class); mAms = service; Loading Loading @@ -882,17 +886,17 @@ public final class ScreenMagnifier implements WindowManagerInternal.Magnificatio new AsyncTask<Void, Void, Void>() { @Override protected Void doInBackground(Void... params) { Settings.Secure.putFloat(mContext.getContentResolver(), Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_SCALE, scale); Settings.Secure.putFloatForUser(mContext.getContentResolver(), Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_SCALE, scale, mUserId); return null; } }.execute(); } private float getPersistedScale() { return Settings.Secure.getFloat(mContext.getContentResolver(), return Settings.Secure.getFloatForUser(mContext.getContentResolver(), Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_SCALE, DEFAULT_MAGNIFICATION_SCALE); DEFAULT_MAGNIFICATION_SCALE, mUserId); } private static boolean isScreenMagnificationAutoUpdateEnabled(Context context) { Loading