Commit Graph

323 Commits

Author SHA1 Message Date
Mihai Preda
23a2769796 Merge branch 'readonly-p4-donut' into donut 2009-06-05 11:38:31 -07:00
Mihai Preda
a00eb291f1 AI 149607: Add relevant title to attachment file chooser.
Delete the original source message only when the message is in Drafts folder.
  If the original message is in the other folder than Drafts, it should be
  retained.
  Integrates 149194,149306,149459 from DocomoEmail.
  BUG=1860250,1887835

Automated import of CL 149607
2009-06-05 11:36:17 -07:00
Mihai Preda
cf4a3aea3f Merge branch 'readonly-p4-donut' into donut 2009-06-05 10:50:26 -07:00
Mihai Preda
7eb313fb00 AI 149604: Localized the special folders name in FolderMessageView.
Integrates 149049,149217 from DocomoEmail.
  BUG=1860091,1860250

Automated import of CL 149604
2009-06-05 10:48:20 -07:00
Mihai Preda
9c62910550 Merge branch 'readonly-p4-donut' into donut 2009-06-05 10:35:38 -07:00
Mihai Preda
c099563834 AI 149603: Show progress dialog while loading attachment. Fixed possible ArrayIndexOutOfBoundsException in message view.
Integrates 149422,149510,149516 from DocomoEmail.
  In some situation, email header From: might be empty or have
  illegal email address.  The assumption that From: must exist
  will be violated and causes ArrayIndexOutOfBoundsException.
  BUG=1741969,1890770,1860250

Automated import of CL 149603
2009-06-05 10:33:22 -07:00
Mihai Preda
f53ef9b50c Merge commit 'goog/donut' into donut 2009-06-05 10:08:37 -07:00
Mihai Preda
4dad667072 Merge branch 'readonly-p4-donut' into donut 2009-06-05 08:38:58 -07:00
Mihai Preda
980385b0f9 AI 149600: Fixed message view web link be more robust.
Integrates 149300 from DocomoEmail.
  This is work around for
  - Regex.WEB_URL_PATTERN would not handle protocol part case
  insensitive correctly.
  - WebView only could follow the href link that protocol part
  is lower case.
  BUG=1860250,1842508

Automated import of CL 149600
2009-06-05 08:34:52 -07:00
Andrew Stadler
f5df628991 am a392e070: Add android.permission.WRITE_EXTERNAL_STORAGE Add unit test to verify writeable to sdcard.
Merge commit 'a392e070bc9590986e57ef6a89bed34f7efc10d0'

* commit 'a392e070bc9590986e57ef6a89bed34f7efc10d0':
  Add android.permission.WRITE_EXTERNAL_STORAGE
2009-06-04 23:48:25 -07:00
Mihai Preda
372c12bfbb am a15503a4: Merge branch \'readonly-p4-donut\' into donut
Merge commit 'a15503a4a6cf46e810bde4aedc846680ed288c1c'

* commit 'a15503a4a6cf46e810bde4aedc846680ed288c1c':
  AI 149578: Fixed possible NullPointerException in MessageCompose.
2009-06-04 22:43:34 -07:00
Mihai Preda
18106fe981 am 7330fe49: Merge branch \'readonly-p4-donut\' into donut
Merge commit '7330fe4953c39741376bdd8cb3e5c2c03068b0aa'

* commit '7330fe4953c39741376bdd8cb3e5c2c03068b0aa':
  AI 149573: Display To: instead of From: in Drafts folder && Display unread message count for inbox, total message count everywhere else.
2009-06-04 22:43:17 -07:00
Andrew Stadler
a392e070bc Add android.permission.WRITE_EXTERNAL_STORAGE
Add unit test to verify writeable to sdcard.

Fixed bug http://b/issue?id=1883487
2009-06-04 15:16:43 -07:00
Mihai Preda
a15503a4a6 Merge branch 'readonly-p4-donut' into donut 2009-06-04 12:50:26 -07:00
Mihai Preda
e6ec9d86e8 AI 149578: Fixed possible NullPointerException in MessageCompose.
Integrates 148996,149295 from imode email.
  BUG=1862155,1798576,1860250

Automated import of CL 149578
2009-06-04 12:48:20 -07:00
Mihai Preda
7330fe4953 Merge branch 'readonly-p4-donut' into donut 2009-06-04 11:40:35 -07:00
Mihai Preda
70798a7892 AI 149573: Display To: instead of From: in Drafts folder && Display unread message count for inbox, total message count everywhere else.
Integrates from imode email: 148948,149107,149247,149248,149249,149287.
  BUG=1591391,1842520,1860085,1459866,1860250

Automated import of CL 149573
2009-06-04 11:38:26 -07:00
Mihai Preda
98475b1d7c am 438275b2: Merge branch \'readonly-p4-donut\' into donut
Merge commit '438275b283224a9f830e42d4e645981d1f73589b'

* commit '438275b283224a9f830e42d4e645981d1f73589b':
  AI 149564: Escape special characters such as '<>&' in text/plain for display in WebView.
2009-06-04 09:46:29 -07:00
Mihai Preda
438275b283 Merge branch 'readonly-p4-donut' into donut 2009-06-04 09:42:51 -07:00
Mihai Preda
ca5089efb8 AI 149564: Escape special characters such as '<>&' in text/plain for display in WebView.
Integrate CL 144586,145919 from imode.
  Remove the Emoji escaping/workaround for WebView.
  Also integrate MimeHeader.java from CL 143064 from imode.
  BUG=1785319,1860250

Automated import of CL 149564
2009-06-04 09:39:24 -07:00
Andrew Stadler
9019315b26 Conversion to provider-based Account. What works:
* Editing existing accounts
 * Two placeholder accounts are written

What breaks (in approx order of planned fixes)
 * Some details of account editing
 * New account creation,
 * Viewing mailboxes & messages
 * Mail sync using accounts
 * Import of existing accounts
2009-06-03 16:11:36 -07:00
Mihai Preda
361a7225f2 am d64d0e56: Merge branch \'readonly-p4-donut\' into donut
Merge commit 'd64d0e56de58ca3c776f2edae1ebbbafd500d15e'

* commit 'd64d0e56de58ca3c776f2edae1ebbbafd500d15e':
  AI 149523: Correctly display inline images in Reply and Forward messages.
2009-06-03 06:49:56 -07:00
Mihai Preda
d64d0e56de Merge branch 'readonly-p4-donut' into donut 2009-06-03 06:47:40 -07:00
Mihai Preda
7436601fae AI 149523: Correctly display inline images in Reply and Forward messages.
Integrates CL 148436, 148515, 148833 from imode email.
  BUG=1814789,1860250

Automated import of CL 149523
2009-06-03 06:44:47 -07:00
Fred Quintana
84969fb580 update to adhere to applyBatch changes 2009-06-01 17:06:26 -07:00
Andreas Huber
0cb7ddfc27 Fixing the build. Methods implementing interfaces must not be declared @Override. 2009-06-01 15:03:34 -07:00
Andrew Stadler
626f3e48a4 Updates to EmailStore and EmailProvider:
1. Call notifyChange() after all API calls.
  2. Make Account & HostAuth parcelable
  3. Temporary APIs to create "store URI" strings for the existing mail code
2009-06-01 14:34:16 -07:00
Mihai Preda
061f4d21dc am d9c1e51d: Merge branch \'readonly-p4-donut\' into donut
Merge commit 'd9c1e51d841369ba7f26b8769337471ca10b7b84'

* commit 'd9c1e51d841369ba7f26b8769337471ca10b7b84':
  AI 149446: Add sending pending outbox message feature; integrates 148664, 148823 from imode to donut.
2009-06-01 13:13:38 -07:00
Mihai Preda
d9c1e51d84 Merge branch 'readonly-p4-donut' into donut 2009-06-01 12:40:16 -07:00
Mihai Preda
39137e51aa AI 149446: Add sending pending outbox message feature; integrates 148664, 148823 from imode to donut.
BUG=1860250,1793767

Automated import of CL 149446
2009-06-01 12:38:20 -07:00
Mihai Preda
4c27102aea am fbde900c: Merge branch \'readonly-p4-donut\' into donut
Merge commit 'fbde900c37ae76ec3c6181b3328d4ddf7c46cc7e'

* commit 'fbde900c37ae76ec3c6181b3328d4ddf7c46cc7e':
  AI 149442: Integrate CL#140625 (Fix attachment uri and content uri confusion) from imode to donut.
  AI 149328: Add extended header support to MimeMessage, MimeBodyPart, and LocalStore.
2009-06-01 11:34:46 -07:00
Mihai Preda
fbde900c37 Merge branch 'readonly-p4-donut' into donut 2009-06-01 11:31:52 -07:00
Mihai Preda
5182d80674 AI 149442: Integrate CL#140625 (Fix attachment uri and content uri confusion) from imode to donut.
BUG=1598754,1860250

Automated import of CL 149442
2009-06-01 11:28:33 -07:00
Marc Blank
fae4727a91 Squashed commit of the following:
commit 19beb6f0cc6c0f3f0cbcdcd66cec9f141b470d70
Author: Marc Blank <mblank@google.com>
Date:   Fri May 29 14:23:01 2009 -0700

    Changes to EmailProvider

commit 84cced7b94bde4688ad986a45a6bf876cde3bdbe
Author: Marc Blank <mblank@google.com>
Date:   Fri May 29 14:02:20 2009 -0700

    Fix additional formatting issues.

commit 1faeb1763ba8a967fbf79ddbc48822af08c65a15
Author: Marc Blank <mblank@google.com>
Date:   Thu May 28 19:26:03 2009 -0700

    Changes in EmailStore.Account
    - Add isDefault column
    - Add status methods setDefaultAccount/getDefaultAccount

    Resubmit previous with formatting issues addressed.
2009-05-29 16:08:17 -07:00
Andrew Stadler
ea6b71e0f4 Per android code style guide, all member variables start with "m" 2009-05-28 11:46:09 -07:00
Tadashi Takaoka
7b92d9a2a9 Merge branch 'readonly-p4-donut' into donut 2009-05-27 19:06:31 -07:00
Tadashi Takaoka
a8884b9b72 AI 149328: Add extended header support to MimeMessage, MimeBodyPart, and LocalStore.
This extension is necessary to support some vendor specific
  extended header, such as X-NoRtn-Addr of i-mode.net mail.
  This change will update LocalStore database version to 24.
  And it should be consistent between donutburger Email and DocomoEmail.
  BUG=1741969

Automated import of CL 149328
2009-05-27 19:03:34 -07:00
Andrew Stadler
bd649fc1fd General changes to generalize account & hostauth classes:
- Remove references to SMTP and use generic "send" and "recv" notation
  - Move protocol indication into hostauth
  - Add TLS (along with SSL)
2009-05-27 17:30:07 -07:00
Andrew Stadler
2e758791d0 Rename Email to EmailStore to avoid collision with existing Email.java 2009-05-27 16:47:41 -07:00
Marc Blank
c5f2a7af76 I fixed the authority in Email to point to the EmailProvider's authority, and I added the EmailProvider to the manifest. 2009-05-27 15:43:27 -07:00
Andrew Stadler
f3d5b20236 Import first versions of Provider from Marc 2009-05-26 16:40:34 -07:00
Android (Google) Code Review
f50c7fb084 Merge change 2252 into donut
* changes:
  Fix the java.lang.StringIndexOutOfBoundsException that occurs when an SMTP server closes the connection early or returns an empty line. Fix the same error in the Pop3 UIDL parser.
2009-05-26 08:21:24 -07:00
Andy Stadler
fc9e1ce030 AI 149203: Manual merge CL 149118: "Make URL which is in the head of body text be
clickable."
  BUG=1810716

Automated import of CL 149203
2009-05-22 12:14:07 -07:00
Andrew Stadler
b011a812e0 Fix the java.lang.StringIndexOutOfBoundsException that occurs when an SMTP server closes the connection early or returns an empty line.
Fix the same error in the Pop3 UIDL parser.
2009-05-22 11:48:14 -07:00
Andy Stadler
c2887cd81d AI 149140: Automated g4 rollback of changelist 148333.
*** Reason for rollback ***
  Rollback global lock because bug (now fixed) was not caused by
  threading/concurrency.
  *** Original change description ***
  Evidence from failures, and inspection of source, leads me to believe
  that SharedPreferences has some non-thread-safe paths.  As a quick,
  brute-force workaround, I'm putting a global lock around our use of it.
  This is a bit inefficient, but cases of multiple threads writing to it
  should be very rare.
  Note, we don't have an explicit test for this (I will think about
  finding a way to write one), but the evidence of this failure is that
  after some amount of activity in the Email app, we see corrup
  ... description truncated by g4 rollback ...

Automated import of CL 149140
2009-05-21 10:39:04 -07:00
Andy Stadler
f9edef8dee AI 149088: Automated g4 rollback of changelist 148488.
*** Reason for rollback ***
  Problem found (bug in ICU encoder/decoder) so instrumentation no
  longer required here.
  *** Original change description ***
  Heavily-instrumented Account.java that's looking for the precise moment
  when an Account string gets corrupted.  Looks for bad base64 strings
  and bad store Uri's.  Logs the error, and (optionally/disabled) throws
  an exception (good for debugging).
  BUG=1822859

Automated import of CL 149088
2009-05-20 17:23:48 -07:00
Andy Stadler
c6efb28ad3 AI 149059: Manually merge CL 148988 to fix "Not to revert SEEN flag if POP, and
fixed counting unread messages bug".
  BUG=1785254

Automated import of CL 149059
2009-05-20 10:36:16 -07:00
Andy Stadler
80257af81b AI 149020: Manually merge CLs 148814, 148818 which fix IMAP response parsing to be
able to handle a literal string in the middle of the response.
  BUG=1814528

Automated import of CL 149020
2009-05-19 14:54:49 -07:00
Andy Stadler
305382f790 AI 148488: Heavily-instrumented Account.java that's looking for the precise moment
when an Account string gets corrupted.  Looks for bad base64 strings
  and bad store Uri's.  Logs the error, and (optionally/disabled) throws
  an exception (good for debugging).
  BUG=1822859

Automated import of CL 148488
2009-05-07 14:43:25 -07:00
Andy Stadler
93116fe28e AI 148457: Allow exchange accounts to be set up without an empty domain
specification.  This relaxes a rule that was incorrectly applied.
  BUG=1740626

Automated import of CL 148457
2009-05-07 10:58:05 -07:00
Andy Stadler
08e2bc5bb4 AI 148382: Check cursors in LocalStore so we avoid errors when the folder itself
has been deleted from the DB.  Add unit tests.
  BUG=1835733

Automated import of CL 148382
2009-05-06 18:01:47 -07:00
Andy Stadler
615fcaf337 AI 148378: Allow store to create BinaryTempFileBody from a preexisting file
instead for forcing a copy via input stream.
  BUG=1807499

Automated import of CL 148378
2009-05-06 17:54:14 -07:00
Andy Stadler
dab90a7b35 AI 148377: Push Mode changes: (1) Add android.permission.WAKE_LOCK and
READ_PHONE_STATE so a push mode service can hold an active
  network connection, monitor roaming status, etc.  (2) Refresh
  push mode status on Refresh(), not just on Check, so UI
  (settings) changes, which call refresh(), propagate immediately
  to the stores.
  BUG=1776149

Automated import of CL 148377
2009-05-06 17:50:29 -07:00
Andy Stadler
63a22008c7 AI 148376: Two policy changes for lookback window: (1) Change default
for new accounts to "1 day".  (2) Remove "all" from the list
  of available lookback window sizes, to prevent runaway
  during our simplistic sync model.
  BUG=1789913

Automated import of CL 148376
2009-05-06 17:46:25 -07:00
Andy Stadler
3b7a93e8bb AI 148375: Explicitly remove deleted accounts from the Store cache. This resolves
possible bugs when an account is deleted and recreated.
  BUG=1740626

Automated import of CL 148375
2009-05-06 17:42:22 -07:00
Andy Stadler
235609d04e AI 148334: Provide a new entry in MessageUpdateCallbacks by which the store can
indicate that the message of interest no longer exists.  This is used
  in remoteFolder.copyMessages, for example because the message was
  already deleted by another client.
  BUG=1807499

Automated import of CL 148334
2009-05-05 16:36:31 -07:00
Andy Stadler
5293030ba0 AI 148333: Evidence from failures, and inspection of source, leads me to believe
that SharedPreferences has some non-thread-safe paths.  As a quick,
  brute-force workaround, I'm putting a global lock around our use of it.
  This is a bit inefficient, but cases of multiple threads writing to it
  should be very rare.
  Note, we don't have an explicit test for this (I will think about
  finding a way to write one), but the evidence of this failure is that
  after some amount of activity in the Email app, we see corruption in
  the string mSenderUri.
  BUG=1822859

Automated import of CL 148333
2009-05-05 16:32:33 -07:00
Andy Stadler
843125b98a AI 148300: Reduce memory waste in getTextFromPart(), and improve error handling.
Fix NPE's in loadMessageForViewBodyAvailable().
  BUG=1831272

Automated import of CL 148300
2009-05-05 10:26:55 -07:00
Andy Stadler
09866af013 AI 148257: Allow preview of any files (mime type */*) by removing
the original filters.  This affects preview, not download.
  This does not preflight the launch at all, it is very simple
  as it simply downloads the attachment and then tries to open it.
  If no activity is found, it uses a toast to say "couldn't do
  that."  A better fix will be to pre-check the mime type to see
  if there are any intent filters to handle it.
  BUG=1650669

Automated import of CL 148257
2009-05-04 10:28:41 -07:00
Andy Stadler
62c4a62985 AI 148256: Finish cleaning up the concurrency bugs in FolderMessageList.
At this point, *all* MessageListener callbacks should have their
  work routed through the handler for deeper processing (especially
  anything that affects the lists) to be in the UI thread only.
  Also fixed a minor regression introduced in CL 148096 (on
  configurations with a single account, the inbox was not
  automatically preopening - this affected desktop shortcuts
  as well.)
  BUG=1812798

Automated import of CL 148256
2009-05-04 10:22:54 -07:00
Andy Stadler
1e2ca965e7 AI 148255: Don't show "Outgoing Settings" preference when sender does not
provide a class for launching the settings editor.
  BUG=1812798

Automated import of CL 148255
2009-05-04 10:17:27 -07:00
Andy Stadler
c9f151d4fe AI 148230: Allow stores to indicate if they support server-side copying of sent
mail into the "Sent" folder, thus eliminating the need to perform a 2nd
  upload into the server's Sent folder.  IMAP and POP3 do not support
  this (although IMAP could when it recognizes Gmail IMAP servers.)
  BUG=1807499

Automated import of CL 148230
2009-05-01 16:36:34 -07:00
Andy Stadler
9197f42894 AI 148216: Provide UI for fixed sync window sizes, as required by EAS.
When in fixed sync window size mode, change "load more
  messages" to "refresh".
  BUG=1789913

Automated import of CL 148216
2009-05-01 15:30:33 -07:00
Andy Stadler
035dfc0859 AI 148215: Provide a better way for stores to get their callbacks, since they
might be null at creation time, and available slightly later.
  BUG=1807499

Automated import of CL 148215
2009-05-01 15:25:32 -07:00
Andy Stadler
9ba72bb00d AI 148204: Encapsulate a requirement for some remote stores, that need to preload
message structures before fetching the message body.  Code for IMAP &
  POP3 is unaffected, but remote stores can override
  requireStructurePrefetch() in order to trigger the new behavior.
  BUG=1807499

Automated import of CL 148204
2009-05-01 14:40:58 -07:00
Andy Stadler
c5c2b96739 AI 148145: Remove the account-based storage of store persistent data, and instead
combine it with the same code that handles folder persistent data (in
  the database).  The schema is really simple;  Rows with a folder id of
  -1 are store data.  This also adds the ability to use keys to store
  multiple values, instead of a single string per account.  Added/updated
  unit tests.
  3rd party stores will need slight code changes because the persistent
  callbacks now accept keys.
  BUG=1807499

Automated import of CL 148145
2009-04-30 16:47:50 -07:00
Andy Stadler
d8cbeaf7ae AI 148098: Manual merge CL 148086 to fix additional problems with non-ASCII chars
in address fields.
  BUG=1676634

Automated import of CL 148098
2009-04-30 10:18:00 -07:00
Andy Stadler
067d0a87fa AI 148097: Fix bug in exchange account setup (actually it only affects
editing existing accounts).  Added simple functional tests for
  Activity UI.
  BUG=1812798

Automated import of CL 148097
2009-04-30 10:14:00 -07:00
Andy Stadler
05aba0b4ba AI 148096: Fix multiple concurrency bugs in FolderMessageList, which wasn't
being strict enough about decoupling the MessageListener from
  updates to the various lists that should only happen in the UI
  thread.
  BUG=1812798

Automated import of CL 148096
2009-04-30 10:08:25 -07:00
Andy Stadler
c795d8b324 AI 148095: In MessageView, protect the listener callbacks that directly
access mMessageContentView.
  This is a brute-force solution, and I have also left TODO notes
  mentioning that it might make more sense (long term) to use the
  existing handler message mechanism.
  BUG=1812798

Automated import of CL 148095
2009-04-30 10:04:06 -07:00
Andy Stadler
0cfffc5222 AI 148091: Manual merge CL 148078 which resolves bugs when you have non-ASCII
names in email address fields of MessageCompose.
  BUG=1676657

Automated import of CL 148091
2009-04-30 09:38:30 -07:00
Andy Stadler
3c3add638e AI 148027: Fix concurrency failure in Folder.getUnreadMessageCount() and
Folder.getVisibleLimit(), which used local copies of the data from the
  DB.  If there were two Folder objects associated with a single actual
  folder, updating one wouldn't be reflected in the others.
  BUG=1812798

Automated import of CL 148027
2009-04-29 17:17:14 -07:00
Andy Stadler
c05afb24bb AI 148019: Add "accountInstanceLimit" to stores.xml so a given type of connection
(e.g. EAS) can limit itself to n (usually 1) accounts per device.
  The UI for this is really simple - don't show the EAS button when the
  limit is reached.  More work would be required in
  AccountSetupAccountType.java in order to do a more sophisticated UI
  (e.g. show the button but pop a toast if the limit is reached.)
  BUG=1740626

Automated import of CL 148019
2009-04-29 17:10:25 -07:00
Andy Stadler
8264c4fa21 AI 148002: Add X_DOWNLOADED_FULL, X_DOWNLOADED_PARTIAL, and DELETED flags
to the set that are stored in their own columns (and thus can
  be quickly selected from).  Add code to migrate old style
  flags into new flags.  Add tests.
  BUG=1786939

Automated import of CL 148002
2009-04-29 17:07:03 -07:00
Andy Stadler
a13aea24a3 AI 147868: Fix CL 146360 which didn't make the changes persistent. Changed
MessagingController to accept and track a Context, instead of the
  unnecessary Application object, which makes this fix more testable.
  BUG=1790798

Automated import of CL 147868
2009-04-27 17:24:41 -07:00
Andy Stadler
de6b2519be AI 147866: To better support remote stores that write back persistent data
or other changes during a delete operation, we need to explicitly
  open the remote trash folder and give it the callbacks.
  BUG=1807499

Automated import of CL 147866
2009-04-27 17:17:22 -07:00
Andy Stadler
6c0cd49610 AI 147839: In checkMail(), do a listFolders() before the existing sync...()
calls for each account.  This allows the folder list to be
  updated before it is synced, which is necessary for some
  stores.
  BUG=1807499

Automated import of CL 147839
2009-04-27 09:18:01 -07:00
Andy Stadler
b24a1eb3d0 AI 147765: Fix concurrency bugs in MessagingController, in the collections
mCommands and mListeners.
  BUG=1812798

Automated import of CL 147765
2009-04-24 16:17:04 -07:00
Andy Stadler
100867a231 AI 147730: 1. Create an API by which a Store can specify its own custom
synchronizer code.
  2. Refactor (and spell-fix) the core folder synchronizer.  Extract
  the innards that are IMAP/POP specific, leaving common wrapper
  code in a simpler shell.
  3. For each account & folder to sync, check the store and call
  the specialized sync'er (if provided) or the generic one.
  BUG=1807499

Automated import of CL 147730
2009-04-24 13:25:34 -07:00
Andy Stadler
5551f7feb2 AI 147714: New, lighter-weight version of CL 147620. Still touches as many files,
due to API change, but still has a smaller footprint.  Also fixes the
  bug in the original, which is that we actually needed to udpate the
  local trash folder, not the remote one.
  BUG=1807499

Automated import of CL 147714
2009-04-24 11:54:42 -07:00
Andy Stadler
b633efa2b7 AI 147708: Automated g4 rollback of changelist 147620.
*** Reason for rollback ***
  We figured out a simpler solution affecting fewer files - we
  don't actually need the new remotestore API.
  *** Original change description ***
  Some stores require changing the UID of a message when it is
  copied to a new folder (I'm looking at you, EAS).  Add a callback
  to Folder.copyMessages() which allows the store to report back
  such changes.  Then, add a new api to record the new values:
  Folder.updateMessages().
  For now, the two APIs are linked by a common callsite in
  MessagingController, so the existing stores can use a minimal
  implementation - if they don't call the callback, nobody will
  call the update.
  BUG=1807499

Automated import of CL 147708
2009-04-24 11:13:36 -07:00
Andy Stadler
1df530294d AI 147620: Some stores require changing the UID of a message when it is
copied to a new folder (I'm looking at you, EAS).  Add a callback
  to Folder.copyMessages() which allows the store to report back
  such changes.  Then, add a new api to record the new values:
  Folder.updateMessages().
  For now, the two APIs are linked by a common callsite in
  MessagingController, so the existing stores can use a minimal
  implementation - if they don't call the callback, nobody will
  call the update.
  BUG=1807499

Automated import of CL 147620
2009-04-23 23:16:01 -07:00
Andy Stadler
72288724d4 AI 147538: Because mPreferences is transient, we need to pass Context into the
persistent callbacks, in order to recreate it occasionally.
  BUG=1786939

Automated import of CL 147538
2009-04-23 16:42:23 -07:00
Andy Stadler
f2c5f08b32 AI 147537: Fix copy/paste mistake in previous CL.
BUG=1807499

Automated import of CL 147537
2009-04-23 16:38:44 -07:00
Andy Stadler
3f66d3de11 AI 147486: Change the remote/local mapping callback to be folder-by-folder instead
of for the entire store.
  BUG=1807499

Automated import of CL 147486
2009-04-23 10:49:42 -07:00
Andy Stadler
2990ff1f96 AI 147452: Update LocalFolder.fetch() to support STRUCTURE mode, in
addition to existing support for BODY mode.  Add tests.
  BUG=1807499

Automated import of CL 147452
2009-04-22 23:48:59 -07:00
Andy Stadler
912dc3b194 AI 147423: Provide a hook to notify remote stores that local stores are set up.
BUG=1807499

Automated import of CL 147423
2009-04-22 18:45:22 -07:00
Andy Stadler
29bbfd0b97 AI 147401: Redo the implementation of store-specific flags to allow
deeper database-style operations with them.  This enables two
  new LocalStore APIs to be provided:  A new version of
  GetMessages() that can retrieve only flagged (or un-flagged)
  messages, and a new method to set flags for an entire set of
  messages, in a single SQL transaction.
  BUG=1786939

Automated import of CL 147401
2009-04-22 13:49:57 -07:00
Andy Stadler
7e6df9c6aa AI 146379: Provide a small set of message flags that can be set by stores and will
be persisted by LocalStore.
  BUG=1786939

Automated import of CL 146379
2009-04-15 15:29:00 -07:00
Andy Stadler
37e98419d7 AI 146366: Automated g4 rollback of changelist 146361.
*** Reason for rollback ***
  Despite the markings in the CL, this was inadvertently merged.
  This CL restores donut & downstream branches to the desired state.
  *** Original change description ***
  am: CL 146359 D* N*T M***E - we'll keep the fix for donut+
  Automated g4 rollback of changelist 146273.
  *** Reason for rollback ***
  Inadvertently approved for cupcake, past deadline.
  *** Original change description ***
  Fixed "show pictures" button isnot displayed for HTML messages.
  Original author: stadler
  Merged from: //branches/cupcake/...
  BUG=1766880

Automated import of CL 146366
2009-04-15 13:38:26 -07:00
Andy Stadler
af88cfc482 AI 146361: am: CL 146359 DO NOT MERGE - we'll keep the fix for donut+
Automated g4 rollback of changelist 146273.
  *** Reason for rollback ***
  Inadvertently approved for cupcake, past deadline.
  *** Original change description ***
  Fixed "show pictures" button isnot displayed for HTML messages.
  Original author: stadler
  Merged from: //branches/cupcake/...

Automated import of CL 146361
2009-04-15 13:01:48 -07:00
Andy Stadler
1f48259d22 AI 146360: Provide an API by which the server (or store) can tag some
of the role-specific folders such as Drafts, Sent, or Trash.
  This allows us to properly target these folders even on
  systems where they have different names.  I capture the
  tagged names into the existing columns in the account data,
  where they are used elsewhere in the code (no changes
  necessary).
  Use default implementations on POP3 and IMAP for now -
  no change from original behavior.  The new code is
  primarily to support EAS (for now).
  BUG=1790798

Automated import of CL 146360
2009-04-15 12:58:19 -07:00
Andy Stadler
4836f3c289 AI 146331: Make the download window sizing adjustable on a per-store basis.
The default values are 25 (default) and 25 (increment).  This is fine
  for Stores that control downloads by # of messages, but won't work for
  stores that use other measurements - e.g. EAS windows the download in #
  of days.  So for this change:
  1.  Allow the StoreInfo to provide non-default values
  2.  Remove the hardcoded references to the default values
  3.  Use StoreInfo values everywhere
  4.  Set the values to 1,1 in EAS store info
  BUG=1789913

Automated import of CL 146331
2009-04-15 10:58:59 -07:00
Tadashi Takaoka
1464095f9f AI 146274: am: CL 146273 Fixed "show pictures" button isnot displayed for HTML messages.
Original author: takaoka
  Merged from: //branches/cupcake/...

Automated import of CL 146274
2009-04-14 21:42:56 -07:00
Andy Stadler
c6039f7d17 AI 146134: Add persistence API for remote stores & folders to use while
syncing.  This provides a key-value store, per folder, that
  can be used by network Stores to record persistent data such
  as sync status, server keys, etc.
  Note that, by definition, this only applies to remote folders
  (e.g. IMAP, POP3). You'll see everywhere that LocalFolder is
  passed null, and this is correct - LocalFolder *is* persistent
  storage and does not need external help.
  Note to reviewers:  The core changes are Folder.java,
  LocalStore.java, and LocalStoreUnitTests.java, so please give
  them the bulk of your reviewer attention.  The other files
  are just following along with minor API changes.  Of those,
  the one worth close examination is MessagingController.java,
  which is the only place in the system where remote Folders
  are bonded with Local Folders and thus where this new API
  comes into play.
  Note to jham:  Can you please take a look at
  LocalStore.LocalFolder.setPersistentString() and recommend
  better SQL foo than my primitive test-then-update-or-insert
  logic, which is not transactional or threadsafe.
  BUG=1786939

Automated import of CL 146134
2009-04-14 10:15:07 -07:00
Andy Stadler
cd7e5664f9 AI 146061: Add persistent storage that Store classes can access.
The current design for Store classes (e.g. IMAP) did not provide for
  any persistent storage.  This is the beginning of a mechanism to
  provide that.  It's quite simplisitic - each Store can read/write one
  persistent string - but that's enough for the first simple use case
  (saving some sync data for EAS).
  The core changes here - suggest reviewing first - are in Account.java,
  Store.java, and AccountUnitTests.java.  Everything else is just
  following the API change that was necessary.
  Note that, by definition, this only applies to remote stores (e.g.
  IMAP, POP3).  You'll see everywhere that LocalStore is passed null, and
  this is correct - LocalStore *is* persistent storage and does not need
  access (so far, at least).
  BUG=1786939

Automated import of CL 146061
2009-04-13 20:07:56 -07:00
Andy Stadler
8664ecf181 AI 145227: Add callback for push-mode stores to report async updates.
The logic for this is quite simplistic, for now:  When the store
  reports that it has new messages, it triggers a service refresh,
  just as if a pull-mode interval had expired and it is time to
  check the server.
  Note, unfortunately at this time there are no tests, because there
  are not currently any good test seams in MailService.java.
  BUG=1776149

Automated import of CL 145227
2009-04-08 18:42:42 -07:00
Andy Stadler
ea6fea9bb2 AI 144953: Provide UI for push mode accounts.
1.  Generalize the code for the various spinners that control
  account check frequency.
  2.  Provide an API for looking up store attributes (and refactor
  existing instatiateStore logic to use it).
  3.  Cleanup the old code that was used to setup frequency spinners.
  4.  Hardwire Exchange accounts to default into push mode.
  Notes to tester:
  1.  For each account type (POP, IMAP, EAS) we need to check that
  auto & manual creation "do the right thing" for frequencies.
  POP & IMAP should offer "none" or time intervals, while EAS
  should offer "push", "none", or time intervals.
  2.  EAS accounts should default to "push", all others to "15 min"
  3.  Make sure that you can edit existing account settings and see
  the right choices (only EAS should be offered push).
  4.  I couldn't write an automated test for the mail checker service,
  please confirm that POP & IMAP accounts are checked at the right
  intervals (or never, if set for "none".)
  BUG=1776149

Automated import of CL 144953
2009-04-07 17:35:13 -07:00
Andy Stadler
87c43cada6 AI 144525: Add structural support for Exchange transport. The idea is that
the shipping client will include the necessary generic pieces for
  configuring an Exchange client (e.g. account setup) but will not
  include actual Exchange client code (e.g. transport / protocol).
  Also added a "sample code" implementation of Exchange for use
  as a starting point for implementors.  (Note, this will not ship
  in Donut, it's a placeholder for working on the "framework"
  aspects.)
  BUG=1740621,1740626

Automated import of CL 144525
2009-04-03 16:02:55 -07:00
Andy Stadler
2b0c619f1e AI 144520: General cleanup after the integrations in CL 143018. Some spelling
errors, inconsistencies in passing Application/Activity/Context, and
  some error handling cleanups.  These are all changes that would have
  probably been made before the original submits, but I didn't want
  to fix them in the integration step.
  BUG=1740621

Automated import of CL 144520
2009-04-03 15:40:49 -07:00
Andy Stadler
ae8ca3fbd1 Automated import from //branches/donutburger/...@143018,143018 2009-03-26 17:05:25 -07:00
Andy Stadler
dfa98d5e1f Automated import from //branches/donutburger/...@142711,142711 2009-03-25 16:36:11 -07:00
Tadashi Takaoka
2a34cb9c9c Automated import from //branches/donutburger/...@142523,142523 2009-03-25 01:30:24 -07:00
Tadashi Takaoka
d12181df8f Automated import from //branches/donutburger/...@142461,142461 2009-03-24 22:45:09 -07:00
Tadashi Takaoka
b1d72808d7 Automated import from //branches/donutburger/...@142458,142458 2009-03-24 22:44:38 -07:00
Andy Stadler
7265bb729b Automated import from //branches/donutburger/...@142152,142152 2009-03-24 21:31:47 -07:00
Andy Stadler
2b4b8d3e8e Automated import from //branches/donutburger/...@142110,142110 2009-03-24 21:27:36 -07:00
Andy Stadler
7dbeb7d91c Automated import from //branches/donutburger/...@141237,141237 2009-03-24 19:53:32 -07:00
The Android Open Source Project
3469902379 auto import from //branches/cupcake_rel/...@140373 2009-03-18 17:39:48 -07:00
The Android Open Source Project
3b85e2c2b5 auto import from //branches/cupcake_rel/...@138607 2009-03-13 13:04:24 -07:00
The Android Open Source Project
3debc4f25a auto import from //branches/cupcake/...@137873 2009-03-11 12:11:58 -07:00
The Android Open Source Project
3db9542af6 auto import from //depot/cupcake/@136594 2009-03-05 14:34:38 -08:00
The Android Open Source Project
96c5af40d6 auto import from //depot/cupcake/@135843 2009-03-03 19:32:22 -08:00
The Android Open Source Project
8c2158a5eb auto import from //depot/cupcake/@135843 2009-03-03 18:28:50 -08:00
The Android Open Source Project
1f5bbf66d1 auto import from //depot/cupcake/@132589 2009-03-03 14:04:31 -08:00
The Android Open Source Project
7a8703fda9 auto import from //depot/cupcake/@137055 2009-03-02 22:54:40 -08:00
The Android Open Source Project
88a1d6f92d auto import from //branches/cupcake/...@132276 2009-02-19 10:57:35 -08:00
The Android Open Source Project
ff4eb775df auto import from //branches/cupcake/...@131421 2009-02-13 12:57:53 -08:00
The Android Open Source Project
f7ae27b973 auto import from //branches/cupcake/...@130745 2009-02-10 15:44:04 -08:00
The Android Open Source Project
be72b1d08a auto import from //branches/cupcake/...@127436 2009-01-22 00:13:44 -08:00
The Android Open Source Project
b957c79556 auto import from //branches/cupcake/...@126645 2009-01-15 16:12:13 -08:00
The Android Open Source Project
687f9962d7 Code drop from //branches/cupcake/...@124589 2008-12-17 18:05:56 -08:00
The Android Open Source Project
8978aac197 Initial Contribution 2008-10-21 07:00:00 -07:00