Merge "Exclude accessing settings from PointerIcon."
diff --git a/core/java/android/view/PointerIcon.java b/core/java/android/view/PointerIcon.java
index aa879cd..7ba046b 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 @@
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 @@
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 8b37383..68b3817 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 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 @@
}, 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);
}