am a98c21a6: Make circular mask thickness configurable

* commit 'a98c21a662040a8afa75a35bd882c292f7ed8414':
  Make circular mask thickness configurable
This commit is contained in:
Prashant Malani
2015-03-11 17:24:54 +00:00
committed by Android Git Automerger
4 changed files with 13 additions and 4 deletions

View File

@@ -414,6 +414,10 @@
to 0 -->
<dimen name="circular_display_mask_offset">0px</dimen>
<!-- Amount to reduce the size of the circular mask by (to compensate for aliasing
effects). This is only used on circular displays. -->
<dimen name="circular_display_mask_thickness">1px</dimen>
<dimen name="lock_pattern_dot_line_width">3dp</dimen>
<dimen name="lock_pattern_dot_size">12dp</dimen>
<dimen name="lock_pattern_dot_size_activated">28dp</dimen>

View File

@@ -420,6 +420,7 @@
<java-symbol type="dimen" name="immersive_mode_cling_width" />
<java-symbol type="dimen" name="circular_display_mask_offset" />
<java-symbol type="dimen" name="accessibility_magnification_indicator_width" />
<java-symbol type="dimen" name="circular_display_mask_thickness" />
<java-symbol type="string" name="add_account_button_label" />
<java-symbol type="string" name="addToDictionary" />

View File

@@ -50,9 +50,10 @@ class CircularDisplayMask {
private int mRotation;
private boolean mVisible;
private boolean mDimensionsUnequal = false;
private int mMaskThickness;
public CircularDisplayMask(Display display, SurfaceSession session, int zOrder,
int screenOffset) {
int screenOffset, int maskThickness) {
mScreenSize = new Point();
display.getSize(mScreenSize);
if (mScreenSize.x != mScreenSize.y) {
@@ -84,6 +85,7 @@ class CircularDisplayMask {
mPaint.setAntiAlias(true);
mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
mScreenOffset = screenOffset;
mMaskThickness = maskThickness;
}
private void drawIfNeeded() {
@@ -121,8 +123,8 @@ class CircularDisplayMask {
int circleRadius = mScreenSize.x / 2;
c.drawColor(Color.BLACK);
// The radius is reduced by 1 to provide an anti aliasing effect on the display edges.
c.drawCircle(circleRadius, circleRadius, circleRadius - 1, mPaint);
// The radius is reduced by mMaskThickness to provide an anti aliasing effect on the display edges.
c.drawCircle(circleRadius, circleRadius, circleRadius - mMaskThickness, mPaint);
mSurface.unlockCanvasAndPost(c);
}

View File

@@ -5965,13 +5965,15 @@ public class WindowManagerService extends IWindowManager.Stub
if (mCircularDisplayMask == null) {
int screenOffset = mContext.getResources().getDimensionPixelSize(
com.android.internal.R.dimen.circular_display_mask_offset);
int maskThickness = mContext.getResources().getDimensionPixelSize(
com.android.internal.R.dimen.circular_display_mask_thickness);
mCircularDisplayMask = new CircularDisplayMask(
getDefaultDisplayContentLocked().getDisplay(),
mFxSession,
mPolicy.windowTypeToLayerLw(
WindowManager.LayoutParams.TYPE_POINTER)
* TYPE_LAYER_MULTIPLIER + 10, screenOffset);
* TYPE_LAYER_MULTIPLIER + 10, screenOffset, maskThickness);
}
mCircularDisplayMask.setVisibility(true);
} else if (mCircularDisplayMask != null) {