summaryrefslogtreecommitdiffstats
path: root/core/java/android/service/trust
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/service/trust')
-rw-r--r--core/java/android/service/trust/ITrustAgentService.aidl2
-rw-r--r--core/java/android/service/trust/ITrustAgentServiceCallback.aidl2
-rw-r--r--core/java/android/service/trust/TrustAgentService.java24
3 files changed, 22 insertions, 6 deletions
diff --git a/core/java/android/service/trust/ITrustAgentService.aidl b/core/java/android/service/trust/ITrustAgentService.aidl
index 49eb7be..637d080 100644
--- a/core/java/android/service/trust/ITrustAgentService.aidl
+++ b/core/java/android/service/trust/ITrustAgentService.aidl
@@ -25,5 +25,5 @@ import android.service.trust.ITrustAgentServiceCallback;
interface ITrustAgentService {
oneway void onUnlockAttempt(boolean successful);
oneway void setCallback(ITrustAgentServiceCallback callback);
- boolean setTrustAgentFeaturesEnabled(in Bundle options);
+ oneway void setTrustAgentFeaturesEnabled(in Bundle options, IBinder token);
}
diff --git a/core/java/android/service/trust/ITrustAgentServiceCallback.aidl b/core/java/android/service/trust/ITrustAgentServiceCallback.aidl
index 193ac59..b107bcc 100644
--- a/core/java/android/service/trust/ITrustAgentServiceCallback.aidl
+++ b/core/java/android/service/trust/ITrustAgentServiceCallback.aidl
@@ -16,6 +16,7 @@
package android.service.trust;
import android.os.Bundle;
+import android.os.IBinder;
import android.os.UserHandle;
/**
@@ -26,4 +27,5 @@ oneway interface ITrustAgentServiceCallback {
void grantTrust(CharSequence message, long durationMs, boolean initiatedByUser);
void revokeTrust();
void setManagingTrust(boolean managingTrust);
+ void onSetTrustAgentFeaturesEnabledCompleted(boolean result, IBinder token);
}
diff --git a/core/java/android/service/trust/TrustAgentService.java b/core/java/android/service/trust/TrustAgentService.java
index 2609fce..51f07ec 100644
--- a/core/java/android/service/trust/TrustAgentService.java
+++ b/core/java/android/service/trust/TrustAgentService.java
@@ -28,6 +28,7 @@ import android.content.pm.ServiceInfo;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
+import android.os.Message;
import android.os.RemoteException;
import android.util.Log;
import android.util.Slog;
@@ -94,6 +95,7 @@ public class TrustAgentService extends Service {
public static final String KEY_FEATURES = "trust_agent_features";
private static final int MSG_UNLOCK_ATTEMPT = 1;
+ private static final int MSG_SET_TRUST_AGENT_FEATURES_ENABLED = 2;
private ITrustAgentServiceCallback mCallback;
@@ -110,8 +112,20 @@ public class TrustAgentService extends Service {
case MSG_UNLOCK_ATTEMPT:
onUnlockAttempt(msg.arg1 != 0);
break;
+ case MSG_SET_TRUST_AGENT_FEATURES_ENABLED:
+ Bundle features = msg.peekData();
+ IBinder token = (IBinder) msg.obj;
+ boolean result = onSetTrustAgentFeaturesEnabled(features);
+ try {
+ synchronized (mLock) {
+ mCallback.onSetTrustAgentFeaturesEnabledCompleted(result, token);
+ }
+ } catch (RemoteException e) {
+ onError("calling onSetTrustAgentFeaturesEnabledCompleted()");
+ }
+ break;
}
- };
+ }
};
@Override
@@ -278,10 +292,10 @@ public class TrustAgentService extends Service {
}
@Override
- public boolean setTrustAgentFeaturesEnabled(Bundle features) {
- synchronized (mLock) {
- return onSetTrustAgentFeaturesEnabled(features);
- }
+ public void setTrustAgentFeaturesEnabled(Bundle features, IBinder token) {
+ Message msg = mHandler.obtainMessage(MSG_SET_TRUST_AGENT_FEATURES_ENABLED, token);
+ msg.setData(features);
+ msg.sendToTarget();
}
}