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

Commit 89098f76 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add an intdef for EventType passed into MediaRouterMetricLogger" into main

parents 3922d5a4 f1429f13
Loading
Loading
Loading
Loading
+21 −29
Original line number Diff line number Diff line
@@ -27,11 +27,11 @@ import static android.media.MediaRouter2Utils.getOriginalId;
import static android.media.MediaRouter2Utils.getProviderId;

import static com.android.internal.util.function.pooled.PooledLambda.obtainMessage;
import static com.android.server.media.MediaRouterStatsLog.MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_CREATE_SESSION;
import static com.android.server.media.MediaRouterStatsLog.MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_DESELECT_ROUTE;
import static com.android.server.media.MediaRouterStatsLog.MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_RELEASE_SESSION;
import static com.android.server.media.MediaRouterStatsLog.MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_SELECT_ROUTE;
import static com.android.server.media.MediaRouterStatsLog.MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_TRANSFER_TO_ROUTE;
import static com.android.server.media.MediaRouterMetricLogger.EVENT_TYPE_CREATE_SESSION;
import static com.android.server.media.MediaRouterMetricLogger.EVENT_TYPE_DESELECT_ROUTE;
import static com.android.server.media.MediaRouterMetricLogger.EVENT_TYPE_RELEASE_SESSION;
import static com.android.server.media.MediaRouterMetricLogger.EVENT_TYPE_SELECT_ROUTE;
import static com.android.server.media.MediaRouterMetricLogger.EVENT_TYPE_TRANSFER_TO_ROUTE;
import static com.android.server.media.MediaRouterStatsLog.MEDIA_ROUTER_EVENT_REPORTED__RESULT__RESULT_INVALID_COMMAND;
import static com.android.server.media.MediaRouterStatsLog.MEDIA_ROUTER_EVENT_REPORTED__RESULT__RESULT_INVALID_ROUTE_ID;
import static com.android.server.media.MediaRouterStatsLog.MEDIA_ROUTER_EVENT_REPORTED__RESULT__RESULT_INVALID_SESSION_ID;
@@ -1514,7 +1514,7 @@ class MediaRouter2ServiceImpl {

        if (routerRecord == null) {
            mMediaRouterMetricLogger.logOperationFailure(
                    MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_CREATE_SESSION,
                    EVENT_TYPE_CREATE_SESSION,
                    MEDIA_ROUTER_EVENT_REPORTED__RESULT__RESULT_ROUTER_RECORD_NOT_FOUND,
                    routingChangeInfo);
            return;
@@ -1537,7 +1537,7 @@ class MediaRouter2ServiceImpl {
            if (manager == null || manager.mLastSessionCreationRequest == null) {
                Slog.w(TAG, "requestCreateSessionWithRouter2Locked: Ignoring unknown request.");
                mMediaRouterMetricLogger.logOperationFailure(
                        MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_CREATE_SESSION,
                        EVENT_TYPE_CREATE_SESSION,
                        MEDIA_ROUTER_EVENT_REPORTED__RESULT__RESULT_MANAGER_RECORD_NOT_FOUND,
                        routingChangeInfo);
                routerRecord.notifySessionCreationFailed(requestId);
@@ -1550,7 +1550,7 @@ class MediaRouter2ServiceImpl {
                        "requestCreateSessionWithRouter2Locked: "
                                + "Ignoring unmatched routing session.");
                mMediaRouterMetricLogger.logOperationFailure(
                        MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_CREATE_SESSION,
                        EVENT_TYPE_CREATE_SESSION,
                        MEDIA_ROUTER_EVENT_REPORTED__RESULT__RESULT_INVALID_SESSION_ID,
                        routingChangeInfo);
                routerRecord.notifySessionCreationFailed(requestId);
@@ -1569,7 +1569,7 @@ class MediaRouter2ServiceImpl {
                            "requestCreateSessionWithRouter2Locked: "
                                    + "Ignoring unmatched route.");
                    mMediaRouterMetricLogger.logOperationFailure(
                            MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_CREATE_SESSION,
                            EVENT_TYPE_CREATE_SESSION,
                            MEDIA_ROUTER_EVENT_REPORTED__RESULT__RESULT_INVALID_ROUTE_ID,
                            routingChangeInfo);
                    routerRecord.notifySessionCreationFailed(requestId);
@@ -1584,7 +1584,7 @@ class MediaRouter2ServiceImpl {
                    && !TextUtils.equals(route.getId(), defaultRouteId)) {
                Slog.w(TAG, "MODIFY_AUDIO_ROUTING permission is required to transfer to" + route);
                mMediaRouterMetricLogger.logOperationFailure(
                        MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_CREATE_SESSION,
                        EVENT_TYPE_CREATE_SESSION,
                        MEDIA_ROUTER_EVENT_REPORTED__RESULT__RESULT_PERMISSION_DENIED,
                        routingChangeInfo);
                routerRecord.notifySessionCreationFailed(requestId);
@@ -1594,9 +1594,7 @@ class MediaRouter2ServiceImpl {

        long uniqueRequestId = toUniqueRequestId(routerRecord.mRouterId, requestId);
        mMediaRouterMetricLogger.addRequestInfo(
                uniqueRequestId,
                MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_CREATE_SESSION,
                routingChangeInfo);
                uniqueRequestId, EVENT_TYPE_CREATE_SESSION, routingChangeInfo);
        mMediaRouterMetricLogger.notifyRoutingChangeRequested(uniqueRequestId, routingChangeInfo);
        userHandler.sendMessage(
                obtainMessage(
@@ -1621,7 +1619,7 @@ class MediaRouter2ServiceImpl {

        if (routerRecord == null) {
            mMediaRouterMetricLogger.logOperationFailure(
                    MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_SELECT_ROUTE,
                    EVENT_TYPE_SELECT_ROUTE,
                    MEDIA_ROUTER_EVENT_REPORTED__RESULT__RESULT_ROUTER_RECORD_NOT_FOUND,
                    routingChangeInfo);
            return;
@@ -1633,7 +1631,7 @@ class MediaRouter2ServiceImpl {
                        "selectRouteWithRouter2 | router: %s(id: %d), route: %s",
                        routerRecord.mPackageName, routerRecord.mRouterId, route.getId()));
        mMediaRouterMetricLogger.logOperationTriggered(
                MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_SELECT_ROUTE,
                EVENT_TYPE_SELECT_ROUTE,
                MEDIA_ROUTER_EVENT_REPORTED__RESULT__RESULT_UNSPECIFIED,
                routingChangeInfo);

@@ -1654,7 +1652,7 @@ class MediaRouter2ServiceImpl {

        if (routerRecord == null) {
            mMediaRouterMetricLogger.logOperationFailure(
                    MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_DESELECT_ROUTE,
                    EVENT_TYPE_DESELECT_ROUTE,
                    MEDIA_ROUTER_EVENT_REPORTED__RESULT__RESULT_ROUTER_RECORD_NOT_FOUND,
                    routingChangeInfo);
            return;
@@ -1666,7 +1664,7 @@ class MediaRouter2ServiceImpl {
                        "deselectRouteWithRouter2 | router: %s(id: %d), route: %s",
                        routerRecord.mPackageName, routerRecord.mRouterId, route.getId()));
        mMediaRouterMetricLogger.logOperationTriggered(
                MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_DESELECT_ROUTE,
                EVENT_TYPE_DESELECT_ROUTE,
                MEDIA_ROUTER_EVENT_REPORTED__RESULT__RESULT_UNSPECIFIED,
                routingChangeInfo);

@@ -1688,7 +1686,7 @@ class MediaRouter2ServiceImpl {

        if (routerRecord == null) {
            mMediaRouterMetricLogger.logOperationFailure(
                    MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_TRANSFER_TO_ROUTE,
                    EVENT_TYPE_TRANSFER_TO_ROUTE,
                    MEDIA_ROUTER_EVENT_REPORTED__RESULT__RESULT_ROUTER_RECORD_NOT_FOUND,
                    routingChangeInfo);
            return;
@@ -1700,7 +1698,7 @@ class MediaRouter2ServiceImpl {
                        "transferToRouteWithRouter2 | router: %s(id: %d), route: %s",
                        routerRecord.mPackageName, routerRecord.mRouterId, route.getId()));
        mMediaRouterMetricLogger.logOperationTriggered(
                MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_TRANSFER_TO_ROUTE,
                EVENT_TYPE_TRANSFER_TO_ROUTE,
                MEDIA_ROUTER_EVENT_REPORTED__RESULT__RESULT_UNSPECIFIED,
                routingChangeInfo);

@@ -1763,7 +1761,7 @@ class MediaRouter2ServiceImpl {

        if (routerRecord == null) {
            mMediaRouterMetricLogger.logOperationFailure(
                    MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_RELEASE_SESSION,
                    EVENT_TYPE_RELEASE_SESSION,
                    MEDIA_ROUTER_EVENT_REPORTED__RESULT__RESULT_ROUTER_RECORD_NOT_FOUND,
                    /* routingChangeInfo= */ null);
            return;
@@ -2105,9 +2103,7 @@ class MediaRouter2ServiceImpl {

        long uniqueRequestId = toUniqueRequestId(managerRecord.mManagerId, requestId);
        mMediaRouterMetricLogger.addRequestInfo(
                uniqueRequestId,
                MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_SELECT_ROUTE,
                routingChangeInfo);
                uniqueRequestId, EVENT_TYPE_SELECT_ROUTE, routingChangeInfo);

        managerRecord.mUserRecord.mHandler.sendMessage(
                obtainMessage(UserHandler::selectRouteOnHandler,
@@ -2139,9 +2135,7 @@ class MediaRouter2ServiceImpl {

        long uniqueRequestId = toUniqueRequestId(managerRecord.mManagerId, requestId);
        mMediaRouterMetricLogger.addRequestInfo(
                uniqueRequestId,
                MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_DESELECT_ROUTE,
                routingChangeInfo);
                uniqueRequestId, EVENT_TYPE_DESELECT_ROUTE, routingChangeInfo);

        managerRecord.mUserRecord.mHandler.sendMessage(
                obtainMessage(UserHandler::deselectRouteOnHandler,
@@ -2176,9 +2170,7 @@ class MediaRouter2ServiceImpl {

        long uniqueRequestId = toUniqueRequestId(managerRecord.mManagerId, requestId);
        mMediaRouterMetricLogger.addRequestInfo(
                uniqueRequestId,
                MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_TRANSFER_TO_ROUTE,
                routingChangeInfo);
                uniqueRequestId, EVENT_TYPE_TRANSFER_TO_ROUTE, routingChangeInfo);

        managerRecord.mUserRecord.mHandler.sendMessage(
                obtainMessage(
+91 −14
Original line number Diff line number Diff line
@@ -26,8 +26,15 @@ import static android.media.RoutingSessionInfo.TRANSFER_REASON_APP;
import static android.media.RoutingSessionInfo.TRANSFER_REASON_FALLBACK;
import static android.media.RoutingSessionInfo.TRANSFER_REASON_SYSTEM_REQUEST;

import static com.android.server.media.MediaRouterStatsLog.MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_CREATE_SESSION;
import static com.android.server.media.MediaRouterStatsLog.MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_CREATE_SYSTEM_ROUTING_SESSION;
import static com.android.server.media.MediaRouterStatsLog.MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_DESELECT_ROUTE;
import static com.android.server.media.MediaRouterStatsLog.MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_RELEASE_SESSION;
import static com.android.server.media.MediaRouterStatsLog.MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_SCANNING_STARTED;
import static com.android.server.media.MediaRouterStatsLog.MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_SCANNING_STOPPED;
import static com.android.server.media.MediaRouterStatsLog.MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_SELECT_ROUTE;
import static com.android.server.media.MediaRouterStatsLog.MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_TRANSFER_TO_ROUTE;
import static com.android.server.media.MediaRouterStatsLog.MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_UNSPECIFIED;
import static com.android.server.media.MediaRouterStatsLog.MEDIA_ROUTER_EVENT_REPORTED__RESULT__RESULT_FAILED_TO_REROUTE_SYSTEM_MEDIA;
import static com.android.server.media.MediaRouterStatsLog.MEDIA_ROUTER_EVENT_REPORTED__RESULT__RESULT_INVALID_COMMAND;
import static com.android.server.media.MediaRouterStatsLog.MEDIA_ROUTER_EVENT_REPORTED__RESULT__RESULT_NETWORK_ERROR;
@@ -47,6 +54,7 @@ import static com.android.server.media.MediaRouterStatsLog.ROUTING_CHANGE_REPORT
import static com.android.server.media.MediaRouterStatsLog.ROUTING_CHANGE_REPORTED__TRANSFER_REASON__TRANSFER_REASON_SYSTEM_REQUEST;
import static com.android.server.media.MediaRouterStatsLog.ROUTING_CHANGE_REPORTED__TRANSFER_REASON__TRANSFER_REASON_UNSPECIFIED;

import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.media.MediaRoute2ProviderService;
@@ -64,6 +72,8 @@ import android.util.Slog;
import com.android.internal.annotations.VisibleForTesting;

import java.io.PrintWriter;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

/**
 * Logs metrics for MediaRouter2.
@@ -71,6 +81,32 @@ import java.io.PrintWriter;
 * @hide
 */
final class MediaRouterMetricLogger {
    public static final int EVENT_TYPE_UNSPECIFIED = 0;
    public static final int EVENT_TYPE_CREATE_SESSION = 1;
    public static final int EVENT_TYPE_CREATE_SYSTEM_ROUTING_SESSION = 2;
    public static final int EVENT_TYPE_RELEASE_SESSION = 3;
    public static final int EVENT_TYPE_SELECT_ROUTE = 4;
    public static final int EVENT_TYPE_DESELECT_ROUTE = 5;
    public static final int EVENT_TYPE_TRANSFER_TO_ROUTE = 6;
    public static final int EVENT_TYPE_SCANNING_STARTED = 7;
    public static final int EVENT_TYPE_SCANNING_STOPPED = 8;

    @IntDef(
            prefix = "EVENT_TYPE",
            value = {
                    EVENT_TYPE_UNSPECIFIED,
                    EVENT_TYPE_CREATE_SESSION,
                    EVENT_TYPE_CREATE_SYSTEM_ROUTING_SESSION,
                    EVENT_TYPE_RELEASE_SESSION,
                    EVENT_TYPE_SELECT_ROUTE,
                    EVENT_TYPE_DESELECT_ROUTE,
                    EVENT_TYPE_TRANSFER_TO_ROUTE,
                    EVENT_TYPE_SCANNING_STARTED,
                    EVENT_TYPE_SCANNING_STOPPED
            })
    @Retention(RetentionPolicy.SOURCE)
    public @interface EventType {}

    private static final String TAG = "MediaRouterMetricLogger";
    private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
    private static final int REQUEST_INFO_CACHE_CAPACITY = 100;
@@ -138,10 +174,11 @@ final class MediaRouterMetricLogger {
     * Adds a new request info to the cache.
     *
     * @param uniqueRequestId The unique request id.
     * @param eventType The event type.
     * @param eventType The routing event type.
     * @param routingChangeInfo The routing change request information.
     */
    public void addRequestInfo(
            long uniqueRequestId, int eventType, RoutingChangeInfo routingChangeInfo) {
            long uniqueRequestId, @EventType int eventType, RoutingChangeInfo routingChangeInfo) {
        RequestInfo requestInfo = new RequestInfo(uniqueRequestId, eventType, routingChangeInfo);
        mRequestInfoCache.put(requestInfo.mUniqueRequestId, requestInfo);
    }
@@ -159,21 +196,24 @@ final class MediaRouterMetricLogger {
    /**
     * Logs an operation failure.
     *
     * @param eventType The event type.
     * @param eventType The routing event type.
     * @param result The result of the operation.
     * @param routingChangeInfo The routing change request information.
     */
    public void logOperationFailure(
            int eventType, int result, RoutingChangeInfo routingChangeInfo) {
            @EventType int eventType, int result, RoutingChangeInfo routingChangeInfo) {
        logMediaRouterEvent(eventType, result, routingChangeInfo);
    }

    /**
     * Logs an operation triggered.
     *
     * @param eventType The event type.
     * @param eventType The routing event type.
     * @param result The result of the operation.
     * @param routingChangeInfo The routing change request information.
     */
    public void logOperationTriggered(
            int eventType, int result, RoutingChangeInfo routingChangeInfo) {
            @EventType int eventType, int result, RoutingChangeInfo routingChangeInfo) {
        logMediaRouterEvent(eventType, result, routingChangeInfo);
    }

@@ -193,7 +233,7 @@ final class MediaRouterMetricLogger {
            return;
        }

        int eventType = requestInfo.mEventType;
        @EventType int eventType = requestInfo.mEventType;
        logMediaRouterEvent(eventType, result, requestInfo.mRoutingChangeInfo);

        removeRequestInfo(uniqueRequestId);
@@ -384,6 +424,39 @@ final class MediaRouterMetricLogger {
        };
    }

    /**
     * Converts {@link EventType} to the enum defined for logging.
     *
     * @param eventType the routing event type.
     * @return the event type as per the enum defined for logging.
     */
    @VisibleForTesting
    /* package */ static int convertEventTypeForLogging(@EventType int eventType) {
        return switch (eventType) {
            case EVENT_TYPE_UNSPECIFIED ->
                    MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_UNSPECIFIED;
            case EVENT_TYPE_CREATE_SESSION ->
                    MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_CREATE_SESSION;
            case EVENT_TYPE_CREATE_SYSTEM_ROUTING_SESSION ->
                    MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_CREATE_SYSTEM_ROUTING_SESSION;
            case EVENT_TYPE_RELEASE_SESSION ->
                    MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_RELEASE_SESSION;
            case EVENT_TYPE_SELECT_ROUTE ->
                    MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_SELECT_ROUTE;
            case EVENT_TYPE_DESELECT_ROUTE ->
                    MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_DESELECT_ROUTE;
            case EVENT_TYPE_TRANSFER_TO_ROUTE ->
                    MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_TRANSFER_TO_ROUTE;
            case EVENT_TYPE_SCANNING_STARTED ->
                    MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_SCANNING_STARTED;
            case EVENT_TYPE_SCANNING_STOPPED ->
                    MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_SCANNING_STOPPED;
            default ->
                    throw new IllegalArgumentException(
                            "No mapping found for the given event type: " + eventType);
        };
    }

    @VisibleForTesting
    /* package */ int getRequestInfoCacheCapacity() {
        return mRequestInfoCache.maxSize();
@@ -415,7 +488,7 @@ final class MediaRouterMetricLogger {
    }

    private void logMediaRouterEvent(
            int eventType, int result, RoutingChangeInfo routingChangeInfo) {
            @EventType int eventType, int result, RoutingChangeInfo routingChangeInfo) {
        int entryPoint =
                routingChangeInfo != null
                        ? convertEntryPointForLogging(routingChangeInfo.getEntryPoint())
@@ -423,7 +496,7 @@ final class MediaRouterMetricLogger {
        boolean isSuggested = routingChangeInfo != null && routingChangeInfo.isSuggested();
        MediaRouterStatsLog.write(
                MediaRouterStatsLog.MEDIA_ROUTER_EVENT_REPORTED,
                eventType,
                convertEventTypeForLogging(eventType),
                result,
                entryPoint,
                isSuggested);
@@ -436,7 +509,7 @@ final class MediaRouterMetricLogger {
    /** Logs the scanning started event. */
    private void logScanningStarted() {
        logMediaRouterEvent(
                MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_SCANNING_STARTED,
                EVENT_TYPE_SCANNING_STARTED,
                MEDIA_ROUTER_EVENT_REPORTED__RESULT__RESULT_UNSPECIFIED,
                /* routingChangeInfo= */ null);
    }
@@ -444,7 +517,7 @@ final class MediaRouterMetricLogger {
    /** Logs the scanning stopped event. */
    private void logScanningStopped() {
        logMediaRouterEvent(
                MEDIA_ROUTER_EVENT_REPORTED__EVENT_TYPE__EVENT_TYPE_SCANNING_STOPPED,
                EVENT_TYPE_SCANNING_STOPPED,
                MEDIA_ROUTER_EVENT_REPORTED__RESULT__RESULT_UNSPECIFIED,
                /* routingChangeInfo= */ null);
    }
@@ -460,16 +533,20 @@ final class MediaRouterMetricLogger {
    /** Class to store request info. */
    static class RequestInfo {
        public final long mUniqueRequestId;
        public final int mEventType;
        public final @EventType int mEventType;
        public final RoutingChangeInfo mRoutingChangeInfo;

        /**
         * Constructor for {@link RequestInfo}.
         *
         * @param uniqueRequestId The unique request id.
         * @param eventType The event type.
         * @param eventType The routing event type.
         * @param routingChangeInfo The routing change request information.
         */
        RequestInfo(long uniqueRequestId, int eventType, RoutingChangeInfo routingChangeInfo) {
        RequestInfo(
                long uniqueRequestId,
                @EventType int eventType,
                RoutingChangeInfo routingChangeInfo) {
            mUniqueRequestId = uniqueRequestId;
            mEventType = eventType;
            mRoutingChangeInfo = routingChangeInfo;
+65 −14

File changed.

Preview size limit exceeded, changes collapsed.