History log of /packages/services/Telephony/src/com/android/phone/vvm/omtp/VvmPhoneStateListener.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
b29425b49c3ed353a114291712ef4d484ef645c5 22-Sep-2016 Ta-wei Yen <twyen@google.com> Disable MWI suppression if VVM cannot be activated

MWI is the traditional voicemail notification which should be suppressed
if visual voicemail is active. NotificationMgr.updateMwi() currently
checks the CONFIGURATION_STATE to suppress the MWI, but there are several
issues. b/31229016 is a bug that when the device boots the configuration
state will be cleared and the MWI for voicemail that arrives when the
device is offline will be cleared, even if the account cannot be
activated. A full solution will be adding a setMwiEnabled() method and
stop checking the configuration state, but that is too risky at this
moment (ag/1467545). This is a temporary workaround to shut down the
configuration state check if visual voicemail cannot be activated.

+ Don't clear MWI when signal is restored. Checking the notification
state to hide MWI is obsolete in ag/1333776

Change-Id: I03b7e5cde2aa7ad4c1a31526eaf63d6832717e0a
Fixes: 31229016
/packages/services/Telephony/src/com/android/phone/vvm/omtp/VvmPhoneStateListener.java
7df340d3e6dc0277c0a8307e34d40837e8106403 25-Jul-2016 Ta-wei Yen <twyen@google.com> Fix NPE when trying to clear MWI for invalid subId

VvmPhoneStateListener can be trigger with a when the PhoneAccountHanlde
no longer has a valid subId. why this can happen still needs
investigation.

This CL changed VvmPhoneStateListener to ignore invalid subIds, and
guard PhoneGlobals.clearMwiIndicator against null phone.

Bug: 30315483
Change-Id: I3d062991d8af63aaf0ebc76b3961a335dace3192
/packages/services/Telephony/src/com/android/phone/vvm/omtp/VvmPhoneStateListener.java
016df6b594d4a5aba8c1e325a646a0bcf5d6d263 22-Jul-2016 Ta-wei Yen <twyen@google.com> Postpone error until no more retries are available

Error messages generated from tasks that have retries are often short
lived and not actionable. These errors should wait until no more
retries are available before being shown.

Before this CL, All error codes are written directly to the database
when a event is triggered. After this CL, writing to the database
requires a VoicemailStatus.Editor() object to be passed in. Usually
the object will be the same direct-write object as before. But in
retrying tasks, the object passed in will have the writes deferred
until the result of the task is determined. The writes will only be
committed if the task is successful or no more retries are left.

Passing a error handling object deep down is not ideal. A better way
will be throwing a exception back up so the task can decide how to
handle it. Unfortunately, deeper codes cannot handle escaping
exceptions gracefully, and changing it involves too much risk at this
moment.

+ Subsequent activation does not show the activating message

Fixes: 30284894
Change-Id: I523e8aa2f89ff3af13016eccd2392cee302e79dc
/packages/services/Telephony/src/com/android/phone/vvm/omtp/VvmPhoneStateListener.java
ccb523db571855a8bcffe8e1a719d0221e01919b 13-Jul-2016 Ta-wei Yen <twyen@google.com> Implement VVM Task Scheduling

Before CL multiple activate events will be fired during boot and each
one of them will be processed, which is redundant. The activation will
also trigger multiple sync events. During the initial download of
multiple voicemails an upload will also be trigger for each voicemail.
The flood of connections is know to have the client banned by the
server. Codes exists for retrying, but does not actually do anything.

In this CL TaskSchedulerService is implemented which will prevent
duplicated tasks from being queued, throttle requests, and handle
retries.

"Activate" event is not in scheduling yet.

- OmtpVvmSyncService is no longer a service. It will be renamed later.
It can now be called to sync voicemail in a single threaded manner.

Fixes: 28729940
Bug: 28730056

Change-Id: I3678d8a16326e9a181bb401c003574928f02ae00
/packages/services/Telephony/src/com/android/phone/vvm/omtp/VvmPhoneStateListener.java
ceeed0fd74ba1390d5c820952dd7903b8efc7356 28-Jun-2016 Ta-wei Yen <twyen@google.com> Tweak VVM error handling

+ Losing cellular signal also set
DATA_CHANNEL_STATE_NO_CONNECTION_CELLULAR_REQUIRED, instead of
launching a separate event.
+ handle SUBSCRIBER_PROVISIONED and SUBSCRIBER_BLOCKED for VVM3
SUBSCRIBER_PROVISIONED will deactivate VVM client, as required for
VVM3

Bug: 28968317
Change-Id: If683f5c4caf62562318ea2bb415e46de70b0f66f
/packages/services/Telephony/src/com/android/phone/vvm/omtp/VvmPhoneStateListener.java
a0d3aec9f17236e8618d9a9aaeaec611215bc5e4 22-Jun-2016 Ta-wei Yen <twyen@google.com> Add Error handling for VVM3

This CL requires the prebuilt dialer to be updated, else PIN not being
set will be considered an error and the dialer will not show the
voicemail tab. b/29577838 will disable VVM3 by default so dialer support
is ensured.

Bug:29082418
Bug:28968317
Change-Id: Iaad58711853ce350916ce3f49db69ef8f92156e4
/packages/services/Telephony/src/com/android/phone/vvm/omtp/VvmPhoneStateListener.java
99282e0eb8f04d03c9464bea94fa2d8959edbd13 22-Jun-2016 Ta-wei Yen <twyen@google.com> Log visual voicemail to LocalLog

Up to 100 entries of visual voicemail log will be preserved and dumped
into the bug report. The status of the config will also be dumped.

Sample output:
https://paste.googleplex.com/4537194828005376

Fixes: 29517754
Change-Id: I9c460a6544f3b834009667e2eefb863735f82f9a
/packages/services/Telephony/src/com/android/phone/vvm/omtp/VvmPhoneStateListener.java
f5c5d934a418a6c28313f284eec4f98a6fbbdc5c 02-Jun-2016 Ta-wei Yen <twyen@google.com> Centralize VVM error Processing

To prepare for vendor specific error codes every error that is written to
the voicemail status table is centralized to the VoicemailProtocol,
which determines what error code will be actually written.

+ Use PhoneAccountHandleConverter to convert subId instead of PhoneUtils.
PhoneAccountHandleConverter still uses PhoneUtils under the hood but
it will be changed to using public API in the future.

Bug:28968317
Bug:28977379
Change-Id: I69232b276ec0d456fb9ca1fb08f25b2d51d89462
/packages/services/Telephony/src/com/android/phone/vvm/omtp/VvmPhoneStateListener.java
8a6f86c702ed29f43a346ef1ea6c837478be19fa 25-May-2016 Ta-wei Yen <twyen@google.com> Support SOURCE_TYPE in VoicemailContract.Status

Visual voicemail protocol type is written to the SOURCE_TYPE field upon
activation. For example, "vvm_type_omtp". This string will help the
dialer interpret protocol-specific error codes.

Helper methods in VoicemailContract.Status is removed in ag/1074791.
This CL replaces VoicemailUtils with VoicemailStatus to support the
removed functionality. It is also changed to an editor to update
multiple values with a single query.

Bug:26944391
Change-Id: Id5fae6852e7f15f6d9ddcdbde6577e379f16a5f3
/packages/services/Telephony/src/com/android/phone/vvm/omtp/VvmPhoneStateListener.java
bb49d410b5266d288f65bbb0f2584ac7c2abf6dd 23-Jul-2015 Nancy Chen <nancychen@google.com> Dismiss MWI when vvm status is received.

The message waiting indicator should not appear when visual voicemail is
set up. Sometimes the MWI will trigger before visual voicemail is
registered, so we need to manually disable it after visual voicemail is
available.

Bug: 22375837
Change-Id: I0fe62d34f6f773a466c0b18592fe9087d5477080
/packages/services/Telephony/src/com/android/phone/vvm/omtp/VvmPhoneStateListener.java