# User Interface ## Composing Messages Added an addressbook lookup button Explicitly set focus to "To:" input field when composing or forwarding a message. Made it possible to BCC to more than 1 address ## Account List Unavailable accounts are now greyed out ## Folder List You can now start typing to filter K-9's folder list ## Message Display JPEG images with the MIME type "image/jpg" now open correctly on Motorola devices. ## Message List Fixed issue 2991: Should display colorized name in the message list. The date format preference is now refreshed each time the messages get listed. Previously, changes to the date format preference weren't noticed until the app restarted. Performance fix: Use ListView#addFooterView to add the footer to MEssage Lists Mark messages as ANSWERED only on send. Save a reference to the message in the identity so that loading a draft of a reply also marks the referenced message correctly. ## About box Fix display of icon in About box on Android 2.1 and earlier ## MIME Internals Correct encoding and decoding for the filename parameter in the Content-Disposition. Should store the disposition-type without Content-Disposition parameters. ## Attachment Provider AttachmentProvider can now return an attachment with an unmodified MIME type. However, when viewing attachments this is not desirable. So we try hard to return a sensible MIME type (use extension to look up a MIME type if it's originally "application/octet-stream"; or replace with canonical MIME type if it's known to be wrong, e.g. "image/jpg" -> "image/jpeg") ## Build system Restore tools/build-beta to its former glory. It can now build a "K9 beta with different keys" that can sit next to an installed K-9. ## HTML Mail Use
 instead of 
so that plain text clients get line wrapping correct. ## Bug fixes Fixed polling schedule after SD cards are mounted or unmounted Fixed several NullPointerExceptions ## Stability ## SSL Added SHA-1 checksum to acceptKeyDialog Updates to the view need to happen on the UI thread Fixes downloading attachments (would just fail silently) Also added a ProgressDialog since progress() just asks for progress to displayed in the title bar. Since there is no title bar, no progress is shown at all. commit 737cff0612f28bc2ccbb58527008daa5bea4a95f Author: cketti Date: Sun Feb 20 04:47:28 2011 +0100 Hardcode folder name for (local) outbox and don't show outbox when only being allowed to select remote folders. commit 68381d472598951c6e3804af2cb604a5e4616bb9 Author: Koji Arai Should not use double-quoted empty string. Some host may reject such the From address. commit ea3619b733bdcd1d85e35de81833a77f8d1acba3 Author: Dan Applebaum Date: Fri Feb 4 08:26:16 2011 +0000 Display a message in the titlebar when K-9 Mail is not performing any message synchronization. This state will happen when no network is available, when background ops/background data/auto-sync settings turn off synchronization, or when no account is set for polling or pushing. This revision respects the intention of r3011 that when K-9 Mail is set for pushing only no message is displayed, as that condition is a normal state. However, it provides valuable feedback in other cases that synchronization is off-line, as was done in r1433. Although the case when the user has intentionally set no account for polling or pushing can be considered "normal" and therefore unworthy of a message, it turns out to be a significant burden to detect that situation when the network is offline, since we normally do not even try to figure out the account configurations in that case. Therefore, without making substantial, otherwise unwarranted, changes to MailService.java, "Syncing off" would be displayed sometimes to such a user, and sometimes not. Since it is presumably a rare case, and there is minimal harm to display the "Syncing off" message, the message will be consistently displayed when no account is set for polling or pushing. commit 6c03c968ef42265830f1ce2b34a4374ae1adca53 Author: Daniel Applebaum Date: Thu Feb 3 03:42:45 2011 +0000 Provide for users with good eyesight to completely take advantage of the "smaller" (and smaller) fonts by allowing the Accounts and Folder List items to have a height smaller than the normal Android minimum. This option is off by default to maintain existing behavior for uninterested parties. The preferences text is not especially compelling so could certainly be changed if better phrasing is found. commit 9e5435a5f3f0ebe1d56ad9b7d770757c2bd2c71b Author: Kris Wong Date: Tue Feb 1 13:15:54 2011 +0000 ## Performance Destroy all messages in one sqlite transaction Perf improvement: use parcels instead of serializable. Standard Java serialization is slow on Android. Replacing it w/ parcelable makes it around 10x faster (on a N1, with ~ 500 messages in the list). ## Third-party libraries Replaced our local copy of jzlib with a clean jar built from jzlib 1.0.7 downloaded from jcraft: http://www.jcraft.com/jzlib/jzlib-1.0.7.tar.gz Replaced local version of jutf7 with a homebuilt jar from: Replaced Apache Commons IO with v2.01 downloaded from apache.org as a prebuilt JAR Tell eclipse to bundle JARs in libs but NOT to bundle libs in compile-only-libs. (Results in Eclipse building something much closer to what ant does) Start building using a JAR of MIME4J Add support for building with precompiled JARs Removed dependency on (external) commons-codec and commons-logging Get rid of now unnecessary BouncyCastle jar Use SslCertificate that is part of the official Android API instead of BouncyCastle's X509Name (which is not shipped anymore in Android 3.0) to verify domain names on SSL/TLS connections. Use java.util.zip for inflating Can't use it for deflating since it doesn't have Z_PARTIAL_FLUSH ## Sharing Messages Add extra for the sender address(es) to the "Share intent" Get rid of the "Fwd: " prefix when sharing a message. Add recipients to the intent ("To:" -> EXTRA_EMAIL, "CC:" -> EXTRA_CC) ## Configurability Implemented option to hide special accounts (issue 3060) BUGFIX: time changes are still honored even if the user choose the [abort] button of the DialogPreference. Added option to disable confirmation dialog for "mark all as read" Fixes issue 1415 Added "move to spam folder" confirmation dialog to MessageList ## Internationalization Updated Japanese translation Updated Polish translation from alekhavoc and rabbbit Added Catalan translation from David Valls Added a Galician (Galego) translation from fernando.coello@gmail.com Updated Chinese translation update from sunnavy Updated catalan translation with patch provided by dvbotet Updated Italian translation with patch provided by paolo.maccione Updated Swedish translation from daniel.malmgren.DM Updated Spanish translation with changes provided by Hayawata Updated Brazilian Portugese translation from noeczisto Updated Finnish translation from Patrik Selin Added support for emoji input in message subjects (On Japanese Devices only) Improved support for iso-2022-jp messages # Protocol support ## IMAP Remove trailing space from IMAP command This could be the cause of the error reported in issue 3089. Fix length-check of BODYSTRUCTURE reply. Fixes issue 3116 Unify two IMAP date parsing paths, improving the exception so we can learn what date format we don't cope with. Added another badDateTimeFormat to ImapResponseParser. Some IMAP servers generate timestamps without timezones. :/ Fixes gcode issue 3179 Fix bug with partitioning of IMAP FETCH commands ## WebDAV (Exchange) In getPersonalNameSpaces now we ask the server for the real folder names corresponding to the special folders ids (for which we have constants), so we can map the account folders using the real names. Support non-English Exchange installations. Fix the ability to accept invalid SSL certificates for exchange support. ## POP3 Made the minor modifications to support CRAM-MD5 authentication in POP3 accounts. Disable "Enable refile buttons" preference for POP3 users ## SMTP New acounts now default to using the SMTP submission port (587) rather than the regular server-to-server (25) transport port. Permanent failures when trying to deliver a message move it back to drafts. Tempfail outgoing messages after 5 delivery attempts Opening a "permfail" message takes you to the drafts folder Split out "tempfail" and "permfail" message delivery errors Fix "sending message failed" notifications to actually report the server error If an SMTP server tells us how big the biggest message they accept is, don't even try to deliver a message to them if it's bigger than that size For a while, it was possible for users to configure their outbox and drafts folders to be the same folder. This could result in drafts being sent over and over. This change uses the K-9 Identity header as a shibboleth for drafts, as it's not actually set when a message is sent. Removed some extra spaces from SMTP commands which picky servers rejected Fixed gcode #3182 # For developers ## Portability Change our technique for sending \r\n at the end of smtp commands to deal with a weird failure on honeycomb ## Testing We have a test suite that can run (thanks to achen's start) ## Build Infrastructure Checking in new k9mail.iml (which matches the module name) with the latest dependencies. compile in the libs we only need at build time when building with eclipse. This is an annoying default, but it'll make life easier for newbies starting out with K-9 for eclipse. We should ALWAYS do release builds with ant Big, scary massive "ant astyle" to get us back to something approximating AOSP coding standards. Add the astyle target switch build infrastructure to git