diff options
| -rw-r--r-- | core/java/android/view/PointerIcon.java | 10 | ||||
| -rw-r--r-- | services/core/java/com/android/server/input/InputManagerService.java | 13 |
2 files changed, 15 insertions, 8 deletions
diff --git a/core/java/android/view/PointerIcon.java b/core/java/android/view/PointerIcon.java index aa879cdce69c..7ba046b0ca1f 100644 --- a/core/java/android/view/PointerIcon.java +++ b/core/java/android/view/PointerIcon.java @@ -17,8 +17,6 @@ package android.view; import android.annotation.NonNull; -import android.os.UserHandle; -import android.provider.Settings; import android.util.SparseArray; import com.android.internal.util.XmlUtils; @@ -142,6 +140,9 @@ public final class PointerIcon implements Parcelable { private static final PointerIcon gNullIcon = new PointerIcon(STYLE_NULL); private static final SparseArray<PointerIcon> gSystemIcons = new SparseArray<PointerIcon>(); + /** @hide */ + public static boolean sUseLargeIcons = false; + private final int mStyle; private int mSystemIconResourceId; private Bitmap mBitmap; @@ -210,10 +211,7 @@ public final class PointerIcon implements Parcelable { styleIndex = getSystemIconStyleIndex(STYLE_DEFAULT); } - int accessibilityConfig = Settings.Secure.getIntForUser( - context.getContentResolver(), Settings.Secure.ACCESSIBILITY_LARGE_POINTER_ICON, - 0, UserHandle.USER_CURRENT); - int defStyle = (accessibilityConfig == 1) ? + int defStyle = sUseLargeIcons ? com.android.internal.R.style.LargePointer : com.android.internal.R.style.Pointer; TypedArray a = context.obtainStyledAttributes(null, com.android.internal.R.styleable.Pointer, diff --git a/services/core/java/com/android/server/input/InputManagerService.java b/services/core/java/com/android/server/input/InputManagerService.java index 8b373834a6b3..68b38179e26d 100644 --- a/services/core/java/com/android/server/input/InputManagerService.java +++ b/services/core/java/com/android/server/input/InputManagerService.java @@ -320,12 +320,13 @@ public class InputManagerService extends IInputManager.Stub public void onReceive(Context context, Intent intent) { updatePointerSpeedFromSettings(); updateShowTouchesFromSettings(); - nativeReloadPointerIcons(mPtr); + updateAccessibilityLargePointerFromSettings(); } }, new IntentFilter(Intent.ACTION_USER_SWITCHED), null, mHandler); updatePointerSpeedFromSettings(); updateShowTouchesFromSettings(); + updateAccessibilityLargePointerFromSettings(); } // TODO(BT) Pass in paramter for bluetooth system @@ -1366,13 +1367,21 @@ public class InputManagerService extends IInputManager.Stub }, UserHandle.USER_ALL); } + public void updateAccessibilityLargePointerFromSettings() { + final int accessibilityConfig = Settings.Secure.getIntForUser( + mContext.getContentResolver(), Settings.Secure.ACCESSIBILITY_LARGE_POINTER_ICON, + 0, UserHandle.USER_CURRENT); + PointerIcon.sUseLargeIcons = (accessibilityConfig == 1); + nativeReloadPointerIcons(mPtr); + } + private void registerAccessibilityLargePointerSettingObserver() { mContext.getContentResolver().registerContentObserver( Settings.Secure.getUriFor(Settings.Secure.ACCESSIBILITY_LARGE_POINTER_ICON), true, new ContentObserver(mHandler) { @Override public void onChange(boolean selfChange) { - nativeReloadPointerIcons(mPtr); + updateAccessibilityLargePointerFromSettings(); } }, UserHandle.USER_ALL); } |