1
0
mirror of https://github.com/moparisthebest/k-9 synced 2024-11-28 12:12:21 -05:00
Commit Graph

1703 Commits

Author SHA1 Message Date
Jesse Vincent
ab5c7ea6ff Refactoring of emoji transcoding code into the htmlconverter class 2011-01-15 15:25:48 +00:00
Jesse Vincent
4dcf32d2a9 Call the routine to convert emoji to images only when a message actually contains emoji.
This is to solve the performance issue repoted by jesse in Issue 2657.

Signed-off-by: HIRANO Takahito <hiranotaka@zng.info>
2011-01-15 15:25:42 +00:00
Jesse Vincent
711b4763e9 Tweak our message list subject default a bit bigger to set it off from the other text. 2011-01-14 03:54:00 +00:00
Jesse Vincent
aacb414004 astyle 2011-01-14 01:37:52 +00:00
Jesse Vincent
8bb7613471 Update URL regexes by importing from AOSP and then from IANA 2011-01-14 01:37:46 +00:00
Jesse Vincent
d1a1b12aae Support emoji in subjects.
Signed-off-by: HIRANO Takahito <hiranotaka@zng.info>
2011-01-14 00:53:19 +00:00
Jesse Vincent
e36ead77c4 ant doesn't like the unicode symbol 2011-01-13 16:28:57 +00:00
Jesse Vincent
da22ffdcea standardize the formats of our wakelock messages to be able to better audit them 2011-01-13 01:18:40 +00:00
Andrew Chen
e56b044bbc Add support for HTML composition with text alternative.
Revamp K9 Identity string.
Quote names in Address only when needed.
Remove quoted text bar and move button to quoted text area.
2011-01-12 23:48:28 +00:00
Andrew Chen
ed4aec26f1 Removed bogus javadoc param. 2011-01-12 06:24:00 +00:00
Andrew Chen
c07c7052dc Add Notification setting to disable unread count in notification bar. 2011-01-12 01:23:17 +00:00
Andrew Chen
a17c21f0cd Add null check in header view to prevent NPE. 2011-01-11 22:25:06 +00:00
cketti
ba6a92b432 Removed unnecessary import. 2011-01-11 03:49:11 +00:00
cketti
a03f75dd5e Updated javadoc comment 2011-01-11 03:48:30 +00:00
cketti
3aba9e11ae Code/comment cleanup 2011-01-11 03:40:43 +00:00
cketti
d403e36f06 Don't count on skip() to actually skip as many bytes as requested. 2011-01-11 03:27:58 +00:00
cketti
c7a7d832e7 Better handle the case where a list in an IMAP response is prematurely ended by CRLF.
Fixes issue 2852
2011-01-11 03:10:24 +00:00
Andrew Chen
b4635e53b5 When editing a draft, only show the BCC field if it has entries other than the auto-bcc for that account.
This makes draft editing behavior the same as new composition.
2011-01-11 02:49:00 +00:00
Andrew Chen
e19f742678 Consolidate exception catching in processSourceMessage into a single try/catch block.
Add error logging if we do have an exception.
2011-01-10 20:12:08 +00:00
Jesse Vincent
9d5704c0f5 Split the Header view out from the MessageView activity 2011-01-10 17:47:28 +00:00
Jesse Vincent
052695af83 Simplify Contacts API 2011-01-10 17:47:23 +00:00
Jesse Vincent
0ca6adfbf8 move DateFormatter from Activity to Helper 2011-01-10 17:47:16 +00:00
Andrew Chen
5fe33f2c62 remove dead isInUse code. 2011-01-07 21:41:27 +00:00
Jesse Vincent
b2c44579d2 lift "displayMessage" out of a callback 2011-01-06 16:56:55 +00:00
Jesse Vincent
39ef6584a8 continue to extract attachment code out to AttachmentView 2011-01-06 16:56:37 +00:00
Jesse Vincent
19c5324316 Extract AttachmentView and MediaScannerNotifier into their own classes 2011-01-06 16:56:20 +00:00
Jesse Vincent
ed60cdfa5a replace constant lookups of the MessagingController instance with a locally cached one 2011-01-06 16:56:02 +00:00
Jesse Vincent
299c057cd4 minor code cleanup 2011-01-06 16:55:48 +00:00
Jesse Vincent
9c847d3e9d minor code cleanup 2011-01-06 16:55:34 +00:00
Jesse Vincent
de806f7715 astyle 2011-01-06 16:55:08 +00:00
Andrew Chen
aa0eeac736 Show the correct quote style options at preference load time. 2011-01-06 07:05:57 +00:00
Andrew Chen
f9ddc7eb06 Remove extraneous colon. 2011-01-06 01:34:08 +00:00
Andrew Chen
74e6384236 Fix potential NPE. 2011-01-06 01:31:28 +00:00
cketti
f9f6160719 Correctly encode/escape strings when used in IMAP commands.
Fixes issue 2832
2011-01-06 00:39:09 +00:00
Andrew Chen
5fef7f3b07 Add support for Outlook-style quote headers as a preference under Account Settings -> Sending Mail.
Refactor forwarding header (header-style quote header) into individual string pieces that are assembled in code to accommodate future HTML version of headers.
Introduced four new strings for translation.
2011-01-05 23:58:14 +00:00
Jesse Vincent
9f4790088e Escape backslashes in IMAP mailbox names 2011-01-05 13:12:30 +00:00
Andrew Chen
ead632aac6 Refactor html/text conversions into its own class.
Add more tags to be ignored during HTML to plain text conversion.
Remove UTF-8 non-breaking spaces from generated text.
2011-01-05 04:26:33 +00:00
Jesse Vincent
f8f916edde Make contacts searchable from phonetic names on Eclair and earlier.
Signed-off-by: HIRANO Takahito <hiranotaka@zng.info>
2011-01-04 14:33:02 +00:00
Jesse Vincent
2daf8eaec8 Allow emoji input.
Signed-off-by: HIRANO Takahito <hiranotaka@zng.info>
2011-01-04 13:25:59 +00:00
Jesse Vincent
d25f12fa16 Switch K-9 from generating X-User-Agent to User-Agent headers.
Fixes issue 1917
2011-01-04 08:33:12 +00:00
Andrew Chen
f3e75d564a Add custom HTML tag handler to be used when converting HTML to Text.
Hides code in STYLE and SCRIPT tags and adds text-equivalent of HR.
2011-01-04 06:58:13 +00:00
Jesse Vincent
40344aea41 support iPad mail too 2011-01-03 18:12:35 +00:00
Jesse Vincent
0a8514888e Map emoji code points defined by mobile carriers to ones defined by
Google in order to support various carriers. Patch by HIRANO Takahito
<hiranotaka@zng.info>
2011-01-03 18:07:44 +00:00
Andrew Chen
68ded8aa3e Add some more documentation about temporary notification avoidance code using UIDs. 2011-01-03 03:26:31 +00:00
Andrew Chen
e794af0bbf Prevent new mail notifications if they're older than our most recent message.
First attempt at fixing Issue 1276.  Only works with services that use numeric message IDs, like IMAP.
2011-01-02 09:01:23 +00:00
cketti
fe724c8c79 Changed SMTP code to handle reply codes without additional text.
Fixes issue 2801
2011-01-01 18:45:33 +00:00
Andrew Chen
731ea27a24 Minor formatting cleanup. 2010-12-31 08:56:05 +00:00
Jesse Vincent
29fdb81f9b Fix for the "K9 skips every 101st message when fetching on IMAP" bug by
e-t172 <e-t172@akegroup.org>. Fixes Issue 2819
2010-12-30 23:57:41 +00:00
Fiouz
47762a9baa Remove coupling between ImapStore and ImapConnection by adding an settings indirection interface. Purpose: use the IMAP connection code to validate credentials without having an actual ImapStore instance. 2010-12-30 21:57:59 +00:00
cketti
a1e059e871 Introduced setting to change the font size of the message preview in the message list.
Fixes issue 2788
2010-12-30 00:52:00 +00:00
Andrew Chen
605a0bdc93 Add more comments about LocalTextBody.
Display decrypted PGP data as text/plain (content type was being set, but not being passed to WebViews).
2010-12-29 07:34:57 +00:00
Andrew Chen
b85f0b64c0 Fix javadoc; make constant all caps. 2010-12-29 07:17:43 +00:00
cketti
cb97c312fc Move ColorChip to the correct directory 2010-12-28 23:37:47 +00:00
Jesse Vincent
777f75b5c4 Stop showing "Not polling" in the status header. Most of the time, this
is because we're pushing.
2010-12-28 09:12:02 +00:00
Jesse Vincent
8bc984f440 APG-related messageview bugfixes 2010-12-28 09:11:35 +00:00
Jesse Vincent
0c426c9c4b Round our color chips, clean up color hcip rendering a bit 2010-12-28 09:11:10 +00:00
Jesse Vincent
4c9c478d8d minor code and doc cleanups as recommended by IntelliJ 2010-12-28 09:10:50 +00:00
Jesse Vincent
bbf65f1335 remove temporary variables 2010-12-28 09:10:30 +00:00
Jesse Vincent
b166cf03e8 split apart attachment view creation a bit 2010-12-28 09:09:52 +00:00
Jesse Vincent
3c9eb2c004 Further refactoring of message display 2010-12-28 09:09:33 +00:00
Jesse Vincent
9fe56831bf finish removing setHeaders as a layer of indirection 2010-12-28 09:09:15 +00:00
Jesse Vincent
8116a0f39f lift some gpg code into the crypto initializer 2010-12-28 09:08:58 +00:00
Jesse Vincent
3ffa28fa02 we import so we don't need to qualify 2010-12-28 09:08:40 +00:00
Jesse Vincent
85a7a08e9a Rename our attachment view holder from Attachment to AttachmentViewHolder 2010-12-28 09:08:18 +00:00
Jesse Vincent
6a04afb758 extract "does it have html images" out of MessageView. really, it should
end up in LocalMessage somewhere
2010-12-28 09:07:59 +00:00
Jesse Vincent
7623a02852 lift the "get display text" code out of the messageview and into
localmessage
2010-12-28 09:07:39 +00:00
Jesse Vincent
84f6e546d2 setLoadPictures sets mShowPictures. We don't need to set it again 2010-12-28 09:07:19 +00:00
Jesse Vincent
f292251b78 lift createUniqueFile to a Utility class 2010-12-28 09:06:57 +00:00
Jesse Vincent
570dbf7126 split apart onCreate into bite-sized pieces 2010-12-26 03:51:33 +00:00
Jesse Vincent
43e3e860f8 doc fix 2010-12-26 03:49:52 +00:00
Jesse Vincent
d352b8a4a5 whitespace 2010-12-26 03:49:23 +00:00
Jesse Vincent
f2b2fddd5a onRefile removes code duplication 2010-12-26 03:49:20 +00:00
Jesse Vincent
db02383d4a whitespace cleanups 2010-12-26 03:49:16 +00:00
Jesse Vincent
8488b55e09 remove some duplicated code 2010-12-26 03:49:13 +00:00
Jesse Vincent
8c6df94739 remove some temp variables 2010-12-26 03:49:09 +00:00
Jesse Vincent
877427f110 cut down a couple overly verbose conditionals 2010-12-26 03:49:06 +00:00
Jesse Vincent
daf5a9d704 lift emulateShiftHeld to our custom WebView subclass 2010-12-25 22:30:34 +00:00
Jesse Vincent
8e2e4e515f simplify MessageView's setHeaders 2010-12-25 22:30:31 +00:00
Jesse Vincent
8b52aac135 remove unused imports 2010-12-25 22:30:27 +00:00
Jesse Vincent
76fd8e9939 extract animation code from MessageView 2010-12-25 22:30:22 +00:00
Jesse Vincent
5f9eae1580 Extract MessageWebView specific code into a new class 2010-12-25 22:30:16 +00:00
Jesse Vincent
ea4e0aa61f remove a bunch of extraneous code and variables 2010-12-25 19:29:02 +00:00
Jesse Vincent
9f24ea2b03 minor code cleanup 2010-12-25 19:28:58 +00:00
Jesse Vincent
91ab617807 rename "hide buttons" to "scroll buttons" because that's what it does 2010-12-25 19:28:54 +00:00
Andrew Chen
dc5616c4b6 Add a space between recipients when doing toString(). 2010-12-25 01:36:48 +00:00
Andrew Chen
77c01c65dd Refactor network data blocking out of the main K9 class and into the MessageView class. 2010-12-25 01:26:47 +00:00
Jesse Vincent
f14c7ecd9b doc & comment updates from achen.code 2010-12-25 00:27:09 +00:00
Jesse Vincent
c361c0e63c Extract a method to set up our MessageView WebView 2010-12-25 00:27:05 +00:00
Jesse Vincent
1fae914efb tiny doc update from achen.code 2010-12-25 00:26:59 +00:00
Jesse Vincent
db7649c9af move folderlist initialization into an asynctask, so it's not so slow to populate 2010-12-24 22:48:29 +00:00
Jesse Vincent
b99eb47d15 extract folder preference setup to a method, so we can push it onto a thread 2010-12-24 22:48:26 +00:00
Jesse Vincent
4a97f4a1a0 astyle 2010-12-24 22:48:22 +00:00
Jesse Vincent
fa510f2dab Turns out that UUID generation is expensive. deferring it until first access improves startup performance. 2010-12-24 22:48:19 +00:00
Jesse Vincent
d64d9c460a Disable webview cache and javascript. (Mail + Javascript == scary) 2010-12-24 22:48:17 +00:00
Jesse Vincent
df96d0fbe0 avoid use of a temp variable 2010-12-24 22:48:14 +00:00
Jesse Vincent
30b7402569 We shouldn't be resetting visible limits every time K-9 is opened, only when the user changes
how many messages they want to be synced, otherwise the "fetch more messages" option is session-only, which is really, really wasteful of network. (and "session" is poorly defined, since android manages our lifecycle.)

Additionally, doing this at startup has huge overhead. If this functionality is ever restored, we should make it asynchronous
2010-12-24 22:48:11 +00:00
Jesse Vincent
9878b74379 astyle 2010-12-24 18:55:05 +00:00
Jesse Vincent
c49a856046 Enable Strict Mode when a new "developer mode" is enabled and we're running on 2.3 or newer 2010-12-24 18:55:01 +00:00
Jesse Vincent
0b3dc2840b Bump us up to android-9 so we can have strict mode for development 2010-12-24 18:54:56 +00:00
Andrew Chen
2806c267c9 Remove unreadable characters from message previews. 2010-12-23 23:16:54 +00:00
Andrew Chen
302339545b Try using IP address for EHLO if hostname is unavailable. Only use a default hostname if the IP address is unavailable. ref r2958, issue 2750. 2010-12-23 17:43:57 +00:00
Andrew Chen
6c52c8d927 Set a default hostname if we can't get the local hostname. Fixes issue 2750. 2010-12-23 17:15:20 +00:00
Andrew Chen
f5421f32b8 Fix bug where replaceAll result was being discarded.
Fix javadoc.
2010-12-22 22:08:15 +00:00
Fiouz
df44a1f89b Add @Override annotations (1.6) for safer compile-time checks 2010-12-20 21:34:01 +00:00
Fiouz
0abbeb443e Batch storing of unsynced messages to speed up DB update (chunk size set to 5).
Execution code path is modified since it's not longer handling one message at a time when inserting in DB - might require review.
2010-12-19 11:51:54 +00:00
Jesse Vincent
eda76640c0 When mail is sent successfully, cancel the "couldn't send mail"
notification
2010-12-19 01:30:11 +00:00
Jesse Vincent
b59eb6c69f lift lastFailure up so we can reference it in an outer scope 2010-12-19 01:30:07 +00:00
Jesse Vincent
dbe4bea290 Give our "send failed" notification a contant 2010-12-19 01:30:03 +00:00
Fiouz
ab5caba92c Factor out store locking code in an intermediate DB access layer. 2010-12-18 22:56:40 +00:00
Fiouz
c5f7dbf028 Execute LocalMessage.appendMessage() & LocalMessage.setFlag() in the same transaction for small message storing in order to speed up DB update.
This is a per message basis optimization. More improved speed could be attained by batching several messages in the same transaction.
2010-12-18 10:12:52 +00:00
Kris Wong
bb5052f848 Fix possible NPE. 2010-12-17 17:25:27 +00:00
Kris Wong
623217f6d0 Improved fallback authentication methods + ran source formatter. 2010-12-17 14:40:19 +00:00
Jesse Vincent
0778c8ea17 Provisional fix for Issue 2760 in k9mail: New NPE from market. showing up a lot on 3.400 2010-12-16 02:38:54 +00:00
Kris Wong
33f5a42562 Fix usage of 'advanced' exchange settings. 2010-12-15 17:00:54 +00:00
Fiouz
f8f2169643 Don't reference the enclosing type instance when it's not used (memory optimisation) 2010-12-14 19:27:11 +00:00
Fiouz
caabbd735a Don't reference the enclosing type instance when it's not used (memory optimisation) 2010-12-14 19:27:04 +00:00
Fiouz
0d23157e3b Don't reference the enclosing type instance when it's not used (memory optimisation) 2010-12-14 19:26:57 +00:00
Fiouz
05a8a31d4a Don't reference the enclosing type instance when it's not used (memory optimisation) 2010-12-14 19:26:51 +00:00
Fiouz
fb348449c3 Don't reference the enclosing type instance when it's not used (memory optimisation) 2010-12-14 19:26:44 +00:00
Fiouz
63a8197f5a Don't reference the enclosing type instance when it's not used (memory optimisation) 2010-12-14 19:26:37 +00:00
Fiouz
64b5655d7c Don't reference the enclosing type instance when it's not used (memory optimisation) 2010-12-14 19:26:31 +00:00
Fiouz
36858f53de Don't reference the enclosing type instance when it's not used (memory optimisation) 2010-12-14 19:26:25 +00:00
Fiouz
9d01876481 Don't reference the enclosing type instance when it's not used (memory optimisation) 2010-12-14 19:26:18 +00:00
Fiouz
dcbfd332ab Don't reference the enclosing type instance when it's not used (memory optimisation) 2010-12-14 19:26:09 +00:00
Fiouz
a667a72585 Don't reference the enclosing type instance when it's not used (memory optimisation) 2010-12-14 19:26:02 +00:00
Fiouz
4024ddd384 Don't reference the enclosing type instance when it's not used (memory optimisation) 2010-12-14 19:25:56 +00:00
Kris Wong
2b56464ad9 Fix form based re-authentication when logon cookies had expired. 2010-12-14 18:02:39 +00:00
Jesse Vincent
5e7257492d small cleanups to messageview code 2010-12-13 01:56:57 +00:00
Jesse Vincent
063bbb904f Extract SizeFormatter into helpers 2010-12-13 01:02:39 +00:00
Jesse Vincent
23b57b4502 remove a duplicated and divergent size formatter 2010-12-13 01:02:35 +00:00
Jesse Vincent
936b2779d6 fixup onNext was overloaded (due to the flinger) - at least unify the
protection level
2010-12-13 01:02:31 +00:00
Jesse Vincent
2451dde1bc simplify our "should we animate" checks in messageview (also, we now
honor the animation preference when using the volume keys to navigate)
2010-12-13 00:37:31 +00:00
Andrew Chen
b0e4d9cdff Try calculating content preview from HTML part if text part is unsuccessful on appendMessages. 2010-12-13 00:33:00 +00:00
Jesse Vincent
26712ed84a reshuffle color views into view/ 2010-12-13 00:18:00 +00:00
Jesse Vincent
76b6fa696b Move the ToggleScrollView into the view/ hierarchy 2010-12-13 00:17:54 +00:00
Jesse Vincent
aa2960eb04 move the AccessibleEmailContentActivity into activity/ 2010-12-13 00:17:49 +00:00
Jesse Vincent
f97d4289ca Start moving custom views into the view/ hierarchy 2010-12-13 00:17:44 +00:00
Andrew Chen
d48a869361 Add "x-gbk" as an alias of GBK. 2010-12-12 23:56:09 +00:00
Jesse Vincent
4bb5acb51c Revert "stop fading the chip if a message is read. we already change text"
It's contentious to change, apparently. So, revert until it's a setting
This reverts commit a6060fa66c8ae6001c402b0f3ac3d240b7348b8e.
2010-12-07 01:22:35 +00:00
Marcus Wolschon
f5420ac528 readable thread-name for debugging
javadoc
2010-12-06 09:25:23 +00:00
cketti
9f7b447181 POP3: Ignore messages without unique-id when parsing UIDL response
Fixes issue 2731
2010-12-01 18:14:12 +00:00
Jesse Vincent
f5eb6e03af astyle 2010-12-01 06:32:29 +00:00
Jesse Vincent
e44a74c652 Get rid of a whole lot of crazy code that forced repeated attachment
downloads with the intent of only having one attachment downloaded at a
time.
2010-12-01 06:04:28 +00:00
Jesse Vincent
35f19abc9f Improve the "Do what I mean" nature of "Empty trash" - it now syncs the
trash folder after deletions to clear out local records of deleted
messages and does a compact operation on the local store.
2010-12-01 06:04:22 +00:00
Jesse Vincent
75ec749ed4 Remove an unused "context" from a private function 2010-12-01 06:04:16 +00:00
Jesse Vincent
02acea3bbf replying to a message you sent shouldn't end up sending mail only to you 2010-12-01 06:04:12 +00:00
Jesse Vincent
1898ceee71 Remove two retundant variables 2010-12-01 03:08:36 +00:00
Jesse Vincent
f4a54b9ecb fix a numeric equality bug spotted by intellij 2010-12-01 03:08:09 +00:00
Jesse Vincent
78c900b5fe remove redundant ;s 2010-12-01 03:07:28 +00:00
Jesse Vincent
75aa644a23 Remove a bunch of stringification inside of string appends (per intellij) 2010-12-01 03:06:50 +00:00
Jesse Vincent
0677bd9e77 Get rid of some redundant casts (Per IntelliJ) 2010-12-01 03:06:12 +00:00
Jesse Vincent
fde438fbfb Get rid of some unnecessary stringification (Per IntelliJ) 2010-12-01 03:05:40 +00:00
Jesse Vincent
cead5c7060 flip some loops to using java internals instead (per intellij) 2010-12-01 03:04:57 +00:00
Jesse Vincent
5485d0faf1 switch over some for loops to enhanced for loop syntax per intellij 2010-12-01 03:04:07 +00:00
Jesse Vincent
58e6bd388b finalize some declarations per IntelliJ 2010-12-01 03:03:22 +00:00
Jesse Vincent
c79ea226a5 Remove "throws" declarations that didn't actually get thrown. Remove a
couple of try blocks that only caught throws we didn't throw. IntelliJ
optimization.
2010-12-01 03:02:13 +00:00
Jesse Vincent
81f12f0e05 clean up a couple null checks 2010-12-01 03:01:20 +00:00
Jesse Vincent
43d9c0a6d4 Eliminate some redundant assignments 2010-12-01 03:00:36 +00:00
Jesse Vincent
2ecdc22111 simplify static final methods to just be static. (IntelliJ inspection) 2010-12-01 02:59:50 +00:00
Jesse Vincent
1ce9021ecd Fix pinch-to-zoom. Patch by achen.code. Fixes isue 2720 2010-11-30 01:42:00 +00:00
Jesse Vincent
174a62536e Resolves Issue 2719: Message List Previews: Read message senders are shown in bold patch from achen.code 2010-11-30 01:04:24 +00:00
Jesse Vincent
f98a2db2ab stop fading the chip if a message is read. we already change text
weight
2010-11-29 03:24:57 +00:00
Jesse Vincent
dbc07d14ee Revert "http://code.google.com/p/k9mail/issues/detail?id=2682" until we
can make it configurable, per discussion with Marcus

This reverts commit 1436eeefa292f64c8c9aa6ec9fa2daaeafeb93fd.
2010-11-29 02:21:27 +00:00
Jesse Vincent
15bf83bbe4 preliminary implementation of 'quiet time' 2010-11-29 02:21:16 +00:00
Jesse Vincent
fb6dfb3bde removed a commented-out method to show notifications on changes to
system connectivity
2010-11-28 21:48:29 +00:00
Jesse Vincent
2b8f7c0bbc unify all our beeping, buzzing and flashing codepaths 2010-11-28 21:48:25 +00:00
Jesse Vincent
70922989d3 genericize configureNotification in preparation for code reuse 2010-11-28 21:48:21 +00:00
Jesse Vincent
64667d03dc extract vibration pattern metadata out ouf MessagingController into
notificationsetting
2010-11-28 20:29:14 +00:00
Jesse Vincent
b7f52a834f isVibrate -> shouldVibrate to match shouldRing 2010-11-28 20:29:09 +00:00
Jesse Vincent
28c126b8a5 extract notification code from actual "action" code 2010-11-28 20:29:05 +00:00
Jesse Vincent
99d5704b82 extract "sending messages" notification into methods 2010-11-28 20:29:02 +00:00
Jesse Vincent
9784d0e943 remove 100loc by replacing a pattern with a method. 2010-11-28 20:28:58 +00:00
Jesse Vincent
fa64f4c3a8 Minor refactoring for readability 2010-11-28 20:28:53 +00:00
Jesse Vincent
b7617a3497 extract "determine what to do with a new message" out of
downloadMessages Probably wants a better name
2010-11-28 20:28:50 +00:00
Jesse Vincent
3404edca28 extract the "synchronize one folder" method 2010-11-28 20:28:46 +00:00
Jesse Vincent
36bb10fb2c extract out "sync one account" 2010-11-28 20:28:42 +00:00
Jesse Vincent
4f376e8332 astyle 2010-11-28 20:28:37 +00:00
Jesse Vincent
a75098013a add a new quiet time preference 2010-11-28 20:28:32 +00:00
Jesse Vincent
d3c86a39dd initial import of a timepicker preference widget 2010-11-28 20:28:19 +00:00
Jesse Vincent
621f87fcbc Revert "refactor getHeaders and removeHeaders to use a common method and an"
Subtly flawed. Returned the wrong headers

This reverts commit 657b3961f86b1b694fb7587216ecefeb0b20f5d2.
2010-11-27 04:03:15 +00:00
Jesse Vincent
75108f4078 move toMe and ccMe into LocalMessage from MessageInfoHolder 2010-11-27 04:03:10 +00:00
Jesse Vincent
580f47998d Remove subject from messageinfoholder 2010-11-27 04:03:06 +00:00
Jesse Vincent
60a538e071 Remove "preview" form messageinfoholder 2010-11-27 04:03:02 +00:00
Jesse Vincent
f9981dcf7c lift hasAttachments to LocalMessage 2010-11-27 04:02:56 +00:00
Jesse Vincent
1149f2d916 refactor getHeaders and removeHeaders to use a common method and an
iterator to address a Market FC:

java.util.ConcurrentModificationException
at java.util.ArrayList$ArrayListIterator.next(ArrayList.java:573)
at com.fsck.k9.mail.internet.MimeHeader.getHeader(MimeHeader.java:87)
at
com.fsck.k9.mail.internet.MimeHeader.getFirstHeader(MimeHeader.java:51)
at
com.fsck.k9.mail.internet.MimeMessage.getFirstHeader(MimeMessage.java:437)
at
com.fsck.k9.mail.internet.MimeMessage.getContentType(MimeMessage.java:130)
at
com.fsck.k9.mail.internet.MimeMessage.getMimeType(MimeMessage.java:159)
at
com.fsck.k9.mail.internet.MimeUtility.findFirstPartByMimeType(MimeUtility.java:971)
at com.fsck.k9.crypto.Apg.isEncrypted(Apg.java:464)
at
com.fsck.k9.activity.MessageView.updateDecryptLayout(MessageView.java:2702)
at
com.fsck.k9.activity.MessageView$Listener$6.run(MessageView.java:2466)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:144)
at android.app.ActivityThread.main(ActivityThread.java:4937)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
2010-11-26 03:53:15 +00:00
Jesse Vincent
23254e8998 BatchButton area toggling should't happen from anything other than the
UiThread:

Fixes a common error from the market:

android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
at android.view.ViewRoot.checkThread(ViewRoot.java:2802)
at android.view.ViewRoot.invalidateChild(ViewRoot.java:607)
at android.view.ViewRoot.invalidateChildInParent(ViewRoot.java:633)
at android.view.ViewGroup.invalidateChild(ViewGroup.java:2505)
at android.view.View.invalidate(View.java:5139)
at android.view.View.setFlags(View.java:4502)
at android.view.View.setVisibility(View.java:3030)
at
com.fsck.k9.activity.MessageList.hideBatchButtons(MessageList.java:2883)
at
com.fsck.k9.activity.MessageList.toggleBatchButtons(MessageList.java:2906)
at com.fsck.k9.activity.MessageList.access$500(MessageList.java:77)
at
com.fsck.k9.activity.MessageList$MessageListAdapter.pruneDirtyMessages(MessageList.java:2302)
at com.fsck.k9.activity.MessageList$1.run(MessageList.java:811)
2010-11-26 03:53:10 +00:00
Marcus Wolschon
4f08820683 http://code.google.com/p/k9mail/issues/detail?id=2682
mark multiple mails as SPAM
2010-11-22 08:12:48 +00:00
Koji Arai
0206ebf809 Fixed issue 2680
Should not set empty string in auto-expand folder list.
2010-11-21 13:25:21 +00:00
Jesse Vincent
5d33bc044b when a message is seen _decrement_ the unread count, don't increment it 2010-11-21 05:31:42 +00:00
Jesse Vincent
14152a8585 Don't compare whether we're setting the delete flag with whether the
message is seen or not. (logic error)
2010-11-21 05:31:38 +00:00
Jesse Vincent
0e5b5de409 update our counts on destroy before actually destroying the message, so
we have something to call isSet on
2010-11-21 05:31:34 +00:00
Jesse Vincent
43cef54ad6 We don't cache positive DNS lokups. We shouldn't cache negative DNS lookups either 2010-11-21 02:10:59 +00:00
cketti
389502da55 Fixed account shortcuts
- Fixed NullPointerException
- Removed unnecessary stuff (originally copied from Accounts activity)
2010-11-18 09:09:57 +00:00
cketti
0560dc28d9 Don't use the application context to start the Accounts activity (because then we'd have to create a new task)
Fixes issue 2653
2010-11-18 09:08:40 +00:00
Fiouz
a67a2022d3 Added method name logging on transaction logging, when debug is enabled 2010-11-17 21:11:07 +00:00
Fiouz
dc16657480 Made LocalStore.destroy() transactional 2010-11-17 21:10:45 +00:00
Jesse Vincent
46300ac421 Move our "pick a folder" preferences out of the account setup wizard,
where you're unlikely to even have access to them the first time you
walk through into the "Folders" preferences.

At the same time, move toward using a list preference widget, rather
than a custom activity.
2010-11-17 03:43:02 +00:00
Jesse Vincent
b6ccba9c7d When getting a list of folders out of the database, ask for it in
asciibetical order, rather than random order
2010-11-17 03:42:14 +00:00
Jesse Vincent
7291486ca0 No longer delete the Outbox every time it's empty - it makes it somewhat
more difficult to work with. If we want to hide it when it's empty,
that's fine. but it's not necessary to delete it.
2010-11-17 03:41:37 +00:00
Jesse Vincent
80e4de6db4 fix a deleted message count logic error 2010-11-15 01:31:20 +00:00
Jesse Vincent
4f4fe87d5f Minor refactoring of flag setting code 2010-11-15 01:31:16 +00:00
Jesse Vincent
36714d3b4a astyle 2010-11-15 01:31:11 +00:00
Fiouz
f9d828a62c Improved some comments 2010-11-14 23:21:48 +00:00
cketti
58ca9fe740 Changed external intent (e.g. Intent.ACTION_SEND_TO) handling code in MessageCompose
- extracted handling of external intents to a new method
- only allow mailto URI for ACTION_VIEW and ACTION_SENDTO (as documented by AOSP)
- allow additional recipients via "to" parameter in mailto URI
- removed check for allowed MIME type when adding attachments since we're accepting all MIME types anyway
- show CC and BCC text fields when one of those recipient types was set by the intent
- use MIME type specified in intent for attachments (if present and doesn't contain a "*")
2010-11-14 02:27:42 +00:00
Jesse Vincent
675651286b Added the ability to completely wipe the localy cached messages of a syncced folder. 2010-11-14 00:49:25 +00:00
Jesse Vincent
32ea04a5b3 kill a temporary variable 2010-11-14 00:49:21 +00:00
Jesse Vincent
6a6c86d117 Kill a once-used temporary variable 2010-11-14 00:49:18 +00:00
Jesse Vincent
945d4d7c32 a slight cleanup for message deletioon policy logic. 2010-11-14 00:49:15 +00:00
Jesse Vincent
0eee80f08b renamed deleteMessagesOlderThan to clearMessagesOlderThan to better
reflect that it just nukes local copies rather than the synced copies
2010-11-14 00:49:08 +00:00
Jesse Vincent
7d40596aa1 split apart "delete messages older than" for later reuse 2010-11-14 00:49:04 +00:00
Jesse Vincent
14055691a3 Merge branch 'mail-on-sd'
* mail-on-sd: (40 commits)
  Added more comments to explain how the locking mecanism works for LocalStore
  Fixed wrong method being called during experimental provider initialization (since provider isn't enabled, that didn't harm)
  Add more comments about how the various StorageProviders work and how they're enabled
  find src/com/fsck/ -name \*.java|xargs astyle --style=ansi --mode=java --indent-switches --indent=spaces=4 --convert-tabs
  French localization for storage related settings
  Remove unused SD card strings (replaced with storage indirection)
  Merge mail-on-sd branch from trunk
  Reset mail service on storage mount (even if no account uses the storage, to be improved)
  find src/com/fsck/ -name \*.java|xargs astyle --style=ansi --mode=java --indent-switches --indent=spaces=4 --convert-tabs
  Migraion -> Migration
  move the Storage location preference into preferences rather than the wizard.
  Made LocalStore log less verbose Added @Override compile checks
  Added ACTION_SHUTDOWN broadcast receiver to properly initiate shutdown sequence (not yet implemented) and cancel any scheduled Intent
  Be more consistent about which SQLiteDatabase variable is used (from instance variable to argument variable) to make code more refactoring-friendly (class is already big, code extraction should be easier if not referencing the instance variable).
  Added transaction timing logging
  Factorised storage lock/transaction handling code for regular operations.
  Use DB transactions to batch modifications (makes code more robust / could improve performances)
  Merge mail-on-sd branch from trunk
  Update issue 888 Added DB close on unmount / DB open on mount
  Update issue 888 Back to account list when underlying storage not available/unmounting in MessageView / MessageList
  ...
2010-11-13 21:40:56 +00:00
Jesse Vincent
76e26607b8 Added a first pass implementation of being able to resend a message. 2010-11-13 03:09:32 +00:00
Jesse Vincent
3779237eb8 remove a special flag in FolderInfoHolder that we only use twice and
appear to initialize unreliably in favor of some simple checks.
2010-11-13 03:09:27 +00:00
Jesse Vincent
27d3e6312b Refactor FolderInfoHolder to remove copy-paste code 2010-11-13 03:09:23 +00:00
Jesse Vincent
a8de2d0000 astyle 2010-11-13 01:47:08 +00:00
Jesse Vincent
a551dc8dff Replace the old "record a message in K9 Errors and give up"
failed-message scheme with an actual android notification that opens the
outbox
2010-11-13 01:47:02 +00:00
Jesse Vincent
e964c7ba84 Tell the user about a failed delivery the first (any) time it fails 2010-11-13 01:46:59 +00:00
Jesse Vincent
4fb338d8a9 Disable "don't send messages in the outbox if they're flagged" - users
really don't like their mail just getting stuck
2010-11-13 01:46:55 +00:00
Jesse Vincent
ecf793ea26 remove an unused constant 2010-11-13 01:46:46 +00:00
Jesse Vincent
24b018a812 replace a trivial one-line method that was called twice with its body 2010-11-13 01:46:41 +00:00
Jesse Vincent
f874f0f9d3 replace a single-use single-line private method with its body in the one place it was used 2010-11-13 01:46:36 +00:00
Jesse Vincent
0f4366aa77 in the account list, when trying to check mail, also try to send mail 2010-11-13 01:46:31 +00:00
Jesse Vincent
af5f78928c Add a "fetch all messages" visible limit 2010-11-12 23:41:43 +00:00
Jesse Vincent
a130f56bf4 when changing an account's visible limits, try to reset folder visible
limits as soon as we save the setting
2010-11-12 23:41:38 +00:00
Jesse Vincent
9f695eb4ed extract the per-account "reset visible limits" method 2010-11-12 23:41:33 +00:00
Jesse Vincent
478bd876ee There's no reason the getSubject accessor should throw a
MessagingException on LocalMessage
2010-11-12 22:27:32 +00:00
Jesse Vincent
b2e5d7afc5 extract our our folder-count updating code from the flag setting code 2010-11-12 21:38:11 +00:00
Jesse Vincent
eb908b67a3 try to clean up our message count update logic in flagging 2010-11-12 21:38:06 +00:00
Jesse Vincent
2d8a8998b0 factor out a "destroy" method for local messages 2010-11-12 21:38:02 +00:00
Jesse Vincent
1292a10ac2 When a message has been deleted on the server and we want to sync remote
deletions, we don't care whether it was flagged as deleted ocally - we definitely
want to destroy it.
2010-11-12 21:37:58 +00:00
Jesse Vincent
33fd42e766 If we DELETE a message from the database, don't then try to UPDATE it 2010-11-12 21:37:54 +00:00
Jesse Vincent
52e2a437fb Imported a variant of http://code.google.com/p/android-color-picker/ into k-9
- Ported to the ColorPickerDialog API
- Translated the API and Internals from Indonesian to English
- Moved to use K-9 strings rather than custom strings.

In an ideal world, we should use ambilwarna as an android library
project, like it was intended.
2010-11-08 02:21:32 +00:00
Jesse Vincent
d45081abaa Animate the batch-operations toolbar (Imported from AOSP) 2010-11-07 19:40:42 +00:00
Jesse Vincent
6528b2d775 lift up font setting code to be with the rest of the initial messagelist item setting code 2010-11-07 00:30:17 +00:00
Jesse Vincent
69675bc935 Now that we can show bigger previews, actually generate a bigger preview 2010-11-05 04:23:09 +00:00
Jesse Vincent
a78776a9ee Only look at the first 8k of a message when calculating message previews 2010-11-05 04:23:04 +00:00
Jesse Vincent
bfc24a58a0 Improvements to message preview heuristics 2010-11-05 03:55:24 +00:00
Jesse Vincent
9d69875246 Add a new preference to let users select how many lines of message
preview show in message-preview mode.
2010-11-05 02:59:26 +00:00
Jesse Vincent
d0e85ce43a astyle 2010-11-05 02:59:21 +00:00
Jesse Vincent
602099cfd3 Be more careful about deleting messages from the MessageListAdapter -
don't do it from something that's not the UI thread
2010-11-05 01:16:35 +00:00
Marcus Wolschon
4aba667a4e fix for "http:/"-links in plaintext -emails. (add http:// is a link has no schema) 2010-11-04 13:35:39 +00:00
cketti
5b88a99de0 Got rid of some compiler warnings. 2010-11-04 03:11:34 +00:00
Jesse Vincent
fb55aa5bfb Fix an extra paren 2010-11-03 00:48:18 +00:00
Jesse Vincent
b9999878df We care about eclair MR1, not eclair 2010-11-03 00:44:07 +00:00
Jesse Vincent
9c7e3bcc26 Guard against null content from html parts on reply/forward, which was
causing a bunch of NPEs on the market.
2010-10-31 17:42:03 +00:00
cketti
7f396e29a0 Match beginning of words when searching for contacts in Android 1.5/1.6 (e.g. "Doe" will find "Doe, John" and "John Doe")
Fixes issue 1354
2010-10-30 20:53:56 +00:00
cketti
0add1f97c0 Mark contacts as contacted when a mail is sent to them.
Fixes issue 2522
2010-10-30 20:35:49 +00:00
Jesse Vincent
7db384fc08 Use a more backward compatible os version check, since the "current"
best practice is incompatible with 1.5
2010-10-29 22:35:27 +00:00
Jesse Vincent
e0d6a55d06 SINGLE_COLUMN layouts cause Android 1.0-2.1 to segfault. 2010-10-29 22:35:19 +00:00
Jesse Vincent
b749a198a7 get to: contacts working right. 2010-10-29 22:35:11 +00:00
Jesse Vincent
c5cf9e5c8c message_to_label and message_to_fmt were used from places that weren't
their original sources. rename them to lie less.
2010-10-29 22:34:59 +00:00
Fiouz
d28a85de5b Update issue 2270
Status: Fixed
Gracefully ignore RejectedExecutionException on service shutdown (there's little we can do about being shut down)
2010-10-29 19:55:04 +00:00
Fiouz
be6ab18091 Update issue 2537
Try to gracefully handle account DB corruption by deleting file on open exception
2010-10-28 19:16:55 +00:00
Fiouz
50c3751421 Display "Account settings" title instead of "General settings" when opening account settings (doesn't seem to be affected by user chosen language though) 2010-10-28 19:07:30 +00:00
Marcus Wolschon
b723769e65 translated "unable to connect". 2010-10-28 14:37:48 +00:00
Jesse Vincent
6704279042 redo our messagelist sigil code to not break sender colorization 2010-10-25 03:21:08 +00:00
Jesse Vincent
724169e982 astyle 2010-10-25 03:20:03 +00:00
Jesse Vincent
ddccd11ef7 Try to send pending messages whenever we refresh pushers. should help
with "stuck" unsent messages on push-only accounts
2010-10-25 03:19:43 +00:00
Jesse Vincent
f6f9d35430 unify two codepaths that sent unsent messages, one of them without a notification 2010-10-25 03:19:19 +00:00
Jesse Vincent
968fb8c508 add a variant of sendPendingMessages that will send pending messages in all accounts 2010-10-25 03:18:51 +00:00
Jesse Vincent
1d6caa5c0a Never show an undismissable "new email" notification for a null account (like used to happen during setup) 2010-10-24 02:01:13 +00:00
Jesse Vincent
c216f42eb3 Exchange authenticaton and setup overhaul from Kris Wong 2010-10-24 01:03:29 +00:00
Jesse Vincent
07adaaee4d Applied WebDavStore_cleanup.diff to remove dead code in the WebDav store from Kris Wong <wongk@seapine.com> 2010-10-24 01:02:46 +00:00
Jesse Vincent
62caa5ce76 Experimental change - ask android to try to make columns no wider than
the viewport. This change should NOT be backported to 3.2, but I'd like
folks to try it with real email.
2010-10-23 18:50:54 +00:00
Jesse Vincent
43cb54594b Push the webview's renderpriority from NORMAL to HIGH - it's cargo-cult
performance improvement, but it certainly doesn't hurt
2010-10-23 18:50:24 +00:00
Jesse Vincent
983d7ad48f The "viewport" hinting we used to try to better fit messages by default
made android zooming incredibly unreliable. Now it's only somewhat
unreliable.
2010-10-23 18:50:10 +00:00
Jesse Vincent
4ea6c1603b We've been seeing a lot of FCs on htmlifcation of large messages due to
running out of memory during our heavy HTMLification. Try to be a bit
lighter on the poor RAM if a plain text message is big.
2010-10-23 17:33:08 +00:00
Jesse Vincent
524dfb348a Updated MIME Type list with http://www.stdicon.com/mimetypes 2010-10-23 16:28:18 +00:00
Jesse Vincent
105df4c61a It turns out that not every android release has a good extension to
mimetype mapping. restore our previous hardcoded mime database as a
fallback
2010-10-23 16:28:07 +00:00
Jesse Vincent
fb059a8138 Fix for NPE when changing the identity
Fixes issue 2506. Patch from jca02266
2010-10-23 15:26:50 +00:00
Jesse Vincent
96f1d9eadf Fix phantom messages in unified inbox. 2010-10-23 15:19:56 +00:00
Jesse Vincent
bc2127c84a added a synchronous variant of searchLocalMessages 2010-10-23 15:19:47 +00:00
Jesse Vincent
64c102dd14 notification that the dataset changed needs to happen on the UI thread. 2010-10-21 20:49:48 +00:00
Jesse Vincent
48f2885cfc When returning from a messageview to a messagelist do our listview
updates on a thread rather than on the main ui thread. it results
in the list blinking with old data, but that's still a better user
experience than "frozen"
2010-10-21 20:49:36 +00:00
Jesse Vincent
e8756af4f1 astyle 2010-10-21 20:49:20 +00:00
Jesse Vincent
2a4792eb60 update a comment about an uncommon code path 2010-10-21 20:49:05 +00:00
Jesse Vincent
8d9c074a27 Add gmail-style "to me" and "cc me" indicators in messagelist 2010-10-21 20:48:45 +00:00
Jesse Vincent
d02ddda19b When doing a message search, break it into "first 10" and "more" -
because a long SQL query takes more time before starting to return
results, K-9 was increasingly slow on large folders.

Doing two searches may take marginally more time but starts getting
results back to the UI much faster.
2010-10-21 20:48:28 +00:00
Jesse Vincent
e05784d41d Running heavy operations on the UI thread makes K-9's UI slow and
freezy.  addOrUpdateMessages is very heavy. and very common.
2010-10-21 20:48:12 +00:00
Marcus Wolschon
0933fad9b3 Update issue 7031
http://code.google.com/p/android/issues/detail?id=7031
added removeDialog() for every dismissDialog()
2010-10-18 09:53:22 +00:00
Jesse Vincent
b2a08d969b Revert "For the common case of "getMessage" where we actually have the object in"
This doesn't work on initial sync, since the comparisons fail and you're
left with duplicates in the displayed mailbox
This reverts commit fa1c88bec348d0132acc60a320626bf0ca1170ec.
2010-10-16 08:27:58 +00:00
Jesse Vincent
496677dad4 Calculate preview for html-only messages
Fixes 2465
2010-10-16 08:27:47 +00:00
cketti
742db2ac62 Cosmetic code changes 2010-10-13 20:56:44 +00:00
cketti
4be781a749 Fix NullPointerException when saving account settings for non-IMAP accounts.
Fixes issue 2454
2010-10-13 20:49:34 +00:00
Jesse Vincent
28c9dfdcce Delay formatting of dates in messagelist until we actually need them
-- it turns out they're very expensive.
2010-10-13 10:53:08 +00:00
Jesse Vincent
4e53ee12b6 For the common case of "getMessage" where we actually have the object in
the list, use a less painful equality check than iteration.

This works because messageInfoHolders compare to each other using the
same key as message they contain.
2010-10-13 10:52:53 +00:00
Fiouz
9db44bf4a9 MessageProvider: making sure exposed cursor gets dereferenced on close (and closed on finalization) to prevent memory leak 2010-10-11 20:41:59 +00:00
Jesse Vincent
e8fd9683e6 Optimize the new return-to-listview code. (Avoid a bug where we do far
too much work on first open of a message list)
2010-10-11 19:47:41 +00:00
Jesse Vincent
d07aca3008 "Preferences" -> "Settings" for consistency 2010-10-11 14:54:23 +00:00
Jesse Vincent
c5d68fb49d Add preferences to enable pinch-to-zoom and single-column layout for
messages
2010-10-11 14:54:15 +00:00
Jesse Vincent
5fc78b4219 astyle 2010-10-11 00:08:54 +00:00
Jesse Vincent
a683186f6e move 3 IMAP preferences out of the "wizard" flow to an advanced page
where they belong
2010-10-11 00:08:47 +00:00
Jesse Vincent
28388b235e move "saveAllHeaders" to the account preferences screen. 2010-10-11 00:08:39 +00:00
Jesse Vincent
777c3e28b5 Disable theme in preferences to work around an android bug 2010-10-10 19:29:15 +00:00
Fiouz
296ab4f2be Update issue 1623
Message retrieval:
- Use the given projection for the cursor result instead of always using a predefined projection. Extraction logic is now in dedicated classes for easy extension.
- Added BaseColumns._ID & BaseColumns._COUNT columns.
- Deprecated "id" column since it's not a reliable identifier (it's an incremential value generated at query() time)
2010-10-09 09:19:24 +00:00
cketti
3503355b2e "Reply after quote" preference wasn't persisted. 2010-10-09 03:17:59 +00:00
cketti
385c34e190 Refactoring
- Moved ListPreference helper functions from FontSizeSettings to K9PreferenceActivity
- Used helper functions in Prefs
- Reordered preferences in Prefs to match the order in global_preferences.xml (display order)
2010-10-09 01:05:29 +00:00
cketti
96f18734f4 Minor rename 2010-10-09 00:48:46 +00:00
cketti
da7210d1db Refactoring: Some variable, method, and id renaming. 2010-10-09 00:38:52 +00:00
cketti
7028a4c167 Fixes issue 2144
- Removed the contact names cache (memory leak)
- Changed Contacts.searchByAddress() to Contacts.getNameForAddress(). Cursor is now immediately closed.
- Only try to resolve contact names when "Global settings" -> "Show contact name" is checked
- Never resolve contact names if number of recipients exceeds a threshold
2010-10-09 00:24:43 +00:00