Paint.kt

/*
 * Copyright (C) 2019 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package androidx.core.graphics

import android.graphics.Paint
import androidx.annotation.ColorInt

/**
 * Convenience method to configure the BlendMode of a Paint in a backward
 * compatible way. This method is a no-op for BlendModes that have no equivalent
 * on older API levels
 */
inline fun Paint.setBlendMode(blendModeCompat: BlendModeCompat?): Boolean {
    return PaintCompat.setBlendMode(this, blendModeCompat)
}

/**
 * Convenience method to configure the BlendModeColorFilter of a Paint in a backward
 * compatible way. This method falls back on PorterDuffColorFilter for API levels that
 * do not support BlendModeColorFilter. This method is a no-op if the BlendMode provided is
 * not supported on a given API level.
 *
 * Passing in null for the BlendModeCompat parameter will remove the previously configured
 * ColorFilter on the Paint
 */
inline fun Paint.setBlendModeColorFilter(
    @ColorInt color: Int,
    blendModeCompat: BlendModeCompat?
): Boolean {
    return PaintCompat.setBlendModeColorFilter(this, color, blendModeCompat)
}