summaryrefslogtreecommitdiff
path: root/telecomm/java/android/telecom/RemoteConnection.java
AgeCommit message (Collapse)Author
2021-02-18User arg object in onCallFilteringCompletedHall Liu
In Connection#onCallFilteringCompleted, use a single data class argument instead of making a hodgepodge of args. Fixes: 180616846 Test: atest CtsTelecomTestCases Change-Id: I33e80e3f59418c5d87799661c0764da029cc9f62
2021-02-12Refactor CallScreeningService's internal structureHall Liu
Use a single AIDL method and perform logic in Telecom instead of slicing up the call response on the client side. Also pass through the call response to the connection service. Bug: 179412110 Test: atest ConnectionServiceTest CallScreeningServiceTest Change-Id: I878c0ce34142da104dc0e2795487b03a6bdacb5f
2021-01-15Add API to inform Telephony that call filtering is completeHall Liu
Add an API that gets called once call filtering finishes. Meant to trigger download of call composer images. Bug: 177613111 Test: atest ConnectionServiceTest Change-Id: I4e06f19c859022ddb933f697dde13e459a3d354e
2020-08-13Merge "Add adhoc conference APIs to RemoteConnection and ↵Grace Jia
RemoteConnectionService." am: 329c6ff777 am: e40cfa60de Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1388908 Change-Id: I49034d851b111792fa54b3d2f236d56513bb00f9
2020-08-11Add adhoc conference APIs to RemoteConnection andGrace Jia
RemoteConnectionService. Plumb through the adhoc conference APIs via these new APIs. Bug: 159944852 Test: atest CtsTelecomTestCases:RemoteConnectionTest Change-Id: Icfa27e0616dd35ba350f7a491e5c95337a286b9d
2020-05-07Improve connection manager logging.Tyler Gunn
1. In ConnectionService, upping the incoming log level to info from debug; this ensures we can better trace whether methods are actually called. 2. Added the ability in the logging class to get a new external session which supplies the owner info which will be passed in to the recipient of the external session. This allows Telecom or a connection manager to pass in a package abbreviation which will form the calling owner info when the receiver continues the external session. 3. Add owner info to the Session.Info class so it can be passed about. 4. Ensure owner info is copied when getting Session.Info; subsessions were not showing the owner info in the past; this corrects that. 5. When retrieving the external session info, creating a "package call stack" with the owner info. This lets us see the hierarchy of where calls originated. Example: cad/cast/ccme Shows that com.android.dialer send a message to com.android.server.telecom which relayed a message to com.connection.manager.example. 6. Start sessions in RemoteConnection API methods and pass along external session info. This bridges session tracing across a connection manager so we can now trace a method call all the way from dialer, through telecom, through the connection manager, and finally into telephony. Test: Manual call testing with connection manager to verify log behavior. Bug: 153899641 Change-Id: Ic081237737359aadbec8a8a0b0640c9e31443ef6
2020-05-05Improve connection manager logging.Tyler Gunn
1. In ConnectionService, upping the incoming log level to info from debug; this ensures we can better trace whether methods are actually called. 2. Added the ability in the logging class to get a new external session which supplies the owner info which will be passed in to the recipient of the external session. This allows Telecom or a connection manager to pass in a package abbreviation which will form the calling owner info when the receiver continues the external session. 3. Add owner info to the Session.Info class so it can be passed about. 4. Ensure owner info is copied when getting Session.Info; subsessions were not showing the owner info in the past; this corrects that. 5. When retrieving the external session info, creating a "package call stack" with the owner info. This lets us see the hierarchy of where calls originated. Example: cad/cast/ccme Shows that com.android.dialer send a message to com.android.server.telecom which relayed a message to com.connection.manager.example. 6. Start sessions in RemoteConnection API methods and pass along external session info. This bridges session tracing across a connection manager so we can now trace a method call all the way from dialer, through telecom, through the connection manager, and finally into telephony. Test: Manual call testing with connection manager to verify log behavior. Bug: 153899641 Change-Id: I4518a50550203818374b4e0b52eccb84ffd561dc
2017-11-17Add missing } on @link tag.Tyler Gunn
Test: Compiled code (this is a non-code change). Bug: 69439905 Change-Id: I334ef7d74ac9802378b43a8f95979dcaf82c592f
2017-08-11Catch BadParcelableException in RemoteConnection when setting extras.Tyler Gunn
Unlike the code in Telecom which can use Bundle.setDefusable(..), this framework code is used within a Connection Manager's code space, so the setDefusable method does not work. To prevent crashing the Connection Manager's app, catching the exception and ignoring extras in this case (not much else we can do). I've also filed a bug against the offending component known for putting bad parcelables into the extras. Test: Modified code to force this scenario. Bug: 64499462 Change-Id: If44ad2e2c8e285d513969c6babe5a798242da53d
2017-03-07Merge "API review cleanups/changes." am: 9324d6513b am: dd4bc7c69cTyler Gunn
am: c49b011151 Change-Id: Ib3d76474bef8c911b2ec6a61b916e38af0a3b861
2017-03-06API review cleanups/changes.Tyler Gunn
- Change onCreateIncomingConnectionFailed/onCreateOutgoingConnectionFailed to accept the connection mgr phone account as the first parameter. - For the video APIs, pass the target SDK of the caller into along so that the Telecom permission check can have fallback behavior for older API versions. - Add guidance for how UX should be shown in onShowIncomingCallUi API. API guidance follows how the Dialer app shows its notification and full screen UX. Test: Manual, CTS. Bug: 35767711 Bug: 35767096 Change-Id: Ib343f0eda1a4d067a38c553f33f140b4efcf3e48
2017-03-01Add further Connection-side APIs for RTT (part 2)Hall Liu
Add methods and callbacks to facilitate local and remote RTT initiation and termination in the middle of a call. Adds @hide Connection-side APIs to communicate with the ConnectionService, as well as plumbing for RemoteConnections. Test: manual, through telecom testapps Change-Id: Ia80604b7dff8586ff222dbccdbe55e91aab02178
2017-02-06Perform camera permission and app ops check when setting camera for VT.Tyler Gunn
When a calling InCallService attempts to use the setCamera API on the VideoCall, Telecom will perform a permission check to ensure that the caller has the correct camera permission and passes the app-ops camera check. A failure to set the camera will result in a callback via the call session event API. This got a little messy as the app ops package name needs to come from the InCallService, and handler usage in the VideoProvider API means we had to pass around the uid/pid of the caller, obtained before we trampoline onto the handler. Test: Unit tests added, manual testing performed. Bug: 32747443 Change-Id: I555a04f9c3fb45e60bb811f64ba855ccf2e3b0e2
2017-02-06Framework fixes to support VoLTE conf calls via RemoteConnectionServices.Tyler Gunn
Fixing some issues with the addExistingConnection and addConference APIs on ConnectionService. When a connection manager relays the addition of an existing connection or a conference to Telecom, it will assign a new ID to the new connection/conference. Due to how RemoteCSes work, the Connection/Conf will be added directly via TelephonyConnectionService and also via the connection manager's connection service. Because the ID changes, we ended up adding these twice. Conferences weren't a problem in the GSM conference case because the TElephonyConnectionService's ConnectionServiceWrapper didn't know of the IDs for the children of the conference. However, due to how the existing connections work its not the case for VoLTE conferences. To mitigate this, I'm passing the original connection/conference ID to the connection manager via extras (ugh) and using this to ensure that when the new existing connection/conference is added to telecom that the same ID is used. This ensures that we can properly de-dupe the requests from TelephonyConnectionService and the connection manager. Also, there was some missing code in RemoteConnectionService which would cause it to not properly track existing connections. Bug: 31464792 Change-Id: I436f4438fd000ea48ebea7ceb75105bd3f456e46
2016-11-09Perform camera permission and app ops check when setting camera for VT.Tyler Gunn
When a calling InCallService attempts to use the setCamera API on the VideoCall, Telecom will perform a permission check to ensure that the caller has the correct camera permission and passes the app-ops camera check. A failure to set the camera will result in a callback via the call session event API. This got a little messy as the app ops package name needs to come from the InCallService, and handler usage in the VideoProvider API means we had to pass around the uid/pid of the caller, obtained before we trampoline onto the handler. Test: Unit tests added, manual testing performed. Bug: 32747443 Change-Id: I555a04f9c3fb45e60bb811f64ba855ccf2e3b0e2
2016-10-28Modify AIDLs to include Session.InfoBrad Ebinger
am: b32d4f8b5c Change-Id: Ibbac4c74b5a0c4fcd5524c97acef5fc078d80cb7
2016-10-28Modify AIDLs to include Session.InfoBrad Ebinger
Modifies the IConnectionService.aidl file to include Session.Info information to pass from Telecom to Telephony, which is used to start external Sessions in Telephony from Telecom. Test: Manual testing and Unit Tests pass Bug: 26571395 Change-Id: Ia09a0abfa13d5167542d4c67465ea9aa1930b58b
2016-10-17Framework fixes to support VoLTE conf calls via RemoteConnectionServices.Tyler Gunn
Fixing some issues with the addExistingConnection and addConference APIs on ConnectionService. When a connection manager relays the addition of an existing connection or a conference to Telecom, it will assign a new ID to the new connection/conference. Due to how RemoteCSes work, the Connection/Conf will be added directly via TelephonyConnectionService and also via the connection manager's connection service. Because the ID changes, we ended up adding these twice. Conferences weren't a problem in the GSM conference case because the TElephonyConnectionService's ConnectionServiceWrapper didn't know of the IDs for the children of the conference. However, due to how the existing connections work its not the case for VoLTE conferences. To mitigate this, I'm passing the original connection/conference ID to the connection manager via extras (ugh) and using this to ensure that when the new existing connection/conference is added to telecom that the same ID is used. This ensures that we can properly de-dupe the requests from TelephonyConnectionService and the connection manager. Also, there was some missing code in RemoteConnectionService which would cause it to not properly track existing connections. Bug: 31464792 Change-Id: I436f4438fd000ea48ebea7ceb75105bd3f456e46
2016-09-16Fix potential NPE in RemoteConnection.Tyler Gunn
When creating an instance of RemoteConnection, the code does not properly handle the case where the video provider is null. This could cause a RemoteConnection.VideoProvider to be created for a non-existent binder. Bug: 31372624 Change-Id: I990084e2d2d68cdf2dda426cb58ad68785b35422
2016-05-06Un-@hide multi-endpoint APIs.Tyler Gunn
Bug: 28621640 This reverts commit 1bf206b766654ea9c4e9bc7a703a9d5f1d30ab72. Change-Id: If8c85e4adeb017eec2b7e8199010deae2a920c6a
2016-04-15Hide multi-endpoint APIs.Tyler Gunn
Per feature council decision, the multi-endpoint APIs will be @hide for the N release. Bug: 28196918 Change-Id: Ia80b089bc754ce87ca208382eb79442b5265844d
2016-03-24Add connection properties to Connections.Tyler Gunn
- Per suggestion of API council, moving properties of a Connection from CAPABILITIES_* to PROPERTIES_*. Bug: 27458894 Change-Id: Icce921b03cda514a991646ed39a26559c7e91230
2016-03-23Expand call/connection extras API.Tyler Gunn
Currently, connection extras are propagated up to Telecom as an entire bundle. This is not ideal, as any time a change is made to the extras, the bundle needs to be fetched, changed, and then re-set on the connection, where it is parceled to Telecom as a whole. Using how extras on an Intent as inspiration, this CL adds separate putExtras, putExtra, and removeExtra methods to allow manipulation of the extras bundle without operating on it in its entirety. This Cl also adds support for Calls modifying the extras bundle, with changes propagated back down to ConnectionServices. Bug: 27458894 Change-Id: I152340a3bca2dc03f170b06b172a6823410fb961
2016-03-14Add API support for multi-endpoint.Tyler Gunn
This CL includes changes required to support multi-endpoint (see the design doc linked off the bug). Main changes include: - support for indicating if a call/connection is "external" to the device. - support for indicating if an external call can be pulled from the remote device to the local device. - API used to initiate a pull of a call external to the current device to the current device. - Made the "connection event" API public (was previously @hide); this will be used to support passing some error events involving pulling calls to the incall ui. - Added new InCallService metadata which will be used to determine if an InCallService wants to be informed of external calls. - New disconnect causes which will be used to expose the fact that a multi-endpoint call was answered elsewhere and that a call ended because it was pulled to another device. - New call log call types to indicate if calls were answered elsewhere or pulled to another device. Bug: 27458894 Change-Id: I423f64ff965b5e50194635a51868c327782db2a1
2016-02-16Add new ConnectionEvent API (hide) to send a notification to TelecomTyler Gunn
Connection event used to inform Telecom that it should play or stop the on hold tone. This is used to play or stop a tone when the peer puts the current call on hold. BUG=25357778 Change-Id: I2669f8f5062449784a712b9dd28e576326fcc679
2015-06-29Telecom API council changes.Santos Cordon
- adding more javadocs. - fixing javadoc on isEnabled - renaming to CONFIGURE_PHONE_ACCOUNT Bug: 21573551 Change-Id: Ice035b8573a08ea18181a73c9e9a462520a934f1
2015-06-09Merge "Add API docs for RemoteConnection VideoProvider/Callback." into mnc-devTyler Gunn
2015-06-04Add API docs for RemoteConnection VideoProvider/Callback.Tyler Gunn
Bug: 21573551 Change-Id: I434d83fa84f9515634776820b2e6a8004cf693ee
2015-06-03API Cleanup: Remove VideoState class.Tyler Gunn
- Remove VideoState class. - Replace references to VideoState constants with VideoProfile equivalent. - Push VideoState static methods into VideoProfile. Bug: 21573551 Change-Id: I1bca02772b5b7d86643f612824b07faef7618725
2015-06-02Fix ringback return value.Santos Cordon
Bug: 21474410 Change-Id: I6e08e89636c3b42c97fc194a314a325245755d09
2015-05-29Un-@hide some missed video APIs.Tyler Gunn
- renamed some methods to match what is in the non-remote version of the API. - Renamed RemoteConnection.VideoProvider.Listener to Callback. Bug: 21474356 Change-Id: I4840e19921dafb4db288a4f8362b14d5dfa0aea1
2015-05-28Add extras to Connections/Calls. (1/3)Santos Cordon
Two major changes: 1) Add the notion of extras to a Connection. These extras will be parceled through to InCallService as Call.getExtras() 2) The previously existing Call.getExtras() has been renamed to getIntentExtras(). This name better describes the fact that these particular extras are from the original CALL or INCOMING_CALL intents. Change-Id: I08c1baf4f08d54757f98012f0c08b423a707c53d
2015-05-14Fix post dial for remote connectionsSailesh Nepal
Use the correct callback (onPostDialChar instead of onPostDialWait). This fixes a bug where every remote call would prompt the user to send tones after the call became active. BUG: 21004101 Change-Id: I1656a4266d0028ef29494a3cee169180267e16cd
2015-05-13Rename AudioState to CallAudioStateYorke Lee
Deprecate AudioState class and make methods @SystemApi where necessary to minimize impact to SystemApi Replace usages of AudioState inside Telecom sub-systems Fire both onCallAudioStateChanged and onAudioStateChanged callbacks for backward compatibility Support both setAudioState and setCallAudioState for all classes Bug: 21040387 Bug: 21088300 Change-Id: I3ec7b3afdaa344c6d639d1c421f1842d67f7d0f7
2015-05-12More video related API fixesYorke Lee
android.telecom.Connection.VideoProvider * onSetPauseImage takes Uri instead of String * changeCallDataUsage -> setCallDataUsage * add quality constants to changeVideoQuality() docs android.telecom.InCallService.VideoCall * setPauseImage takes Uri instea dof String android.telecom.VideoProfile.VideoState * Move constants to VideoProfile, prefix with STATE_ Bug: 21040387 Bug: 21066505 Change-Id: I764e72aced9d1e2d30d6d0cf0862100860d47c79
2015-05-12Fixes for APi reviewYorke Lee
Move CameraCapabilities into VideoProfile Make PhoneAccount and PhoneAccountHandle final Bug: 21040387 Bug: 21066505 Change-Id: I72453c89ae3765f9b9cf263938fce96d5978d2e0
2015-05-06Change sendSessionModifyRequest VideoProvider API signature.Tyler Gunn
Including a fromProfile in addition to the requestedProfile. - Changed VideoCallImpl to generate the fromVideoProfile based on the call's current videoState. This ensures the InCall UI only needs to pass in the new video profile; the VideoCall Impl already has enough knowledge to generate the fromProfile. - Changed VideoCallImpl to track the current videoQuality, which forms a part of the fromVideoProfile. Bug: 20704229 Change-Id: I89f293f03a2b13fc8c1dcfd8a07ab8640d3950e0
2015-04-30Add handler parameter for callbacks.Andrew Lee
Bug: 20160491 Change-Id: I94639b06b8c97b6585e169d667a67ce328e716af
2015-04-24Merge commit '7595842' into merge2Etan Cohen
Change-Id: I7e11e98e6d59562374195a8761d64a79dc0268e8
2015-04-16Remove connection substateJay Shrauner
Bug:20300433 Change-Id: Ifefc08b5165de3e0b6ce92007e5f612879dcc4d9
2015-04-16Support for multiple VideoCall.Listeners for a VideoCall.Tyler Gunn
The current code assumes that only a single instance of VideoCall will be provided to the default system InCall UI. Ideally multiple InCallService implementations should be able to use the VideoCall APIs. Note: it only really makes sense for a single InCallService to get/set the video surfaces. - Fixed bug in ParcelableCall which would cause a new instance of VideoCallImpl to be created every time a call is updated from Telecom. Added a flag to ParcelableCall to indicate whether the parcel includes a change to the video provider information, which is used when unparceling to determine whether to set/create the video call impl. - Renamed "setVideoCallback" to "addVideocallback". - Modified Connection.VideoProvider code to keep a list of Video callbacks and fire off all of them when Video Provider changes occur. Bug: 20092420 Change-Id: Ic16b6afe1b7532cc64d006c133adbae57946d97d
2015-04-15DO NOT MERGE Make Telecom/InCallUI APIs publicJay Shrauner
Bug:20260870 Change-Id: Ie3a2db0685664f2f1ceea8f40b1249d01e9385b8
2015-04-15Make Telecom/InCallUI APIs publicJay Shrauner
Bug:20260870 Change-Id: Ie3a2db0685664f2f1ceea8f40b1249d01e9385b8
2015-04-15DO NOT MERGE Remove deprecated telecom APIs. Mark others final.Jay Shrauner
Bug: Change-Id: I8a04903052a964f3997b5bb36730b8b200c8e472
2015-04-14Remove deprecated telecom APIs. Mark others final.Jay Shrauner
Bug: Change-Id: I8a04903052a964f3997b5bb36730b8b200c8e472
2015-04-01IMS-VT: Upgrade/Downgrade changeRekha Kumar
-Add isVideo API to VideoProfile.VideoState IMS-VT: Fix propagation of device orientation. Orientation received at VT Service is incorrect. Fixed propagation of device orientation to VT service. IMS-VT: Upgrade fix -Add session modify call timed out constant Notify listeners of video quality changed event - Propagate the video quality changed message to the UI. IMS: Add support for video quality - Add Config interface to get/set video quality IMS-VT: Multitasking feature -Support for video multitasking IMS-VT: Modification of data usage aidl Change data usage aidl interface to take parameter type long instead of int Change-Id: I7cda2a689edb86d025dfe8efc8f573918c4bd6bc Propagate the call substate changed message to the UI IMS-VT: Add call modifiable capability PhoneCapababilities call type modifiable constant added IMS-VT: Add a bit mask CALL_SUBSTATE_ALL with all call substate bits set IMS-VT: Enable Video conferencing. Enable Video conferencing. Change-Id: I4240aa6f32c75d6eea8a41da3c87bca651f0901b IMS-VT: Add hide for setVideoProvider API Observed compilation error for SDK generation due to setVideoProvider API. Marking setVideoProvider as hide inorder to resolve the compilation error. IMS-VT: Add persist.radio.ims.audio.output for VT calls -- Add persist.radio.ims.audio.output to set the default speaker for VT calls. -- Add required constants IMS-VT: Add additional error codes for upgrade downgrade -Add support to send additional error codes to UI during upgrade downgrade. Change-Id: Id452d225098fe3bccdcd37d242985c5c761144c1
2014-12-16Pass onPostDialChar call back from Telephony to Telecom.Nancy Chen
Add plumbing to alert Telecom every time a character is processed after the post dial wait state (the processing happens in Telephony). Bug: 18644688 Change-Id: I487d76aa9c959ca528c6377374aa35c2d0b4a803
2014-11-28Telecom API updates (1/6)Ihab Awad
Bug: 18292176 Change-Id: I060366234a5a60510c385dc837f2b7e79596eaf5
2014-11-10Apply @hide / @SystemApi to android.telecom.*Evan Charlton
Move the android.telecom.* namespace back to @hide, and also mark it with @SystemApi so that system-privileged apps can use them. Bug: 18302450 Change-Id: I33ae1b9b0dfdb1c5eff51ca3c829196bcfc9411c
2014-10-30Creating connections for conference event package participants.Tyler Gunn
- Add "addExistingConnection" method to connection service which provides a way for a connection service to notify telecom of a pre-existing connection (connections are normally created through telecom). - Modify TelephonyConferenceController to retrieve its state from a multiparty connection in the conference (in the case of IMS calls, this would be the ImsCall that manages the conference) instead of just taking the first one. Bug: 18057361 Change-Id: I26993aec54ecb0ce90ae6983fd3eed9d8d0a5773