Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 276d1bc9 authored by Prashant Malani's avatar Prashant Malani Committed by Android Git Automerger
Browse files

am a98c21a6: Make circular mask thickness configurable

* commit 'a98c21a6':
  Make circular mask thickness configurable
parents e011eb4f a98c21a6
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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>
+1 −0
Original line number Diff line number Diff line
@@ -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" />
+5 −3
Original line number Diff line number Diff line
@@ -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);
    }

+3 −1
Original line number Diff line number Diff line
@@ -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) {