52b16c610a652d7a7cb2c6a4bf5fd715eff674c2 |
|
20-Aug-2016 |
Tyler Gunn <tgunn@google.com> |
Add exception handling and retry when configuring VVM. In VoicemailStatus#apply there is a possibility for the call to ContentResolver#insert(.., ...) to throw an IllegalArgumentException if the content resolver can't be started. If this happened there was a possibility of the entire Phone process dying. Added exception handling to the apply method, and in the OmtpVvmCarrierConfigHelper added code to retry configuration if it fails. Bug: 29837276 Change-Id: I419e866e0b44b69932f4d0b9d2b46067ce2efcfe
/packages/services/Telephony/src/com/android/phone/VoicemailStatus.java
|
5d351b96ea07a6e963ce1ccd0cb6fbf034866078 |
|
29-Jul-2016 |
Ta-wei Yen <twyen@google.com> |
Fix NPE on phone boot and SIM removal In some cases TelecomManager.getCallCapablePhoneAccounts() might return a PhoneAccountHandle with a invalid subId on boot, which will cause a NPE when trying to convert the subId back to a PhoneAccountHandle in SimChangeReceiver.processSubId(). SimChangeReceiver also might be triggered with a invalid subId that is not SubscriptionManager.INVALID_SUBSCRIPTION_ID. SubscriptionManager.isValidSubscriptionId() should be used instead of comparing with the constant. In this CL the subId is validated on the above events. PhoneAccountHandleConverter.fromSubId() will also handle invalid subId gracefully and return null. The null return value is checked in all usages. Change-Id: Ie703b1a2a826a2951e8cc90fccc6badd76928bd3 Fixes: 30474294
/packages/services/Telephony/src/com/android/phone/VoicemailStatus.java
|
7eda1e410a0b01add66b81bad8cc4014890f3e0f |
|
27-Jul-2016 |
Ta-wei Yen <twyen@google.com> |
Reset voicemail status to disabled for not supported phone accounts In some cases a phone account might have already written to the status table, but the feature is later removed through changes in CarrierConfig. Previously the VVM client will just stop handling the account and the status will be stuck in the table. Sometimes it would leave a error that which will be shown to the user forever. After this CL, if the phone account has no VVM support, the status table entry will be reset to the disabled state, which will make the UI ignore the account. Bug: 30314643 Change-Id: I0b67decd62d021de90d7d0ff0f5209e7f3e624ee
/packages/services/Telephony/src/com/android/phone/VoicemailStatus.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/VoicemailStatus.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/VoicemailStatus.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/VoicemailStatus.java
|