diff options
6 files changed, 65 insertions, 18 deletions
diff --git a/api/current.txt b/api/current.txt index 8d9ca89..54dd135 100644 --- a/api/current.txt +++ b/api/current.txt @@ -24868,7 +24868,7 @@ package android.telecomm { method public void notifyIncomingCall(android.telecomm.CallInfo); method public void setActive(java.lang.String); method public void setDialing(java.lang.String); - method public void setDisconnected(java.lang.String); + method public void setDisconnected(java.lang.String, int, java.lang.String); method public void setIsCompatibleWith(java.lang.String, boolean); method public void setOnHold(java.lang.String); method public void setRinging(java.lang.String); @@ -24954,7 +24954,7 @@ package android.telecomm { method protected abstract void onAudioStateChanged(android.telecomm.CallAudioState); method public final android.os.IBinder onBind(android.content.Intent); method protected abstract void setActive(java.lang.String); - method protected abstract void setDisconnected(java.lang.String); + method protected abstract void setDisconnected(java.lang.String, int); method protected abstract void setInCallAdapter(android.telecomm.InCallAdapter); method protected abstract void setOnHold(java.lang.String); } @@ -25120,6 +25120,50 @@ package android.telephony { field public static final android.os.Parcelable.Creator CREATOR; } + public class DisconnectCause { + method public static java.lang.String toString(int); + field public static final int BUSY = 4; // 0x4 + field public static final int CALL_BARRED = 20; // 0x14 + field public static final int CDMA_ACCESS_BLOCKED = 35; // 0x23 + field public static final int CDMA_ACCESS_FAILURE = 32; // 0x20 + field public static final int CDMA_DROP = 27; // 0x1b + field public static final int CDMA_INTERCEPT = 28; // 0x1c + field public static final int CDMA_LOCKED_UNTIL_POWER_CYCLE = 26; // 0x1a + field public static final int CDMA_NOT_EMERGENCY = 34; // 0x22 + field public static final int CDMA_PREEMPTED = 33; // 0x21 + field public static final int CDMA_REORDER = 29; // 0x1d + field public static final int CDMA_RETRY_ORDER = 31; // 0x1f + field public static final int CDMA_SO_REJECT = 30; // 0x1e + field public static final int CONGESTION = 5; // 0x5 + field public static final int CS_RESTRICTED = 22; // 0x16 + field public static final int CS_RESTRICTED_EMERGENCY = 24; // 0x18 + field public static final int CS_RESTRICTED_NORMAL = 23; // 0x17 + field public static final int ERROR_UNSPECIFIED = 36; // 0x24 + field public static final int FDN_BLOCKED = 21; // 0x15 + field public static final int ICC_ERROR = 19; // 0x13 + field public static final int INCOMING_MISSED = 1; // 0x1 + field public static final int INCOMING_REJECTED = 16; // 0x10 + field public static final int INVALID_CREDENTIALS = 10; // 0xa + field public static final int INVALID_NUMBER = 7; // 0x7 + field public static final int LIMIT_EXCEEDED = 15; // 0xf + field public static final int LOCAL = 3; // 0x3 + field public static final int LOST_SIGNAL = 14; // 0xe + field public static final int MAXIMUM_VALID_VALUE = 36; // 0x24 + field public static final int MINIMUM_VALID_VALUE = 0; // 0x0 + field public static final int MMI = 6; // 0x6 + field public static final int NORMAL = 2; // 0x2 + field public static final int NOT_DISCONNECTED = 0; // 0x0 + field public static final int NOT_VALID = -1; // 0xffffffff + field public static final int NUMBER_UNREACHABLE = 8; // 0x8 + field public static final int OUT_OF_NETWORK = 11; // 0xb + field public static final int OUT_OF_SERVICE = 18; // 0x12 + field public static final int POWER_OFF = 17; // 0x11 + field public static final int SERVER_ERROR = 12; // 0xc + field public static final int SERVER_UNREACHABLE = 9; // 0x9 + field public static final int TIMED_OUT = 13; // 0xd + field public static final int UNOBTAINABLE_NUMBER = 25; // 0x19 + } + public class NeighboringCellInfo implements android.os.Parcelable { ctor public deprecated NeighboringCellInfo(); ctor public deprecated NeighboringCellInfo(int, int); diff --git a/telecomm/java/android/telecomm/CallServiceAdapter.java b/telecomm/java/android/telecomm/CallServiceAdapter.java index 0527a6d..d5bb989 100644 --- a/telecomm/java/android/telecomm/CallServiceAdapter.java +++ b/telecomm/java/android/telecomm/CallServiceAdapter.java @@ -133,10 +133,13 @@ public final class CallServiceAdapter { * Sets a call's state to disconnected. * * @param callId The unique ID of the call whose state is changing to disconnected. + * @param disconnectCause The reason for the disconnection, any of + * {@link android.telephony.DisconnectCause}. + * @param disconnectMessage Optional call-service-provided message about the disconnect. */ - public void setDisconnected(String callId) { + public void setDisconnected(String callId, int disconnectCause, String disconnectMessage) { try { - mAdapter.setDisconnected(callId); + mAdapter.setDisconnected(callId, disconnectCause, disconnectMessage); } catch (RemoteException e) { } } diff --git a/telecomm/java/android/telecomm/InCallService.java b/telecomm/java/android/telecomm/InCallService.java index ef15a61..8f1add2 100644 --- a/telecomm/java/android/telecomm/InCallService.java +++ b/telecomm/java/android/telecomm/InCallService.java @@ -58,7 +58,7 @@ public abstract class InCallService extends Service { setActive((String) msg.obj); break; case MSG_SET_DISCONNECTED: - setDisconnected((String) msg.obj); + setDisconnected((String) msg.obj, msg.arg1); break; case MSG_SET_HOLD: setOnHold((String) msg.obj); @@ -93,8 +93,8 @@ public abstract class InCallService extends Service { /** {@inheritDoc} */ @Override - public void setDisconnected(String callId) { - mHandler.obtainMessage(MSG_SET_DISCONNECTED, callId).sendToTarget(); + public void setDisconnected(String callId, int disconnectCause) { + mHandler.obtainMessage(MSG_SET_DISCONNECTED, disconnectCause, 0, callId).sendToTarget(); } /** {@inheritDoc} */ @@ -149,12 +149,12 @@ public abstract class InCallService extends Service { /** * Indicates to the in-call app that a call has been moved to the * {@link CallState#DISCONNECTED} and the user should be notified. - * TODO(santoscordon): Needs disconnect-cause either as a numberical constant, string or both - * depending on what is ultimately needed to support all scenarios. * * @param callId The identifier of the call that was disconnected. + * @param disconnectCause The reason for the disconnection, any of + * {@link android.telephony.DisconnectCause}. */ - protected abstract void setDisconnected(String callId); + protected abstract void setDisconnected(String callId, int disconnectCause); /** * Indicates to the in-call app that a call has been moved to the diff --git a/telecomm/java/com/android/internal/telecomm/ICallServiceAdapter.aidl b/telecomm/java/com/android/internal/telecomm/ICallServiceAdapter.aidl index e96defe..bbf4e80 100644 --- a/telecomm/java/com/android/internal/telecomm/ICallServiceAdapter.aidl +++ b/telecomm/java/com/android/internal/telecomm/ICallServiceAdapter.aidl @@ -89,8 +89,11 @@ oneway interface ICallServiceAdapter { * Sets a call's state to disconnected. * * @param callId The unique ID of the call whose state is changing to disconnected. + * @param disconnectCause The reason for the disconnection, any of + * {@link android.telephony.DisconnectCause}. + * @param disconnectMessage The call-service-provided message about the disconnect cause. */ - void setDisconnected(String callId); + void setDisconnected(String callId, int disconnectCause, String disconnectMessage); /** * Sets a call's state to be on hold. diff --git a/telecomm/java/com/android/internal/telecomm/IInCallService.aidl b/telecomm/java/com/android/internal/telecomm/IInCallService.aidl index 35498a3..4e902a2 100644 --- a/telecomm/java/com/android/internal/telecomm/IInCallService.aidl +++ b/telecomm/java/com/android/internal/telecomm/IInCallService.aidl @@ -61,12 +61,12 @@ oneway interface IInCallService { /** * Indicates to the in-call app that a call has been moved to the * {@link android.telecomm.CallState#DISCONNECTED} and the user should be notified. - * TODO(santoscordon): Needs disconnect-cause either as a numberical constant, string or both - * depending on what is ultimately needed to support all scenarios. * * @param callId The identifier of the call that was disconnected. + * @param disconnectCause The reason for the disconnection, any of + * {@link android.telephony.DisconnectCause}. */ - void setDisconnected(String callId); + void setDisconnected(String callId, int disconnectCause); /** * Indicates to the in-call app that a call has been moved to the diff --git a/telephony/java/android/telephony/DisconnectCause.java b/telephony/java/android/telephony/DisconnectCause.java index 1c75658..8681344 100644 --- a/telephony/java/android/telephony/DisconnectCause.java +++ b/telephony/java/android/telephony/DisconnectCause.java @@ -17,10 +17,7 @@ package android.telephony; /** - * Contains disconnect call causes generated by the - * framework and the RIL. - * - * @hide + * Contains disconnect call causes generated by the framework and the RIL. */ public class DisconnectCause { |