Commit Graph

2950 Commits

Author SHA1 Message Date
Todd Kennedy
577ddb7dd7 Remove notifyNewMessages() service callback
Since the notification controller now operates exclusively using database
observers, there's no reason for the exchange service to call the
notifyNewMessages() service API.

Change-Id: Iaa7e2f5eae786162eab23b02b03ce6d1e8a738e9
2011-05-13 09:10:28 -07:00
Todd Kennedy
f437892348 Open message if only one message in notification
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
2011-05-13 08:41:48 -07:00
Todd Kennedy
76061eba14 Remove SuppressWarning("unused") wherever possible
Change-Id: Ie799f02ab39a7d020af1fb98b6bac45fc0fd1298
2011-05-12 16:02:06 -07:00
Marc Blank
a830547adf Merge "Add messaging exception status for "attachment not found"" 2011-05-12 15:53:50 -07:00
Todd Kennedy
5701e0a555 Suspend notifications for currently shown account
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
2011-05-12 14:03:14 -07:00
Marc Blank
b221cbc785 Add messaging exception status for "attachment not found"
* Adding this enables 4409976 to be fixed in a user-friendly manner

Bug: 4409976
Change-Id: I4f5ce890b6957c27a0f59656467dbe23b480a7e3
2011-05-12 12:11:43 -07:00
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
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
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
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
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
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
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
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
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
Ben Komalo
c01b66dcf4 Merge "Fix NPE on startup." 2011-05-05 12:11:46 -07:00
Todd Kennedy
c4cdb11d24 Remove notification if messages seen off device
If we receive new messages, we may display a notification to the user. If
those same messages are read elsewhere (i.e. via a web client), we will
remove the notification.

Change-Id: Iba09afe01942e0deaac8210fd6f9b315b1c8c93f
2011-05-05 12:00:27 -07:00
Marc Blank
c96cd4a848 Merge "Add new policies to Policy and associated data structures" 2011-05-05 11:49:55 -07:00
Marc Blank
f91a03f520 Add new policies to Policy and associated data structures
* Update Policy unit test

Change-Id: I24a980537a73e40fca9fceb1b6ad6b2feaa9c342
2011-05-05 11:49:15 -07:00
Ben Komalo
ea56ccf6dd Fix NPE on startup.
There is no invariant in the controller that the fragments it references
are non-null, so querying the fragment for state is not always valid.

Change-Id: I880053be4000260b03b54ed8741e646b01314e0d
2011-05-05 11:19:30 -07:00
Todd Kennedy
075feb4556 Implement new nested folder mocks
Change-Id: I7c0c1d41b7a40d83e1237ba31d5f7949945c7e1e
2011-05-05 10:26:54 -07:00
Makoto Onuki
f456fa88bc Merge "Remove clearContent and other stuff for reusing fragments" 2011-05-05 10:08:41 -07:00
Makoto Onuki
38847b78fa Remove clearContent and other stuff for reusing fragments
from Mailbox/MessageListFragment.

This fixes some issues with screen rotation.

(We still reuse MessageViewFragement for the phone, but this should eventually
be cleaned up too.)

Also removed obsolete comments/TODOs.

Bug 4341517

Change-Id: Ib3e713ccab023151c1c47d7d7e4cd1c0de74039d
2011-05-05 10:07:20 -07:00
Makoto Onuki
171e2eed21 Merge "Revive the list footer for the message list" 2011-05-05 09:18:59 -07:00
Marc Blank
335a724ee6 Implement "automatic" sync lookback (Email side)
* Update sync window options to include "Automatic" and "All"
* Make the default (for new accounts) "Automatic"

Change-Id: Icbc696f55abcfad79e66079ebb414ca50778dcaa
2011-05-05 08:16:44 -07:00
Ben Komalo
c6beaaea59 Update MessageComposetests with latest refactors
Change-Id: I7ab1275f4f4a803588619952f55fd81520036526
2011-05-04 16:34:32 -07:00
Ben Komalo
c7c0b6791c Refactor MessageCompose.
This is a lot of code moves to make the asynchronous loading process
more explicit in nature:

- separate out code path for state restoration and intent resolving (no
  need to over-write mAction now)
- separate out code path for draft loading and source message
loading
- fixes an issue where loading a message accidentally set the draft
message instead of the source message
- makes it possible to switch reply/replyall/forward since now
processing a source message doesn't do crazy things

Bug: 4375775
Change-Id: I5b3a7ac9ed031abe88f9358df9cd46408dd1e9f9
2011-05-04 16:08:58 -07:00
Makoto Onuki
4452b15e2e Revive the list footer for the message list
It was accidentally removed in Ia67e7f3e.

Change-Id: I071ad25e699a96d09017609dc4463c24d0d4eab3
2011-05-04 13:49:40 -07:00
Marc Blank
5a29aa63b2 Merge "Remove scalpel left in patient" 2011-05-03 15:23:19 -07:00
Marc Blank
647007c31b Remove scalpel left in patient
Change-Id: Iea55718a815cf3eafdd2b506637c96aeac8e7cb2
2011-05-03 15:21:18 -07:00
Ben Komalo
bea743dc34 Merge "Cleanups to how "save draft" state is handled." 2011-05-03 12:33:32 -07:00
Ben Komalo
2f9cbdb37d Cleanups to how "save draft" state is handled.
- the options menu was being needlessly invalidated way too often (on
every text change)

Change-Id: I36e6363fdecb7f587dc322a1413d074070ed8a36
2011-05-03 11:41:56 -07:00
Marc Blank
55db7c098f Merge "Rework of security policy storage" 2011-05-03 11:20:46 -07:00
Marc Blank
aeee10e57e Rework of security policy storage
* Replace crazy (and soon to be "full") bit fields stored in an account's
  securityFlags with a row in a newly created Policy table (thus, fully
  expandable)
* Update code from database version 17 to 18; adds Policy table, a
  policyKey row in Account, and a revised trigger that deletes Policy
  information for deleted Accounts
* Update old PolicySet unit tests to work against the new Policy class
* Add test for the conversion of securityFlags to Policy
* Tested in a variety of scenarios; appears to be functionally equivalent

Change-Id: I1505ee75230d6a0d3c2b62a46326f39c2c7f9eb5
2011-05-03 11:11:47 -07:00
Ben Komalo
0bb7f1c37c Fixes to MessageCompose saving.
- "save draft" no longer closes the message
- ensure consistent state if there are successive saves
- misc changes to the way a message is loaded if there is a pending save

Bug: 3072398
Change-Id: I9cd01319772293e4d410020ab27603821a95ec9f
2011-05-03 10:35:11 -07:00
Todd Kennedy
6cd012b92d Merge "Remove dead code" 2011-04-29 09:38:24 -07:00
Todd Kennedy
bd2ab000b5 Remove dead code
Want to get this in before I start making other changes for notifications

Change-Id: I6da6ad798d125938eac1247d16a036f05c698e43
2011-04-29 09:27:35 -07:00
Ben Komalo
ec84dad879 Merge "Genericize UiUtilities.getView" 2011-04-28 17:21:24 -07:00
Ben Komalo
256652050c Genericize UiUtilities.getView
Change-Id: I7142d4a57170e3074dc896149bf95ed6d2677bdd
2011-04-28 16:54:26 -07:00
Ben Komalo
688f5355e3 Merge "Expose cc/attachment actions on UI directly" 2011-04-28 16:42:33 -07:00
Ben Komalo
6d75ae39f0 Expose cc/attachment actions on UI directly
This is a simple change to move +cc/bcc and +attachment action buttons
from the options menu to the visible UI (like honeycomb).

No attempt was made at styling the actual fields yet.

Change-Id: Ia1de8dbcf5e9ec9f7d3be3787cab657a2df72d70
2011-04-28 16:38:05 -07:00
Makoto Onuki
fe15959c20 Merge "Fix refresh animation" 2011-04-28 13:10:14 -07:00
Makoto Onuki
166b90a2f2 Fix refresh animation
Bug 4355229

Change-Id: Idfbc46f03f9cd753811179df760633db52c6f09c
2011-04-28 13:07:49 -07:00
Todd Kennedy
958b15e8f3 basic code cleanup of the notification controller
* javadoc methods
* rename some methods
* remove duplicate code; now new message and other account notifications
  are created with the same code

Change-Id: Iecf70494b6407a9a73380de103390a59d006191b
2011-04-28 11:58:49 -07:00
Makoto Onuki
8112732376 Move more UI stuff from activity to the UI controller
- Now all the UI stuff is owned by the UI controller
- Except temporary UI (exchange search and per-mailbox-settings)
- Except error banner
  This should be moved too eventually, but I consider it as a low-priority.
  I'll leave it as-is for the time being.
- Moved RefreshTask too.  The spec for refresh has dependency to the UI.
  (i.e. implicit refresh of the mailbox list may not be necessary for
  the phone.)

Also renamed the main activity to EmailActivity.

Change-Id: I00585856bdacf69aa4e104178a5cf7352ff6d592
2011-04-28 10:59:55 -07:00
Makoto Onuki
13c7595bb9 Merge "Removed "global loader ids"" 2011-04-28 10:26:18 -07:00
Makoto Onuki
0f7f2be0b1 Remove unused class ProgressListener
Looks like it's very old code (no history in git) and not used anywhere.

Change-Id: I39d450d8d1fe56ad6722668c8841edaa074c9b4d
2011-04-28 10:01:07 -07:00
Makoto Onuki
fdca4a6a57 Removed "global loader ids"
I don't know what I was thinking when I added them to ActivityHelper,
but DialogFragments have their own loader managers (because they're
really fragments), so loader IDs in it won't conflict with anything.

This class used to use (mistakenly) host activity's laoder manager,
which was probably the reason for my confusion.

Change-Id: I7cd4d08b77ce8ea74fbf13b3273692da791ed23e
2011-04-28 09:55:07 -07:00
Makoto Onuki
e5b7f27fdd Fix combined view crash
Bug 4351392

Change-Id: I839d66a13df949f469afa7f10138026f6b463ad6
2011-04-27 15:52:26 -07:00
Makoto Onuki
6ea2c7c4a7 fix the build
It's a redo of changes made to MessageListXLFragmentManager on If4048d45.

It's a gerrit bug -- if you rename a file which has been changed in another CL,
gerrit allows you to submit it without rebasing it.

Change-Id: I1a9741befd1a4c2e74ce7afffca976b98e82a357
2011-04-27 13:30:45 -07:00
Makoto Onuki
8b6e443cdd Merge "Merged activity: move UI from activity to UIController" 2011-04-27 13:20:12 -07:00
Makoto Onuki
aee368d205 Merged activity: move UI from activity to UIController
- Renamed XLFragmentManager to UIControllerTwoPane
- Moved UI code from the activity to UIControllerTwoPane
- Bunch of clean-ups (Mostly renames to make things self-descriptive)
- Removed unused class MessageListFragment.State
- Fix bug 4341563

Change-Id: Ia2230bd5ec501fbc5c92b07b2ba874153b577a39
2011-04-27 13:17:27 -07:00
Makoto Onuki
567442bcf8 Merge "Fix "move to" dialog." 2011-04-27 12:44:23 -07:00
Makoto Onuki
4e033e0ac7 Fix "move to" dialog.
- Now we always use a fragment as a callback, rather than assuming the parent
  activity implements it.
- Use a generics trick to make sure the callback fragments really implements
  Callback.
  (Might be abuse of a language feature, but it's at least safer than runtime
  check...)

Bug 4314669
Bug 4345496

Change-Id: If4048d456b298784097e202cffab170177ac7b2d
2011-04-27 12:43:45 -07:00
Todd Kennedy
e87ff6c3cb Opportunistic cleanup
not making any real code changes:
* removed deprecated, unused methods
* remove 'throws' clauses when that exception is never thrown
* renamed method Controller#moveMessage()-->moveMessages()

Change-Id: Ifd006f760f0c19283e94a11a45c71295c8da35f7
2011-04-27 12:01:04 -07:00
Todd Kennedy
f66058581c Merge "Vary move-to dialog contents by account type" 2011-04-27 11:42:03 -07:00
Todd Kennedy
98c0f45e60 Vary move-to dialog contents by account type
For EAS accounts, we use the displayName column to populate the dialog. For all
other accounts, we use the serverId column. This means we will continue to not
have a fully-qualified pathname in the move-to dialog for EAS accounts.

Change-Id: I6dda89e037b0910180bee93a5bc091d65d2614b0
2011-04-27 11:35:30 -07:00
Marc Blank
4bca417846 Merge "Expose unsupported policies in the UI (account setup)" 2011-04-27 10:59:31 -07:00
Todd Kennedy
019341af98 Set mailbox flags for message contents
For IMAP, it's possible for a mailbox to exist on the server, but, to be
unselectable. Previously, these folders were never added to the folder list.
However, with nested folder support, we need to have these folders in the
UX so the user can get to its sub-folders (which may be selectable).

Change-Id: I11135fafbb14b40660983804fb86bd223e180d5e
2011-04-27 09:10:30 -07:00
Marc Blank
265530723b Expose unsupported policies in the UI (account setup)
Change-Id: I75b650af92c87bd990009e54072ac4b58ed0895b
2011-04-26 18:12:45 -07:00
Makoto Onuki
79b97da58c Merge "Fix phone UI." 2011-04-26 13:15:03 -07:00
Makoto Onuki
3de5fd026d Fix phone UI.
Bug 4339904

Change-Id: I343e4a9a77ee7baeff7c9dc1222dad2701efb0df
2011-04-26 13:13:40 -07:00
Todd Kennedy
27cf8b5ffe Display full pathname in move-to dialog
With the recent changes to hierarchical folders, the move-to dialog is
quite unusable if you have multiple child folders with the same name.
While waiting for UX to decide on the exact display, make a few quick
changes to display the fully-qualified pathname instead of just the
child folder name.

Change-Id: Id5c1cc98364fbf7a82a05ac30e944507c7d16320
2011-04-26 11:45:47 -07:00
Todd Kennedy
1f1a056c6d Merge "Add hierarchical folders to IMAP" 2011-04-26 08:12:10 -07:00
Makoto Onuki
0bea177b95 Merge "Create new mailbox fragment for nested folder navigation" 2011-04-25 16:38:50 -07:00
Makoto Onuki
e62770d979 Create new mailbox fragment for nested folder navigation
Create a new instance of the mailbox list fragment when navigating through
nested folders. (drill-in / going back to the root mailboxes.)

Also the fragment manager now has two public methdos for navigation that
are called by the activity.  They will be the common interface for
the tablet UI manager (i.e. MessageListXLFragmentManager) and the
phone UI manager.
- openAccount(accountId)
  Open the default view for the account.  Used when switching accounts.
- open(long accountId, long mailboxId, long messageId)
  Opne a particular view.  Used when, for example, opening a message from the
  widget.

Known issue:
- This breaks drag&drop through nested folder navigation.
  This is because a new mailbox list fragment created during D&D doesn't
  get the "drag started" event.

Change-Id: I69c14b71b4f681f8ab57f3ddd2cff9744a832076
2011-04-25 16:35:57 -07:00
Todd Kennedy
22208771b7 Add hierarchical folders to IMAP
We now create folder hierarcies for IMAP. This also includes a nifty SQL
statement that will get your existing database into shape.

Change-Id: If07a0632e9b250cf0c33c3e16bfba5816beab94c
2011-04-25 15:11:38 -07:00
Ben Komalo
1611d0baed Make ImapStore tests use mocks where possible
Change-Id: I2a1d5e7d3cc3b105a24a5fc29772bcd4a0308ad3
2011-04-25 16:50:37 -04:00
Ben Komalo
8dc402b28a Merge "Fix some unit tests" 2011-04-25 13:41:15 -07:00
Ben Komalo
d9cf94632f Fix some unit tests
- some proguard flags were stale
- some deprecated methods were legitimately stripped - kill the tests
for them

Bug: 4330508
Change-Id: I6d5c46c99d002895377f32b203844e9a6dcf0074
2011-04-25 13:38:51 -04:00
Marc Blank
cbb2abc80e Fix problem w/ ExchangeSender instantiation
Bug: 4334119
Change-Id: Ic900d08a3826754d2807ca84cbb9b8f2f4e28fc3
2011-04-22 18:13:47 -07:00
Ben Komalo
a6e6b9969a Don't rely on Activity to set the context for ops
The Fragment can get detached from the activity prior to performing an
operation, so for now, use the context reference that the fragment has
instead.

In the long run, we should avoid referencing the application context,
but a restructuring of ActivityHelper may help instead.

Bug: 4332451
Change-Id: Ieabff8ec0cc363f7d2eebd3ed47c230df9959886
2011-04-22 17:11:36 -04:00
Ben Komalo
23b441a5c8 Merge "Loosen up type requirements for contexts" 2011-04-22 14:11:06 -07:00
Ben Komalo
7735d548e8 Loosen up type requirements for contexts
A context is sufficient for most operations ActivityHelper does

Change-Id: I2706b2b579210257d0ee6ace6277aa53e84dc52e
2011-04-22 17:00:43 -04:00
Marc Blank
d2fd1252d5 Add status code(s) for disabled sync (needed for EAS 14.0)
Change-Id: Ie65141c4d83412274dbbc39dffed7c3be394bb84
2011-04-22 12:50:37 -07:00
Ben Komalo
51ea22b0d3 Merge "Fix apk attachments so they can be installed" 2011-04-21 14:45:18 -07:00
Makoto Onuki
9fec3d778f Merge "Make sure to exit CAB when MessageListView ." 2011-04-21 13:55:07 -07:00
Todd Kennedy
7155c49f35 Use Account objects instead of URI for exchange
No need to use URIs when we have the Account object.

bug: 4322402
Change-Id: I06e8a5b43063446fa41f7e81eb3638b2570abe5c
2011-04-21 13:10:32 -07:00
Makoto Onuki
fe001abe79 Make sure to exit CAB when MessageListView .
Change-Id: Ie6c5ec26ceff700ee00c6fbb3af4cbe23c498db4
2011-04-21 12:17:41 -07:00
Ben Komalo
e36648697f Fix apk attachments so they can be installed
This introduces an in-memory cache of file paths for an attachment so
that we can install from a filepath instead of a content URI.
The cache also allows us to prevent duplicated files made if the user
hits save multiple times (the save button is disabled).

Bug: 3338997
Change-Id: I56651a55eef2f1a3f24b6d936c37736c4fc3d295
2011-04-21 12:07:32 -07:00
Todd Kennedy
200c6bd9fa Simplify mailbox synchronization logic
The logic is simplified by creating database rows for new mailboxes down
in Imapstore. This means that the difference between local and remote folder
lists are mailboxes that need to be deleted.

Note -- this is still not the final CL. We probably update the database too
frequently and the column values aren't updated to support nested folders.

Change-Id: Ifbe4e0cf74ba81e5b6156b452ab72c56c35235ab
2011-04-21 11:54:30 -07:00
Makoto Onuki
33cfddf1fa Merge "Merged activity step1: Use FragmentTransaction (tablet)" 2011-04-20 15:41:08 -07:00
Makoto Onuki
38a33bd28f Merged activity step1: Use FragmentTransaction (tablet)
Change-Id: Ia67e7f3e0658cb962d328c10affe11ccb5a165ea
2011-04-20 14:55:40 -07:00
Todd Kennedy
daf869cf60 Use an Account object to create a mail sender
Instead of boiling the account down to an unusable URI, just pass along
the Account object.

Change-Id: Ida408912de29734c8f4ed9cdf09a4d633dd03002
2011-04-20 11:14:02 -07:00
Todd Kennedy
031527a03e Merge "Use Account instead of URI to create transports" 2011-04-20 09:16:28 -07:00
Todd Kennedy
a50fc99b0c Use Account instead of URI to create transports
There's no need to create a URI just to rip in appart again. Additionally, to
support additional changes (i.e. to use Mailbox instead of Folder in the
MessageController), we need to store the actual Account.

NOTE -- This change only affects IMAP and POP3. SMTP will come in a follow-on CL

Change-Id: I400036a17271c99272fd9c603547dcd713b50b9d
2011-04-20 08:31:24 -07:00
Ben Komalo
8f84cae3c3 Merge "Re-work the layout computation for MessageListItem" 2011-04-19 12:19:42 -07:00
Ben Komalo
8b2109f047 Re-work the layout computation for MessageListItem
This now uses an XML layout that gets inflated and computed after a
layout pass. The drawing simply uses the coordinates stored after the
layout.

This makes it a lot easier to maintain the different views and allows us
to simply provide different XML files for different modes/views, isntead
of trying to hand tweak Java layout code.

Some TODOs - clean up the "paints" and optimize the layout/drawing
computation

Change-Id: I784919f726bd4d80aba8744a8f047fcfe79ad93a
2011-04-19 11:53:30 -07:00
Todd Kennedy
ba7652cda0 Make ImapFolder a top-level class
No code changes; just moving the class

Change-Id: I4e4544d99d52dde85b96c99ef45da3a96e7d3d48
2011-04-19 09:31:43 -07:00
Ben Komalo
36990d46cf Fixup auto advance policy handling.
The phone code has gone stale and ignored auto advance policies - this
fixes it, though that code is likely to get merged anyways.

Makes it so that auto-advancing to the end of the list pops back out to
the message list

Bug: 4302999
Change-Id: I609747c0a19672b8aa56d2c0ab57533823899e47
2011-04-18 09:48:58 -07:00
Todd Kennedy
cfbf1eb66d Clean up drag-and-drop
Basic refactoring of the drag-and-drop logic to make it a bit cleaner

Change-Id: I0e59074710be00bd285f637e92f554c8ee47fabf
2011-04-15 14:33:25 -07:00
Todd Kennedy
d1b1404d76 Merge "Implement drag-n-drop with nested folders" 2011-04-15 08:57:26 -07:00
Todd Kennedy
6c3cd4e247 Implement drag-n-drop with nested folders
We can now drill down into nested folders during drag-n-drop. Simply hover over
a collapsed folder for 750ms and it will auto-expand.

Change-Id: Ia9b42dd87e19c2ebdf8675c761cb1453bb26d158
2011-04-14 16:23:20 -07:00
Ben Komalo
8a05da7c8c Remove uneeded layer of parcelling.
ListStateSaver did nothing more than hold a Parcelable, and was a
Parcelable itself. The abstraction may have been useful at some point,
but that time seems to have passed.

Change-Id: I2f1f45828782ab44aa8935aa50b825e07845a2a5
2011-04-14 15:30:54 -07:00
Ben Komalo
28b3fec5c1 Include guava in Email.
- adds a compile time dependency to the guava library
- changes to use @VisibleForTesting in places to ensure it works

Change-Id: I2c5c4f9861234fec3613da011185e5c11f228466
2011-04-14 13:49:01 -07:00
Todd Kennedy
7219fccc42 Always display subfolder icon in the same view
We were handling the subfolder icon strangely. Sometimes it was shown in the
folder_icon view and sometimes in the folder_expanded_icon view. Now the
folder_icon view is used exclusively for system folders (such as inbox, etc...)
and folder_expanded_icon is always used for the expanded/collapsed icon.

Change-Id: Ifff9a44cc792497a469c2408337dafd431f6dfc3
2011-04-14 10:12:18 -07:00
Ben Komalo
5b84c8d9d0 Merge "Apply auto-advance policy when doing a batch op." 2011-04-13 18:04:25 -07:00
Ben Komalo
52618afa81 Apply auto-advance policy when doing a batch op.
Batch operations that occur when the current message selection is
contained within the affected messages will now force the selection to
advance according to the auto advance policy to the next unselected
conversation.

Bug: 3409809
Bug: 3405864
Change-Id: Ibe75f32b9263ef6f3fb2314a07e63980f437f988
2011-04-13 18:03:48 -07:00
Ben Komalo
2071bde957 Merge "Minor fix to error dialog formatting." 2011-04-13 16:13:54 -07:00
Ben Komalo
5a2d7da136 Minor fix to error dialog formatting.
Bug: 3515558
Change-Id: Id4d88379dc68c114338fdd2d4d437a2defb94ba4
2011-04-13 16:07:50 -07:00
Todd Kennedy
a8ba5e76dc Merge "only allow navigating to mailboxes w/ children" 2011-04-13 14:56:16 -07:00
Todd Kennedy
f7036b7379 only allow navigating to mailboxes w/ children
If a mailbox doesn't have any sub-mailboxes, only allow selecting them to view
any contained messages. Do not update the mailbox list.

Change-Id: I6f469bf20a57dc440885402084c21ff184f13dff
2011-04-13 14:35:03 -07:00
Ben Komalo
6336a5231e Remove a layer of public methods that weren't used
Change-Id: Iba88634db2a687ce72f6875e0b499f79c219ca8f
2011-04-13 13:03:23 -07:00
Ben Komalo
1d1b7a070a Merge "Add signature when starting from external intents." 2011-04-13 10:22:51 -07:00
Todd Kennedy
ce99dd8cd1 Add comment to package-private members & methods
Change-Id: I9bb641d44253635f8dacc5dfecde55eac8d72c59
2011-04-13 09:52:42 -07:00
Ben Komalo
0fb68c8f0c Add signature when starting from external intents.
Also update some of the tests.

Bug: 3122070
Change-Id: Ia0e4620f54279dc53ca1c4484fec6508c411b418
2011-04-12 18:10:05 -07:00
Todd Kennedy
2b82c3f0a3 Add columns to cursor to allow for proper layout
The layout requires different indentation. Although the exact layout may
change, we will likely always need to differentiate between the different
mailbox types.

Change-Id: Ia2ff84b552873f92fa45563b2dc0868c29bec3e3
2011-04-12 15:09:51 -07:00
Todd Kennedy
57dc03acec Merge "Add current nested folder to list" 2011-04-12 15:08:00 -07:00
Makoto Onuki
0efbee2bd0 Merge "Fix bug that prevents from accepting 2 invites in a row." 2011-04-12 13:56:59 -07:00
Makoto Onuki
5dceaa5b5e Fix bug that prevents from accepting 2 invites in a row.
mPreviousMeetingResponse is tied to the current response state, so it
should be reset too when we clear the response checkboxes.

Bug 4132763

Change-Id: If816706f47f8500441330882fb4f372b31465ff5
2011-04-12 11:08:16 -07:00
Todd Kennedy
7f139f14b9 Add current nested folder to list
When selecting a nested folder, the currently selected folder should be listed
along with "All Folders" and sub-folders

Change-Id: I7c6f726a0355a13d3e7b59aa4707bd92473283b4
2011-04-12 09:47:56 -07:00
Ben Komalo
7dc1e86d91 Less aggressive selection change in msg content.
All focus changes to the message body content was pushing the selection
to the end, which is wrong if state restoration happens, and is just
non-standard behavior if the user explicitly taps on a particular spot
on the text view. Make this slightly less aggressive.

Misc other changes in compose view.

Bug: 3076256
Change-Id: I9edb9c3c4edb5ddec12207f4136f3ca73cabf89d
2011-04-12 09:23:40 -07:00
Ben Komalo
2577842269 Misc fixes and dead code removal.
Change-Id: I48b2fa5f7bf619197d882c71e8b174d31d130e26
2011-04-11 14:01:01 -07:00
Marc Blank
cd5da3c445 Remember to clear query in MessagesAdapter if we're not searching
Change-Id: I3b16f080c66f6ce025e41a7c459aa3cb94dbecd0
2011-04-08 14:01:35 -07:00
Marc Blank
18d3b3de1e Merge "Improve temporary mailbox settings UI" 2011-04-07 20:04:18 -07:00
Marc Blank
f047c7cfd1 Improve temporary mailbox settings UI
* Start dialogs with current setting selected
* Add Cancel/OK buttons

Change-Id: Ia3d28eec558a8af8d3826b70cb313b68a5efc533
2011-04-07 20:03:23 -07:00
Joe Onorato
7af1ad3b58 Remove the deprecated things from Config.java. These havent been working since before 1.0.
Change-Id: Iea671dc01ff45f1009f6fbb22cf7259e0fc1d4f1
2011-04-07 18:41:11 -07:00
Todd Kennedy
df3133bf3d Merge "Always use the same loader id" 2011-04-07 15:03:59 -07:00
Marc Blank
983a624549 Merge "Temporary UI for setting mailbox sync frequency/lookback" 2011-04-07 14:53:48 -07:00
Marc Blank
d4a1500ae9 Temporary UI for setting mailbox sync frequency/lookback
* Just in MessageListXL for now, as with search
* This allows us to test functionality within EAS, and confirm that
  it's all working w/ unbundled Exchange (API 1)

Change-Id: I4f062ae871a28d2b57a23a269d6ec65903181d26
2011-04-07 14:53:08 -07:00
Todd Kennedy
5965b23909 Always use the same loader id
There's no need to use a different loader ID for each mailbox. Just use
one loader ID to keep things simple.

Change-Id: I46cf0a9ad48c8e0badf72ee73e2d5edadda66912
2011-04-07 14:48:21 -07:00
Todd Kennedy
c5ea3f522a Using the wrong selection for Exchange accounts
Exchange accounts support nested folders, so, we need to use the selection
that excludes any mailboxes with IDs greater than 0. Otherwise, we see all
mailboxes on the account.

Change-Id: If8c2085458176e8bd87013e3b598bd7740c652b2
2011-04-07 14:42:39 -07:00
Todd Kennedy
007d0be4ed First pass at nested folder support
currently only really works for exchange accounts. legacy accounts (imap
or pop) do not build a folder heirarchy.

Change-Id: Idb7c622b64a599a0776233a076359869f4ab4a4f
2011-04-07 14:23:21 -07:00
Marc Blank
fc0f42d6dc Merge "Temporary search UI" 2011-04-06 15:53:09 -07:00
Marc Blank
78684ccc79 Temporary search UI
Change-Id: Ia138ca93f0b28fd0915aa79c965f752f7c08ee90
2011-04-06 08:51:14 -07:00
Makoto Onuki
96332096ca Fix message view for phone
- All layouts are still temporary, but at least they're usable now.
- Removed reply/forward button from the bottom panel.
  There're buttons in the layout.
- Switched to getView().
- removed the unnecessary LinearLayout from the xlarge layout.
- removed some backgrounds that'll probably not be used.

Change-Id: I3aa27c63ab139ae30e5714ac3d9a1eadce74b0e8
2011-04-05 19:20:41 -07:00
Makoto Onuki
e553c6ec0b Merge "Store UUIDs in account shortcuts, rather than IDs." 2011-04-05 10:41:25 -07:00
Makoto Onuki
0b6cb1c330 Store UUIDs in account shortcuts, rather than IDs.
Bug 4192836

Change-Id: I1d6349ed3ad70867f113b9a9f7eb8717b88b24c1
2011-04-04 14:12:05 -07:00
Marc Blank
3d1bb65eec Merge "Add searchMessages command to EmailService" 2011-04-04 11:29:31 -07:00