<?xml version="1.0" encoding="UTF-8"?>
<issues format="6" by="lint 7.1.0-dev" type="baseline" client="" name="" variant="all" version="7.1.0-dev">

    <issue
        id="NewApi"
        message="Call requires API level R (current min is 26): `android.os.RemoteException#rethrowFromSystemServer`"
        errorLine1="            throw e.rethrowFromSystemServer();"
        errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/ActivityManagerWrapper.java"
            line="90"
            column="21"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 31 (current min is 26): `android.graphics.Bitmap#getHardwareBuffer`"
        errorLine1="                mBuffer != null ? mBuffer.getHardwareBuffer() : null, mRect);"
        errorLine2="                                          ~~~~~~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/recents/view/AppTransitionAnimationSpecCompat.java"
            line="39"
            column="43"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 31 (current min is 26): `new android.graphics.ParcelableColorSpace`"
        errorLine1="                        ? new ParcelableColorSpace(ColorSpace.get(ColorSpace.Named.SRGB))"
        errorLine2="                          ~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/recents/utilities/BitmapUtil.java"
            line="57"
            column="27"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 31 (current min is 26): `new android.graphics.ParcelableColorSpace`"
        errorLine1="                        : new ParcelableColorSpace(bitmap.getColorSpace());"
        errorLine2="                          ~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/recents/utilities/BitmapUtil.java"
            line="58"
            column="27"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 31 (current min is 26): `android.graphics.Bitmap#getHardwareBuffer`"
        errorLine1="        bundle.putParcelable(KEY_BUFFER, bitmap.getHardwareBuffer());"
        errorLine2="                                                ~~~~~~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/recents/utilities/BitmapUtil.java"
            line="61"
            column="49"/>
    </issue>

    <issue
        id="NewApi"
        message="Cast from `ParcelableColorSpace` to `Parcelable` requires API level 31 (current min is 26)"
        errorLine1="        bundle.putParcelable(KEY_COLOR_SPACE, colorSpace);"
        errorLine2="                                              ~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/recents/utilities/BitmapUtil.java"
            line="62"
            column="47"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `android.graphics.Bitmap#wrapHardwareBuffer`"
        errorLine1="        return Bitmap.wrapHardwareBuffer(Objects.requireNonNull(buffer),"
        errorLine2="                      ~~~~~~~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/recents/utilities/BitmapUtil.java"
            line="84"
            column="23"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 31 (current min is 26): `android.graphics.ParcelableColorSpace#getColorSpace`"
        errorLine1="                colorSpace.getColorSpace());"
        errorLine2="                           ~~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/recents/utilities/BitmapUtil.java"
            line="85"
            column="28"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `new android.view.SurfaceControl.Transaction`"
        errorLine1="        final SurfaceControl.Transaction tx = new SurfaceControl.Transaction();"
        errorLine2="                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/pip/PipSurfaceTransactionHelper.java"
            line="122"
            column="47"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `new android.util.ArraySet`"
        errorLine1="        mPluginActions = new ArraySet&lt;>(mSharedPrefs.getStringSet(PLUGIN_ACTIONS, null));"
        errorLine2="                         ~~~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/plugins/PluginPrefs.java"
            line="41"
            column="26"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `new android.util.ArraySet`"
        errorLine1="        return new ArraySet&lt;>(mPluginActions);"
        errorLine2="               ~~~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/plugins/PluginPrefs.java"
            line="45"
            column="16"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 28 (current min is 26): `android.graphics.Bitmap#createBitmap`"
        errorLine1="        return Bitmap.createBitmap(picture);"
        errorLine2="                      ~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/recents/view/RecentsTransition.java"
            line="113"
            column="23"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `new android.view.SurfaceControl.Builder`"
        errorLine1="            mSurface = new SurfaceControl.Builder()"
        errorLine2="                       ~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/RemoteAnimationAdapterCompat.java"
            line="116"
            column="24"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `android.view.SurfaceControl.Builder#setName`"
        errorLine1="                    .setName(&quot;Transition Unrotate&quot;)"
        errorLine2="                     ~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/RemoteAnimationAdapterCompat.java"
            line="117"
            column="22"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `android.view.SurfaceControl.Builder#setParent`"
        errorLine1="                    .setParent(parent)"
        errorLine2="                     ~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/RemoteAnimationAdapterCompat.java"
            line="119"
            column="22"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `android.view.SurfaceControl.Builder#build`"
        errorLine1="                    .build();"
        errorLine2="                     ~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/RemoteAnimationAdapterCompat.java"
            line="120"
            column="22"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `android.view.SurfaceControl.Transaction#reparent`"
        errorLine1="            t.reparent(child, mSurface);"
        errorLine2="              ~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/RemoteAnimationAdapterCompat.java"
            line="137"
            column="15"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `new android.view.SurfaceControl.Transaction`"
        errorLine1="            SurfaceControl.Transaction t = new SurfaceControl.Transaction();"
        errorLine2="                                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/RemoteAnimationAdapterCompat.java"
            line="143"
            column="44"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `android.view.SurfaceControl.Transaction#reparent`"
        errorLine1="                t.reparent(mRotateChildren.get(i), rootLeash);"
        errorLine2="                  ~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/RemoteAnimationAdapterCompat.java"
            line="145"
            column="19"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `android.view.SurfaceControl.Transaction#apply`"
        errorLine1="            t.apply();"
        errorLine2="              ~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/RemoteAnimationAdapterCompat.java"
            line="148"
            column="15"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `android.view.SurfaceControl.Transaction#setLayer`"
        errorLine1="                        t.setLayer(counterLauncher.mSurface, launcherLayer);"
        errorLine2="                          ~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/RemoteAnimationAdapterCompat.java"
            line="200"
            column="27"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `android.view.SurfaceControl.Transaction#setLayer`"
        errorLine1="                        t.setLayer(counterLauncher.mSurface, info.getChanges().size() * 3);"
        errorLine2="                          ~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/RemoteAnimationAdapterCompat.java"
            line="206"
            column="27"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `android.view.SurfaceControl.Transaction#setLayer`"
        errorLine1="                            t.setLayer(leash, info.getChanges().size() * 3 - i);"
        errorLine2="                              ~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/RemoteAnimationAdapterCompat.java"
            line="216"
            column="31"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `android.view.SurfaceControl.Transaction#setAlpha`"
        errorLine1="                        t.setAlpha(wallpapersCompat[i].leash.getSurfaceControl(), 1.f);"
        errorLine2="                          ~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/RemoteAnimationAdapterCompat.java"
            line="223"
            column="27"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `android.view.SurfaceControl.Transaction#setLayer`"
        errorLine1="                            t.setLayer(counterWallpaper.mSurface, -1);"
        errorLine2="                              ~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/RemoteAnimationAdapterCompat.java"
            line="233"
            column="31"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `android.view.SurfaceControl.Transaction#apply`"
        errorLine1="                t.apply();"
        errorLine2="                  ~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/RemoteAnimationAdapterCompat.java"
            line="238"
            column="19"/>
    </issue>

    <issue
        id="NewApi"
        message="Field requires API level 29 (current min is 26): `android.app.ActivityManager.RunningTaskInfo#taskId`"
        errorLine1="        taskId = change.getTaskInfo() != null ? change.getTaskInfo().taskId : -1;"
        errorLine2="                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/RemoteAnimationTargetCompat.java"
            line="101"
            column="49"/>
    </issue>

    <issue
        id="NewApi"
        message="Field requires API level 29 (current min is 26): `android.app.TaskInfo#taskId`"
        errorLine1="        taskId = change.getTaskInfo() != null ? change.getTaskInfo().taskId : -1;"
        errorLine2="                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/RemoteAnimationTargetCompat.java"
            line="192"
            column="49"/>
    </issue>

    <issue
        id="NewApi"
        message="Field requires API level 29 (current min is 26): `android.app.ActivityManager.RunningTaskInfo#isRunning`"
        errorLine1="            isNotInRecents = !change.getTaskInfo().isRunning;"
        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/RemoteAnimationTargetCompat.java"
            line="116"
            column="31"/>
    </issue>

    <issue
        id="NewApi"
        message="Field requires API level 29 (current min is 26): `android.app.TaskInfo#isRunning`"
        errorLine1="            isNotInRecents = !change.getTaskInfo().isRunning;"
        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/RemoteAnimationTargetCompat.java"
            line="210"
            column="31"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `android.view.SurfaceControl#release`"
        errorLine1="        leash.mSurfaceControl.release();"
        errorLine2="                              ~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/RemoteAnimationTargetCompat.java"
            line="159"
            column="31"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `android.view.SurfaceControl#release`"
        errorLine1="            mStartLeash.release();"
        errorLine2="                        ~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/RemoteAnimationTargetCompat.java"
            line="161"
            column="25"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `android.view.SurfaceControl.Transaction#setLayer`"
        errorLine1="                        t.setLayer(change.getLeash(), info.getChanges().size() * 3 - i);"
        errorLine2="                          ~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/RemoteTransitionCompat.java"
            line="97"
            column="27"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `android.view.SurfaceControl.Transaction#setAlpha`"
        errorLine1="                    t.setAlpha(wallpapers[i].leash.mSurfaceControl, 1);"
        errorLine2="                      ~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/RemoteTransitionCompat.java"
            line="105"
            column="23"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `android.view.SurfaceControl.Transaction#apply`"
        errorLine1="                t.apply();"
        errorLine2="                  ~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/RemoteTransitionCompat.java"
            line="107"
            column="19"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `android.view.SurfaceControl#isValid`"
        errorLine1="        return mSurfaceControl != null &amp;&amp; mSurfaceControl.isValid();"
        errorLine2="                                                          ~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/SurfaceControlCompat.java"
            line="41"
            column="59"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level R (current min is 26): `android.view.SurfaceControlViewHost#release`"
        errorLine1="            mSurfaceControlViewHost.release();"
        errorLine2="                                    ~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/SurfaceViewRequestReceiver.java"
            line="61"
            column="37"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level R (current min is 26): `android.view.SurfaceView#getHostToken`"
        errorLine1="        bundle.putBinder(KEY_HOST_TOKEN, surfaceView.getHostToken());"
        errorLine2="                                                     ~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/SurfaceViewRequestUtils.java"
            line="34"
            column="54"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `android.view.SurfaceView#getSurfaceControl`"
        errorLine1="        bundle.putParcelable(KEY_SURFACE_CONTROL, surfaceView.getSurfaceControl());"
        errorLine2="                                                              ~~~~~~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/SurfaceViewRequestUtils.java"
            line="35"
            column="63"/>
    </issue>

    <issue
        id="NewApi"
        message="Cast from `SurfaceControl` to `Parcelable` requires API level 29 (current min is 26)"
        errorLine1="        bundle.putParcelable(KEY_SURFACE_CONTROL, surfaceView.getSurfaceControl());"
        errorLine2="                                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/SurfaceViewRequestUtils.java"
            line="35"
            column="51"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `android.view.SurfaceControl#isValid`"
        errorLine1="                if (mBarrierSurfaceControl == null || !mBarrierSurfaceControl.isValid()) {"
        errorLine2="                                                                              ~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/SyncRtSurfaceTransactionApplierCompat.java"
            line="107"
            column="79"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `new android.view.SurfaceControl.Transaction`"
        errorLine1="                Transaction t = new Transaction();"
        errorLine2="                                ~~~~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/SyncRtSurfaceTransactionApplierCompat.java"
            line="113"
            column="33"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `android.view.SurfaceControl.Transaction#apply`"
        errorLine1="                    t.apply();"
        errorLine2="                      ~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/SyncRtSurfaceTransactionApplierCompat.java"
            line="122"
            column="23"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `android.view.SurfaceControl.Transaction#setAlpha`"
        errorLine1="                t.setAlpha(surface, alpha);"
        errorLine2="                  ~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/SyncRtSurfaceTransactionApplierCompat.java"
            line="361"
            column="19"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `android.view.SurfaceControl.Transaction#setLayer`"
        errorLine1="                t.setLayer(surface, layer);"
        errorLine2="                  ~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/SyncRtSurfaceTransactionApplierCompat.java"
            line="364"
            column="19"/>
    </issue>

    <issue
        id="NewApi"
        message="Field requires API level 29 (current min is 26): `android.app.TaskInfo#origActivity`"
        errorLine1="            ComponentName sourceComponent = t.origActivity != null"
        errorLine2="                                            ~~~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/recents/model/Task.java"
            line="73"
            column="45"/>
    </issue>

    <issue
        id="NewApi"
        message="Field requires API level 29 (current min is 26): `android.app.TaskInfo#origActivity`"
        errorLine1="                    ? t.origActivity"
        errorLine2="                      ~~~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/recents/model/Task.java"
            line="75"
            column="23"/>
    </issue>

    <issue
        id="NewApi"
        message="Field requires API level 29 (current min is 26): `android.app.TaskInfo#taskId`"
        errorLine1="            this.id = t.taskId;"
        errorLine2="                      ~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/recents/model/Task.java"
            line="78"
            column="23"/>
    </issue>

    <issue
        id="NewApi"
        message="Field requires API level 29 (current min is 26): `android.app.TaskInfo#baseIntent`"
        errorLine1="            this.baseIntent = t.baseIntent;"
        errorLine2="                              ~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/recents/model/Task.java"
            line="80"
            column="31"/>
    </issue>

    <issue
        id="NewApi"
        message="Field requires API level 29 (current min is 26): `android.app.TaskInfo#taskDescription`"
        errorLine1="        ActivityManager.TaskDescription td = taskInfo.taskDescription;"
        errorLine2="                                             ~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/recents/model/Task.java"
            line="242"
            column="46"/>
    </issue>

    <issue
        id="NewApi"
        message="Field requires API level 29 (current min is 26): `android.app.TaskInfo#topActivity`"
        errorLine1="                taskInfo.supportsSplitScreenMultiWindow, isLocked, td, taskInfo.topActivity);"
        errorLine2="                                                                       ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/recents/model/Task.java"
            line="246"
            column="72"/>
    </issue>

    <issue
        id="NewApi"
        message="Field requires API level 29 (current min is 26): `android.app.TaskInfo#topActivity`"
        errorLine1="        return info.topActivity;"
        errorLine2="               ~~~~~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/TaskInfoCompat.java"
            line="49"
            column="16"/>
    </issue>

    <issue
        id="NewApi"
        message="Field requires API level 29 (current min is 26): `android.app.TaskInfo#taskDescription`"
        errorLine1="        return info.taskDescription;"
        errorLine2="               ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/TaskInfoCompat.java"
            line="53"
            column="16"/>
    </issue>

    <issue
        id="NewApi"
        message="Field requires API level 29 (current min is 26): `android.app.ActivityManager.RunningTaskInfo#taskId`"
        errorLine1="        onTaskMovedToFront(taskInfo.taskId);"
        errorLine2="                           ~~~~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/TaskStackChangeListener.java"
            line="70"
            column="28"/>
    </issue>

    <issue
        id="NewApi"
        message="Field requires API level 29 (current min is 26): `android.app.TaskInfo#taskId`"
        errorLine1="        onTaskMovedToFront(taskInfo.taskId);"
        errorLine2="                           ~~~~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/TaskStackChangeListener.java"
            line="70"
            column="28"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `android.graphics.Bitmap#wrapHardwareBuffer`"
        errorLine1="                thumbnail = Bitmap.wrapHardwareBuffer(buffer, snapshot.getColorSpace());"
        errorLine2="                                   ~~~~~~~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/recents/model/ThumbnailData.java"
            line="69"
            column="36"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 31 (current min is 26): `android.app.WallpaperColors#getColorHints`"
        errorLine1="                    (colors.getColorHints() &amp; WallpaperColors.HINT_SUPPORTS_DARK_THEME) != 0;"
        errorLine2="                            ~~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/TonalCompat.java"
            line="42"
            column="29"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `new android.view.SurfaceControl.Transaction`"
        errorLine1="        mTransaction = new Transaction();"
        errorLine2="                       ~~~~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/TransactionCompat.java"
            line="31"
            column="24"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `android.view.SurfaceControl.Transaction#apply`"
        errorLine1="        mTransaction.apply();"
        errorLine2="                     ~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/TransactionCompat.java"
            line="35"
            column="22"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `android.view.SurfaceControl.Transaction#setBufferSize`"
        errorLine1="        mTransaction.setBufferSize(surfaceControl.mSurfaceControl, w, h);"
        errorLine2="                     ~~~~~~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/TransactionCompat.java"
            line="54"
            column="22"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `android.view.SurfaceControl.Transaction#setLayer`"
        errorLine1="        mTransaction.setLayer(surfaceControl.mSurfaceControl, z);"
        errorLine2="                     ~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/TransactionCompat.java"
            line="59"
            column="22"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `android.view.SurfaceControl.Transaction#setAlpha`"
        errorLine1="        mTransaction.setAlpha(surfaceControl.mSurfaceControl, alpha);"
        errorLine2="                     ~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/TransactionCompat.java"
            line="64"
            column="22"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `android.view.SurfaceControl.Transaction#apply`"
        errorLine1="            t.apply();"
        errorLine2="              ~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/ViewRootImplCompat.java"
            line="64"
            column="15"/>
    </issue>

    <issue
        id="NewApi"
        message="Call requires API level 29 (current min is 26): `android.content.res.Resources#getFloat`"
        errorLine1="                .getFloat(Resources.getSystem().getIdentifier("
        errorLine2="                 ~~~~~~~~">
        <location
            file="frameworks/base/packages/SystemUI/shared/src/com/android/systemui/shared/system/WallpaperManagerCompat.java"
            line="46"
            column="18"/>
    </issue>

</issues>
