Commit Graph

5127 Commits

Author SHA1 Message Date
Marc Blank
ffeb7de284 Merge "Fix a race condition in which an Attachment might be wrongly deleted" 2011-05-11 18:03:26 -07:00
Marc Blank
2f6cbb021c Fix a race condition in which an Attachment might be wrongly deleted
* This is a serious bug dating back to the first Honeycomb release
* It was possible that a newly created Message could not yet be
  committed to the database when the AttachmentDownloadService
  tries to download one of that message's attachments.
* ADS, when it sees that the message (apparently) doesn't
  exist, deletes the Attachment (it appears to be orphaned)
* The effect is that the user never sees one of the attachments
  in a message.
* This bug has been reported externally
* The fix is simply to check for the message's existence before
  deciding to delete it (this check will always work properly)

Bug: 4409692

Change-Id: I106ed2fe88d2435ad7a462fced5cb307c2559fd6
2011-05-11 17:27:37 -07:00
Makoto Onuki
0c9890cf83 Merge "Remove unused strings" 2011-05-11 17:26:01 -07:00
Todd Kennedy
e7fb4ac9e3 Add account observer to NotificationController
The notification controller now observes changes to the account database and
adds or removes message observers as appropriate.

Change-Id: I1670fcfd6ce744030199b86708a6ada55b239a84
2011-05-11 17:22:56 -07:00
Makoto Onuki
4ddc2f20c1 Remove unused strings
Change-Id: I19a0a2d165827240a1cc2dd6a2cb03cbaf0f99c7
2011-05-11 17:00:44 -07:00
Makoto Onuki
03b0870ae2 Remove more unused resources
Change-Id: Ib50d0e4114349fcbcad6924b1f0aa82c33428e28
2011-05-11 15:58:47 -07:00
Makoto Onuki
94331c96d9 Remove phone activities and implement one-pane
The primary purpose of this CL is to remove phone activities, so the
one pane implementation is very much temporary and primitive, but it
should offer minimal operations.

Change-Id: If57f81db7c605c95664d49044a5cc082beda59c0
2011-05-11 15:35:27 -07:00
Todd Kennedy
dfdc8b6da3 Fix NPE in NotificationController
bug: 4409317
Change-Id: I7e515ba7c4fa7114e2bf9ecf6cb473cb3506ad1c
2011-05-11 13:45:42 -07:00
Eric Fischer
070d90d70a am fef80894: (-s ours) am 963bc99b: am a174247a: (-s ours) Import revised translations. DO NOT MERGE
* commit 'fef8089451bb22827935b1322896782d3d1c5190':
  Import revised translations.  DO NOT MERGE
2011-05-11 13:09:18 -07:00
Eric Fischer
570c01a364 am 8e39b792: (-s ours) am ac60d037: Import revised translations. DO NOT MERGE
* commit '8e39b7920c232d14b7666adb2516d51966b5d9a6':
  Import revised translations.  DO NOT MERGE
2011-05-11 13:08:54 -07:00
Marc Blank
4c3a5375ac Merge "Create/test method to set "not downloadable" flag based on policy" 2011-05-11 11:22:25 -07:00
Marc Blank
b2a909598b Create/test method to set "not downloadable" flag based on policy
Change-Id: I08bec46d0c961bdc9530768f5198346338b3e2f3
2011-05-11 11:21:33 -07:00
Todd Kennedy
bb7787bd3d Merge "Create a new notification service" 2011-05-11 07:55:58 -07:00
Todd Kennedy
71bd208ddd Create a new notification service
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
2011-05-11 07:54:07 -07:00
Marc Blank
791665da67 Merge "Add plumbing for disallowing attachment download per policy" 2011-05-10 18:31:36 -07:00
Marc Blank
9d9b481a85 Add plumbing for disallowing attachment download per policy
Change-Id: I860dfb5c28933dcd4bf96c8e4bc890bff0f53c42
2011-05-10 18:26:00 -07:00
Todd Kennedy
d31d64d330 Merge "Use observers to manage new message notifications" 2011-05-10 17:09:07 -07:00
Marc Blank
5d08360a9b Merge "Complete rewrite of account backup/restore code" 2011-05-10 16:23:41 -07:00
Eric Fischer
257261027b Merge "Import revised translations." 2011-05-10 16:04:10 -07:00
Eric Fischer
bfa2ecd6ae Import revised translations.
Change-Id: I318fe75eb4f3ca1d83bcb6e1bffd7f76b16c47c6
2011-05-10 15:41:56 -07:00
Todd Kennedy
83693a6aca Use observers to manage new message notifications
We were sort of using observers to maintain the new message notifications.
However, other parts of the code would poke into the notification controller
to set things such as a list of newly added message IDs. Now, we rely
exclusively on db observers to manage notifications.

As a side effect of this, we now set the notification text correctly to be
the most recently _added_ message. This may be different than the most recently
sent message [since there may be a non-negligable delta between when the
message was sent and when it was received].

NOTE this still suffers from an outstanding bug where we continue to get
notifications when the Eamil UX is visible. That and monitoring changes to the
account table will be addressed in future CLs.

Change-Id: I4c68273716cc685574a1ca71e5d634f53fe0d882
2011-05-10 15:36:07 -07:00
Ben Komalo
626ad1929d Support switching compose modes for the phone.
Not styled according to the UI quite yet, but functional

Bug: 3117253
Change-Id: I707e0254d142a54cd6e396fce63ebb00ba66048e
2011-05-10 15:31:51 -07:00
Eric Fischer
fef8089451 am 963bc99b: am a174247a: (-s ours) Import revised translations. DO NOT MERGE
* commit '963bc99b2f22912cdf85256e808e1ec595627fa6':
  Import revised translations.  DO NOT MERGE
2011-05-10 14:29:38 -07:00
Eric Fischer
963bc99b2f am a174247a: (-s ours) Import revised translations. DO NOT MERGE
* commit 'a174247ae60eaaac11eeed697a5f7c921e1573f2':
  Import revised translations.  DO NOT MERGE
2011-05-10 14:23:05 -07:00
Eric Fischer
8e39b7920c am ac60d037: Import revised translations. DO NOT MERGE
* commit 'ac60d037d8678f47cb6573c53c0a4cc5f2216687':
  Import revised translations.  DO NOT MERGE
2011-05-10 12:26:15 -07:00
Todd Kennedy
a48abd7f95 Merge "Add notification table shared preference" 2011-05-10 11:36:30 -07:00
Todd Kennedy
2f371e8553 Add notification table shared preference
The notifiaction table will be used by the updated notification controller.
The table stores the key and the associated last notified message key and
message count.

Change-Id: I037b5374ab51620f1cffc8b41391db858cfd3a2d
2011-05-10 11:35:04 -07:00
Makoto Onuki
1d0bf81893 Merge "Add 1-pane UI controller" 2011-05-10 11:29:57 -07:00
Makoto Onuki
f5492ea991 Add 1-pane UI controller
Added the base class for the UI controllers and the 1-pane implementaion,
which is almost empty at this point.

The old phone activities still exist and will be used on the phone by default.
To use the new activity (1-pane EmailActivity) on the phone, use the following
comamnd.

adb shell am start -a android.intent.action.MAIN \
    -d '"content://ui.email.android.com/view/mailbox"' \
    -e DEBUG_PANE_MODE 1

Change-Id: Id1fe85d4517778afc967d7d5e17e1299dd1bfefd
2011-05-10 11:28:00 -07:00
Ben Komalo
5b7e434917 Support switching between reply/replyall/forward
This introduces tab navigation on large screens with action bar (a
dropdown for the phone view is yet to be implemented, though the
internals are ready for it).

This requires the side effect that restoring a draft
reply/replyall/forward will attempt to also load the source message in
full for additional information. If that load fails for whatever reason,
the draft just remains a "compose" as it used to before.

Bug: 3117253
Change-Id: I9cff5ed4a5e9abd1338b6dbde28ceb3e4dc2b761
2011-05-10 10:36:22 -07:00
Makoto Onuki
0ea4f9295a Merge "Remove MailboxListFragment.DEFAULT_MAILBOX_ID" 2011-05-10 10:07:48 -07:00
Makoto Onuki
8a894f1ca0 Remove MailboxListFragment.DEFAULT_MAILBOX_ID
Now that we supports nested folders on IMAP too, it's not needed.

Change-Id: I80a6d6b59444132762d56ae6e03a5de69863ab8d
2011-05-10 10:06:54 -07:00
Todd Kennedy
dd9d472569 Merge "Add unit test for Utility#updateLastSeenMessageKey" 2011-05-10 08:12:34 -07:00
Eric Fischer
ac60d037d8 Import revised translations. DO NOT MERGE
Change-Id: Iabe222dbc443c59a421b3a0e4597e1cf9c85ca5e
2011-05-09 16:57:44 -07:00
Makoto Onuki
a676c56a65 Merge "Add UiUtilities.getViewOrNull()" 2011-05-09 13:39:24 -07:00
Makoto Onuki
c0491ed195 Add UiUtilities.getViewOrNull()
They're variants of getView() that will *not* crash even if the view
doesn't exist.

I didn't add them before as they would be exactly same as findViewbyId(),
but now that we make use of generics they'll be handy.

Change-Id: Ib649e591a987183064c7e98afe0e2414d9e62280
2011-05-09 11:58:47 -07:00
Marc Blank
eefccc69d3 Merge "Add message flags for "replied to" and "forwarded"" 2011-05-09 11:31:31 -07:00
Marc Blank
9279fc1b94 Add message flags for "replied to" and "forwarded"
* These will be required for EAS logo certification

Change-Id: Iaa8c970878a319fac68b3533889e6774f9cd54f9
2011-05-09 11:22:32 -07:00
Marc Blank
0993190caf Complete rewrite of account backup/restore code
* Use EmailProvider to backup/restore into a backup database
* Remove all of the old AccountBackupRestore code
* Get rid of the legacy Account class and all of the Preferences
  crap that referenced it
* Remove corresponding tests

Change-Id: I2de75aafdacc87246174303961e58547303f641e
2011-05-09 10:39:17 -07:00
Todd Kennedy
a17ee57c7f Add unit test for Utility#updateLastSeenMessageKey
Change-Id: I1335ac53c5de418fd0ed6c2b38be60165db1cb8c
2011-05-09 09:49:32 -07:00
Makoto Onuki
c0042a2278 Merge "Extract action bar related code" 2011-05-09 09:24:49 -07:00
Todd Kennedy
ae993bda32 Merge "Add lastSeenMessageKey column to the mailbox table" 2011-05-06 15:07:58 -07:00
Todd Kennedy
a9ac20b96f Add lastSeenMessageKey column to the mailbox table
The last seen message key is the id of the last message that we've "seen" for
that mailbox

Change-Id: I197f8a191654225ada1ce553cc959db775809c88
2011-05-06 14:51:41 -07:00
Ben Komalo
d594cc6120 Merge "Re-work the way MessageCompose handles attachments" 2011-05-06 12:09:26 -07:00
Ben Komalo
8d042850fb Re-work the way MessageCompose handles attachments
Now attachments are actually stored in an explicit list, instead of
being inferred from the state of the UI. This makes it possible to
switch states and restore attachments, and test.

Change-Id: I8c5f80f17f8c9e78d880ac4a1ac6ae22c2ec0579
2011-05-06 11:53:53 -07:00
Todd Kennedy
bf30f94c2e Add operation and id to notification URI
In order to provide a bit more granularity for content observers, we add the
operation (e.g. "insert", "remove" or "update") as well as the id of the row
that has changed (if it's known).

Change-Id: I214d3c030872f888cde1a2db9b6b46f1bb121b7a
2011-05-06 11:36:00 -07:00
Makoto Onuki
ad71b358c6 Extract action bar related code
...so that we can easily reuse it for the one pane UI controller.

The one pane controller should eventually have its own action bar
controller, but we can use it for the time beeing, until we get
more detailed UI spec.

Change-Id: I10c92963350dad9eb834fd7474c597aedad5eb80
2011-05-05 17:21:07 -07:00
Todd Kennedy
c60fc093b4 Merge "Remove notification if messages seen off device" 2011-05-05 15:52:02 -07:00
Todd Kennedy
f2582c4706 Merge "Remove deprecated strings" 2011-05-05 12:15:09 -07:00
Todd Kennedy
3d81e234d0 Remove deprecated strings
Removed the deprecated strings and brought back the permission strings
that were actually used.

Change-Id: Ie63a948522f7e11e1950969be5dfb26d7bc58e0a
2011-05-05 12:14:41 -07:00