Merge tag 'android-13.0.0_r16' into int/13/fp3

Android 13.0.0 Release 16 (TQ1A.221205.011)

* tag 'android-13.0.0_r16':
  RESTRICT AUTOMERGE: Not relevant on U version - Shutdown created ScheduledExecutor when connector is destroyed.

Change-Id: I4d634321479d3cb0f3a0fbc1c574004cdbf072ae
diff --git a/sdk/src/main/java/com/google/android/enterprise/connectedapps/AbstractProfileConnector.java b/sdk/src/main/java/com/google/android/enterprise/connectedapps/AbstractProfileConnector.java
index cc71c7b..dd84c7d 100644
--- a/sdk/src/main/java/com/google/android/enterprise/connectedapps/AbstractProfileConnector.java
+++ b/sdk/src/main/java/com/google/android/enterprise/connectedapps/AbstractProfileConnector.java
@@ -38,6 +38,7 @@
 
   private final Context context;
   private final ScheduledExecutorService scheduledExecutorService;
+  private final boolean createdScheduledExecutorService;
   private final ConnectionBinder binder;
   private final String serviceClassName;
   private final @Nullable ProfileType primaryProfileType;
@@ -50,8 +51,10 @@
     }
     if (builder.scheduledExecutorService == null) {
       scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
+      createdScheduledExecutorService = true;
     } else {
       scheduledExecutorService = builder.scheduledExecutorService;
+      createdScheduledExecutorService = false;
     }
 
     if (builder.binder == null) {
@@ -71,6 +74,13 @@
   }
 
   @Override
+  protected void finalize() throws Throwable {
+    if (createdScheduledExecutorService) {
+      scheduledExecutorService.shutdownNow();
+    }
+  }
+
+  @Override
   public void startConnecting() {
     if (VERSION.SDK_INT < VERSION_CODES.O) {
       return;