This ensures the SuppressNotificationReceiver object quiesces the notification while we're viewing the folder
b/11789666
Change-Id: I98f388844b29458e7ea7deee398f7d8536b1919c
There were a few places calling the old notification code to cancel
notifications. These calls were completely unnecessary.
Also, when an account is removed, we now clear all notifications that
may exist for that account.
Bug: 7935576
Change-Id: I58f7e194c3f9a928e932b3b1b87475e7d3653b6a
The mailboxNotification query apparently can return bogus
mailbox ids. This underlying bug still needs fixing.
Bug: 8482721
Change-Id: Icfbd0d986ab32fe878a0dbe09a3276322c75cafe
When adding an Exchange account with a security policy, Email
generates a notification to let the user enable the policy. The
code that generates the notification attemptes to load the folder
as part of the base notification. Before the account policy has been
configured, it isn't possible to load the folder. We need to handle
a null folder when generating the notification
Also, imporoved the logging when an exception is thrown from the
PolicyService
Bug: 8341882
Change-Id: I33ff57adc3c130e8318910e352146b8ea56f9a2c
This involves redoing the persistence model, to split general,
account, and folder settings into separate SharedPreference stores.
It also requires some preferences to be moved into UnifiedEmail.
Depends on Ibe2e3f93ec164370535ffc5f5b2409544cc8d36d (UnifiedEmail)
Change-Id: Ie6ec389b5b5d2e7ab1b299d0877811ae716526e2
Migrate the old value as necessary.
Update the unit tests.
Cherry-picked from I1c276ffde3496cbc66846ed4a007088d39f20382 with
minor changes.
Bug: 7624838
Change-Id: I1b3fa331b62f556701bacba5ce9cd64305d9b52a
An empty string as the ringtone URI was triggering the system
vibration while in vibrate mode.
Bug: 7624838
Change-Id: Ide1cb2d8ac5d1295c18770bd053dd1cd0a50feb0
When multiple messages are received, now the View intent
will take the user to to contents of the mailbox, instead of
the viewing the last message
I have filed bug 7216375 to track the issue about receiving
multiple messages in different syncs
Bug: 7129870
Change-Id: I3fdf4680c62565615fcbefc75d72c2a721942604
* Allow AccountService loginFailed API to take a reason string
* Present the reason string in the dialog shown from the login
failure notification
* Handle ALERTs in IMAP login responses (for example, some servers
will occasionally require web login and we need to inform them,
rather than simply saying the password is wrong)
* This fixes a longstanding bug in our Imap1 implementation
Change-Id: I8b270cd5d4746559b6c8a78bce02f0e7c525bdea
We dont have a seperate parcelable account and serialized account
string (for pending and regular intents)
Fixes b/6805342 Email crash on opening message from notification bar
Change-Id: I5b310fbafefb8dd82b9e222421fb624703b1676b
* Remove PolicyService APIs policiesRequired, policiesUpdated,
isSupported, clearUnsupportedPolicies, and isActiveAdmin
* Add PolicyService API setAccountPolicy, which is the sole
method by which security policies are promulgated
* Add protocolPoliciesEnabled and protocolPoliciesUnsupported
to the Policy class; these are packed, localized strings
indicating policies that the protocol itself have enabled
and/or cannot support (i.e. these are policies that are
unknown to the DPM, e.g. don't load attachments)
* Differentiate in security notifications between three kinds
of policy changes - changes that don't require user
intervention (e.g. reducing requirements), changes that
require user intervention (the legacy notification), and
changes that make the account unsyncable (e.g. the server
adding an unsupportable policy). Handle all possible policy
changes cleanly.
* Make security notifications per account (with multiple
accounts, notifications would get arbitrarily munged)
* Expose ALL enforced policies via the account settings
screen in two categories: policies enforced (including
both policies enforced by the DPM and policies enforced
by the protocol) and policies unsupported (note that these
can only be seen if policies are changed after an account
is created; we do not allow the creation of an account
when any required policies are unsupported). Add a
button that forces a sync attempt, for accounts that
are locked out, but whose policies have changed on
the server (this would otherwise require a reboot).
* Updated unit tests
Bug: 5398682
Bug: 5393724
Bug: 5379682
Change-Id: I4a3df823913a809874ed959d228177f0fc799281
* While investigating the referenced bug, it was discovered that
canceling the "security required" notification (with "X", rather
than the "cancel" option in the dialog) causes the notification
to be unavailable until a reboot
* This puts the account needing a security update in the position
of being unsyncable, and might explain the referenced bug (we
have no confirmation of that step; on the other hand, the tester
can't now reproduce the problem, so an unusual action like this
is to be expected)
* The fix consists of making this particular notification "ongoing",
which prevents the user from dismissing it; arguably, this should
always have been the case anyway...
* Consider this fix for backport into LTE and MR2 branches
Bug: 5072343
Change-Id: Ia7419236cf9389380d1e079b1a9a6f425015c487
Seems like POP envelopes could get into the database and tickle the
NotificationController even before we got the full subject/sender. Just
ignore those things until the basic info is loaded.
Bug: 5061271
Change-Id: Iadfbff8a1615d2644880f5cae3727768f4f9549a
- use title as ticker text
- also properly play notification sounds on new messages. Before, if you
left a notification unread, and a new message comes in, no sound would
be played. Since fixing that, it introduces another issue where on
initial sync, tons of new messages come in (and the sync could take > 1
min). We throttle them with a 15 second interval. The notification is
always updated to reflect the most up to date information, but sounds
will never be played closer than 15 seconds together.
Bug: 5020191
Bug: 5067059
Change-Id: I5ca474fd3b210ee856035bd78bd72931da80fe40
If the account is in the process of being deleted, large parts of its
data may be being removed in parallel with notification processing. We
never handled this very well.
Bug: 5058333
Change-Id: Ic588b68438a9c5829e7e3fd5c8d52e21a037b9f4
This changes it so that the message list is shown if there are multiple
unseen messages.
Bug: 5011855
Change-Id: I14cbcfaa32cc5e2b4cb718449c62b8f39b290d4d
- "UNSEEN new messages" is the title for multiple new messages
- the small number in the right shows the unread count
Change-Id: I48f761b727ea8abc9277d737a08789fa63d10871
* Guarantee that up to 16 Account (with HostAuths), and Policy rows
are always cached. Also, 6 commonly used Mailboxes per Account
(Inbox, Outbox, Drafts, Sent, Trash, and Search)
* Precache these rows when EmailProvider starts up
* Ensure that newly added, precachable rows are cached when created
* Clean up some inefficient/wrong caching code
* Fix a commonly called method in NotificationManager in which we
load a single Mailbox row using selection vs withAppendedId
* Confirm that we don't read from the database in typical use and
heavy message loading
* Add a special URI for finding mailbox by type (using the cache)
* Add special-case code for EmailContent.count(Account.CONTENT_URI)
which is used in a number of places (including on the UI thread)
and whose value is easily determined
* Add a special URI to get the default account id
* Confirm that all unit tests work
The goal here is to be able to load all Account, HostAuth, Policy,
and Mailbox objects (by id) without worrying about disk access.
There will still be a single disk read for uncommon Mailbox reads,
but this should be considered acceptable.
Change-Id: Ibc9aa7acc73185e360b0b6f3053b90a985e97210
TODO: Unit tests
- Added Message.NO_MESSAGE
- Renamed PSEUDO_ACCOUNT_ID_NONE to NO_ACCOUNT
- Removed PARENT_KEY_NONE and use NO_MAILBOX instead
- For starters, cleaned up the UI controllers to use them.
Change-Id: I6cfd87ece2fced8e9f7c76d034c4d1dbf9e4db10
This activity already supports phone and tablet mode.
Only renames in this change - no other change.
Change-Id: Ieca17137af45e3860812091f69cd4d9b55ddf3ec
If there is only one unread&unseen message in the notification, clicking the
notification will automatically open the message view fragment. Otherwise,
the message list fragment will be opened.
Change-Id: I22778258836a36f289d71b99a6214ec82778f385
We will suspend notifications whenever we display the message list for an
account (including "combined inbox"). As soon as the message list is paused,
notifications will be resumed.
Change-Id: I481a0f59ce68f89c32210d862d0267f3f334063b
The notification controller now observes changes to the account database and
adds or removes message observers as appropriate.
Change-Id: I1670fcfd6ce744030199b86708a6ada55b239a84
We can remove the preferences stuff 'cuz the service "should be" longer
living. And, even if the service is terminated (either by the user or by
the system) we'll receive a new notification when the service comes back.
This is probably desired behaviour anyway.
Change-Id: I4850a9473401536e8fb20385b780d4736ce80a8e