History log of /packages/services/Telephony/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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/sms/OmtpMessageReceiver.java
d627a26cef1f3e7bf454af4aa49b9dc624316fb2 25-Jul-2015 Yorke Lee <yorkelee@google.com> Fix some VVM status issues

Fix potential ConcurrentModificationException in OmtpVvmSourceManager
by using a ConcurrentHashMap.

Handle potential races (PhoneStateListener callbacks, activation smses
returning after SIM card is removed)

Clear orphaned PhoneStateListeners when SIM is removed (i.e.
when removeInActiveSources is called).

Bug: 22665540
Change-Id: I65b270bd78c6a1178bc80a96f2e48f18f0bcb4e0
/packages/services/Telephony/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java
87d7c2164e219bca5dfaaf2065767ab0e036061f 22-Jul-2015 Nancy Chen <nancychen@google.com> Add better logs. Ignore all duplicate phone state changes.

We're only interested when the phone goes in and out of service so
ignore all other state changes. Cancel syncs if the phone goes out of
service.

Bug: 22607570
Change-Id: I63c84c29a7ca8eb9d303f29a1fe97c82db190041
/packages/services/Telephony/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java
d9c1b1015d0489b9d3163030594ffcd5d3c63e2a 30-Jun-2015 Nancy Chen <nancychen@google.com> Disable visual voicemail if STATUS sms returns with error.

If the server returns a STATUS sms with an error, we want to disable
visual voicemail.

Bug: 22119548
Change-Id: I7d7203e8392addc66208f21ad4517a04dded7bb0
/packages/services/Telephony/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java
6337d1be5db67c7b81e7998988ca53da50ab44c2 29-Jun-2015 Nancy Chen <nancychen@google.com> Set alarm for retries with exponential backoff.

If the first retries don't work, we want to retry later using the
AlarmManager, which will schedule the retry when convenient.
Currently it just retries every 5 seconds (that's bad). This
change includes:
- Add key to preferences to save the current retry interval
- Add helper methods to construct proper pending intent and cancel
existing retries
- Remove the "undelete"/"unread" since we will be retrying uploads as
well as downloads.
Also we don't want to make a new network request if the first one
succeeded, we just want to retry the IMAP connection.
There's also a fix here for a bug where the local voicemails were not
indicated as "read" so there would be unnecessary updates to the
voicemail provider.

Bug: 21978479

Change-Id: I18c5e2d0b7920540ded74b09f63eb94fdd959f43
/packages/services/Telephony/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java
5aef02b75aeade526de52d5c907932b97fbead52 24-Jun-2015 Nancy Chen <nancychen@google.com> Fix reboot lost setting issue, retry sms when signal comes back.

1. Bug where a reboot loses the user set "disabled" setting upon reboot.
2. Retry sending the activation sms if the visual voicemail source is
not activated.

Bug: 21978479
Bug: 21952287

Change-Id: I8394c71fe48253a439c993163cf21be73949ab3d
/packages/services/Telephony/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java
6057b1b6a078db56d02fe6d3731785ee1812e18f 24-Jun-2015 Nancy Chen <nancychen@google.com> Reset user changes to voicemails if the sync doesn't go through.

If a delete/read command doesn't get properly synced to the server,
simply set it back to the previous state so the user can try to
read/delete it later.
Also run a sync if signal goes back to "in service" since something may
have been missed while the signal was down.

Bug: 21978479
Change-Id: I1e40a7ff1d64f981be65516beff8f95b06fc1647
/packages/services/Telephony/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java
57c59860b3737d7c3cd36455ad484c035c6c1dfb 03-Jun-2015 Nancy Chen <nancychen@google.com> Allow enabling and disabling of visual voicemail through settings.

Add switch to enable and disable visual voicemail in voicemail settings.

Bug: 21126480
Change-Id: I878e1128a4a2fe1fbb389b1f93f79d30946815e0
/packages/services/Telephony/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java
9cc75becf6d2b474b319eeaa10ad16228355b806 29-May-2015 Nancy Chen <nancychen@google.com> Remove vvm dependence on AccountManager, save values in shared prefs.

Instead of using the sync adapter and accounts framework,
use an intent service for syncing and shared preferences for saving
the IMAP login values. This solves the phantom account problem.
* Renamed OmtpVvmSyncAccountManager to OmtpVvmSourceManager
* Moved carrier-specific code in SimChangeReceiver to
OmtpVvmCarrierConfigHelpoer

Bug: 20057303
Change-Id: I79347849d63bd7907df2e9aac9a14e7311215fe1
/packages/services/Telephony/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java
5d6ec274991ad9cf84d0ad83b5f3e21304c39f27 22-May-2015 Nancy Chen <nancychen@google.com> Perform syncs with the voicemail server through data connection only.

This change covers anytime the voicemail provider data changes, initial
download of voicemails and syncing when receiving a "Mailbox Update"
sync request.

Bug: 20345518

Change-Id: Ib0ca46e4a70312a581d8f99dfa6a3e389e440162
/packages/services/Telephony/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java
ac4b373b48301aaac8b2634560a163ab48ac1f0f 22-May-2015 Nancy Chen <nancychen@google.com> Make voicemail IMAP requests through data connection.

Most IMAP servers for visual voicemail can only be accessed through the
carrier's data network. This is the first part of the change that
ensures that voicemail fetches are done through the data connection.
This part of the change also updates the plumbing through the IMAP code
to get the correct socket corresponding to the network.
The change to ensure all syncing is done through the data connection is
coming soon.
Also trigger a sync every time a STATUS sms message is received because
it could mean the credentials were refreshed and therefore the local
data needs to be resynced.

Bug: 20345518
Change-Id: Ib6d9d508e38823849ee37459071d40da622ae720
/packages/services/Telephony/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java
2cf7f2935c71b0ddbdda86fa6bc18b33db2dbf99 15-May-2015 Nancy Chen <nancychen@google.com> Disable MWI when VVM is available.

Since we don't want to see two separate notifications each time we get a
new voicemail. Ignore MWI notifications when a corresponding pstn visual
voicemail source is available.

Bug: 20121229

Change-Id: I963e5eea5d66f10656a7c34926e4b10c175434f5
/packages/services/Telephony/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java
651358c4c54e01f3241ce277f61ea15bce646ebf 12-May-2015 Nancy Chen <nancychen@google.com> Ensure duplicate voicemails are ignored, add msim to voicemail.

To ensure duplicate voicemails are ignored, check the tuple of phone
account and source data (i.e. server side voicemail id). Additional work
to add phone account field to voicemail in order to make checking this tuple
possible.

Bug: 19990866
Bug: 20954214

Change-Id: I31b876251b93382a5fd92d21162631bd89840cd9
/packages/services/Telephony/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java
960e7c97c77e404a46c4e165b37f8c2ddad9685c 12-May-2015 Nancy Chen <nancychen@google.com> Fix crash when mWrappedMessageData is null.

Sometimes the internal mWrappedMessageData object of SmsMessageBase is
empty, prevent a crash when parsing the SMS message by checking if it is
null.

Bug: 20858675
Change-Id: Ia83f6c2e93c2d4de5a4211fd35b60600a6638914
/packages/services/Telephony/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java
12f47c75740a7553b8871e5924252a8ffe5073fa 11-May-2015 Nancy Chen <nancychen@google.com> Reorganize folders in omtp visual voicemail to make more sense.

* Moved classes relating to fetching to
"com.android.phone.vvm.omtp.fetch"
* Moved classes relating to syncing to "com.android.phone.vvm.omtp.sync"
* Fix references

Bug: 19236241
Change-Id: I25d79a66d9caaf373b8fd80b39ccdabc7565de5e
/packages/services/Telephony/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java
16080bf86eb0c42308b5fe767a69453358abb556 06-May-2015 Nancy Chen <nancychen@google.com> Do a comparative sync between local and server voicemails.

Currently a sync will completely wipe local voicemails and replace them
with the server voicemails. Instead, we will do a comparative sync to be
less disruptive to the user, and properly notify when a new voicemail is
available on the server. The changes are as follows:

* Rename DirtyVoicemailQuery to VoicemailsQueryHelper to handle all
queries related to the voicemail provider.
* Implement the comparative sync logic in OmtpVvmSyncService
* Fixed bug when receiving mailbox update sync message in
WrappedMessageData (tried to parse a field that did not exist)

Bug: 20764449
Change-Id: Iaae2a9fe7184e827d72baf1d5d5a72a36b3124a6
/packages/services/Telephony/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java
5acf7d27575986e389ec8136b8781a13696b1f68 10-Apr-2015 Nancy Chen <nancychen@google.com> Handle mailbox update SYNC sms by refreshing mailbox.

Since when a mailbox update (MBU) SYNC message is received it means
something has changed on the server, we need to sync locally. An easy
way to do this is to clear all current messages and reload from the
server.

Bug: 19236241
Change-Id: Ib975098c724e5a34149c50c57ab14c757a3d5cdf
/packages/services/Telephony/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java
3f51d09afa61649a1bcf02599bc1df5aafccf088 26-Mar-2015 Nancy Chen <nancychen@google.com> Download all message metadata from server.

When a new SIM is inserted, the following should happen:
1. All local data is synced up to the server
2. All local data is wiped
3. All non-deleted voicemail metadata is downloaded from the server
(this means that there is enough information to create entries for the
voicemails but not that the content/audio files are downloaded).

Also added back LogUtils in all the e-mail library code (everything
under com.android.phone.common.mail).

All newly added files are direct copies except for "Flag" (including
refactorings of the files that use "Flag", converting enums into static
strings) and Utility (which selects only the necessary utility
functions). Note that this means that some of the files have dead code
in them--so later CLs will remove the excess weighte

Bug: 19236241

Change-Id: Ibc49c96667db8ec0de2ab52bdd82bfd0f6993135
/packages/services/Telephony/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java
f32004a66424a256c87fdd28c4edaee27f5c739c 13-Mar-2015 Nancy Chen <nancychen@google.com> Fill in details for VVM sync and activation.

- Save new voicemail locally
- Query for local changes to be synced to the server
- Save IMAP credentials to sync account "userData" bundle

At this point, the activation stage except for the activate SMS
and all data sync links except for IMAP will be complete.

Bug: 19236241

Change-Id: I51fbd88c244948fb48f9626c4265a1d308bcac3a
/packages/services/Telephony/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java
e53a064be1bcea3ec2acb3c7681fa9a2762f4e3e 12-Mar-2015 Nancy Chen <nancychen@google.com> Set up activate and deactivate on SIM state change.

Register for sim state changes so that a voicemail source can be added
and removed as appropriate:
- When a sim is added, send an activate sms. (the received status sms is
processed in OmtpMessageReceiver)
- When a sim is removed, remove the corresponding sync account and
change the status in the voicemail status table to not configured.

Bug: 19236241
Change-Id: Ida82af1aee9e9a5e7649fcb2fc7dabd436816ef8
/packages/services/Telephony/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java
32031f403cadffdcb27375d8ffee3482d19953ab 05-Mar-2015 Nancy Chen <nancychen@google.com> Save status and set up sync adapter.

There are two parts to this CL:
1. Set up the sync adapter - this involves relevant xml files and
additions to the manifest and subclassing the general VvmSyncAdapter.
2. Processing the status sms that activates the voicemail source -
saving it to the voicemail status database and registering a sync
account.
These were done together because in order to have a fully-functioning
sync adapter, at least one sync account must be registered for it.

Also moved the code from VvmSyncService to OmtpVvmSyncService because
there's no need to have a super class yet. Note that most of the syncing
logic was removed for now so it can be added incrementally.

Bug: 19236241
Change-Id: If2baf43de4bd70761feadd2d2bd5c4f58c25d19b
/packages/services/Telephony/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java
7ab73ace1a04f8feffc6fa8d271148dd930f197f 18-Feb-2015 Nancy Chen <nancychen@google.com> Receive SYNC and STATUS SMS text messages.

These classes are adopted from the voicemail-example-for-android
voicemail source implementation with these notable differences:
skipping the interface classes, omitting OmtpSmsHandler, returning "null"
instead of throwing an exception, excluding constants that are not being used.
* Message receiver: receives SMS messages and sends to the parser
* Message parser: extracts fields and inserts into a wrapper, then create
StatusMessage and SyncMessage from the fields in the wrapper
* StatusMessage: an object containing the values of a status message
* SyncMessage: an object containing the values of a sync message

Bug:19236241

Change-Id: Ifb2dea832f5e5634fc301e9eb238650770b009e2
/packages/services/Telephony/src/com/android/phone/vvm/omtp/sms/OmtpMessageReceiver.java