Make TrustAgentService a SystemApi

Bug: 16401527
Change-Id: I6d19281600bacac7c8a29afc07c39ca1d461d23c
diff --git a/api/current.txt b/api/current.txt
index 68056b8..7f1648e 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -29,7 +29,6 @@
     field public static final java.lang.String BIND_PRINT_SERVICE = "android.permission.BIND_PRINT_SERVICE";
     field public static final java.lang.String BIND_REMOTEVIEWS = "android.permission.BIND_REMOTEVIEWS";
     field public static final java.lang.String BIND_TEXT_SERVICE = "android.permission.BIND_TEXT_SERVICE";
-    field public static final java.lang.String BIND_TRUST_AGENT = "android.permission.BIND_TRUST_AGENT";
     field public static final java.lang.String BIND_TV_INPUT = "android.permission.BIND_TV_INPUT";
     field public static final java.lang.String BIND_VOICE_INTERACTION = "android.permission.BIND_VOICE_INTERACTION";
     field public static final java.lang.String BIND_VPN_SERVICE = "android.permission.BIND_VPN_SERVICE";
@@ -27410,22 +27409,6 @@
 
 }
 
-package android.service.trust {
-
-  public class TrustAgentService extends android.app.Service {
-    ctor public TrustAgentService();
-    method public final void grantTrust(java.lang.CharSequence, long, boolean);
-    method public final android.os.IBinder onBind(android.content.Intent);
-    method public boolean onSetTrustAgentFeaturesEnabled(android.os.Bundle);
-    method public void onUnlockAttempt(boolean);
-    method public final void revokeTrust();
-    field public static final java.lang.String KEY_FEATURES = "trust_agent_features";
-    field public static final java.lang.String SERVICE_INTERFACE = "android.service.trust.TrustAgentService";
-    field public static final java.lang.String TRUST_AGENT_META_DATA = "android.service.trust.trustagent";
-  }
-
-}
-
 package android.service.voice {
 
   public class AlwaysOnHotwordDetector {
diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java
index 20a0072..b84eca2 100644
--- a/core/java/android/app/admin/DevicePolicyManager.java
+++ b/core/java/android/app/admin/DevicePolicyManager.java
@@ -1568,7 +1568,7 @@
     public static final int KEYGUARD_DISABLE_UNREDACTED_NOTIFICATIONS = 1 << 3;
 
     /**
-     * Ignore {@link TrustAgentService} state on secure keyguard screens
+     * Ignore trust agent state on secure keyguard screens
      * (e.g. PIN/Pattern/Password).
      */
     public static final int KEYGUARD_DISABLE_TRUST_AGENTS = 1 << 4;
diff --git a/core/java/android/service/trust/TrustAgentService.java b/core/java/android/service/trust/TrustAgentService.java
index 333a892..61da85f 100644
--- a/core/java/android/service/trust/TrustAgentService.java
+++ b/core/java/android/service/trust/TrustAgentService.java
@@ -18,6 +18,7 @@
 
 import android.Manifest;
 import android.annotation.SdkConstant;
+import android.annotation.SystemApi;
 import android.app.Service;
 import android.app.admin.DevicePolicyManager;
 import android.content.ComponentName;
@@ -58,7 +59,10 @@
  * <pre>
  * &lt;trust-agent xmlns:android="http://schemas.android.com/apk/res/android"
  *          android:settingsActivity=".TrustAgentSettings" /></pre>
+ *
+ * @hide
  */
+@SystemApi
 public class TrustAgentService extends Service {
     private final String TAG = TrustAgentService.class.getSimpleName() +
             "[" + getClass().getSimpleName() + "]";
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index 6a7501d..97caf33 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -2730,9 +2730,10 @@
         android:label="@string/permlab_launch_trust_agent_settings"
         android:description="@string/permdesc_launch_trust_agent_settings" />
 
-    <!-- Must be required by an {@link
-         android.service.trust.TrustAgentService},
-         to ensure that only the system can bind to it. -->
+    <!-- @SystemApi Must be required by an {@link
+        android.service.trust.TrustAgentService},
+        to ensure that only the system can bind to it.
+        @hide -->
     <permission android:name="android.permission.BIND_TRUST_AGENT"
                 android:protectionLevel="signature"
                 android:label="@string/permlab_bind_trust_agent_service"
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index 19d58c7..82a75b53 100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -6563,18 +6563,19 @@
         <attr name="settingsActivity" />
     </declare-styleable>
 
-    <!-- Use <code>trust-agent</code> as the root tag of the XML resource that
+    <!-- @SystemApi Use <code>trust-agent</code> as the root tag of the XML resource that
          describes an {@link android.service.trust.TrustAgentService}, which is
          referenced from its {@link android.service.trust.TrustAgentService#TRUST_AGENT_META_DATA}
-         meta-data entry.  Described here are the attributes that can be included in that tag. -->
+         meta-data entry.  Described here are the attributes that can be included in that tag.
+         @hide -->
     <declare-styleable name="TrustAgent">
-        <!-- Component name of an activity that allows the user to modify
-             the settings for this trust agent. -->
+        <!-- @SystemApi Component name of an activity that allows the user to modify
+             the settings for this trust agent. @hide -->
         <attr name="settingsActivity" />
-        <!-- Title for a preference that allows that user to launch the
-             activity to modify trust agent settings. -->
+        <!-- @SystemApi Title for a preference that allows that user to launch the
+             activity to modify trust agent settings. @hide -->
         <attr name="title" />
-        <!-- Summary for the same preference as the title. -->
+        <!-- @SystemApi Summary for the same preference as the title. @hide -->
         <attr name="summary" />
     </declare-styleable>