Commit Graph

4262 Commits

Author SHA1 Message Date
Yu Ping Hu
fabb15fafe Merge "Add fallbacks if sentDate is not set" into jb-ub-mail-ur10 2013-11-13 17:32:06 +00:00
Martin Hibdon
e39f2b0f27 Add fallbacks if sentDate is not set
b/11520812
This should make behavior better if the imap server
does not set the date header.

Change-Id: I593e14ce0a94179a39779ec47831fb8d3caef95b
2013-11-12 11:52:01 -08:00
Martin Hibdon
ad0e42887f Merge "Fix an infinitely retrying download problem" into jb-ub-mail-ur10 2013-11-12 19:28:59 +00:00
Tony Mantler
ea0989043a Null check for getServiceInfo
b/11538007

Change-Id: I8b06f22373c3a389939614e9c24bbe143b6fc289
2013-11-11 15:47:19 -08:00
Alon Albert
802bf1b4a7 Ignore Messsages With No Timestamp
When calculating oldest local message

Bug: 11520812
Change-Id: I0e70431d57235b5f97a3cd01c35af1b61e3dad7e
2013-11-08 16:20:52 -08:00
Martin Hibdon
272b317f3d Fix an infinitely retrying download problem
b/11436795
If an attachment download fails due to a timeout, or
an exception being thrown from startDownload(), we'd call
cancelDownload() on it. But this didn't actually cancel,
it would remove it from the inProgres list, but leave it
in the list of all downloads, so we'd immediately retry it.
This is bad for two reasons:
1. It can starve out other attachment downloads that could
have been successful.
2. It will keep attempting to do network work, even if it's
hopeless, forever, draining battery.
Now, if an attachment download fails in this way, for the first
few times, we'll move it to the tail end of the list of
downloads we'd like to perform. If it fails more than 10 times,
we'll give up completely. Giving up is not permanent, if we
have a reason to attempt a download again (such as the user
tapping on it), then it will get added back to the download
service and retried.

Change-Id: I5364a7d8b4b25ce299b8dcf061db6e9ce12daf75
2013-11-08 14:05:46 -08:00
Yu Ping Hu
1580fcacc0 Merge "Hack to make the Conversation View footer reload when a POP message finishes loading" into jb-ub-mail-ur10 2013-11-07 02:03:08 +00:00
Yu Ping Hu
8846a12c94 Merge "Correct some logging in ADS" into jb-ub-mail-ur10 2013-11-07 00:38:58 +00:00
Martin Hibdon
80e9fa84b8 Merge "Update the duplicate message deletion trigger" into jb-ub-mail-ur10 2013-11-07 00:38:56 +00:00
Martin Hibdon
1ad443612d Correct some logging in ADS
b/11436795
Some of the logging I enabled here actually causes an
exception to be thrown because the format didn't match
the args in the log command.

Change-Id: If86942e64927c0e8df7573ef099824899e20c289
2013-11-06 15:47:16 -08:00
Martin Hibdon
13ff5b86ac Update the duplicate message deletion trigger
b/11535121
Now we only delete messages with the same serverId and account
if the account is an exchange account.

Change-Id: Ic2ebb465ccdb38724b88daac8ac40771c7a24bed
2013-11-06 14:55:42 -08:00
Martin Hibdon
d482cbd54b Fix attachments in search results
b/11294681
We had some really broken logic about handling search
results.
In IMAP search, we would request, in a single pass,
FLAGS, ENVELOPE, STRUCTURE, and BODY_SANE. BODY_SANE means
the first N bytes of message content, whether it be from
the message text or attachments. This is different from how
sync works: In sync, we get FLAGS and ENVELOPE in one pass,
and in a later pass get STRUCTURE and first body part text
for each message.
If the total size of the message exceeded the maximum limit
for BODY_SANE, then we'd mark the message as partial, which
would cause us to create a dummy attachment in copyMessageToProvider().
This is a weird solution to the problem of POP messages not
being completely loaded, because in POP message body and
attachments can't be requested separately, so the dummy attachment
just signified that we needed to fetch more data.
This system fails completely on IMAP, because just fetching the
rest of the body will not get you the attachments.

But even if that code is disabled, attachments in search results
still didn't work properly. For reasons I don't yet understand,
if we requet both STRUCTURE and BODY_SANE at the same time, either
we don't received the full attachment metadata, or we ignore it, and
only use the attachments whose contents could actually fit in the
limit imposed by BODY_SANE. So attachments that didn't fit,
or didn't completely fit, would either be missing or corrupt
and unretriveable.

So, end result: It's not clear why we were trying to load
BODY_SANE all in one pass, unlike how it works for sync.
In fact, the way sync does it now makes a lot of sense: We
load FLAGS and ENVELOPE data (small) and put the in the DB
immediately so they can be displayed. In the second pass we
load the (potentially large) structure and message body. If this
is the right solution for sync, it's probably the right solution
for search. So now, that's what we do.

There is cleanup I'd like to do post MR1: Some code is duplicated
between sync and search that could be consolidated, but we're in
low risk mode now so I only changed search code.

Change-Id: I11475e290cda04b91f76d38ba952679e8e8964d5
2013-11-06 10:53:07 -08:00
Tony Mantler
06e140e4a4 Update messaging when autodiscover fails due to an auth error
b/11538085

Change-Id: I76689cbd89eef233588804edeb3893f1ad36bebe
2013-11-05 16:14:56 -08:00
Tony Mantler
62604b1a44 Hack to make the Conversation View footer reload when a POP message finishes loading
Get rid of this later when we stop using dummy attachments for "Load More"

b/11439833

Change-Id: Ia0ea9408fb74b6c305de43eada306c5df4c5fd59
2013-11-05 11:22:12 -08:00
Yu Ping Hu
294a4248be Merge "Fix off by one error." into jb-ub-mail-ur10 2013-11-01 22:19:38 +00:00
Yu Ping Hu
1a6a3fe797 Fix off by one error.
Bug: 11475318
Change-Id: I046fc66713c54f355a3dc4e6b7b7b288a1450326
2013-11-01 10:36:44 -07:00
Martin Hibdon
c085911eee Merge "Add logging to see why attachments fail to load" into jb-ub-mail-ur10 2013-11-01 01:22:15 +00:00
Martin Hibdon
5ed194434f Add logging to see why attachments fail to load
b/11436795
Now, if we ever insert or update an attachment to have
a blank location, we'll log a warning with stack trace.
Also, logging from ADS now uses the same log tag as everything
else, so we'll be able to see it without needing to turn
on some funny log tag.

Change-Id: Ic566cd87e8893128d074b897d7594a01ae12bc8c
2013-10-31 14:11:41 -07:00
Tony Mantler
3ddd39b6f1 Merge "Don't add Quick Response menu if there's no mReplyFromAccount" into jb-ub-mail-ur10 2013-10-31 21:11:32 +00:00
Tony Mantler
b0d82fecff Don't add Quick Response menu if there's no mReplyFromAccount
b/11361756

Change-Id: I880d8f2089c1a50d13367b6fcf64344070280e27
2013-10-31 10:43:29 -07:00
Yu Ping Hu
6ceae42b30 Merge "Add a provider call to get device friendly name." into jb-ub-mail-ur10 2013-10-30 23:07:52 +00:00
Tony Mantler
2a33eccd19 Merge "Don't initiate fragment transactions from onDestroy()" into jb-ub-mail-ur10 2013-10-30 21:12:06 +00:00
Yu Ping Hu
5181cd6d4a Add a provider call to get device friendly name.
For now, it sends the device model name as friendly name, in lieu
of actually having a user-supplied friendly name. This is wrong
for at least two reasons:

1) We need to have an actual user-supplied friendly name, but that's
   not easy to find.
2) This really shouldn't be a provider query -- it should be something
   the Exchange can know locally (ideally this is a system preference
   but that's not currently implemented). This workaround just lets
   us have some reasonable value that we can update easily.

Bug: 11161234
Change-Id: If83ad768736de19c9d0e833d1f86a6ce9daf5039
2013-10-30 11:50:41 -07:00
Alon Albert
3e8e59798b Null Protect Account Info
Bug: 11355850
Change-Id: Idb42769b3009787efb4edfe2ffbd65171cd8d8d8
2013-10-29 16:47:24 -07:00
Tony Mantler
9460be06aa Don't initiate fragment transactions from onDestroy()
b/10918608

Change-Id: I649c5f86e5f77fa2ade33345969a44ffebb463b9
2013-10-29 15:44:34 -07:00
Alon Albert
ae46818a19 Disable Move Actions for POP3 Folders
Bug: 11311812
Change-Id: I5813281cca76b9b4a373b5b40dbbd1909800f951
2013-10-29 11:06:36 -07:00
Tony Mantler
19b89b4bea Merge "Oh account name/email mixups, I've missed you so (no I haven't)" into jb-ub-mail-ur10 2013-10-25 20:14:38 +00:00
Tony Mantler
20367f1589 Oh account name/email mixups, I've missed you so (no I haven't)
b/11341847

Change-Id: Ib3d13e28f742e6cac84795d46121e4be2994abba
2013-10-25 10:02:06 -07:00
Yu Ping Hu
7b7d7d5cb5 Fix DB upgrade code.
Bug: 11294681
Change-Id: I7333aabbdb9e45154d83386b85398e6d108e5bf2
2013-10-24 19:58:40 -07:00
Yu Ping Hu
66f85c878c Merge "Add an additional mailbox key column to message table" into jb-ub-mail-ur10 2013-10-24 22:59:40 +00:00
Yu Ping Hu
4b73385ecb Merge "Prevent a NPE in ImapService search handling" into jb-ub-mail-ur10 2013-10-24 22:56:29 +00:00
Martin Hibdon
7dad461e9e Prevent a NPE in ImapService search handling
b/11339972

Change-Id: Ief34e6e1fd59d029847dc8525a34f20ea9de26b1
2013-10-23 16:44:31 -07:00
Tony Mantler
340a29e5fa Merge "Restore sender snippet for nested folder teaser." into jb-ub-mail-ur10 2013-10-23 22:42:39 +00:00
Martin Hibdon
c86fbb5bcb Add an additional mailbox key column to message table
b/11294681
The problem is that when we try to open an attachment for a
message in search results, it fails. The reason is that part of
loading the attachment, we need to open the remote folder the
message is in. For search results, the message's mailboxKey is
the special fake "search_results" folder, which doesn't actually
exist on the server.
For this change, I've added a new column called "mainMailboxKey".
For search results, this column will be populated with the real
mailbox the message is in. It will be blank for other messages.

This is a quick and low risk fix for this bug, but it's kind
of awkward. We would prefer to do one or both of the following
some time after MR1.

1. Make the "search_results" folder be a virtual folder, the same
way that unread, starred, and other virtual folders are. For these,
there is actually no mailbox row in the database, just some
queries that check various flags in the messages and behave
like folders in the UI. The messages actually still reside in the
real folders.
2. Remove the requirement to open the folder at all to load the
attachment.

Change-Id: I825ab846f78bf8b041a5d1d579260dc5d7b4c522
2013-10-23 14:58:57 -07:00
Tony Mantler
4cece307c4 Restore sender snippet for nested folder teaser.
It's a bit ugly, but it's much better than firing up a new loader for each subfolder.

b/11288044

Change-Id: Ia568f82ccd615ee950944d411c30f9470a55aea9
2013-10-23 14:30:59 -07:00
Tony Mantler
e3cf91af61 Set parentServerId for IMAP folders to prevent fixup code from resetting parentKey
b/11355523

Change-Id: Idbef28cdbbc0eac50552fabeb24e2ec49a6cd042
2013-10-23 14:14:21 -07:00
Tony Mantler
bf39d1166c Merge "Coalesce notification updates to avoid spamming the notification tray" into jb-ub-mail-ur10 2013-10-22 21:57:41 +00:00
Justin Ho
3cc5e68bd2 Merge "Change trigger to allow duplicate messages in search folders" into jb-ub-mail-ur10 2013-10-22 03:34:23 +00:00
Martin Hibdon
ac40b86485 Change trigger to allow duplicate messages in search folders
b/11294681
b/11325976
The problem is that when we get a message as part of a search
result, we'll end up deleting that message from the inbox (or
whatever folder it's currently in). This is because there is
a trigger that deletes messages if a new message is inserted
that has the same serverId and account.

Now, messages with duplicate serverId/account combinations are
allowed if one of the messages is in a SEARCH type folder.
Also, make a change so that when a message comes down in
a search result, we do also copy it into the primary mailbox
that message resides in, we only add it to the SEARCH folder.
Prior to this there was some code that intended to put
the search result message into the regular mailbox it's supposed
to be in, so that we'd have correct state in that message.
Unfortunately, there are several problems with this:
1. The code didn't work, it would make a copy in the regular
folder, and then unconditionally move it to the search folder.
2. If we leave this code in place, putting the message
temporarily into the regular folder still activates the duplicate
message deletion trigger, wiping out the original copy, even with
the update to the trigger.
3. It's unclear that it's even desirable to load the search
result message into the regular folder. It could be a very old
message that would not have been synced before, leaving a large
gap in your inbox, which is confusing and could interfere with
IMAP syncing.

Change-Id: I34671a3b677ab42a3efd0d170a6ebd9246ec493d
2013-10-22 02:26:15 +00:00
Yu Ping Hu
b8ef7da634 Merge "Treat updates into non-existent body rows as inserts." into jb-ub-mail-ur10 2013-10-21 23:46:14 +00:00
Yu Ping Hu
d0b81a0d06 Treat updates into non-existent body rows as inserts.
Bug: 11245727
Change-Id: I648b0267e9149f3f431ce01be9789087f73edab1
2013-10-21 16:35:45 -07:00
Yu Ping Hu
1fb5fa6981 Merge "Populate real name in From: field" into jb-ub-mail-ur10 2013-10-21 22:46:55 +00:00
Yu Ping Hu
7b28bb95a3 Merge "Update the folder sync status while searching in IMAP" into jb-ub-mail-ur10 2013-10-21 18:47:09 +00:00
Tony Mantler
632ee24d48 Populate real name in From: field
b/11246653

Change-Id: I8629ba655b99629f7b14f857acb67cb8453ddb8b
2013-10-18 16:49:56 -07:00
Yu Ping Hu
a5a28ffb63 Do not require RPC for getCapabilities.
Bug: 11241892
Change-Id: I3da136c9035414c821ee2038da01134c551bb9dd
2013-10-18 14:09:09 -07:00
Alon Albert
7c8d480276 Merge "Handle User Refresh in Edge Cases" into jb-ub-mail-ur10 2013-10-18 18:15:38 +00:00
Tony Mantler
a2b82c1a92 Coalesce notification updates to avoid spamming the notification tray
b/11115818

Change-Id: I1d8bfbb87c279c9967eee7295f31ddd7728b200c
2013-10-18 10:24:44 -07:00
Alon Albert
8c989772df Handle User Refresh in Edge Cases
Handle the following edge cases when a manual refresh is triggered:
* No connectivity
* Low storage space
* Timeout (sync not started)

Bug: 11241113
Change-Id: I580235d633fcb65999c0bfe8bf383c9c8ba72110
2013-10-18 09:32:47 -07:00
Tony Mantler
af52f20930 Update the folder sync status while searching in IMAP
b/7538620

Change-Id: I7bb0c706fd63b1fe7d20dc0f186934e0dcac2f06
2013-10-17 16:07:21 -07:00
Tony Mantler
164677131a Merge "Don't bail out of downloading an attachment if the size is delcared as zero" into jb-ub-mail-ur10 2013-10-17 18:07:46 +00:00