Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f73e42c4 authored by Arpan Kaphle's avatar Arpan Kaphle
Browse files

Generating Provider Status Enum Consistently

In alignment with how we are treating our metric enums, we are generating
local objects with shorter names for ease of use through the codebase.
This adds support for the MetricProviderStatus and makes other minor
changes to the existing Enums.

Bug: 269290341
Test: Will be chained in, builds for now
Change-Id: If3a9f6d657d4a7493f3834455195b0f60a0aafba
parent 28345b49
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -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);
    }

+9 −11
Original line number Diff line number Diff line
@@ -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);
        }
    }

+2 −2
Original line number Diff line number Diff line
@@ -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;
                    }
                }
+9 −11
Original line number Diff line number Diff line
@@ -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);
        }
    }

+0 −18
Original line number Diff line number Diff line
@@ -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
Loading