summaryrefslogtreecommitdiff
path: root/telecomm/java/android/telecom/RemoteConnection.java
Commit message (Collapse)AuthorAgeFilesLines
* User arg object in onCallFilteringCompletedHall Liu2021-02-181-14/+5
| | | | | | | | | In Connection#onCallFilteringCompleted, use a single data class argument instead of making a hodgepodge of args. Fixes: 180616846 Test: atest CtsTelecomTestCases Change-Id: I33e80e3f59418c5d87799661c0764da029cc9f62
* Refactor CallScreeningService's internal structureHall Liu2021-02-121-1/+11
| | | | | | | | | | | 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
* Add API to inform Telephony that call filtering is completeHall Liu2021-01-151-0/+24
| | | | | | | | | | 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
* Merge "Add adhoc conference APIs to RemoteConnection and ↵Grace Jia2020-08-131-4/+21
|\ | | | | | | | | | | | | | | RemoteConnectionService." am: 329c6ff777 am: e40cfa60de Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1388908 Change-Id: I49034d851b111792fa54b3d2f236d56513bb00f9
| * Add adhoc conference APIs to RemoteConnection andGrace Jia2020-08-111-4/+21
| | | | | | | | | | | | | | | | | | | | RemoteConnectionService. Plumb through the adhoc conference APIs via these new APIs. Bug: 159944852 Test: atest CtsTelecomTestCases:RemoteConnectionTest Change-Id: Icfa27e0616dd35ba350f7a491e5c95337a286b9d
* | Improve connection manager logging.Tyler Gunn2020-05-071-11/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Improve connection manager logging.Tyler Gunn2020-05-051-3/+80
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Add missing } on @link tag.Tyler Gunn2017-11-171-1/+1
| | | | | | Test: Compiled code (this is a non-code change). Bug: 69439905 Change-Id: I334ef7d74ac9802378b43a8f95979dcaf82c592f
* Catch BadParcelableException in RemoteConnection when setting extras.Tyler Gunn2017-08-111-1/+6
| | | | | | | | | | | | | | | | 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
* Merge "API review cleanups/changes." am: 9324d6513b am: dd4bc7c69cTyler Gunn2017-03-071-4/+10
|\ | | | | | | | | | | am: c49b011151 Change-Id: Ib3d76474bef8c911b2ec6a61b916e38af0a3b861
| * API review cleanups/changes.Tyler Gunn2017-03-061-4/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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
| * Perform camera permission and app ops check when setting camera for VT.Tyler Gunn2017-02-061-4/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * Framework fixes to support VoLTE conf calls via RemoteConnectionServices.Tyler Gunn2017-02-061-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Add further Connection-side APIs for RTT (part 2)Hall Liu2017-03-011-0/+132
| | | | | | | | | | | | | | | | | | | | 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
* | Perform camera permission and app ops check when setting camera for VT.Tyler Gunn2016-11-091-4/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Modify AIDLs to include Session.InfoBrad Ebinger2016-10-281-12/+14
|\| | | | | | | | | | | am: b32d4f8b5c Change-Id: Ibbac4c74b5a0c4fcd5524c97acef5fc078d80cb7
| * Modify AIDLs to include Session.InfoBrad Ebinger2016-10-281-12/+14
| | | | | | | | | | | | | | | | | | | | 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
* | Framework fixes to support VoLTE conf calls via RemoteConnectionServices.Tyler Gunn2016-10-171-0/+11
|/ | | | | | | | | | | | | | | | | | | | | | | | | 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
* Fix potential NPE in RemoteConnection.Tyler Gunn2016-09-161-1/+6
| | | | | | | | | 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
* Un-@hide multi-endpoint APIs.Tyler Gunn2016-05-061-4/+0
| | | | | | Bug: 28621640 This reverts commit 1bf206b766654ea9c4e9bc7a703a9d5f1d30ab72. Change-Id: If8c85e4adeb017eec2b7e8199010deae2a920c6a
* Hide multi-endpoint APIs.Tyler Gunn2016-04-151-0/+4
| | | | | | | | Per feature council decision, the multi-endpoint APIs will be @hide for the N release. Bug: 28196918 Change-Id: Ia80b089bc754ce87ca208382eb79442b5265844d
* Add connection properties to Connections.Tyler Gunn2016-03-241-0/+40
| | | | | | | | - Per suggestion of API council, moving properties of a Connection from CAPABILITIES_* to PROPERTIES_*. Bug: 27458894 Change-Id: Icce921b03cda514a991646ed39a26559c7e91230
* Expand call/connection extras API.Tyler Gunn2016-03-231-3/+23
| | | | | | | | | | | | | | | | | 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
* Add API support for multi-endpoint.Tyler Gunn2016-03-141-4/+20
| | | | | | | | | | | | | | | | | | | | | | | | | 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
* Add new ConnectionEvent API (hide) to send a notification to TelecomTyler Gunn2016-02-161-0/+23
| | | | | | | | | 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
* Telecom API council changes.Santos Cordon2015-06-291-1/+4
| | | | | | | | | - adding more javadocs. - fixing javadoc on isEnabled - renaming to CONFIGURE_PHONE_ACCOUNT Bug: 21573551 Change-Id: Ice035b8573a08ea18181a73c9e9a462520a934f1
* Merge "Add API docs for RemoteConnection VideoProvider/Callback." into mnc-devTyler Gunn2015-06-091-2/+163
|\
| * Add API docs for RemoteConnection VideoProvider/Callback.Tyler Gunn2015-06-041-2/+163
| | | | | | | | | | Bug: 21573551 Change-Id: I434d83fa84f9515634776820b2e6a8004cf693ee
* | API Cleanup: Remove VideoState class.Tyler Gunn2015-06-031-1/+1
|/ | | | | | | | | - Remove VideoState class. - Replace references to VideoState constants with VideoProfile equivalent. - Push VideoState static methods into VideoProfile. Bug: 21573551 Change-Id: I1bca02772b5b7d86643f612824b07faef7618725
* Fix ringback return value.Santos Cordon2015-06-021-1/+1
| | | | | Bug: 21474410 Change-Id: I6e08e89636c3b42c97fc194a314a325245755d09
* Un-@hide some missed video APIs.Tyler Gunn2015-05-291-26/+21
| | | | | | | | | - 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
* Add extras to Connections/Calls. (1/3)Santos Cordon2015-05-281-1/+36
| | | | | | | | | | | 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
* Fix post dial for remote connectionsSailesh Nepal2015-05-141-1/+1
| | | | | | | | | 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
* Rename AudioState to CallAudioStateYorke Lee2015-05-131-1/+15
| | | | | | | | | | | | | 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
* More video related API fixesYorke Lee2015-05-121-1/+1
| | | | | | | | | | | | | | | | | 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
* Fixes for APi reviewYorke Lee2015-05-121-2/+3
| | | | | | | | | Move CameraCapabilities into VideoProfile Make PhoneAccount and PhoneAccountHandle final Bug: 21040387 Bug: 21066505 Change-Id: I72453c89ae3765f9b9cf263938fce96d5978d2e0
* Change sendSessionModifyRequest VideoProvider API signature.Tyler Gunn2015-05-061-2/+2
| | | | | | | | | | | | | | 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
* Add handler parameter for callbacks.Andrew Lee2015-04-301-50/+194
| | | | | Bug: 20160491 Change-Id: I94639b06b8c97b6585e169d667a67ce328e716af
* Merge commit '7595842' into merge2Etan Cohen2015-04-241-1/+1
|\ | | | | | | Change-Id: I7e11e98e6d59562374195a8761d64a79dc0268e8
| * Support for multiple VideoCall.Listeners for a VideoCall.Tyler Gunn2015-04-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * DO NOT MERGE Make Telecom/InCallUI APIs publicJay Shrauner2015-04-151-3/+0
| | | | | | | | | | Bug:20260870 Change-Id: Ie3a2db0685664f2f1ceea8f40b1249d01e9385b8
| * DO NOT MERGE Remove deprecated telecom APIs. Mark others final.Jay Shrauner2015-04-151-6/+0
| | | | | | | | | | Bug: Change-Id: I8a04903052a964f3997b5bb36730b8b200c8e472
* | Remove connection substateJay Shrauner2015-04-161-30/+0
| | | | | | | | | | Bug:20300433 Change-Id: Ifefc08b5165de3e0b6ce92007e5f612879dcc4d9
* | Make Telecom/InCallUI APIs publicJay Shrauner2015-04-151-3/+0
| | | | | | | | | | Bug:20260870 Change-Id: Ie3a2db0685664f2f1ceea8f40b1249d01e9385b8
* | Remove deprecated telecom APIs. Mark others final.Jay Shrauner2015-04-141-6/+0
|/ | | | | Bug: Change-Id: I8a04903052a964f3997b5bb36730b8b200c8e472
* IMS-VT: Upgrade/Downgrade changeRekha Kumar2015-04-011-3/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -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
* Pass onPostDialChar call back from Telephony to Telecom.Nancy Chen2014-12-161-1/+19
| | | | | | | | 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
* Telecom API updates (1/6)Ihab Awad2014-11-281-22/+52
| | | | | | Bug: 18292176 Change-Id: I060366234a5a60510c385dc837f2b7e79596eaf5
* Apply @hide / @SystemApi to android.telecom.*Evan Charlton2014-11-101-0/+3
| | | | | | | | 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
* Creating connections for conference event package participants.Tyler Gunn2014-10-301-1/+24
| | | | | | | | | | | | | - 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