Revert "Revert "Bump compileSdkVersion to "Tiramisu"""

This reverts commit 4a32b7f1bb03fa70d5545bdf98a22c777b7fb349.

Reason for revert: Fixed tests
Test: Ran test targets in forrest

Change-Id: I7f19be54e10c95f9eb4158c4fec2e4b77a853185
diff --git a/buildSrc/public/src/main/kotlin/androidx/build/SupportConfig.kt b/buildSrc/public/src/main/kotlin/androidx/build/SupportConfig.kt
index 931fa0a..66ea097 100644
--- a/buildSrc/public/src/main/kotlin/androidx/build/SupportConfig.kt
+++ b/buildSrc/public/src/main/kotlin/androidx/build/SupportConfig.kt
@@ -41,7 +41,7 @@
      * Either an integer value or a pre-release platform code, prefixed with "android-" (ex.
      * "android-28" or "android-Q") as you would see within the SDK's platforms directory.
      */
-    const val COMPILE_SDK_VERSION = "android-31"
+    const val COMPILE_SDK_VERSION = "android-Tiramisu"
 
     /**
      * The Android SDK version to use for targetSdkVersion meta-data.
diff --git a/car/app/app-samples/navigation/common/src/main/java/androidx/car/app/sample/navigation/common/car/NavigationCarAppService.java b/car/app/app-samples/navigation/common/src/main/java/androidx/car/app/sample/navigation/common/car/NavigationCarAppService.java
index 7cc97e2..c0a51ae 100644
--- a/car/app/app-samples/navigation/common/src/main/java/androidx/car/app/sample/navigation/common/car/NavigationCarAppService.java
+++ b/car/app/app-samples/navigation/common/src/main/java/androidx/car/app/sample/navigation/common/car/NavigationCarAppService.java
@@ -53,6 +53,7 @@
                 NavigationSession.URI_SCHEME, NavigationSession.URI_HOST, deepLinkAction);
     }
 
+    @SuppressWarnings("deprecation")
     @Override
     @NonNull
     public Session onCreateSession() {
diff --git a/car/app/app-samples/navigation/common/src/main/java/androidx/car/app/sample/navigation/common/nav/NavigationService.java b/car/app/app-samples/navigation/common/src/main/java/androidx/car/app/sample/navigation/common/nav/NavigationService.java
index 0dbe1c4..bd87681 100644
--- a/car/app/app-samples/navigation/common/src/main/java/androidx/car/app/sample/navigation/common/nav/NavigationService.java
+++ b/car/app/app-samples/navigation/common/src/main/java/androidx/car/app/sample/navigation/common/nav/NavigationService.java
@@ -391,6 +391,7 @@
     }
 
     /** Stops navigation. */
+    @SuppressWarnings("deprecation")
     public void stopNavigation() {
         Log.i(TAG, "Stopping Navigation");
         if (mScript != null) {
diff --git a/car/app/app-samples/places/common/src/main/java/androidx/car/app/sample/places/common/places/LocationUtil.java b/car/app/app-samples/places/common/src/main/java/androidx/car/app/sample/places/common/places/LocationUtil.java
index 678f411..772ef2c 100644
--- a/car/app/app-samples/places/common/src/main/java/androidx/car/app/sample/places/common/places/LocationUtil.java
+++ b/car/app/app-samples/places/common/src/main/java/androidx/car/app/sample/places/common/places/LocationUtil.java
@@ -16,6 +16,7 @@
 
 package androidx.car.app.sample.places.common.places;
 
+import android.annotation.SuppressLint;
 import android.location.Address;
 import android.location.Geocoder;
 import android.location.Location;
@@ -29,6 +30,8 @@
 class LocationUtil {
 
     /** Returns the address for a given location. */
+    @SuppressWarnings("deprecation")
+    @SuppressLint("Range")
     @Nullable
     static Address getAddressForLocation(Geocoder geocoder, Location location) {
         try {
diff --git a/core/core/src/main/java/androidx/core/app/ServiceCompat.java b/core/core/src/main/java/androidx/core/app/ServiceCompat.java
index f7d8ac4..320ece3 100644
--- a/core/core/src/main/java/androidx/core/app/ServiceCompat.java
+++ b/core/core/src/main/java/androidx/core/app/ServiceCompat.java
@@ -94,6 +94,7 @@
      * {@link #STOP_FOREGROUND_DETACH}.
      * @see Service#startForeground(int, Notification)
      */
+    @SuppressWarnings("deprecation")
     public static void stopForeground(@NonNull Service service, @StopForegroundFlags int flags) {
         if (Build.VERSION.SDK_INT >= 24) {
             service.stopForeground(flags);
diff --git a/exifinterface/exifinterface/src/main/java/androidx/exifinterface/media/ExifInterface.java b/exifinterface/exifinterface/src/main/java/androidx/exifinterface/media/ExifInterface.java
index a5badb5..a1bc324 100644
--- a/exifinterface/exifinterface/src/main/java/androidx/exifinterface/media/ExifInterface.java
+++ b/exifinterface/exifinterface/src/main/java/androidx/exifinterface/media/ExifInterface.java
@@ -5994,7 +5994,11 @@
                 throw new UnsupportedOperationException("Failed to read EXIF from HEIF file. "
                         + "Given stream is either malformed or unsupported.");
             } finally {
-                retriever.release();
+                try {
+                    retriever.release();
+                } catch (IOException e) {
+                    // Nothing we can  do about it.
+                }
             }
         } else {
             throw new UnsupportedOperationException("Reading EXIF from HEIF files "
diff --git a/fakeannotations/src/main/java/android/annotation/SdkConstant.java b/fakeannotations/src/main/java/android/annotation/SdkConstant.java
new file mode 100644
index 0000000..0a53186
--- /dev/null
+++ b/fakeannotations/src/main/java/android/annotation/SdkConstant.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.annotation;
+
+import java.lang.annotation.Target;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/**
+ * Indicates a constant field value should be exported to be used in the SDK tools.
+ * @hide
+ */
+@Target({ ElementType.FIELD })
+@Retention(RetentionPolicy.SOURCE)
+public @interface SdkConstant {
+    public static enum SdkConstantType {
+        ACTIVITY_INTENT_ACTION, BROADCAST_INTENT_ACTION, SERVICE_ACTION, INTENT_CATEGORY, FEATURE;
+    }
+
+    SdkConstantType value();
+}
diff --git a/gradle.properties b/gradle.properties
index ba94472..de26474 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -23,6 +23,9 @@
 # Don't generate versioned API files
 androidx.writeVersionedApiFiles=false
 
+# Don't warn about needing to update AGP
+android.suppressUnsupportedCompileSdk=Tiramisu
+
 # Disable features we do not use
 android.defaults.buildfeatures.aidl=false
 android.defaults.buildfeatures.buildconfig=false
diff --git a/heifwriter/heifwriter/src/androidTest/java/androidx/heifwriter/HeifWriterTest.java b/heifwriter/heifwriter/src/androidTest/java/androidx/heifwriter/HeifWriterTest.java
index fd65713..af40a5a 100644
--- a/heifwriter/heifwriter/src/androidTest/java/androidx/heifwriter/HeifWriterTest.java
+++ b/heifwriter/heifwriter/src/androidTest/java/androidx/heifwriter/HeifWriterTest.java
@@ -459,7 +459,11 @@
                 }
                 mWidth = mBitmaps[0].getWidth();
                 mHeight = mBitmaps[0].getHeight();
-                retriever.release();
+                try {
+                    retriever.release();
+                } catch (IOException e) {
+                    // Nothing we can  do about it.
+                }
             }
 
             private void cleanupStaleOutputs() {
@@ -702,7 +706,11 @@
         assertEquals("Wrong primary index", primary,
                 Integer.parseInt(retriever.extractMetadata(
                         MediaMetadataRetriever.METADATA_KEY_IMAGE_PRIMARY)));
-        retriever.release();
+        try {
+            retriever.release();
+        } catch (IOException e) {
+            // Nothing we can  do about it.
+        }
 
         if (useGrid) {
             MediaExtractor extractor = new MediaExtractor();
diff --git a/media2/integration-tests/testapp/src/main/java/androidx/media2/integration/testapp/VideoSessionService.java b/media2/integration-tests/testapp/src/main/java/androidx/media2/integration/testapp/VideoSessionService.java
index 8ff807d..f2df815 100644
--- a/media2/integration-tests/testapp/src/main/java/androidx/media2/integration/testapp/VideoSessionService.java
+++ b/media2/integration-tests/testapp/src/main/java/androidx/media2/integration/testapp/VideoSessionService.java
@@ -39,6 +39,7 @@
 
 import com.google.common.util.concurrent.ListenableFuture;
 
+import java.io.IOException;
 import java.lang.ref.WeakReference;
 import java.util.List;
 import java.util.concurrent.Executor;
@@ -195,7 +196,11 @@
             Bitmap musicAlbumBitmap = extractAlbumArt(retriever);
 
             if (retriever != null) {
-                retriever.release();
+                try {
+                    retriever.release();
+                } catch (IOException e) {
+                    // Nothing we can do about that...
+                }
             }
 
             MediaMetadata metadata = mediaItem.getMetadata();
diff --git a/media2/media2-player/src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java b/media2/media2-player/src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java
index d2b5aa5..d694aa5 100644
--- a/media2/media2-player/src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java
+++ b/media2/media2-player/src/androidTest/java/androidx/media2/player/MediaPlayer2Test.java
@@ -826,7 +826,11 @@
         retriever.setDataSource(file);
         String rotation = retriever.extractMetadata(
                 MediaMetadataRetriever.METADATA_KEY_VIDEO_ROTATION);
-        retriever.release();
+        try {
+            retriever.release();
+        } catch (IOException e) {
+            // Nothing we can  do about it.
+        }
         retriever = null;
         assertNotNull(rotation);
         assertEquals(Integer.parseInt(rotation), angle);
diff --git a/media2/media2-session/src/main/java/androidx/media2/session/MediaNotificationHandler.java b/media2/media2-session/src/main/java/androidx/media2/session/MediaNotificationHandler.java
index fc411f0..81c2253 100644
--- a/media2/media2-session/src/main/java/androidx/media2/session/MediaNotificationHandler.java
+++ b/media2/media2-session/src/main/java/androidx/media2/session/MediaNotificationHandler.java
@@ -155,6 +155,7 @@
         stopForegroundServiceIfNeeded();
     }
 
+    @SuppressWarnings("deprecation")
     private void stopForegroundServiceIfNeeded() {
         List<MediaSession> sessions = mServiceInstance.getSessions();
         for (int i = 0; i < sessions.size(); i++) {
diff --git a/samples/Support4Demos/src/main/java/com/example/android/supportv4/media/MediaNotificationManager.java b/samples/Support4Demos/src/main/java/com/example/android/supportv4/media/MediaNotificationManager.java
index 676e2fe4..68820cc 100644
--- a/samples/Support4Demos/src/main/java/com/example/android/supportv4/media/MediaNotificationManager.java
+++ b/samples/Support4Demos/src/main/java/com/example/android/supportv4/media/MediaNotificationManager.java
@@ -143,6 +143,7 @@
      * Removes the notification and stops tracking the session. If the session
      * was destroyed this has no effect.
      */
+    @SuppressWarnings("deprecation")
     public void stopNotification() {
         if (mStarted) {
             mStarted = false;
@@ -324,6 +325,7 @@
         builder.addAction(new NotificationCompat.Action(icon, label, intent));
     }
 
+    @SuppressWarnings("deprecation")
     private void setNotificationPlaybackState(NotificationCompat.Builder builder) {
         Log.d(TAG, "updateNotificationPlaybackState. mPlaybackState=" + mPlaybackState);
         if (mPlaybackState == null || !mStarted) {
diff --git a/samples/Support4Demos/src/main/java/com/example/android/supportv4/media/Playback.java b/samples/Support4Demos/src/main/java/com/example/android/supportv4/media/Playback.java
index ed0af60..445d3d3 100644
--- a/samples/Support4Demos/src/main/java/com/example/android/supportv4/media/Playback.java
+++ b/samples/Support4Demos/src/main/java/com/example/android/supportv4/media/Playback.java
@@ -436,6 +436,7 @@
      * @param releaseMediaPlayer Indicates whether the Media Player should also
      *            be released or not
      */
+    @SuppressWarnings("deprecation")
     private void relaxResources(boolean releaseMediaPlayer) {
         Log.d(TAG, "relaxResources. releaseMediaPlayer=" + releaseMediaPlayer);
 
diff --git a/samples/SupportLeanbackDemos/src/main/java/com/example/android/leanback/MediaSessionService.java b/samples/SupportLeanbackDemos/src/main/java/com/example/android/leanback/MediaSessionService.java
index 59697dd..f804c0f 100644
--- a/samples/SupportLeanbackDemos/src/main/java/com/example/android/leanback/MediaSessionService.java
+++ b/samples/SupportLeanbackDemos/src/main/java/com/example/android/leanback/MediaSessionService.java
@@ -230,6 +230,7 @@
         initializePlayer();
     }
 
+    @SuppressWarnings("deprecation")
     @Override
     public void onDestroy() {
         super.onDestroy();
diff --git a/work/work-runtime/src/main/java/androidx/work/impl/foreground/SystemForegroundService.java b/work/work-runtime/src/main/java/androidx/work/impl/foreground/SystemForegroundService.java
index f893098..0784162 100644
--- a/work/work-runtime/src/main/java/androidx/work/impl/foreground/SystemForegroundService.java
+++ b/work/work-runtime/src/main/java/androidx/work/impl/foreground/SystemForegroundService.java
@@ -97,6 +97,7 @@
         mDispatcher.setCallback(this);
     }
 
+    @SuppressWarnings("deprecation")
     @MainThread
     @Override
     public void stop() {