Merge "Notify TrustAgentService when device policy configuration no longer applies"
diff --git a/core/java/android/service/trust/TrustAgentService.java b/core/java/android/service/trust/TrustAgentService.java
index 706b934..a3178e2 100644
--- a/core/java/android/service/trust/TrustAgentService.java
+++ b/core/java/android/service/trust/TrustAgentService.java
@@ -122,12 +122,14 @@
case MSG_CONFIGURE:
ConfigurationData data = (ConfigurationData) msg.obj;
boolean result = onConfigure(data.options);
- try {
- synchronized (mLock) {
- mCallback.onConfigureCompleted(result, data.token);
+ if (data.token != null) {
+ try {
+ synchronized (mLock) {
+ mCallback.onConfigureCompleted(result, data.token);
+ }
+ } catch (RemoteException e) {
+ onError("calling onSetTrustAgentFeaturesEnabledCompleted()");
}
- } catch (RemoteException e) {
- onError("calling onSetTrustAgentFeaturesEnabledCompleted()");
}
break;
case MSG_TRUST_TIMEOUT:
@@ -203,7 +205,7 @@
* PersistableBundle)}.
* <p>Agents that support configuration options should overload this method and return 'true'.
*
- * @param options bundle containing all options or null if none.
+ * @param options The aggregated list of options or an empty list if no restrictions apply.
* @return true if the {@link TrustAgentService} supports configuration options.
*/
public boolean onConfigure(List<PersistableBundle> options) {
diff --git a/services/core/java/com/android/server/trust/TrustAgentWrapper.java b/services/core/java/com/android/server/trust/TrustAgentWrapper.java
index 583cc6b..0109313 100644
--- a/services/core/java/com/android/server/trust/TrustAgentWrapper.java
+++ b/services/core/java/com/android/server/trust/TrustAgentWrapper.java
@@ -40,6 +40,7 @@
import android.service.trust.ITrustAgentService;
import android.service.trust.ITrustAgentServiceCallback;
+import java.util.Collections;
import java.util.List;
/**
@@ -359,6 +360,8 @@
mSetTrustAgentFeaturesToken = new Binder();
mTrustAgentService.onConfigure(config, mSetTrustAgentFeaturesToken);
}
+ } else {
+ mTrustAgentService.onConfigure(Collections.EMPTY_LIST, null);
}
final long maxTimeToLock = dpm.getMaximumTimeToLock(null);
if (maxTimeToLock != mMaximumTimeToLock) {