Commit Graph

179 Commits

Author SHA1 Message Date
Bradley Young 8221094570 self-signed cert support for WebDav. 2009-01-05 00:05:43 +00:00
Daniel Applebaum d9dd06a620 Make folder unread counters work properly with new faster delete and
marking
2009-01-03 14:35:41 +00:00
Bradley Young 73006c65a3 Disabling self-signed certs for webdav (not IMAP); they are currently causing issues. 2009-01-03 10:15:56 +00:00
Bradley Young b2b9d8d624 remove @Override : this causes breakage in jdk 1.5. 2009-01-03 04:55:16 +00:00
Daniel Applebaum 828ceba503 Set to use new folder display and sync class defaults.
Accounts are now set:
Folder display mode = All except 2nd Class
Folder sync mode = Only 1st Class

Only the Inbox is set for:
Folder sync class = 1st Class
All other folders have class set to None for sync and display

Also restored an optimization on opening local folders that I
removed.  It is now optimistic, and in the normal case does not have
to make an explicit existence check
2009-01-03 01:47:24 +00:00
Daniel Applebaum 41d6598e22 Speed up Delete, Mark as read/unread, and Mark all as read. 2009-01-03 01:13:50 +00:00
Bradley Young 51b6a03f8c Added self-signed/mismatched domain handling for HTTP over SSL connections in WebDav. 2009-01-01 08:56:19 +00:00
Daniel Applebaum 4cc1ea489a Restored automatic creation of a local folder on open. Why was this
removed in K9?  I can't find the history of LocalStore.java to find
the answer.  Eliminated now redundant creation of Outbox and Drafts
folders.
2008-12-31 16:05:03 +00:00
Daniel Applebaum 334d64141f Complete merge of DAmail functionality into K9mail. Following
features are added to K9mail:

1) Show unread message count on each folder
2) Sum unread count of all shown folders in an account to the account display
3) Periodically check selected folders for new mail, not just Inbox
4) Don't refresh folder when opened (unless folder is empty)
5) Show date and time of last sync for each folder
6) Fix timer for automatic periodic sync (use wakelock to assure completion)
7) Optimize local folder queries (speeds up account and folder lists)
8) Show Loading... message in status bar indicating which folder is being synced
9) Eliminate redundant sync of new messages (performance enhancement)
10) Improve notification text for multiple accounts
11) Do not automatically sync folders more often than the account-specific period
12) Use user-configured date and time formats
13) Select which folders are shown, using configurable Classes
14) Select which folders are synced, using configurable Classes
15) Added context (long press) menu to folders, to provide for Refresh
and Folder Settings
16) Status light flashes purple when there are unread messages
17) Folder list more quickly eliminates display of deleted and out-of-Class folders.
18) Delete works 
19) Mark all messages as read (in the folder context menu)
20) Notifications only for new unread messages
21) One minute synchronization frequency
22) Deleting an unread message decrements unread counter
23) Notifications work for POP3 accounts
24) Message deletes work for POP3 accounts
25) Explicit errors show in folder list
26) Stack traces saved to folder K9mail-errors
27) Clear pending actions (danger, for emergencies only!)
28) Delete policy in Account settings
29) DNS cache in InetAddress disabled
30) Trapped some crash-causing error conditions
31) Eliminate duplicate copies to Sent folder
32) Prevent crashes due to message listener concurrency
33) Empty Trash
34) Nuclear "Mark all messages as read" (marks all messages as read in
server-side folder, irrespective of which messages have been downloaded)
35) Forward (alternate) to allow forwarding email through other programs
36) Accept text/plain Intents to allow other programs to send email through K9mail
37) Displays Outbox sending status
38) Manual retry of outbox sending when "Refresh"ing Outbox
39) Folder error status is persisted
40) Ability to log to arbitrary file

Fixes K9 issues 11, 23, 24, 65, 69, 71, 79, 81, 82, 83, 87, 101, 104,
107, 120, 148, 154
2008-12-31 03:49:09 +00:00
Matthew Brace 72c4095ceb Finished initial refactoring of fetch(). Some slight formatting and cleanup changes as well. 2008-12-29 00:25:19 +00:00
Matthew Brace 34be0269f8 Added stubs for the added functions needed for the DAMail merge. Did not add @Override. Doing it this way to allow easier testing/modifications in preparation for the merge to trunk. All trunk changes will be committed to the DAMail merge branch next. 2008-12-26 06:52:07 +00:00
Matthew Brace 2dede98463 Refactored how the HTTP calls were to reduce the growing volume of duplicated code. 2008-12-26 06:47:00 +00:00
Bradley Young 60b03f3dc2 Should fix attachment issues 2008-12-26 03:06:42 +00:00
Matthew Brace 409acd0134 Added support for proper deletions in WebDAV. Deleting a message the first time moves it to the (currently hardcoded) Deleted Items. Deleting an item in 'Deleted Items' will remove it completely. 2008-12-25 08:38:55 +00:00
Matthew Brace 46d4619ffb Fix for date/time issues prior to fetch(BODY) or fetch(BODY_SANE) is called. 2008-12-25 01:08:34 +00:00
Matthew Brace dc7a1a0532 Fixed an issue where some Exchange servers wouldn't mark messages as read. Fixed incorrect URL encoding in some folder path names. Removed some unneccessary headers from the envelope request. 2008-12-24 03:09:37 +00:00
Bradley Young 70ab4d7a37 Moved findSurroundingMessagesUid() above the block it was in (which was only present if the next and previous buttons are visible (and they are not visible in horizontal orientation (and that's the only time you can use the keyboard in a non-emulated device))).
Fixes issue #50.
2008-12-23 07:18:36 +00:00
Bradley Young 266a3eddcf Correcting issue with message body being the target, regardless of action (reply, forward, compose).
Should target the message body on reply, reply all, and edit draft.
2008-12-23 02:01:51 +00:00
Matthew Brace 18c51bae5c Removed unneeded header fields from WebDav requests. Fix for some instances of subfolders not working. 2008-12-22 22:14:02 +00:00
Bao-Long Nguyen-Trong f5c4982c1d . Replaced 'Reply All' with 'Delete' button in message view 2008-12-21 17:44:18 +00:00
Bao-Long Nguyen-Trong 7f81a1ed5d . Replaced 'Delete' button in message view with 'Forward' one (too many accidental deletes) 2008-12-21 15:52:21 +00:00
Bradley Young 5d576f899f If the message is a reply, set focus to the message body. Adding addresses is not the default behavior when a user replies. 2008-12-21 06:20:32 +00:00
Bao-Long Nguyen-Trong 56d1ede846 . Added silent 'on going' notification when checking email 2008-12-19 22:30:55 +00:00
Bao-Long Nguyen-Trong b9dec4064e . Fixed background sync broken by package name change 2008-12-19 22:27:37 +00:00
Bao-Long Nguyen-Trong b76c0aba0b . Externalized notification ids 2008-12-19 19:59:49 +00:00
Bao-Long Nguyen-Trong b3a4b758dc . Fixed typo in LED time off
I forgot: Thanks danapple0 for the LED blickng code
2008-12-19 19:52:51 +00:00
Bao-Long Nguyen-Trong 081cb8f76d . New email notification now includes purple blicking LED 2008-12-19 19:46:47 +00:00
Bao-Long Nguyen-Trong 1e67bbee6b . More reliable background sync by using wake lock
--> Background sync now work even when the device is asleep
(Thanks danapple0)
2008-12-19 19:32:27 +00:00
Jesse Vincent d55e335f48 merge extra crap 2008-12-19 00:31:17 +00:00
Jesse Vincent 9cf84ee2c8 Merge 'rename' into 'trunk'
r55941@173-101-60-247 (orig r204):  jessev | 2008-12-16 14:58:33 -0800

r55942@173-101-60-247 (orig r205):  jessev | 2008-12-16 15:07:33 -0800
* step 1 of rename
r55943@173-101-60-247 (orig r206):  jessev | 2008-12-16 15:08:52 -0800
step 2 of rename
r55944@173-101-60-247 (orig r207):  jessev | 2008-12-16 15:09:23 -0800
 oops
r55945@173-101-60-247 (orig r208):  jessev | 2008-12-16 15:34:01 -0800
* Even more progressive rename/unfork work
r55947@173-101-60-247 (orig r210):  jessev | 2008-12-16 16:16:43 -0800
* Doesn't work, but close to what danapple has recommended
r56039@173-101-60-247 (orig r213):  young.bradley | 2008-12-18 16:14:49 -0800
This is a working semi-deforked application.  i.e. most of it is still in the com.android.email namespace, but choice bits are in com.fsck.k9 so that it won't try to overwrite the builtin client.

Changes: corrected the package (or something equally simple for K9.java
build.xml has an additional stanza that copies the R.java file from fsck to android namespace, and changes the package inside the file.
AndroidManifest.xml has the package set to fsck, and all the activities are now explicity named.
r56040@173-101-60-247 (orig r214):  jessev | 2008-12-18 16:20:56 -0800
* merged from trunk as of r213
2008-12-19 00:29:29 +00:00
Jesse Vincent 5a55389835 merged from trunk as of r213 2008-12-19 00:20:56 +00:00
Bradley Young 14e6b87ee7 This is a working semi-deforked application. i.e. most of it is still in the com.android.email namespace, but choice bits are in com.fsck.k9 so that it won't try to overwrite the builtin client.
Changes: corrected the package (or something equally simple for K9.java
build.xml has an additional stanza that copies the R.java file from fsck to android namespace, and changes the package inside the file.
AndroidManifest.xml has the package set to fsck, and all the activities are now explicity named.
2008-12-19 00:14:49 +00:00
Bradley Young b000da55d1 Added about dialog. 2008-12-18 05:44:47 +00:00
Bradley Young abd81a81c1 Update the domain validator to accept ip addresses and "localhost" 2008-12-17 00:39:06 +00:00
Jesse Vincent b5ab3c0dfc Doesn't work, but close to what danapple has recommended 2008-12-17 00:16:43 +00:00
Bradley Young 171648aa41 block server entries in AccountSetupIncoming.java and AccountSetupOutgoing.java that are not valid domain names. 2008-12-16 23:54:02 +00:00
Jesse Vincent 28e8827827 Even more progressive rename/unfork work 2008-12-16 23:34:01 +00:00
Jesse Vincent ac55d3034b oops 2008-12-16 23:09:23 +00:00
Jesse Vincent 9204c61044 step 2 of rename 2008-12-16 23:08:52 +00:00
Jesse Vincent eedfc0a839 step 1 of rename 2008-12-16 23:07:33 +00:00
Matthew Brace b877a52b01 Update for folders to display the "path" that the folder resides in (ie, Inbox/Work/To Me) rather than just the name of the folder. Allows an easier understanding of the hierarchy until true folder trees can be implemented. 2008-12-16 02:06:39 +00:00
Jesse Vincent dfa11df41b 0.22 2008-12-16 01:42:17 +00:00
Matthew Brace a4a07ebe19 Fixed an authentication issue with WebDav support that caused by the last update. Added support for scrolling on 2 of the screens in the account setup process to allow the full steps to be done in landscape mode. There are some graphical regressions in portrait mode from it that aren't resolved yet. 2008-12-15 04:59:03 +00:00
Matthew Brace c544596d8f Removed display of path prefix. System now pulls all folders/subfolders. Does not display in a hierarchy, but will load messages from each folder. Only the final folder name is displayed instead of the path off of Inbox right now 2008-12-15 02:18:02 +00:00
Matthew Brace 453406a5a5 Added change to populate the url for the mailbox each time authentication occurs (url is in the response). Updated initial message population to use reverse order so initial display has newest first (only noticeable on slow connections). 2008-12-14 19:33:34 +00:00
Bao-Long Nguyen-Trong 401e5ecf37 . Added the following 2 keyboard shortcuts in message list view:
. S: Setttings
  . L: Last auto sync date time
2008-12-14 08:25:08 +00:00
Bao-Long Nguyen-Trong ec29561d8b . Fixe bug # 122: Some keyboard shortcuts only work when a message is selected 2008-12-14 06:37:58 +00:00
Bao-Long Nguyen-Trong 3217d4b772 . fixed bug # 87: Acccounts all refresh at the same freqency 2008-12-14 06:29:28 +00:00
Bao-Long Nguyen-Trong dba525739e . Fixed bug # 82: Messages lose their read status when getting new emails from POP3 server 2008-12-14 06:23:03 +00:00
Bao-Long Nguyen-Trong 97d10d0d25 . FIxed bug # 81: Notifications never show up wen using POP3. 2008-12-14 06:18:24 +00:00
Bao-Long Nguyen-Trong b0d68929a5 Added back auto-start of background message sync (most likely removed during merge) 2008-12-14 03:21:39 +00:00
Jesse Vincent f961cac9ac Allow notification without ringtone 2008-12-11 19:13:55 +00:00
Jesse Vincent 1d6fa64d51 Revert commit 180, as it tries to do math with UIDs, which doesn't work 2008-12-11 18:32:34 +00:00
Jesse Vincent 2abc374f60 no need to version R.java 2008-12-11 18:13:14 +00:00
Matthew Brace 20b46255c0 devsk's patch to fix incorrect IMAP message fetching. Fix utilizes UIDNEXT to determine which messages to grab. 2008-12-11 07:03:00 +00:00
Matthew Brace f273805ee3 Added user preference for the display limit of messages. The display limit is also used for the visible limit increment. If no limit is specified, the default limit is used. The limit is also account specific and not global. 2008-12-11 05:25:59 +00:00
Matthew Brace 8d3579fe74 More performance improvements. Still get occasional connection errors with 50+ messages viewable due to timeout issues. 2008-12-10 23:30:00 +00:00
Bradley Young 8b6a8c4bfa This should add the ability to change the "Sent Items" and "Deleted Items/Trash" folders in AccountSetupComposition.java. 2008-12-09 21:07:09 +00:00
Matthew Brace 852e513281 Modified fetch() to call fetchEnvelope() which runs recursively, grabbing message ENVELOPEs 10 at a time rather than attempting all 100 at once. Shows a significant performance increase and a significant reduction in memory usage. 2008-12-07 20:55:26 +00:00
Jesse Vincent d1d8345278 Merge into 'trunk'
r51837@31b (orig r127):  ismarc31 | 2008-11-10 19:10:50 -0500
Experimental branch for Exchange WebDAV support

r51838@31b (orig r128):  ismarc31 | 2008-11-10 19:24:52 -0500
Initial proof-of-concept code for WebDav support

r51839@31b (orig r129):  ismarc31 | 2008-11-10 22:02:37 -0500
Fixed a couple of migration issues and enabled WebDav as a mail type

r53269@31b (orig r132):  ismarc31 | 2008-11-21 21:55:55 -0500
Mostly rewritten class and organization.  Better implementation of message fetching.
Consolidated response parsing.  Removed a large number of redundant calls.  There is still 
some unused functions needing cleaning up, and some unimplemented actions

r53338@31b (orig r133):  ismarc31 | 2008-11-22 16:50:02 -0500
Removed more redundant and unused calls.  Implemented checking read status

r53453@31b (orig r134):  ismarc31 | 2008-11-24 20:13:24 -0500
Added support for marking messages as read.

r53454@31b (orig r135):  ismarc31 | 2008-11-24 22:04:04 -0500
Added support for deleting messages server side

r53455@31b (orig r136):  ismarc31 | 2008-11-25 01:32:19 -0500
Improved flag setting functionality, do bulk HTTP request instead of lots of little ones

r53589@31b (orig r138):  young.bradley | 2008-11-29 16:18:25 -0500
Missing some ports (webDavPorts); this causes an array index out of bounds exception when anything other than "None" or "SSL (Optional)" are selected.

Adding the three additional ports solves this issue.
r53590@31b (orig r139):  young.bradley | 2008-11-30 00:47:42 -0500
Initial support for sending via WebDav
r53591@31b (orig r140):  ismarc31 | 2008-11-30 20:12:41 -0500
Fix for display names being URL Encoded for folders.  Initial support of Uid Hashmaps instead 
of plain arrays.

r53592@31b (orig r141):  ismarc31 | 2008-11-30 21:46:06 -0500
Fix to constructor of HttpGeneric(final String uri).  URLs returned from Exchange aren't 
always fully encoded, this fixes the encoding before creating the method.

r53593@31b (orig r142):  ismarc31 | 2008-12-01 02:22:16 -0500
Completed support for using hashmaps instead of arrays for indexing urls to emails and read 
status.  Delete is safe again and read status is correct the first time through.

r53594@31b (orig r143):  ismarc31 | 2008-12-01 22:20:50 -0500
Fix for double-Inbox display issue.  Removed volumous amounts of Log.d messages.

r53644@31b (orig r157):  young.bradley | 2008-12-04 15:14:28 -0500
Fix for wildcard certificates (e.g. issued to *.example.com).  Only checking the
trust of the certificate itself, since apparently the full chain causes it to
not work.
r53765@31b (orig r161):  ismarc31 | 2008-12-06 18:55:08 -0500
Implemented new functionality for pulling message envelope.  Uses a WebDAV call for all messages rather than parsing the stream.  Message size is properly set now as well.

r54055@31b (orig r163):  jessev | 2008-12-06 19:28:24 -0500
* merge fixes
2008-12-07 00:29:11 +00:00
Bradley Young b8e686039f Removed some commented lines of code-- testing check in to the mainline 2008-12-04 22:15:43 +00:00
Jesse Vincent c21097af65 2008-12-04 22:03:53 +00:00
Brock Tice 33d8d3bc24 Should fix issue 111. Checks to make sure that the selected folder matches what we're generating with prefix + delimeter. 2008-12-03 19:08:03 +00:00
Jesse Vincent 505ddcab52 Add a D keybinding to the FolderMessageList 2008-12-03 04:20:51 +00:00
Jesse Vincent aba87657e7 switch from pages of 25 messages to pages of 100 2008-12-03 04:14:41 +00:00
Brock Tice 9d45b3604e Fixed prefix separator issues. Separators are now pulled from the separator column of folder listings. Also switched the default gmail IMAP server to imap.googlemail.com (from imap.gmail.com). 2008-12-03 04:14:39 +00:00
Jesse Vincent 351c825433 It helps when I don't back out the actual changes 2008-12-03 04:10:59 +00:00
Jesse Vincent 505d2866fc revert a mismerge from bradleyy's branch 2008-12-03 04:07:16 +00:00
Jesse Vincent ebfbb9e5b2 small layout fixes 2008-12-03 04:02:54 +00:00
Jesse Vincent a3d6e699ef layout cleanups 2008-12-03 00:50:35 +00:00
Jesse Vincent 194d673f91 Merge into 'trunk'
r124@hotel-dan (orig r123):  jessev | 2008-11-07 03:35:09 -0500
Branch for Bradley Young
r126@hotel-dan (orig r125):  young.bradley | 2008-11-08 17:27:30 -0500
Initial checkin of self signed certificates capability.

Missing ability to save updated KeyStore.
r127@hotel-dan (orig r126):  young.bradley | 2008-11-10 13:04:49 -0500
Update to allow saving updated keys to keystore
r17200@hotel-dan (orig r131):  young.bradley | 2008-11-17 14:09:24 -0500
Updates to handle chains properly, and handle default behavior.
r17206@hotel-dan (orig r137):  young.bradley | 2008-11-29 14:14:25 -0500
Checkin for beta 2: this should be the release candidate.
2008-12-03 00:04:24 +00:00
Jesse Vincent 9dbcae5eed shrink down the message list views to get toward something sane 2008-11-13 21:22:24 +00:00
Jesse Vincent 96653e828c * typo fix 2008-11-06 06:55:56 +00:00
Jesse Vincent fa829ea9ff * Fix for Issue 65 - Intermittent failure of K-9 to background sync.
* Based on a patch provided by baolongnt++
    http://code.google.com/p/k9mail/issues/detail?id=65#c10
2008-11-06 06:55:41 +00:00
Jesse Vincent 38748c59ca * Fix for "Consistently getting 'Connection Error' messages when getting new mail on a POP3 account"
Patch for Issue 67 from baolongnt++.
2008-11-06 06:55:29 +00:00
Brock Tice 15ba4d0f39 Made "Load more messages" cue a little more informative.
Now pulls k9.VISIBLE_LIMIT_INCREMENT and says "Load up to (increment value) more".
Also, the build number was auto-updated by my build script. This shows up in the debug menu. It would be nice to have ant handle this, but I'm not sure how to make it do that.
2008-11-04 19:40:44 +00:00
Jesse Vincent 4e75e1b81b Added keyboard control for message zooming 2008-11-03 07:17:42 +00:00
Brock Tice c1ad8cffaa Changed a += of a null string back to the appropriate = sign. 2008-11-03 07:14:31 +00:00
Brock Tice 734606f261 Fixed my fix for the IMAP prefixes and removed debugging/self-help lines. 2008-11-03 07:01:46 +00:00
Jesse Vincent 9838849b21 Enable saving all attachments to SD 2008-11-03 06:46:13 +00:00
Jesse Vincent 43adde216c restore linkifies HTTP URLs in plaintext mail messages 2008-11-03 06:36:53 +00:00
Brock Tice be49a0c707 Removed eclipse files that appeared to be user-specific (sorry?)
Believe this fixes the IMAP prefix issue (27)
Trash still deletes itself, which is technically a separate issue, but now it deletes the *right* trash. :)

Create local branch for IMAP prefix fix (Issue 27)
r110@stilgar:  brock | 2008-11-03 00:08:29 -0500
Fixed IMAP prefix problem.
2008-11-03 06:12:04 +00:00
Jesse Vincent 0bbdeaaa6e FolderMessageList was lowercasing and comparing two strings. Using case-insensitve comparisons is much, much cheaper 2008-11-02 23:18:38 +00:00
Jesse Vincent 8bd2f9c260 Switch from using the mime4j charset list to the Java 1.5 java.nio.charset Charset class.
Based on this comment in MIME4J, this seems like a win:


 * Utility class for working with character sets. It is somewhat similar to
 * the Java 1.4 <code>java.nio.charset.Charset</code> class but knows many
 * more aliases and is compatible with Java 1.3. It will use a simple detection
 * mechanism to detect what character sets the current VM supports. This will
 * be a sub-set of the character sets listed in the
 * <a href="http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html">
 * Java 1.5 (J2SE5.0) Supported Encodings</a> document.
 * <p>
 * The <a href="http://www.iana.org/assignments/character-sets">
 * IANA Character Sets</a> document has been used to determine the preferred
 * MIME character set names and to get a list of known aliases.
 * <p>
2008-11-02 23:17:59 +00:00
Jesse Vincent 27a0efcf1d Added a "d" keybinding for delete. from the message view 2008-11-02 23:13:58 +00:00
Richard Tibbetts 6cd5ce7dee Fix similar empty-cursor bug when creating a folder on open.
Turn tabs into spaces in code I changed last commit.
2008-11-02 03:56:13 +00:00
Richard Tibbetts 4f798ae9cc Fix local folder query to not die when there are no local folders, like on first install 2008-11-02 03:28:29 +00:00
Jesse Vincent 1548da7efd 0.12 releng 2008-11-01 23:10:56 +00:00
Jesse Vincent 4eb607d781 stop trying to count messages in every folder for folder lists that don't display them 2008-11-01 22:48:57 +00:00
Jesse Vincent 79c140378d 0.11 2008-11-01 22:30:21 +00:00
Jesse Vincent 5feb435b0f removing that empty call to the heavy query helps performance even more. 2008-11-01 22:24:15 +00:00
Jesse Vincent 046943b340 Remove O(n) deep SQL queries per folderlist by cleaning up the folder "exists" check on Local message stores
* Replace the extra SQL query before each folder 'open' with an exception if the open fails. (Optimize for the common case, not the exception)
2008-11-01 21:36:23 +00:00
Jesse Vincent cd7a7a67fb Refactor the MessagingController to be a bit easier to tease apart. 2008-11-01 21:34:50 +00:00
Jesse Vincent 5491dee81b Damn it. Weird symlink-in-checkout bug. There goes our commit history. Sorry, all.
Guess I should go back to svk
2008-11-01 21:32:06 +00:00
Jesse Vincent 12c6e53141 bin directory should never have been checked in 2008-11-01 21:23:45 +00:00
Jesse Vincent 416aafb940 extract the 'upgrade database' method. Since K-9 never had a pre-v18 database, I'm inclined to kill it, except it may serve as a useful template for the future 2008-11-01 04:26:03 +00:00
Jesse Vincent 521783ffff typo in comment 2008-11-01 04:25:17 +00:00
Jesse Vincent f8eb22f168 Factor out signature generation
* No longer generate a signature when we don't have one defined
2008-10-31 22:39:00 +00:00
Jesse Vincent ac14fe8d02 Replace handrolled linkifier with android.text.util.Linkify. 2008-10-31 04:38:51 +00:00
Jesse Vincent 21f2d934b6 slightly tighter regex for the cheesy "do I show images" button 2008-10-31 04:08:55 +00:00