/**
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
package com.facebook.react.flat;
import android.text.TextPaint;
import android.text.style.CharacterStyle;
/* package */ final class ShadowStyleSpan extends CharacterStyle {
/* package */ static final ShadowStyleSpan INSTANCE = new ShadowStyleSpan(0, 0, 0, 0, true);
private float mDx;
private float mDy;
private float mRadius;
private int mColor;
private boolean mFrozen;
private ShadowStyleSpan(float dx, float dy, float radius, int color, boolean frozen) {
mDx = dx;
mDy = dy;
mRadius = radius;
mColor = color;
mFrozen = frozen;
}
public boolean offsetMatches(float dx, float dy) {
return mDx == dx && mDy == dy;
}
public void setOffset(float dx, float dy) {
mDx = dx;
mDy = dy;
}
public float getRadius() {
return mRadius;
}
public void setRadius(float radius) {
mRadius = radius;
}
public int getColor() {
return mColor;
}
public void setColor(int color) {
mColor = color;
}
/* package */ ShadowStyleSpan mutableCopy() {
return new ShadowStyleSpan(mDx, mDy, mRadius, mColor, false);
}
/* package */ boolean isFrozen() {
return mFrozen;
}
/* package */ void freeze() {
mFrozen = true;
}
@Override
public void updateDrawState(TextPaint textPaint) {
textPaint.setShadowLayer(mRadius, mDx, mDy, mColor);
}
}