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

Commit 03987ea9 authored by android-build-team Robot's avatar android-build-team Robot
Browse files

Snap for 5053079 from 0fbc37e5 to pi-qpr2-release

Change-Id: I1624b0e664d01e59ff0ab4a95b4c13ec2ff2c423
parents 29c9f561 0fbc37e5
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -148,6 +148,7 @@ message EventTimingEntry {
    BLOCK_CHECK_FINISHED_TIMING = 9;
    FILTERING_COMPLETED_TIMING = 10;
    FILTERING_TIMED_OUT_TIMING = 11;
    START_CONNECTION_TO_REQUEST_DISCONNECT_TIMING = 12;
  }

  // The name of the event timing.
@@ -233,6 +234,18 @@ message CallLog {
    CONNECTION_MANAGER_NOT_SUPPORTED = 10;
  }

  // The source where user initiated this call.
  enum CallSource {
    // Call source is not specified.
    CALL_SOURCE_UNSPECIFIED = 0;

    // Dialpad at emergency dialer.
    CALL_SOURCE_EMERGENCY_DIALPAD = 1;

    // Shortcut button at emergency dialer.
    CALL_SOURCE_EMERGENCY_SHORTCUT = 2;
  }

  // Start time of the connection.
  // Rounded to the nearest 5 minute interval.
  optional int64 start_time_5min = 1;
@@ -286,4 +299,7 @@ message CallLog {
  // A bitmask of the properties that were set at any point during the call.
  // Bits are defined by android.telecom.Connection.PROPERTY_* constants.
  optional int32 connection_properties = 17;

  // Call source.
  optional CallSource call_source = 18;
}
+39 −1
Original line number Diff line number Diff line
@@ -143,6 +143,9 @@ public class Analytics {
                        ParcelableCallAnalytics.EventTiming.FILTERING_COMPLETED_TIMING);
                put(LogUtils.Events.Timings.FILTERING_TIMED_OUT_TIMING,
                        ParcelableCallAnalytics.EventTiming.FILTERING_TIMED_OUT_TIMING);
                put(LogUtils.Events.Timings.START_CONNECTION_TO_REQUEST_DISCONNECT_TIMING,
                        ParcelableCallAnalytics.EventTiming.
                                START_CONNECTION_TO_REQUEST_DISCONNECT_TIMING);
            }};

    public static final Map<Integer, String> sSessionIdToLogSession = new HashMap<>();
@@ -191,6 +194,9 @@ public class Analytics {

        public void addCallProperties(int properties) {
        }

        public void setCallSource(int callSource) {
        }
    }

    /**
@@ -224,6 +230,7 @@ public class Analytics {
        public List<TelecomLogClass.VideoEvent> videoEvents;
        public List<TelecomLogClass.InCallServiceInfo> inCallServiceInfos;
        public int callProperties = 0;
        public int callSource = CALL_SOURCE_UNSPECIFIED;

        private long mTimeOfLastVideoEvent = -1;

@@ -253,6 +260,7 @@ public class Analytics {
            this.isVideo = other.isVideo;
            this.videoEvents = other.videoEvents;
            this.callProperties = other.callProperties;
            this.callSource = other.callSource;

            if (other.callTerminationReason != null) {
                this.callTerminationReason = new DisconnectCause(
@@ -355,6 +363,11 @@ public class Analytics {
            this.callProperties |= properties;
        }

        @Override
        public void setCallSource(int callSource) {
            this.callSource = callSource;
        }

        @Override
        public String toString() {
            return "{\n"
@@ -370,6 +383,7 @@ public class Analytics {
                    + "    inCallServices: " + getInCallServicesString() + '\n'
                    + "    callProperties: " + Connection.propertiesToStringShort(callProperties)
                    + '\n'
                    + "    callSource: " + getCallSourceString() + '\n'
                    + "}\n";
        }

@@ -412,6 +426,8 @@ public class Analytics {
                            videoEventProto.getVideoState())
                    ).collect(Collectors.toList()));

            result.setCallSource(analyticsProto.getCallSource());

            return result;
        }

@@ -438,7 +454,8 @@ public class Analytics {
                    .setIsCreatedFromExistingConnection(createdFromExistingConnection)
                    .setIsEmergencyCall(isEmergency)
                    .setIsVideoCall(isVideo)
                    .setConnectionProperties(callProperties);
                    .setConnectionProperties(callProperties)
                    .setCallSource(callSource);

            result.connectionService = new String[] {connectionService};
            if (callEvents != null) {
@@ -502,6 +519,19 @@ public class Analytics {
            s.append("]");
            return s.toString();
        }

        private String getCallSourceString() {
            switch (callSource) {
                case CALL_SOURCE_UNSPECIFIED:
                    return "UNSPECIFIED";
                case CALL_SOURCE_EMERGENCY_DIALPAD:
                    return "EMERGENCY_DIALPAD";
                case CALL_SOURCE_EMERGENCY_SHORTCUT:
                    return "EMERGENCY_SHORTCUT";
                default:
                    return "UNSPECIFIED";
            }
        }
    }
    public static final String TAG = "TelecomAnalytics";

@@ -517,6 +547,14 @@ public class Analytics {
    public static final int SIP_PHONE = ParcelableCallAnalytics.SIP_PHONE;
    public static final int THIRD_PARTY_PHONE = ParcelableCallAnalytics.THIRD_PARTY_PHONE;

    // Constants for call source
    public static final int CALL_SOURCE_UNSPECIFIED =
            ParcelableCallAnalytics.CALL_SOURCE_UNSPECIFIED;
    public static final int CALL_SOURCE_EMERGENCY_DIALPAD =
            ParcelableCallAnalytics.CALL_SOURCE_EMERGENCY_DIALPAD;
    public static final int CALL_SOURCE_EMERGENCY_SHORTCUT =
            ParcelableCallAnalytics.CALL_SOURCE_EMERGENCY_SHORTCUT;

    // Constants for video events
    public static final int SEND_LOCAL_SESSION_MODIFY_REQUEST =
            ParcelableCallAnalytics.VideoEvent.SEND_LOCAL_SESSION_MODIFY_REQUEST;
+13 −0
Original line number Diff line number Diff line
@@ -1267,6 +1267,7 @@ public class CallsManager extends Call.ListenerBase
            }
        }
        setIntentExtrasAndStartTime(call, extras);
        setCallSourceToAnalytics(call, originalIntent);

        if ((isPotentialMMICode(handle) || isPotentialInCallMMICode) && !needsAccountSelection) {
            // Do not add the call if it is a potential MMI code.
@@ -3429,6 +3430,18 @@ public class CallsManager extends Call.ListenerBase
        call.setIntentExtras(extras);
    }

    private void setCallSourceToAnalytics(Call call, Intent originalIntent) {
        if (originalIntent == null) {
            return;
        }

        int callSource = originalIntent.getIntExtra(TelecomManager.EXTRA_CALL_SOURCE,
                Analytics.CALL_SOURCE_UNSPECIFIED);

        // Call source is only used by metrics, so we simply set it to Analytics directly.
        call.getAnalytics().setCallSource(callSource);
    }

    /**
     * Notifies the {@link android.telecom.ConnectionService} associated with a
     * {@link PhoneAccountHandle} that the attempt to create a new connection has failed.
+4 −0
Original line number Diff line number Diff line
@@ -150,6 +150,8 @@ public class LogUtils {
            public static final String BLOCK_CHECK_FINISHED_TIMING = "block_check_finished";
            public static final String FILTERING_COMPLETED_TIMING = "filtering_completed";
            public static final String FILTERING_TIMED_OUT_TIMING = "filtering_timed_out";
            public static final String START_CONNECTION_TO_REQUEST_DISCONNECT_TIMING =
                    "start_connection_to_request_disconnect";

            private static final TimedEventPair[] sTimedEvents = {
                    new TimedEventPair(REQUEST_ACCEPT, SET_ACTIVE, ACCEPT_TIMING),
@@ -170,6 +172,8 @@ public class LogUtils {
                            FILTERING_COMPLETED_TIMING),
                    new TimedEventPair(FILTERING_INITIATED, FILTERING_TIMED_OUT,
                            FILTERING_TIMED_OUT_TIMING, 6000L),
                    new TimedEventPair(START_CONNECTION, REQUEST_DISCONNECT,
                            START_CONNECTION_TO_REQUEST_DISCONNECT_TIMING),
            };
        }
    }