diff options
Diffstat (limited to 'core/java/android/service/trust')
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(); } } |
