Merge "API: Make implicit APIs from type usage explicit"
diff --git a/api/system-current.txt b/api/system-current.txt
index 3dea80e..945dbf1 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -4332,6 +4332,11 @@
     field public static final int ID_TYPE_SERIAL = 1; // 0x1
   }
 
+  public class DeviceIdAttestationException extends java.lang.Exception {
+    ctor public DeviceIdAttestationException(java.lang.String);
+    ctor public DeviceIdAttestationException(java.lang.String, java.lang.Throwable);
+  }
+
 }
 
 package android.security.keystore.recovery {
@@ -6374,7 +6379,7 @@
     field public static final int PROCESS_CALL_IMS = 0; // 0x0
   }
 
-  public static class MmTelFeature.MmTelCapabilities {
+  public static class MmTelFeature.MmTelCapabilities extends android.telephony.ims.feature.ImsFeature.Capabilities {
     ctor public MmTelFeature.MmTelCapabilities();
     ctor public deprecated MmTelFeature.MmTelCapabilities(android.telephony.ims.feature.ImsFeature.Capabilities);
     ctor public MmTelFeature.MmTelCapabilities(int);
diff --git a/api/test-current.txt b/api/test-current.txt
index c86feb2..8466ef0 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -800,6 +800,11 @@
     field public static final int ID_TYPE_SERIAL = 1; // 0x1
   }
 
+  public class DeviceIdAttestationException extends java.lang.Exception {
+    ctor public DeviceIdAttestationException(java.lang.String);
+    ctor public DeviceIdAttestationException(java.lang.String, java.lang.Throwable);
+  }
+
   public static final class KeyGenParameterSpec.Builder {
     method public android.security.keystore.KeyGenParameterSpec.Builder setUniqueIdIncluded(boolean);
   }
diff --git a/keystore/java/android/security/keystore/DeviceIdAttestationException.java b/keystore/java/android/security/keystore/DeviceIdAttestationException.java
index e18d193..13f50b1 100644
--- a/keystore/java/android/security/keystore/DeviceIdAttestationException.java
+++ b/keystore/java/android/security/keystore/DeviceIdAttestationException.java
@@ -16,11 +16,16 @@
 
 package android.security.keystore;
 
+import android.annotation.SystemApi;
+import android.annotation.TestApi;
+
 /**
  * Thrown when {@link AttestationUtils} is unable to attest the given device ids.
  *
  * @hide
  */
+@SystemApi
+@TestApi
 public class DeviceIdAttestationException extends Exception {
     /**
      * Constructs a new {@code DeviceIdAttestationException} with the current stack trace and the
diff --git a/telephony/java/android/telephony/ims/feature/ImsFeature.java b/telephony/java/android/telephony/ims/feature/ImsFeature.java
index 5b09ab8..b55866b 100644
--- a/telephony/java/android/telephony/ims/feature/ImsFeature.java
+++ b/telephony/java/android/telephony/ims/feature/ImsFeature.java
@@ -211,12 +211,19 @@
      * Contains the capabilities defined and supported by an ImsFeature in the form of a bit mask.
      * @hide
      */
+    @SystemApi  // SystemApi only because it was leaked through type usage in a previous release.
     public static class Capabilities {
         protected int mCapabilities = 0;
 
+        /**
+         * @hide
+         */
         public Capabilities() {
         }
 
+        /**
+         * @hide
+         */
         protected Capabilities(int capabilities) {
             mCapabilities = capabilities;
         }
@@ -224,6 +231,7 @@
         /**
          * @param capabilities Capabilities to be added to the configuration in the form of a
          *     bit mask.
+         * @hide
          */
         public void addCapabilities(int capabilities) {
             mCapabilities |= capabilities;
@@ -232,6 +240,7 @@
         /**
          * @param capabilities Capabilities to be removed to the configuration in the form of a
          *     bit mask.
+         * @hide
          */
         public void removeCapabilities(int capabilities) {
             mCapabilities &= ~capabilities;
@@ -239,6 +248,7 @@
 
         /**
          * @return true if all of the capabilities specified are capable.
+         * @hide
          */
         public boolean isCapable(int capabilities) {
             return (mCapabilities & capabilities) == capabilities;
@@ -246,6 +256,7 @@
 
         /**
          * @return a deep copy of the Capabilites.
+         * @hide
          */
         public Capabilities copy() {
             return new Capabilities(mCapabilities);
@@ -253,6 +264,7 @@
 
         /**
          * @return a bitmask containing the capability flags directly.
+         * @hide
          */
         public int getMask() {
             return mCapabilities;