@SuppressLint("RtlHardcoded")
    private TitleProperty copyHintProperty(TitleProperty property) {
        property.mTop = getPaddingTop() + mHintTitlePadding.top;
        property.mAlpha = 255;
        property.mTextSize = mHintTitleTextSize;

        int gravity = getGravity();
        switch (gravity & Gravity.HORIZONTAL_GRAVITY_MASK) {
            case Gravity.START:
            case Gravity.LEFT:
                property.mLeft = getPaddingLeft() + mHintTitlePadding.left;
                break;
            case Gravity.END:
            case Gravity.RIGHT:
                property.mLeft = getWidth() - getPaddingRight() - mHintTitlePadding.right - getHintTextLen(property.mTextSize);
                break;
            case Gravity.CENTER_HORIZONTAL:
                int lp = getPaddingLeft() + mHintTitlePadding.left;
                int rp = getPaddingRight() + mHintTitlePadding.right;
                int center = lp + ((getWidth() - lp - rp) >> 1);
                int halfTextLen = getHintTextLen(property.mTextSize) / 2;
                property.mLeft = center - halfTextLen;
                break;
            default:
                property.mLeft = getPaddingLeft() + mHintTitlePadding.left;
                break;
        }

        return property;
    }
Refresh hint ui by this

@param value Hint TitleProperty
caprice/ui/src/main/java/net/qiujuer/genius/ui/widget/EditText.java