diff options
author | Casey Burkhardt <caseyburkhardt@google.com> | 2015-02-12 23:28:30 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-02-12 23:28:30 +0000 |
commit | d1a5b5dc07dc3798ae13a5a9538b5e5bbbeb8058 (patch) | |
tree | 7f3bc4980f0d9945d1a682cdb9e27001c6ff26ea /services | |
parent | 6c02d9239885a529d4b160aa3938b14c61fbc3fd (diff) | |
parent | 6f2dd8a9b195a2bc8538820d8685a4a0576964f9 (diff) | |
download | frameworks_base-d1a5b5dc07dc3798ae13a5a9538b5e5bbbeb8058.zip frameworks_base-d1a5b5dc07dc3798ae13a5a9538b5e5bbbeb8058.tar.gz frameworks_base-d1a5b5dc07dc3798ae13a5a9538b5e5bbbeb8058.tar.bz2 |
am 6f2dd8a9: Merge "Support circular magnification frame on circular devices" into lmp-mr1-modular-dev
* commit '6f2dd8a9b195a2bc8538820d8685a4a0576964f9':
Support circular magnification frame on circular devices
Diffstat (limited to 'services')
-rw-r--r-- | services/core/java/com/android/server/wm/AccessibilityController.java | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/wm/AccessibilityController.java b/services/core/java/com/android/server/wm/AccessibilityController.java index 08754f9..37ca0db 100644 --- a/services/core/java/com/android/server/wm/AccessibilityController.java +++ b/services/core/java/com/android/server/wm/AccessibilityController.java @@ -397,8 +397,6 @@ final class AccessibilityController { private final class MagnifiedViewport { - private static final int DEFAUTLT_BORDER_WIDTH_DIP = 5; - private final SparseArray<WindowState> mTempWindowStates = new SparseArray<WindowState>(); @@ -411,6 +409,8 @@ final class AccessibilityController { private final Region mMagnifiedBounds = new Region(); private final Region mOldMagnifiedBounds = new Region(); + private final Path mCircularPath; + private final MagnificationSpec mMagnificationSpec = MagnificationSpec.obtain(); private final WindowManager mWindowManager; @@ -425,12 +425,22 @@ final class AccessibilityController { public MagnifiedViewport() { mWindowManager = (WindowManager) mContext.getSystemService(Service.WINDOW_SERVICE); - mBorderWidth = TypedValue.applyDimension( - TypedValue.COMPLEX_UNIT_DIP, DEFAUTLT_BORDER_WIDTH_DIP, - mContext.getResources().getDisplayMetrics()); + mBorderWidth = mContext.getResources().getDimension( + com.android.internal.R.dimen.accessibility_magnification_indicator_width); mHalfBorderWidth = (int) Math.ceil(mBorderWidth / 2); mDrawBorderInset = (int) mBorderWidth / 2; mWindow = new ViewportWindow(mContext); + + if (mContext.getResources().getBoolean( + com.android.internal.R.bool.config_windowIsRound)) { + mCircularPath = new Path(); + mWindowManager.getDefaultDisplay().getRealSize(mTempPoint); + final int centerXY = mTempPoint.x / 2; + mCircularPath.addCircle(centerXY, centerXY, centerXY, Path.Direction.CW); + } else { + mCircularPath = null; + } + recomputeBoundsLocked(); } @@ -459,6 +469,10 @@ final class AccessibilityController { Region availableBounds = mTempRegion1; availableBounds.set(0, 0, screenWidth, screenHeight); + if (mCircularPath != null) { + availableBounds.setPath(mCircularPath, availableBounds); + } + Region nonMagnifiedBounds = mTempRegion4; nonMagnifiedBounds.set(0, 0, 0, 0); |