/FileExtraction/Java_unseen/PowerExplorer_PowerFileExplorer/PowerFileExplorer/src/main/java/com/thefinestartist/utils/etc/APILevel.java
package com.thefinestartist.utils.etc;

import android.os.Build;

/**
 * APILevel helps to check device API {@link android.os.Build.VERSION} conveniently.
 *
 * @author Marcos Trujillo, Leonardo Taehwan Kim
 */
public class APILevel {

    /**
     * @param level minimum API level version that has to support the device
     * @return true when the caller API version is at least level
     */
    public static boolean require(int level) {
        return Build.VERSION.SDK_INT >= level;
    }

    /**
     * @return true when the caller API version is at least Cupcake 3
     */
    public static boolean requireCupcake() {
        return Build.VERSION.SDK_INT >= Build.VERSION_CODES.CUPCAKE;
    }

    /**
     * @return true when the caller API version is at least Donut 4
     */
    public static boolean requireDonut() {
        return Build.VERSION.SDK_INT >= Build.VERSION_CODES.DONUT;
    }

    /**
     * @return true when the caller API version is at least Eclair 5
     */
    public static boolean requireEclair() {
        return Build.VERSION.SDK_INT >= Build.VERSION_CODES.ECLAIR;
    }

    /**
     * @return true when the caller API version is at least Froyo 8
     */
    public static boolean requireFroyo() {
        return Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO;
    }

    /**
     * @return true when the caller API version is at least GingerBread 9
     */
    public static boolean requireGingerbread() {
        return Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD;
    }

    /**
     * @return true when the caller API version is at least Honeycomb 11
     */
    public static boolean requireHoneycomb() {
        return Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB;
    }

    /**
     * @return true when the caller API version is at least Honeycomb 3.2, 13
     */
    public static boolean requireHoneycombMR2() {
        return Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2;
    }

    /**
     * @return true when the caller API version is at least ICS 14
     */
    public static boolean requireIceCreamSandwich() {
        return Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH;
    }

    /**
     * @return true when the caller API version is at least JellyBean 16
     */
    public static boolean requireJellyBean() {
        return Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN;
    }

    /**
     * @return true when the caller API version is at least JellyBean MR1 17
     */
    public static boolean requireJellyBeanMR1() {
        return Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1;
    }

    /**
     * @return true when the caller API version is at least JellyBean MR2 18
     */
    public static boolean requireJellyBeanMR2() {
        return Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2;
    }

    /**
     * @return true when the caller API version is at least Kitkat 19
     */
    public static boolean requireKitkat() {
        return Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;
    }

    /**
     * @return true when the caller API version is at least Lollipop 21
     */
    public static boolean requireLollipop() {
        return Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP;
    }

    /**
     * @return true when the caller API version is at least Lollipop MR1 22
     */
    public static boolean requireLollipopMR1() {
        return Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1;
    }

    /**
     * @return true when the caller API version is at least Marshmallow 23
     */
    public static boolean requireMarshmallow() {
        return Build.VERSION.SDK_INT >= Build.VERSION_CODES.M;
    }

    /**
     * @param level API level version that specific method or variable has been deprecated
     * @return true when the caller API version is less than level
     */
    public static boolean deprecatedAt(int level) {
        return Build.VERSION.SDK_INT < level;
    }

    /**
     * @return true when the caller API version is less than Cupcake 3
     */
    public static boolean deprecatedAtCupcake() {
        return Build.VERSION.SDK_INT < Build.VERSION_CODES.CUPCAKE;
    }

    /**
     * @return true when the caller API version is less than Donut 4
     */
    public static boolean deprecatedAtDonut() {
        return Build.VERSION.SDK_INT < Build.VERSION_CODES.DONUT;
    }

    /**
     * @return true when the caller API version is less than Eclair 5
     */
    public static boolean deprecatedAtEclair() {
        return Build.VERSION.SDK_INT < Build.VERSION_CODES.ECLAIR;
    }

    /**
     * @return true when the caller API version is less than Froyo 8
     */
    public static boolean deprecatedAtFroyo() {
        return Build.VERSION.SDK_INT < Build.VERSION_CODES.FROYO;
    }

    /**
     * @return true when the caller API version is less than GingerBread 9
     */
    public static boolean deprecatedAtGingerbread() {
        return Build.VERSION.SDK_INT < Build.VERSION_CODES.GINGERBREAD;
    }

    /**
     * @return true when the caller API version is less than Honeycomb 11
     */
    public static boolean deprecatedAtHoneycomb() {
        return Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB;
    }

    /**
     * @return true when the caller API version is less than Honeycomb 3.2, 13
     */
    public static boolean deprecatedAtHoneycombMR2() {
        return Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB_MR2;
    }

    /**
     * @return true when the caller API version is less than ICS 14
     */
    public static boolean deprecatedAtIceCreamSandwich() {
        return Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH;
    }

    /**
     * @return true when the caller API version is less than JellyBean 16
     */
    public static boolean deprecatedAtJellyBean() {
        return Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN;
    }

    /**
     * @return true when the caller API version is less than JellyBean MR1 17
     */
    public static boolean deprecatedAtJellyBeanMR1() {
        return Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1;
    }

    /**
     * @return true when the caller API version is less than JellyBean MR2 18
     */
    public static boolean deprecatedAtJellyBeanMR2() {
        return Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR2;
    }

    /**
     * @return true when the caller API version is less than Kitkat 19
     */
    public static boolean deprecatedAtKitkat() {
        return Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT;
    }

    /**
     * @return true when the caller API version is less than Lollipop 21
     */
    public static boolean deprecatedAtLollipop() {
        return Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP;
    }

    /**
     * @return true when the caller API version is less than Lollipop MR1 22
     */
    public static boolean deprecatedAtLollipopMR1() {
        return Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP_MR1;
    }

    /**
     * @return true when the caller API version is less than Marshmallow 23
     */
    public static boolean deprecatedAtMarshmallow() {
        return Build.VERSION.SDK_INT < Build.VERSION_CODES.M;
    }
}
