summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/service/gatekeeper/GateKeeperResponse.java48
1 files changed, 28 insertions, 20 deletions
diff --git a/core/java/android/service/gatekeeper/GateKeeperResponse.java b/core/java/android/service/gatekeeper/GateKeeperResponse.java
index a512957d6040..287dc76a9b01 100644
--- a/core/java/android/service/gatekeeper/GateKeeperResponse.java
+++ b/core/java/android/service/gatekeeper/GateKeeperResponse.java
@@ -19,6 +19,8 @@ package android.service.gatekeeper;
import android.os.Parcel;
import android.os.Parcelable;
+import com.android.internal.annotations.VisibleForTesting;
+
/**
* Response object for a GateKeeper verification request.
* @hide
@@ -35,12 +37,28 @@ public final class GateKeeperResponse implements Parcelable {
private byte[] mPayload;
private boolean mShouldReEnroll;
+ /** Default constructor for response with generic response code **/
private GateKeeperResponse(int responseCode) {
mResponseCode = responseCode;
}
- private GateKeeperResponse(int responseCode, int timeout) {
- mResponseCode = responseCode;
+ @VisibleForTesting
+ public static GateKeeperResponse createGenericResponse(int responseCode) {
+ return new GateKeeperResponse(responseCode);
+ }
+
+ private static GateKeeperResponse createRetryResponse(int timeout) {
+ GateKeeperResponse response = new GateKeeperResponse(RESPONSE_RETRY);
+ response.mTimeout = timeout;
+ return response;
+ }
+
+ @VisibleForTesting
+ public static GateKeeperResponse createOkResponse(byte[] payload, boolean shouldReEnroll) {
+ GateKeeperResponse response = new GateKeeperResponse(RESPONSE_OK);
+ response.mPayload = payload;
+ response.mShouldReEnroll = shouldReEnroll;
+ return response;
}
@Override
@@ -53,17 +71,20 @@ public final class GateKeeperResponse implements Parcelable {
@Override
public GateKeeperResponse createFromParcel(Parcel source) {
int responseCode = source.readInt();
- GateKeeperResponse response = new GateKeeperResponse(responseCode);
+ final GateKeeperResponse response;
if (responseCode == RESPONSE_RETRY) {
- response.setTimeout(source.readInt());
+ response = createRetryResponse(source.readInt());
} else if (responseCode == RESPONSE_OK) {
- response.setShouldReEnroll(source.readInt() == 1);
+ final boolean shouldReEnroll = source.readInt() == 1;
+ byte[] payload = null;
int size = source.readInt();
if (size > 0) {
- byte[] payload = new byte[size];
+ payload = new byte[size];
source.readByteArray(payload);
- response.setPayload(payload);
}
+ response = createOkResponse(payload, shouldReEnroll);
+ } else {
+ response = createGenericResponse(responseCode);
}
return response;
}
@@ -104,17 +125,4 @@ public final class GateKeeperResponse implements Parcelable {
public int getResponseCode() {
return mResponseCode;
}
-
- private void setTimeout(int timeout) {
- mTimeout = timeout;
- }
-
- private void setShouldReEnroll(boolean shouldReEnroll) {
- mShouldReEnroll = shouldReEnroll;
- }
-
- private void setPayload(byte[] payload) {
- mPayload = payload;
- }
-
}