<?xml version="1.0" encoding="UTF-8"?>
<issues format="6" by="lint 8.4.0-alpha01" type="baseline" client="" dependencies="true" name="" variant="all" version="8.4.0-alpha01">

    <issue
        id="NewApi"
        message="Call requires API level 34 (current min is 29): `android.content.om.OverlayManager#getOverlayInfosForTarget`"
        errorLine1="        when(mOverlayManager.getOverlayInfosForTarget(getEnabledTargetPackageId(),"
        errorLine2="                             ~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="packages/apps/DocumentsUI/tests/functional/com/android/documentsui/ThemeOverlayManagerTest.java"
            line="85"
            column="30"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 34 (current min is 29): `android.content.om.OverlayManager#getOverlayInfosForTarget`"
        errorLine1="        when(mOverlayManager.getOverlayInfosForTarget(getDisabledTargetPackageId(),"
        errorLine2="                             ~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="packages/apps/DocumentsUI/tests/functional/com/android/documentsui/ThemeOverlayManagerTest.java"
            line="89"
            column="30"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 34 (current min is 29): `android.content.om.OverlayManager#setEnabled`"
        errorLine1="        verify(mOverlayManager, times(1)).setEnabled(getOverlayPackageId(), enabled,"
        errorLine2="                                          ~~~~~~~~~~">
        <location
            file="packages/apps/DocumentsUI/tests/functional/com/android/documentsui/ThemeOverlayManagerTest.java"
            line="104"
            column="43"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 34 (current min is 29): `android.content.om.OverlayManager#getOverlayInfosForTarget`"
        errorLine1="        verify(mOverlayManager, times(1)).getOverlayInfosForTarget(getEnabledTargetPackageId(),"
        errorLine2="                                          ~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="packages/apps/DocumentsUI/tests/functional/com/android/documentsui/ThemeOverlayManagerTest.java"
            line="116"
            column="43"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 34 (current min is 29): `android.content.om.OverlayManager#setEnabled`"
        errorLine1="        verify(mOverlayManager, never()).setEnabled(getOverlayPackageId(), enabled,"
        errorLine2="                                         ~~~~~~~~~~">
        <location
            file="packages/apps/DocumentsUI/tests/functional/com/android/documentsui/ThemeOverlayManagerTest.java"
            line="129"
            column="42"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 34 (current min is 29): `android.content.om.OverlayManager#getOverlayInfosForTarget`"
        errorLine1="        assertThat(mOverlayManager.getOverlayInfosForTarget(getDisabledTargetPackageId(),"
        errorLine2="                                   ~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="packages/apps/DocumentsUI/tests/functional/com/android/documentsui/ThemeOverlayManagerTest.java"
            line="137"
            column="36"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 34 (current min is 29): `android.content.om.OverlayInfo#isEnabled`"
        errorLine1="                mUserHandle).get(0).isEnabled()).isEqualTo(!enabled);"
        errorLine2="                                    ~~~~~~~~~">
        <location
            file="packages/apps/DocumentsUI/tests/functional/com/android/documentsui/ThemeOverlayManagerTest.java"
            line="138"
            column="37"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 34 (current min is 29): `android.content.om.OverlayManager#setEnabled`"
        errorLine1="        verify(mOverlayManager, times(1)).setEnabled(getOverlayPackageId(), enabled,"
        errorLine2="                                          ~~~~~~~~~~">
        <location
            file="packages/apps/DocumentsUI/tests/functional/com/android/documentsui/ThemeOverlayManagerTest.java"
            line="146"
            column="43"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 34 (current min is 29): `android.content.om.OverlayManager#getOverlayInfosForTarget`"
        errorLine1="        assertThat(mOverlayManager.getOverlayInfosForTarget(getEnabledTargetPackageId(),"
        errorLine2="                                   ~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="packages/apps/DocumentsUI/tests/functional/com/android/documentsui/ThemeOverlayManagerTest.java"
            line="154"
            column="36"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 34 (current min is 29): `android.content.om.OverlayInfo#isEnabled`"
        errorLine1="                mUserHandle).get(0).isEnabled()).isEqualTo(!enabled);"
        errorLine2="                                    ~~~~~~~~~">
        <location
            file="packages/apps/DocumentsUI/tests/functional/com/android/documentsui/ThemeOverlayManagerTest.java"
            line="155"
            column="37"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 34 (current min is 29): `android.content.om.OverlayManager#setEnabled`"
        errorLine1="        verify(mOverlayManager, times(1)).setEnabled(getOverlayPackageId(), enabled,"
        errorLine2="                                          ~~~~~~~~~~">
        <location
            file="packages/apps/DocumentsUI/tests/functional/com/android/documentsui/ThemeOverlayManagerTest.java"
            line="163"
            column="43"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 34 (current min is 29): `android.content.om.OverlayManager#getOverlayInfosForTarget`"
        errorLine1="                mOverlayManager.getOverlayInfosForTarget(getEnabledTargetPackageId(),"
        errorLine2="                                ~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="packages/apps/DocumentsUI/tests/functional/com/android/documentsui/ThemeOverlayManagerTest.java"
            line="192"
            column="33"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 34 (current min is 29): `new android.content.om.OverlayInfo`"
        errorLine1='        return new OverlayInfo(packageName, targetPackageName, null, null, "",'
        errorLine2="               ~~~~~~~~~~~~~~~">
        <location
            file="packages/apps/DocumentsUI/tests/functional/com/android/documentsui/ThemeOverlayManagerTest.java"
            line="211"
            column="16"/>
    </issue>

</issues>