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

    <issue
        id="NewApi"
        message="Class requires API level 19 (current min is 14): `EmojiSpan`"
        errorLine1="            mSpans = ((Spanned) charSequence).getSpans(0, charSequence.length(), EmojiSpan.class);"
        errorLine2="                                                                                 ~~~~~~~~~~~~~~~">
        <location
            file="src/androidTest/java/androidx/emoji2/bundled/util/EmojiMatcher.java"/>
    </issue>

    <issue
        id="NewApi"
        message="Class requires API level 19 (current min is 14): `EmojiSpan`"
        errorLine1="            mSpans = ((Spanned) charSequence).getSpans(0, charSequence.length(), EmojiSpan.class);"
        errorLine2="                                                                                 ~~~~~~~~~~~~~~~">
        <location
            file="src/androidTest/java/androidx/emoji2/bundled/util/EmojiMatcher.java"/>
    </issue>

    <issue
        id="NewApi"
        message="Class requires API level 19 (current min is 14): `EmojiSpan`"
        errorLine1="            final EmojiSpan[] spans = spanned.getSpans(0, charSequence.length(), EmojiSpan.class);"
        errorLine2="                                                                                 ~~~~~~~~~~~~~~~">
        <location
            file="src/androidTest/java/androidx/emoji2/bundled/util/EmojiMatcher.java"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 19 (current min is 14): `getId`"
        errorLine1="                    if (mResId == spans[index].getId()) {"
        errorLine2="                                               ~~~~~">
        <location
            file="src/androidTest/java/androidx/emoji2/bundled/util/EmojiMatcher.java"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 19 (current min is 14): `getId`"
        errorLine1="                    if (mResId == -1 || mResId == spans[index].getId()) {"
        errorLine2="                                                               ~~~~~">
        <location
            file="src/androidTest/java/androidx/emoji2/bundled/util/EmojiMatcher.java"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 19 (current min is 14): `create`"
        errorLine1="                            loaderCallback.onLoaded(MetadataRepo.create(mock(Typeface.class)));"
        errorLine2="                                                                 ~~~~~~">
        <location
            file="src/androidTest/java/androidx/emoji2/bundled/TestConfigBuilder.java"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 19 (current min is 14): `create`"
        errorLine1="                            sMetadataRepo = MetadataRepo.create(assetManager, FONT_FILE);"
        errorLine2="                                                         ~~~~~~">
        <location
            file="src/androidTest/java/androidx/emoji2/bundled/TestConfigBuilder.java"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 19 (current min is 14): `create`"
        errorLine1="                    mMetadataRepo = MetadataRepo.create(assetManager, FONT_FILE);"
        errorLine2="                                                 ~~~~~~">
        <location
            file="src/androidTest/java/androidx/emoji2/bundled/TestConfigBuilder.java"/>
    </issue>

</issues>
