drawable/src/main/java/am/drawable/PathDrawable.java
/**
     * Set this path to the result of applying the Op to the two specified paths.
     * The resulting path will be constructed from non-overlapping contours.
     * The curve order is reduced where possible so that cubics may be turned
     * into quadratics, and quadratics maybe turned into lines.
     *
     * @param path1 The first operand (for difference, the minuend)
     * @param path2 The second operand (for difference, the subtrahend)
     * @return True if operation succeeded, false otherwise and this path remains unmodified.
     * @see Path.Op
     * @see #op(Path, Path.Op)
     */
Set this path to the result of applying the Op to the two specified paths.
The resulting path will be constructed from non-overlapping contours.
The curve order is reduced where possible so that cubics may be turned
into quadratics, and quadratics maybe turned into lines.

@param path1 The first operand (for difference, the minuend)
@param path2 The second operand (for difference, the subtrahend)
@return True if operation succeeded, false otherwise and this path remains unmodified.
Set this path to the result of applying the Op to the two specified paths . The resulting path will be constructed from non - overlapping contours . The curve order is reduced where possible so that cubics may be turned into quadratics and quadratics maybe turned into lines . @param path1 The first operand ( for difference the minuend ) @param path2 The second operand ( for difference the subtrahend ) @return True if operation succeeded false otherwise and this path remains unmodified .
public boolean op(Path path1, Path path2, Path.Op op) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT && mPath.op(path1, path2, op)) {
            invalidatePath();
            return true;
        }
        return false;
    }
public boolean op ( Path path1 , Path path2 , Path . Op op ) { if ( Build . VERSION . SDK_INT >= Build . VERSION_CODES . KITKAT && mPath . op ( path1 , path2 , op ) ) { invalidatePath ( ) ; return true ; } return false ; }
Set this path to the result of applying the Op to the two specified paths.
Set this path to the result of applying the Op to the two specified paths .