This CL adds a new service that the default dialer can implement to
screen incoming calls.
If the service is implemented then Telecom uses it to decide if a call
should be shown to the user or rejected.
Note, I initially tried to simply extend InCallService instead of
creating a whole new service. The problem with this approach is that:
- this breaks some in call services which show UI as soon as they are
bound to
- the in call service lifecycle is tightly coupled to adding and
removing calls. Call screening happens before a call is added which
makes it a bad fit to in call service
- call screening is a function of only the default dialer's in call
service but the existing code also binds to "controller" call
services
For these reasons it seemed simpler to just create a new optional
service.
BUG: 22857261
Change-Id: I53f2ef93360e0af19b6ce45af21026be6cf3a7f3
By default we assume downgrade to audio is permitted; this capability
probides a means for a carrier to specifically deny that.
Bug: 22728624
Change-Id: I75e0a5b9e5ad2d970003a4691b6fc0ac0dcfe9e0
In our current design, in-call ui in parent user is used.
We need a way for Telecom to tell in-call ui that is the call a work
call or not show that we can have some UI changes to reflect it.
Bug: 26022174
Change-Id: I5f54371ddac14ffdb50359c2e792b9f24858bcb8
Some capabilities, such as CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL
are defined in terms of other capabilities; eg:
CAPABILITY_SUPPORTS_VT_LOCAL_RX | CAPABILITY_SUPPORTS_VT_LOCAL_TX
The current capability logic will return TRUE if checking for
CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL and either of the TX or RX bits
is on; which is incorrect. Yay cts tests for finding this.
Bug: 26272951
Change-Id: I55a5676674ee74e213deb3a07e226b04a37d10ee
VideoCallImpl had a depedency on android.telecom.Call, which was used
to get the current video state of a call when the user issues a
session modify request (we need to know what the video state was before
the request was sent). This proved problematic for unit tests, as
android.telecom.Call is a final class and cannot be mocked.
These changes assume the VideoCallImpl will instead have a video state
property, which is updated by the Call whenever it changes. This
removes the dependency on the Call, and makes it possible to unit test the
API.
Change-Id: Ie67255d68b23e32aa177b30ac6439632fad5cc27
The the android.telecom.Call.Details class provides its own equals
implementation. Recently added in M is to also check if the mExtras
and mIntentExtras are different. Unfortunately, Bundles do not implement
equals. As a result when Telecom calls are parceled and sent to the
InCallServices, this means that the internalUpdate method will always
assume that the Details of a call have changed, even if they have not.
This was causing a LOT of extra calls to onUpdate in the InCall UI (2x the
amount). Although there is still room for improvement in the number of
callbacks from Telecom, this fix prevents a pretty significant regression
on that front.
Bug: 23218195
Change-Id: I128e996faf60376ed3df1dc848a97c4a7b0482ee
Since the Call API's callbacks are now fired from handlers, they end up
changing the order in which the callbacks from the Phone and Call API's
are fired. To preserve the below ordering, we move the call removal from
Phone's db to after all the onCallDestoryedcallbacks have executed.
1. Call->onStateChanged
2. Call->onDetailsChanged
3. Call->onCallDestroyed
4. Phone->onCallRemoved
BUG: 22127504
Change-Id: Ice17f727decb516baabbe69adae598ebdf370094
1. IMS MWI Feature
- Add new API to update waiting
voice message count, for UI
propagation based on RFC 3842
2. phantom call support
Supplementary services
3. IMS : Incoming Call Barring
- Modified existing API to support
request like registration,activation,
deactivation,erasure,interogation.
4.Unsol supplementary service notification
- send unsol supplementary notification to UI
- add call history info
Miscellaneous
5. Ims: Originate conference call in DIALING state
6. IMS: Addition of Extras to ImsCallProfile
- Add EXTRA string definitions to ImsCallProfile
7. IMS: Definition of error code
- answered elsewhere
- FDN call failure
8.
- Propagate IMS supplementary services to telephony framework
- Introduce call forwarding history info.
Bug: 21725750
Squash of 2 earlier CLs:
Change-Id: I52a64e9a5df3479189f62921a01655a50fb386fc
Change-Id: Idc3a433785e84a3d683cbcfc7fb90f0b89dced12
Change-Id: I428ce3c6a043e43b86dea41622e0a828d8b45e53
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
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
Deprecate the existing Listener methods and interfaces so that they
can be replaced.
Bug: 20160491
Change-Id: I11c104c625b03751f3792fc4367883c18c6e2d54
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
557d2f5 Merge "Add ConnectivityManager.reportNetworkConnectivity() API" into m-wireless-dev
ab5267a Fix onLost/onFound logic in isSettingsAndFilterComboAllowed
bfd17b7 Add ConnectivityManager.reportNetworkConnectivity() API
238e0f9 OBEX Over L2CAP + SDP search API for BT profiles
31a94f4 Add ConnectivityManager.getActiveNetwork(). Rework NetID allocation in ConnectivityService so registerNetworkAgent() can return the allocated NetID.
bf18bed Merge "Non-functional code cleanup of ConnectivityService." into m-wireless-dev
db8784e Merge "Cleanup of Video Call pause functionality." into m-wireless-dev
e75b9e3 Non-functional code cleanup of ConnectivityService.
e593d0a Onfound onlost feature.
0326f58 Merge "API for config app." into m-wireless-dev
e9b056f API for config app.
d5351e7 RTT framework interface update
582b868 Unhide Network.openConnection(URL, Proxy).
0d719ca Fix typos in ConnectivityManager documentation.
Change-Id: Ib4c88f6d7ad1b24227b032555c62a5804194384b
Whether the paused videoState is available is dependent on the carrier's
implementation of the VT spec. The original VT implementation assumed
that this was stored in a system property accessed via InCall; these CLs
move this to a Call/Connection capability which will ultimately support
multisim video capable devices.
- Added new connection/call capabilities.
Bug: 16680364
Bug: 19820114
Change-Id: I3840f92270100811161120dffcfe297bef7c4ea2
-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
- Adding new Connection/Call capability: CAPABILITY_SHOW_CALLBACK_NUMBER.
- Used in Telephony to indicate on an incoming call that the callback
number should be shown.
Bug: 18689292
Change-Id: I1ab3baf9f0d5a22c4b01e6504e88d496182e01c7
This provides more granular API support for representing the mix of
state and capabilities of local and remote video clients. For our
implementation, we are primarily concerned with bidirectional video
calling. But, this provides support for representing certain error
scenarios, and flexibility for other parties which may desire to
implement one-way video calling.
Change-Id: I0373ffd377c3547fa8dd98ab5fde4f8d616a1d2f
This is a more specific and less technology-specific title for
communicating this to Dialer/InCall.
Bug: 18103173
Change-Id: I70ad50bb09eb807a621259976bb9fb7953a9a8aa