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

Commit 1ce250aa authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Merge "API Review cleanups." am: f2a56150

Change-Id: I516e72d3f32c40ff480e55ceed222aea7d5ce9b3
parents ac4f7edb f2a56150
Loading
Loading
Loading
Loading
+7 −5
Original line number Original line Diff line number Diff line
@@ -43685,7 +43685,7 @@ package android.telecom {
    field public static final int DIRECTION_INCOMING = 0; // 0x0
    field public static final int DIRECTION_INCOMING = 0; // 0x0
    field public static final int DIRECTION_OUTGOING = 1; // 0x1
    field public static final int DIRECTION_OUTGOING = 1; // 0x1
    field public static final int DIRECTION_UNKNOWN = -1; // 0xffffffff
    field public static final int DIRECTION_UNKNOWN = -1; // 0xffffffff
    field public static final int PROPERTY_ASSISTED_DIALING_USED = 512; // 0x200
    field public static final int PROPERTY_ASSISTED_DIALING = 512; // 0x200
    field public static final int PROPERTY_CONFERENCE = 1; // 0x1
    field public static final int PROPERTY_CONFERENCE = 1; // 0x1
    field public static final int PROPERTY_EMERGENCY_CALLBACK_MODE = 4; // 0x4
    field public static final int PROPERTY_EMERGENCY_CALLBACK_MODE = 4; // 0x4
    field public static final int PROPERTY_ENTERPRISE_CALL = 32; // 0x20
    field public static final int PROPERTY_ENTERPRISE_CALL = 32; // 0x20
@@ -43774,7 +43774,8 @@ package android.telecom {
    method public final java.util.List<android.telecom.Connection> getConferenceableConnections();
    method public final java.util.List<android.telecom.Connection> getConferenceableConnections();
    method public final int getConnectionCapabilities();
    method public final int getConnectionCapabilities();
    method public final int getConnectionProperties();
    method public final int getConnectionProperties();
    method public final long getConnectionTime();
    method public final long getConnectionStartElapsedRealtimeMillis();
    method @IntRange(from=0) public final long getConnectionTime();
    method public final java.util.List<android.telecom.Connection> getConnections();
    method public final java.util.List<android.telecom.Connection> getConnections();
    method public final android.telecom.DisconnectCause getDisconnectCause();
    method public final android.telecom.DisconnectCause getDisconnectCause();
    method public final android.os.Bundle getExtras();
    method public final android.os.Bundle getExtras();
@@ -43804,8 +43805,9 @@ package android.telecom {
    method public final void setConferenceableConnections(java.util.List<android.telecom.Connection>);
    method public final void setConferenceableConnections(java.util.List<android.telecom.Connection>);
    method public final void setConnectionCapabilities(int);
    method public final void setConnectionCapabilities(int);
    method public final void setConnectionProperties(int);
    method public final void setConnectionProperties(int);
    method public final void setConnectionStartElapsedRealTime(long);
    method @Deprecated public final void setConnectionStartElapsedRealTime(long);
    method public final void setConnectionTime(long);
    method public final void setConnectionStartElapsedRealtimeMillis(long);
    method public final void setConnectionTime(@IntRange(from=0) long);
    method public final void setDialing();
    method public final void setDialing();
    method public final void setDisconnected(android.telecom.DisconnectCause);
    method public final void setDisconnected(android.telecom.DisconnectCause);
    method public final void setExtras(@Nullable android.os.Bundle);
    method public final void setExtras(@Nullable android.os.Bundle);
@@ -43965,7 +43967,7 @@ package android.telecom {
    field public static final String EXTRA_IS_RTT_AUDIO_PRESENT = "android.telecom.extra.IS_RTT_AUDIO_PRESENT";
    field public static final String EXTRA_IS_RTT_AUDIO_PRESENT = "android.telecom.extra.IS_RTT_AUDIO_PRESENT";
    field public static final String EXTRA_LAST_FORWARDED_NUMBER = "android.telecom.extra.LAST_FORWARDED_NUMBER";
    field public static final String EXTRA_LAST_FORWARDED_NUMBER = "android.telecom.extra.LAST_FORWARDED_NUMBER";
    field public static final String EXTRA_SIP_INVITE = "android.telecom.extra.SIP_INVITE";
    field public static final String EXTRA_SIP_INVITE = "android.telecom.extra.SIP_INVITE";
    field public static final int PROPERTY_ASSISTED_DIALING_USED = 512; // 0x200
    field public static final int PROPERTY_ASSISTED_DIALING = 512; // 0x200
    field public static final int PROPERTY_HAS_CDMA_VOICE_PRIVACY = 32; // 0x20
    field public static final int PROPERTY_HAS_CDMA_VOICE_PRIVACY = 32; // 0x20
    field public static final int PROPERTY_HIGH_DEF_AUDIO = 4; // 0x4
    field public static final int PROPERTY_HIGH_DEF_AUDIO = 4; // 0x4
    field public static final int PROPERTY_IS_EXTERNAL_CALL = 16; // 0x10
    field public static final int PROPERTY_IS_EXTERNAL_CALL = 16; // 0x10
+8 −9
Original line number Original line Diff line number Diff line
@@ -8253,27 +8253,26 @@ package android.telecom {
  public abstract class Conference extends android.telecom.Conferenceable {
  public abstract class Conference extends android.telecom.Conferenceable {
    method @Deprecated public final android.telecom.AudioState getAudioState();
    method @Deprecated public final android.telecom.AudioState getAudioState();
    method @Deprecated public final long getConnectTimeMillis();
    method @Deprecated public final long getConnectTimeMillis();
    method public final long getConnectionStartElapsedRealTime();
    method public android.telecom.Connection getPrimaryConnection();
    method public android.telecom.Connection getPrimaryConnection();
    method @NonNull public final String getTelecomCallId();
    method @NonNull public final String getTelecomCallId();
    method @Deprecated public void onAudioStateChanged(android.telecom.AudioState);
    method @Deprecated public void onAudioStateChanged(android.telecom.AudioState);
    method public final void setAddress(@NonNull android.net.Uri, int);
    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public final void setAddress(@NonNull android.net.Uri, int);
    method public final void setCallerDisplayName(@NonNull String, int);
    method public final void setCallerDisplayName(@NonNull String, int);
    method public void setConferenceState(boolean);
    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setConferenceState(boolean);
    method @Deprecated public final void setConnectTimeMillis(long);
    method @Deprecated public final void setConnectTimeMillis(long);
  }
  }
  public abstract class Connection extends android.telecom.Conferenceable {
  public abstract class Connection extends android.telecom.Conferenceable {
    method @Deprecated public final android.telecom.AudioState getAudioState();
    method @Deprecated public final android.telecom.AudioState getAudioState();
    method public final long getConnectElapsedTimeMillis();
    method @IntRange(from=0) public final long getConnectTimeMillis();
    method public final long getConnectTimeMillis();
    method public final long getConnectionStartElapsedRealtimeMillis();
    method @Nullable public android.telecom.PhoneAccountHandle getPhoneAccountHandle();
    method @Nullable public android.telecom.PhoneAccountHandle getPhoneAccountHandle();
    method @Nullable public final String getTelecomCallId();
    method @Nullable public final String getTelecomCallId();
    method @Deprecated public void onAudioStateChanged(android.telecom.AudioState);
    method @Deprecated public void onAudioStateChanged(android.telecom.AudioState);
    method public final void resetConnectionTime();
    method public final void resetConnectionTime();
    method public void setCallDirection(int);
    method public void setCallDirection(int);
    method public final void setConnectTimeMillis(long);
    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public final void setConnectTimeMillis(@IntRange(from=0) long);
    method public final void setConnectionStartElapsedRealTime(long);
    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public final void setConnectionStartElapsedRealtimeMillis(long);
    method public void setPhoneAccountHandle(@NonNull android.telecom.PhoneAccountHandle);
    method public void setPhoneAccountHandle(@NonNull android.telecom.PhoneAccountHandle);
    method public void setTelecomCallId(@NonNull String);
    method public void setTelecomCallId(@NonNull String);
    field public static final int CAPABILITY_CONFERENCE_HAS_NO_CHILDREN = 2097152; // 0x200000
    field public static final int CAPABILITY_CONFERENCE_HAS_NO_CHILDREN = 2097152; // 0x200000
@@ -8425,7 +8424,7 @@ package android.telecom {
  }
  }
  public static class PhoneAccount.Builder {
  public static class PhoneAccount.Builder {
    method @NonNull public android.telecom.PhoneAccount.Builder setGroupId(@NonNull String);
    method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public android.telecom.PhoneAccount.Builder setGroupId(@NonNull String);
  }
  }
  public class PhoneAccountSuggestionService extends android.app.Service {
  public class PhoneAccountSuggestionService extends android.app.Service {
@@ -8500,7 +8499,7 @@ package android.telecom {
    method public int getCallState();
    method public int getCallState();
    method public android.telecom.PhoneAccountHandle getConnectionManager();
    method public android.telecom.PhoneAccountHandle getConnectionManager();
    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getCurrentTtyMode();
    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getCurrentTtyMode();
    method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getDefaultDialerPackage(int);
    method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getDefaultDialerPackage(@NonNull android.os.UserHandle);
    method @Deprecated public android.content.ComponentName getDefaultPhoneApp();
    method @Deprecated public android.content.ComponentName getDefaultPhoneApp();
    method public java.util.List<android.telecom.PhoneAccountHandle> getPhoneAccountsForPackage();
    method public java.util.List<android.telecom.PhoneAccountHandle> getPhoneAccountsForPackage();
    method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public java.util.List<android.telecom.PhoneAccountHandle> getPhoneAccountsSupportingScheme(String);
    method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public java.util.List<android.telecom.PhoneAccountHandle> getPhoneAccountsSupportingScheme(String);
+8 −9
Original line number Original line Diff line number Diff line
@@ -3005,23 +3005,22 @@ package android.telecom {
  }
  }


  public abstract class Conference extends android.telecom.Conferenceable {
  public abstract class Conference extends android.telecom.Conferenceable {
    method public final long getConnectionStartElapsedRealTime();
    method public android.telecom.Connection getPrimaryConnection();
    method public android.telecom.Connection getPrimaryConnection();
    method @NonNull public final String getTelecomCallId();
    method @NonNull public final String getTelecomCallId();
    method public final void setAddress(@NonNull android.net.Uri, int);
    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public final void setAddress(@NonNull android.net.Uri, int);
    method public final void setCallerDisplayName(@NonNull String, int);
    method public final void setCallerDisplayName(@NonNull String, int);
    method public void setConferenceState(boolean);
    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setConferenceState(boolean);
  }
  }


  public abstract class Connection extends android.telecom.Conferenceable {
  public abstract class Connection extends android.telecom.Conferenceable {
    method public final long getConnectElapsedTimeMillis();
    method @IntRange(from=0) public final long getConnectTimeMillis();
    method public final long getConnectTimeMillis();
    method public final long getConnectionStartElapsedRealtimeMillis();
    method @Nullable public android.telecom.PhoneAccountHandle getPhoneAccountHandle();
    method @Nullable public android.telecom.PhoneAccountHandle getPhoneAccountHandle();
    method @Nullable public final String getTelecomCallId();
    method @Nullable public final String getTelecomCallId();
    method public final void resetConnectionTime();
    method public final void resetConnectionTime();
    method public void setCallDirection(int);
    method public void setCallDirection(int);
    method public final void setConnectTimeMillis(long);
    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public final void setConnectTimeMillis(@IntRange(from=0) long);
    method public final void setConnectionStartElapsedRealTime(long);
    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public final void setConnectionStartElapsedRealtimeMillis(long);
    method public void setPhoneAccountHandle(@NonNull android.telecom.PhoneAccountHandle);
    method public void setPhoneAccountHandle(@NonNull android.telecom.PhoneAccountHandle);
    method public void setTelecomCallId(@NonNull String);
    method public void setTelecomCallId(@NonNull String);
    field public static final int CAPABILITY_CONFERENCE_HAS_NO_CHILDREN = 2097152; // 0x200000
    field public static final int CAPABILITY_CONFERENCE_HAS_NO_CHILDREN = 2097152; // 0x200000
@@ -3053,7 +3052,7 @@ package android.telecom {
  }
  }


  public static class PhoneAccount.Builder {
  public static class PhoneAccount.Builder {
    method @NonNull public android.telecom.PhoneAccount.Builder setGroupId(@NonNull String);
    method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public android.telecom.PhoneAccount.Builder setGroupId(@NonNull String);
  }
  }


  public class PhoneAccountSuggestionService extends android.app.Service {
  public class PhoneAccountSuggestionService extends android.app.Service {
@@ -3067,7 +3066,7 @@ package android.telecom {
  public class TelecomManager {
  public class TelecomManager {
    method @NonNull @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public java.util.List<android.telecom.PhoneAccountHandle> getCallCapablePhoneAccounts(boolean);
    method @NonNull @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public java.util.List<android.telecom.PhoneAccountHandle> getCallCapablePhoneAccounts(boolean);
    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public int getCurrentTtyMode();
    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public int getCurrentTtyMode();
    method @Nullable @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public String getDefaultDialerPackage(int);
    method @Nullable @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public String getDefaultDialerPackage(@NonNull android.os.UserHandle);
    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean isInEmergencyCall();
    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean isInEmergencyCall();
    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setUserSelectedOutgoingPhoneAccount(@Nullable android.telecom.PhoneAccountHandle);
    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setUserSelectedOutgoingPhoneAccount(@Nullable android.telecom.PhoneAccountHandle);
    field public static final int TTY_MODE_FULL = 1; // 0x1
    field public static final int TTY_MODE_FULL = 1; // 0x1
+2 −2
Original line number Original line Diff line number Diff line
@@ -546,7 +546,7 @@ public final class Call {
         *
         *
         * @see TelecomManager#EXTRA_USE_ASSISTED_DIALING
         * @see TelecomManager#EXTRA_USE_ASSISTED_DIALING
         */
         */
        public static final int PROPERTY_ASSISTED_DIALING_USED = 0x00000200;
        public static final int PROPERTY_ASSISTED_DIALING = 0x00000200;


        /**
        /**
         * Indicates that the call is an RTT call. Use {@link #getRttCall()} to get the
         * Indicates that the call is an RTT call. Use {@link #getRttCall()} to get the
@@ -754,7 +754,7 @@ public final class Call {
            if (hasProperty(properties, PROPERTY_HAS_CDMA_VOICE_PRIVACY)) {
            if (hasProperty(properties, PROPERTY_HAS_CDMA_VOICE_PRIVACY)) {
                builder.append(" PROPERTY_HAS_CDMA_VOICE_PRIVACY");
                builder.append(" PROPERTY_HAS_CDMA_VOICE_PRIVACY");
            }
            }
            if (hasProperty(properties, PROPERTY_ASSISTED_DIALING_USED)) {
            if (hasProperty(properties, PROPERTY_ASSISTED_DIALING)) {
                builder.append(" PROPERTY_ASSISTED_DIALING_USED");
                builder.append(" PROPERTY_ASSISTED_DIALING_USED");
            }
            }
            if (hasProperty(properties, PROPERTY_NETWORK_IDENTIFIED_EMERGENCY_CALL)) {
            if (hasProperty(properties, PROPERTY_NETWORK_IDENTIFIED_EMERGENCY_CALL)) {
+76 −12
Original line number Original line Diff line number Diff line
@@ -16,8 +16,13 @@


package android.telecom;
package android.telecom;


import static android.Manifest.permission.MODIFY_PHONE_STATE;

import android.annotation.ElapsedRealtimeLong;
import android.annotation.IntRange;
import android.annotation.NonNull;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.Nullable;
import android.annotation.RequiresPermission;
import android.annotation.SystemApi;
import android.annotation.SystemApi;
import android.annotation.TestApi;
import android.annotation.TestApi;
import android.net.Uri;
import android.net.Uri;
@@ -632,12 +637,12 @@ public abstract class Conference extends Conferenceable {
     * Should be specified in wall-clock time returned by {@link System#currentTimeMillis()}.
     * Should be specified in wall-clock time returned by {@link System#currentTimeMillis()}.
     * <p>
     * <p>
     * When setting the connection time, you should always set the connection elapsed time via
     * When setting the connection time, you should always set the connection elapsed time via
     * {@link #setConnectionStartElapsedRealTime(long)} to ensure the duration is reflected.
     * {@link #setConnectionStartElapsedRealtimeMillis(long)} to ensure the duration is reflected.
     *
     *
     * @param connectionTimeMillis The connection time, in milliseconds, as returned by
     * @param connectionTimeMillis The connection time, in milliseconds, as returned by
     *                             {@link System#currentTimeMillis()}.
     *                             {@link System#currentTimeMillis()}.
     */
     */
    public final void setConnectionTime(long connectionTimeMillis) {
    public final void setConnectionTime(@IntRange(from = 0) long connectionTimeMillis) {
        mConnectTimeMillis = connectionTimeMillis;
        mConnectTimeMillis = connectionTimeMillis;
    }
    }


@@ -653,8 +658,28 @@ public abstract class Conference extends Conferenceable {
     *
     *
     * @param connectionStartElapsedRealTime The connection time, as measured by
     * @param connectionStartElapsedRealTime The connection time, as measured by
     * {@link SystemClock#elapsedRealtime()}.
     * {@link SystemClock#elapsedRealtime()}.
     * @deprecated use {@link #setConnectionStartElapsedRealtimeMillis(long)} instead.
     */
     */
    @Deprecated
    public final void setConnectionStartElapsedRealTime(long connectionStartElapsedRealTime) {
    public final void setConnectionStartElapsedRealTime(long connectionStartElapsedRealTime) {
        setConnectionStartElapsedRealtimeMillis(connectionStartElapsedRealTime);
    }

    /**
     * Sets the start time of the {@link Conference} which is the basis for the determining the
     * duration of the {@link Conference}.
     * <p>
     * You should use a value returned by {@link SystemClock#elapsedRealtime()} to ensure that time
     * zone changes do not impact the conference duration.
     * <p>
     * When setting this, you should also set the connection time via
     * {@link #setConnectionTime(long)}.
     *
     * @param connectionStartElapsedRealTime The connection time, as measured by
     * {@link SystemClock#elapsedRealtime()}.
     */
    public final void setConnectionStartElapsedRealtimeMillis(
            @ElapsedRealtimeLong long connectionStartElapsedRealTime) {
        mConnectionStartElapsedRealTime = connectionStartElapsedRealTime;
        mConnectionStartElapsedRealTime = connectionStartElapsedRealTime;
    }
    }


@@ -675,7 +700,7 @@ public abstract class Conference extends Conferenceable {
     *
     *
     * @return The time at which the {@code Conference} was connected.
     * @return The time at which the {@code Conference} was connected.
     */
     */
    public final long getConnectionTime() {
    public final @IntRange(from = 0) long getConnectionTime() {
        return mConnectTimeMillis;
        return mConnectTimeMillis;
    }
    }


@@ -692,11 +717,8 @@ public abstract class Conference extends Conferenceable {
     * has no general use other than to the Telephony framework.
     * has no general use other than to the Telephony framework.
     *
     *
     * @return The elapsed time at which the {@link Conference} was connected.
     * @return The elapsed time at which the {@link Conference} was connected.
     * @hide
     */
     */
    @SystemApi
    public final @ElapsedRealtimeLong long getConnectionStartElapsedRealtimeMillis() {
    @TestApi
    public final long getConnectionStartElapsedRealTime() {
        return mConnectionStartElapsedRealTime;
        return mConnectionStartElapsedRealTime;
    }
    }


@@ -994,6 +1016,7 @@ public abstract class Conference extends Conferenceable {
     */
     */
    @SystemApi
    @SystemApi
    @TestApi
    @TestApi
    @RequiresPermission(MODIFY_PHONE_STATE)
    public void setConferenceState(boolean isConference) {
    public void setConferenceState(boolean isConference) {
        for (Listener l : mListeners) {
        for (Listener l : mListeners) {
            l.onConferenceStateChanged(this, isConference);
            l.onConferenceStateChanged(this, isConference);
@@ -1014,6 +1037,7 @@ public abstract class Conference extends Conferenceable {
     */
     */
    @SystemApi
    @SystemApi
    @TestApi
    @TestApi
    @RequiresPermission(MODIFY_PHONE_STATE)
    public final void setAddress(@NonNull Uri address,
    public final void setAddress(@NonNull Uri address,
            @TelecomManager.Presentation int presentation) {
            @TelecomManager.Presentation int presentation) {
        Log.d(this, "setAddress %s", address);
        Log.d(this, "setAddress %s", address);
@@ -1120,12 +1144,52 @@ public abstract class Conference extends Conferenceable {
    }
    }


    /**
    /**
     * Sends an event associated with this {@code Conference} with associated event extras to the
     * Sends an event associated with this {@link Conference} with associated event extras to the
     * {@link InCallService} (note: this is identical in concept to
     * {@link InCallService}.
     * {@link Connection#sendConnectionEvent(String, Bundle)}).
     * <p>
     * @see Connection#sendConnectionEvent(String, Bundle)
     * Connection events are used to communicate point in time information from a
     * {@link ConnectionService} to an {@link InCallService} implementation.  An example of a
     * custom connection event includes notifying the UI when a WIFI call has been handed over to
     * LTE, which the InCall UI might use to inform the user that billing charges may apply.  The
     * Android Telephony framework will send the {@link Connection#EVENT_MERGE_COMPLETE}
     * connection event when a call to {@link Call#mergeConference()} has completed successfully.
     * <p>
     * Events are exposed to {@link InCallService} implementations via
     * {@link Call.Callback#onConnectionEvent(Call, String, Bundle)}.
     * <p>
     * No assumptions should be made as to how an In-Call UI or service will handle these events.
     * The {@link ConnectionService} must assume that the In-Call UI could even chose to ignore
     * some events altogether.
     * <p>
     * Events should be fully qualified (e.g. {@code com.example.event.MY_EVENT}) to avoid
     * conflicts between {@link ConnectionService} implementations.  Further, custom
     * {@link ConnectionService} implementations shall not re-purpose events in the
     * {@code android.*} namespace, nor shall they define new event types in this namespace.  When
     * defining a custom event type, ensure the contents of the extras {@link Bundle} is clearly
     * defined.  Extra keys for this bundle should be named similar to the event type (e.g.
     * {@code com.example.extra.MY_EXTRA}).
     * <p>
     * When defining events and the associated extras, it is important to keep their behavior
     * consistent when the associated {@link ConnectionService} is updated.  Support for deprecated
     * events/extras should me maintained to ensure backwards compatibility with older
     * {@link InCallService} implementations which were built to support the older behavior.
     * <p>
     * Expected connection events from the Telephony stack are:
     * <p>
     * <ul>
     *      <li>{@link Connection#EVENT_CALL_HOLD_FAILED} with {@code null} {@code extras} when the
     *      {@link Conference} could not be held.</li>
     *      <li>{@link Connection#EVENT_MERGE_START} with {@code null} {@code extras} when a new
     *      call is being merged into the conference.</li>
     *      <li>{@link Connection#EVENT_MERGE_COMPLETE} with {@code null} {@code extras} a new call
     *      has completed being merged into the conference.</li>
     *      <li>{@link Connection#EVENT_CALL_MERGE_FAILED} with {@code null} {@code extras} a new
     *      call has failed to merge into the conference (the dialer app can determine which call
     *      failed to merge based on the fact that the call still exists outside of the conference
     *      at the end of the merge process).</li>
     * </ul>
     *
     *
     * @param event The connection event.
     * @param event The conference event.
     * @param extras Optional bundle containing extra information associated with the event.
     * @param extras Optional bundle containing extra information associated with the event.
     */
     */
    public void sendConferenceEvent(@NonNull String event, @Nullable Bundle extras) {
    public void sendConferenceEvent(@NonNull String event, @Nullable Bundle extras) {
Loading