Commit Graph

1530 Commits

Author SHA1 Message Date
Brad Ebinger
c4044355eb Fix infinite recursion due to error log message
Bug: 144446106
Test: atest TelecomUnitTests:SessionTest
Change-Id: I382f90ad6f91262b06ac8816ecf1ecabfa9f6bb6
2019-11-13 16:51:16 -08:00
Tyler Gunn
398794c0a6 Merge "Cleanup video provider binder code." 2019-11-12 20:47:38 +00:00
Treehugger Robot
46758be25c Merge "Add response to notify that an outgoing call is screened." 2019-11-12 20:44:43 +00:00
Tyler Gunn
d1fdf3a85b Cleanup video provider binder code.
1. Ensure we always unlink for death from the VideoCallImpl.
2. Ensure we compare the binders in the Call instance properly so that
we are not always replacing the VideoCallImpl used.
3. Ensure we cleanup the VideoCallImpl when its being removed.

Test: Manual testing of video calls for regressions.
Bug: 121156974
Change-Id: I440e8fb4ab9a5051ee02358933c495de736e2bd0
2019-11-12 10:43:09 -08:00
Tyler Gunn
5be8504888 Merge "More telephony updates for mainline." 2019-11-12 03:24:01 +00:00
Hall Liu
fc2be9c0d2 Fix double-add of calls
In the api compatibility logic for the new call states, we might end up
adding a call by accident in internalUpdateCall if a call was updated in
the NEW state, and it'd then get added again when internalAddCall gets
called.

To fix this, restrict the call states that would result in an add from
internalUpdateCall, and also don't add the call again in internalAddCall
if it's already present.

Fixes: 143049799
Test: CTS
Change-Id: I2a6b646a5200fedf9e02029a7120595210a24c76
2019-11-08 18:31:24 -08:00
Tyler Gunn
5567d7408c More telephony updates for mainline.
Add new TelecomManager#getDefaultDialerPackage which is multiuse aware;
this is used when showing the voicemail notification.
Remove some @hide methods from Conference; push these inline.
Move ConferenceParticipantConnection into frameworks/opt/net/ims since
it is just an IMS implementation detail.

Bug: 141576016
Test: Manual smoke test.
Test: Run unit tests.
Test: Run CTS tests.
Change-Id: I39b6955cb14cc1ca68b05c620c3d09a2cdfe30c9
Merged-In: I39b6955cb14cc1ca68b05c620c3d09a2cdfe30c9
2019-11-08 21:27:32 +00:00
Treehugger Robot
f363f3549e Merge "Add new SystemApi methods for mainline" 2019-11-08 15:46:53 +00:00
Hall Liu
d2f962a6db Add new SystemApi methods for mainline
Add new SystemApi methods for Telecom to call in lieu of the old @hide
methods. Also moved CallerInfo and CallerInfoAsyncQuery to Telecom
because there are no more users in Telephony.

Bug: 141576016
Test: CTS
Change-Id: I458ba6bcfc03db72c0419b0cab2f0d0adfa971d4
Merged-In: I458ba6bcfc03db72c0419b0cab2f0d0adfa971d4
2019-11-07 17:22:28 -08:00
Grace Jia
90b38041e8 Add response to notify that an outgoing call is screened.
Test: CTS
Bug: 135929421
Change-Id: Ied5076e1ac0dc4aca2e5709b2e817f6a6895c58b
2019-11-06 14:17:50 -08:00
Chen Xu
7631ff7c48 new telephony annotation class
This is a preparatory work for mainline. since Intdef is hidden, so we
have to move some annotations (applied in SDK/system API) to a separate
annotation class and having other module statically link to it.

TODO: include telephony annotation in framework-non-updatable-sources

Bug: 140908357
Test: Build
Change-Id: I37f8a0624bbf27f264870ee9dbf03d3aaa5cadc1
(cherry picked from commit c9d4ee112e)
Merged-in: I37f8a0624bbf27f264870ee9dbf03d3aaa5cadc1
(cherry picked from commit 4712711d3d91621083bf92f5a1647b92c20a8b81)
2019-11-04 21:26:50 +00:00
Tyler Gunn
9c3abc4692 Merge "Make Connection.Listener methods package private." 2019-10-31 18:10:16 +00:00
Tyler Gunn
633e4c3f19 Make Connection.Listener methods package private.
To prevent using these outside of the API surface, making package private
so we don't get tempted to use in the framework.

Bug: 141576016
Test: Manual smoke test.
Test: Run unit tests.
Test: Run CTS tests.
Change-Id: Ife3a82371b018b74efbe10e11015526d7aaeb7a9
2019-10-25 07:24:17 -07:00
Hall Liu
e87b7156c9 Merge "Add logging values for new call states" 2019-10-22 23:10:58 +00:00
Tyler Gunn
c63f9082a6 Telecom API updates for mainline support.
Moving some Telecom APIs into public since they are harmless to expose.
Moving some other Telecom APIs into the System API space since they're
API details specific to the TelephonyConnectionService so don't need to
be exposed in the public API.

Bug: 141576016
Test: Manual smoke test.
Test: Run unit tests.
Test: Run CTS tests.
Change-Id: Iaf75b9d671712d791f501c11536e73436908f7de
Merged-In: Iaf75b9d671712d791f501c11536e73436908f7de
2019-10-17 10:05:44 -07:00
Hall Liu
4e35b64bc3 Add logging values for new call states
Add the string values for the new call states so we don't get warnings
about unknown states in the logs.

Bug: 140317205
Test: manual
Change-Id: Ia6a27179639748287436a0785a03201985d8ab50
2019-10-14 17:50:45 -07:00
Hall Liu
31de23da21 Add SDK compatibility code for new call states
Add code that translates the new call states to old call states for
in-call UIs that don't yet support background call screening.

Test: CTS
Bug: 140317205
Change-Id: I104f5f7ab3e3dc075e1d9ed5c64fcd924f9a977b
2019-10-11 17:59:42 -07:00
Hall Liu
360428c44a Merge "Add APIs to support background call screening" 2019-10-02 18:34:54 +00:00
Hall Liu
6dfa249c88 Add APIs to support background call screening
Add Telecom APIs and AIDL code.

Test: CTS
Bug: 140317205
Change-Id: I99970f5ce12442f307a656db76cb26f5101e6c7f
2019-10-01 17:40:32 -07:00
Brad Ebinger
a9a33e1d68 Add Telecom command for setting connectionservice filter
For testing we need the emergency call to go through the CTS
ConnectionService. This is achieved by passing in a package
name filter for testing, which restricts which ConnectionServices
are available for emergency calling.

For safety this filter will be bypassed if the user calls an
actual emergency number (instead of a test number).

Bug: 138741228
Test: atest CtsTelecomTestCases
Change-Id: I656533e4a36a7bba48625bf6f763731991695aed
2019-09-30 17:46:36 -07:00
Shuo Qian
b61230c51d Integrate the active emergency session listener in TelephonyRegistry
Add Telecom shell command: "adb shell telecom set-system-dialer"

Test: PhoneStateListener cts
Bug: 135204580
Merged-In: I5eaada6a671606642a849f0ff6fe964332d80d5f
Change-Id: I5eaada6a671606642a849f0ff6fe964332d80d5f
2019-09-30 20:43:42 +00:00
Grace Jia
2d21e95e61 CallScreeningService API changed.
Test: manual
Merged-In: Idf44886158dcebf96e8bdffd98be3621f496deaa
Change-Id: Idf44886158dcebf96e8bdffd98be3621f496deaa
2019-09-26 14:37:19 -07:00
Brad Ebinger
99f17ced8f Expose ConnectionService Handler to remove flaky tests
Test: atest TelecomUnitTests
Change-Id: Ibb80b5739083ad9f85ee06f4d9f0017f4cb605bd
2019-09-17 10:44:11 -07:00
Aurimas Liutikas
00be951a08 Add missing nullability annotations.
To prepare for enabling MissingNullability Metalava check this CL
works on adding missing nullability issues that metalava flags if
we tell it to flag new things since API 29.

This is not a complete CL, mostly addresses public api and
toString/equals for @SystemApi

Exempt-From-Owner-Approval: Large scale nullability clean up
Bug: 124515653
Test: make -j checkapi
Merged-In: I109260842cfc25f06e40694997fcbb4afa02c867
Change-Id: I109260842cfc25f06e40694997fcbb4afa02c867
2019-08-30 00:14:44 +00:00
Brad Ebinger
4bccabef90 Merge "Prevent Infinite Recursion in Telecom Sessions"
am: 8dec6de25a

Change-Id: I779c9424dc7a1f9f14f7907bba76a24b9026ec5a
2019-08-13 10:25:44 -07:00
Brad Ebinger
839bfaf7d0 Prevent Infinite Recursion in Telecom Sessions
There looks to be a case where infinite recursion
is occuring when printing information about
Telecom Sessions. Set a reasonable limit of
iterations and throw a warning when this condition
occurs to better track down a root cause.

Bug: 139045282
Test: atest TelecomUnitTests:SessionTest
Merged-In: Iae69c5db070c5e58ae5d37c12d1c4df027138611
Change-Id: Iae69c5db070c5e58ae5d37c12d1c4df027138611
2019-08-13 00:39:44 +00:00
Brad Ebinger
0e93d73053 Add CAPABILITY_EMERGENCY_PREFERRED in PhoneAccount
Allow Telephony to mark a SIM PhoneAccount as
emergency preferred, meaning that Telecom will
override a user's PhoneAccount preference for
emergency calls if the PhoneAccount has the
CAPABILITY_EMERGENCY_PREFERRED capability.

Bug: 131203278
Test: Manual testing, Telecom/Telephony unit testing
Merged-In: If70d917cfb3d825f375d282012b8788d69a2f144
Change-Id: I88b8bbfa444f5445b2f0d6a1542c6406a19b240f
2019-07-11 17:55:37 -07:00
Tyler Gunn
6986a63325 Support indicating call direction on existing connections.
This is important for ensuring the original call direction for existing
connections added from Conference Event Packages matches the call direction
of the original calls merged into the conference.

Also moved a utility function into ConferenceParticipant from
ConferenceParticipantConnection to make it generically usable inside
Telephony.

Test: Run all unit tests.
Test: Manual testing using VoLTE conference calls with mix of MO and MT
calls; verify call logging is appropriate.
Bug: 134471046

Change-Id: Iab09397b811782ab0f876aac02070e3447d81f09
2019-06-25 13:48:29 -07:00
Brad Ebinger
a8abb52707 Merge "Make getSimCallManager msim aware" 2019-06-04 20:40:42 +00:00
Usman Abdullah
b0dc29a875 Add silence support to CallScreeningService/Call API
Test: CTS
Test: Unit Tests
Test: Manual
Bug: 126590377
Bug: 122671585

Change-Id: I4e7c67784198678eef1926759ec1d8afb98438f4
Merged-In: I4e7c67784198678eef1926759ec1d8afb98438f4
2019-06-04 15:38:07 +00:00
Tyler Gunn
7fceb2018e Merge "Fix bugs with Remote Connection Services." into qt-dev 2019-06-01 23:52:16 +00:00
Tyler Gunn
156a33b9a8 Fix bugs with Remote Connection Services.
1. A previous change was made in ConnectionServiceAdapterServant to add
another parameter, requiring the user of SomeArgs.  I think this fix is
pretty self-explanatory.  (facepalm)
2. queryRemoteConnectionServices in ConnectionServiceAdapter had an issue
where the callback would not get called if there was more than one
IConnectionServiceAdapter instances.  This isn't an error condition, but
a condition where we don't query telecom for the list of valid remote
connection services.  We ensure a callback with an empty list is made
(this is similar to what Telecom already does).
This seems to be an issue inherent with DSDS because there can be multiple
SIM ConnectionServices where before there was only one.

Test: Run CTS tests.
Bug: 133639062
Change-Id: I1c508e97d1f0ea1bc72ad7ebd026c1ad66a52de3
2019-05-31 17:53:48 -07:00
TreeHugger Robot
d28f0c8c78 Merge "Enhancements to conference for non-conference host scenarios." into qt-dev 2019-05-31 22:42:43 +00:00
Tyler Gunn
ac60f9554e Enhancements to conference for non-conference host scenarios.
When a device A creates a conference call containing device B and C, both
B and C can receive IMS signaling to indicate that they are in a conference
call.  This occurs on most domestic carriers; the Telephony framework
uses the "multiparty" indicator on the IMS call to switch the call to a
conference call.

We made some changes to how conference calls are logged in Q which improves
the accuracy of the call durations.  We used to log calls as they're merged
into a conference.  In the case of a participant in a remotely hosted
conference call, we'd log the call as soon as they are remotely added
to the conference.  This is unfortunate as the call durations are grossly
under-reported.

The conference call logging changes now assume we'll log the conference
event package children in the conference instead of the participants which
merge into the conference itself.  On domestic carriers, since the
call on B (or C) becomes a conference, we would then no longer log the
call.

This is FURTHER complicated because on some carriers, B and C will ALSO
receive a conference event package from the network showing all the
participants in the conference.  So if B hangs up on the conference, they
will have entries in their call log for A and C, which is really strange
because a call to C was never originated on their device.

In Telecom we need to ensure we do not log remotely hosted conference
participants, and we need to ensure that we DO log a remotely hosted
conference as if its just a single party call.

To accomplish this we need:
1. the address and name display information associated with the call from
A-B / A-C prior to the call turning into a remotely hosted conference.
We need this to log to the call log
2. the remotely hosted conference and participants need to be marked in a
manner that Telecom can identify them.

Test: Manual test.
Test: Add unit test to cover this logging scenario.
Bug: 132325382
Change-Id: I65e713f68d1695a48d96dacbf7faa4476cd8d815
2019-05-31 12:45:19 -07:00
Brad Ebinger
3636d74ead Add CAPABILITY_EMERGENCY_PREFERRED in PhoneAccount
Allow Telephony to mark a SIM PhoneAccount as
emergency preferred, meaning that Telecom will
override a user's PhoneAccount preference for
emergency calls if the PhoneAccount has the
CAPABILITY_EMERGENCY_PREFERRED capability.

Bug: 131203278
Test: Manual testing, Telecom/Telephony unit testing
Change-Id: I88b8bbfa444f5445b2f0d6a1542c6406a19b240f
2019-05-22 19:52:01 +00:00
Brad Ebinger
5d22b5c5fe Make getSimCallManager msim aware
When there are multiple subscriptions available,
the SIM call manager is currently resolved based
on what the default voice subscription is. Add the
ability for TelecomManager to get the SIM call
manager for a Telephony subscription ID.

Test: Manual; atest TelecomUnitTests
Bug: 131627085
Merged-In: I77fecbad6bc8f2c39a755ae0d2d2343d7a0b5db9
Change-Id: I748fcebb44f07fbc9deef0c6a07d2f15a44b22d3
2019-05-22 00:23:51 +00:00
Tyler Gunn
ac9d572269 Merge "Make queryRemoteConnectionServices DSDS aware." into qt-dev 2019-05-21 15:18:59 +00:00
Tyler Gunn
4c69fb3d7b Make queryRemoteConnectionServices DSDS aware.
The method queryRemoteConnectionServices had the issue that it assumes
there is a single connection manager for the device.  This assumption does
not work on a multisim device.  Since the ConnectionManager is associated
with a particular carrier, this means that the connection mgr for one
carrier could try to impact calls destined for another carrier.

This change ensures that the calling package is passed into Telecom so
that we can determine which RemoteConnectionServices which are available to
the calling connection manager.

Test: Manual test on DSDS with a connection mgr carrier and another carrier.
Bug: 131856987
Change-Id: I46d80dc68adaab7fd4374f023d7ba4242804c253
2019-05-17 10:49:38 -07:00
Ian Pedowitz
3bd719b534 Merge "Revert "Revert "Remove deprecated System APIs added in Q.""" into qt-dev 2019-05-15 16:28:54 +00:00
Tyler Gunn
f18ee4c9b8 Update API docs for TelecomManager#endCall.
Make it clear that ending an emergency call is not possible with this
method.

Test: Compile; this is a docs change.
Bug: 132438333
Change-Id: I736b90e31723ee2055cedf16142c4d0f494bf49b
2019-05-14 11:08:06 -07:00
Suprabh Shukla
169bed7b7a Revert "Revert "Remove deprecated System APIs added in Q.""
This reverts commit 79a19effee.

Bug: 129975435
Change-Id: I113c87f8c0b7ab225e4b99ef2462ae12e199b816
2019-05-13 21:04:39 +00:00
TreeHugger Robot
5968659e8f Merge changes from topics "role-dialer-dialog", "role-sms-dialog" into qt-dev
* changes:
  Deprecate intent action to the old changing default dialer/SMS dialogs.
  Remove TelecomManager.ACTION_CHANGE_DEFAULT_DIALER for apps targeting Q.
  Remove Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT for apps targeting Q.
2019-05-11 03:01:50 +00:00
Hai Zhang
929085f3c3 Deprecate intent action to the old changing default dialer/SMS dialogs.
Bug: 124452117
Bug: 131204827
Test: presubmit
Change-Id: Iee636cf2dbcf4bdda5fc487d6883591e9463b0af
2019-05-10 17:48:30 -07:00
Brad Ebinger
e7833312d7 Make getSimCallManager msim aware
When there are multiple subscriptions available,
the SIM call manager is currently resolved based
on what the default voice subscription is. Add the
ability for TelecomManager to get the SIM call
manager for a Telephony subscription ID.

Test: Manual; atest TelecomUnitTests
Bug: 131627085
Change-Id: I748fcebb44f07fbc9deef0c6a07d2f15a44b22d3
2019-05-10 00:08:20 +00:00
Ian Pedowitz
8b3b7771c1 Merge "Revert "RESTRICT AUTOMERGE Remove deprecated System APIs added in Q."" into qt-dev 2019-05-02 00:59:09 +00:00
Ian Pedowitz
79a19effee Revert "RESTRICT AUTOMERGE Remove deprecated System APIs added in Q."
This reverts commit 02014297fd.

Reason for revert: QT SDK Finalization. Will be merged again on/after May 13th

Bug: 129975435
Change-Id: Ia054b193a982dee669630555974d2d7831fe2b50
2019-05-02 00:54:39 +00:00
Ian Pedowitz
3f38719b74 Merge "RESTRICT AUTOMERGE Remove deprecated System APIs added in Q." into qt-dev 2019-05-02 00:53:29 +00:00
Tyler Gunn
d62c76c87c Merge "Add PhoneAccountHandle method to check if 2 accts are from same CS."
am: 09d4aba478

Change-Id: I91b75c13d087f55aec05c63a17528447e6869124
2019-04-30 13:41:33 -07:00
Tyler Gunn
09d4aba478 Merge "Add PhoneAccountHandle method to check if 2 accts are from same CS." 2019-04-30 20:30:13 +00:00
Tyler Gunn
425dac52b0 Change command like set-default-dialer to be a test override.
RoleManager likes to terminate apps when roles are changed which does
not work in CTS tests.  We need to use a temp override in Telecom
for now.

Test: Run the CTS tests over, and over and over again.
Bug: 131065482
Change-Id: Id36942f2813abdfa0020ce4805c492a69bd07d0e
(cherry picked from commit 509ef150f2)
2019-04-30 20:26:47 +00:00