Commit Graph

2555 Commits

Author SHA1 Message Date
Todd Kennedy
ffe6ef342a fix UnsupportedOperationException in tests
We're using the mock context to prevent modifying the real databases. However,
we need the real context to create intents. Use the real context in the few
places we must use it.

Change-Id: Icb8d289239218921c0b4b5c93ac7983830d90394
2011-02-23 14:51:45 -08:00
Todd Kennedy
8c89674b64 Always set a delete policy for legacy accounts
The delete policy can only be set for POP3 accounts. However, the delete policy
is used for all legacy accounts (that includes IMAP). As such, we need to make
sure IMAP accounts also have their policy set; even though the setting is not
configurable by the user.

The delete policy does not mean anything for Exchange accounts, so, we do not
need to modify the account setup code for them.

bug 3074164

Change-Id: Iab10d2997404b3b0c10a60a64fb652540c0d2d1a
2011-02-23 11:00:19 -08:00
Makoto Onuki
dd123f927a Reset fragment state when opening a new account/mailbox
Without this, there's a small window where a fragment is in a valid
state after openXxx() before the list is loaded.

Bug 3420361

Change-Id: I7f84a94dec1419762aa6b24188c023abe974d2bf
2011-02-22 15:24:53 -08:00
Todd Kennedy
3f60e9312b Add "info" button to the attachment view
Whenever we remove the "load" and "view" buttons, we should add an "info"
button; where we will inform the user as to why we are preventing her from
seeing the attachment.

bug 3338997

Change-Id: Ic243f1542dec55f5b256eeb67ade50aa90e42009
2011-02-22 08:20:54 -08:00
Todd Kennedy
9b1906337a Only show chip if we have >1 account
bug 3435487

Change-Id: I42668fc9d6f118a83943fbe00edf5eb28b7749d6
2011-02-22 08:06:08 -08:00
Andy Stadler
d096f70ab3 Merge "Add contextual dialogs after notifications" 2011-02-19 21:39:58 -08:00
Andy Stadler
f489413142 Add contextual dialogs after notifications
* When security settings notification is clicked, inform user that
  they need to change settings (before dumping them in security
  settings.)
* On an authentication failure, present a dialog to the user explaining
  that the username or password may be incorrect.
* When the device pin/password is expiring or expired, present a dialog
  to the user explaining that it needs to be updated.

Bug: 3238657
Change-Id: I8fca446fa3c1bf87a95938553dbdc362c3df220e
2011-02-18 18:23:18 -08:00
Todd Kennedy
34704851e9 Update account list if account description changes
Editing the account description occurs in a different fragment. As such, we
need to notify the fragment in charge of the account list whenever the
description is updated.

We already have a callback mechanism, so, expand that to send notifications
of any property change.

bug 3388586

Change-Id: I02475233f7f333db57c49ceaf908dbfa69c86ca6
2011-02-18 16:45:17 -08:00
Todd Kennedy
3a4a1ac834 Send attachments through the download manager
bug 3339015

Change-Id: Ic16033a73d0e32608a14a2737f6ff28556dbe782
2011-02-18 16:07:41 -08:00
Todd Kennedy
a819783491 Fix NPE when creating an account from template
if you create an account using one of the pre-defined templates (such as
Yahoo!), the user name and password were not being set in the HostAuth
structure. This was causing an NPE when we tried to generate an IMAP ID.

Change-Id: I9619cddc0ab758c187cf4b9c7c84485ac1f4bfdd
2011-02-17 14:43:50 -08:00
Todd Kennedy
040ddf60cf Resolve build warnings; part 5
Remove dependence upon URIs for creating the host auth structure

Change-Id: I92dee36fa329a8976b76bbd4991ed3469c6475f2
2011-02-16 17:38:31 -08:00
Andy Stadler
c6d344ad2a Refresh email notifications (part I)
* Use strings that fit properly in new notifications
* General cleanups & rewrites from Roy
* Remove showWarningNotification() and use postAccountNotification()

This is part I.  Part II will add dialogs triggered by some of these
notifications, to provide more explanation to the user of what's wrong
and how to fix it.

Bug: 3238657
Change-Id: Ib51bcb4412f8a09a6f97653f0b5f8642efe2ac1e
2011-02-16 16:38:18 -08:00
Jesse Wilson
d75968acfb Merge "Adopt LruCache in Email's ContentCache." 2011-02-16 09:38:39 -08:00
Marc Blank
3a5c1fb274 Email split, part neuf: Setup, logging, attachment glue
* Make "Exchange" option in account setup depend upon availability of the
  Exchange EmailService
* Make presence of Exchange logging depend upon availability of the
  Exchange EmailService
* Make AttachmentDownloadService use service rather than ExchangeService
  class
* Move SSLUtils to emailcommon/utility
* Move account manager type defs to emailcommon/AccountManagerTypes
* Update proguard.flags
* This is the penultimate CL for the Email package itself; the next CL
  creates a clean, SDK-compatible Email application

Bug: 3442973
Change-Id: I9162cf5fa6b5a043ded0fdd1e25fd3ce5948ad8f
2011-02-14 16:08:55 -08:00
Marc Blank
31d9acbf06 Email split, part huit: Refactor constants, clean emailcommon
* There are three pieces to this CL (sorry):
  1) Move and/or rename some constants into emailcommon
  2) Move Utility to emailcommon, moving the few UI
     related utilities back into Email (FolderProperties
     and UiUtilities)
  3) Remove all references to resources from emailcommon
* The three pieces relate in that, between them, they allow
  the emailcommon static library to compile cleanly

Bug: 3442973

Change-Id: Ic5e3abaa2a1b36999e0b6653c6c2134ea1bd544f
2011-02-14 12:18:10 -08:00
Marc Blank
37500777f1 Email split, part sept: Configuration
* Add getConfigurationData api to AccountService; this allows clients
  to get configuration-related data from the Email app
* We use this so that Exchange can determine whether alternative strings
  should be used

Bug: 3442963
Change-Id: Ieea56e3416458dc57699b00c2fc062dfcf7abca9
2011-02-14 11:24:28 -08:00
Todd Kennedy
32311cce01 Implement IMAP prefix support
We support two different ways for an IMAP prefix to be specified:
  1. A text field on the IMAP configuration page. This is the most obvious to
     the end user. It is also an explicit, manual configuration.
  2. RFC2342 defines a NAMESPACE IMAP command to be able to query the prefix
     from the IMAP server. This is an automatic configuration without any
     user involvement (i.e. the UI will NOT change if a prefix is loaded in
     this way)

If the user goes to the trouble of specifying a prefix, we will always honour
it instead of the namespace returned by the IMAP server -- even if the user's
configuration is wrong.

bug 1592696

Change-Id: I6b94c7aaac538f6cd9dc4694b0f1634e8c956bc1
2011-02-11 14:17:48 -08:00
Jesse Wilson
92ab6db38d Adopt LruCache in Email's ContentCache.
LruCache simply wraps LinkedHashMap for a better API.
Performance/hit rate should not be impacted.

Tracking bug: http://b/3184897

Change-Id: Icbac38d3cea5f8c522df7a883d8e74a8f3786b92
2011-02-11 14:02:28 -08:00
Marc Blank
a7bc0319a7 Email split, part six: EmailContent
* Moved EmailContent to emailcommon

Change-Id: Ib3db1bfcfe74554c0e5afd3cfce6d72f26e9aeb9
2011-02-10 19:44:29 -08:00
Marc Blank
2193962ca2 Email split, part quatre: Move along, nothing to see here
* No code was harmed, er, changed in the making of this CL
* All that's happened is that code that is needed by both Email and
  Exchange have been moved into emailcommon
* This required import changes to many files, which explains the
  length of the CL

Change-Id: I4e12455ba057a4a8054fdbd0b578c73afa411c8a
2011-02-10 16:28:37 -08:00
Marc Blank
8a57469460 Email split, part trois: AccountService
* Create AccountService.aidl and AccountServiceProxy in emailcommon
* Implement AccountService in email
* Use AccountServiceProxy in Exchange for account reconciliation,
  notifications, etc.
* Move sync window constants into emailcommon
* Split attachment provider utilities and constants into emailcommon

Bug: 3442973
Change-Id: I89dce28b799b193243c07774dab65d830ae62775
2011-02-10 14:32:01 -08:00
Marc Blank
9ba506c4dd Email split, part deux: PolicyService
* Split PolicySet from SecurityPolicy and move to emailcommon
* Define PolicyService that sync adapter services can use to
  interact with the Email DPM administrator
* Implement PolicyServiceProxy for exchange
* Implement PolicyService in email
* Modify imports, references, etc. as required

Bug: 3442973

Change-Id: I92015e21f780a68754b318da89fbb33570f334a2
2011-02-10 13:53:37 -08:00
Marc Blank
0d4fc55861 Email split, part one: EmailService
* Create emailcommon package
* Move EmailService classes to emailcommon package
* Change references to aidl's to emailcommon package
* Add getApiLevel() command to EmailService

Bug: 3442973

Change-Id: Ic7d2115363cdff6ebb86c46650b0a5b2109b1c72
2011-02-10 13:10:38 -08:00
Todd Kennedy
8cc2fc5101 Merge "Fix attachment mime type unit tests" 2011-02-08 14:32:22 -08:00
Makoto Onuki
314a51cb1d Refactoring widget
- Moved to com.android.email.widget
- Extracted nested classes to top-level classes
- Some small clean-ups.
- WidgetProvider and WidgetProvider$WidgetService are left in the original
  package to keep compatibility with honeycomb (3.0) release.

This CL is supposed to be pure-refactoring.  There should be no
functionality changes.

Change-Id: I37acaa24b6b488724750c0f33374b31fcc433f11
2011-02-08 13:10:42 -08:00
Todd Kennedy
8586532f3e Fix attachment mime type unit tests
Attachments with no extension and mime type of text/plain need to return the
mime type of "text/plain" instead of "application/octet-stream"

bug 3428076

Change-Id: I00452c908ac0672879d42f4ed9ee574e376eac9f
2011-02-08 09:51:16 -08:00
Andy Stadler
d4cad2dae8 Merge "Remove all compatibility with pre-2.0 data" 2011-02-07 11:12:25 -08:00
Marc Blank
433d500cb9 Merge "Show smart forward attachments in MessageCompose" 2011-02-07 10:11:36 -08:00
Andy Stadler
7d51b7a05b Remove all compatibility with pre-2.0 data
* Remove LocalStore (pre-2.0 mail database) and its unit test
* Remove UpgradeAccounts (converted pre-2.0 accounts to Provider)
* Remove FolderMessageList (receiver for pre-1.6 desktop shortcuts)
* Remove "upgrading" paths through LegacyConversions
* Clip out dangling references to everything above

Bug: 3292310
Change-Id: I5654d55a0879b00b05b63055b94651855a8ee3ef
2011-02-06 00:54:39 -08:00
Todd Kennedy
5e39f90e9d Resolve build warnings; part 4
Fix unchecked warnings

Change-Id: I872740fca4e5050e6ed2922eabc7e46e5e97ff3c
2011-02-03 12:44:24 -08:00
Todd Kennedy
8d8537cd2e Resolve build warnings; part 3
Fixes deprecation warnings

NOTE: This does not resolve hostauth deprecation; that will be fixed
in a separate CL.

Change-Id: I47115516da34effbf885615cb439c9d3e6f95b84
2011-02-03 12:43:12 -08:00
Todd Kennedy
44de127691 Resolve build warnings; part 1
Change-Id: I80ca98ef80a427229ab5feb41568e34b257f32ce
2011-02-03 11:44:39 -08:00
Jesse Wilson
3aee641aab Use a field rather than a superclass for ContentCache's cache.
This makes it easier for cache experiments to swap out the
LinkedHashMap for another cache.

http://b/3184897
Change-Id: Iacdb266e41f5a98efd9bb30bc09ff8fff5a0a5a9
2011-02-02 12:11:17 -08:00
Makoto Onuki
9d8438e7e3 am 1cedfc8e: am 6c15d943: Merge "Don\'t mix up loader managers" into honeycomb
* commit '1cedfc8e5c16c6331f4689f2fb5c81117958c987':
  Don't mix up loader managers
2011-02-01 16:06:36 -08:00
Makoto Onuki
1cedfc8e5c am 6c15d943: Merge "Don\'t mix up loader managers" into honeycomb
* commit '6c15d943c2a5b4bfb4178d85acf0f415cb2fd6af':
  Don't mix up loader managers
2011-02-01 16:04:42 -08:00
Makoto Onuki
6c15d943c2 Merge "Don't mix up loader managers" into honeycomb 2011-02-01 16:03:26 -08:00
Makoto Onuki
d4df1cf65a Don't mix up loader managers
- Don't use activity's LoaderManager in fragments.  Fragments have their own
  loader managers, and using the wrong one causes loaders won't get reset()
  when the owner fragment gets destroyed().

- Don't destroy loaders by ourselves.

The combination of these two issues caused the problem where the loader
callbacks wouldn't get the reset event, which resulted in the adapter
holding a closed cursor.

Bug 3412079

Change-Id: Ib7441565ea69adb08eb74845b0996c7b8ae6f53b
2011-02-01 15:45:52 -08:00
Marc Blank
d26c138cb2 am 4c0ae95f: am 73ba7150: Merge "Delete calendar properly on commanded wipe" into honeycomb
* commit '4c0ae95fbea959f15aef958814311f1f063134d2':
  Delete calendar properly on commanded wipe
2011-02-01 13:26:18 -08:00
Marc Blank
4c0ae95fbe am 73ba7150: Merge "Delete calendar properly on commanded wipe" into honeycomb
* commit '73ba71506a542ac6fd6463f2cf1efea1569bbcc4':
  Delete calendar properly on commanded wipe
2011-02-01 06:52:28 -08:00
Marc Blank
73ba71506a Merge "Delete calendar properly on commanded wipe" into honeycomb 2011-02-01 06:50:08 -08:00
Marc Blank
81d68b842e Delete calendar properly on commanded wipe
* CalendarProvider2 has unusual semantics for its delete operation on
  Calendars; this caused the user's calendar NOT to be deleted when
  the server commanded a wipe of calendar data.  The result was
  duplication of events after the subsequent resync

Bug: 3361000
Change-Id: I672034a7a444eb7ebdea60cd6dc66a31087cc6f7
2011-01-31 21:07:18 -08:00
Todd Kennedy
f1b510462f Fix ConcurrentAccessException in unit tests
The ContentCache is now an LRU cache. This means we must NOT access the cache
while using any iterator over the cache. In this case, we were calling get()
using an iterator of cache keys.

Change-Id: I2d1feabff7474b6f2a230b98f97df067ab7ccd9c
2011-01-31 17:39:44 -08:00
Makoto Onuki
f33420e68f Message details: Show only one address per line
Also removed unused field from MessageViewMessageDetailsDialog

Bug 3372971

Change-Id: I8a6d87d006793c0099b380634217624bf9002ead
2011-01-31 16:12:53 -08:00
Andy Stadler
2d6241e123 am 11070a53: am 275b89d9: am 927dbc7c: Don\'t send IMAP ID unless server supports it
* commit '11070a53970116a8216b8d83694041fe09560b91':
  Don't send IMAP ID unless server supports it
2011-01-31 15:46:36 -08:00
Andy Stadler
11070a5397 am 275b89d9: am 927dbc7c: Don\'t send IMAP ID unless server supports it
* commit '275b89d96949de6544c7bca999e241f659cf18b3':
  Don't send IMAP ID unless server supports it
2011-01-31 15:20:01 -08:00
Andy Stadler
927dbc7c20 Don't send IMAP ID unless server supports it
Only send IMAP ID to servers that include ID in the CAPABILITY response.
Always sending IMAP ID was found to cause problems with some servers.

Better compliance with RFC 2971.
Thanks to Samsung for debugging & reporting this.

Change-Id: I495f80949f9f811470853a1f2f8e506d8236d8cf
2011-01-31 15:10:49 -08:00
Makoto Onuki
295297581c Supress log from RefreshManager
Bug 3404747

Change-Id: I3c0d4d513c7ebb640630a21b626c1515520c0bed
2011-01-31 15:05:27 -08:00
Todd Kennedy
db0a601714 DO NOT MERGE Ensure foreground colour is set during drag
At any time, it's possible for the framework to recycle views. Normally it's
not an issue, however, during drag-n-drop a view with "unavailable drop
target" foreground colour may be reused. We need to ensure that the foreground
color is always set.

bug 3398330

Change-Id: I7be9bf8487e0062cf2335476fd971592f33baa09
2011-01-31 10:53:33 -08:00
Paul Eastham
5c7ffc91a5 am c34e4eec: am 04d3f014: Merge "Remove STOPSHIP" into honeycomb
* commit 'c34e4eecf1450b20e804297741507d1edc044d0f':
  Remove STOPSHIP
2011-01-30 22:22:28 -08:00
Paul Eastham
04d3f01447 Merge "Remove STOPSHIP" into honeycomb 2011-01-30 22:16:55 -08:00