Add disconnect cause and message to PhoneStateBroadcaster
Change-Id: Ibb857e16b578e8acc7fc20bd3ab6693afcab318e
diff --git a/src/com/android/telecomm/PhoneStateBroadcaster.java b/src/com/android/telecomm/PhoneStateBroadcaster.java
index ff0a836..f929f1f 100644
--- a/src/com/android/telecomm/PhoneStateBroadcaster.java
+++ b/src/com/android/telecomm/PhoneStateBroadcaster.java
@@ -21,6 +21,7 @@
import android.telecomm.CallService;
import android.telecomm.CallState;
import android.telecomm.TelecommConstants;
+import android.telephony.DisconnectCause;
import android.telephony.TelephonyManager;
/**
@@ -69,6 +70,21 @@
if (callService != null) {
intent.putExtra(CallService.class.getName(), callService.getComponentName());
}
+
+ // TODO: Replace these with real constants once this API has been vetted.
+ int disconnectCause = call.getDisconnectCause();
+ String disconnectMessage = call.getDisconnectMessage();
+ if (disconnectCause != DisconnectCause.NOT_VALID) {
+ intent.putExtra(TelecommConstants.EXTRA_CALL_DISCONNECT_CAUSE, disconnectCause);
+ if (disconnectMessage == null) {
+ disconnectMessage = DisconnectCause.toString(disconnectCause);
+ }
+ }
+ if (disconnectMessage != null) {
+ intent.putExtra(TelecommConstants.EXTRA_CALL_DISCONNECT_MESSAGE,
+ call.getDisconnectMessage());
+ }
+
TelecommApp.getInstance().sendBroadcast(intent, Manifest.permission.READ_PHONE_STATE);
Log.i(this, "Broadcasted state change: %s", phoneState);
}