<?xml version="1.0" encoding="UTF-8"?>
<issues format="6" by="lint 8.13.0-alpha01" type="baseline" client="gradle" dependencies="false" name="AGP (8.13.0-alpha01)" variant="all" version="8.13.0-alpha01">

    <issue
        id="MissingPermission"
        message="Call requires permission which may be rejected by user: code should explicitly check to see if permission is available (with `checkPermission`) or explicitly handle a potential `SecurityException`"
        errorLine1="        cameraManager.openCamera("
        errorLine2="        ^">
        <location
            file="src/main/java/androidx/camera/testing/impl/Camera2Util.kt"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="                Thread.sleep(100);"
        errorLine2="                       ~~~~~">
        <location
            file="src/test/java/androidx/camera/testing/mocks/MockConsumerTest.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="                Thread.sleep(1000);"
        errorLine2="                       ~~~~~">
        <location
            file="src/test/java/androidx/camera/testing/mocks/MockConsumerTest.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="                Thread.sleep(100);"
        errorLine2="                       ~~~~~">
        <location
            file="src/test/java/androidx/camera/testing/mocks/MockObserverTest.java"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is never &lt; 23"
        errorLine1="        return Build.VERSION.SDK_INT == 21 &amp;&amp; isEmulator();"
        errorLine2="               ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/testing/impl/AndroidUtil.java"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 23"
        errorLine1="        if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/testing/impl/CameraUtil.java"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is never &lt; 23"
        errorLine1="        return (Build.VERSION.SDK_INT == 21 &amp;&amp; hardwareLevelValue != null &amp;&amp; hardwareLevelValue"
        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/testing/impl/CameraUtil.java"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 23"
        errorLine1="            @RequiresApi(api = Build.VERSION_CODES.M)"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/testing/impl/CameraUtil.java"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is never &lt; 23"
        errorLine1="        if (Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/testing/impl/CoreAppTestUtil.java"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is never &lt; 23"
        errorLine1="        if (Build.VERSION.SDK_INT &lt; Build.VERSION_CODES.M) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/testing/impl/CoreAppTestUtil.java"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 23"
        errorLine1="@RequiresApi(23) // ImageWriter requires API 23+"
        errorLine2="~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/testing/impl/fakes/FakeSessionProcessor.kt"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is never &lt; 23"
        errorLine1="    private val api21Emulator = isEmulator &amp;&amp; Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP"
        errorLine2="                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/testing/impl/IgnoreProblematicDeviceRule.kt"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is never &lt; 23"
        errorLine1="        if (Build.VERSION.SDK_INT &lt; 23 || &quot;robolectric&quot;.equals(Build.FINGERPRINT)) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/testing/impl/ImageProxyUtil.java"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 23"
        errorLine1="        if (Build.VERSION.SDK_INT >= 23) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/testing/impl/compat/LooperCompat.java"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 23"
        errorLine1="    @RequiresApi(23)"
        errorLine2="    ~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/camera/testing/impl/compat/LooperCompat.java"/>
    </issue>

</issues>
