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

Commit f1429f13 authored by tanaykhemani's avatar tanaykhemani
Browse files

Add an intdef for EventType passed into MediaRouterMetricLogger

Test: atest MediaRouterMetricLoggerTest
Bug: 439779238
Flag: EXEMPT refactor only change
Change-Id: I4fadb10fb6fb7b9b29d94fcc453cb3ee4ccfa989
parent ba54d011
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;
@@ -1512,7 +1512,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;
@@ -1535,7 +1535,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);
@@ -1548,7 +1548,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);
@@ -1567,7 +1567,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);
@@ -1582,7 +1582,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);
@@ -1592,9 +1592,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(
@@ -1619,7 +1617,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;
@@ -1631,7 +1629,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);

@@ -1652,7 +1650,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;
@@ -1664,7 +1662,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);

@@ -1686,7 +1684,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;
@@ -1698,7 +1696,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);

@@ -1761,7 +1759,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;
@@ -2103,9 +2101,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,
@@ -2137,9 +2133,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,
@@ -2174,9 +2168,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.