Merge "Generating Provider Status Enum Consistently" into udc-dev
This commit is contained in:
@@ -31,6 +31,7 @@ import android.util.Log;
|
||||
|
||||
import com.android.server.credentials.metrics.ApiName;
|
||||
import com.android.server.credentials.metrics.ApiStatus;
|
||||
import com.android.server.credentials.metrics.ProviderStatusForMetrics;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
@@ -120,22 +121,22 @@ public final class ClearRequestSession extends RequestSession<ClearCredentialSta
|
||||
Log.i(TAG, "respondToClientWithResponseAndFinish");
|
||||
if (isSessionCancelled()) {
|
||||
mChosenProviderMetric.setChosenProviderStatus(
|
||||
MetricUtilities.METRICS_PROVIDER_STATUS_FINAL_SUCCESS);
|
||||
ProviderStatusForMetrics.FINAL_SUCCESS.getMetricCode());
|
||||
logApiCall(ApiName.CLEAR_CREDENTIAL, /* apiStatus */
|
||||
ApiStatus.METRICS_API_STATUS_CLIENT_CANCELED);
|
||||
ApiStatus.CLIENT_CANCELED);
|
||||
finishSession(/*propagateCancellation=*/true);
|
||||
return;
|
||||
}
|
||||
try {
|
||||
mClientCallback.onSuccess();
|
||||
logApiCall(ApiName.CLEAR_CREDENTIAL, /* apiStatus */
|
||||
ApiStatus.METRICS_API_STATUS_SUCCESS);
|
||||
ApiStatus.SUCCESS);
|
||||
} catch (RemoteException e) {
|
||||
mChosenProviderMetric.setChosenProviderStatus(
|
||||
MetricUtilities.METRICS_PROVIDER_STATUS_FINAL_FAILURE);
|
||||
ProviderStatusForMetrics.FINAL_FAILURE.getMetricCode());
|
||||
Log.i(TAG, "Issue while propagating the response to the client");
|
||||
logApiCall(ApiName.CLEAR_CREDENTIAL, /* apiStatus */
|
||||
ApiStatus.METRICS_API_STATUS_FAILURE);
|
||||
ApiStatus.FAILURE);
|
||||
}
|
||||
finishSession(/*propagateCancellation=*/false);
|
||||
}
|
||||
@@ -144,7 +145,7 @@ public final class ClearRequestSession extends RequestSession<ClearCredentialSta
|
||||
Log.i(TAG, "respondToClientWithErrorAndFinish");
|
||||
if (isSessionCancelled()) {
|
||||
logApiCall(ApiName.CLEAR_CREDENTIAL, /* apiStatus */
|
||||
ApiStatus.METRICS_API_STATUS_CLIENT_CANCELED);
|
||||
ApiStatus.CLIENT_CANCELED);
|
||||
finishSession(/*propagateCancellation=*/true);
|
||||
return;
|
||||
}
|
||||
@@ -154,7 +155,7 @@ public final class ClearRequestSession extends RequestSession<ClearCredentialSta
|
||||
e.printStackTrace();
|
||||
}
|
||||
logApiCall(ApiName.CLEAR_CREDENTIAL, /* apiStatus */
|
||||
ApiStatus.METRICS_API_STATUS_FAILURE);
|
||||
ApiStatus.FAILURE);
|
||||
finishSession(/*propagateCancellation=*/false);
|
||||
}
|
||||
|
||||
|
||||
@@ -16,9 +16,6 @@
|
||||
|
||||
package com.android.server.credentials;
|
||||
|
||||
import static com.android.server.credentials.MetricUtilities.METRICS_PROVIDER_STATUS_FINAL_FAILURE;
|
||||
import static com.android.server.credentials.MetricUtilities.METRICS_PROVIDER_STATUS_FINAL_SUCCESS;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.content.ComponentName;
|
||||
@@ -38,6 +35,7 @@ import android.util.Log;
|
||||
|
||||
import com.android.server.credentials.metrics.ApiName;
|
||||
import com.android.server.credentials.metrics.ApiStatus;
|
||||
import com.android.server.credentials.metrics.ProviderStatusForMetrics;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
@@ -103,11 +101,11 @@ public final class CreateRequestSession extends RequestSession<CreateCredentialR
|
||||
setChosenMetric(componentName);
|
||||
if (response != null) {
|
||||
mChosenProviderMetric.setChosenProviderStatus(
|
||||
METRICS_PROVIDER_STATUS_FINAL_SUCCESS);
|
||||
ProviderStatusForMetrics.FINAL_SUCCESS.getMetricCode());
|
||||
respondToClientWithResponseAndFinish(response);
|
||||
} else {
|
||||
mChosenProviderMetric.setChosenProviderStatus(
|
||||
METRICS_PROVIDER_STATUS_FINAL_FAILURE);
|
||||
ProviderStatusForMetrics.FINAL_FAILURE.getMetricCode());
|
||||
respondToClientWithErrorAndFinish(CreateCredentialException.TYPE_NO_CREATE_OPTIONS,
|
||||
"Invalid response");
|
||||
}
|
||||
@@ -144,18 +142,18 @@ public final class CreateRequestSession extends RequestSession<CreateCredentialR
|
||||
}
|
||||
if (isSessionCancelled()) {
|
||||
logApiCall(ApiName.CREATE_CREDENTIAL, /* apiStatus */
|
||||
ApiStatus.METRICS_API_STATUS_CLIENT_CANCELED);
|
||||
ApiStatus.CLIENT_CANCELED);
|
||||
finishSession(/*propagateCancellation=*/true);
|
||||
return;
|
||||
}
|
||||
try {
|
||||
mClientCallback.onResponse(response);
|
||||
logApiCall(ApiName.CREATE_CREDENTIAL, /* apiStatus */
|
||||
ApiStatus.METRICS_API_STATUS_SUCCESS);
|
||||
ApiStatus.SUCCESS);
|
||||
} catch (RemoteException e) {
|
||||
Log.i(TAG, "Issue while responding to client: " + e.getMessage());
|
||||
logApiCall(ApiName.CREATE_CREDENTIAL, /* apiStatus */
|
||||
ApiStatus.METRICS_API_STATUS_FAILURE);
|
||||
ApiStatus.FAILURE);
|
||||
}
|
||||
finishSession(/*propagateCancellation=*/false);
|
||||
}
|
||||
@@ -168,7 +166,7 @@ public final class CreateRequestSession extends RequestSession<CreateCredentialR
|
||||
}
|
||||
if (isSessionCancelled()) {
|
||||
logApiCall(ApiName.CREATE_CREDENTIAL, /* apiStatus */
|
||||
ApiStatus.METRICS_API_STATUS_CLIENT_CANCELED);
|
||||
ApiStatus.CLIENT_CANCELED);
|
||||
finishSession(/*propagateCancellation=*/true);
|
||||
return;
|
||||
}
|
||||
@@ -184,10 +182,10 @@ public final class CreateRequestSession extends RequestSession<CreateCredentialR
|
||||
private void logFailureOrUserCancel(String errorType) {
|
||||
if (CreateCredentialException.TYPE_USER_CANCELED.equals(errorType)) {
|
||||
logApiCall(ApiName.CREATE_CREDENTIAL,
|
||||
/* apiStatus */ ApiStatus.METRICS_API_STATUS_USER_CANCELED);
|
||||
/* apiStatus */ ApiStatus.USER_CANCELED);
|
||||
} else {
|
||||
logApiCall(ApiName.CREATE_CREDENTIAL,
|
||||
/* apiStatus */ ApiStatus.METRICS_API_STATUS_FAILURE);
|
||||
/* apiStatus */ ApiStatus.FAILURE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -659,7 +659,7 @@ public final class CredentialManagerService
|
||||
// The component name and the package name do not match.
|
||||
MetricUtilities.logApiCalled(
|
||||
ApiName.IS_ENABLED_CREDENTIAL_PROVIDER_SERVICE,
|
||||
ApiStatus.METRICS_API_STATUS_FAILURE, callingUid);
|
||||
ApiStatus.FAILURE, callingUid);
|
||||
Log.w(
|
||||
TAG,
|
||||
"isEnabledCredentialProviderService: Component name does not"
|
||||
@@ -667,7 +667,7 @@ public final class CredentialManagerService
|
||||
return false;
|
||||
}
|
||||
MetricUtilities.logApiCalled(ApiName.IS_ENABLED_CREDENTIAL_PROVIDER_SERVICE,
|
||||
ApiStatus.METRICS_API_STATUS_SUCCESS, callingUid);
|
||||
ApiStatus.SUCCESS, callingUid);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,9 +16,6 @@
|
||||
|
||||
package com.android.server.credentials;
|
||||
|
||||
import static com.android.server.credentials.MetricUtilities.METRICS_PROVIDER_STATUS_FINAL_FAILURE;
|
||||
import static com.android.server.credentials.MetricUtilities.METRICS_PROVIDER_STATUS_FINAL_SUCCESS;
|
||||
|
||||
import android.annotation.Nullable;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
@@ -36,6 +33,7 @@ import android.util.Log;
|
||||
|
||||
import com.android.server.credentials.metrics.ApiName;
|
||||
import com.android.server.credentials.metrics.ApiStatus;
|
||||
import com.android.server.credentials.metrics.ProviderStatusForMetrics;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
@@ -95,11 +93,11 @@ public final class GetRequestSession extends RequestSession<GetCredentialRequest
|
||||
setChosenMetric(componentName);
|
||||
if (response != null) {
|
||||
mChosenProviderMetric.setChosenProviderStatus(
|
||||
METRICS_PROVIDER_STATUS_FINAL_SUCCESS);
|
||||
ProviderStatusForMetrics.FINAL_SUCCESS.getMetricCode());
|
||||
respondToClientWithResponseAndFinish(response);
|
||||
} else {
|
||||
mChosenProviderMetric.setChosenProviderStatus(
|
||||
METRICS_PROVIDER_STATUS_FINAL_FAILURE);
|
||||
ProviderStatusForMetrics.FINAL_FAILURE.getMetricCode());
|
||||
respondToClientWithErrorAndFinish(GetCredentialException.TYPE_NO_CREDENTIAL,
|
||||
"Invalid response from provider");
|
||||
}
|
||||
@@ -120,18 +118,18 @@ public final class GetRequestSession extends RequestSession<GetCredentialRequest
|
||||
}
|
||||
if (isSessionCancelled()) {
|
||||
logApiCall(ApiName.GET_CREDENTIAL, /* apiStatus */
|
||||
ApiStatus.METRICS_API_STATUS_CLIENT_CANCELED);
|
||||
ApiStatus.CLIENT_CANCELED);
|
||||
finishSession(/*propagateCancellation=*/true);
|
||||
return;
|
||||
}
|
||||
try {
|
||||
mClientCallback.onResponse(response);
|
||||
logApiCall(ApiName.GET_CREDENTIAL, /* apiStatus */
|
||||
ApiStatus.METRICS_API_STATUS_SUCCESS);
|
||||
ApiStatus.SUCCESS);
|
||||
} catch (RemoteException e) {
|
||||
Log.i(TAG, "Issue while responding to client with a response : " + e.getMessage());
|
||||
logApiCall(ApiName.GET_CREDENTIAL, /* apiStatus */
|
||||
ApiStatus.METRICS_API_STATUS_FAILURE);
|
||||
ApiStatus.FAILURE);
|
||||
}
|
||||
finishSession(/*propagateCancellation=*/false);
|
||||
}
|
||||
@@ -143,7 +141,7 @@ public final class GetRequestSession extends RequestSession<GetCredentialRequest
|
||||
}
|
||||
if (isSessionCancelled()) {
|
||||
logApiCall(ApiName.GET_CREDENTIAL, /* apiStatus */
|
||||
ApiStatus.METRICS_API_STATUS_CLIENT_CANCELED);
|
||||
ApiStatus.CLIENT_CANCELED);
|
||||
finishSession(/*propagateCancellation=*/true);
|
||||
return;
|
||||
}
|
||||
@@ -160,10 +158,10 @@ public final class GetRequestSession extends RequestSession<GetCredentialRequest
|
||||
private void logFailureOrUserCancel(String errorType) {
|
||||
if (GetCredentialException.TYPE_USER_CANCELED.equals(errorType)) {
|
||||
logApiCall(ApiName.GET_CREDENTIAL,
|
||||
/* apiStatus */ ApiStatus.METRICS_API_STATUS_USER_CANCELED);
|
||||
/* apiStatus */ ApiStatus.USER_CANCELED);
|
||||
} else {
|
||||
logApiCall(ApiName.GET_CREDENTIAL,
|
||||
/* apiStatus */ ApiStatus.METRICS_API_STATUS_FAILURE);
|
||||
/* apiStatus */ ApiStatus.FAILURE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,12 +16,6 @@
|
||||
|
||||
package com.android.server.credentials;
|
||||
|
||||
import static com.android.internal.util.FrameworkStatsLog.CREDENTIAL_MANAGER_API_CALLED__CANDIDATE_PROVIDER_STATUS__PROVIDER_FINAL_FAILURE;
|
||||
import static com.android.internal.util.FrameworkStatsLog.CREDENTIAL_MANAGER_API_CALLED__CANDIDATE_PROVIDER_STATUS__PROVIDER_FINAL_SUCCESS;
|
||||
import static com.android.internal.util.FrameworkStatsLog.CREDENTIAL_MANAGER_API_CALLED__CANDIDATE_PROVIDER_STATUS__PROVIDER_QUERY_FAILURE;
|
||||
import static com.android.internal.util.FrameworkStatsLog.CREDENTIAL_MANAGER_API_CALLED__CANDIDATE_PROVIDER_STATUS__PROVIDER_QUERY_SUCCESS;
|
||||
import static com.android.internal.util.FrameworkStatsLog.CREDENTIAL_MANAGER_API_CALLED__CANDIDATE_PROVIDER_STATUS__PROVIDER_UNKNOWN;
|
||||
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageManager;
|
||||
@@ -46,18 +40,6 @@ public class MetricUtilities {
|
||||
public static final int DEFAULT_INT_32 = -1;
|
||||
public static final int[] DEFAULT_REPEATED_INT_32 = new int[0];
|
||||
|
||||
// Metrics constants TODO(b/269290341) migrate to enums eventually to improve
|
||||
protected static final int METRICS_PROVIDER_STATUS_FINAL_FAILURE =
|
||||
CREDENTIAL_MANAGER_API_CALLED__CANDIDATE_PROVIDER_STATUS__PROVIDER_FINAL_FAILURE;
|
||||
protected static final int METRICS_PROVIDER_STATUS_QUERY_FAILURE =
|
||||
CREDENTIAL_MANAGER_API_CALLED__CANDIDATE_PROVIDER_STATUS__PROVIDER_QUERY_FAILURE;
|
||||
protected static final int METRICS_PROVIDER_STATUS_FINAL_SUCCESS =
|
||||
CREDENTIAL_MANAGER_API_CALLED__CANDIDATE_PROVIDER_STATUS__PROVIDER_FINAL_SUCCESS;
|
||||
protected static final int METRICS_PROVIDER_STATUS_QUERY_SUCCESS =
|
||||
CREDENTIAL_MANAGER_API_CALLED__CANDIDATE_PROVIDER_STATUS__PROVIDER_QUERY_SUCCESS;
|
||||
protected static final int METRICS_PROVIDER_STATUS_UNKNOWN =
|
||||
CREDENTIAL_MANAGER_API_CALLED__CANDIDATE_PROVIDER_STATUS__PROVIDER_UNKNOWN;
|
||||
|
||||
|
||||
/**
|
||||
* This retrieves the uid of any package name, given a context and a component name for the
|
||||
|
||||
@@ -16,9 +16,6 @@
|
||||
|
||||
package com.android.server.credentials;
|
||||
|
||||
import static com.android.server.credentials.MetricUtilities.METRICS_PROVIDER_STATUS_QUERY_FAILURE;
|
||||
import static com.android.server.credentials.MetricUtilities.METRICS_PROVIDER_STATUS_QUERY_SUCCESS;
|
||||
|
||||
import android.Manifest;
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
@@ -35,6 +32,7 @@ import android.service.credentials.CredentialProviderInfo;
|
||||
import android.util.Log;
|
||||
|
||||
import com.android.server.credentials.metrics.CandidateProviderMetric;
|
||||
import com.android.server.credentials.metrics.ProviderStatusForMetrics;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
@@ -205,9 +203,11 @@ public abstract class ProviderSession<T, R>
|
||||
mCandidateProviderMetric
|
||||
.setQueryFinishTimeNanoseconds(System.nanoTime());
|
||||
if (isTerminatingStatus(status)) {
|
||||
mCandidateProviderMetric.setProviderQueryStatus(METRICS_PROVIDER_STATUS_QUERY_FAILURE);
|
||||
mCandidateProviderMetric.setProviderQueryStatus(ProviderStatusForMetrics.QUERY_FAILURE
|
||||
.getMetricCode());
|
||||
} else if (isCompletionStatus(status)) {
|
||||
mCandidateProviderMetric.setProviderQueryStatus(METRICS_PROVIDER_STATUS_QUERY_SUCCESS);
|
||||
mCandidateProviderMetric.setProviderQueryStatus(ProviderStatusForMetrics.QUERY_SUCCESS
|
||||
.getMetricCode());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -22,11 +22,11 @@ import static com.android.internal.util.FrameworkStatsLog.CREDENTIAL_MANAGER_API
|
||||
import static com.android.internal.util.FrameworkStatsLog.CREDENTIAL_MANAGER_API_CALLED__API_STATUS__API_STATUS_USER_CANCELED;
|
||||
|
||||
public enum ApiStatus {
|
||||
METRICS_API_STATUS_SUCCESS(CREDENTIAL_MANAGER_API_CALLED__API_STATUS__API_STATUS_SUCCESS),
|
||||
METRICS_API_STATUS_FAILURE(CREDENTIAL_MANAGER_API_CALLED__API_STATUS__API_STATUS_FAILURE),
|
||||
METRICS_API_STATUS_CLIENT_CANCELED(
|
||||
SUCCESS(CREDENTIAL_MANAGER_API_CALLED__API_STATUS__API_STATUS_SUCCESS),
|
||||
FAILURE(CREDENTIAL_MANAGER_API_CALLED__API_STATUS__API_STATUS_FAILURE),
|
||||
CLIENT_CANCELED(
|
||||
CREDENTIAL_MANAGER_API_CALLED__API_STATUS__API_STATUS_CLIENT_CANCELED),
|
||||
METRICS_API_STATUS_USER_CANCELED(
|
||||
USER_CANCELED(
|
||||
CREDENTIAL_MANAGER_API_CALLED__API_STATUS__API_STATUS_USER_CANCELED);
|
||||
|
||||
private final int mInnerMetricCode;
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
/*
|
||||
* Copyright (C) 2023 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.server.credentials.metrics;
|
||||
|
||||
import static com.android.internal.util.FrameworkStatsLog.CREDENTIAL_MANAGER_API_CALLED__CANDIDATE_PROVIDER_STATUS__PROVIDER_FINAL_FAILURE;
|
||||
import static com.android.internal.util.FrameworkStatsLog.CREDENTIAL_MANAGER_API_CALLED__CANDIDATE_PROVIDER_STATUS__PROVIDER_FINAL_SUCCESS;
|
||||
import static com.android.internal.util.FrameworkStatsLog.CREDENTIAL_MANAGER_API_CALLED__CANDIDATE_PROVIDER_STATUS__PROVIDER_QUERY_FAILURE;
|
||||
import static com.android.internal.util.FrameworkStatsLog.CREDENTIAL_MANAGER_API_CALLED__CANDIDATE_PROVIDER_STATUS__PROVIDER_QUERY_SUCCESS;
|
||||
import static com.android.internal.util.FrameworkStatsLog.CREDENTIAL_MANAGER_API_CALLED__CANDIDATE_PROVIDER_STATUS__PROVIDER_UNKNOWN;
|
||||
|
||||
public enum ProviderStatusForMetrics {
|
||||
|
||||
UNKNOWN(
|
||||
CREDENTIAL_MANAGER_API_CALLED__CANDIDATE_PROVIDER_STATUS__PROVIDER_UNKNOWN),
|
||||
FINAL_FAILURE(
|
||||
CREDENTIAL_MANAGER_API_CALLED__CANDIDATE_PROVIDER_STATUS__PROVIDER_FINAL_FAILURE),
|
||||
QUERY_FAILURE(
|
||||
CREDENTIAL_MANAGER_API_CALLED__CANDIDATE_PROVIDER_STATUS__PROVIDER_QUERY_FAILURE),
|
||||
FINAL_SUCCESS(
|
||||
CREDENTIAL_MANAGER_API_CALLED__CANDIDATE_PROVIDER_STATUS__PROVIDER_FINAL_SUCCESS),
|
||||
QUERY_SUCCESS(
|
||||
CREDENTIAL_MANAGER_API_CALLED__CANDIDATE_PROVIDER_STATUS__PROVIDER_QUERY_SUCCESS);
|
||||
|
||||
private final int mInnerMetricCode;
|
||||
|
||||
ProviderStatusForMetrics(int innerMetricCode) {
|
||||
this.mInnerMetricCode = innerMetricCode;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gives the West-world version of the metric name.
|
||||
*
|
||||
* @return a code corresponding to the west world metric name
|
||||
*/
|
||||
public int getMetricCode() {
|
||||
return this.mInnerMetricCode;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user