From fce2fc12d0522ee09b5da4a709bf476710d87ca2 Mon Sep 17 00:00:00 2001 From: baolongnt Date: Fri, 25 Feb 2011 12:36:47 -0800 Subject: [PATCH 001/310] Implemented option to hide special accounts (issue 3060) --- res/values/strings.xml | 3 +++ res/xml/global_preferences.xml | 10 ++++++++- src/com/fsck/k9/K9.java | 13 +++++++++++- src/com/fsck/k9/activity/Accounts.java | 25 +++++++++++++++-------- src/com/fsck/k9/activity/setup/Prefs.java | 8 +++++++- 5 files changed, 47 insertions(+), 12 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 4fd6b3938..550849c82 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -921,6 +921,9 @@ Welcome to K-9 Mail setup. K-9 is an open source mail client for Android origin Count search results Turn off for faster display + Hide special accounts + Hide the unified inbox and all messages accounts + %s %s - Starred - Unread diff --git a/res/xml/global_preferences.xml b/res/xml/global_preferences.xml index b58487e67..aee7235e2 100644 --- a/res/xml/global_preferences.xml +++ b/res/xml/global_preferences.xml @@ -92,6 +92,13 @@ android:title="@string/count_search_title" android:summary="@string/count_search_summary" /> + + + android:summary="@string/start_integrated_inbox_summary" + android:dependency="hide_special_accounts" /> newAccounts = new ArrayList(accounts.length + 4); - if (accounts.length > 0) { + List newAccounts; + if (!K9.isHideSpecialAccounts() + && accounts.length > 0) { + newAccounts = new ArrayList(accounts.length + 2); newAccounts.add(integratedInboxAccount); newAccounts.add(unreadAccount); } + else { + newAccounts = new ArrayList(accounts.length); + } newAccounts.addAll(Arrays.asList(accounts)); diff --git a/src/com/fsck/k9/activity/setup/Prefs.java b/src/com/fsck/k9/activity/setup/Prefs.java index fdd190b54..1e5096321 100644 --- a/src/com/fsck/k9/activity/setup/Prefs.java +++ b/src/com/fsck/k9/activity/setup/Prefs.java @@ -52,6 +52,7 @@ public class Prefs extends K9PreferenceActivity { private static final String PREFERENCE_PRIVACY_MODE = "privacy_mode"; private static final String PREFERENCE_MEASURE_ACCOUNTS = "measure_accounts"; private static final String PREFERENCE_COUNT_SEARCH = "count_search"; + private static final String PREFERENCE_HIDE_SPECIAL_ACCOUNTS = "hide_special_accounts"; private static final String PREFERENCE_MESSAGELIST_TOUCHABLE = "messagelist_touchable"; private static final String PREFERENCE_MESSAGELIST_PREVIEW_LINES = "messagelist_preview_lines"; private static final String PREFERENCE_MESSAGELIST_STARS = "messagelist_stars"; @@ -88,6 +89,7 @@ public class Prefs extends K9PreferenceActivity { private CheckBoxPreference mPrivacyMode; private CheckBoxPreference mMeasureAccounts; private CheckBoxPreference mCountSearch; + private CheckBoxPreference mHideSpecialAccounts; private CheckBoxPreference mTouchable; private ListPreference mPreviewLines; private CheckBoxPreference mStars; @@ -191,6 +193,9 @@ public class Prefs extends K9PreferenceActivity { mCountSearch = (CheckBoxPreference)findPreference(PREFERENCE_COUNT_SEARCH); mCountSearch.setChecked(K9.countSearchMessages()); + mHideSpecialAccounts = (CheckBoxPreference)findPreference(PREFERENCE_HIDE_SPECIAL_ACCOUNTS); + mHideSpecialAccounts.setChecked(K9.isHideSpecialAccounts()); + mTouchable = (CheckBoxPreference)findPreference(PREFERENCE_MESSAGELIST_TOUCHABLE); mTouchable.setChecked(K9.messageListTouchable()); @@ -298,11 +303,12 @@ public class Prefs extends K9PreferenceActivity { K9.setUseVolumeKeysForNavigation(mVolumeNavigation.getCheckedItems()[0]); K9.setUseVolumeKeysForListNavigation(mVolumeNavigation.getCheckedItems()[1]); K9.setManageBack(mManageBack.isChecked()); - K9.setStartIntegratedInbox(mStartIntegratedInbox.isChecked()); + K9.setStartIntegratedInbox(!mHideSpecialAccounts.isChecked() && mStartIntegratedInbox.isChecked()); K9.setConfirmDelete(mConfirmActions.getCheckedItems()[0]); K9.setKeyguardPrivacy(mPrivacyMode.isChecked()); K9.setMeasureAccounts(mMeasureAccounts.isChecked()); K9.setCountSearchMessages(mCountSearch.isChecked()); + K9.setHideSpecialAccounts(mHideSpecialAccounts.isChecked()); K9.setMessageListTouchable(mTouchable.isChecked()); K9.setMessageListPreviewLines(Integer.parseInt(mPreviewLines.getValue())); K9.setMessageListStars(mStars.isChecked()); From 457479cd431e0c35f9aff50d679085e17d9f57b7 Mon Sep 17 00:00:00 2001 From: baolongnt Date: Fri, 25 Feb 2011 14:49:39 -0800 Subject: [PATCH 002/310] Removed dup check (keeping the more explicit one) per cketti recommendation --- src/com/fsck/k9/K9.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/fsck/k9/K9.java b/src/com/fsck/k9/K9.java index 63162476a..9322012c9 100644 --- a/src/com/fsck/k9/K9.java +++ b/src/com/fsck/k9/K9.java @@ -776,7 +776,7 @@ public class K9 extends Application { public static boolean startIntegratedInbox() { - return !mHideSpecialAccounts && mStartIntegratedInbox; + return mStartIntegratedInbox; } public static void setStartIntegratedInbox(boolean startIntegratedInbox) { From 4586ba560e3498ead43fc4eacb7a92a3ce62de75 Mon Sep 17 00:00:00 2001 From: cketti Date: Sat, 26 Feb 2011 15:11:30 +0100 Subject: [PATCH 003/310] Added new hide_special_accounts_* strings to translations --- res/values-ca/strings.xml | 3 +++ res/values-cs/strings.xml | 3 +++ res/values-de/strings.xml | 3 +++ res/values-es/strings.xml | 3 +++ res/values-fi/strings.xml | 3 +++ res/values-gl/strings.xml | 3 +++ res/values-it/strings.xml | 3 +++ res/values-ja/strings.xml | 3 +++ res/values-nl/strings.xml | 3 +++ res/values-pl/strings.xml | 3 +++ res/values-pt-rBR/strings.xml | 3 +++ res/values-ru/strings.xml | 3 +++ res/values-sv/strings.xml | 3 +++ res/values-zh-rCN/strings.xml | 3 +++ 14 files changed, 42 insertions(+) diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml index afbac3f94..acecdd829 100644 --- a/res/values-ca/strings.xml +++ b/res/values-ca/strings.xml @@ -920,6 +920,9 @@ Benvingut a la configuració del K-9. El K-9 és un client de codi obert per An Compta resultats cerca Apaga-ho perquè es mostri més ràpid + + + %s %s - Senyalat - No llegit diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml index 1a64e4bf5..166985d49 100644 --- a/res/values-cs/strings.xml +++ b/res/values-cs/strings.xml @@ -926,6 +926,9 @@ Vítejte v nastavení pošty K-9 Mail. K-9 je open source poštovní klient pro Počet výsledků hledání Vypněte pro rychlejší zobrazování + + + %s %s - S \u2605 - Nepřečtené diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index 3c94180db..f54508f63 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -917,6 +917,9 @@ Willkommen zum \"K-9 Mail\"-Setup. K-9 ist eine quelloffene E-Mail-Anwendung fü Suchergebnisse zählen Deaktivieren für schnellere Anzeige + + + %s %s - Wichtig - Ungelesen diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index 6545dceb3..36361ad0d 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -917,6 +917,9 @@ Bienvenido a la Configuración de K-9. K-9 es un cliente de correo OpenSource pa Mostrar contador de búsqueda Desactivar para mejorar rendimiento + + + %s %s - Entrellas - Sin leer diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml index ab8e1d010..d4c204cae 100644 --- a/res/values-fi/strings.xml +++ b/res/values-fi/strings.xml @@ -914,6 +914,9 @@ Tervetuloa K-9 Mail asennukseen.  K-9 on avoimen lähdekoodin sähköpostiasiak Laske haun tulokset Jos pois päältä, näyttö tulee nopeammin + + + %s %s - Tähdet - Lukemattomat diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml index f0baab411..733525bb2 100644 --- a/res/values-gl/strings.xml +++ b/res/values-gl/strings.xml @@ -917,6 +917,9 @@ Benvido á Configuración de K-9. K-9 é un cliente de correo OpenSource para An Amosar contador de búsqueda Desactivar para mellorar rendimento + + + %s %s - Estrelas - Sin ler diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index 8cccd0f1e..7392812e8 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -921,6 +921,9 @@ Benvenuto nella configurazione della posta di K-9. K-9 è un client di posta ope Conta i risultati della ricerca Disattiva per una visualizzazione più veloce + + + %s %s - Con stella - Non letto diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml index a18a7b234..4c0da394a 100644 --- a/res/values-ja/strings.xml +++ b/res/values-ja/strings.xml @@ -913,6 +913,9 @@ K-9 Mail セットアップにようこそ。\nK-9 は標準のAndroidメール 検索結果の件数表示 表示を早くしたい場合はチェックをはずしてください + + + %s %s - スター - 未読 diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml index 6820477c0..7d62dec92 100644 --- a/res/values-nl/strings.xml +++ b/res/values-nl/strings.xml @@ -917,6 +917,9 @@ Welkom bij K-9 Mail setup. K-9 is een open source mail cliënt voor Android, ge Tel zoek resultaten Zet uit voor sneller beeldscherm + + + %s %s - Starred - Ongelezen diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index 9a76e0739..50d8ae2d1 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -928,6 +928,9 @@ Witaj w K-9 Mail, darmowym programie pocztowym dla systemu Android. Najistotniej Zliczaj wyniki szukania Wyłącz by przyspieszyć wyświetlanie + + + %s %s - Z gwiazdka - Nieprzeczytane diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml index 6885e3ae5..1c763a680 100644 --- a/res/values-pt-rBR/strings.xml +++ b/res/values-pt-rBR/strings.xml @@ -914,6 +914,9 @@ Bem-vindo à configuração do K-9 Mail. K-9 é um cliente de e-mail com código Contador para resultados de pesquisa Desligar visualização rápida + + + %s %s - Favoritado - Não lido diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index 2a65dc34c..921391fb3 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -911,6 +911,9 @@ + + + diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml index 707335946..ff5344ced 100644 --- a/res/values-sv/strings.xml +++ b/res/values-sv/strings.xml @@ -920,6 +920,9 @@ Välkommen till installationen av K-9 E-post. K-9 är en e-postklient med öppen Räkna sökresultat Avaktivera för snabbare visning + + + %s %s - Stjärnmärkta - Olästa diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index 35ef97e45..3fb90088e 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -901,6 +901,9 @@ 计算搜索结果的数量 关闭该功能以便加快显示速度 + + + %s %s - 星标 - 未读 From 6f90d791b57557e1e70012a795cfcb75e2fc8db8 Mon Sep 17 00:00:00 2001 From: cketti Date: Sat, 26 Feb 2011 17:36:18 +0100 Subject: [PATCH 004/310] Removed dependency on (external) commons-codec and commons-logging --- .classpath | 2 - compile-only-libs/commons-codec-1.3.jar | Bin 46725 -> 0 bytes compile-only-libs/commons-logging-1.1.1.jar | Bin 60841 -> 0 bytes src/com/fsck/k9/mail/filter/Base64.java | 19 ++++-- src/com/fsck/k9/mail/filter/Hex.java | 57 ++++++++++++++++++ src/com/fsck/k9/mail/store/ImapStore.java | 5 +- .../fsck/k9/mail/transport/SmtpTransport.java | 2 +- 7 files changed, 73 insertions(+), 12 deletions(-) delete mode 100644 compile-only-libs/commons-codec-1.3.jar delete mode 100644 compile-only-libs/commons-logging-1.1.1.jar create mode 100644 src/com/fsck/k9/mail/filter/Hex.java diff --git a/.classpath b/.classpath index d47d4cf37..9ba6b8726 100644 --- a/.classpath +++ b/.classpath @@ -8,7 +8,5 @@ - - diff --git a/compile-only-libs/commons-codec-1.3.jar b/compile-only-libs/commons-codec-1.3.jar deleted file mode 100644 index 957b6752af9a60c1bb2a4f65db0e90e5ce00f521..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46725 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 C?NEIH diff --git a/compile-only-libs/commons-logging-1.1.1.jar b/compile-only-libs/commons-logging-1.1.1.jar deleted file mode 100644 index 8758a96b70cfba9466bacca19c0d99b87cf53734..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60841 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
    {@^= z#dJv%@%X>ez!qkL<$^8Ta>+I5`CqwyDB}W41Y3UNlE}{IKN9_OaG)@<*OvqjLjIND zr^^mj{rM6xJM>qGz-s%c7BuY8z>4)=^5{qWiU&rz7Zw^;TlNwf^~LW(|72IlhfyiL zgeHmlUFe@|2CyQQm(ZFqzYG0M(h_z+UG%U%y{<>G0nlTrO{4FP;WW`u}qK`u!mK@;)5) z-1_1u`j2*D9PxMKzn>-l9PDz>xd0pZHQ3L=|M{r;yRVs^!~=ipCM+22`)>!=mqUsC mzf*kJ$Jk2_>> 4 ]; + out[j++] = DIGITS[ 0x0F & data[i] ]; + } + + return out; + } + +} diff --git a/src/com/fsck/k9/mail/store/ImapStore.java b/src/com/fsck/k9/mail/store/ImapStore.java index ec77a1dd2..e84540fda 100644 --- a/src/com/fsck/k9/mail/store/ImapStore.java +++ b/src/com/fsck/k9/mail/store/ImapStore.java @@ -47,9 +47,6 @@ import javax.net.ssl.SSLContext; import javax.net.ssl.SSLException; import javax.net.ssl.TrustManager; -import org.apache.commons.codec.binary.Base64; -import org.apache.commons.codec.binary.Hex; - import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; @@ -76,9 +73,11 @@ import com.fsck.k9.mail.Part; import com.fsck.k9.mail.PushReceiver; import com.fsck.k9.mail.Pusher; import com.fsck.k9.mail.Store; +import com.fsck.k9.mail.filter.Base64; import com.fsck.k9.mail.filter.CountingOutputStream; import com.fsck.k9.mail.filter.EOLConvertingOutputStream; import com.fsck.k9.mail.filter.FixedLengthInputStream; +import com.fsck.k9.mail.filter.Hex; import com.fsck.k9.mail.filter.PeekableInputStream; import com.fsck.k9.mail.internet.MimeBodyPart; import com.fsck.k9.mail.internet.MimeHeader; diff --git a/src/com/fsck/k9/mail/transport/SmtpTransport.java b/src/com/fsck/k9/mail/transport/SmtpTransport.java index 6954b7ad0..fd30ee2c3 100644 --- a/src/com/fsck/k9/mail/transport/SmtpTransport.java +++ b/src/com/fsck/k9/mail/transport/SmtpTransport.java @@ -7,6 +7,7 @@ import com.fsck.k9.mail.*; import com.fsck.k9.mail.Message.RecipientType; import com.fsck.k9.mail.filter.Base64; import com.fsck.k9.mail.filter.EOLConvertingOutputStream; +import com.fsck.k9.mail.filter.Hex; import com.fsck.k9.mail.filter.LineWrapOutputStream; import com.fsck.k9.mail.filter.PeekableInputStream; import com.fsck.k9.mail.filter.SmtpDataStuffing; @@ -26,7 +27,6 @@ import java.security.GeneralSecurityException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; -import org.apache.commons.codec.binary.Hex; import java.util.*; From 1a24609af54ea1caed0f563cdea2904c49da3499 Mon Sep 17 00:00:00 2001 From: danapple Date: Mon, 28 Feb 2011 05:56:35 -0600 Subject: [PATCH 005/310] Add polite space --- res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 4679163f6..63570fdb3 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1039,7 +1039,7 @@ Welcome to K-9 Mail setup. K-9 is an open source mail client for Android origin Imported %s accounts from %s Imported 1 account from %s Failed to export settings: %s - Failed from import settings from %s:%s + Failed from import settings from %s: %s From 203dab5c6461de58ffab062217e3f3a2a8dd71d0 Mon Sep 17 00:00:00 2001 From: cketti Date: Mon, 28 Feb 2011 22:55:34 +0100 Subject: [PATCH 006/310] Revert changes for issue 549 (import/export settings). The feature will be polished in branch "issue549". --- AndroidManifest.xml | 6 +- res/layout/password_entry_dialog.xml | 21 --- res/menu/accounts_context.xml | 13 +- res/menu/accounts_option.xml | 14 +- res/menu/folder_list_option.xml | 4 - res/menu/message_list_option.xml | 4 - res/values/strings.xml | 20 +-- src/com/fsck/k9/Account.java | 42 ++---- src/com/fsck/k9/K9.java | 23 ++- src/com/fsck/k9/Preferences.java | 71 ++++----- src/com/fsck/k9/activity/Accounts.java | 116 +------------- .../fsck/k9/activity/ActivityListener.java | 1 + .../fsck/k9/activity/AsyncUIProcessor.java | 100 ------------- src/com/fsck/k9/activity/ExportHelper.java | 54 ------- src/com/fsck/k9/activity/ExportListener.java | 8 - src/com/fsck/k9/activity/FolderList.java | 17 +-- src/com/fsck/k9/activity/ImportListener.java | 8 - src/com/fsck/k9/activity/K9Activity.java | 9 +- src/com/fsck/k9/activity/K9ListActivity.java | 14 +- src/com/fsck/k9/activity/MessageList.java | 15 +- .../fsck/k9/activity/PasswordEntryDialog.java | 78 ---------- src/com/fsck/k9/activity/Progressable.java | 5 - src/com/fsck/k9/helper/DateFormatter.java | 4 - .../fsck/k9/preferences/IStorageImporter.java | 9 -- src/com/fsck/k9/preferences/SimpleCrypto.java | 94 ------------ .../fsck/k9/preferences/StorageExporter.java | 91 ----------- .../StorageImportExportException.java | 21 --- .../fsck/k9/preferences/StorageImporter.java | 141 ------------------ .../preferences/StorageImporterVersion1.java | 88 ----------- 29 files changed, 72 insertions(+), 1019 deletions(-) delete mode 100644 res/layout/password_entry_dialog.xml delete mode 100644 src/com/fsck/k9/activity/AsyncUIProcessor.java delete mode 100644 src/com/fsck/k9/activity/ExportHelper.java delete mode 100644 src/com/fsck/k9/activity/ExportListener.java delete mode 100644 src/com/fsck/k9/activity/ImportListener.java delete mode 100644 src/com/fsck/k9/activity/PasswordEntryDialog.java delete mode 100644 src/com/fsck/k9/activity/Progressable.java delete mode 100644 src/com/fsck/k9/preferences/IStorageImporter.java delete mode 100644 src/com/fsck/k9/preferences/SimpleCrypto.java delete mode 100644 src/com/fsck/k9/preferences/StorageExporter.java delete mode 100644 src/com/fsck/k9/preferences/StorageImportExportException.java delete mode 100644 src/com/fsck/k9/preferences/StorageImporter.java delete mode 100644 src/com/fsck/k9/preferences/StorageImporterVersion1.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index d35644a58..9e3453ca0 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -67,7 +67,7 @@ @@ -269,10 +269,6 @@ android:name="com.fsck.k9.activity.AccessibleEmailContentActivity" > - - - - - - diff --git a/res/menu/accounts_context.xml b/res/menu/accounts_context.xml index afd94bcb4..e55d13a94 100644 --- a/res/menu/accounts_context.xml +++ b/res/menu/accounts_context.xml @@ -6,17 +6,8 @@ android:title="@string/check_mail_action" /> - - - - - - + diff --git a/res/menu/accounts_option.xml b/res/menu/accounts_option.xml index f03ef2c5b..21b969c39 100644 --- a/res/menu/accounts_option.xml +++ b/res/menu/accounts_option.xml @@ -31,16 +31,8 @@ --> - - - - - - - + android:icon="@android:drawable/ic_menu_preferences" + /> diff --git a/res/menu/folder_list_option.xml b/res/menu/folder_list_option.xml index d768acdf0..0e77995b1 100644 --- a/res/menu/folder_list_option.xml +++ b/res/menu/folder_list_option.xml @@ -70,10 +70,6 @@ android:title="@string/global_settings_action" android:icon="@android:drawable/ic_menu_preferences" /> - - - - Search results Settings Open - Edit account settings - Edit folder settings - Edit global settings + Account settings + Folder settings + Global settings Remove account Clear pending actions (danger!) @@ -1028,18 +1028,4 @@ Welcome to K-9 Mail setup. K-9 is an open source mail client for Android origin » Unable to connect. - - Enter settings encryption password: - Export account settings - Export all settings - Import settings - Exporting settings... - Importing settings... - Exported settings to %s - Imported %s accounts from %s - Imported 1 account from %s - Failed to export settings: %s - Failed from import settings from %s:%s - - diff --git a/src/com/fsck/k9/Account.java b/src/com/fsck/k9/Account.java index 4bbacd1dc..719e4b15a 100644 --- a/src/com/fsck/k9/Account.java +++ b/src/com/fsck/k9/Account.java @@ -21,9 +21,7 @@ import com.fsck.k9.view.ColorChip; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; -import java.util.Collections; import java.util.Date; -import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Random; @@ -437,32 +435,6 @@ public class Account implements BaseAccount { editor.commit(); } - public static int findNewAccountNumber(List accountNumbers) { - int newAccountNumber = -1; - Collections.sort(accountNumbers); - for (int accountNumber : accountNumbers) { - if (accountNumber > newAccountNumber + 1) { - break; - } - newAccountNumber = accountNumber; - } - newAccountNumber++; - return newAccountNumber; - } - - public static List getExistingAccountNumbers(Preferences preferences) { - Account[] accounts = preferences.getAccounts(); - List accountNumbers = new LinkedList(); - for (int i = 0; i < accounts.length; i++) { - accountNumbers.add(accounts[i].getAccountNumber()); - } - return accountNumbers; - } - public static int generateAccountNumber(Preferences preferences) { - List accountNumbers = getExistingAccountNumbers(preferences); - return findNewAccountNumber(accountNumbers); - } - public synchronized void save(Preferences preferences) { SharedPreferences.Editor editor = preferences.getPreferences().edit(); @@ -478,7 +450,19 @@ public class Account implements BaseAccount { * * I bet there is a much smarter way to do this. Anyone like to suggest it? */ - mAccountNumber = generateAccountNumber(preferences); + Account[] accounts = preferences.getAccounts(); + int[] accountNumbers = new int[accounts.length]; + for (int i = 0; i < accounts.length; i++) { + accountNumbers[i] = accounts[i].getAccountNumber(); + } + Arrays.sort(accountNumbers); + for (int accountNumber : accountNumbers) { + if (accountNumber > mAccountNumber + 1) { + break; + } + mAccountNumber = accountNumber; + } + mAccountNumber++; String accountUuids = preferences.getPreferences().getString("accountUuids", ""); accountUuids += (accountUuids.length() != 0 ? "," : "") + mUuid; diff --git a/src/com/fsck/k9/K9.java b/src/com/fsck/k9/K9.java index e08cb02fb..4628d9dc1 100644 --- a/src/com/fsck/k9/K9.java +++ b/src/com/fsck/k9/K9.java @@ -447,9 +447,17 @@ public class K9 extends Application { fontSizes.save(editor); } - public static void loadPrefs(Preferences prefs) { - SharedPreferences sprefs = prefs.getPreferences(); + @Override + public void onCreate() { + maybeSetupStrictMode(); + super.onCreate(); + app = this; + + galleryBuggy = checkForBuggyGallery(); + + Preferences prefs = Preferences.getPreferences(this); + SharedPreferences sprefs = prefs.getPreferences(); DEBUG = sprefs.getBoolean("enableDebugLogging", false); DEBUG_SENSITIVE = sprefs.getBoolean("enableSensitiveLogging", false); mAnimations = sprefs.getBoolean("animations", true); @@ -497,18 +505,7 @@ public class K9 extends Application { K9.setK9Language(sprefs.getString("language", "")); K9.setK9Theme(sprefs.getInt("theme", android.R.style.Theme_Light)); - } - @Override - public void onCreate() { - maybeSetupStrictMode(); - super.onCreate(); - app = this; - - - galleryBuggy = checkForBuggyGallery(); - - loadPrefs(Preferences.getPreferences(this)); /* * We have to give MimeMessage a temp directory because File.createTempFile(String, String) * doesn't work in Android and MimeMessage does not have access to a Context. diff --git a/src/com/fsck/k9/Preferences.java b/src/com/fsck/k9/Preferences.java index 4910150b8..dece28412 100644 --- a/src/com/fsck/k9/Preferences.java +++ b/src/com/fsck/k9/Preferences.java @@ -3,12 +3,7 @@ package com.fsck.k9; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.LinkedList; import java.util.List; -import java.util.Map; - import android.content.Context; import android.content.SharedPreferences; import android.util.Config; @@ -34,8 +29,7 @@ public class Preferences { private Storage mStorage; - private Map accounts = null; - private List accountsInOrder = null; + private List accounts; private Account newAccount; private Context mContext; @@ -51,35 +45,16 @@ public class Preferences { } private synchronized void loadAccounts() { - accounts = new HashMap(); - refreshAccounts(); - } - - public synchronized void refreshAccounts() { - Map newAccountMap = new HashMap(); - accountsInOrder = new LinkedList(); String accountUuids = getPreferences().getString("accountUuids", null); if ((accountUuids != null) && (accountUuids.length() != 0)) { String[] uuids = accountUuids.split(","); + accounts = new ArrayList(uuids.length); for (String uuid : uuids) { - Account account = accounts.get(uuid); - if (account != null) { - newAccountMap.put(uuid, account); - accountsInOrder.add(account); - } else { - Account newAccount = new Account(this, uuid); - newAccountMap.put(uuid, newAccount); - accountsInOrder.add(newAccount); - } + accounts.add(new Account(this, uuid)); } + } else { + accounts = new ArrayList(); } - if ((newAccount != null) && newAccount.getAccountNumber() != -1) { - newAccountMap.put(newAccount.getUuid(), newAccount); - accountsInOrder.add(newAccount); - newAccount = null; - } - - accounts = newAccountMap; } /** @@ -92,7 +67,12 @@ public class Preferences { loadAccounts(); } - return accountsInOrder.toArray(EMPTY_ACCOUNT_ARRAY); + if ((newAccount != null) && newAccount.getAccountNumber() != -1) { + accounts.add(newAccount); + newAccount = null; + } + + return accounts.toArray(EMPTY_ACCOUNT_ARRAY); } /** @@ -101,9 +81,16 @@ public class Preferences { * @return all accounts with {@link Account#isAvailable(Context)} */ public synchronized Collection getAvailableAccounts() { - Account[] allAccounts = getAccounts(); + if (accounts == null) { + loadAccounts(); + } + + if ((newAccount != null) && newAccount.getAccountNumber() != -1) { + accounts.add(newAccount); + newAccount = null; + } Collection retval = new ArrayList(accounts.size()); - for (Account account : allAccounts) { + for (Account account : accounts) { if (account.isAvailable(mContext)) { retval.add(account); } @@ -116,22 +103,28 @@ public class Preferences { if (accounts == null) { loadAccounts(); } - Account account = accounts.get(uuid); - return account; + for (Account account : accounts) { + if (account.getUuid().equals(uuid)) { + return account; + } + } + + if ((newAccount != null) && newAccount.getUuid().equals(uuid)) { + return newAccount; + } + + return null; } public synchronized Account newAccount() { newAccount = new Account(K9.app); - accounts.put(newAccount.getUuid(), newAccount); - accountsInOrder.add(newAccount); return newAccount; } public synchronized void deleteAccount(Account account) { - accounts.remove(account.getUuid()); - accountsInOrder.remove(account); + accounts.remove(account); account.delete(this); if (newAccount == account) { diff --git a/src/com/fsck/k9/activity/Accounts.java b/src/com/fsck/k9/activity/Accounts.java index e7a9213ce..025a95058 100644 --- a/src/com/fsck/k9/activity/Accounts.java +++ b/src/com/fsck/k9/activity/Accounts.java @@ -3,13 +3,11 @@ package com.fsck.k9.activity; import android.app.AlertDialog; import android.app.Dialog; -import android.content.ContentResolver; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; -import android.net.Uri; import android.os.Bundle; import android.os.Handler; import android.util.Log; @@ -31,8 +29,6 @@ import com.fsck.k9.controller.MessagingListener; import com.fsck.k9.mail.Flag; import com.fsck.k9.view.ColorChip; -import java.io.FileNotFoundException; -import java.io.InputStream; import java.util.*; import java.util.concurrent.ConcurrentHashMap; @@ -63,8 +59,6 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC private SearchAccount unreadAccount = null; private SearchAccount integratedInboxAccount = null; private FontSizes mFontSizes = K9.getFontSizes(); - - private static final int ACTIVITY_REQUEST_PICK_SETTINGS_FILE = 1; class AccountsHandler extends Handler { private void setViewTitle() { @@ -135,12 +129,7 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC }); } } - - public void setProgress(boolean progress) - { - mHandler.progress(progress); - } - + ActivityListener mListener = new ActivityListener() { @Override public void informUserOfStatus() { @@ -593,9 +582,6 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC case R.id.recreate: onRecreate(realAccount); break; - case R.id.export: - onExport(realAccount); - break; } return true; } @@ -642,12 +628,6 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC case R.id.search: onSearchRequested(); break; - case R.id.export_all: - onExport(null); - break; - case R.id.import_settings: - onImport(); - break; default: return super.onOptionsItemSelected(item); } @@ -761,100 +741,6 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC } } } - - private void onImport() - { - Intent i = new Intent(Intent.ACTION_GET_CONTENT); - i.addCategory(Intent.CATEGORY_OPENABLE); - i.setType("*/*"); - startActivityForResult(Intent.createChooser(i, null), ACTIVITY_REQUEST_PICK_SETTINGS_FILE); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, Intent data) - { - Log.i(K9.LOG_TAG, "onActivityResult requestCode = " + requestCode + ", resultCode = " + resultCode + ", data = " + data); - if (resultCode != RESULT_OK) - return; - if (data == null) - { - return; - } - switch (requestCode) - { - case ACTIVITY_REQUEST_PICK_SETTINGS_FILE: - onImport(data.getData()); - break; - } - } - - private void onImport(Uri uri) - { - Log.i(K9.LOG_TAG, "onImport importing from URI " + uri.getPath()); - try - { - final String fileName = uri.getPath(); - ContentResolver resolver = getContentResolver(); - final InputStream is = resolver.openInputStream(uri); - - PasswordEntryDialog dialog = new PasswordEntryDialog(this, getString(R.string.settings_encryption_password_prompt), - new PasswordEntryDialog.PasswordEntryListener() - { - public void passwordChosen(String chosenPassword) - { - String toastText = Accounts.this.getString(R.string.settings_importing ); - Toast toast = Toast.makeText(Accounts.this.getApplication(), toastText, Toast.LENGTH_SHORT); - toast.show(); - mHandler.progress(true); - AsyncUIProcessor.getInstance(Accounts.this.getApplication()).importSettings(is, chosenPassword, new ImportListener() - { - public void failure(final String message, Exception e) - { - Accounts.this.runOnUiThread(new Runnable() - { - public void run() - { - mHandler.progress(false); - String toastText = Accounts.this.getString(R.string.settings_import_failure, fileName, message ); - Toast toast = Toast.makeText(Accounts.this.getApplication(), toastText, 1); - toast.show(); - } - }); - } - - public void importSuccess(final int numAccounts) - { - Accounts.this.runOnUiThread(new Runnable() - { - public void run() - { - mHandler.progress(false); - String toastText = - numAccounts != 1 - ? Accounts.this.getString(R.string.settings_import_success_multiple, numAccounts, fileName ) - : Accounts.this.getString(R.string.settings_import_success_single, fileName ); - Toast toast = Toast.makeText(Accounts.this.getApplication(), toastText, 1); - toast.show(); - refresh(); - } - }); - } - }); - } - - public void cancel() - { - } - }); - dialog.show(); - } - catch (FileNotFoundException fnfe) - { - String toastText = Accounts.this.getString(R.string.settings_import_failure, uri.getPath(), fnfe.getMessage() ); - Toast toast = Toast.makeText(Accounts.this.getApplication(), toastText, 1); - toast.show(); - } - } class AccountsAdapter extends ArrayAdapter { public AccountsAdapter(BaseAccount[] accounts) { diff --git a/src/com/fsck/k9/activity/ActivityListener.java b/src/com/fsck/k9/activity/ActivityListener.java index 732ffda92..432e87da2 100644 --- a/src/com/fsck/k9/activity/ActivityListener.java +++ b/src/com/fsck/k9/activity/ActivityListener.java @@ -204,6 +204,7 @@ public class ActivityListener extends MessagingListener { return mFolderCompleted; } + public int getFolderTotal() { return mFolderTotal; } diff --git a/src/com/fsck/k9/activity/AsyncUIProcessor.java b/src/com/fsck/k9/activity/AsyncUIProcessor.java deleted file mode 100644 index 4492b4869..000000000 --- a/src/com/fsck/k9/activity/AsyncUIProcessor.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.fsck.k9.activity; - -import java.io.File; -import java.io.InputStream; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; - -import android.app.Application; -import android.os.Environment; - -import com.fsck.k9.K9; -import com.fsck.k9.helper.Utility; -import com.fsck.k9.preferences.StorageExporter; -import com.fsck.k9.preferences.StorageImporter; - -/** - * The class should be used to run long-running processes invoked from the UI that - * do not affect the Stores. There are probably pieces of MessagingController - * that can be moved here. - * - */ -public class AsyncUIProcessor { - - private final ExecutorService threadPool = Executors.newCachedThreadPool(); - private Application mApplication; - private static AsyncUIProcessor inst = null; - private AsyncUIProcessor(Application application) { - mApplication = application; - } - public synchronized static AsyncUIProcessor getInstance(Application application) { - if (inst == null) { - inst = new AsyncUIProcessor(application); - } - return inst; - } - public void exportSettings(final String uuid, final String encryptionKey, final ExportListener listener) { - threadPool.execute(new Runnable() { - - @Override - public void run() { - try { - // Do not store with application files. Settings exports should *not* be - // deleted when the application is uninstalled - File dir = new File(Environment.getExternalStorageDirectory() + File.separator - + mApplication.getPackageName()); - dir.mkdirs(); - File file = Utility.createUniqueFile(dir, "settings.k9s"); - String fileName = file.getAbsolutePath(); - StorageExporter.exportPreferences(mApplication, uuid, fileName, encryptionKey); - if (listener != null) { - listener.exportSuccess(fileName); - } - } catch (Exception e) { - listener.failure(e.getLocalizedMessage(), e); - } - } - } - ); - - } - public void importSettings(final String fileName, final String encryptionKey, final ImportListener listener) { - threadPool.execute(new Runnable() { - - @Override - public void run() { - try { - int numAccounts = StorageImporter.importPreferences(mApplication, fileName, encryptionKey); - K9.setServicesEnabled(mApplication); - if (listener != null) { - listener.importSuccess(numAccounts); - } - } catch (Exception e) { - listener.failure(e.getLocalizedMessage(), e); - } - } - } - ); - - } - public void importSettings(final InputStream inputStream, final String encryptionKey, final ImportListener listener) { - threadPool.execute(new Runnable() { - - @Override - public void run() { - try { - int numAccounts = StorageImporter.importPreferences(mApplication, inputStream, encryptionKey); - K9.setServicesEnabled(mApplication); - if (listener != null) { - listener.importSuccess(numAccounts); - } - } catch (Exception e) { - listener.failure(e.getLocalizedMessage(), e); - } - } - } - ); - - } - -} diff --git a/src/com/fsck/k9/activity/ExportHelper.java b/src/com/fsck/k9/activity/ExportHelper.java deleted file mode 100644 index 864689935..000000000 --- a/src/com/fsck/k9/activity/ExportHelper.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.fsck.k9.activity; - -import android.app.Activity; -import android.widget.Toast; - -import com.fsck.k9.Account; -import com.fsck.k9.R; - -public class ExportHelper { - public static void exportSettings(final Activity activity, final Progressable progressable, final Account account) { - PasswordEntryDialog dialog = new PasswordEntryDialog(activity, activity.getString(R.string.settings_encryption_password_prompt), - new PasswordEntryDialog.PasswordEntryListener() { - public void passwordChosen(String chosenPassword) { - String toastText = activity.getString(R.string.settings_exporting); - Toast toast = Toast.makeText(activity, toastText, Toast.LENGTH_SHORT); - toast.show(); - progressable.setProgress(true); - String uuid = null; - if (account != null) { - uuid = account.getUuid(); - } - AsyncUIProcessor.getInstance(activity.getApplication()).exportSettings(uuid, chosenPassword, - new ExportListener() { - public void failure(final String message, Exception e) { - activity.runOnUiThread(new Runnable() { - public void run() { - progressable.setProgress(false); - String toastText = activity.getString(R.string.settings_export_failure, message); - Toast toast = Toast.makeText(activity.getApplication(), toastText, Toast.LENGTH_LONG); - toast.show(); - } - }); - } - - public void exportSuccess(final String fileName) { - activity.runOnUiThread(new Runnable() { - public void run() { - progressable.setProgress(false); - String toastText = activity.getString(R.string.settings_export_success, fileName); - Toast toast = Toast.makeText(activity.getApplication(), toastText, Toast.LENGTH_LONG); - toast.show(); - } - }); - } - }); - } - - public void cancel() { - } - }); - dialog.show(); - } - -} diff --git a/src/com/fsck/k9/activity/ExportListener.java b/src/com/fsck/k9/activity/ExportListener.java deleted file mode 100644 index 6c2b6f3a6..000000000 --- a/src/com/fsck/k9/activity/ExportListener.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.fsck.k9.activity; - -public interface ExportListener { - public void exportSuccess(String fileName); - - public void failure(String message, Exception e); - -} diff --git a/src/com/fsck/k9/activity/FolderList.java b/src/com/fsck/k9/activity/FolderList.java index b5900bc84..55fc93076 100644 --- a/src/com/fsck/k9/activity/FolderList.java +++ b/src/com/fsck/k9/activity/FolderList.java @@ -150,12 +150,7 @@ public class FolderList extends K9ListActivity { }); } } - - public void setProgress(boolean progress) - { - mHandler.progress(progress); - } - + /** * This class is responsible for reloading the list of local messages for a * given folder, notifying the adapter that the message have been loaded and @@ -543,15 +538,7 @@ public class FolderList extends K9ListActivity { onCompact(mAccount); return true; - - case R.id.export: - onExport(mAccount); - return true; - - case R.id.export_all: - onExport(null); - return true; - + case R.id.display_1st_class: { setDisplayMode(FolderMode.FIRST_CLASS); return true; diff --git a/src/com/fsck/k9/activity/ImportListener.java b/src/com/fsck/k9/activity/ImportListener.java deleted file mode 100644 index 442b612ee..000000000 --- a/src/com/fsck/k9/activity/ImportListener.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.fsck.k9.activity; - -public interface ImportListener { - public void importSuccess(int numAccounts); - - public void failure(String message, Exception e); - -} diff --git a/src/com/fsck/k9/activity/K9Activity.java b/src/com/fsck/k9/activity/K9Activity.java index d9b29817d..3fa72700b 100644 --- a/src/com/fsck/k9/activity/K9Activity.java +++ b/src/com/fsck/k9/activity/K9Activity.java @@ -15,13 +15,11 @@ import android.view.animation.AccelerateInterpolator; import android.view.animation.Animation; import android.view.animation.TranslateAnimation; import android.widget.ScrollView; - -import com.fsck.k9.Account; import com.fsck.k9.K9; import com.fsck.k9.helper.DateFormatter; -public class K9Activity extends Activity implements Progressable { +public class K9Activity extends Activity { private GestureDetector gestureDetector; protected ScrollView mTopView; @@ -163,11 +161,6 @@ public class K9Activity extends Activity implements Progressable { return false; } } - public void setProgress(boolean progress) { - } - public void onExport(final Account account) { - ExportHelper.exportSettings(this, this, account); - } } diff --git a/src/com/fsck/k9/activity/K9ListActivity.java b/src/com/fsck/k9/activity/K9ListActivity.java index 52887bd95..204182be2 100644 --- a/src/com/fsck/k9/activity/K9ListActivity.java +++ b/src/com/fsck/k9/activity/K9ListActivity.java @@ -1,17 +1,15 @@ package com.fsck.k9.activity; import android.app.ListActivity; -import android.os.Bundle; import android.util.Log; import android.view.KeyEvent; import android.widget.AdapterView; import android.widget.ListView; - -import com.fsck.k9.Account; +import android.os.Bundle; import com.fsck.k9.K9; import com.fsck.k9.helper.DateFormatter; -public class K9ListActivity extends ListActivity implements Progressable { +public class K9ListActivity extends ListActivity { @Override public void onCreate(Bundle icicle) { K9Activity.setLanguage(this, K9.getK9Language()); @@ -89,12 +87,4 @@ public class K9ListActivity extends ListActivity implements Progressable { } return super.onKeyUp(keyCode, event); } - - public void setProgress(boolean progress) { - } - - public void onExport(final Account account) { - ExportHelper.exportSettings(this, this, account); - } - } diff --git a/src/com/fsck/k9/activity/MessageList.java b/src/com/fsck/k9/activity/MessageList.java index edfc255d4..3627a9efe 100644 --- a/src/com/fsck/k9/activity/MessageList.java +++ b/src/com/fsck/k9/activity/MessageList.java @@ -518,12 +518,7 @@ public class MessageList }); } } - - public void setProgress(boolean progress) - { - mHandler.progress(progress); - } - + public static void actionHandleFolder(Context context, Account account, String folder) { Intent intent = actionHandleFolderIntent(context, account, folder); context.startActivity(intent); @@ -1402,14 +1397,6 @@ public class MessageList onEditPrefs(); return true; } - case R.id.export: { - onExport(mAccount); - return true; - } - case R.id.export_all: { - onExport(null); - return true; - } } if (mQueryString != null) { diff --git a/src/com/fsck/k9/activity/PasswordEntryDialog.java b/src/com/fsck/k9/activity/PasswordEntryDialog.java deleted file mode 100644 index c24d23456..000000000 --- a/src/com/fsck/k9/activity/PasswordEntryDialog.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.fsck.k9.activity; - -import com.fsck.k9.R; - -import android.app.AlertDialog; -import android.app.AlertDialog.Builder; -import android.content.Context; -import android.content.DialogInterface; -import android.text.Editable; -import android.text.TextWatcher; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.Button; -import android.widget.EditText; - -public class PasswordEntryDialog { - public interface PasswordEntryListener { - void passwordChosen(String chosenPassword); - void cancel(); - } - PasswordEntryListener listener; - private EditText passwordView; - AlertDialog dialog; - public PasswordEntryDialog(Context context, String headerText, PasswordEntryListener listener) { - this.listener = listener; - View view = LayoutInflater.from(context).inflate(R.layout.password_entry_dialog, null); - Builder builder = new AlertDialog.Builder(context); - passwordView = (EditText)view.findViewById(R.id.password_text_box); - - builder.setView(view); - builder.setPositiveButton(R.string.okay_action, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - if (PasswordEntryDialog.this.listener != null) { - String chosenPassword = passwordView.getText().toString(); - PasswordEntryDialog.this.listener.passwordChosen(chosenPassword); - } - } - }); - builder.setNegativeButton(R.string.cancel_action, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - if (PasswordEntryDialog.this.listener != null) { - PasswordEntryDialog.this.listener.cancel(); - } - } - }); - dialog = builder.create(); - passwordView.addTextChangedListener(new TextWatcher() { - - @Override - public void afterTextChanged(Editable arg0) { } - - @Override - public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { } - - @Override - public void onTextChanged(CharSequence arg0, int arg1, int arg2, - int arg3) { - - Button okButton = dialog.getButton(DialogInterface.BUTTON_POSITIVE); - String chosenPassword = passwordView.getText().toString(); - okButton.setEnabled(chosenPassword.length() > 0); - - } - }); - - dialog.setMessage(headerText); - - - } - public void show() { - dialog.show(); - Button okButton = dialog.getButton(DialogInterface.BUTTON_POSITIVE); - okButton.setEnabled(false); - } - -} diff --git a/src/com/fsck/k9/activity/Progressable.java b/src/com/fsck/k9/activity/Progressable.java deleted file mode 100644 index 5201e99b3..000000000 --- a/src/com/fsck/k9/activity/Progressable.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.fsck.k9.activity; - -public interface Progressable { - public void setProgress(boolean progress); -} diff --git a/src/com/fsck/k9/helper/DateFormatter.java b/src/com/fsck/k9/helper/DateFormatter.java index f964b2183..12a9e1a31 100644 --- a/src/com/fsck/k9/helper/DateFormatter.java +++ b/src/com/fsck/k9/helper/DateFormatter.java @@ -75,10 +75,6 @@ public class DateFormatter { return sChosenFormat; } - public static void clearChosenFormat() { - sChosenFormat = null; - } - public static DateFormat getDateFormat(Context context) { String formatString = getFormat(context); return getDateFormat(context, formatString); diff --git a/src/com/fsck/k9/preferences/IStorageImporter.java b/src/com/fsck/k9/preferences/IStorageImporter.java deleted file mode 100644 index 6702c4f80..000000000 --- a/src/com/fsck/k9/preferences/IStorageImporter.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.fsck.k9.preferences; - -import com.fsck.k9.Preferences; - -import android.content.SharedPreferences; - -public interface IStorageImporter { - public abstract int importPreferences(Preferences preferences, SharedPreferences.Editor context, String data, String encryptionKey) throws StorageImportExportException; -} \ No newline at end of file diff --git a/src/com/fsck/k9/preferences/SimpleCrypto.java b/src/com/fsck/k9/preferences/SimpleCrypto.java deleted file mode 100644 index f496c9b30..000000000 --- a/src/com/fsck/k9/preferences/SimpleCrypto.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.fsck.k9.preferences; - -import java.security.SecureRandom; - -import javax.crypto.Cipher; -import javax.crypto.KeyGenerator; -import javax.crypto.SecretKey; -import javax.crypto.spec.SecretKeySpec; - -import org.apache.commons.codec.binary.Base64; - - - -/** - * Copied from: - * http://www.androidsnippets.org/snippets/39/index.html - * a page which had no licensing or copyright notice - * and appeared to be intended for public use - * package net.sf.andhsli.hotspotlogin; - * Usage: - *
    - * String crypto = SimpleCrypto.encrypt(masterpassword, cleartext)
    - * ...
    - * String cleartext = SimpleCrypto.decrypt(masterpassword, crypto)
    - * 
    - * @author ferenc.hechler - */ -public class SimpleCrypto { - - public static String encrypt(String seed, String cleartext, Base64 base64) throws Exception { - byte[] rawKey = getRawKey(seed.getBytes()); - byte[] result = encrypt(rawKey, cleartext.getBytes()); - return new String(base64.encode(result)); - } - - public static String decrypt(String seed, String encrypted, Base64 base64) throws Exception { - byte[] rawKey = getRawKey(seed.getBytes()); - byte[] enc = base64.decode(encrypted.getBytes()); - byte[] result = decrypt(rawKey, enc); - return new String(result); - } - - private static byte[] getRawKey(byte[] seed) throws Exception { - KeyGenerator kgen = KeyGenerator.getInstance("AES"); - SecureRandom sr = SecureRandom.getInstance("SHA1PRNG"); - sr.setSeed(seed); - kgen.init(128, sr); // 192 and 256 bits may not be available - SecretKey skey = kgen.generateKey(); - byte[] raw = skey.getEncoded(); - return raw; - } - - - private static byte[] encrypt(byte[] raw, byte[] clear) throws Exception { - SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES"); - Cipher cipher = Cipher.getInstance("AES"); - cipher.init(Cipher.ENCRYPT_MODE, skeySpec); - byte[] encrypted = cipher.doFinal(clear); - return encrypted; - } - - private static byte[] decrypt(byte[] raw, byte[] encrypted) throws Exception { - SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES"); - Cipher cipher = Cipher.getInstance("AES"); - cipher.init(Cipher.DECRYPT_MODE, skeySpec); - byte[] decrypted = cipher.doFinal(encrypted); - return decrypted; - } - -// -// public static byte[] toByte(String hexString) { -// int len = hexString.length()/2; -// byte[] result = new byte[len]; -// for (int i = 0; i < len; i++) -// result[i] = Integer.valueOf(hexString.substring(2*i, 2*i+2), 16).byteValue(); -// return result; -// } -// -// public static String toHex(byte[] buf) { -// if (buf == null) -// return ""; -// StringBuffer result = new StringBuffer(2*buf.length); -// for (int i = 0; i < buf.length; i++) { -// appendHex(result, buf[i]); -// } -// return result.toString(); -// } -// private final static String HEX = "0123456789ABCDEF"; -// private static void appendHex(StringBuffer sb, byte b) { -// sb.append(HEX.charAt((b>>4)&0x0f)).append(HEX.charAt(b&0x0f)); -// } -// -} - diff --git a/src/com/fsck/k9/preferences/StorageExporter.java b/src/com/fsck/k9/preferences/StorageExporter.java deleted file mode 100644 index acf5447a8..000000000 --- a/src/com/fsck/k9/preferences/StorageExporter.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.fsck.k9.preferences; - -import java.io.File; -import java.io.IOException; -import java.io.PrintWriter; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - -import org.apache.commons.codec.binary.Base64; - -import com.fsck.k9.Account; -import com.fsck.k9.K9; -import com.fsck.k9.Preferences; - -import android.content.Context; -import android.content.SharedPreferences; -import android.util.Log; - -public class StorageExporter { - //public static String VALIDITY = "K-9MailExport"; // Does outputting a fixed string in a known location make the encrypted data easier to break? - public static void exportPreferences(Context context, String uuid, String fileName, String encryptionKey) throws StorageImportExportException { - try { - Base64 base64 = new Base64(); - File outFile = new File(fileName); - PrintWriter pf = new PrintWriter(outFile); - long keysEvaluated = 0; - long keysExported = 0; - pf.println(""); - - // String testval = SimpleCrypto.encrypt(encryptionKey, VALIDITY); - - pf.print(""); - Log.i(K9.LOG_TAG, "Exporting preferences for account " + uuid + " to file " + fileName); - - Preferences preferences = Preferences.getPreferences(context); - SharedPreferences storage = preferences.getPreferences(); - - Account[] accounts = preferences.getAccounts(); - Set accountUuids = new HashSet(); - for (Account account : accounts) { - accountUuids.add(account.getUuid()); - } - - Map < String, ? extends Object > prefs = storage.getAll(); - for (Map.Entry < String, ? extends Object > entry : prefs.entrySet()) { - String key = entry.getKey(); - String value = entry.getValue().toString(); - //Log.i(K9.LOG_TAG, "Evaluating key " + key); - keysEvaluated++; - if (uuid != null) { - String[] comps = key.split("\\."); - String keyUuid = comps[0]; - //Log.i(K9.LOG_TAG, "Got key uuid " + keyUuid); - if (uuid.equals(keyUuid) == false) { - //Log.i(K9.LOG_TAG, "Skipping key " + key + " which is for another account or global"); - continue; - } - } else { - String[] comps = key.split("\\."); - if (comps.length > 1) { - String keyUuid = comps[0]; - if (accountUuids.contains(keyUuid) == false) { - //Log.i(K9.LOG_TAG, "Skipping key " + key + " which is not for any current account"); - continue; - } - } - } - String keyEnc = SimpleCrypto.encrypt(encryptionKey, key, base64); - String valueEnc = SimpleCrypto.encrypt(encryptionKey, value, base64); - String output = keyEnc + ":" + valueEnc; - //Log.i(K9.LOG_TAG, "For key " + key + ", output is " + output); - pf.println(output); - keysExported++; - - } - - pf.println(""); - pf.close(); - - Log.i(K9.LOG_TAG, "Exported " + keysExported + " settings of " + keysEvaluated - + " total for preferences for account " + uuid + " to file " + fileName + " which is size " + outFile.length()); - } catch (IOException ie) { - throw new StorageImportExportException("Unable to export settings", ie); - } catch (Exception e) { - throw new StorageImportExportException("Unable to encrypt settings", e); - } - } -} diff --git a/src/com/fsck/k9/preferences/StorageImportExportException.java b/src/com/fsck/k9/preferences/StorageImportExportException.java deleted file mode 100644 index bc2e10592..000000000 --- a/src/com/fsck/k9/preferences/StorageImportExportException.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.fsck.k9.preferences; - -public class StorageImportExportException extends Exception { - - public StorageImportExportException() { - super(); - } - - public StorageImportExportException(String detailMessage, Throwable throwable) { - super(detailMessage, throwable); - } - - public StorageImportExportException(String detailMessage) { - super(detailMessage); - } - - public StorageImportExportException(Throwable throwable) { - super(throwable); - } - -} diff --git a/src/com/fsck/k9/preferences/StorageImporter.java b/src/com/fsck/k9/preferences/StorageImporter.java deleted file mode 100644 index 4991d266d..000000000 --- a/src/com/fsck/k9/preferences/StorageImporter.java +++ /dev/null @@ -1,141 +0,0 @@ -package com.fsck.k9.preferences; - -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; -import java.util.HashMap; -import java.util.Map; -import java.util.Stack; - -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; - -import org.xml.sax.Attributes; -import org.xml.sax.InputSource; -import org.xml.sax.SAXException; -import org.xml.sax.XMLReader; -import org.xml.sax.helpers.DefaultHandler; - -import android.content.Context; -import android.content.SharedPreferences; -import android.util.Log; - -import com.fsck.k9.K9; -import com.fsck.k9.Preferences; -import com.fsck.k9.helper.DateFormatter; - -public class StorageImporter { - public static int importPreferences(Context context, String fileName, String encryptionKey) throws StorageImportExportException { - try { - InputStream is = new FileInputStream(fileName); - return importPreferences(context, is, encryptionKey); - } catch (FileNotFoundException fnfe) { - throw new StorageImportExportException("Failure reading settings file " + fileName, fnfe); - } - } - public static int importPreferences(Context context, InputStream is, String encryptionKey) throws StorageImportExportException { - try { - Preferences preferences = Preferences.getPreferences(context); - SharedPreferences storage = preferences.getPreferences(); - SharedPreferences.Editor editor = storage.edit(); - - SAXParserFactory spf = SAXParserFactory.newInstance(); - SAXParser sp = spf.newSAXParser(); - XMLReader xr = sp.getXMLReader(); - StorageImporterHandler handler = new StorageImporterHandler(); - xr.setContentHandler(handler); - - xr.parse(new InputSource(is)); - is.close(); - - Element dataset = handler.getRootElement(); - String version = dataset.attributes.get("version"); - Log.i(K9.LOG_TAG, "Got settings file version " + version); - - - IStorageImporter storageImporter = null; - if ("1".equals(version)) { - storageImporter = new StorageImporterVersion1(); - } else { - throw new StorageImportExportException("Unable to read file of version " + version - + "; (only version 1 is readable)"); - } - int numAccounts = 0; - if (storageImporter != null) { - String data = dataset.data.toString(); - numAccounts = storageImporter.importPreferences(preferences, editor, data, encryptionKey); - } - editor.commit(); - Preferences.getPreferences(context).refreshAccounts(); - DateFormatter.clearChosenFormat(); - K9.loadPrefs(Preferences.getPreferences(context)); - return numAccounts; - } catch (SAXException se) { - throw new StorageImportExportException("Failure reading settings file", se); - } catch (IOException ie) { - throw new StorageImportExportException("Failure reading settings file", ie); - } catch (ParserConfigurationException pce) { - throw new StorageImportExportException("Failure reading settings file", pce); - } - } - - private static class Element { - String name; - Map attributes = new HashMap(); - Map subElements = new HashMap(); - StringBuilder data = new StringBuilder(); - } - - private static class StorageImporterHandler extends DefaultHandler { - private Element rootElement = new Element(); - private Stack mOpenTags = new Stack(); - - public Element getRootElement() { - return this.rootElement; - } - - @Override - public void startDocument() throws SAXException { - } - - @Override - public void endDocument() throws SAXException { - /* Do nothing */ - } - - @Override - public void startElement(String namespaceURI, String localName, - String qName, Attributes attributes) throws SAXException { - Log.i(K9.LOG_TAG, "Starting element " + localName); - Element element = new Element(); - element.name = localName; - mOpenTags.push(element); - for (int i = 0; i < attributes.getLength(); i++) { - String key = attributes.getLocalName(i); - String value = attributes.getValue(i); - Log.i(K9.LOG_TAG, "Got attribute " + key + " = " + value); - element.attributes.put(key, value); - } - } - - @Override - public void endElement(String namespaceURI, String localName, String qName) { - Log.i(K9.LOG_TAG, "Ending element " + localName); - Element element = mOpenTags.pop(); - Element superElement = mOpenTags.empty() ? null : mOpenTags.peek(); - if (superElement != null) { - superElement.subElements.put(element.name, element); - } else { - rootElement = element; - } - } - - @Override - public void characters(char ch[], int start, int length) { - String value = new String(ch, start, length); - mOpenTags.peek().data.append(value); - } - } -} diff --git a/src/com/fsck/k9/preferences/StorageImporterVersion1.java b/src/com/fsck/k9/preferences/StorageImporterVersion1.java deleted file mode 100644 index cfa2fc1f1..000000000 --- a/src/com/fsck/k9/preferences/StorageImporterVersion1.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.fsck.k9.preferences; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.StringReader; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; - -import org.apache.commons.codec.binary.Base64; - -import android.content.SharedPreferences; -import android.util.Log; - -import com.fsck.k9.Account; -import com.fsck.k9.K9; -import com.fsck.k9.Preferences; - -public class StorageImporterVersion1 implements IStorageImporter { - public int importPreferences(Preferences preferences, SharedPreferences.Editor editor, String data, String encryptionKey) throws StorageImportExportException { - try { - Base64 base64 = new Base64(); - List accountNumbers = Account.getExistingAccountNumbers(preferences); - Log.i(K9.LOG_TAG, "Existing accountNumbers = " + accountNumbers); - Map uuidMapping = new HashMap(); - String accountUuids = preferences.getPreferences().getString("accountUuids", null); - - StringReader sr = new StringReader(data); - BufferedReader br = new BufferedReader(sr); - String line = null; - int settingsImported = 0; - int numAccounts = 0; - do { - line = br.readLine(); - if (line != null) { - //Log.i(K9.LOG_TAG, "Got line " + line); - String[] comps = line.split(":"); - if (comps.length > 1) { - String keyEnc = comps[0]; - String valueEnc = comps[1]; - String key = SimpleCrypto.decrypt(encryptionKey, keyEnc, base64); - String value = SimpleCrypto.decrypt(encryptionKey, valueEnc, base64); - String[] keyParts = key.split("\\."); - if (keyParts.length > 1) { - String oldUuid = keyParts[0]; - String newUuid = uuidMapping.get(oldUuid); - if (newUuid == null) { - newUuid = UUID.randomUUID().toString(); - uuidMapping.put(oldUuid, newUuid); - - Log.i(K9.LOG_TAG, "Mapping oldUuid " + oldUuid + " to newUuid " + newUuid); - } - keyParts[0] = newUuid; - if ("accountNumber".equals(keyParts[1])) { - int accountNumber = Account.findNewAccountNumber(accountNumbers); - accountNumbers.add(accountNumber); - value = Integer.toString(accountNumber); - accountUuids += (accountUuids.length() != 0 ? "," : "") + newUuid; - numAccounts++; - } - StringBuilder builder = new StringBuilder(); - for (String part : keyParts) { - if (builder.length() > 0) { - builder.append("."); - } - builder.append(part); - } - key = builder.toString(); - } - //Log.i(K9.LOG_TAG, "Setting " + key + " = " + value); - settingsImported++; - editor.putString(key, value); - } - } - - } while (line != null); - - editor.putString("accountUuids", accountUuids); - Log.i(K9.LOG_TAG, "Imported " + settingsImported + " settings and " + numAccounts + " accounts"); - return numAccounts; - } catch (IOException ie) { - throw new StorageImportExportException("Unable to import settings", ie); - } catch (Exception e) { - throw new StorageImportExportException("Unable to decrypt settings", e); - } - } -} From da34a5ec8ccb11a111b460ba0dc55d7be6c78bae Mon Sep 17 00:00:00 2001 From: Koji Arai Date: Tue, 1 Mar 2011 01:50:56 +0900 Subject: [PATCH 007/310] Avoid IllegalArgumentException for Charset.forName(null). --- src/com/fsck/k9/mail/internet/MimeHeader.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/com/fsck/k9/mail/internet/MimeHeader.java b/src/com/fsck/k9/mail/internet/MimeHeader.java index 68f4e334f..0b205527f 100644 --- a/src/com/fsck/k9/mail/internet/MimeHeader.java +++ b/src/com/fsck/k9/mail/internet/MimeHeader.java @@ -101,7 +101,12 @@ public class MimeHeader { String v = field.value; if (hasToBeEncoded(v)) { - v = EncoderUtil.encodeEncodedWord(field.value, Charset.forName(mCharset)); + Charset charset = null; + + if (mCharset != null) { + charset = Charset.forName(mCharset); + } + v = EncoderUtil.encodeEncodedWord(field.value, charset); } writer.write(field.name + ": " + v + "\r\n"); From 5a22137d54354c8dcc3c35cdf2062d12bb443050 Mon Sep 17 00:00:00 2001 From: Andrew Chen Date: Wed, 2 Mar 2011 08:17:36 -0800 Subject: [PATCH 008/310] Use
     instead of 
    so that plain text clients get the line wrapping correct. --- src/com/fsck/k9/helper/HtmlConverter.java | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/src/com/fsck/k9/helper/HtmlConverter.java b/src/com/fsck/k9/helper/HtmlConverter.java index 08ddd057d..cc4a365f3 100644 --- a/src/com/fsck/k9/helper/HtmlConverter.java +++ b/src/com/fsck/k9/helper/HtmlConverter.java @@ -1073,19 +1073,14 @@ public class HtmlConverter { } private static String htmlifyMessageHeader() { - if (K9.messageViewFixedWidthFont()) { - return "
    ";
    -        } else {
    -            return "
    "; - } + final String font = K9.messageViewFixedWidthFont() + ? "monospace" + : "sans-serif"; + return "
    ";
         }
     
         private static String htmlifyMessageFooter() {
    -        if (K9.messageViewFixedWidthFont()) {
    -            return "
    "; - } else { - return "
    "; - } + return "
    "; } /** From 171711fa9c10d167e0ca7ff84fa2363bd95bb421 Mon Sep 17 00:00:00 2001 From: cketti Date: Fri, 4 Mar 2011 03:36:52 +0100 Subject: [PATCH 009/310] Remove trailing space from IMAP command This could be the cause of the error reported in issue 3089. --- src/com/fsck/k9/mail/store/ImapStore.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/fsck/k9/mail/store/ImapStore.java b/src/com/fsck/k9/mail/store/ImapStore.java index ec77a1dd2..9ecc58298 100644 --- a/src/com/fsck/k9/mail/store/ImapStore.java +++ b/src/com/fsck/k9/mail/store/ImapStore.java @@ -908,7 +908,7 @@ public class ImapStore extends Store { try { ImapSearcher searcher = new ImapSearcher() { public List search() throws IOException, MessagingException { - return executeSimpleCommand(String.format("UID SEARCH *:* ")); + return executeSimpleCommand("UID SEARCH *:*"); } }; Message[] messages = search(searcher, null); From 6a5646478e13d95da9c81e0210b61b7c53460de7 Mon Sep 17 00:00:00 2001 From: cketti Date: Sun, 6 Mar 2011 19:03:04 +0100 Subject: [PATCH 010/310] Updated catalan translation --- res/values-ca/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml index afbac3f94..2514b6109 100644 --- a/res/values-ca/strings.xml +++ b/res/values-ca/strings.xml @@ -72,7 +72,7 @@ Envia missatges Llista de carpetes Refresca carpetes - Marca missatges llegits + Marca missatges com a llegits Afegeix un compte nou Redacta Cerca @@ -872,7 +872,7 @@ Benvingut a la configuració del K-9. El K-9 és un client de codi obert per An Operacions en lot Esborra les seleccions - Marca coma ha llegit les seleccion + Marca com a ha llegit les seleccion Marca com a no llegit les seleccions Afegeix un estel a les seleccions Treu l’estel del que s’ha seleccionat From cebf0b3e162dd0c011cb2898bb37dbe3eb3d362b Mon Sep 17 00:00:00 2001 From: Jesse Vincent Date: Tue, 8 Mar 2011 15:25:13 -0500 Subject: [PATCH 011/310] German updates (By badgering rafl on IRC) --- res/values-de/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index f54508f63..727dc12bb 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -9,8 +9,8 @@ http://code.google.com/p/k9mail/wiki/ReleaseNotes Versionsinformationen: %s http://code.google.com/p/k9mail/ - - + Wir benutzen die folgenden externen Bibliotheken: %s + Emoji Bilder: %s Anlagen der Nachricht lesen Dieser Anwendung erlauben die Anlagen Ihrer Nachrichten zu lesen. From 79a4557500c7d760f352e175ee2acbd0f2a63d3c Mon Sep 17 00:00:00 2001 From: Jesse Vincent Date: Wed, 9 Mar 2011 00:21:16 -0500 Subject: [PATCH 012/310] Switch K-9 to using the SMTP submission port rather than the regular server-to-server transport port. --- src/com/fsck/k9/activity/setup/AccountSetupOutgoing.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/fsck/k9/activity/setup/AccountSetupOutgoing.java b/src/com/fsck/k9/activity/setup/AccountSetupOutgoing.java index a89678a8c..770f6e909 100644 --- a/src/com/fsck/k9/activity/setup/AccountSetupOutgoing.java +++ b/src/com/fsck/k9/activity/setup/AccountSetupOutgoing.java @@ -29,7 +29,7 @@ public class AccountSetupOutgoing extends K9Activity implements OnClickListener, private static final String EXTRA_MAKE_DEFAULT = "makeDefault"; private static final int smtpPorts[] = { - 25, 465, 465, 25, 25 + 587, 465, 465, 587, 587 }; private static final String smtpSchemes[] = { From d2a32f1ea0eb3fc6346ec6133e014187dbbdc706 Mon Sep 17 00:00:00 2001 From: Jesse Vincent Date: Wed, 9 Mar 2011 14:50:36 -0500 Subject: [PATCH 013/310] pt-BR Translation fixes from noeczisto. Fixes issue 3107 --- res/values-pt-rBR/strings.xml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml index 1c763a680..2f5039978 100644 --- a/res/values-pt-rBR/strings.xml +++ b/res/values-pt-rBR/strings.xml @@ -139,8 +139,7 @@ Enviando Repetindo carregamento de mensagens - - Toque para ver mais%d msgs. + Toque para ver mais %d msgs. GB MB @@ -661,7 +660,7 @@ Bem-vindo à configuração do K-9 Mail. K-9 é um cliente de e-mail com código Mostrar no top group Mostrar perto do topo da lista de pastas - Calsse de exibição para pasta + Classe de exibição para pasta Nenhuma Primeira Classe Segunda Classe @@ -940,7 +939,7 @@ Bem-vindo à configuração do K-9 Mail. K-9 é um cliente de e-mail com código Controle remoto para K-9 Mail Permitir esta aplicação controlar atividades e configurações do K-9 Mail. - Tamanho da fornte + Tamanho da fonte Configurar tamanho da fonte Lista de contas From 9996d80080e3adafdd049f2688302480d27045a5 Mon Sep 17 00:00:00 2001 From: Jesse Vincent Date: Wed, 9 Mar 2011 16:32:25 -0500 Subject: [PATCH 014/310] When making sure not to offer up the outbox as a potential folder for things like Drafts or Inbox, use a case-insensitive comparison --- src/com/fsck/k9/activity/setup/AccountSettings.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/fsck/k9/activity/setup/AccountSettings.java b/src/com/fsck/k9/activity/setup/AccountSettings.java index 8980b072f..ff7c1c5f3 100644 --- a/src/com/fsck/k9/activity/setup/AccountSettings.java +++ b/src/com/fsck/k9/activity/setup/AccountSettings.java @@ -857,7 +857,7 @@ public class AccountSettings extends K9PreferenceActivity { while (iter.hasNext()) { Folder folder = iter.next(); - if (mAccount.getOutboxFolderName().equals(folder.getName())) + if (mAccount.getOutboxFolderName().equalsIgnoreCase(folder.getName())) { iter.remove(); } From af9b40dda4a8b015a93f70d177002e58c2074840 Mon Sep 17 00:00:00 2001 From: cketti Date: Wed, 9 Mar 2011 22:43:29 +0100 Subject: [PATCH 015/310] Updated pt-BR translation (noeczisto) See issue 3110 --- res/values-pt-rBR/strings.xml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml index 2f5039978..58044802e 100644 --- a/res/values-pt-rBR/strings.xml +++ b/res/values-pt-rBR/strings.xml @@ -199,10 +199,10 @@ Sem mais mensagens -Bem-vindo à configuração do K-9 Mail. K-9 é um cliente de e-mail com código aberto para Android e é originalemente baseado no cliente de e-mail padrão do Android. +Bem-vindo à configuração do K-9 Mail. K-9 é um cliente de e-mail com código aberto para Android e é originalmente baseado no cliente de e-mail padrão do Android. \n \n\nK-9\'s recursor aprimorados incluídos: -\n * Puchar e-mail usando IMAP IDLE +\n * Puxar e-mail usando IMAP IDLE \n * Melhor performance \n * Reclassificação de mensagens \n * E-mails com assinaturas @@ -701,7 +701,7 @@ Bem-vindo à configuração do K-9 Mail. K-9 é um cliente de e-mail com código Piscar LED quando chegar e-mail - Configução de servidor + Configuração de servidor Opções para composição de uma mensagem Composição padrão @@ -785,10 +785,10 @@ Bem-vindo à configuração do K-9 Mail. K-9 é um cliente de e-mail com código Limpar conta Todas as mensagens de \"%s\" serão removidas do K-9 Mail, mas as configurações da conta serão mantidas. - Apenas algumas contas \"Plus\" incluem acesso POP - permitindo este programa se conecte. Se não estiver conseguinto logar nela com seu + Apenas algumas contas \"Plus\" incluem acesso POP, + permitindo que este programa se conecte. Se não estiver conseguindo logar nela com seu endereço de e-mail e senha corretos, talvez você não tenha uma conta \"Plus\" paga. - Por favor, abra seu Web browser para conseguir acesso a estes tipos de contas. + Por favor, abra seu Web browser para conseguir acesso a estes tipos de contas. Se desejar utilizar POP3 para este provedor, você deverá permitir o uso deste na página de configurações de se e-mail Yahoo. @@ -821,7 +821,7 @@ Bem-vindo à configuração do K-9 Mail. K-9 é um cliente de e-mail com código - Loca da Assinatura + Local da Assinatura Antes de escrever o texto Depois do texto escrito Escuro @@ -867,7 +867,7 @@ Bem-vindo à configuração do K-9 Mail. K-9 é um cliente de e-mail com código Excluir selecionados Marcar selecionados como lidos Marcar selecionados como não lidos - Incuir estrela para selecionados + Incluir estrela para selecionados Remover estrela dos selecionados Mover selecionados para arquivo Mover selecionados para Spam @@ -917,7 +917,7 @@ Bem-vindo à configuração do K-9 Mail. K-9 é um cliente de e-mail com código %s %s - - Favoritado + - Favorito - Não lido Todas as mensagens From c305397d05996ae6f436219c98bec95c8a4f617d Mon Sep 17 00:00:00 2001 From: Jesse Vincent Date: Wed, 9 Mar 2011 21:55:03 -0500 Subject: [PATCH 016/310] Fix "sending message failed" notifications to actually report the server error --- src/com/fsck/k9/controller/MessagingController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/fsck/k9/controller/MessagingController.java b/src/com/fsck/k9/controller/MessagingController.java index 3058874fc..ede6946af 100644 --- a/src/com/fsck/k9/controller/MessagingController.java +++ b/src/com/fsck/k9/controller/MessagingController.java @@ -2897,7 +2897,7 @@ public class MessagingController implements Runnable { PendingIntent pi = PendingIntent.getActivity(mApplication, 0, i, 0); - notif.setLatestEventInfo(mApplication, mApplication.getString(R.string.send_failure_subject), lastFailure.getMessage(), pi); + notif.setLatestEventInfo(mApplication, mApplication.getString(R.string.send_failure_subject), getRootCauseMessage(lastFailure), pi); configureNotification(notif, null, null, K9.NOTIFICATION_LED_SENDING_FAILURE_COLOR, K9.NOTIFICATION_LED_BLINK_FAST, true); notif.flags |= Notification.FLAG_AUTO_CANCEL; From d80a941dba65969eb2e73ee99036df33452af5cf Mon Sep 17 00:00:00 2001 From: Jesse Vincent Date: Wed, 9 Mar 2011 22:41:09 -0500 Subject: [PATCH 017/310] Split out "tempfail" and "permfail" message deliver errors --- src/com/fsck/k9/controller/MessagingController.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/com/fsck/k9/controller/MessagingController.java b/src/com/fsck/k9/controller/MessagingController.java index ede6946af..2ebbc847f 100644 --- a/src/com/fsck/k9/controller/MessagingController.java +++ b/src/com/fsck/k9/controller/MessagingController.java @@ -2889,11 +2889,17 @@ public class MessagingController implements Runnable { notifMgr.notify(K9.FETCHING_EMAIL_NOTIFICATION - account.getAccountNumber(), notif); } - private void notifySendFailed(Account account, Exception lastFailure) { + private void notifySendTempFailed(Account account, Exception lastFailure) { + notifySendFailed(account, lastFailure, account.getOutboxFolderName()); + } + private void notifySendPermFailed(Account account, Exception lastFailure) { + notifySendFailed(account, lastFailure, account.getDraftsFolderName()); + } + private void notifySendFailed(Account account, Exception lastFailure, String openFolder) { NotificationManager notifMgr = (NotificationManager)mApplication.getSystemService(Context.NOTIFICATION_SERVICE); Notification notif = new Notification(R.drawable.stat_notify_email_generic, mApplication.getString(R.string.send_failure_subject), System.currentTimeMillis()); - Intent i = FolderList.actionHandleNotification(mApplication, account, account.getOutboxFolderName()); + Intent i = FolderList.actionHandleNotification(mApplication, account, openFolder); PendingIntent pi = PendingIntent.getActivity(mApplication, 0, i, 0); From 2affa9d52b56f8f0cd6bab554bb5f71bbf10bfee Mon Sep 17 00:00:00 2001 From: Jesse Vincent Date: Wed, 9 Mar 2011 22:41:44 -0500 Subject: [PATCH 018/310] Permanent failures when trying to deliver a message move it back to drafts. Opening a "permfail" message takes you to the drafts folder --- .../fsck/k9/controller/MessagingController.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/com/fsck/k9/controller/MessagingController.java b/src/com/fsck/k9/controller/MessagingController.java index 2ebbc847f..8b96d2946 100644 --- a/src/com/fsck/k9/controller/MessagingController.java +++ b/src/com/fsck/k9/controller/MessagingController.java @@ -3045,6 +3045,15 @@ public class MessagingController implements Runnable { } } catch (Exception e) { + // 5.x.x errors from the SMTP server are "PERMFAIL" + // move the message over to drafts rather than leaving it in the outbox + // This is a complete hack, but is worlds better than the previous + // "don't even bother" functionality + if (getRootCauseMessage(e).startsWith("5")) { + localFolder.moveMessages(new Message[] { message }, (LocalFolder) localStore.getFolder(account.getDraftsFolderName())); + } else { + } + message.setFlag(Flag.X_SEND_FAILED, true); Log.e(K9.LOG_TAG, "Failed to send message", e); for (MessagingListener l : getListeners()) { @@ -3064,7 +3073,11 @@ public class MessagingController implements Runnable { l.sendPendingMessagesCompleted(account); } if (lastFailure != null) { - notifySendFailed(account, lastFailure); + if (getRootCauseMessage(lastFailure).startsWith("5")) { + notifySendPermFailed(account, lastFailure); + } else { + notifySendTempFailed(account, lastFailure); + } } } catch (UnavailableStorageException e) { Log.i(K9.LOG_TAG, "Failed to send pending messages because storage is not available - trying again later."); From a54cf7a757c6495c4fce65fb270d309ebe4c42fb Mon Sep 17 00:00:00 2001 From: Jesse Vincent Date: Wed, 9 Mar 2011 22:42:54 -0500 Subject: [PATCH 019/310] Tempfail outgoing messages after 5 delivery attempts --- src/com/fsck/k9/K9.java | 7 +++++++ src/com/fsck/k9/controller/MessagingController.java | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/src/com/fsck/k9/K9.java b/src/com/fsck/k9/K9.java index 9322012c9..88de54e93 100644 --- a/src/com/fsck/k9/K9.java +++ b/src/com/fsck/k9/K9.java @@ -245,6 +245,13 @@ public class K9 extends Application { */ public static final int MAX_ATTACHMENT_DOWNLOAD_SIZE = (128 * 1024 * 1024); + + /* How many times should K-9 try to deliver a message before giving up + * until the app is killed and restarted + */ + + public static int MAX_SEND_ATTEMPTS = 5; + /** * Max time (in millis) the wake lock will be held for when background sync is happening */ diff --git a/src/com/fsck/k9/controller/MessagingController.java b/src/com/fsck/k9/controller/MessagingController.java index 8b96d2946..033f22f69 100644 --- a/src/com/fsck/k9/controller/MessagingController.java +++ b/src/com/fsck/k9/controller/MessagingController.java @@ -3011,6 +3011,14 @@ public class MessagingController implements Runnable { if (K9.DEBUG) Log.i(K9.LOG_TAG, "Send count for message " + message.getUid() + " is " + count.get()); + if (count.incrementAndGet() > K9.MAX_SEND_ATTEMPTS) { + Log.e(K9.LOG_TAG, "Send count for message " + message.getUid() + " can't be delivered after "+ K9.MAX_SEND_ATTEMPTS + " attempts. Giving up until the user restarts the device"); + notifySendTempFailed(account, new MessagingException(message.getSubject())); + continue; + } + + + localFolder.fetch(new Message[] { message }, fp, null); try { message.setFlag(Flag.X_SEND_IN_PROGRESS, true); From daf04c2a9c36e02bd08d4fb91fb3831f506bd2a2 Mon Sep 17 00:00:00 2001 From: Jesse Vincent Date: Wed, 9 Mar 2011 22:43:36 -0500 Subject: [PATCH 020/310] When showing the root cause of a controller failure, show a better message if the exception wasn't generated internally --- src/com/fsck/k9/controller/MessagingController.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/com/fsck/k9/controller/MessagingController.java b/src/com/fsck/k9/controller/MessagingController.java index 033f22f69..5a52f30b1 100644 --- a/src/com/fsck/k9/controller/MessagingController.java +++ b/src/com/fsck/k9/controller/MessagingController.java @@ -1787,7 +1787,11 @@ public class MessagingController implements Runnable { rootCause = nextCause; } } while (nextCause != null); - return rootCause.getMessage(); + if (rootCause instanceof MessagingException) { + return rootCause.getMessage(); + } else { + return rootCause.toString(); + } } private void queuePendingCommand(Account account, PendingCommand command) { From a8440032e963079a2859d5783241d3eaf6435455 Mon Sep 17 00:00:00 2001 From: danapple Date: Wed, 9 Mar 2011 23:04:05 -0600 Subject: [PATCH 021/310] Fixes Issue 3102 in cooperation with vincent...@gmail.com Reset service enablement and MailService scheduling whenever a storage medium is mounted or unmounted. --- src/com/fsck/k9/K9.java | 6 +----- src/com/fsck/k9/mail/store/StorageManager.java | 4 +++- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/com/fsck/k9/K9.java b/src/com/fsck/k9/K9.java index 88de54e93..8b9611f6e 100644 --- a/src/com/fsck/k9/K9.java +++ b/src/com/fsck/k9/K9.java @@ -328,11 +328,7 @@ public class K9 extends Application { } - public static void setServicesEnabled(Context context, Integer wakeLockId) { - setServicesEnabled(context, Preferences.getPreferences(context).getAvailableAccounts().size() > 0, wakeLockId); - } - - public static void setServicesEnabled(Context context, boolean enabled, Integer wakeLockId) { + private static void setServicesEnabled(Context context, boolean enabled, Integer wakeLockId) { PackageManager pm = context.getPackageManager(); diff --git a/src/com/fsck/k9/mail/store/StorageManager.java b/src/com/fsck/k9/mail/store/StorageManager.java index 9c52b7114..ab861ecb8 100644 --- a/src/com/fsck/k9/mail/store/StorageManager.java +++ b/src/com/fsck/k9/mail/store/StorageManager.java @@ -659,6 +659,8 @@ public class StorageManager { sync.writeLock.lock(); sync.unmounting = false; sync.writeLock.unlock(); + + K9.setServicesEnabled(K9.app); } /** @@ -684,7 +686,7 @@ public class StorageManager { } // XXX we should reset mail service ONLY if there are accounts using the storage (this is not done in a regular listener because it has to be invoked afterward) - MailService.actionReset(mApplication, null); + K9.setServicesEnabled(K9.app); } /** From 76fafcc8169de1d1a6cf9e49f9e61c5219864e8e Mon Sep 17 00:00:00 2001 From: cketti Date: Sun, 13 Mar 2011 21:26:43 +0100 Subject: [PATCH 022/310] Updated swedish translation (daniel.malmgren.DM) --- res/values-sv/strings.xml | 124 +++++++++++++++++++------------------- 1 file changed, 62 insertions(+), 62 deletions(-) diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml index ff5344ced..4420b1153 100644 --- a/res/values-sv/strings.xml +++ b/res/values-sv/strings.xml @@ -3,14 +3,14 @@ K-9 E-post K-9 E-post BETA Google, The K-9 Dog Walkers. - - + Copyright 2008-%s The K-9 Dog Walkers. Vissa delar Copyright 2006-%s the Android Open Source Project. + Licensierat under Apache-licensen, version 2.0. Upphovsmän: %s http://code.google.com/p/k9mail/wiki/ReleaseNotes Revisionsinformation: %s http://code.google.com/p/k9mail/ - - + Vi använder följande tredjepartsbibliotek: %s + Emoji-ikoner: %s Läs bilagor Tillåter denna applikation att läsa bifogade filer. @@ -42,15 +42,15 @@ \u0020%s/%s \u0020(Nästa kontroll @ %s) - + \u0020(Synk avaktiverat) Nästa - + Föregående OK Avbryt Skicka - + Skicka igen Markera Avmarkera Svara @@ -118,7 +118,7 @@ Dumpa inställningar Töm papperskorg Utplåna - + Rensa lokalt lagrade meddelanden Välj sortering Omvänd sortering Om @@ -128,7 +128,7 @@ Mappinställningar (Inget ämne) - + Inget datum Ingen avsändare Kontrollerar (Kontrollerar %s%s) @@ -260,7 +260,7 @@ Välkommen till installationen av K-9 E-post. K-9 är en e-postklient med öppen Meddelandetext -------- Originalmeddelande -------- Ämne: - + Skickat: Från: Till: CC: @@ -324,14 +324,14 @@ Välkommen till installationen av K-9 E-post. K-9 är en e-postklient med öppen Visa alltid checkboxar för flerval Touch-vänlig vy Rymligare listobjekt med förhandsgranskningar - - - - - - - - + Förhandsgranska rader + Visa korrespondensnamn + Visa namn på korrespondens hellre än e-post-adresser + Visa kontaktnamn + Använd avsändarnamn ifrån kontakter när tillgängligt + Färglägg kontakter + Färglägg inte namn i kontaktlistan + Färglägg namn i kontaktlistan Teckensnitt med fast bredd Använd ett teckensnitt med fast bredd för att visa brev med enbart text @@ -349,10 +349,10 @@ Välkommen till installationen av K-9 E-post. K-9 är en e-postklient med öppen Visa inte e-postens ämnen i notifieringsytan när systemet är låst - - - - + Tyst tid + Avaktivera ringsignaler, vibration och blinkande på natten + Tyst tid börjar + Tyst tid slutar Konfigurera ett nytt konto @@ -369,8 +369,8 @@ Välkommen till installationen av K-9 E-post. K-9 är en e-postklient med öppen Hämtar kontoinformation\u2026 Kontrollerar inställningar för inkommande server\u2026 Kontrollerar inställningar för utgående server\u2026 - - + Authentiserar\u2026 + Hämtar kontoinställningar\u2026 Avslutar\u2026 Avbryter\u2026 @@ -416,10 +416,10 @@ Välkommen till installationen av K-9 E-post. K-9 är en e-postklient med öppen Nerladdning av e-post-huvuden Spara alla huvuden lokalt - - - - + Extern lagring (SD-kort) + Vanlig intern lagring + %1$s ytterligare intern lagring + Lagringsplacering Utplåna e-post Direkt efter radering eller flytt @@ -516,7 +516,7 @@ Välkommen till installationen av K-9 E-post. K-9 är en e-postklient med öppen 250 brev 500 brev 1000 brev - + alla brev Kan inte kopiera eller flytta ett brev som inte är synkroniserat med servern @@ -528,7 +528,7 @@ Välkommen till installationen av K-9 E-post. K-9 är en e-postklient med öppen Redigera detaljer Fortsätt - + Advancerat Allmänna inställningar Standardkonto Standardkonto @@ -543,8 +543,8 @@ Välkommen till installationen av K-9 E-post. K-9 är en e-postklient med öppen Notifiera även för e-post som jag själv har skickat Notifieringar öppnar oläst e-post Letar efter oläst e-post när notifieringen öppnas - - + Visa antal olästa + Visar antalet olästa brev i notifieringsytan. Scrolla navigationsknappar Aldrig @@ -565,16 +565,16 @@ Välkommen till installationen av K-9 E-post. K-9 är en e-postklient med öppen Svar efter citat Vid svar på e-post placeras originalmeddelandet ovanför ditt svar. - - - + Brevformat + Ren text (bilder och formatering tas bort) + HTML (bilder och formatering behålls) - - - + Citationsstil vid svar + Prefix (som Gmail, Pine) + Header (som Outlook, Yahoo!, Hotmail) - - + Allmänna inställningar + Utseende Mappsynkronisering Mappar Lista e-post @@ -590,7 +590,7 @@ Välkommen till installationen av K-9 E-post. K-9 är en e-postklient med öppen Frekvens för att kontrollera mappar Frekvens för kontroll av andra klass - + Lagring Kontofärg @@ -702,8 +702,8 @@ Välkommen till installationen av K-9 E-post. K-9 är en e-postklient med öppen mönster 5 Antal vibrationer Ringsignal för ny e-post - - + Blinka LED + Blinka LED när det kommer ny e-post Serverinställningar @@ -751,7 +751,7 @@ Välkommen till installationen av K-9 E-post. K-9 är en e-postklient med öppen Välj identitet Välj identitet Välj konto/identitet - + Skicka som Gå till Kontoinställningar -> Hantera identiteter för att skapa en identitet @@ -785,7 +785,7 @@ Välkommen till installationen av K-9 E-post. K-9 är en e-postklient med öppen Kontot \"%s\" kommer att raderas från K-9 E-post. Återskapa konto - All data för \"%s\" kommer att raderas ifrån K-9 E-post, men kontoinställningar behålls. + Alla meddelanden, bifogade filer, mappar och inställningar mapp för \"%s\" kommer att raderas ifrån K-9 E-post, men kontoinställningar behålls. Rensa konto All e-post i \"%s\" kommer att raderas ifrån K-9 E-post, men kontoinställningar behålls. @@ -795,7 +795,7 @@ Välkommen till installationen av K-9 E-post. K-9 är en e-postklient med öppen med din korrekta adress och lösenord så kanske du inte har ett betalt \"Plus\"-konto. Vänligen starta webbläsaren för att komma åt dessa konton. - + Om du vill använda POP3 med denna leverantör måste du välja att tillåta POP3 på inställningssidan för Yahoo!. Okänt Certifikat Acceptera nyckel @@ -831,22 +831,22 @@ Välkommen till installationen av K-9 E-post. K-9 är en e-postklient med öppen Efter citerad text Mörk Ljus - - - Debugging - - - + Utseende + Globala inställningar + Avlusning + Sekretess + Nätverk + Interaktion Kontolista E-post-listor Brev Tema Språk - - - - + En-kolumns-layout + Formatera om HTML-brev för mindre skärmar + Kontroll av zoom + Aktivera zoom-widgets eller nyp-zoom om din enhet stödjer det @@ -900,8 +900,8 @@ Välkommen till installationen av K-9 E-post. K-9 är en e-postklient med öppen Gester Acceptera gestkontroll - - + Komprimera vyer + Tryck ihop vyer för att kunna visa mer på varje sida Volym upp/ner-navigering Växla mellan val med hjälp av volymkontrollerna @@ -961,7 +961,7 @@ Välkommen till installationen av K-9 E-post. K-9 är en e-postklient med öppen Ämne Avsändare Datum - + Förhandsvisning E-post-vy Avsändare @@ -1027,7 +1027,7 @@ Välkommen till installationen av K-9 E-post. K-9 är en e-postklient med öppen Debug-loggning till Androids loggsystem är aktiverat - - - + » + + Kan inte ansluta. From cc6803b9575bd166598dc5fad013755850f4b61b Mon Sep 17 00:00:00 2001 From: cketti Date: Sun, 13 Mar 2011 21:33:44 +0100 Subject: [PATCH 023/310] Updated catalan translation (dvbotet) --- res/values-ca/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml index 73aec9611..8fa4a243d 100644 --- a/res/values-ca/strings.xml +++ b/res/values-ca/strings.xml @@ -10,7 +10,7 @@ Informació de la revisió: %s http://code.google.com/p/k9mail/ Fem servir les següents biblioteques de tercers: %s - + Icones Emoji: %s Llegeix adjunts del correu Permet a aquesta aplicació que llegeixi els adjunts del correu. @@ -920,8 +920,8 @@ Benvingut a la configuració del K-9. El K-9 és un client de codi obert per An Compta resultats cerca Apaga-ho perquè es mostri més ràpid - - + Amaga comptes especials + Amaga la bústia d'entrada unificada i tots els missatges dels comptes %s %s - Senyalat From c7e29645caa9e77f3bb083b653ac9b89732c932f Mon Sep 17 00:00:00 2001 From: cketti Date: Sun, 13 Mar 2011 21:41:05 +0100 Subject: [PATCH 024/310] Apostrophe fix for resources (again...) --- res/values-ca/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml index 8fa4a243d..2212d41e7 100644 --- a/res/values-ca/strings.xml +++ b/res/values-ca/strings.xml @@ -921,7 +921,7 @@ Benvingut a la configuració del K-9. El K-9 és un client de codi obert per An Apaga-ho perquè es mostri més ràpid Amaga comptes especials - Amaga la bústia d'entrada unificada i tots els missatges dels comptes + Amaga la bústia d\'entrada unificada i tots els missatges dels comptes %s %s - Senyalat From a753f1ce5c5f008d7257b0ce608322a5b3d75370 Mon Sep 17 00:00:00 2001 From: cketti Date: Mon, 14 Mar 2011 00:35:03 +0100 Subject: [PATCH 025/310] Removed unused import --- src/com/fsck/k9/mail/store/StorageManager.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/com/fsck/k9/mail/store/StorageManager.java b/src/com/fsck/k9/mail/store/StorageManager.java index ab861ecb8..6537e637c 100644 --- a/src/com/fsck/k9/mail/store/StorageManager.java +++ b/src/com/fsck/k9/mail/store/StorageManager.java @@ -20,7 +20,6 @@ import android.util.Log; import com.fsck.k9.K9; import com.fsck.k9.R; -import com.fsck.k9.service.MailService; /** * Manager for different {@link StorageProvider} -classes that abstract access From 0be4f95430f771918b079f465b053ed2d8eb595d Mon Sep 17 00:00:00 2001 From: mwolschon Date: Mon, 14 Mar 2011 13:37:22 +0100 Subject: [PATCH 026/310] update issue 3130 "Allow filtering in FolderList" --- src/com/fsck/k9/activity/FolderList.java | 94 +++++++++++++++++-- .../fsck/k9/activity/FolderListFilter.java | 33 ++++--- 2 files changed, 105 insertions(+), 22 deletions(-) diff --git a/src/com/fsck/k9/activity/FolderList.java b/src/com/fsck/k9/activity/FolderList.java index 55fc93076..d64d09530 100644 --- a/src/com/fsck/k9/activity/FolderList.java +++ b/src/com/fsck/k9/activity/FolderList.java @@ -18,6 +18,7 @@ import android.view.View.OnClickListener; import android.widget.*; import android.widget.AdapterView.AdapterContextMenuInfo; import android.widget.AdapterView.OnItemClickListener; + import com.fsck.k9.*; import com.fsck.k9.Account.FolderMode; import com.fsck.k9.activity.FolderInfoHolder; @@ -93,6 +94,7 @@ public class FolderList extends K9ListActivity { public void run() { mAdapter.mFolders.clear(); mAdapter.mFolders.addAll(newFolders); + mAdapter.mFilteredFolders = mAdapter.mFolders; mHandler.dataChanged(); } }); @@ -245,7 +247,7 @@ public class FolderList extends K9ListActivity { mListView.setScrollingCacheEnabled(true); mListView.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView parent, View view, int position, long id) { - onOpenFolder(((FolderInfoHolder)mAdapter.getItem(id)).name); + onOpenFolder(((FolderInfoHolder)mAdapter.getItem(position)).name); } }); registerForContextMenu(mListView); @@ -299,6 +301,7 @@ public class FolderList extends K9ListActivity { restorePreviousData(); setListAdapter(mAdapter); + getListView().setTextFilterEnabled(mAdapter.getFilter() != null); // should never be false but better safe then sorry setTitle(mAccount.getDescription()); @@ -310,6 +313,7 @@ public class FolderList extends K9ListActivity { if (previousData != null) { mAdapter.mFolders = (ArrayList) previousData; + mAdapter.mFilteredFolders = Collections.unmodifiableList(mAdapter.mFolders); } } @@ -714,24 +718,26 @@ public class FolderList extends K9ListActivity { menu.setHeaderTitle(folder.displayName); } - class FolderListAdapter extends BaseAdapter { + class FolderListAdapter extends BaseAdapter implements Filterable { private ArrayList mFolders = new ArrayList(); + private List mFilteredFolders = Collections.unmodifiableList(mFolders); + private Filter mFilter = new FolderListFilter(); public Object getItem(long position) { return getItem((int)position); } public Object getItem(int position) { - return mFolders.get(position); + return mFilteredFolders.get(position); } public long getItemId(int position) { - return position ; + return mFilteredFolders.get(position).folder.getName().hashCode() ; } public int getCount() { - return mFolders.size(); + return mFilteredFolders.size(); } @Override @@ -1002,7 +1008,7 @@ public class FolderList extends K9ListActivity { public int getFolderIndex(String folder) { FolderInfoHolder searchHolder = new FolderInfoHolder(); searchHolder.name = folder; - return mFolders.indexOf(searchHolder); + return mFilteredFolders.indexOf(searchHolder); } public FolderInfoHolder getFolder(String folder) { @@ -1022,7 +1028,8 @@ public class FolderList extends K9ListActivity { if (position <= getCount()) { return getItemView(position, convertView, parent); } else { - // XXX TODO - should catch an exception here + Log.e(K9.LOG_TAG, "getView with illegal positon=" + position + + " called! count is only " + getCount()); return null; } } @@ -1122,13 +1129,84 @@ public class FolderList extends K9ListActivity { @Override public boolean hasStableIds() { - return false; + return true; } public boolean isItemSelectable(int position) { return true; } + public void setFilter(final Filter filter) { + this.mFilter = filter; + } + + public Filter getFilter() { + return mFilter; + } + + /** + * Filter to search for occurences of the search-expression in any place of the + * folder-name instead of doing jsut a prefix-search. + * + * @author Marcus@Wolschon.biz + */ + public class FolderListFilter extends Filter { + + /** + * Do the actual search. + * {@inheritDoc} + * + * @see #publishResults(CharSequence, FilterResults) + */ + @Override + protected FilterResults performFiltering(CharSequence searchTerm) { + FilterResults results = new FilterResults(); + + if ((searchTerm == null) || (searchTerm.length() == 0)) { + ArrayList list = new ArrayList(mFolders); + results.values = list; + results.count = list.size(); + } else { + final String searchTermString = searchTerm.toString().toLowerCase(); + final String[] words = searchTermString.split(" "); + final int wordCount = words.length; + + final ArrayList newValues = new ArrayList(); + + for (final FolderInfoHolder value : mFolders) { + if (value.displayName == null) { + continue; + } + final String valueText = value.displayName.toLowerCase(); + + for (int k = 0; k < wordCount; k++) { + if (valueText.contains(words[k])) { + newValues.add(value); + break; + } + } + } + + results.values = newValues; + results.count = newValues.size(); + } + + return results; + } + + /** + * Publish the results to the user-interface. + * {@inheritDoc} + */ + @SuppressWarnings("unchecked") + @Override + protected void publishResults(CharSequence constraint, FilterResults results) { + //noinspection unchecked + mFilteredFolders = Collections.unmodifiableList((ArrayList) results.values); + // Send notification that the data set changed now + notifyDataSetChanged(); + } + } } static class FolderViewHolder { diff --git a/src/com/fsck/k9/activity/FolderListFilter.java b/src/com/fsck/k9/activity/FolderListFilter.java index 364af8879..172c2f33d 100644 --- a/src/com/fsck/k9/activity/FolderListFilter.java +++ b/src/com/fsck/k9/activity/FolderListFilter.java @@ -99,22 +99,27 @@ public class FolderListFilter extends Filter { protected void publishResults(CharSequence constraint, FilterResults results) { // Don't notify for every change mFolders.setNotifyOnChange(false); + try { - //noinspection unchecked - final List folders = (List) results.values; - mFolders.clear(); - if (folders != null) { - for (T folder : folders) { - if (folder != null) { - mFolders.add(folder); - } - } - } else { - Log.w(K9.LOG_TAG, "FolderListFilter.publishResults - null search-result "); + //noinspection unchecked + final List folders = (List) results.values; + mFolders.clear(); + if (folders != null) { + for (T folder : folders) { + if (folder != null) { + mFolders.add(folder); + } + } + } else { + Log.w(K9.LOG_TAG, "FolderListFilter.publishResults - null search-result "); + } + + // Send notification that the data set changed now + mFolders.notifyDataSetChanged(); + } finally { + // restore notification status + mFolders.setNotifyOnChange(true); } - - // Send notification that the data set changed now - mFolders.notifyDataSetChanged(); } public void invalidate() { From e2a7a55cf320a8e5e3e26d10a868ab7012f68148 Mon Sep 17 00:00:00 2001 From: steiler Date: Sat, 12 Mar 2011 01:16:43 +0100 Subject: [PATCH 027/310] Issue 3104: Can't bcc to more than 1 address --- src/com/fsck/k9/activity/MessageCompose.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/com/fsck/k9/activity/MessageCompose.java b/src/com/fsck/k9/activity/MessageCompose.java index 3cb514e3f..f971deae3 100644 --- a/src/com/fsck/k9/activity/MessageCompose.java +++ b/src/com/fsck/k9/activity/MessageCompose.java @@ -504,7 +504,10 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc if (!ACTION_EDIT_DRAFT.equals(action)) { String bccAddress = mAccount.getAlwaysBcc(); if ((bccAddress != null) && !("".equals(bccAddress))) { - addAddress(mBccView, new Address(bccAddress, "")); + String[] bccAddresses = bccAddress.split(","); + for (String oneBccAddress : bccAddresses) { + addAddress(mBccView, new Address(oneBccAddress, "")); + } } } From 330737c4c6553bbfa84ea97e90722773747ce9bb Mon Sep 17 00:00:00 2001 From: cketti Date: Tue, 15 Mar 2011 08:34:38 +0100 Subject: [PATCH 028/310] Fix length-check of BODYSTRUCTURE reply Fixes issue 3116 --- src/com/fsck/k9/mail/store/ImapStore.java | 25 ++++++++++++++--------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/com/fsck/k9/mail/store/ImapStore.java b/src/com/fsck/k9/mail/store/ImapStore.java index 9ecc58298..a385c52f2 100644 --- a/src/com/fsck/k9/mail/store/ImapStore.java +++ b/src/com/fsck/k9/mail/store/ImapStore.java @@ -1453,16 +1453,21 @@ public class ImapStore extends Store { */ /* - body type - body subtype - body parameter parenthesized list - body id - body description - body encoding - body size + * 0| 0 body type + * 1| 1 body subtype + * 2| 2 body parameter parenthesized list + * 3| 3 body id (unused) + * 4| 4 body description (unused) + * 5| 5 body encoding + * 6| 6 body size + * -| 7 text lines (only for type TEXT, unused) + * Extensions (optional): + * 7| 8 body MD5 (unused) + * 8| 9 body disposition + * 9|10 body language (unused) + * 10|11 body location (unused) */ - String type = bs.getString(0); String subType = bs.getString(1); String mimeType = (type + "/" + subType).toLowerCase(); @@ -1508,11 +1513,11 @@ public class ImapStore extends Store { // Extension items ImapList bodyDisposition = null; if (("text".equalsIgnoreCase(type)) - && (bs.size() > 8) + && (bs.size() > 9) && (bs.get(9) instanceof ImapList)) { bodyDisposition = bs.getList(9); } else if (!("text".equalsIgnoreCase(type)) - && (bs.size() > 7) + && (bs.size() > 8) && (bs.get(8) instanceof ImapList)) { bodyDisposition = bs.getList(8); } From 0118f64f81e89078ccf6aa9abda8111eaca9adff Mon Sep 17 00:00:00 2001 From: Jesse Vincent Date: Wed, 16 Mar 2011 17:59:25 -0400 Subject: [PATCH 029/310] 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. Run it as you would run ant sh tools/build-beta debug --- tools/build-beta | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/tools/build-beta b/tools/build-beta index 20a795828..129f1a028 100644 --- a/tools/build-beta +++ b/tools/build-beta @@ -1,12 +1,16 @@ -perl -pi -e's|\@string/app_name|\@string/beta_app_name|g' AndroidManifest.xml -perl -pi -e's|com/fsck/k9/R.java|com/fsck/k9beta/R.java|g' build.xml -find src/com/fsck -type f |xargs -n 1 perl -pi -e's|com.\fsck\.k9|com.fsck.k9beta|g' -mv src/com/fsck/k9 src/com/fsck/k9beta -perl -pi -e's|K9|K9-BETA|g' build.xml +BETA_PACKAGE=com.fsck.k9beta +BETA_PATH=com/fsck/k9beta +BETA_PROJ_NAME="K9 Beta" +perl -pi -e"s|\@string/app_name|\@string/beta_app_name|g" AndroidManifest.xml +perl -pi -e"s|com/fsck/k9/R.java|$BETA_PATH/R.java|g" build.xml +find src/com/fsck res -type f |xargs -n 1 perl -pi -e"s/com.fsck.k9(?=\W)/$BETA_PACKAGE/g" +perl -pi -e"s|com.fsck.k9|$BETA_PACKAGE|g" AndroidManifest.xml +mv src/com/fsck/k9 src/$BETA_PATH +perl -pi -e"s|K9|$BETA_PROJ_NAME|g" build.xml ant $@ -#mv src/com/fsck/k9beta src/com/fsck/k9 -#perl -pi -e's|K9-BETA|K9|g' build.xml -#perl -pi -e's|com\.fsck\.k9beta|com.fsck.k9|g' build.xml AndroidManifest.xml src/com/fsck/k9/provider/AttachmentProvider.java -#perl -pi -e's|com/fsck/k9beta/R.java|com/fsck/k9/R.java|g' build.xml -#perl -pi -e's|\@string/beta_app_name|\@string/app_name|g' AndroidManifest.xml -#find src/com/fsck -type f |xargs -n 1 perl -pi -e's|com.fsck.k9beta|com.fsck.k9|' +mv src/$BETA_PATH src/com/fsck/k9 +perl -pi -e"s|$BETA_PACKAGE|com.fsck.k9|g" AndroidManifest.xml +perl -pi -e"s|$BETA_PATH/R.java|com/fsck.k9/R.java|g" build.xml +find src/com/fsck res -type f |xargs -n 1 perl -pi -e"s/$BETA_PACKAGE(?=\W)/com.fsck.k9/g" +perl -pi -e"s|$BETA_PROJ_NAME|K9|g" build.xml +perl -pi -e"s|\@string/beta_app_name|\@string/app_name|g" AndroidManifest.xml From 6c37741e630f12df5c64c120cc481f9a024518eb Mon Sep 17 00:00:00 2001 From: HIRANO Takahito Date: Sat, 19 Mar 2011 18:05:07 +0900 Subject: [PATCH 030/310] Could not handle iso-2022-jp streams which contain continuous escape sequences. Signed-off-by: HIRANO Takahito --- .../fsck/k9/mail/internet/Iso2022JpToShiftJisInputStream.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/fsck/k9/mail/internet/Iso2022JpToShiftJisInputStream.java b/src/com/fsck/k9/mail/internet/Iso2022JpToShiftJisInputStream.java index 804a9434b..0b754a40f 100644 --- a/src/com/fsck/k9/mail/internet/Iso2022JpToShiftJisInputStream.java +++ b/src/com/fsck/k9/mail/internet/Iso2022JpToShiftJisInputStream.java @@ -26,7 +26,7 @@ class Iso2022JpToShiftJisInputStream extends InputStream { } int in1 = mIn.read(); - if (in1 == 0x1b) { + while (in1 == 0x1b) { in1 = mIn.read(); if (in1 == '(') { in1 = mIn.read(); From 90fc3d2c8d0e0808e7f8233ca867a7a101fee7dd Mon Sep 17 00:00:00 2001 From: danapple Date: Sat, 19 Mar 2011 12:36:58 -0500 Subject: [PATCH 031/310] Grey out unavailable accounts. Display a short toast when attempting to open an unavailable account. Conflicts: res/values/strings.xml src/com/fsck/k9/activity/Accounts.java --- res/layout/accounts_item.xml | 6 ++-- res/values/strings.xml | 3 ++ src/com/fsck/k9/AccountStats.java | 1 + src/com/fsck/k9/activity/Accounts.java | 46 ++++++++++++++++---------- 4 files changed, 36 insertions(+), 20 deletions(-) diff --git a/res/layout/accounts_item.xml b/res/layout/accounts_item.xml index b25c398a8..8c76ac48e 100644 --- a/res/layout/accounts_item.xml +++ b/res/layout/accounts_item.xml @@ -9,7 +9,8 @@ android:paddingRight="6dip" android:paddingBottom="2dip" android:descendantFocusability="blocksDescendants" - android:gravity="center_vertical" > + android:gravity="center_vertical" + android:background="#ccc" > + android:layout_alignParentLeft="true" + android:background="@android:color/transparent" /> » Unable to connect. + + Account \"%s\" is unavailable; check storage + diff --git a/src/com/fsck/k9/AccountStats.java b/src/com/fsck/k9/AccountStats.java index d69685e66..146a8c94b 100644 --- a/src/com/fsck/k9/AccountStats.java +++ b/src/com/fsck/k9/AccountStats.java @@ -10,4 +10,5 @@ public class AccountStats implements Serializable { public long size = -1; public int unreadMessageCount = 0; public int flaggedMessageCount = 0; + public boolean available = true; } diff --git a/src/com/fsck/k9/activity/Accounts.java b/src/com/fsck/k9/activity/Accounts.java index a3c8c6430..43a0f2f61 100644 --- a/src/com/fsck/k9/activity/Accounts.java +++ b/src/com/fsck/k9/activity/Accounts.java @@ -27,6 +27,7 @@ import com.fsck.k9.activity.setup.Prefs; import com.fsck.k9.controller.MessagingController; import com.fsck.k9.controller.MessagingListener; import com.fsck.k9.mail.Flag; +import com.fsck.k9.mail.store.StorageManager; import com.fsck.k9.view.ColorChip; import java.util.*; @@ -158,6 +159,7 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC } if (stats == null) { stats = new AccountStats(); // empty stats for unavailable accounts + stats.available = false; } accountStats.put(account.getUuid(), stats); if (account instanceof Account) { @@ -291,18 +293,37 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC outState.putSerializable(ACCOUNT_STATS, accountStats); } + private StorageManager.StorageListener storageListener = new StorageManager.StorageListener() + { + + @Override + public void onUnmount(String providerId) + { + refresh(); + } + + @Override + public void onMount(String providerId) + { + refresh(); + } + }; + @Override public void onResume() { super.onResume(); refresh(); MessagingController.getInstance(getApplication()).addListener(mListener); + StorageManager.getInstance(getApplication()).addListener(storageListener); } @Override public void onPause() { super.onPause(); MessagingController.getInstance(getApplication()).removeListener(mListener); + StorageManager.getInstance(getApplication()).removeListener(storageListener); + } private void refresh() { @@ -408,6 +429,10 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC } else { Account realAccount = (Account)account; if (!realAccount.isAvailable(this)) { + String toastText = getString(R.string.account_unavailable, account.getDescription()); + Toast toast = Toast.makeText(getApplication(), toastText, Toast.LENGTH_SHORT); + toast.show(); + Log.i(K9.LOG_TAG, "refusing to open account that is not available"); return false; } @@ -780,24 +805,6 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC } AccountStats stats = accountStats.get(account.getUuid()); - /* - // 20101024/fiouzy: the following code throws NullPointerException because Background is null - - // display unavailable accounts translucent - if (account instanceof Account) { - Account realAccount = (Account) account; - if (realAccount.isAvailable(Accounts.this)) { - holder.email.getBackground().setAlpha(255); - holder.description.getBackground().setAlpha(255); - } else { - holder.email.getBackground().setAlpha(127); - holder.description.getBackground().setAlpha(127); - } - } else { - holder.email.getBackground().setAlpha(255); - holder.description.getBackground().setAlpha(255); - } - */ if (stats != null && account instanceof Account && stats.size >= 0) { holder.email.setText(SizeFormatter.formatSize(Accounts.this, stats.size)); holder.email.setVisibility(View.VISIBLE); @@ -828,6 +835,8 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC holder.flaggedMessageCount.setOnClickListener(new AccountClickListener(account, SearchModifier.FLAGGED)); holder.newMessageCount.setOnClickListener(new AccountClickListener(account, SearchModifier.UNREAD)); + + view.getBackground().setAlpha(stats.available ? 0 : 127); holder.activeIcons.setOnClickListener(new OnClickListener() { public void onClick(View v) { @@ -840,6 +849,7 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC } else { holder.newMessageCount.setVisibility(View.GONE); holder.flaggedMessageCount.setVisibility(View.GONE); + view.getBackground().setAlpha(0); } if (account instanceof Account) { Account realAccount = (Account)account; From 3f45df2bd4a8ac053e6fbf878bc08058513f6c46 Mon Sep 17 00:00:00 2001 From: danapple Date: Sun, 20 Mar 2011 15:37:51 -0500 Subject: [PATCH 032/310] Astyle recent changes for StorageManager listener. --- src/com/fsck/k9/activity/Accounts.java | 40 ++++++++++++-------------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/src/com/fsck/k9/activity/Accounts.java b/src/com/fsck/k9/activity/Accounts.java index 43a0f2f61..9746025ff 100644 --- a/src/com/fsck/k9/activity/Accounts.java +++ b/src/com/fsck/k9/activity/Accounts.java @@ -293,22 +293,19 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC outState.putSerializable(ACCOUNT_STATS, accountStats); } - private StorageManager.StorageListener storageListener = new StorageManager.StorageListener() - { - - @Override - public void onUnmount(String providerId) - { - refresh(); - } - - @Override - public void onMount(String providerId) - { - refresh(); - } - }; - + private StorageManager.StorageListener storageListener = new StorageManager.StorageListener() { + + @Override + public void onUnmount(String providerId) { + refresh(); + } + + @Override + public void onMount(String providerId) { + refresh(); + } + }; + @Override public void onResume() { super.onResume(); @@ -323,7 +320,7 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC super.onPause(); MessagingController.getInstance(getApplication()).removeListener(mListener); StorageManager.getInstance(getApplication()).removeListener(storageListener); - + } private void refresh() { @@ -331,12 +328,11 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC List newAccounts; if (!K9.isHideSpecialAccounts() - && accounts.length > 0) { + && accounts.length > 0) { newAccounts = new ArrayList(accounts.length + 2); newAccounts.add(integratedInboxAccount); newAccounts.add(unreadAccount); - } - else { + } else { newAccounts = new ArrayList(accounts.length); } @@ -432,7 +428,7 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC String toastText = getString(R.string.account_unavailable, account.getDescription()); Toast toast = Toast.makeText(getApplication(), toastText, Toast.LENGTH_SHORT); toast.show(); - + Log.i(K9.LOG_TAG, "refusing to open account that is not available"); return false; } @@ -835,7 +831,7 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC holder.flaggedMessageCount.setOnClickListener(new AccountClickListener(account, SearchModifier.FLAGGED)); holder.newMessageCount.setOnClickListener(new AccountClickListener(account, SearchModifier.UNREAD)); - + view.getBackground().setAlpha(stats.available ? 0 : 127); holder.activeIcons.setOnClickListener(new OnClickListener() { From 0b7280b212080d0aff6e455f518c2cb2b423cc6e Mon Sep 17 00:00:00 2001 From: mwolschon Date: Mon, 21 Mar 2011 12:31:57 +0100 Subject: [PATCH 033/310] added German translation for danapple's commit "Display a short toast when attempting to open an unavailable account." --- res/values-de/strings.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index 727dc12bb..d4985ea4c 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -1027,4 +1027,7 @@ Willkommen zum \"K-9 Mail\"-Setup. K-9 ist eine quelloffene E-Mail-Anwendung fü » Verbindungsfehler. + + Konto \"%s\" ist nicht verfügbar; Bitte SD-Karte prüfen. + From 81644d0f4b9ad8e7cdad656105d61cacfba06a2e Mon Sep 17 00:00:00 2001 From: Jesse Vincent Date: Tue, 22 Mar 2011 18:06:11 +1100 Subject: [PATCH 034/310] Initial support for a button to look up contacts in a contact provider --- res/drawable-hdpi/ic_button_contacts.png | Bin 0 -> 2180 bytes res/drawable/ic_button_contacts.png | Bin 0 -> 4020 bytes res/layout/message_compose.xml | 119 +++++++++++++------ res/values/strings.xml | 1 + src/com/fsck/k9/activity/MessageCompose.java | 100 +++++++++++++--- src/com/fsck/k9/helper/Contacts.java | 39 ++++++ src/com/fsck/k9/helper/ContactsSdk3_4.java | 47 ++++++++ src/com/fsck/k9/helper/ContactsSdk5.java | 39 ++++++ 8 files changed, 296 insertions(+), 49 deletions(-) create mode 100644 res/drawable-hdpi/ic_button_contacts.png create mode 100644 res/drawable/ic_button_contacts.png diff --git a/res/drawable-hdpi/ic_button_contacts.png b/res/drawable-hdpi/ic_button_contacts.png new file mode 100644 index 0000000000000000000000000000000000000000..2ad43e8702808c7bdc17c2c4420ae4b2e4e2efce GIT binary patch literal 2180 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 literal 0 HcmV?d00001 diff --git a/res/layout/message_compose.xml b/res/layout/message_compose.xml index 6139c4809..7d9120cde 100644 --- a/res/layout/message_compose.xml +++ b/res/layout/message_compose.xml @@ -31,44 +31,93 @@ android:layout_marginRight="6dip" android:textColor="@android:color/primary_text_light" android:textAppearance="?android:attr/textAppearanceMedium" /> - - - - + + + + - - + + + + + android:baselineAligned="true" + android:layout_marginLeft="6dip" + android:layout_marginRight="6dip" + android:layout_width="fill_parent"> + + + + %s wrote:\n\n Quoted text You must add at least one recipient. + No email address could be found. Some attachments were not downloaded. They will be downloaded automatically before this message is sent. Some attachments cannot be forwarded because they have not been downloaded. diff --git a/src/com/fsck/k9/activity/MessageCompose.java b/src/com/fsck/k9/activity/MessageCompose.java index f971deae3..d717cc0cf 100644 --- a/src/com/fsck/k9/activity/MessageCompose.java +++ b/src/com/fsck/k9/activity/MessageCompose.java @@ -115,6 +115,10 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc private static final int ACTIVITY_REQUEST_PICK_ATTACHMENT = 1; private static final int ACTIVITY_CHOOSE_IDENTITY = 2; private static final int ACTIVITY_CHOOSE_ACCOUNT = 3; + private static final int CONTACT_PICKER_TO = 4; + private static final int CONTACT_PICKER_CC = 5; + private static final int CONTACT_PICKER_BCC = 6; + /** * Regular expression to remove the first localized "Re:" prefix in subjects. @@ -129,6 +133,9 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc */ private Account mAccount; + + private Contacts mContacts; + /** * This identity's settings are used for message composition. * Note: This has to be an identity of the account {@link #mAccount}. @@ -156,6 +163,8 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc private TextView mFromView; + private LinearLayout mCcWrapper; + private LinearLayout mBccWrapper; private MultiAutoCompleteTextView mToView; private MultiAutoCompleteTextView mCcView; private MultiAutoCompleteTextView mBccView; @@ -175,6 +184,10 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc private TextView mCryptoSignatureUserId; private TextView mCryptoSignatureUserIdRest; + private ImageButton mAddToFromContacts; + private ImageButton mAddCcFromContacts; + private ImageButton mAddBccFromContacts; + private PgpData mPgpData = null; private String mReferences; @@ -354,16 +367,24 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc return; } + mContacts = Contacts.getInstance(MessageCompose.this); + mAddressAdapter = EmailAddressAdapter.getInstance(this); mAddressValidator = new EmailAddressValidator(); - mFromView = (TextView)findViewById(R.id.from); - mToView = (MultiAutoCompleteTextView)findViewById(R.id.to); - mCcView = (MultiAutoCompleteTextView)findViewById(R.id.cc); - mBccView = (MultiAutoCompleteTextView)findViewById(R.id.bcc); - mSubjectView = (EditText)findViewById(R.id.subject); + mFromView = (TextView) findViewById(R.id.from); + mToView = (MultiAutoCompleteTextView) findViewById(R.id.to); + mCcView = (MultiAutoCompleteTextView) findViewById(R.id.cc); + mBccView = (MultiAutoCompleteTextView) findViewById(R.id.bcc); + mSubjectView = (EditText) findViewById(R.id.subject); mSubjectView.getInputExtras(true).putBoolean("allowEmoji", true); + mAddToFromContacts = (ImageButton) findViewById(R.id.add_to); + mAddCcFromContacts = (ImageButton) findViewById(R.id.add_cc); + mAddBccFromContacts = (ImageButton) findViewById(R.id.add_bcc); + mCcWrapper = (LinearLayout) findViewById(R.id.cc_wrapper); + mBccWrapper = (LinearLayout) findViewById(R.id.bcc_wrapper); + EditText upperSignature = (EditText)findViewById(R.id.upper_signature); EditText lowerSignature = (EditText)findViewById(R.id.lower_signature); @@ -420,6 +441,28 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc mMessageContentView.addTextChangedListener(watcher); mQuotedText.addTextChangedListener(watcher); + /* Yes, there really are poeple who ship versions of android without a contact picker */ + if (mContacts.hasContactPicker()) { + mAddToFromContacts.setOnClickListener(new OnClickListener() { + @Override public void onClick(View v) { + doLaunchContactPicker(CONTACT_PICKER_TO); + } + }); + mAddCcFromContacts.setOnClickListener(new OnClickListener() { + @Override public void onClick(View v) { + doLaunchContactPicker(CONTACT_PICKER_CC); + } + }); + mAddBccFromContacts.setOnClickListener(new OnClickListener() { + @Override public void onClick(View v) { + doLaunchContactPicker(CONTACT_PICKER_BCC); + } + }); + } else { + mAddToFromContacts.setVisibility(View.GONE); + mAddCcFromContacts.setVisibility(View.GONE); + mAddBccFromContacts.setVisibility(View.GONE); + } /* * We set this to invisible by default. Other methods will turn it back on if it's * needed. @@ -780,9 +823,12 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc addAttachment(uri); } - mMessageFormat = (MessageFormat)savedInstanceState.getSerializable(STATE_KEY_MESSAGE_FORMAT); - mCcView.setVisibility(savedInstanceState.getBoolean(STATE_KEY_CC_SHOWN) ? View.VISIBLE : View.GONE); - mBccView.setVisibility(savedInstanceState.getBoolean(STATE_KEY_BCC_SHOWN) ? View.VISIBLE : View.GONE); + mMessageFormat = (MessageFormat) savedInstanceState + .getSerializable(STATE_KEY_MESSAGE_FORMAT); + mCcWrapper.setVisibility(savedInstanceState.getBoolean(STATE_KEY_CC_SHOWN) ? View.VISIBLE + : View.GONE); + mBccWrapper.setVisibility(savedInstanceState + .getBoolean(STATE_KEY_BCC_SHOWN) ? View.VISIBLE : View.GONE); if (mMessageFormat == MessageFormat.HTML) { mQuotedHtmlContent = (InsertableHtmlContent) savedInstanceState.getSerializable(STATE_KEY_HTML_QUOTE); mQuotedTextBar.setVisibility(savedInstanceState.getBoolean(STATE_KEY_QUOTED_TEXT_SHOWN) ? View.VISIBLE : View.GONE); @@ -1354,8 +1400,8 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc } private void onAddCcBcc() { - mCcView.setVisibility(View.VISIBLE); - mBccView.setVisibility(View.VISIBLE); + mCcWrapper.setVisibility(View.VISIBLE); + mBccWrapper.setVisibility(View.VISIBLE); } /** @@ -1483,10 +1529,37 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc break; case ACTIVITY_CHOOSE_ACCOUNT: onAccountChosen(data); + break; + case CONTACT_PICKER_TO: + case CONTACT_PICKER_CC: + case CONTACT_PICKER_BCC: + String email = mContacts.getEmailFromContactPicker(data); + if (email.length() == 0) { + Toast.makeText(this, getString(R.string.error_contact_address_not_found), Toast.LENGTH_LONG).show(); + return; + } + if (requestCode == CONTACT_PICKER_TO) { + addAddress(mToView, new Address(email, "")); + } else if (requestCode == CONTACT_PICKER_CC) { + addAddress(mCcView, new Address(email, "")); + } else if (requestCode == CONTACT_PICKER_BCC) { + addAddress(mBccView, new Address(email, "")); + } else { + return; + } + + + break; } } + public void doLaunchContactPicker(int resultId) { + startActivityForResult(mContacts.contactPickerIntent(), resultId); + } + + + private void onAccountChosen(final Intent intent) { final Bundle extras = intent.getExtras(); final String uuid = extras.getString(ChooseAccount.EXTRA_ACCOUNT); @@ -2451,10 +2524,9 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc } try { - final Contacts contacts = Contacts.getInstance(MessageCompose.this); - contacts.markAsContacted(message.getRecipients(RecipientType.TO)); - contacts.markAsContacted(message.getRecipients(RecipientType.CC)); - contacts.markAsContacted(message.getRecipients(RecipientType.BCC)); + mContacts.markAsContacted(message.getRecipients(RecipientType.TO)); + mContacts.markAsContacted(message.getRecipients(RecipientType.CC)); + mContacts.markAsContacted(message.getRecipients(RecipientType.BCC)); } catch (Exception e) { Log.e(K9.LOG_TAG, "Failed to mark contact as contacted.", e); } diff --git a/src/com/fsck/k9/helper/Contacts.java b/src/com/fsck/k9/helper/Contacts.java index f413639cd..2b5acaa72 100644 --- a/src/com/fsck/k9/helper/Contacts.java +++ b/src/com/fsck/k9/helper/Contacts.java @@ -6,6 +6,7 @@ import android.content.ContentResolver; import android.content.Context; import android.database.Cursor; import android.os.Build; +import android.content.Intent; import android.util.Log; import com.fsck.k9.K9; import com.fsck.k9.mail.Address; @@ -166,4 +167,42 @@ public abstract class Contacts { * contacts to be marked as contacted. */ public abstract void markAsContacted(final Address[] addresses); + + + /* + * Returns the intent necessary to open a contact picker + * + */ + public abstract Intent contactPickerIntent(); + + + /* Given a contact picker intent, returns the primary email + * address of that contact + * + * @param intent The {@link Intent} returned by this contact picker + */ + + + + public abstract String getEmailFromContactPicker(final Intent intent); + + + + /* + * Does the device actually have a Contacts application suitable + * for picking a contact. As hard as it is to believe, some + * vendors ship without it. + */ + + public boolean hasContactPicker() { + + if (mContext.getPackageManager().queryIntentActivities(contactPickerIntent(), 0).size() > 0) { + return true; + } else { + return false; + } + } + + + } diff --git a/src/com/fsck/k9/helper/ContactsSdk3_4.java b/src/com/fsck/k9/helper/ContactsSdk3_4.java index f8cec57fa..068a55443 100644 --- a/src/com/fsck/k9/helper/ContactsSdk3_4.java +++ b/src/com/fsck/k9/helper/ContactsSdk3_4.java @@ -4,8 +4,12 @@ import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.net.Uri; +import android.util.Log; import android.provider.Contacts; +import android.provider.Contacts.ContactMethods; import com.fsck.k9.mail.Address; +import com.fsck.k9.K9; + /** * Access the contacts on the device using the old API (introduced in SDK 1). @@ -218,6 +222,49 @@ public class ContactsSdk3_4 extends com.fsck.k9.helper.Contacts { } } + @Override + public Intent contactPickerIntent() { + return new Intent(Intent.ACTION_PICK, Contacts.People.CONTENT_URI); + + } + + + @Override + public String getEmailFromContactPicker(final Intent data) { + + Cursor cursor = null; + Cursor cursor2 = null; + String email = ""; + + try { + + Uri result = data.getData(); + cursor = mContentResolver.query(result, null, null, null, null); + if (cursor.moveToFirst()) { + String emailId = cursor.getString(cursor.getColumnIndex(Contacts.People.PRIMARY_EMAIL_ID)); + cursor2 = mContext.getContentResolver().query(ContactMethods.CONTENT_EMAIL_URI, new String[] { ContactMethods.DATA }, "contact_methods._id=?", new String[] { emailId }, null); + if (cursor2.moveToFirst()) { + email = cursor2.getString(0); + } + + } + + } catch (Exception e) { + Log.e(K9.LOG_TAG, "Failed to get email data", e); + } finally { + if (cursor != null) { + cursor.close(); + } + if (cursor2 != null) { + cursor2.close(); + } + } + + return email; + } + + + /** * Return a {@link Cursor} instance that can be used to fetch information * about the contact with the given email address. diff --git a/src/com/fsck/k9/helper/ContactsSdk5.java b/src/com/fsck/k9/helper/ContactsSdk5.java index eec9e5a10..a5d1327e7 100644 --- a/src/com/fsck/k9/helper/ContactsSdk5.java +++ b/src/com/fsck/k9/helper/ContactsSdk5.java @@ -6,11 +6,13 @@ import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.net.Uri; +import android.util.Log; import android.provider.ContactsContract; import android.provider.ContactsContract.Contacts; import android.provider.ContactsContract.Intents; import android.provider.ContactsContract.CommonDataKinds.Email; import com.fsck.k9.mail.Address; +import com.fsck.k9.K9; /** * Access the contacts on the device using the API introduced with SDK 5. @@ -190,6 +192,43 @@ public class ContactsSdk5 extends com.fsck.k9.helper.Contacts { } } + + @Override + public Intent contactPickerIntent() { + return new Intent(Intent.ACTION_PICK, android.provider.ContactsContract.Contacts.CONTENT_URI); + } + + @Override + public String getEmailFromContactPicker(final Intent data) { + + Cursor cursor = null; + String email = ""; + try { + Uri result = data.getData(); + Log.v(K9.LOG_TAG, "Got a contact result: " + result.toString()); + + // get the contact id from the Uri + String id = result.getLastPathSegment(); + cursor = mContentResolver.query(Email.CONTENT_URI, + null, Email.CONTACT_ID + "=?", new String[] { id }, + null); + + int emailIdx = cursor.getColumnIndex(Email.DATA); + + if (cursor.moveToFirst()) { + email = cursor.getString(emailIdx); + } + } catch (Exception e) { + Log.e(K9.LOG_TAG, "Failed to get email data", e); + } finally { + if (cursor != null) { + cursor.close(); + } + } + + return email; + } + /** * Return a {@link Cursor} instance that can be used to fetch information * about the contact with the given email address. From e19162cb86867322dbcedc198b0492db70743209 Mon Sep 17 00:00:00 2001 From: Jesse Vincent Date: Tue, 22 Mar 2011 18:07:32 +1100 Subject: [PATCH 035/310] ant astyle --- .../fsck/k9/activity/ActivityListener.java | 3 +- src/com/fsck/k9/activity/FolderList.java | 126 +++++++++--------- .../fsck/k9/activity/FolderListFilter.java | 32 ++--- src/com/fsck/k9/activity/MessageCompose.java | 8 +- src/com/fsck/k9/activity/MessageView.java | 14 +- .../k9/activity/setup/AccountSettings.java | 8 +- .../k9/controller/MessagingController.java | 2 +- src/com/fsck/k9/helper/HtmlConverter.java | 4 +- .../fsck/k9/mail/internet/EncoderUtil.java | 4 +- src/com/fsck/k9/mail/internet/MimeHeader.java | 3 +- 10 files changed, 100 insertions(+), 104 deletions(-) diff --git a/src/com/fsck/k9/activity/ActivityListener.java b/src/com/fsck/k9/activity/ActivityListener.java index 432e87da2..6fbfaec16 100644 --- a/src/com/fsck/k9/activity/ActivityListener.java +++ b/src/com/fsck/k9/activity/ActivityListener.java @@ -37,8 +37,7 @@ public class ActivityListener extends MessagingListener { String displayName = mLoadingFolderName; if (K9.INBOX.equalsIgnoreCase(displayName)) { displayName = context.getString(R.string.special_mailbox_name_inbox); - } - else if ((mAccount != null) && mAccount.getOutboxFolderName().equals(displayName)) { + } else if ((mAccount != null) && mAccount.getOutboxFolderName().equals(displayName)) { displayName = context.getString(R.string.special_mailbox_name_outbox); } diff --git a/src/com/fsck/k9/activity/FolderList.java b/src/com/fsck/k9/activity/FolderList.java index d64d09530..8f3e447e7 100644 --- a/src/com/fsck/k9/activity/FolderList.java +++ b/src/com/fsck/k9/activity/FolderList.java @@ -313,7 +313,7 @@ public class FolderList extends K9ListActivity { if (previousData != null) { mAdapter.mFolders = (ArrayList) previousData; - mAdapter.mFilteredFolders = Collections.unmodifiableList(mAdapter.mFolders); + mAdapter.mFilteredFolders = Collections.unmodifiableList(mAdapter.mFolders); } } @@ -1029,7 +1029,7 @@ public class FolderList extends K9ListActivity { return getItemView(position, convertView, parent); } else { Log.e(K9.LOG_TAG, "getView with illegal positon=" + position - + " called! count is only " + getCount()); + + " called! count is only " + getCount()); return null; } } @@ -1136,77 +1136,77 @@ public class FolderList extends K9ListActivity { return true; } - public void setFilter(final Filter filter) { - this.mFilter = filter; - } + public void setFilter(final Filter filter) { + this.mFilter = filter; + } - public Filter getFilter() { - return mFilter; - } + public Filter getFilter() { + return mFilter; + } - /** - * Filter to search for occurences of the search-expression in any place of the - * folder-name instead of doing jsut a prefix-search. - * - * @author Marcus@Wolschon.biz - */ - public class FolderListFilter extends Filter { + /** + * Filter to search for occurences of the search-expression in any place of the + * folder-name instead of doing jsut a prefix-search. + * + * @author Marcus@Wolschon.biz + */ + public class FolderListFilter extends Filter { - /** - * Do the actual search. - * {@inheritDoc} - * - * @see #publishResults(CharSequence, FilterResults) - */ - @Override - protected FilterResults performFiltering(CharSequence searchTerm) { - FilterResults results = new FilterResults(); + /** + * Do the actual search. + * {@inheritDoc} + * + * @see #publishResults(CharSequence, FilterResults) + */ + @Override + protected FilterResults performFiltering(CharSequence searchTerm) { + FilterResults results = new FilterResults(); - if ((searchTerm == null) || (searchTerm.length() == 0)) { - ArrayList list = new ArrayList(mFolders); - results.values = list; - results.count = list.size(); - } else { - final String searchTermString = searchTerm.toString().toLowerCase(); - final String[] words = searchTermString.split(" "); - final int wordCount = words.length; + if ((searchTerm == null) || (searchTerm.length() == 0)) { + ArrayList list = new ArrayList(mFolders); + results.values = list; + results.count = list.size(); + } else { + final String searchTermString = searchTerm.toString().toLowerCase(); + final String[] words = searchTermString.split(" "); + final int wordCount = words.length; - final ArrayList newValues = new ArrayList(); + final ArrayList newValues = new ArrayList(); - for (final FolderInfoHolder value : mFolders) { - if (value.displayName == null) { - continue; - } - final String valueText = value.displayName.toLowerCase(); + for (final FolderInfoHolder value : mFolders) { + if (value.displayName == null) { + continue; + } + final String valueText = value.displayName.toLowerCase(); - for (int k = 0; k < wordCount; k++) { - if (valueText.contains(words[k])) { - newValues.add(value); - break; - } - } - } + for (int k = 0; k < wordCount; k++) { + if (valueText.contains(words[k])) { + newValues.add(value); + break; + } + } + } - results.values = newValues; - results.count = newValues.size(); - } + results.values = newValues; + results.count = newValues.size(); + } - return results; - } + return results; + } - /** - * Publish the results to the user-interface. - * {@inheritDoc} - */ - @SuppressWarnings("unchecked") - @Override - protected void publishResults(CharSequence constraint, FilterResults results) { - //noinspection unchecked - mFilteredFolders = Collections.unmodifiableList((ArrayList) results.values); - // Send notification that the data set changed now - notifyDataSetChanged(); - } - } + /** + * Publish the results to the user-interface. + * {@inheritDoc} + */ + @SuppressWarnings("unchecked") + @Override + protected void publishResults(CharSequence constraint, FilterResults results) { + //noinspection unchecked + mFilteredFolders = Collections.unmodifiableList((ArrayList) results.values); + // Send notification that the data set changed now + notifyDataSetChanged(); + } + } } static class FolderViewHolder { diff --git a/src/com/fsck/k9/activity/FolderListFilter.java b/src/com/fsck/k9/activity/FolderListFilter.java index 172c2f33d..7ed58a77a 100644 --- a/src/com/fsck/k9/activity/FolderListFilter.java +++ b/src/com/fsck/k9/activity/FolderListFilter.java @@ -101,24 +101,24 @@ public class FolderListFilter extends Filter { mFolders.setNotifyOnChange(false); try { - //noinspection unchecked - final List folders = (List) results.values; - mFolders.clear(); - if (folders != null) { - for (T folder : folders) { - if (folder != null) { - mFolders.add(folder); - } - } - } else { - Log.w(K9.LOG_TAG, "FolderListFilter.publishResults - null search-result "); - } + //noinspection unchecked + final List folders = (List) results.values; + mFolders.clear(); + if (folders != null) { + for (T folder : folders) { + if (folder != null) { + mFolders.add(folder); + } + } + } else { + Log.w(K9.LOG_TAG, "FolderListFilter.publishResults - null search-result "); + } - // Send notification that the data set changed now - mFolders.notifyDataSetChanged(); + // Send notification that the data set changed now + mFolders.notifyDataSetChanged(); } finally { - // restore notification status - mFolders.setNotifyOnChange(true); + // restore notification status + mFolders.setNotifyOnChange(true); } } diff --git a/src/com/fsck/k9/activity/MessageCompose.java b/src/com/fsck/k9/activity/MessageCompose.java index d717cc0cf..28593c0fc 100644 --- a/src/com/fsck/k9/activity/MessageCompose.java +++ b/src/com/fsck/k9/activity/MessageCompose.java @@ -547,10 +547,10 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc if (!ACTION_EDIT_DRAFT.equals(action)) { String bccAddress = mAccount.getAlwaysBcc(); if ((bccAddress != null) && !("".equals(bccAddress))) { - String[] bccAddresses = bccAddress.split(","); - for (String oneBccAddress : bccAddresses) { - addAddress(mBccView, new Address(oneBccAddress, "")); - } + String[] bccAddresses = bccAddress.split(","); + for (String oneBccAddress : bccAddresses) { + addAddress(mBccView, new Address(oneBccAddress, "")); + } } } diff --git a/src/com/fsck/k9/activity/MessageView.java b/src/com/fsck/k9/activity/MessageView.java index ae63d9a17..b937a66ab 100644 --- a/src/com/fsck/k9/activity/MessageView.java +++ b/src/com/fsck/k9/activity/MessageView.java @@ -943,13 +943,13 @@ public class MessageView extends K9Activity implements OnClickListener { @Override protected Dialog onCreateDialog(final int id) { switch (id) { - case R.id.dialog_confirm_delete: - return createConfirmDeleteDialog(id); - case R.id.dialog_attachment_progress: - ProgressDialog d = new ProgressDialog(this); - d.setIndeterminate(true); - d.setTitle(R.string.dialog_attachment_progress_title); - return d; + case R.id.dialog_confirm_delete: + return createConfirmDeleteDialog(id); + case R.id.dialog_attachment_progress: + ProgressDialog d = new ProgressDialog(this); + d.setIndeterminate(true); + d.setTitle(R.string.dialog_attachment_progress_title); + return d; } return super.onCreateDialog(id); } diff --git a/src/com/fsck/k9/activity/setup/AccountSettings.java b/src/com/fsck/k9/activity/setup/AccountSettings.java index ff7c1c5f3..d0ff1f9ff 100644 --- a/src/com/fsck/k9/activity/setup/AccountSettings.java +++ b/src/com/fsck/k9/activity/setup/AccountSettings.java @@ -853,12 +853,10 @@ public class AccountSettings extends K9PreferenceActivity { // TODO: In the future the call above should be changed to only return remote folders. // For now we just remove the Outbox folder if present. - Iterator iter = folders.iterator(); - while (iter.hasNext()) - { + Iterator iter = folders.iterator(); + while (iter.hasNext()) { Folder folder = iter.next(); - if (mAccount.getOutboxFolderName().equalsIgnoreCase(folder.getName())) - { + if (mAccount.getOutboxFolderName().equalsIgnoreCase(folder.getName())) { iter.remove(); } } diff --git a/src/com/fsck/k9/controller/MessagingController.java b/src/com/fsck/k9/controller/MessagingController.java index 5a52f30b1..7acc65882 100644 --- a/src/com/fsck/k9/controller/MessagingController.java +++ b/src/com/fsck/k9/controller/MessagingController.java @@ -3016,7 +3016,7 @@ public class MessagingController implements Runnable { Log.i(K9.LOG_TAG, "Send count for message " + message.getUid() + " is " + count.get()); if (count.incrementAndGet() > K9.MAX_SEND_ATTEMPTS) { - Log.e(K9.LOG_TAG, "Send count for message " + message.getUid() + " can't be delivered after "+ K9.MAX_SEND_ATTEMPTS + " attempts. Giving up until the user restarts the device"); + Log.e(K9.LOG_TAG, "Send count for message " + message.getUid() + " can't be delivered after " + K9.MAX_SEND_ATTEMPTS + " attempts. Giving up until the user restarts the device"); notifySendTempFailed(account, new MessagingException(message.getSubject())); continue; } diff --git a/src/com/fsck/k9/helper/HtmlConverter.java b/src/com/fsck/k9/helper/HtmlConverter.java index cc4a365f3..f4135138d 100644 --- a/src/com/fsck/k9/helper/HtmlConverter.java +++ b/src/com/fsck/k9/helper/HtmlConverter.java @@ -1074,8 +1074,8 @@ public class HtmlConverter { private static String htmlifyMessageHeader() { final String font = K9.messageViewFixedWidthFont() - ? "monospace" - : "sans-serif"; + ? "monospace" + : "sans-serif"; return "
    ";
         }
     
    diff --git a/src/com/fsck/k9/mail/internet/EncoderUtil.java b/src/com/fsck/k9/mail/internet/EncoderUtil.java
    index 8b1428f65..2665ee7e8 100644
    --- a/src/com/fsck/k9/mail/internet/EncoderUtil.java
    +++ b/src/com/fsck/k9/mail/internet/EncoderUtil.java
    @@ -87,7 +87,7 @@ public class EncoderUtil {
             int encodedLength = bEncodedLength(bytes);
     
             int totalLength = prefix.length() + encodedLength
    -                + ENC_WORD_SUFFIX.length();
    +                          + ENC_WORD_SUFFIX.length();
             if (totalLength <= ENCODED_WORD_MAX_LENGTH) {
                 return prefix + org.apache.james.mime4j.codec.EncoderUtil.encodeB(bytes) + ENC_WORD_SUFFIX;
             } else {
    @@ -111,7 +111,7 @@ public class EncoderUtil {
             int encodedLength = qEncodedLength(bytes);
     
             int totalLength = prefix.length() + encodedLength
    -                + ENC_WORD_SUFFIX.length();
    +                          + ENC_WORD_SUFFIX.length();
             if (totalLength <= ENCODED_WORD_MAX_LENGTH) {
                 return prefix + org.apache.james.mime4j.codec.EncoderUtil.encodeQ(bytes, org.apache.james.mime4j.codec.EncoderUtil.Usage.WORD_ENTITY) + ENC_WORD_SUFFIX;
             } else {
    diff --git a/src/com/fsck/k9/mail/internet/MimeHeader.java b/src/com/fsck/k9/mail/internet/MimeHeader.java
    index 0b205527f..c6b8510c8 100644
    --- a/src/com/fsck/k9/mail/internet/MimeHeader.java
    +++ b/src/com/fsck/k9/mail/internet/MimeHeader.java
    @@ -147,8 +147,7 @@ public class MimeHeader {
             }
         }
     
    -    public void setCharset(String charset)
    -    {
    +    public void setCharset(String charset) {
             mCharset = charset;
         }
     }
    
    From 6622bee05d9160e9fbf0907466236dea540d2813 Mon Sep 17 00:00:00 2001
    From: Tammo Oepkes 
    Date: Wed, 23 Mar 2011 23:34:33 +0100
    Subject: [PATCH 036/310] fixed bad german translation for 'fetching mail'
    
    ---
     res/values-de/strings.xml | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
    index d4985ea4c..57077e1d3 100644
    --- a/res/values-de/strings.xml
    +++ b/res/values-de/strings.xml
    @@ -572,7 +572,7 @@ Willkommen zum \"K-9 Mail\"-Setup. K-9 ist eine quelloffene E-Mail-Anwendung fü
     
         Allgemeine Einstellungen
         Anzeige
    -    Ordner synchronisieren
    +    Emails abrufen
         Ordner
         Liste der Nachrichten
         Anzeige der Nachricht
    
    From fc0415bf761172c7320f1b9d3e4d71ccecf90d6d Mon Sep 17 00:00:00 2001
    From: Tammo Oepkes 
    Date: Thu, 24 Mar 2011 00:10:27 +0100
    Subject: [PATCH 037/310] translation fixes: Anhang instead of Anlage
    
    ---
     res/values-de/strings.xml | 34 +++++++++++++++++-----------------
     1 file changed, 17 insertions(+), 17 deletions(-)
    
    diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
    index 57077e1d3..96d815059 100644
    --- a/res/values-de/strings.xml
    +++ b/res/values-de/strings.xml
    @@ -12,8 +12,8 @@
         Wir benutzen die folgenden externen Bibliotheken: %s
         Emoji Bilder: %s
     
    -    Anlagen der Nachricht lesen
    -    Dieser Anwendung erlauben die Anlagen Ihrer Nachrichten zu lesen.
    +    Anhänge der Nachricht lesen
    +    Dieser Anwendung erlauben die Anhänge Ihrer Nachrichten zu lesen.
         Nachrichten lesen
         Der Anwendung erlauben Ihre Nachrichten zu lesen.
         Nachrichten löschen
    @@ -111,9 +111,9 @@
         Details anzeigen/verbergen
         CC/BCC hinzufügen
         Betreff bearbeiten
    -    Anlage hinzufügen
    -    Anlage hinzufügen (Bild)
    -    Anlage hinzufügen (Video)
    +    Anhang hinzufügen
    +    Anhang hinzufügen (Bild)
    +    Anhang hinzufügen (Video)
         Einstellungen ausgeben (Dump)
         Papierkorb leeren
         Bereinigen (Expunge)
    @@ -214,7 +214,7 @@ Willkommen zum \"K-9 Mail\"-Setup. K-9 ist eine quelloffene E-Mail-Anwendung fü
     \n * Konfiguration einer Antwort-Adresse
     \n * Tastatur-Shortcuts
     \n * Verbesserte IMAP-Unterstützung
    -\n * Speichern von Anlagen auf SD-Karte
    +\n * Speichern von Anhängen auf SD-Karte
     \n * Papierkorb leeren
     \n * Sortieren der Nachrichten
     \n * ...und viele mehr
    @@ -264,8 +264,8 @@ Willkommen zum \"K-9 Mail\"-Setup. K-9 ist eine quelloffene E-Mail-Anwendung fü
         \n\n%s schrieb:\n\n
         Zitierter Text
         Sie müssen mindestens einen Empfänger wählen.
    -    Einige Anlagen wurden nicht heruntergeladen. Sie werden automatisch heruntergeladen, bevor diese Nachricht gesendet wird.
    -    Einige Anlagen können nicht weitergeleitet werden, da diese nicht heruntergeladen wurden.
    +    Einige Anhänge wurden nicht heruntergeladen. Sie werden automatisch heruntergeladen, bevor diese Nachricht gesendet wird.
    +    Einige Anhänge können nicht weitergeleitet werden, da diese nicht heruntergeladen wurden.
     
     
     
    @@ -280,11 +280,11 @@ Willkommen zum \"K-9 Mail\"-Setup. K-9 ist eine quelloffene E-Mail-Anwendung fü
         Verschieben
         Spam
         dd. MMM yyyy HH:mm
    -    Anlage auf SD-Karte gespeichert als %s.
    -    Anlage konnte nicht auf SD-Karte gespeichert werden.
    +    Anhänge auf SD-Karte gespeichert als %s.
    +    Anhang konnte nicht auf SD-Karte gespeichert werden.
         Wählen Sie \"Bilder anzeigen\", um eingebettete Bilder abzurufen.
         Bilder anzeigen
    -    Lade Anlage.
    +    Lade Anhang.
         Es wurde kein Anzeigeprogramm für %s gefunden.
     
     
    @@ -572,7 +572,7 @@ Willkommen zum \"K-9 Mail\"-Setup. K-9 ist eine quelloffene E-Mail-Anwendung fü
     
         Allgemeine Einstellungen
         Anzeige
    -    Emails abrufen
    +    Nachrichten abrufen
         Ordner
         Liste der Nachrichten
         Anzeige der Nachricht
    @@ -766,8 +766,8 @@ Willkommen zum \"K-9 Mail\"-Setup. K-9 ist eine quelloffene E-Mail-Anwendung fü
         Nicht markierte Nachrichten zuerst
         Ungelesene Nachrichten zuerst
         Gelesene Nachrichten zuerst
    -    Nachrichten mit Anlagen zuerst
    -    Nachrichten ohne Anlagen zuerst
    +    Nachrichten mit Anhängen zuerst
    +    Nachrichten ohne Anhänge zuerst
     
         Sortieren nach...
         Datum
    @@ -775,7 +775,7 @@ Willkommen zum \"K-9 Mail\"-Setup. K-9 ist eine quelloffene E-Mail-Anwendung fü
         Betreff
         Wichtigkeit
         Gelesen/Ungelesen
    -    Anlage
    +    Anhang
         %s
     
         Entfernen
    @@ -988,7 +988,7 @@ Willkommen zum \"K-9 Mail\"-Setup. K-9 ist eine quelloffene E-Mail-Anwendung fü
         Wählen Sie \"Einstellungen\" -> \"Galerie Work-Around aktivieren\" um Bilder oder Videos mithilfe der 3D-Galerie hinzufügen zu können.
     
         
    -    Verwenden Sie \"Anlage hinzufügen (Bild)\" oder \"Anlage hinzufügen (Video)\" um Bilder oder Videos mit der 3D-Galerie hinzuzufügen.
    +    Verwenden Sie \"Anhang hinzufügen (Bild)\" oder \"Anhang hinzufügen (Video)\" um Bilder oder Videos mit der 3D-Galerie hinzuzufügen.
     
         Verschiedenes
         Galerie Work-Around
    @@ -1005,7 +1005,7 @@ Willkommen zum \"K-9 Mail\"-Setup. K-9 ist eine quelloffene E-Mail-Anwendung fü
         id: %s
         K-9 hat keinen Vollzugriff auf APG, bitte dafür K-9 neu installieren.
         PGP/MIME Nachrichten werden noch nicht unterstützt.
    -    Achtung: Anlagen werden zur Zeit weder signiert noch verschlüsselt.
    +    Achtung: Anhänge werden zur Zeit weder signiert noch verschlüsselt.
         Senden abgebrochen.
     
         Entwurf speichern?
    
    From d1fa878c77304d136a9d3e759b2d11c80594ed3b Mon Sep 17 00:00:00 2001
    From: Jesse Vincent 
    Date: Thu, 24 Mar 2011 10:56:33 +1100
    Subject: [PATCH 038/310] Bumped manifest to 3.707
    
    ---
     AndroidManifest.xml | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/AndroidManifest.xml b/AndroidManifest.xml
    index 9e3453ca0..7f689fef9 100644
    --- a/AndroidManifest.xml
    +++ b/AndroidManifest.xml
    @@ -1,8 +1,8 @@
     
     
         
    Date: Wed, 23 Mar 2011 21:51:06 +0100
    Subject: [PATCH 039/310] Fixed javadoc comments
    
    ---
     src/com/fsck/k9/helper/Contacts.java | 35 +++++++++++-----------------
     1 file changed, 14 insertions(+), 21 deletions(-)
    
    diff --git a/src/com/fsck/k9/helper/Contacts.java b/src/com/fsck/k9/helper/Contacts.java
    index 2b5acaa72..66cbe8335 100644
    --- a/src/com/fsck/k9/helper/Contacts.java
    +++ b/src/com/fsck/k9/helper/Contacts.java
    @@ -168,41 +168,34 @@ public abstract class Contacts {
          */
         public abstract void markAsContacted(final Address[] addresses);
     
    -
    -    /*
    -     * Returns the intent necessary to open a contact picker
    +    /**
    +     * Creates the intent necessary to open a contact picker.
          *
    +     * @return The intent necessary to open a contact picker.
          */
         public abstract Intent contactPickerIntent();
     
    -
    -    /* Given a contact picker intent, returns the primary email
    -     * address of that contact
    +    /**
    +     * Given a contact picker intent, returns the primary email address of that
    +     * contact.
          *
    -     * @param intent The {@link Intent} returned by this contact picker
    +     * @param intent The {@link Intent} returned by this contact picker.
    +     * @return The primary email address of the picked contact.
          */
    -
    -
    -
         public abstract String getEmailFromContactPicker(final Intent intent);
     
    -
    -
    -    /*
    -     * Does the device actually have a Contacts application suitable
    -     * for picking a contact. As hard as it is to believe, some
    -     * vendors ship without it.
    +    /**
    +     * Does the device actually have a Contacts application suitable for
    +     * picking a contact. As hard as it is to believe, some vendors ship
    +     * without it.
    +     *
    +     * @return True, if the device supports picking contacts. False, otherwise.
          */
    -
         public boolean hasContactPicker() {
    -
             if (mContext.getPackageManager().queryIntentActivities(contactPickerIntent(), 0).size() > 0) {
                 return true;
             } else {
                 return false;
             }
         }
    -
    -
    -
     }
    
    From b6561c8b29bdda0f9ec4b7dd4676455866641530 Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Thu, 24 Mar 2011 04:04:13 +0100
    Subject: [PATCH 040/310] Cosmetic changes
    
    ---
     src/com/fsck/k9/helper/ContactsSdk3_4.java | 18 ++++++++----------
     src/com/fsck/k9/helper/ContactsSdk5.java   |  8 +++-----
     2 files changed, 11 insertions(+), 15 deletions(-)
    
    diff --git a/src/com/fsck/k9/helper/ContactsSdk3_4.java b/src/com/fsck/k9/helper/ContactsSdk3_4.java
    index 068a55443..0b2433417 100644
    --- a/src/com/fsck/k9/helper/ContactsSdk3_4.java
    +++ b/src/com/fsck/k9/helper/ContactsSdk3_4.java
    @@ -225,30 +225,30 @@ public class ContactsSdk3_4 extends com.fsck.k9.helper.Contacts {
         @Override
         public Intent contactPickerIntent() {
             return new Intent(Intent.ACTION_PICK, Contacts.People.CONTENT_URI);
    -
         }
     
    -
         @Override
         public String getEmailFromContactPicker(final Intent data) {
    -
             Cursor cursor = null;
             Cursor cursor2 = null;
             String email = "";
     
             try {
    -
                 Uri result = data.getData();
    -            cursor =  mContentResolver.query(result, null, null, null, null);
    +            cursor = mContentResolver.query(result, null, null, null, null);
                 if (cursor.moveToFirst()) {
                     String emailId = cursor.getString(cursor.getColumnIndex(Contacts.People.PRIMARY_EMAIL_ID));
    -                cursor2 = mContext.getContentResolver().query(ContactMethods.CONTENT_EMAIL_URI, new String[] { ContactMethods.DATA }, "contact_methods._id=?", new String[] { emailId }, null);
    +                cursor2 = mContext.getContentResolver().query(
    +                        ContactMethods.CONTENT_EMAIL_URI,
    +                        new String[] { ContactMethods.DATA },
    +                        "contact_methods._id=?",
    +                        new String[] { emailId },
    +                        null);
    +
                     if (cursor2.moveToFirst()) {
                         email = cursor2.getString(0);
                     }
    -
                 }
    -
             } catch (Exception e) {
                 Log.e(K9.LOG_TAG, "Failed to get email data", e);
             } finally {
    @@ -263,8 +263,6 @@ public class ContactsSdk3_4 extends com.fsck.k9.helper.Contacts {
             return email;
         }
     
    -
    -
         /**
          * Return a {@link Cursor} instance that can be used to fetch information
          * about the contact with the given email address.
    diff --git a/src/com/fsck/k9/helper/ContactsSdk5.java b/src/com/fsck/k9/helper/ContactsSdk5.java
    index a5d1327e7..40ae2768b 100644
    --- a/src/com/fsck/k9/helper/ContactsSdk5.java
    +++ b/src/com/fsck/k9/helper/ContactsSdk5.java
    @@ -192,22 +192,20 @@ public class ContactsSdk5 extends com.fsck.k9.helper.Contacts {
             }
         }
     
    -
         @Override
         public Intent contactPickerIntent() {
    -        return new Intent(Intent.ACTION_PICK,  android.provider.ContactsContract.Contacts.CONTENT_URI);
    +        return new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
         }
     
         @Override
         public String getEmailFromContactPicker(final Intent data) {
    -
             Cursor cursor = null;
             String email = "";
    +
             try {
                 Uri result = data.getData();
    -            Log.v(K9.LOG_TAG, "Got a contact result: " + result.toString());
     
    -            // get the contact id from the Uri
    +            // Get the contact id from the Uri
                 String id = result.getLastPathSegment();
                 cursor = mContentResolver.query(Email.CONTENT_URI,
                                                 null, Email.CONTACT_ID + "=?", new String[] { id },
    
    From 277c358f87eb25783efaf3cc7185cab05b34fb1d Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Thu, 24 Mar 2011 05:11:03 +0100
    Subject: [PATCH 041/310] Cache information whether or not contact picker
     intent is available for this device.
    
    ---
     src/com/fsck/k9/helper/Contacts.java | 9 +++++----
     1 file changed, 5 insertions(+), 4 deletions(-)
    
    diff --git a/src/com/fsck/k9/helper/Contacts.java b/src/com/fsck/k9/helper/Contacts.java
    index 66cbe8335..7f3e6e441 100644
    --- a/src/com/fsck/k9/helper/Contacts.java
    +++ b/src/com/fsck/k9/helper/Contacts.java
    @@ -85,6 +85,7 @@ public abstract class Contacts {
     
         protected Context mContext;
         protected ContentResolver mContentResolver;
    +    protected Boolean mHasContactPicker;
     
         /**
          * Constructor
    @@ -192,10 +193,10 @@ public abstract class Contacts {
          * @return True, if the device supports picking contacts. False, otherwise.
          */
         public boolean hasContactPicker() {
    -        if (mContext.getPackageManager().queryIntentActivities(contactPickerIntent(), 0).size() > 0) {
    -            return true;
    -        } else {
    -            return false;
    +        if (mHasContactPicker == null) {
    +            mHasContactPicker = (mContext.getPackageManager().
    +                    queryIntentActivities(contactPickerIntent(), 0).size() > 0);
             }
    +        return mHasContactPicker;
         }
     }
    
    From fa5901d404be822d590b834fd508ef89676addef Mon Sep 17 00:00:00 2001
    From: Apoorv Khatreja 
    Date: Thu, 24 Mar 2011 05:06:50 +0800
    Subject: [PATCH 042/310] Fixed issue 873 where JPEG images with the MIME type
     "image/jpg" failed to open on some Motorola phones.
    
    ---
     src/com/fsck/k9/provider/AttachmentProvider.java | 6 +++++-
     1 file changed, 5 insertions(+), 1 deletion(-)
    
    diff --git a/src/com/fsck/k9/provider/AttachmentProvider.java b/src/com/fsck/k9/provider/AttachmentProvider.java
    index fc9c8c4f6..9cb492f9b 100644
    --- a/src/com/fsck/k9/provider/AttachmentProvider.java
    +++ b/src/com/fsck/k9/provider/AttachmentProvider.java
    @@ -105,7 +105,11 @@ public class AttachmentProvider extends ContentProvider {
     
                 try {
                     final LocalStore localStore = LocalStore.getLocalInstance(account, K9.app);
    -                return localStore.getAttachmentType(id);
    +                if (localStore.getAttachmentType(id).equals("image/jpg")) {
    +                	return "image/jpeg";
    +                } else {
    +                	return localStore.getAttachmentType(id);
    +                }
                 } catch (MessagingException e) {
                     Log.e(K9.LOG_TAG, "Unable to retrieve LocalStore for " + account, e);
                     return null;
    
    From 80d99baf29be8966a008e1ea863d46ab722ac441 Mon Sep 17 00:00:00 2001
    From: Apoorv Khatreja 
    Date: Fri, 25 Mar 2011 04:52:25 +0800
    Subject: [PATCH 043/310] Implemented table lookup for mime type replacement
     (issue 873 and similar), added javadocs, moved to MimeUtility.java.
    
    ---
     .../fsck/k9/mail/internet/MimeUtility.java    | 28 +++++++++++++++----
     src/com/fsck/k9/mail/store/LocalStore.java    |  2 +-
     .../fsck/k9/provider/AttachmentProvider.java  |  7 ++---
     3 files changed, 26 insertions(+), 11 deletions(-)
    
    diff --git a/src/com/fsck/k9/mail/internet/MimeUtility.java b/src/com/fsck/k9/mail/internet/MimeUtility.java
    index be318d998..42033eda1 100644
    --- a/src/com/fsck/k9/mail/internet/MimeUtility.java
    +++ b/src/com/fsck/k9/mail/internet/MimeUtility.java
    @@ -875,8 +875,10 @@ public class MimeUtility {
             { "zirz", "application/vnd.zul"},
             { "zmm", "application/vnd.handheld-entertainment+xml"}
         };
    -
    -
    +    
    +    private static final String[][] MIME_TYPE_REPLACEMENT_MAP = new String[][] {
    +		{"image/jpg","image/jpeg"}
    +	};
     
         public static String unfold(String s) {
             if (s == null) {
    @@ -1181,17 +1183,33 @@ public class MimeUtility {
             // If the MIME type set by the user's mailer is application/octet-stream, try to figure
             // out whether there's a sane file type extension.
             if (returnedType != null && !DEFAULT_ATTACHMENT_MIME_TYPE.equalsIgnoreCase(returnedType)) {
    -            return returnedType;
    +            return getCorrectedMimeType(returnedType);
             } else if (extension != null) {
                 for (String[] contentTypeMapEntry : MIME_TYPE_BY_EXTENSION_MAP) {
                     if (contentTypeMapEntry[0].equals(extension)) {
    -                    return contentTypeMapEntry[1];
    +                    return getCorrectedMimeType(contentTypeMapEntry[1]);
                     }
                 }
             }
     
    -        return DEFAULT_ATTACHMENT_MIME_TYPE;
    +        return getCorrectedMimeType(DEFAULT_ATTACHMENT_MIME_TYPE);
         }
    +    
    +    /**
    +     * Table lookup for MIME type replacement, enabling easy fixes for issues similar to issue 873.
    +     * To map any MIME type to a different one, add a {originalMimeType, replacementMimeType} string pair to MIME_TYPE_REPLACEMENT_MAP.
    +     *
    +     * @param mimeType the MIME type
    +     * @return the corrected MIME type
    +     */
    +    public static String getCorrectedMimeType(String mimeType) {
    +		for (String[] mimeTypeMapEntry : MIME_TYPE_REPLACEMENT_MAP) {
    +			if (mimeTypeMapEntry[0].equals(mimeType)) {
    +				return mimeTypeMapEntry[1];
    +			}
    +		}
    +		return mimeType;
    +	}
     
         private static Message getMessageFromPart(Part part) {
             while (part != null) {
    diff --git a/src/com/fsck/k9/mail/store/LocalStore.java b/src/com/fsck/k9/mail/store/LocalStore.java
    index e90e5a64e..7141d18c4 100644
    --- a/src/com/fsck/k9/mail/store/LocalStore.java
    +++ b/src/com/fsck/k9/mail/store/LocalStore.java
    @@ -1010,7 +1010,7 @@ public class LocalStore extends Store implements Serializable {
                         if (MimeUtility.DEFAULT_ATTACHMENT_MIME_TYPE.equalsIgnoreCase(type)) {
                             type = MimeUtility.getMimeTypeByExtension(name);
                         }
    -                    return type;
    +                    return MimeUtility.getCorrectedMimeType(type);
                     } finally {
                         if (cursor != null) {
                             cursor.close();
    diff --git a/src/com/fsck/k9/provider/AttachmentProvider.java b/src/com/fsck/k9/provider/AttachmentProvider.java
    index 9cb492f9b..90ac52c89 100644
    --- a/src/com/fsck/k9/provider/AttachmentProvider.java
    +++ b/src/com/fsck/k9/provider/AttachmentProvider.java
    @@ -105,11 +105,8 @@ public class AttachmentProvider extends ContentProvider {
     
                 try {
                     final LocalStore localStore = LocalStore.getLocalInstance(account, K9.app);
    -                if (localStore.getAttachmentType(id).equals("image/jpg")) {
    -                	return "image/jpeg";
    -                } else {
    -                	return localStore.getAttachmentType(id);
    -                }
    +                return localStore.getAttachmentType(id);
    +               
                 } catch (MessagingException e) {
                     Log.e(K9.LOG_TAG, "Unable to retrieve LocalStore for " + account, e);
                     return null;
    
    From 168f6277dac48b8837f461aef91bb1857753a2c5 Mon Sep 17 00:00:00 2001
    From: Apoorv Khatreja 
    Date: Fri, 25 Mar 2011 05:25:10 +0800
    Subject: [PATCH 044/310] Mime type rewriting must be done only when an
     attachment is viewed. Therefore, removed conflicting references to rewriting
     code from LocalStore.
    
    ---
     src/com/fsck/k9/mail/internet/MimeUtility.java   | 8 ++++----
     src/com/fsck/k9/mail/store/LocalStore.java       | 2 +-
     src/com/fsck/k9/provider/AttachmentProvider.java | 2 +-
     3 files changed, 6 insertions(+), 6 deletions(-)
    
    diff --git a/src/com/fsck/k9/mail/internet/MimeUtility.java b/src/com/fsck/k9/mail/internet/MimeUtility.java
    index 42033eda1..32a8b1679 100644
    --- a/src/com/fsck/k9/mail/internet/MimeUtility.java
    +++ b/src/com/fsck/k9/mail/internet/MimeUtility.java
    @@ -1183,16 +1183,16 @@ public class MimeUtility {
             // If the MIME type set by the user's mailer is application/octet-stream, try to figure
             // out whether there's a sane file type extension.
             if (returnedType != null && !DEFAULT_ATTACHMENT_MIME_TYPE.equalsIgnoreCase(returnedType)) {
    -            return getCorrectedMimeType(returnedType);
    +            return returnedType;
             } else if (extension != null) {
                 for (String[] contentTypeMapEntry : MIME_TYPE_BY_EXTENSION_MAP) {
                     if (contentTypeMapEntry[0].equals(extension)) {
    -                    return getCorrectedMimeType(contentTypeMapEntry[1]);
    +                    return contentTypeMapEntry[1];
                     }
                 }
             }
     
    -        return getCorrectedMimeType(DEFAULT_ATTACHMENT_MIME_TYPE);
    +        return DEFAULT_ATTACHMENT_MIME_TYPE;
         }
         
         /**
    @@ -1202,7 +1202,7 @@ public class MimeUtility {
          * @param mimeType the MIME type
          * @return the corrected MIME type
          */
    -    public static String getCorrectedMimeType(String mimeType) {
    +    public static String canonicalizeMimeType(String mimeType) {
     		for (String[] mimeTypeMapEntry : MIME_TYPE_REPLACEMENT_MAP) {
     			if (mimeTypeMapEntry[0].equals(mimeType)) {
     				return mimeTypeMapEntry[1];
    diff --git a/src/com/fsck/k9/mail/store/LocalStore.java b/src/com/fsck/k9/mail/store/LocalStore.java
    index 7141d18c4..e90e5a64e 100644
    --- a/src/com/fsck/k9/mail/store/LocalStore.java
    +++ b/src/com/fsck/k9/mail/store/LocalStore.java
    @@ -1010,7 +1010,7 @@ public class LocalStore extends Store implements Serializable {
                         if (MimeUtility.DEFAULT_ATTACHMENT_MIME_TYPE.equalsIgnoreCase(type)) {
                             type = MimeUtility.getMimeTypeByExtension(name);
                         }
    -                    return MimeUtility.getCorrectedMimeType(type);
    +                    return type;
                     } finally {
                         if (cursor != null) {
                             cursor.close();
    diff --git a/src/com/fsck/k9/provider/AttachmentProvider.java b/src/com/fsck/k9/provider/AttachmentProvider.java
    index 90ac52c89..5deeecd61 100644
    --- a/src/com/fsck/k9/provider/AttachmentProvider.java
    +++ b/src/com/fsck/k9/provider/AttachmentProvider.java
    @@ -105,7 +105,7 @@ public class AttachmentProvider extends ContentProvider {
     
                 try {
                     final LocalStore localStore = LocalStore.getLocalInstance(account, K9.app);
    -                return localStore.getAttachmentType(id);
    +                return MimeUtility.canonicalizeMimeType(localStore.getAttachmentType(id));
                    
                 } catch (MessagingException e) {
                     Log.e(K9.LOG_TAG, "Unable to retrieve LocalStore for " + account, e);
    
    From f3e46187027d19cdaf0e8b9af212e08c4d122e66 Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Thu, 24 Mar 2011 23:04:58 +0100
    Subject: [PATCH 045/310] Cosmetic + documentation changes
    
    ---
     .../fsck/k9/mail/internet/MimeUtility.java    | 25 +++++++++++++------
     1 file changed, 17 insertions(+), 8 deletions(-)
    
    diff --git a/src/com/fsck/k9/mail/internet/MimeUtility.java b/src/com/fsck/k9/mail/internet/MimeUtility.java
    index 32a8b1679..7eb4fa2ed 100644
    --- a/src/com/fsck/k9/mail/internet/MimeUtility.java
    +++ b/src/com/fsck/k9/mail/internet/MimeUtility.java
    @@ -875,10 +875,15 @@ public class MimeUtility {
             { "zirz", "application/vnd.zul"},
             { "zmm", "application/vnd.handheld-entertainment+xml"}
         };
    -    
    +
    +    /**
    +     * Table for MIME type replacements.
    +     *
    +     * Table format: wrong type, correct type
    +     */
         private static final String[][] MIME_TYPE_REPLACEMENT_MAP = new String[][] {
    -		{"image/jpg","image/jpeg"}
    -	};
    +        {"image/jpg", "image/jpeg"}
    +    };
     
         public static String unfold(String s) {
             if (s == null) {
    @@ -1194,13 +1199,17 @@ public class MimeUtility {
     
             return DEFAULT_ATTACHMENT_MIME_TYPE;
         }
    -    
    +
         /**
    -     * Table lookup for MIME type replacement, enabling easy fixes for issues similar to issue 873.
    -     * To map any MIME type to a different one, add a {originalMimeType, replacementMimeType} string pair to MIME_TYPE_REPLACEMENT_MAP.
    +     * Convert some wrong MIME types encountered in the wild to canonical MIME
    +     * types.
          *
    -     * @param mimeType the MIME type
    -     * @return the corrected MIME type
    +     * @param mimeType The original MIME type
    +     * @return If {@code mimeType} is known to be wrong the correct MIME type
    +     *         is returned. Otherwise the value of {@code mimeType} is returned
    +     *         unmodified.
    +     *
    +     * @see #MIME_TYPE_REPLACEMENT_MAP
          */
         public static String canonicalizeMimeType(String mimeType) {
     		for (String[] mimeTypeMapEntry : MIME_TYPE_REPLACEMENT_MAP) {
    
    From 7c5c29e87e29a5195b15902ac539f27dd0a3eada Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Thu, 24 Mar 2011 23:07:46 +0100
    Subject: [PATCH 046/310] Move MIME type fixing to AttachmentProvider
    
    ---
     src/com/fsck/k9/mail/store/LocalStore.java    | 38 +++----------------
     .../fsck/k9/provider/AttachmentProvider.java  | 13 ++++++-
     2 files changed, 16 insertions(+), 35 deletions(-)
    
    diff --git a/src/com/fsck/k9/mail/store/LocalStore.java b/src/com/fsck/k9/mail/store/LocalStore.java
    index e90e5a64e..4c2ede1e5 100644
    --- a/src/com/fsck/k9/mail/store/LocalStore.java
    +++ b/src/com/fsck/k9/mail/store/LocalStore.java
    @@ -988,49 +988,18 @@ public class LocalStore extends Store implements Serializable {
     
         }
     
    -    public String getAttachmentType(final String attachmentId) throws UnavailableStorageException {
    -        return database.execute(false, new DbCallback() {
    -            @Override
    -            public String doDbWork(final SQLiteDatabase db) throws WrappedException {
    -                Cursor cursor = null;
    -                try {
    -                    cursor = db.query(
    -                                 "attachments",
    -                                 new String[] { "mime_type", "name" },
    -                                 "id = ?",
    -                                 new String[] { attachmentId },
    -                                 null,
    -                                 null,
    -                                 null);
    -                    cursor.moveToFirst();
    -                    String type = cursor.getString(0);
    -                    String name = cursor.getString(1);
    -                    cursor.close();
    -
    -                    if (MimeUtility.DEFAULT_ATTACHMENT_MIME_TYPE.equalsIgnoreCase(type)) {
    -                        type = MimeUtility.getMimeTypeByExtension(name);
    -                    }
    -                    return type;
    -                } finally {
    -                    if (cursor != null) {
    -                        cursor.close();
    -                    }
    -                }
    -            }
    -        });
    -    }
    -
         public AttachmentInfo getAttachmentInfo(final String attachmentId) throws UnavailableStorageException {
             return database.execute(false, new DbCallback() {
                 @Override
                 public AttachmentInfo doDbWork(final SQLiteDatabase db) throws WrappedException {
                     String name;
    +                String type;
                     int size;
                     Cursor cursor = null;
                     try {
                         cursor = db.query(
                                      "attachments",
    -                                 new String[] { "name", "size" },
    +                                 new String[] { "name", "size", "mime_type" },
                                      "id = ?",
                                      new String[] { attachmentId },
                                      null,
    @@ -1041,9 +1010,11 @@ public class LocalStore extends Store implements Serializable {
                         }
                         name = cursor.getString(0);
                         size = cursor.getInt(1);
    +                    type = cursor.getString(2);
                         final AttachmentInfo attachmentInfo = new AttachmentInfo();
                         attachmentInfo.name = name;
                         attachmentInfo.size = size;
    +                    attachmentInfo.type = type;
                         return attachmentInfo;
                     } finally {
                         if (cursor != null) {
    @@ -1057,6 +1028,7 @@ public class LocalStore extends Store implements Serializable {
         public static class AttachmentInfo {
             public String name;
             public int size;
    +        public String type;
         }
     
         public void createFolders(final List foldersToCreate, final int visibleLimit) throws UnavailableStorageException {
    diff --git a/src/com/fsck/k9/provider/AttachmentProvider.java b/src/com/fsck/k9/provider/AttachmentProvider.java
    index 5deeecd61..2442278b5 100644
    --- a/src/com/fsck/k9/provider/AttachmentProvider.java
    +++ b/src/com/fsck/k9/provider/AttachmentProvider.java
    @@ -105,8 +105,17 @@ public class AttachmentProvider extends ContentProvider {
     
                 try {
                     final LocalStore localStore = LocalStore.getLocalInstance(account, K9.app);
    -                return MimeUtility.canonicalizeMimeType(localStore.getAttachmentType(id));
    -               
    +
    +                AttachmentInfo attachmentInfo = localStore.getAttachmentInfo(id);
    +                if (MimeUtility.DEFAULT_ATTACHMENT_MIME_TYPE.equalsIgnoreCase(attachmentInfo.type)) {
    +                    // If the MIME type is the generic "application/octet-stream"
    +                    // we try to find a better one by looking at the file extension.
    +                    return MimeUtility.getMimeTypeByExtension(attachmentInfo.name);
    +                } else {
    +                    // Some messages contain wrong MIME types. See if we know better.
    +                    return MimeUtility.canonicalizeMimeType(attachmentInfo.type);
    +                }
    +
                 } catch (MessagingException e) {
                     Log.e(K9.LOG_TAG, "Unable to retrieve LocalStore for " + account, e);
                     return null;
    
    From 522634fba7eee0c6bb7c8b3ca201e591f8db8b51 Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Thu, 24 Mar 2011 23:36:59 +0100
    Subject: [PATCH 047/310] Extend AttachmentProvider to be able to get "raw"
     attachment
    
    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")
    ---
     .../fsck/k9/provider/AttachmentProvider.java  | 39 +++++++++++++------
     src/com/fsck/k9/view/AttachmentView.java      |  4 +-
     2 files changed, 29 insertions(+), 14 deletions(-)
    
    diff --git a/src/com/fsck/k9/provider/AttachmentProvider.java b/src/com/fsck/k9/provider/AttachmentProvider.java
    index 2442278b5..a2f466b10 100644
    --- a/src/com/fsck/k9/provider/AttachmentProvider.java
    +++ b/src/com/fsck/k9/provider/AttachmentProvider.java
    @@ -30,6 +30,7 @@ public class AttachmentProvider extends ContentProvider {
         public static final Uri CONTENT_URI = Uri.parse("content://com.fsck.k9.attachmentprovider");
     
         private static final String FORMAT_RAW = "RAW";
    +    private static final String FORMAT_VIEW = "VIEW";
         private static final String FORMAT_THUMBNAIL = "THUMBNAIL";
     
         public static class AttachmentProviderColumns {
    @@ -40,7 +41,11 @@ public class AttachmentProvider extends ContentProvider {
         }
     
         public static Uri getAttachmentUri(Account account, long id) {
    -        return getAttachmentUri(account.getUuid(), id);
    +        return getAttachmentUri(account.getUuid(), id, true);
    +    }
    +
    +    public static Uri getAttachmentUriForViewing(Account account, long id) {
    +        return getAttachmentUri(account.getUuid(), id, false);
         }
     
         public static Uri getAttachmentThumbnailUri(Account account, long id, int width, int height) {
    @@ -53,11 +58,11 @@ public class AttachmentProvider extends ContentProvider {
                    .build();
         }
     
    -    private static Uri getAttachmentUri(String db, long id) {
    +    private static Uri getAttachmentUri(String db, long id, boolean raw) {
             return CONTENT_URI.buildUpon()
                    .appendPath(db)
                    .appendPath(Long.toString(id))
    -               .appendPath(FORMAT_RAW)
    +               .appendPath(raw ? FORMAT_RAW : FORMAT_VIEW)
                    .build();
         }
     
    @@ -98,6 +103,11 @@ public class AttachmentProvider extends ContentProvider {
             String dbName = segments.get(0);
             String id = segments.get(1);
             String format = segments.get(2);
    +
    +        return getType(dbName, id, format);
    +    }
    +
    +    private String getType(String dbName, String id, String format) {
             if (FORMAT_THUMBNAIL.equals(format)) {
                 return "image/png";
             } else {
    @@ -107,15 +117,21 @@ public class AttachmentProvider extends ContentProvider {
                     final LocalStore localStore = LocalStore.getLocalInstance(account, K9.app);
     
                     AttachmentInfo attachmentInfo = localStore.getAttachmentInfo(id);
    -                if (MimeUtility.DEFAULT_ATTACHMENT_MIME_TYPE.equalsIgnoreCase(attachmentInfo.type)) {
    -                    // If the MIME type is the generic "application/octet-stream"
    -                    // we try to find a better one by looking at the file extension.
    -                    return MimeUtility.getMimeTypeByExtension(attachmentInfo.name);
    +                if (FORMAT_VIEW.equals(format)) {
    +                    // When viewing the attachment we want the MIME type to be
    +                    // as sensible as possible. So we fix it up if necessary.
    +                    if (MimeUtility.DEFAULT_ATTACHMENT_MIME_TYPE.equalsIgnoreCase(attachmentInfo.type)) {
    +                        // If the MIME type is the generic "application/octet-stream"
    +                        // we try to find a better one by looking at the file extension.
    +                        return MimeUtility.getMimeTypeByExtension(attachmentInfo.name);
    +                    } else {
    +                        // Some messages contain wrong MIME types. See if we know better.
    +                        return MimeUtility.canonicalizeMimeType(attachmentInfo.type);
    +                    }
                     } else {
    -                    // Some messages contain wrong MIME types. See if we know better.
    -                    return MimeUtility.canonicalizeMimeType(attachmentInfo.type);
    +                    // When accessing the "raw" message we deliver the original MIME type.
    +                    return attachmentInfo.type;
                     }
    -
                 } catch (MessagingException e) {
                     Log.e(K9.LOG_TAG, "Unable to retrieve LocalStore for " + account, e);
                     return null;
    @@ -158,8 +174,7 @@ public class AttachmentProvider extends ContentProvider {
                 File dir = getContext().getCacheDir();
                 File file = new File(dir, filename);
                 if (!file.exists()) {
    -                Uri attachmentUri = getAttachmentUri(dbName, Long.parseLong(id));
    -                String type = getType(attachmentUri);
    +                String type = getType(dbName, id, FORMAT_VIEW);
                     try {
                         FileInputStream in = new FileInputStream(getFile(dbName, id));
                         try {
    diff --git a/src/com/fsck/k9/view/AttachmentView.java b/src/com/fsck/k9/view/AttachmentView.java
    index 21fea308b..ef911c897 100644
    --- a/src/com/fsck/k9/view/AttachmentView.java
    +++ b/src/com/fsck/k9/view/AttachmentView.java
    @@ -196,7 +196,7 @@ public class AttachmentView extends FrameLayout {
     
     
         public void showFile() {
    -        Uri uri = AttachmentProvider.getAttachmentUri(mAccount, part.getAttachmentId());
    +        Uri uri = AttachmentProvider.getAttachmentUriForViewing(mAccount, part.getAttachmentId());
             Intent intent = new Intent(Intent.ACTION_VIEW);
             intent.setData(uri);
             intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    @@ -227,7 +227,7 @@ public class AttachmentView extends FrameLayout {
                 return;
             }
             try {
    -            Uri uri = AttachmentProvider.getAttachmentUri(mAccount, part.getAttachmentId());
    +            Uri uri = AttachmentProvider.getAttachmentUriForViewing(mAccount, part.getAttachmentId());
                 Intent intent = new Intent(Intent.ACTION_VIEW);
                 intent.setData(uri);
                 intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    
    From 0aa03ccdc42043c7c7752883c31166ff2679c541 Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Fri, 25 Mar 2011 00:37:53 +0100
    Subject: [PATCH 048/310] Extract MIME type fixup code to method
     MimeUtility.getMimeTypeForViewing()
    
    ---
     .../fsck/k9/mail/internet/MimeUtility.java    | 20 +++++++++++++++++++
     .../fsck/k9/provider/AttachmentProvider.java  | 11 +---------
     src/com/fsck/k9/view/AttachmentView.java      |  5 +----
     3 files changed, 22 insertions(+), 14 deletions(-)
    
    diff --git a/src/com/fsck/k9/mail/internet/MimeUtility.java b/src/com/fsck/k9/mail/internet/MimeUtility.java
    index 7eb4fa2ed..24f9da2da 100644
    --- a/src/com/fsck/k9/mail/internet/MimeUtility.java
    +++ b/src/com/fsck/k9/mail/internet/MimeUtility.java
    @@ -1220,6 +1220,26 @@ public class MimeUtility {
     		return mimeType;
     	}
     
    +    /**
    +     * When viewing the attachment we want the MIME type to be as sensible as
    +     * possible. So we fix it up if necessary.
    +     *
    +     * @param mimeType The original MIME type of the attachment.
    +     * @param name The (file)name of the attachment.
    +     *
    +     * @return The best MIME type we can come up with.
    +     */
    +    public static String getMimeTypeForViewing(String mimeType, String name) {
    +        if (DEFAULT_ATTACHMENT_MIME_TYPE.equalsIgnoreCase(mimeType)) {
    +            // If the MIME type is the generic "application/octet-stream"
    +            // we try to find a better one by looking at the file extension.
    +            return getMimeTypeByExtension(name);
    +        } else {
    +            // Some messages contain wrong MIME types. See if we know better.
    +            return canonicalizeMimeType(mimeType);
    +        }
    +    }
    +
         private static Message getMessageFromPart(Part part) {
             while (part != null) {
                 if (part instanceof Message)
    diff --git a/src/com/fsck/k9/provider/AttachmentProvider.java b/src/com/fsck/k9/provider/AttachmentProvider.java
    index a2f466b10..126223d72 100644
    --- a/src/com/fsck/k9/provider/AttachmentProvider.java
    +++ b/src/com/fsck/k9/provider/AttachmentProvider.java
    @@ -118,16 +118,7 @@ public class AttachmentProvider extends ContentProvider {
     
                     AttachmentInfo attachmentInfo = localStore.getAttachmentInfo(id);
                     if (FORMAT_VIEW.equals(format)) {
    -                    // When viewing the attachment we want the MIME type to be
    -                    // as sensible as possible. So we fix it up if necessary.
    -                    if (MimeUtility.DEFAULT_ATTACHMENT_MIME_TYPE.equalsIgnoreCase(attachmentInfo.type)) {
    -                        // If the MIME type is the generic "application/octet-stream"
    -                        // we try to find a better one by looking at the file extension.
    -                        return MimeUtility.getMimeTypeByExtension(attachmentInfo.name);
    -                    } else {
    -                        // Some messages contain wrong MIME types. See if we know better.
    -                        return MimeUtility.canonicalizeMimeType(attachmentInfo.type);
    -                    }
    +                    return MimeUtility.getMimeTypeForViewing(attachmentInfo.type, attachmentInfo.name);
                     } else {
                         // When accessing the "raw" message we deliver the original MIME type.
                         return attachmentInfo.type;
    diff --git a/src/com/fsck/k9/view/AttachmentView.java b/src/com/fsck/k9/view/AttachmentView.java
    index ef911c897..1fff23319 100644
    --- a/src/com/fsck/k9/view/AttachmentView.java
    +++ b/src/com/fsck/k9/view/AttachmentView.java
    @@ -78,10 +78,7 @@ public class AttachmentView extends FrameLayout {
                 mListener = listener;
     
                 size = Integer.parseInt(MimeUtility.getHeaderParameter(contentDisposition, "size"));
    -            contentType = part.getMimeType();
    -            if (MimeUtility.DEFAULT_ATTACHMENT_MIME_TYPE.equalsIgnoreCase(contentType)) {
    -                contentType = MimeUtility.getMimeTypeByExtension(name);
    -            }
    +            contentType = MimeUtility.getMimeTypeForViewing(part.getMimeType(), name);
                 TextView attachmentName = (TextView) findViewById(R.id.attachment_name);
                 TextView attachmentInfo = (TextView) findViewById(R.id.attachment_info);
                 ImageView attachmentIcon = (ImageView) findViewById(R.id.attachment_icon);
    
    From c8d38da56851f61f6cd5a239d9cf2782f2553d47 Mon Sep 17 00:00:00 2001
    From: Jesse Vincent 
    Date: Sun, 27 Mar 2011 15:29:08 +0800
    Subject: [PATCH 049/310] Pull out the maximum acceptable message size from
     SMTP servers that tell us when we EHLO.
    
    Next step is to _use_ this data.
    ---
     src/com/fsck/k9/mail/transport/SmtpTransport.java | 13 +++++++++++++
     1 file changed, 13 insertions(+)
    
    diff --git a/src/com/fsck/k9/mail/transport/SmtpTransport.java b/src/com/fsck/k9/mail/transport/SmtpTransport.java
    index 5b9924347..6a3cac5c6 100644
    --- a/src/com/fsck/k9/mail/transport/SmtpTransport.java
    +++ b/src/com/fsck/k9/mail/transport/SmtpTransport.java
    @@ -62,6 +62,8 @@ public class SmtpTransport extends Transport {
         OutputStream mOut;
         private boolean m8bitEncodingAllowed;
     
    +    private int mLargestAcceptableMessage;
    +
         /**
          * smtp://user:password@server:port CONNECTION_SECURITY_NONE
          * smtp+tls://user:password@server:port CONNECTION_SECURITY_TLS_OPTIONAL
    @@ -185,6 +187,8 @@ public class SmtpTransport extends Transport {
     
                 m8bitEncodingAllowed = results.contains("8BITMIME");
     
    +
    +
                 /*
                  * TODO may need to add code to fall back to HELO I switched it from
                  * using HELO on non STARTTLS connections because of AOL's mail
    @@ -235,6 +239,15 @@ public class SmtpTransport extends Transport {
                     if (result.matches(".*AUTH.*CRAM-MD5.*$") && mAuthType != null && mAuthType.equals("CRAM_MD5")) {
                         authCramMD5Supported = true;
                     }
    +                if (result.matches(".*SIZE \\d*$")) {
    +                    try {
    +                        mLargestAcceptableMessage = Integer.parseInt( result.substring(result.lastIndexOf(' ') + 1));
    +                    } catch (Exception e) {
    +                       if (K9.DEBUG && K9.DEBUG_PROTOCOL_SMTP) {
    +                        Log.d(K9.LOG_TAG, "Tried to parse "+result+" and get an int out of the last word: "+e);
    +                       }
    +                    }
    +                }
                 }
     
                 if (mUsername != null && mUsername.length() > 0 && mPassword != null
    
    From 604e532879ef41236ef6685f4ff5f9ed178133c8 Mon Sep 17 00:00:00 2001
    From: Jesse Vincent 
    Date: Sun, 27 Mar 2011 23:06:08 +0800
    Subject: [PATCH 050/310] Add a method to calculate a message's serialized size
    
    ---
     src/com/fsck/k9/mail/Message.java | 25 +++++++++++++++++++++++++
     1 file changed, 25 insertions(+)
    
    diff --git a/src/com/fsck/k9/mail/Message.java b/src/com/fsck/k9/mail/Message.java
    index b5adc6c85..2a8ee2c57 100644
    --- a/src/com/fsck/k9/mail/Message.java
    +++ b/src/com/fsck/k9/mail/Message.java
    @@ -4,8 +4,17 @@ package com.fsck.k9.mail;
     import java.util.Date;
     import java.util.HashSet;
     import java.util.Set;
    +import java.io.IOException;
    +
    +import android.util.Log;
    +
     import com.fsck.k9.activity.MessageReference;
    +import com.fsck.k9.mail.filter.CountingOutputStream;
    +import com.fsck.k9.mail.filter.EOLConvertingOutputStream;
    +
     import com.fsck.k9.mail.store.UnavailableStorageException;
    +import com.fsck.k9.K9;
    +
     
     public abstract class Message implements Part, Body {
         private static final Flag[] EMPTY_FLAG_ARRAY = new Flag[0];
    @@ -199,4 +208,20 @@ public abstract class Message implements Part, Body {
             return tmpReference.equals(ref);
         }
     
    +    public long calculateSize() {
    +        try {
    +
    +            CountingOutputStream out = new CountingOutputStream();
    +            EOLConvertingOutputStream eolOut = new EOLConvertingOutputStream(out);
    +            writeTo(eolOut);
    +            eolOut.flush();
    +            return out.getCount();
    +        } catch (IOException e) {
    +            Log.e(K9.LOG_TAG, "Failed to calculate a message size: " + e);
    +        } catch (MessagingException e) {
    +            Log.e(K9.LOG_TAG, "Failed to calculate a message size: " + e);
    +        }
    +        return 0;
    +    }
    +
     }
    
    From 4f63a3de2476fc1845699a5eaa37332d03600609 Mon Sep 17 00:00:00 2001
    From: Jesse Vincent 
    Date: Sun, 27 Mar 2011 23:06:26 +0800
    Subject: [PATCH 051/310] Add a pair of methods to help optimize
     countingmessagestream
    
    ---
     src/com/fsck/k9/mail/filter/CountingOutputStream.java | 6 ++++++
     1 file changed, 6 insertions(+)
    
    diff --git a/src/com/fsck/k9/mail/filter/CountingOutputStream.java b/src/com/fsck/k9/mail/filter/CountingOutputStream.java
    index 19a5d7661..05960243d 100644
    --- a/src/com/fsck/k9/mail/filter/CountingOutputStream.java
    +++ b/src/com/fsck/k9/mail/filter/CountingOutputStream.java
    @@ -21,4 +21,10 @@ public class CountingOutputStream extends OutputStream {
         public void write(int oneByte) throws IOException {
             mCount++;
         }
    +    public void write(byte b[], int offset, int len) throws IOException {
    +        mCount += len;
    +    }
    +    public void write(byte[] b) throws IOException {
    +        mCount += b.length;
    +    }
     }
    
    From 97ec38d03f07240aaef8180c5ea15bd02c5c04b3 Mon Sep 17 00:00:00 2001
    From: Jesse Vincent 
    Date: Sun, 27 Mar 2011 23:07:03 +0800
    Subject: [PATCH 052/310] Move our IMAP Store to using a message's sizing
     method
    
    ---
     src/com/fsck/k9/mail/store/ImapStore.java | 10 ++--------
     1 file changed, 2 insertions(+), 8 deletions(-)
    
    diff --git a/src/com/fsck/k9/mail/store/ImapStore.java b/src/com/fsck/k9/mail/store/ImapStore.java
    index 12b7628d7..9658683bc 100644
    --- a/src/com/fsck/k9/mail/store/ImapStore.java
    +++ b/src/com/fsck/k9/mail/store/ImapStore.java
    @@ -74,7 +74,6 @@ import com.fsck.k9.mail.PushReceiver;
     import com.fsck.k9.mail.Pusher;
     import com.fsck.k9.mail.Store;
     import com.fsck.k9.mail.filter.Base64;
    -import com.fsck.k9.mail.filter.CountingOutputStream;
     import com.fsck.k9.mail.filter.EOLConvertingOutputStream;
     import com.fsck.k9.mail.filter.FixedLengthInputStream;
     import com.fsck.k9.mail.filter.Hex;
    @@ -1582,22 +1581,17 @@ public class ImapStore extends Store {
                 checkOpen();
                 try {
                     for (Message message : messages) {
    -                    CountingOutputStream out = new CountingOutputStream();
    -                    EOLConvertingOutputStream eolOut = new EOLConvertingOutputStream(out);
    -                    message.writeTo(eolOut);
    -                    eolOut.flush();
    -
                         mConnection.sendCommand(
                             String.format("APPEND %s (%s) {%d}",
                                           encodeString(encodeFolderName(getPrefixedName())),
                                           combineFlags(message.getFlags()),
    -                                      out.getCount()), false);
    +                                      message.calculateSize()), false);
                         ImapResponse response;
                         do {
                             response = mConnection.readResponse();
                             handleUntaggedResponse(response);
                             if (response.mCommandContinuationRequested) {
    -                            eolOut = new EOLConvertingOutputStream(mConnection.mOut);
    +                            EOLConvertingOutputStream eolOut = new EOLConvertingOutputStream(mConnection.mOut);
                                 message.writeTo(eolOut);
                                 eolOut.write('\r');
                                 eolOut.write('\n');
    
    From 03d05e9331f074216a05c3ec63d73540563a336b Mon Sep 17 00:00:00 2001
    From: Jesse Vincent 
    Date: Sun, 27 Mar 2011 23:07:37 +0800
    Subject: [PATCH 053/310] If an SMTP server tells us how big the biggest
     message they accept is, don't even try to deliver it to them
    
    ---
     .../fsck/k9/mail/transport/SmtpTransport.java | 21 ++++++++++++++-----
     1 file changed, 16 insertions(+), 5 deletions(-)
    
    diff --git a/src/com/fsck/k9/mail/transport/SmtpTransport.java b/src/com/fsck/k9/mail/transport/SmtpTransport.java
    index 6a3cac5c6..3dfb9fbfc 100644
    --- a/src/com/fsck/k9/mail/transport/SmtpTransport.java
    +++ b/src/com/fsck/k9/mail/transport/SmtpTransport.java
    @@ -13,6 +13,7 @@ import com.fsck.k9.mail.filter.PeekableInputStream;
     import com.fsck.k9.mail.filter.SmtpDataStuffing;
     import com.fsck.k9.mail.internet.MimeUtility;
     import com.fsck.k9.mail.store.TrustManagerFactory;
    +import com.fsck.k9.mail.store.LocalStore.LocalMessage;
     
     import javax.net.ssl.SSLContext;
     import javax.net.ssl.SSLException;
    @@ -241,11 +242,11 @@ public class SmtpTransport extends Transport {
                     }
                     if (result.matches(".*SIZE \\d*$")) {
                         try {
    -                        mLargestAcceptableMessage = Integer.parseInt( result.substring(result.lastIndexOf(' ') + 1));
    +                        mLargestAcceptableMessage = Integer.parseInt(result.substring(result.lastIndexOf(' ') + 1));
                         } catch (Exception e) {
    -                       if (K9.DEBUG && K9.DEBUG_PROTOCOL_SMTP) {
    -                        Log.d(K9.LOG_TAG, "Tried to parse "+result+" and get an int out of the last word: "+e);
    -                       }
    +                        if (K9.DEBUG && K9.DEBUG_PROTOCOL_SMTP) {
    +                            Log.d(K9.LOG_TAG, "Tried to parse " + result + " and get an int out of the last word: " + e);
    +                        }
                         }
                     }
                 }
    @@ -306,13 +307,23 @@ public class SmtpTransport extends Transport {
     
         private void sendMessageTo(ArrayList addresses, Message message)
         throws MessagingException {
    +        boolean possibleSend = false;
    +
             close();
             open();
     
             message.setEncoding(m8bitEncodingAllowed ? "8bit" : null);
    +        // If the message has attachments and our server has told us about a limit on
    +        // the size of messages, count the message's size before sending it
    +        if (mLargestAcceptableMessage > 0 && ((LocalMessage)message).hasAttachments()) {
    +            if (message.calculateSize() > mLargestAcceptableMessage) {
    +                MessagingException me = new MessagingException("Message too large for server");
    +                me.setPermanentFailure(possibleSend);
    +                throw me;
    +            }
    +        }
     
             Address[] from = message.getFrom();
    -        boolean possibleSend = false;
             try {
                 //TODO: Add BODY=8BITMIME parameter if appropriate?
                 executeSimpleCommand("MAIL FROM: " + "<" + from[0].getAddress() + ">");
    
    From 0f896ff606c7aefc7aa304bb5990a378ec4507ee Mon Sep 17 00:00:00 2001
    From: Jesse Vincent 
    Date: Tue, 29 Mar 2011 12:24:19 +0800
    Subject: [PATCH 054/310] fix our bump-version to push only the current tag
    
    ---
     build.xml | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/build.xml b/build.xml
    index 2ebbc8e7b..10975bff4 100644
    --- a/build.xml
    +++ b/build.xml
    @@ -94,7 +94,7 @@
             
         
         
    -        
    +        
         
         
     
    
    From 8b3648f88c5c617bf7b0f9060791b7b6b7f35187 Mon Sep 17 00:00:00 2001
    From: Jesse Vincent 
    Date: Tue, 29 Mar 2011 12:25:07 +0800
    Subject: [PATCH 055/310] Bumped manifest to 3.708
    
    ---
     AndroidManifest.xml | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/AndroidManifest.xml b/AndroidManifest.xml
    index 7f689fef9..40b556fa6 100644
    --- a/AndroidManifest.xml
    +++ b/AndroidManifest.xml
    @@ -1,8 +1,8 @@
     
     
         
    Date: Thu, 31 Mar 2011 21:39:52 +0800
    Subject: [PATCH 056/310] Fixed gcode #3182
    MIME-Version: 1.0
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: 8bit
    
    Sending mail (SMTP) doesn’t work is the SMTP server is picky about RFC
    conformance of envelope dialogue.
    
    k9mail:
    
    MAIL FROM: 
    RCPT TO: 
    
    rfc:
    
    MAIL FROM:
    RCPT TO:
    ---
     src/com/fsck/k9/mail/transport/SmtpTransport.java | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/src/com/fsck/k9/mail/transport/SmtpTransport.java b/src/com/fsck/k9/mail/transport/SmtpTransport.java
    index 3dfb9fbfc..6ab90e689 100644
    --- a/src/com/fsck/k9/mail/transport/SmtpTransport.java
    +++ b/src/com/fsck/k9/mail/transport/SmtpTransport.java
    @@ -326,9 +326,9 @@ public class SmtpTransport extends Transport {
             Address[] from = message.getFrom();
             try {
                 //TODO: Add BODY=8BITMIME parameter if appropriate?
    -            executeSimpleCommand("MAIL FROM: " + "<" + from[0].getAddress() + ">");
    +            executeSimpleCommand("MAIL FROM:" + "<" + from[0].getAddress() + ">");
                 for (String address : addresses) {
    -                executeSimpleCommand("RCPT TO: " + "<" + address + ">");
    +                executeSimpleCommand("RCPT TO:" + "<" + address + ">");
                 }
                 executeSimpleCommand("DATA");
     
    
    From 80f055a0a764d32f2ff12ac4602e3463052788b2 Mon Sep 17 00:00:00 2001
    From: Archibald Sheran 
    Date: Fri, 1 Apr 2011 05:34:09 +0800
    Subject: [PATCH 057/310] Issue 2296 Spam message
    
    ---
     res/values/ids.xml                        |  1 +
     res/values/strings.xml                    |  5 +++
     src/com/fsck/k9/K9.java                   | 12 +++++++
     src/com/fsck/k9/activity/MessageList.java | 41 +++++++++++++++++++----
     src/com/fsck/k9/activity/setup/Prefs.java |  6 ++--
     5 files changed, 57 insertions(+), 8 deletions(-)
    
    diff --git a/res/values/ids.xml b/res/values/ids.xml
    index b144b9153..67acc95a7 100644
    --- a/res/values/ids.xml
    +++ b/res/values/ids.xml
    @@ -2,6 +2,7 @@
     
     
         
    +    
         
     
     
    diff --git a/res/values/strings.xml b/res/values/strings.xml
    index ce6fbc769..f296f6a4b 100644
    --- a/res/values/strings.xml
    +++ b/res/values/strings.xml
    @@ -1024,6 +1024,11 @@ Welcome to K-9 Mail setup.  K-9 is an open source mail client for Android origin
         Do you want to delete this message?
         Delete
         Do not delete
    +    
    +    Confirm Spam
    +    Do you really want to mark this conversation as Spam?
    +    Report Spam
    +    No
     
         Downloading attachment
     
    diff --git a/src/com/fsck/k9/K9.java b/src/com/fsck/k9/K9.java
    index 8b9611f6e..ac1ae4cfd 100644
    --- a/src/com/fsck/k9/K9.java
    +++ b/src/com/fsck/k9/K9.java
    @@ -147,6 +147,7 @@ public class K9 extends Application {
         private static boolean mAnimations = true;
     
         private static boolean mConfirmDelete = false;
    +    private static boolean mConfirmSpam = false;
         private static boolean mKeyguardPrivacy = false;
     
         private static boolean mMessageListStars = true;
    @@ -444,6 +445,7 @@ public class K9 extends Application {
             editor.putBoolean("useGalleryBugWorkaround", useGalleryBugWorkaround);
     
             editor.putBoolean("confirmDelete", mConfirmDelete);
    +        editor.putBoolean("confirmSpam", mConfirmSpam);
     
             editor.putBoolean("keyguardPrivacy", mKeyguardPrivacy);
     
    @@ -496,6 +498,8 @@ public class K9 extends Application {
             useGalleryBugWorkaround = sprefs.getBoolean("useGalleryBugWorkaround", K9.isGalleryBuggy());
     
             mConfirmDelete = sprefs.getBoolean("confirmDelete", false);
    +        mConfirmSpam = sprefs.getBoolean("confirmSpam", false);
    +
     
             mKeyguardPrivacy = sprefs.getBoolean("keyguardPrivacy", false);
     
    @@ -933,6 +937,14 @@ public class K9 extends Application {
         public static void setConfirmDelete(final boolean confirm) {
             mConfirmDelete = confirm;
         }
    +    
    +    public static boolean confirmSpam(){
    +    	return mConfirmSpam;
    +    }
    +    
    +    public static void setConfirmSpam(final boolean confirm){
    +    	mConfirmSpam = confirm;
    +    }
     
         /**
          * @return Whether privacy rules should be applied when system is locked
    diff --git a/src/com/fsck/k9/activity/MessageList.java b/src/com/fsck/k9/activity/MessageList.java
    index 3627a9efe..9c4843400 100644
    --- a/src/com/fsck/k9/activity/MessageList.java
    +++ b/src/com/fsck/k9/activity/MessageList.java
    @@ -1131,15 +1131,20 @@ public class MessageList
         }
     
         private void onSpam(MessageInfoHolder holder) {
    -
    -        if (!mController.isMoveCapable(holder.message)) {
    +    	if (K9.confirmSpam()) {
    +            showDialog(R.id.dialog_confirm_spam);
    +        } else
    +        	spam(holder);
    +    }
    +    
    +    private void spam(MessageInfoHolder holder){
    +   	 if (!mController.isMoveCapable(holder.message)) {
                 Toast toast = Toast.makeText(this, R.string.move_copy_cannot_copy_unsynced_message, Toast.LENGTH_LONG);
                 toast.show();
                 return;
             }
    -
    -        onMoveChosen(holder, holder.message.getFolder().getAccount().getSpamFolderName());
    -    }
    +   	 onMoveChosen(holder, holder.message.getFolder().getAccount().getSpamFolderName());
    +   }
     
         private void onCopy(MessageInfoHolder holder) {
             if (!mController.isCopyCapable(holder.message.getFolder().getAccount())) {
    @@ -1257,6 +1262,8 @@ public class MessageList
             switch (id) {
             case DIALOG_MARK_ALL_AS_READ:
                 return createMarkAllAsReadDialog();
    +        case R.id.dialog_confirm_spam:
    +            return createConfirmSpamDialog(id);
             }
     
             return super.onCreateDialog(id);
    @@ -1308,6 +1315,28 @@ public class MessageList
             })
                    .create();
         }
    +    
    +    private Dialog createConfirmSpamDialog(final int id) {
    +        final AlertDialog.Builder builder = new AlertDialog.Builder(this);
    +        builder.setTitle(R.string.dialog_confirm_spam_title);
    +        builder.setMessage(R.string.dialog_confirm_spam_message);
    +        builder.setPositiveButton(R.string.dialog_confirm_spam_confirm_button,
    +        new DialogInterface.OnClickListener() {
    +            @Override
    +            public void onClick(DialogInterface dialog, int which) {
    +                dismissDialog(id);
    +                spam(mSelectedMessage);
    +            }
    +        });
    +        builder.setNegativeButton(R.string.dialog_confirm_spam_cancel_button,
    +        new DialogInterface.OnClickListener() {
    +            @Override
    +            public void onClick(DialogInterface dialog, int which) {
    +                dismissDialog(id);
    +            }
    +        });
    +        return builder.create();
    +    }
     
         private void onToggleRead(MessageInfoHolder holder) {
             mController.setFlag(holder.message.getFolder().getAccount(), holder.message.getFolder().getName(), new String[] { holder.uid }, Flag.SEEN, !holder.read);
    @@ -1541,7 +1570,7 @@ public class MessageList
             AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
             MessageInfoHolder holder = mSelectedMessage;
             // don't need this anymore
    -        mSelectedMessage = null;
    +        //mSelectedMessage = null;
             if (holder == null) {
                 holder = (MessageInfoHolder) mAdapter.getItem(info.position);
             }
    diff --git a/src/com/fsck/k9/activity/setup/Prefs.java b/src/com/fsck/k9/activity/setup/Prefs.java
    index 1e5096321..0270aa04f 100644
    --- a/src/com/fsck/k9/activity/setup/Prefs.java
    +++ b/src/com/fsck/k9/activity/setup/Prefs.java
    @@ -181,8 +181,9 @@ public class Prefs extends K9PreferenceActivity {
             mStartIntegratedInbox.setChecked(K9.startIntegratedInbox());
     
             mConfirmActions = (CheckBoxListPreference) findPreference(PREFERENCE_CONFIRM_ACTIONS);
    -        mConfirmActions.setItems(new CharSequence[] {getString(R.string.global_settings_confirm_action_delete)});
    -        mConfirmActions.setCheckedItems(new boolean[] {K9.confirmDelete()});
    +        mConfirmActions.setItems(new CharSequence[] {getString(R.string.global_settings_confirm_action_delete),
    +        		getString(R.string.global_settings_confirm_action_spam)});
    +        mConfirmActions.setCheckedItems(new boolean[] {K9.confirmDelete(), K9.confirmSpam()});
     
             mPrivacyMode = (CheckBoxPreference) findPreference(PREFERENCE_PRIVACY_MODE);
             mPrivacyMode.setChecked(K9.keyguardPrivacy());
    @@ -305,6 +306,7 @@ public class Prefs extends K9PreferenceActivity {
             K9.setManageBack(mManageBack.isChecked());
             K9.setStartIntegratedInbox(!mHideSpecialAccounts.isChecked() && mStartIntegratedInbox.isChecked());
             K9.setConfirmDelete(mConfirmActions.getCheckedItems()[0]);
    +        K9.setConfirmSpam(mConfirmActions.getCheckedItems()[1]);
             K9.setKeyguardPrivacy(mPrivacyMode.isChecked());
             K9.setMeasureAccounts(mMeasureAccounts.isChecked());
             K9.setCountSearchMessages(mCountSearch.isChecked());
    
    From 1f5909823221521862f66c0a72541a15d4573738 Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Fri, 1 Apr 2011 00:03:27 +0200
    Subject: [PATCH 058/310] Changed wording of "move to spam confirmation"
     strings
    
    ---
     res/values/strings.xml | 10 +++++-----
     1 file changed, 5 insertions(+), 5 deletions(-)
    
    diff --git a/res/values/strings.xml b/res/values/strings.xml
    index f296f6a4b..36be959d6 100644
    --- a/res/values/strings.xml
    +++ b/res/values/strings.xml
    @@ -1024,10 +1024,10 @@ Welcome to K-9 Mail setup.  K-9 is an open source mail client for Android origin
         Do you want to delete this message?
         Delete
         Do not delete
    -    
    -    Confirm Spam
    -    Do you really want to mark this conversation as Spam?
    -    Report Spam
    +
    +    Confirm move to Spam folder
    +    Do you really want to move this message to the Spam folder?
    +    Yes
         No
     
         Downloading attachment
    @@ -1039,5 +1039,5 @@ Welcome to K-9 Mail setup.  K-9 is an open source mail client for Android origin
         Unable to connect.
     
         Account \"%s\" is unavailable; check storage
    -    
    +
     
    
    From 449d4df2a9489a7a7993a8968b1b6ca307299cd3 Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Fri, 1 Apr 2011 03:13:23 +0200
    Subject: [PATCH 059/310] Minor code cleanup
    
    ---
     src/com/fsck/k9/activity/MessageList.java | 21 +++++++++++----------
     1 file changed, 11 insertions(+), 10 deletions(-)
    
    diff --git a/src/com/fsck/k9/activity/MessageList.java b/src/com/fsck/k9/activity/MessageList.java
    index 9c4843400..1162ac5e9 100644
    --- a/src/com/fsck/k9/activity/MessageList.java
    +++ b/src/com/fsck/k9/activity/MessageList.java
    @@ -1131,20 +1131,21 @@ public class MessageList
         }
     
         private void onSpam(MessageInfoHolder holder) {
    -    	if (K9.confirmSpam()) {
    +        if (K9.confirmSpam()) {
                 showDialog(R.id.dialog_confirm_spam);
    -        } else
    -        	spam(holder);
    +        } else {
    +            moveToSpamFolder(holder);
    +        }
         }
    -    
    -    private void spam(MessageInfoHolder holder){
    -   	 if (!mController.isMoveCapable(holder.message)) {
    +
    +    private void moveToSpamFolder(MessageInfoHolder holder){
    +        if (!mController.isMoveCapable(holder.message)) {
                 Toast toast = Toast.makeText(this, R.string.move_copy_cannot_copy_unsynced_message, Toast.LENGTH_LONG);
                 toast.show();
                 return;
             }
    -   	 onMoveChosen(holder, holder.message.getFolder().getAccount().getSpamFolderName());
    -   }
    +        onMoveChosen(holder, holder.message.getFolder().getAccount().getSpamFolderName());
    +    }
     
         private void onCopy(MessageInfoHolder holder) {
             if (!mController.isCopyCapable(holder.message.getFolder().getAccount())) {
    @@ -1315,7 +1316,7 @@ public class MessageList
             })
                    .create();
         }
    -    
    +
         private Dialog createConfirmSpamDialog(final int id) {
             final AlertDialog.Builder builder = new AlertDialog.Builder(this);
             builder.setTitle(R.string.dialog_confirm_spam_title);
    @@ -1325,7 +1326,7 @@ public class MessageList
                 @Override
                 public void onClick(DialogInterface dialog, int which) {
                     dismissDialog(id);
    -                spam(mSelectedMessage);
    +                moveToSpamFolder(mSelectedMessage);
                 }
             });
             builder.setNegativeButton(R.string.dialog_confirm_spam_cancel_button,
    
    From ac148a1ef782ce281dce3a3cf79331f2c40fe344 Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Fri, 1 Apr 2011 03:17:47 +0200
    Subject: [PATCH 060/310] Extracted confirmation dialog creation to
     ConfirmationDialog
    
    Confirmation dialogs in MessageList and MessageView now use the new
    ConfirmationDialog class.
    ---
     .../fsck/k9/activity/ConfirmationDialog.java  | 67 ++++++++++++++
     src/com/fsck/k9/activity/MessageList.java     | 90 +++++++------------
     src/com/fsck/k9/activity/MessageView.java     | 40 +++------
     3 files changed, 112 insertions(+), 85 deletions(-)
     create mode 100644 src/com/fsck/k9/activity/ConfirmationDialog.java
    
    diff --git a/src/com/fsck/k9/activity/ConfirmationDialog.java b/src/com/fsck/k9/activity/ConfirmationDialog.java
    new file mode 100644
    index 000000000..e61039cd4
    --- /dev/null
    +++ b/src/com/fsck/k9/activity/ConfirmationDialog.java
    @@ -0,0 +1,67 @@
    +package com.fsck.k9.activity;
    +
    +import android.app.Activity;
    +import android.app.AlertDialog;
    +import android.app.Dialog;
    +import android.content.DialogInterface;
    +
    +public class ConfirmationDialog {
    +
    +    /**
    +     * Creates a customized confirmation dialog ({@link AlertDialog}).
    +     *
    +     * @param activity The activity this dialog is created for.
    +     * @param dialogId The id that was used with {@link Activity#showDialog(int)}
    +     * @param title The resource id of the text to display in the dialog title
    +     * @param message The text to display in the main dialog area
    +     * @param confirmButton The resource id of the text to display in the confirm button
    +     * @param cancelButton The resource id of the text to display in the cancel button
    +     * @param action The action to perform if the user presses the confirm button
    +     * @return A confirmation dialog with the supplied arguments
    +     */
    +    public static Dialog create(final Activity activity, final int dialogId, final int title,
    +            final String message, final int confirmButton, final int cancelButton,
    +            final Runnable action) {
    +
    +        final AlertDialog.Builder builder = new AlertDialog.Builder(activity);
    +        builder.setTitle(title);
    +        builder.setMessage(message);
    +        builder.setPositiveButton(confirmButton,
    +            new DialogInterface.OnClickListener() {
    +                @Override
    +                public void onClick(DialogInterface dialog, int which) {
    +                    activity.dismissDialog(dialogId);
    +                    action.run();
    +                }
    +            });
    +        builder.setNegativeButton(cancelButton,
    +            new DialogInterface.OnClickListener() {
    +                @Override
    +                public void onClick(DialogInterface dialog, int which) {
    +                    activity.dismissDialog(dialogId);
    +                }
    +            });
    +        return builder.create();
    +    }
    +
    +    /**
    +     * Creates a customized confirmation dialog ({@link AlertDialog}).
    +     *
    +     * @param activity The activity this dialog is created for.
    +     * @param dialogId The id that was used with {@link Activity#showDialog(int)}
    +     * @param title The resource id of the text to display in the dialog title
    +     * @param message The resource id of text to display in the main dialog area
    +     * @param confirmButton The resource id of the text to display in the confirm button
    +     * @param cancelButton The resource id of the text to display in the cancel button
    +     * @param action The action to perform if the user presses the confirm button
    +     * @return A confirmation dialog with the supplied arguments
    +     * @see #create(Activity,int,int,String,int,int,Runnable)
    +     */
    +    public static Dialog create(final Activity activity, final int dialogId, final int title,
    +            final int message, final int confirmButton, final int cancelButton,
    +            final Runnable action) {
    +
    +        return create(activity, dialogId, title, activity.getString(message), confirmButton,
    +                cancelButton, action);
    +    }
    +}
    diff --git a/src/com/fsck/k9/activity/MessageList.java b/src/com/fsck/k9/activity/MessageList.java
    index 1162ac5e9..6b3730080 100644
    --- a/src/com/fsck/k9/activity/MessageList.java
    +++ b/src/com/fsck/k9/activity/MessageList.java
    @@ -11,7 +11,6 @@ import java.util.Map;
     import android.app.AlertDialog;
     import android.app.Dialog;
     import android.content.Context;
    -import android.content.DialogInterface;
     import android.content.Intent;
     import android.content.res.ColorStateList;
     import android.graphics.Typeface;
    @@ -1262,9 +1261,41 @@ public class MessageList
         public Dialog onCreateDialog(int id) {
             switch (id) {
             case DIALOG_MARK_ALL_AS_READ:
    -            return createMarkAllAsReadDialog();
    +            return ConfirmationDialog.create(this, id,
    +                    R.string.mark_all_as_read_dlg_title,
    +                    getString(R.string.mark_all_as_read_dlg_instructions_fmt,
    +                            mCurrentFolder.displayName),
    +                    R.string.okay_action,
    +                    R.string.cancel_action,
    +                    new Runnable() {
    +                        @Override
    +                        public void run() {
    +                            try {
    +                                mController.markAllMessagesRead(mAccount, mCurrentFolder.name);
    +
    +                                synchronized (mAdapter.messages) {
    +                                    for (MessageInfoHolder holder : mAdapter.messages) {
    +                                        holder.read = true;
    +                                    }
    +                                }
    +                                mHandler.sortMessages();
    +                            } catch (Exception e) {
    +                                // Ignore
    +                            }
    +                        }
    +                    });
             case R.id.dialog_confirm_spam:
    -            return createConfirmSpamDialog(id);
    +            return ConfirmationDialog.create(this, id,
    +                    R.string.dialog_confirm_spam_title,
    +                    R.string.dialog_confirm_spam_message,
    +                    R.string.dialog_confirm_spam_confirm_button,
    +                    R.string.dialog_confirm_spam_cancel_button,
    +                    new Runnable() {
    +                        @Override
    +                        public void run() {
    +                            moveToSpamFolder(mSelectedMessage);
    +                        }
    +                    });
             }
     
             return super.onCreateDialog(id);
    @@ -1286,59 +1317,6 @@ public class MessageList
             }
         }
     
    -    private Dialog createMarkAllAsReadDialog() {
    -        return new AlertDialog.Builder(this)
    -               .setTitle(R.string.mark_all_as_read_dlg_title)
    -               .setMessage(getString(R.string.mark_all_as_read_dlg_instructions_fmt,
    -                                     mCurrentFolder.displayName))
    -        .setPositiveButton(R.string.okay_action, new DialogInterface.OnClickListener() {
    -            public void onClick(DialogInterface dialog, int whichButton) {
    -                dismissDialog(DIALOG_MARK_ALL_AS_READ);
    -
    -                try {
    -                    mController.markAllMessagesRead(mAccount, mCurrentFolder.name);
    -
    -                    synchronized (mAdapter.messages) {
    -                        for (MessageInfoHolder holder : mAdapter.messages) {
    -                            holder.read = true;
    -                        }
    -                    }
    -                    mHandler.sortMessages();
    -                } catch (Exception e) {
    -                    // Ignore
    -                }
    -            }
    -        })
    -        .setNegativeButton(R.string.cancel_action, new DialogInterface.OnClickListener() {
    -            public void onClick(DialogInterface dialog, int whichButton) {
    -                dismissDialog(DIALOG_MARK_ALL_AS_READ);
    -            }
    -        })
    -               .create();
    -    }
    -
    -    private Dialog createConfirmSpamDialog(final int id) {
    -        final AlertDialog.Builder builder = new AlertDialog.Builder(this);
    -        builder.setTitle(R.string.dialog_confirm_spam_title);
    -        builder.setMessage(R.string.dialog_confirm_spam_message);
    -        builder.setPositiveButton(R.string.dialog_confirm_spam_confirm_button,
    -        new DialogInterface.OnClickListener() {
    -            @Override
    -            public void onClick(DialogInterface dialog, int which) {
    -                dismissDialog(id);
    -                moveToSpamFolder(mSelectedMessage);
    -            }
    -        });
    -        builder.setNegativeButton(R.string.dialog_confirm_spam_cancel_button,
    -        new DialogInterface.OnClickListener() {
    -            @Override
    -            public void onClick(DialogInterface dialog, int which) {
    -                dismissDialog(id);
    -            }
    -        });
    -        return builder.create();
    -    }
    -
         private void onToggleRead(MessageInfoHolder holder) {
             mController.setFlag(holder.message.getFolder().getAccount(), holder.message.getFolder().getName(), new String[] { holder.uid }, Flag.SEEN, !holder.read);
             holder.read = !holder.read;
    diff --git a/src/com/fsck/k9/activity/MessageView.java b/src/com/fsck/k9/activity/MessageView.java
    index b937a66ab..8c120ca9a 100644
    --- a/src/com/fsck/k9/activity/MessageView.java
    +++ b/src/com/fsck/k9/activity/MessageView.java
    @@ -1,10 +1,8 @@
     package com.fsck.k9.activity;
     
    -import android.app.AlertDialog;
     import android.app.Dialog;
     import android.app.ProgressDialog;
     import android.content.Context;
    -import android.content.DialogInterface;
     import android.content.Intent;
     import android.content.res.Configuration;
     import android.net.Uri;
    @@ -563,32 +561,6 @@ public class MessageView extends K9Activity implements OnClickListener {
             }
         }
     
    -    /**
    -     * @param id
    -     * @return Never null
    -     */
    -    protected Dialog createConfirmDeleteDialog(final int id) {
    -        final AlertDialog.Builder builder = new AlertDialog.Builder(this);
    -        builder.setTitle(R.string.dialog_confirm_delete_title);
    -        builder.setMessage(R.string.dialog_confirm_delete_message);
    -        builder.setPositiveButton(R.string.dialog_confirm_delete_confirm_button,
    -        new DialogInterface.OnClickListener() {
    -            @Override
    -            public void onClick(DialogInterface dialog, int which) {
    -                dismissDialog(id);
    -                delete();
    -            }
    -        });
    -        builder.setNegativeButton(R.string.dialog_confirm_delete_cancel_button,
    -        new DialogInterface.OnClickListener() {
    -            @Override
    -            public void onClick(DialogInterface dialog, int which) {
    -                dismissDialog(id);
    -            }
    -        });
    -        return builder.create();
    -    }
    -
         private void delete() {
             if (mMessage != null) {
                 // Disable the delete button after it's tapped (to try to prevent
    @@ -944,7 +916,17 @@ public class MessageView extends K9Activity implements OnClickListener {
         protected Dialog onCreateDialog(final int id) {
             switch (id) {
             case R.id.dialog_confirm_delete:
    -            return createConfirmDeleteDialog(id);
    +            return ConfirmationDialog.create(this, id,
    +                    R.string.dialog_confirm_delete_title,
    +                    R.string.dialog_confirm_delete_message,
    +                    R.string.dialog_confirm_delete_confirm_button,
    +                    R.string.dialog_confirm_delete_cancel_button,
    +                    new Runnable() {
    +                        @Override
    +                        public void run() {
    +                            delete();
    +                        }
    +                    });
             case R.id.dialog_attachment_progress:
                 ProgressDialog d = new ProgressDialog(this);
                 d.setIndeterminate(true);
    
    From ea9213cd4dd06b1589ce58e6ca26e87a887248e6 Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Fri, 1 Apr 2011 03:40:08 +0200
    Subject: [PATCH 061/310] Converted some more confirmation dialogs to use
     ConfirmationDialog
    
    ---
     src/com/fsck/k9/activity/Accounts.java   | 145 +++++++++--------------
     src/com/fsck/k9/activity/FolderList.java |  53 +++------
     2 files changed, 76 insertions(+), 122 deletions(-)
    
    diff --git a/src/com/fsck/k9/activity/Accounts.java b/src/com/fsck/k9/activity/Accounts.java
    index 9746025ff..b18470208 100644
    --- a/src/com/fsck/k9/activity/Accounts.java
    +++ b/src/com/fsck/k9/activity/Accounts.java
    @@ -456,11 +456,67 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC
         public Dialog onCreateDialog(int id) {
             switch (id) {
             case DIALOG_REMOVE_ACCOUNT:
    -            return createRemoveAccountDialog();
    +            return ConfirmationDialog.create(this, id,
    +                    R.string.account_delete_dlg_title,
    +                    getString(R.string.account_delete_dlg_instructions_fmt,
    +                            mSelectedContextAccount.getDescription()),
    +                    R.string.okay_action,
    +                    R.string.cancel_action,
    +                    new Runnable() {
    +                        @Override
    +                        public void run() {
    +                            if (mSelectedContextAccount instanceof Account) {
    +                                Account realAccount = (Account)mSelectedContextAccount;
    +                                try {
    +                                    realAccount.getLocalStore().delete();
    +                                } catch (Exception e) {
    +                                    // Ignore, this may lead to localStores on sd-cards that are
    +                                    // currently not inserted to be left
    +                                }
    +                                MessagingController.getInstance(getApplication())
    +                                    .notifyAccountCancel(Accounts.this, realAccount);
    +                                Preferences.getPreferences(Accounts.this).deleteAccount(realAccount);
    +                                K9.setServicesEnabled(Accounts.this);
    +                                refresh();
    +                            }
    +                        }
    +                    });
    +
             case DIALOG_CLEAR_ACCOUNT:
    -            return createClearAccountDialog();
    +            return ConfirmationDialog.create(this, id,
    +                    R.string.account_clear_dlg_title,
    +                    getString(R.string.account_clear_dlg_instructions_fmt,
    +                            mSelectedContextAccount.getDescription()),
    +                    R.string.okay_action,
    +                    R.string.cancel_action,
    +                    new Runnable() {
    +                        @Override
    +                        public void run() {
    +                            if (mSelectedContextAccount instanceof Account) {
    +                                Account realAccount = (Account)mSelectedContextAccount;
    +                                mHandler.workingAccount(realAccount, R.string.clearing_account);
    +                                MessagingController.getInstance(getApplication()).clear(realAccount, null);
    +                            }
    +                        }
    +                    });
    +
             case DIALOG_RECREATE_ACCOUNT:
    -            return createRecreateAccountDialog();
    +            return ConfirmationDialog.create(this, id,
    +                    R.string.account_recreate_dlg_title,
    +                    getString(R.string.account_recreate_dlg_instructions_fmt,
    +                            mSelectedContextAccount.getDescription()),
    +                    R.string.okay_action,
    +                    R.string.cancel_action,
    +                    new Runnable() {
    +                        @Override
    +                        public void run() {
    +                            if (mSelectedContextAccount instanceof Account) {
    +                                Account realAccount = (Account)mSelectedContextAccount;
    +                                mHandler.workingAccount(realAccount, R.string.recreating_account);
    +                                MessagingController.getInstance(getApplication()).recreate(realAccount, null);
    +                            }
    +                        }
    +                    });
             }
             return super.onCreateDialog(id);
         }
    @@ -487,89 +543,6 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC
             super.onPrepareDialog(id, d);
         }
     
    -
    -    private Dialog createRemoveAccountDialog() {
    -        return new AlertDialog.Builder(this)
    -               .setTitle(R.string.account_delete_dlg_title)
    -               .setMessage(getString(R.string.account_delete_dlg_instructions_fmt, mSelectedContextAccount.getDescription()))
    -        .setPositiveButton(R.string.okay_action, new DialogInterface.OnClickListener() {
    -            public void onClick(DialogInterface dialog, int whichButton) {
    -                dismissDialog(DIALOG_REMOVE_ACCOUNT);
    -                removeDialog(DIALOG_REMOVE_ACCOUNT);
    -
    -                if (mSelectedContextAccount instanceof Account) {
    -                    Account realAccount = (Account)mSelectedContextAccount;
    -                    try {
    -                        realAccount.getLocalStore().delete();
    -                    } catch (Exception e) {
    -                        // Ignore, this may lead to localStores on sd-cards that are currently not inserted to be left
    -                    }
    -                    MessagingController.getInstance(getApplication()).notifyAccountCancel(Accounts.this, realAccount);
    -                    Preferences.getPreferences(Accounts.this).deleteAccount(realAccount);
    -                    K9.setServicesEnabled(Accounts.this);
    -                    refresh();
    -                }
    -            }
    -        })
    -        .setNegativeButton(R.string.cancel_action, new DialogInterface.OnClickListener() {
    -            public void onClick(DialogInterface dialog, int whichButton) {
    -                dismissDialog(DIALOG_REMOVE_ACCOUNT);
    -                removeDialog(DIALOG_REMOVE_ACCOUNT);
    -            }
    -        })
    -               .create();
    -    }
    -
    -    private Dialog createClearAccountDialog() {
    -        return new AlertDialog.Builder(this)
    -               .setTitle(R.string.account_clear_dlg_title)
    -               .setMessage(getString(R.string.account_clear_dlg_instructions_fmt, mSelectedContextAccount.getDescription()))
    -        .setPositiveButton(R.string.okay_action, new DialogInterface.OnClickListener() {
    -            public void onClick(DialogInterface dialog, int whichButton) {
    -                dismissDialog(DIALOG_CLEAR_ACCOUNT);
    -                removeDialog(DIALOG_CLEAR_ACCOUNT);
    -
    -                if (mSelectedContextAccount instanceof Account) {
    -                    Account realAccount = (Account)mSelectedContextAccount;
    -                    mHandler.workingAccount(realAccount, R.string.clearing_account);
    -                    MessagingController.getInstance(getApplication()).clear(realAccount, null);
    -                }
    -            }
    -        })
    -        .setNegativeButton(R.string.cancel_action, new DialogInterface.OnClickListener() {
    -            public void onClick(DialogInterface dialog, int whichButton) {
    -                dismissDialog(DIALOG_CLEAR_ACCOUNT);
    -                removeDialog(DIALOG_CLEAR_ACCOUNT);
    -            }
    -        })
    -               .create();
    -    }
    -
    -    private Dialog createRecreateAccountDialog() {
    -        return new AlertDialog.Builder(this)
    -               .setTitle(R.string.account_recreate_dlg_title)
    -               .setMessage(getString(R.string.account_recreate_dlg_instructions_fmt, mSelectedContextAccount.getDescription()))
    -        .setPositiveButton(R.string.okay_action, new DialogInterface.OnClickListener() {
    -            public void onClick(DialogInterface dialog, int whichButton) {
    -                dismissDialog(DIALOG_RECREATE_ACCOUNT);
    -                removeDialog(DIALOG_RECREATE_ACCOUNT);
    -
    -                if (mSelectedContextAccount instanceof Account) {
    -                    Account realAccount = (Account)mSelectedContextAccount;
    -                    mHandler.workingAccount(realAccount, R.string.recreating_account);
    -                    MessagingController.getInstance(getApplication()).recreate(realAccount, null);
    -                }
    -            }
    -        })
    -        .setNegativeButton(R.string.cancel_action, new DialogInterface.OnClickListener() {
    -            public void onClick(DialogInterface dialog, int whichButton) {
    -                dismissDialog(DIALOG_RECREATE_ACCOUNT);
    -                removeDialog(DIALOG_RECREATE_ACCOUNT);
    -            }
    -        })
    -               .create();
    -    }
    -
         @Override
         public boolean onContextItemSelected(MenuItem item) {
             AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo)item.getMenuInfo();
    diff --git a/src/com/fsck/k9/activity/FolderList.java b/src/com/fsck/k9/activity/FolderList.java
    index 8f3e447e7..4a2d113c7 100644
    --- a/src/com/fsck/k9/activity/FolderList.java
    +++ b/src/com/fsck/k9/activity/FolderList.java
    @@ -3,7 +3,6 @@ package com.fsck.k9.activity;
     import android.app.AlertDialog;
     import android.app.Dialog;
     import android.content.Context;
    -import android.content.DialogInterface;
     import android.content.Intent;
     import android.net.Uri;
     import android.os.Bundle;
    @@ -640,7 +639,23 @@ public class FolderList extends K9ListActivity {
         public Dialog onCreateDialog(int id) {
             switch (id) {
             case DIALOG_MARK_ALL_AS_READ:
    -            return createMarkAllAsReadDialog();
    +            return ConfirmationDialog.create(this, id,
    +                    R.string.mark_all_as_read_dlg_title,
    +                    getString(R.string.mark_all_as_read_dlg_instructions_fmt,
    +                            mSelectedContextFolder.displayName),
    +                    R.string.okay_action,
    +                    R.string.cancel_action,
    +                    new Runnable() {
    +                        @Override
    +                        public void run() {
    +                            try {
    +                                MessagingController.getInstance(getApplication())
    +                                    .markAllMessagesRead(mAccount, mSelectedContextFolder.name);
    +                                mSelectedContextFolder.unreadMessageCount = 0;
    +                                mHandler.dataChanged();
    +                            } catch (Exception e) { /* Ignore */ }
    +                        }
    +                    });
             }
     
             return super.onCreateDialog(id);
    @@ -660,40 +675,6 @@ public class FolderList extends K9ListActivity {
             }
         }
     
    -    private Dialog createMarkAllAsReadDialog() {
    -        return new AlertDialog.Builder(this)
    -               .setTitle(R.string.mark_all_as_read_dlg_title)
    -               .setMessage(getString(R.string.mark_all_as_read_dlg_instructions_fmt,
    -                                     mSelectedContextFolder.displayName))
    -        .setPositiveButton(R.string.okay_action, new DialogInterface.OnClickListener() {
    -            public void onClick(DialogInterface dialog, int whichButton) {
    -                dismissDialog(DIALOG_MARK_ALL_AS_READ);
    -
    -                try {
    -
    -                    MessagingController.getInstance(getApplication()).markAllMessagesRead(mAccount, mSelectedContextFolder.name);
    -
    -                    mSelectedContextFolder.unreadMessageCount = 0;
    -
    -                    mHandler.dataChanged();
    -
    -
    -                } catch (Exception e) {
    -                    // Ignore
    -                }
    -            }
    -        })
    -
    -        .setNegativeButton(R.string.cancel_action, new DialogInterface.OnClickListener() {
    -            public void onClick(DialogInterface dialog, int whichButton) {
    -                dismissDialog(DIALOG_MARK_ALL_AS_READ);
    -            }
    -        })
    -
    -               .create();
    -    }
    -
    -
         @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
             super.onCreateContextMenu(menu, v, menuInfo);
             AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
    
    From e3e31062ad3ff6646fd0bc91d1e3d9891797e0ce Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Fri, 1 Apr 2011 03:45:50 +0200
    Subject: [PATCH 062/310] Only keep reference to selected message if necessary
    
    Only keep mSelectedMessage pointing to the currently selected message
    if we use the spam action and ask for confirmation before moving.
    ---
     src/com/fsck/k9/activity/MessageList.java | 6 +++++-
     1 file changed, 5 insertions(+), 1 deletion(-)
    
    diff --git a/src/com/fsck/k9/activity/MessageList.java b/src/com/fsck/k9/activity/MessageList.java
    index 6b3730080..4951c9c06 100644
    --- a/src/com/fsck/k9/activity/MessageList.java
    +++ b/src/com/fsck/k9/activity/MessageList.java
    @@ -1131,6 +1131,8 @@ public class MessageList
     
         private void onSpam(MessageInfoHolder holder) {
             if (K9.confirmSpam()) {
    +            // The action handler needs this to move the message later
    +            mSelectedMessage = holder;
                 showDialog(R.id.dialog_confirm_spam);
             } else {
                 moveToSpamFolder(holder);
    @@ -1294,6 +1296,8 @@ public class MessageList
                             @Override
                             public void run() {
                                 moveToSpamFolder(mSelectedMessage);
    +                            // No further need for this reference
    +                            mSelectedMessage = null;
                             }
                         });
             }
    @@ -1549,7 +1553,7 @@ public class MessageList
             AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
             MessageInfoHolder holder = mSelectedMessage;
             // don't need this anymore
    -        //mSelectedMessage = null;
    +        mSelectedMessage = null;
             if (holder == null) {
                 holder = (MessageInfoHolder) mAdapter.getItem(info.position);
             }
    
    From 53a316234c8da51b478ef658b805dcaaa8877660 Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Fri, 1 Apr 2011 03:52:34 +0200
    Subject: [PATCH 063/310] Lowercase "spam"
    
    ---
     res/values/strings.xml | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/res/values/strings.xml b/res/values/strings.xml
    index 36be959d6..91d1abed1 100644
    --- a/res/values/strings.xml
    +++ b/res/values/strings.xml
    @@ -1025,8 +1025,8 @@ Welcome to K-9 Mail setup.  K-9 is an open source mail client for Android origin
         Delete
         Do not delete
     
    -    Confirm move to Spam folder
    -    Do you really want to move this message to the Spam folder?
    +    Confirm move to spam folder
    +    Do you really want to move this message to the spam folder?
         Yes
         No
     
    
    From aa4c970baa64cbb9e70e5d03299722cd85cfefa4 Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Fri, 1 Apr 2011 04:21:27 +0200
    Subject: [PATCH 064/310] Added "move to spam folder" confirmation dialog to
     MessageList
    
    ---
     src/com/fsck/k9/activity/MessageView.java | 36 ++++++++++++++++++++---
     1 file changed, 32 insertions(+), 4 deletions(-)
    
    diff --git a/src/com/fsck/k9/activity/MessageView.java b/src/com/fsck/k9/activity/MessageView.java
    index 8c120ca9a..49d6243b0 100644
    --- a/src/com/fsck/k9/activity/MessageView.java
    +++ b/src/com/fsck/k9/activity/MessageView.java
    @@ -61,6 +61,12 @@ public class MessageView extends K9Activity implements OnClickListener {
         private MessageViewHandler mHandler = new MessageViewHandler();
         private StorageManager.StorageListener mStorageListener = new StorageListenerImplementation();
     
    +    /**
    +     * Used to temporarily store the destination folder for refile operations if a confirmation
    +     * dialog is shown.
    +     */
    +    private String mDstFolder;
    +
         private final class StorageListenerImplementation implements StorageManager.StorageListener {
             @Override
             public void onUnmount(String providerId) {
    @@ -581,17 +587,26 @@ public class MessageView extends K9Activity implements OnClickListener {
                 toast.show();
                 return;
             }
    -        String srcFolder = mMessageReference.folderName;
    -        Message messageToMove = mMessage;
    +
             if (K9.FOLDER_NONE.equalsIgnoreCase(dstFolder)) {
                 return;
             }
    +
    +        if (mAccount.getSpamFolderName().equals(dstFolder) && K9.confirmSpam()) {
    +            mDstFolder = dstFolder;
    +            showDialog(R.id.dialog_confirm_spam);
    +        } else {
    +            refileMessage(dstFolder);
    +        }
    +    }
    +
    +    private void refileMessage(String dstFolder) {
    +        String srcFolder = mMessageReference.folderName;
    +        Message messageToMove = mMessage;
             showNextMessageOrReturn();
             mController.moveMessage(mAccount, srcFolder, messageToMove, dstFolder, null);
         }
     
    -
    -
         private void showNextMessageOrReturn() {
             if (K9.messageViewReturnToList()) {
                 finish();
    @@ -927,6 +942,19 @@ public class MessageView extends K9Activity implements OnClickListener {
                                 delete();
                             }
                         });
    +        case R.id.dialog_confirm_spam:
    +            return ConfirmationDialog.create(this, id,
    +                    R.string.dialog_confirm_spam_title,
    +                    R.string.dialog_confirm_spam_message,
    +                    R.string.dialog_confirm_spam_confirm_button,
    +                    R.string.dialog_confirm_spam_cancel_button,
    +                    new Runnable() {
    +                        @Override
    +                        public void run() {
    +                            refileMessage(mDstFolder);
    +                            mDstFolder = null;
    +                        }
    +                    });
             case R.id.dialog_attachment_progress:
                 ProgressDialog d = new ProgressDialog(this);
                 d.setIndeterminate(true);
    
    From 319c9b0693103322dfb435befa7ee0cc4e2cfdcd Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Fri, 1 Apr 2011 04:30:34 +0200
    Subject: [PATCH 065/310] Added placeholders for "spam confirmation" strings to
     translations
    
    ---
     res/values-ca/strings.xml     | 5 +++++
     res/values-cs/strings.xml     | 5 +++++
     res/values-de/strings.xml     | 7 ++++++-
     res/values-es/strings.xml     | 5 +++++
     res/values-fi/strings.xml     | 5 +++++
     res/values-gl/strings.xml     | 5 +++++
     res/values-it/strings.xml     | 5 +++++
     res/values-ja/strings.xml     | 5 +++++
     res/values-nl/strings.xml     | 5 +++++
     res/values-pl/strings.xml     | 5 +++++
     res/values-pt-rBR/strings.xml | 5 +++++
     res/values-ru/strings.xml     | 5 +++++
     res/values-sv/strings.xml     | 5 +++++
     res/values-zh-rCN/strings.xml | 5 +++++
     14 files changed, 71 insertions(+), 1 deletion(-)
    
    diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
    index 2212d41e7..434e0c350 100644
    --- a/res/values-ca/strings.xml
    +++ b/res/values-ca/strings.xml
    @@ -1023,6 +1023,11 @@ Benvingut a la configuració del K-9.  El K-9 és un client de codi obert per An
         Esborra
         No esborris
     
    +    
    +    
    +    
    +    
    +
         
     
         Activada la depuració del registre al sistema de registre d’Android
    diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
    index 166985d49..6631d74ce 100644
    --- a/res/values-cs/strings.xml
    +++ b/res/values-cs/strings.xml
    @@ -1029,6 +1029,11 @@ Vítejte v nastavení pošty K-9 Mail.  K-9 je open source poštovní klient pro
         Smazat
         Nemazat
     
    +    
    +    
    +    
    +    
    +
         
     
         Ladící záznam do záznamového systému Androidu je povolen
    diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
    index 96d815059..8f96554fc 100644
    --- a/res/values-de/strings.xml
    +++ b/res/values-de/strings.xml
    @@ -1020,6 +1020,11 @@ Willkommen zum \"K-9 Mail\"-Setup. K-9 ist eine quelloffene E-Mail-Anwendung fü
         Löschen
         Nicht löschen
     
    +    
    +    
    +    
    +    
    +
         
     
         Debug-Meldungen werden mit Hilfe des Android-Logging-Systems aufgezeichnet.
    @@ -1029,5 +1034,5 @@ Willkommen zum \"K-9 Mail\"-Setup. K-9 ist eine quelloffene E-Mail-Anwendung fü
         Verbindungsfehler.
     
         Konto \"%s\" ist nicht verfügbar; Bitte SD-Karte prüfen.
    -    
    +
     
    diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
    index 3936ad5ad..6083c3eb2 100644
    --- a/res/values-es/strings.xml
    +++ b/res/values-es/strings.xml
    @@ -1020,6 +1020,11 @@ Bienvenido a la Configuración de K-9. K-9 es un cliente de correo OpenSource pa
         Borrar
         No borrar
     
    +    
    +    
    +    
    +    
    +
         Descargando adjunto
     
         Opción de depuración activa
    diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
    index d4c204cae..3f631a4a1 100644
    --- a/res/values-fi/strings.xml
    +++ b/res/values-fi/strings.xml
    @@ -1017,6 +1017,11 @@ Tervetuloa K-9 Mail asennukseen.  K-9 on avoimen lähdekoodin sähköpostiasiak
         Poista
         Älä poista
     
    +    
    +    
    +    
    +    
    +
         
     
         Vianselvitys lokikirjoitus Androidin lokiin otettu käyttöön
    diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
    index 733525bb2..eda6852eb 100644
    --- a/res/values-gl/strings.xml
    +++ b/res/values-gl/strings.xml
    @@ -1020,6 +1020,11 @@ Benvido á Configuración de K-9. K-9 é un cliente de correo OpenSource para An
         Borrar
         Non borrar
     
    +    
    +    
    +    
    +    
    +
         
     
         Opción de depuración activa
    diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
    index 7392812e8..440bdfa03 100644
    --- a/res/values-it/strings.xml
    +++ b/res/values-it/strings.xml
    @@ -1024,6 +1024,11 @@ Benvenuto nella configurazione della posta di K-9. K-9 è un client di posta ope
         Elimina
         Non eliminare
     
    +    
    +    
    +    
    +    
    +
         
     
         Registrazione dei log per il debug di Android abilitata
    diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
    index 4c0da394a..78db18f89 100644
    --- a/res/values-ja/strings.xml
    +++ b/res/values-ja/strings.xml
    @@ -1016,6 +1016,11 @@ K-9 Mail セットアップにようこそ。\nK-9 は標準のAndroidメール
         削除する
         削除しない
     
    +    
    +    
    +    
    +    
    +
         
     
         Android のログにデバッグ用のログを出力するように設定しました。
    diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
    index 7d62dec92..6c83221a1 100644
    --- a/res/values-nl/strings.xml
    +++ b/res/values-nl/strings.xml
    @@ -1020,6 +1020,11 @@ Welkom bij K-9 Mail setup.  K-9 is een open source mail cliënt voor Android, ge
         Verwijder
         Niet verwijderen
     
    +    
    +    
    +    
    +    
    +
         
     
         Debug logging van Android logging systeem ingeschakeld
    diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
    index 50d8ae2d1..694e8ab90 100644
    --- a/res/values-pl/strings.xml
    +++ b/res/values-pl/strings.xml
    @@ -1031,6 +1031,11 @@ Witaj w K-9 Mail, darmowym programie pocztowym dla systemu Android. Najistotniej
         
         
     
    +    
    +    
    +    
    +    
    +
         
     
         
    diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
    index 58044802e..18663de3c 100644
    --- a/res/values-pt-rBR/strings.xml
    +++ b/res/values-pt-rBR/strings.xml
    @@ -1016,6 +1016,11 @@ Bem-vindo à configuração do K-9 Mail. K-9 é um cliente de e-mail com código
         Excluir
         Não excluir
     
    +    
    +    
    +    
    +    
    +
         
     
         O log de depuração para o sistema Android foi habilitado
    diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
    index 921391fb3..2c18cb87b 100644
    --- a/res/values-ru/strings.xml
    +++ b/res/values-ru/strings.xml
    @@ -1014,6 +1014,11 @@
         
         
     
    +    
    +    
    +    
    +    
    +
         
     
         
    diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
    index 4420b1153..0703ad3c5 100644
    --- a/res/values-sv/strings.xml
    +++ b/res/values-sv/strings.xml
    @@ -1023,6 +1023,11 @@ Välkommen till installationen av K-9 E-post. K-9 är en e-postklient med öppen
         Radera
         Radera inte
     
    +    
    +    
    +    
    +    
    +
         
     
         Debug-loggning till Androids loggsystem är aktiverat
    diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
    index 3fb90088e..7096bd6ca 100644
    --- a/res/values-zh-rCN/strings.xml
    +++ b/res/values-zh-rCN/strings.xml
    @@ -1004,6 +1004,11 @@
         删除
         不要删除
     
    +    
    +    
    +    
    +    
    +
         
     
         已经启用将调试日志写入Andorid日志系统
    
    From 867b251e6d962a9065e16a498660fc2da2ffca52 Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Fri, 1 Apr 2011 04:36:29 +0200
    Subject: [PATCH 066/310] Added @Override annotations to fix warnings
    
    ---
     src/com/fsck/k9/mail/filter/CountingOutputStream.java | 4 ++++
     1 file changed, 4 insertions(+)
    
    diff --git a/src/com/fsck/k9/mail/filter/CountingOutputStream.java b/src/com/fsck/k9/mail/filter/CountingOutputStream.java
    index 05960243d..06b335b42 100644
    --- a/src/com/fsck/k9/mail/filter/CountingOutputStream.java
    +++ b/src/com/fsck/k9/mail/filter/CountingOutputStream.java
    @@ -21,9 +21,13 @@ public class CountingOutputStream extends OutputStream {
         public void write(int oneByte) throws IOException {
             mCount++;
         }
    +
    +    @Override
         public void write(byte b[], int offset, int len) throws IOException {
             mCount += len;
         }
    +
    +    @Override
         public void write(byte[] b) throws IOException {
             mCount += b.length;
         }
    
    From c852721f8ae855164b24f4097287171749e7900f Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Fri, 1 Apr 2011 05:03:05 +0200
    Subject: [PATCH 067/310] Added placeholders for missing strings to
     translations
    
    ---
     res/values-ca/strings.xml     | 4 ++++
     res/values-cs/strings.xml     | 5 +++++
     res/values-de/strings.xml     | 1 +
     res/values-es/strings.xml     | 4 ++++
     res/values-fi/strings.xml     | 6 +++++-
     res/values-gl/strings.xml     | 4 ++++
     res/values-it/strings.xml     | 4 ++++
     res/values-ja/strings.xml     | 4 ++++
     res/values-nl/strings.xml     | 4 ++++
     res/values-pl/strings.xml     | 6 +++++-
     res/values-pt-rBR/strings.xml | 6 +++++-
     res/values-ru/strings.xml     | 4 ++++
     res/values-sv/strings.xml     | 4 ++++
     res/values-zh-rCN/strings.xml | 4 ++++
     14 files changed, 57 insertions(+), 3 deletions(-)
    
    diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
    index 434e0c350..e79b74585 100644
    --- a/res/values-ca/strings.xml
    +++ b/res/values-ca/strings.xml
    @@ -267,6 +267,7 @@ Benvingut a la configuració del K-9.  El K-9 és un client de codi obert per An
         %s ha escrit:\n\n
         Text citat
         Has d’afegir-hi, com a mínim, un destinatari.
    +    
         Alguns adjunts no s’han carregat. Es carregaran automàticament abans no s’enviï aquest missatge.
         Alguns adjunts no es poden reenviar perquè no s’han carregat.
     
    @@ -1035,4 +1036,7 @@ Benvingut a la configuració del K-9.  El K-9 és un client de codi obert per An
         »
         
         No es pot connectar.
    +
    +    
    +
     
    diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
    index 6631d74ce..5a017ae28 100644
    --- a/res/values-cs/strings.xml
    +++ b/res/values-cs/strings.xml
    @@ -133,6 +133,7 @@
         Možnosti složky
     
         (Bez předmětu) 
    +    
         Bez odesílatele
         Dotazování
         (Dotazování %s%s)
    @@ -272,6 +273,7 @@ Vítejte v nastavení pošty K-9 Mail.  K-9 je open source poštovní klient pro
         %s napsal(a):\n\n
         Citovaný text
         Musíte přidat alespoň jednoho příjemce.
    +    
         Některé přílohy nebyly staženy. Budou staženy automaticky, než bude tato zpráva odeslána.
         Některé přílohy nelze přeposlat, protože ještě nebyly staženy.
     
    @@ -1041,4 +1043,7 @@ Vítejte v nastavení pošty K-9 Mail.  K-9 je open source poštovní klient pro
         »
         
         Nelze se připojit.
    +
    +    
    +
     
    diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
    index 8f96554fc..9c5cb97e0 100644
    --- a/res/values-de/strings.xml
    +++ b/res/values-de/strings.xml
    @@ -264,6 +264,7 @@ Willkommen zum \"K-9 Mail\"-Setup. K-9 ist eine quelloffene E-Mail-Anwendung fü
         \n\n%s schrieb:\n\n
         Zitierter Text
         Sie müssen mindestens einen Empfänger wählen.
    +    
         Einige Anhänge wurden nicht heruntergeladen. Sie werden automatisch heruntergeladen, bevor diese Nachricht gesendet wird.
         Einige Anhänge können nicht weitergeleitet werden, da diese nicht heruntergeladen wurden.
     
    diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
    index 6083c3eb2..fb80f53f7 100644
    --- a/res/values-es/strings.xml
    +++ b/res/values-es/strings.xml
    @@ -265,6 +265,7 @@ Bienvenido a la Configuración de K-9. K-9 es un cliente de correo OpenSource pa
         %s escribió:\n\n
         Citado
         Debes añadir un destinatario
    +    
         Algunos adjuntos no se han descargado. Serán descargados automáticamente antes de que se envíe el mensaje
         Algunos adjuntos no pueden reenviarse porque no han sido descargados.
     
    @@ -1032,4 +1033,7 @@ Bienvenido a la Configuración de K-9. K-9 es un cliente de correo OpenSource pa
         »
         
         Imposible conectar.
    +
    +    
    +
     
    diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
    index 3f631a4a1..992510a0e 100644
    --- a/res/values-fi/strings.xml
    +++ b/res/values-fi/strings.xml
    @@ -263,6 +263,7 @@ Tervetuloa K-9 Mail asennukseen.  K-9 on avoimen lähdekoodin sähköpostiasiak
         %s kirjoitti:\n\n
         Lainattu teksti
         Valitse ainakin yksi vastaanottaja.
    +    
         Kaikkia liitteitä ei ladattu. Ne ladataan automaattisest ennen tämän viestin lähettämistä.
         Joitakin liitteitä ei voida jatkolähettää, koska niitä ei ole ladattu.
     
    @@ -1029,4 +1030,7 @@ Tervetuloa K-9 Mail asennukseen.  K-9 on avoimen lähdekoodin sähköpostiasiak
         »
         
         Yhteyden muodostus epäonnistui.
    -  
    +
    +    
    +
    +
    diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
    index eda6852eb..a492208c8 100644
    --- a/res/values-gl/strings.xml
    +++ b/res/values-gl/strings.xml
    @@ -265,6 +265,7 @@ Benvido á Configuración de K-9. K-9 é un cliente de correo OpenSource para An
         %s escribiu:\n\n
         Citado
         Debes engadir un destinatario
    +    
         Algúns adxuntos non se descargaron. Serán descargados automáticamente antes de que mandar a mensaxe
         Algúns adxuntos non poden reenviarse porque non foron descargados.
     
    @@ -1032,4 +1033,7 @@ Benvido á Configuración de K-9. K-9 é un cliente de correo OpenSource para An
         »
         
         Imposible conectar.
    +
    +    
    +
     
    diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
    index 440bdfa03..e524100ef 100644
    --- a/res/values-it/strings.xml
    +++ b/res/values-it/strings.xml
    @@ -267,6 +267,7 @@ Benvenuto nella configurazione della posta di K-9. K-9 è un client di posta ope
         %s ha scritto:\n\n
         Testo quotato
         È necessario specificare almeno un destinatario.
    +    
         Alcuni allegati non sono stati scaricati. Verranno scaricati automaticamente prima che questo messaggio venga inviato.
         Alcuni allegati non possono essere inoltrati in quanto non sono stati scaricati.
     
    @@ -1036,4 +1037,7 @@ Benvenuto nella configurazione della posta di K-9. K-9 è un client di posta ope
         »
         
         Impossibile connettersi.
    +
    +    
    +
     
    diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
    index 78db18f89..8fc59c90d 100644
    --- a/res/values-ja/strings.xml
    +++ b/res/values-ja/strings.xml
    @@ -266,6 +266,7 @@ K-9 Mail セットアップにようこそ。\nK-9 は標準のAndroidメール
         %s wrote:\n\n
         テキスト引用
         少なくとも1つの受信者を追加する必要があります
    +    
         一部の添付ファイルをダウンロードしていません.このメールが送信される前に自動的にダウンロードされます.
         ダウンロードしていないため、一部の添付ファイルを転送することはできません.
     
    @@ -1028,4 +1029,7 @@ K-9 Mail セットアップにようこそ。\nK-9 は標準のAndroidメール
         \u00bb
         \u203a
         接続できません
    +
    +    
    +
     
    diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
    index 6c83221a1..7c8fec163 100644
    --- a/res/values-nl/strings.xml
    +++ b/res/values-nl/strings.xml
    @@ -266,6 +266,7 @@ Welkom bij K-9 Mail setup.  K-9 is een open source mail cliënt voor Android, ge
         %s wrote:\n\n
         Ge-quote tekst
         Minimaal 1 ontvanger kiezen.
    +    
         Sommige bijlage zijn niet gedownload. Deze worden automatisch gedownload voor dat dit bericht is verzonden.
         Sommige bijlagen kunnen niet worden doorgestuurd, omdat ze niet zijn gedownload.
     
    @@ -1032,4 +1033,7 @@ Welkom bij K-9 Mail setup.  K-9 is een open source mail cliënt voor Android, ge
         
         
         
    +
    +    
    +
     
    diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
    index 694e8ab90..055f3a132 100644
    --- a/res/values-pl/strings.xml
    +++ b/res/values-pl/strings.xml
    @@ -189,7 +189,7 @@
         
         
     
    -        %s (Szkice)
    +    %s (Szkice)
         %s (Śmietnik)
         %s (Wysłane)
         
    @@ -276,6 +276,7 @@ Witaj w K-9 Mail, darmowym programie pocztowym dla systemu Android. Najistotniej
         %s napisał:\n\n
         Cytowany tekst
         Musisz dodać co najmniej jednego odbiorcę.
    +    
         Niektóre załączniki nie zostały pobrane. Zostaną pobrane automatycznie przed wysłaniem tej wiadomości.
         Niektóre załączniki nie mogą byc przesłane dalej ponieważ nie zostały wcześniej pobrane.
     
    @@ -1043,4 +1044,7 @@ Witaj w K-9 Mail, darmowym programie pocztowym dla systemu Android. Najistotniej
         
         
         
    +
    +    
    +
     
    diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
    index 18663de3c..b3245d372 100644
    --- a/res/values-pt-rBR/strings.xml
    +++ b/res/values-pt-rBR/strings.xml
    @@ -139,6 +139,7 @@
         Enviando 
     
         Repetindo carregamento de mensagens
    +
         Toque para ver mais %d msgs.
     
         GB
    @@ -262,6 +263,7 @@ Bem-vindo à configuração do K-9 Mail. K-9 é um cliente de e-mail com código
         %s escreveu:\n\n
         Texto citado
         Você deve incluir ao menos um destinatário.
    +    
         Alguns anexos não foram incluídos. Eles poderão ser incluídos automaticamente antes desta mensagem ser enviada.
         Alguns anexos não podem ser encaminhados porque não foram inclusos na mensagem.
     
    @@ -1028,5 +1030,7 @@ Bem-vindo à configuração do K-9 Mail. K-9 é um cliente de e-mail com código
         
         
         Não é possível conectar.
    -
     
    +    
    +
    +
    diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
    index 2c18cb87b..c035227ef 100644
    --- a/res/values-ru/strings.xml
    +++ b/res/values-ru/strings.xml
    @@ -265,6 +265,7 @@
         %s написал(а):\n\n
         Цитированный текст
         Необходимо добавить хотя бы одного адресата.
    +    
         Некоторые вложения не были загружены. Они будут автоматически загружены перед отправкой этого сообщения.
         Некоторые вложения не могут быть пересланы, поскольку они не загрузились.
     
    @@ -1026,4 +1027,7 @@
         
         
         
    +
    +    
    +
     
    diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
    index 0703ad3c5..ee89f7d42 100644
    --- a/res/values-sv/strings.xml
    +++ b/res/values-sv/strings.xml
    @@ -267,6 +267,7 @@ Välkommen till installationen av K-9 E-post. K-9 är en e-postklient med öppen
         %s skrev:\n\n
         Citerad text
         Du måste ange åtminstone en mottagare.
    +    
         Några bilagor hämtades inte. De kommer att hämtas automatiskt innan detta brev sänds.
         Några bilagor kan inte vidarebefordras eftersom de inte har hämtats.
     
    @@ -1035,4 +1036,7 @@ Välkommen till installationen av K-9 E-post. K-9 är en e-postklient med öppen
         »
         
         Kan inte ansluta.
    +
    +    
    +
     
    diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
    index 7096bd6ca..ac6026da1 100644
    --- a/res/values-zh-rCN/strings.xml
    +++ b/res/values-zh-rCN/strings.xml
    @@ -254,6 +254,7 @@
         %s写到:\n\n
         引用文本
         您必须添加至少一个收件人。
    +    
         一些附件没有被下载。在这个邮件发送前会自动的下载这些附件。
         由于一些附件还没有被下载,因此无法转发这些附件。
     
    @@ -1016,4 +1017,7 @@
         
         
         
    +
    +    
    +
     
    
    From 4aec4b096c53d3558cd60848e97b0bf5eb639928 Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Fri, 1 Apr 2011 05:34:27 +0200
    Subject: [PATCH 068/310] Added option to disable confirmation dialog for "mark
     all as read"
    
    Fixes issue 1415
    ---
     res/values/strings.xml                    |  1 +
     src/com/fsck/k9/K9.java                   | 19 ++++++++++---
     src/com/fsck/k9/activity/FolderList.java  | 21 +++++++++-----
     src/com/fsck/k9/activity/MessageList.java | 34 ++++++++++++++---------
     src/com/fsck/k9/activity/setup/Prefs.java | 14 ++++++++--
     5 files changed, 62 insertions(+), 27 deletions(-)
    
    diff --git a/res/values/strings.xml b/res/values/strings.xml
    index 91d1abed1..8737904e7 100644
    --- a/res/values/strings.xml
    +++ b/res/values/strings.xml
    @@ -344,6 +344,7 @@ Welcome to K-9 Mail setup.  K-9 is an open source mail client for Android origin
         Archive
         Delete (message view only)
         Spam
    +    Mark all as read
         Send
     
         Lock-screen notifications
    diff --git a/src/com/fsck/k9/K9.java b/src/com/fsck/k9/K9.java
    index ac1ae4cfd..c193737da 100644
    --- a/src/com/fsck/k9/K9.java
    +++ b/src/com/fsck/k9/K9.java
    @@ -148,6 +148,7 @@ public class K9 extends Application {
     
         private static boolean mConfirmDelete = false;
         private static boolean mConfirmSpam = false;
    +    private static boolean mConfirmMarkAllAsRead = true;
         private static boolean mKeyguardPrivacy = false;
     
         private static boolean mMessageListStars = true;
    @@ -446,6 +447,7 @@ public class K9 extends Application {
     
             editor.putBoolean("confirmDelete", mConfirmDelete);
             editor.putBoolean("confirmSpam", mConfirmSpam);
    +        editor.putBoolean("confirmMarkAllAsRead", mConfirmMarkAllAsRead);
     
             editor.putBoolean("keyguardPrivacy", mKeyguardPrivacy);
     
    @@ -499,6 +501,7 @@ public class K9 extends Application {
     
             mConfirmDelete = sprefs.getBoolean("confirmDelete", false);
             mConfirmSpam = sprefs.getBoolean("confirmSpam", false);
    +        mConfirmMarkAllAsRead = sprefs.getBoolean("confirmMarkAllAsRead", true);
     
     
             mKeyguardPrivacy = sprefs.getBoolean("keyguardPrivacy", false);
    @@ -937,15 +940,23 @@ public class K9 extends Application {
         public static void setConfirmDelete(final boolean confirm) {
             mConfirmDelete = confirm;
         }
    -    
    -    public static boolean confirmSpam(){
    +
    +    public static boolean confirmSpam() {
         	return mConfirmSpam;
         }
    -    
    -    public static void setConfirmSpam(final boolean confirm){
    +
    +    public static void setConfirmSpam(final boolean confirm) {
         	mConfirmSpam = confirm;
         }
     
    +    public static boolean confirmMarkAllAsRead() {
    +        return mConfirmMarkAllAsRead;
    +    }
    +
    +    public static void setConfirmMarkAllAsRead(final boolean confirm) {
    +        mConfirmMarkAllAsRead = confirm;
    +    }
    +
         /**
          * @return Whether privacy rules should be applied when system is locked
          */
    diff --git a/src/com/fsck/k9/activity/FolderList.java b/src/com/fsck/k9/activity/FolderList.java
    index 4a2d113c7..62982cba5 100644
    --- a/src/com/fsck/k9/activity/FolderList.java
    +++ b/src/com/fsck/k9/activity/FolderList.java
    @@ -631,9 +631,21 @@ public class FolderList extends K9ListActivity {
     
         private void onMarkAllAsRead(final Account account, final String folder) {
             mSelectedContextFolder = mAdapter.getFolder(folder);
    -        showDialog(DIALOG_MARK_ALL_AS_READ);
    +        if (K9.confirmMarkAllAsRead()) {
    +            showDialog(DIALOG_MARK_ALL_AS_READ);
    +        } else {
    +            markAllAsRead();
    +        }
         }
     
    +    private void markAllAsRead() {
    +        try {
    +            MessagingController.getInstance(getApplication())
    +                .markAllMessagesRead(mAccount, mSelectedContextFolder.name);
    +            mSelectedContextFolder.unreadMessageCount = 0;
    +            mHandler.dataChanged();
    +        } catch (Exception e) { /* Ignore */ }
    +    }
     
         @Override
         public Dialog onCreateDialog(int id) {
    @@ -648,12 +660,7 @@ public class FolderList extends K9ListActivity {
                         new Runnable() {
                             @Override
                             public void run() {
    -                            try {
    -                                MessagingController.getInstance(getApplication())
    -                                    .markAllMessagesRead(mAccount, mSelectedContextFolder.name);
    -                                mSelectedContextFolder.unreadMessageCount = 0;
    -                                mHandler.dataChanged();
    -                            } catch (Exception e) { /* Ignore */ }
    +                            markAllAsRead();
                             }
                         });
             }
    diff --git a/src/com/fsck/k9/activity/MessageList.java b/src/com/fsck/k9/activity/MessageList.java
    index 4951c9c06..4965cd478 100644
    --- a/src/com/fsck/k9/activity/MessageList.java
    +++ b/src/com/fsck/k9/activity/MessageList.java
    @@ -1252,7 +1252,26 @@ public class MessageList
         }
     
         private void onMarkAllAsRead(final Account account, final String folder) {
    -        showDialog(DIALOG_MARK_ALL_AS_READ);
    +        if (K9.confirmMarkAllAsRead()) {
    +            showDialog(DIALOG_MARK_ALL_AS_READ);
    +        } else {
    +            markAllAsRead();
    +        }
    +    }
    +
    +    private void markAllAsRead() {
    +        try {
    +            mController.markAllMessagesRead(mAccount, mCurrentFolder.name);
    +
    +            synchronized (mAdapter.messages) {
    +                for (MessageInfoHolder holder : mAdapter.messages) {
    +                    holder.read = true;
    +                }
    +            }
    +            mHandler.sortMessages();
    +        } catch (Exception e) {
    +            // Ignore
    +        }
         }
     
         private void onExpunge(final Account account, String folderName) {
    @@ -1272,18 +1291,7 @@ public class MessageList
                         new Runnable() {
                             @Override
                             public void run() {
    -                            try {
    -                                mController.markAllMessagesRead(mAccount, mCurrentFolder.name);
    -
    -                                synchronized (mAdapter.messages) {
    -                                    for (MessageInfoHolder holder : mAdapter.messages) {
    -                                        holder.read = true;
    -                                    }
    -                                }
    -                                mHandler.sortMessages();
    -                            } catch (Exception e) {
    -                                // Ignore
    -                            }
    +                            markAllAsRead();
                             }
                         });
             case R.id.dialog_confirm_spam:
    diff --git a/src/com/fsck/k9/activity/setup/Prefs.java b/src/com/fsck/k9/activity/setup/Prefs.java
    index 0270aa04f..2a2c51b93 100644
    --- a/src/com/fsck/k9/activity/setup/Prefs.java
    +++ b/src/com/fsck/k9/activity/setup/Prefs.java
    @@ -181,9 +181,16 @@ public class Prefs extends K9PreferenceActivity {
             mStartIntegratedInbox.setChecked(K9.startIntegratedInbox());
     
             mConfirmActions = (CheckBoxListPreference) findPreference(PREFERENCE_CONFIRM_ACTIONS);
    -        mConfirmActions.setItems(new CharSequence[] {getString(R.string.global_settings_confirm_action_delete),
    -        		getString(R.string.global_settings_confirm_action_spam)});
    -        mConfirmActions.setCheckedItems(new boolean[] {K9.confirmDelete(), K9.confirmSpam()});
    +        mConfirmActions.setItems(new CharSequence[] {
    +                getString(R.string.global_settings_confirm_action_delete),
    +                getString(R.string.global_settings_confirm_action_spam),
    +                getString(R.string.global_settings_confirm_action_mark_all_as_read)
    +                });
    +        mConfirmActions.setCheckedItems(new boolean[] {
    +                K9.confirmDelete(),
    +                K9.confirmSpam(),
    +                K9.confirmMarkAllAsRead()
    +                });
     
             mPrivacyMode = (CheckBoxPreference) findPreference(PREFERENCE_PRIVACY_MODE);
             mPrivacyMode.setChecked(K9.keyguardPrivacy());
    @@ -307,6 +314,7 @@ public class Prefs extends K9PreferenceActivity {
             K9.setStartIntegratedInbox(!mHideSpecialAccounts.isChecked() && mStartIntegratedInbox.isChecked());
             K9.setConfirmDelete(mConfirmActions.getCheckedItems()[0]);
             K9.setConfirmSpam(mConfirmActions.getCheckedItems()[1]);
    +        K9.setConfirmMarkAllAsRead(mConfirmActions.getCheckedItems()[2]);
             K9.setKeyguardPrivacy(mPrivacyMode.isChecked());
             K9.setMeasureAccounts(mMeasureAccounts.isChecked());
             K9.setCountSearchMessages(mCountSearch.isChecked());
    
    From 9d86e065a27f125c511eda979695f44c7aa4241b Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Fri, 1 Apr 2011 05:41:16 +0200
    Subject: [PATCH 069/310] Added placeholders for newly added string to
     translations
    
    ---
     res/values-ca/strings.xml     | 1 +
     res/values-cs/strings.xml     | 1 +
     res/values-de/strings.xml     | 1 +
     res/values-es/strings.xml     | 1 +
     res/values-fi/strings.xml     | 1 +
     res/values-gl/strings.xml     | 1 +
     res/values-it/strings.xml     | 1 +
     res/values-ja/strings.xml     | 1 +
     res/values-nl/strings.xml     | 1 +
     res/values-pl/strings.xml     | 1 +
     res/values-pt-rBR/strings.xml | 1 +
     res/values-ru/strings.xml     | 1 +
     res/values-sv/strings.xml     | 1 +
     res/values-zh-rCN/strings.xml | 1 +
     14 files changed, 14 insertions(+)
    
    diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
    index e79b74585..96ec8334a 100644
    --- a/res/values-ca/strings.xml
    +++ b/res/values-ca/strings.xml
    @@ -344,6 +344,7 @@ Benvingut a la configuració del K-9.  El K-9 és un client de codi obert per An
         Arxiva
         Esborra (només la vista del missatge)
         Brossa
    +    
         Envia
     
         Bloca notificacions
    diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
    index 5a017ae28..beeb45308 100644
    --- a/res/values-cs/strings.xml
    +++ b/res/values-cs/strings.xml
    @@ -350,6 +350,7 @@ Vítejte v nastavení pošty K-9 Mail.  K-9 je open source poštovní klient pro
         Archivace
         Mazání (jen v zobrazení zpráv)
         Nevyžádaná
    +    
         Odesílání
     
         Oznámení při zamčené obrazovce
    diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
    index 9c5cb97e0..6e72d4e56 100644
    --- a/res/values-de/strings.xml
    +++ b/res/values-de/strings.xml
    @@ -341,6 +341,7 @@ Willkommen zum \"K-9 Mail\"-Setup. K-9 ist eine quelloffene E-Mail-Anwendung fü
         Archivieren
         Löschen (nur in Nachrichtenansicht)
         Spam
    +    
         Senden
     
         Vertrauliche Benachrichtigung
    diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
    index fb80f53f7..08c5a51d7 100644
    --- a/res/values-es/strings.xml
    +++ b/res/values-es/strings.xml
    @@ -342,6 +342,7 @@ Bienvenido a la Configuración de K-9. K-9 es un cliente de correo OpenSource pa
         Archivar
         Borrar (Mensajes en la vista)
         Spam
    +    
         Enviados
     
         Bloquear notificaciones
    diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
    index 992510a0e..bf46e58ea 100644
    --- a/res/values-fi/strings.xml
    +++ b/res/values-fi/strings.xml
    @@ -340,6 +340,7 @@ Tervetuloa K-9 Mail asennukseen.  K-9 on avoimen lähdekoodin sähköpostiasiak
         Arkistoi
         Poista (vain viestilistassa)
         Roskaposti
    +    
         Lähetä
     
         Lukitusnäytön ilmoitukset
    diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
    index a492208c8..e505cb30b 100644
    --- a/res/values-gl/strings.xml
    +++ b/res/values-gl/strings.xml
    @@ -342,6 +342,7 @@ Benvido á Configuración de K-9. K-9 é un cliente de correo OpenSource para An
         Arquivar
         Borrar (Mensaxes na vista)
         Spam
    +    
         Enviados
     
         Bloquear notificacións
    diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
    index e524100ef..e4b8dbb9a 100644
    --- a/res/values-it/strings.xml
    +++ b/res/values-it/strings.xml
    @@ -344,6 +344,7 @@ Benvenuto nella configurazione della posta di K-9. K-9 è un client di posta ope
         Archivia
         Elimina (soltanto in visualizzazione messaggi)
         Spam
    +    
         Invia
     
         Notifiche con blocco dello schermo
    diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
    index 8fc59c90d..645c50736 100644
    --- a/res/values-ja/strings.xml
    +++ b/res/values-ja/strings.xml
    @@ -342,6 +342,7 @@ K-9 Mail セットアップにようこそ。\nK-9 は標準のAndroidメール
         アーカイブ
         削除(メッセージ表示画面のみ)
         迷惑メール
    +    
         送信
     
         スクリーンロック時の通知
    diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
    index 7c8fec163..fbbd28747 100644
    --- a/res/values-nl/strings.xml
    +++ b/res/values-nl/strings.xml
    @@ -343,6 +343,7 @@ Welkom bij K-9 Mail setup.  K-9 is een open source mail cliënt voor Android, ge
         Archief
         Verwijder (alleen berichten bekijken)
         Spam
    +    
         Verzonden
     
         Lock-screen meldingen
    diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
    index 055f3a132..15ed09adb 100644
    --- a/res/values-pl/strings.xml
    +++ b/res/values-pl/strings.xml
    @@ -353,6 +353,7 @@ Witaj w K-9 Mail, darmowym programie pocztowym dla systemu Android. Najistotniej
         
         
         
    +    
         
     
         
    diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
    index b3245d372..985402e68 100644
    --- a/res/values-pt-rBR/strings.xml
    +++ b/res/values-pt-rBR/strings.xml
    @@ -340,6 +340,7 @@ Bem-vindo à configuração do K-9 Mail. K-9 é um cliente de e-mail com código
         Arquivo
         Excluir (apenas visualização)
         Spam
    +    
         Enviar
     
         Notificações de bloqueio de tela
    diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
    index c035227ef..385ba22fe 100644
    --- a/res/values-ru/strings.xml
    +++ b/res/values-ru/strings.xml
    @@ -342,6 +342,7 @@
         
         
         
    +    
         
     
         
    diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
    index ee89f7d42..fe28f9f1c 100644
    --- a/res/values-sv/strings.xml
    +++ b/res/values-sv/strings.xml
    @@ -344,6 +344,7 @@ Välkommen till installationen av K-9 E-post. K-9 är en e-postklient med öppen
         Arkivera
         Radera (endast meddelandevyn)
         Skräp
    +    
         Skicka
     
         Privatläge
    diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
    index ac6026da1..c431f76dd 100644
    --- a/res/values-zh-rCN/strings.xml
    +++ b/res/values-zh-rCN/strings.xml
    @@ -331,6 +331,7 @@
         归档
         删除(仅用于邮件视图)
         标记为垃圾
    +    
         发送
     
         锁屏通知
    
    From 275ffd56a5ad5ce0aaeaeade63bffb4f7f6fedd4 Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Fri, 1 Apr 2011 06:08:22 +0200
    Subject: [PATCH 070/310] Updated catalan translation (dvbotet)
    
    ---
     res/values-ca/strings.xml | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
    index 96ec8334a..6c7dcce52 100644
    --- a/res/values-ca/strings.xml
    +++ b/res/values-ca/strings.xml
    @@ -3,7 +3,7 @@
         K-9 Mail
         K-9 Mail BETA
         Google, The K-9 Dog Walkers.
    -    
    +    Copyright 2008-%s The K-9 Dog Walkers. Porcions de Copyright 2006-%s Projecte de codi obert d'Android.
         Llicenciat sota Llicència Apache, Versió 2.0.
         Autors: %s
         http://code.google.com/p/k9mail/wiki/ReleaseNotes
    @@ -1030,7 +1030,7 @@ Benvingut a la configuració del K-9.  El K-9 és un client de codi obert per An
         
         
     
    -    
    +    S'està descarregant adjunt
     
         Activada la depuració del registre al sistema de registre d’Android
     
    
    From 4b5fe3250499c983fd9f84ed5f02a299d8174217 Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Fri, 1 Apr 2011 06:42:09 +0200
    Subject: [PATCH 071/310] Apostrophe fix
    
    ---
     res/values-ca/strings.xml | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
    index 6c7dcce52..7284788f1 100644
    --- a/res/values-ca/strings.xml
    +++ b/res/values-ca/strings.xml
    @@ -3,7 +3,7 @@
         K-9 Mail
         K-9 Mail BETA
         Google, The K-9 Dog Walkers.
    -    Copyright 2008-%s The K-9 Dog Walkers. Porcions de Copyright 2006-%s Projecte de codi obert d'Android.
    +    Copyright 2008-%s The K-9 Dog Walkers. Porcions de Copyright 2006-%s Projecte de codi obert d\'Android.
         Llicenciat sota Llicència Apache, Versió 2.0.
         Autors: %s
         http://code.google.com/p/k9mail/wiki/ReleaseNotes
    @@ -1030,7 +1030,7 @@ Benvingut a la configuració del K-9.  El K-9 és un client de codi obert per An
         
         
     
    -    S'està descarregant adjunt
    +    S\'està descarregant adjunt
     
         Activada la depuració del registre al sistema de registre d’Android
     
    
    From 8a112f04f9c1dcad8c4730687c93fb7addd6b20e Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Fri, 1 Apr 2011 06:44:50 +0200
    Subject: [PATCH 072/310] Disable "Enable refile buttons" preference for POP3
     users
    
    ---
     .../fsck/k9/activity/setup/AccountSettings.java   | 15 +++++++++++++--
     1 file changed, 13 insertions(+), 2 deletions(-)
    
    diff --git a/src/com/fsck/k9/activity/setup/AccountSettings.java b/src/com/fsck/k9/activity/setup/AccountSettings.java
    index d0ff1f9ff..b5c4a54b4 100644
    --- a/src/com/fsck/k9/activity/setup/AccountSettings.java
    +++ b/src/com/fsck/k9/activity/setup/AccountSettings.java
    @@ -19,6 +19,7 @@ import java.util.List;
     import com.fsck.k9.Account;
     import com.fsck.k9.Account.FolderMode;
     import com.fsck.k9.Account.QuoteStyle;
    +import com.fsck.k9.Account.ScrollButtons;
     import com.fsck.k9.K9;
     import com.fsck.k9.NotificationSetting;
     import com.fsck.k9.Preferences;
    @@ -104,6 +105,7 @@ public class AccountSettings extends K9PreferenceActivity {
     
     
         private Account mAccount;
    +    private boolean mIsMoveCapable = false;
         private boolean mIsPushCapable = false;
         private boolean mIsExpungeCapable = false;
     
    @@ -177,6 +179,7 @@ public class AccountSettings extends K9PreferenceActivity {
     
             try {
                 final Store store = mAccount.getRemoteStore();
    +            mIsMoveCapable = store.isMoveCapable();
                 mIsPushCapable = store.isPushCapable();
                 mIsExpungeCapable = store.isExpungeCapable();
             } catch (Exception e) {
    @@ -421,9 +424,11 @@ public class AccountSettings extends K9PreferenceActivity {
             });
     
             mAccountEnableMoveButtons = (CheckBoxPreference) findPreference(PREFERENCE_ENABLE_MOVE_BUTTONS);
    +        mAccountEnableMoveButtons.setEnabled(mIsMoveCapable);
             mAccountEnableMoveButtons.setChecked(mAccount.getEnableMoveButtons());
     
             mAccountScrollMoveButtons = (ListPreference) findPreference(PREFERENCE_HIDE_MOVE_BUTTONS);
    +        mAccountScrollMoveButtons.setEnabled(mIsMoveCapable);
             mAccountScrollMoveButtons.setValue("" + mAccount.getScrollMessageViewMoveButtons());
             mAccountScrollMoveButtons.setSummary(mAccountScrollMoveButtons.getEntry());
             mAccountScrollMoveButtons.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
    @@ -709,6 +714,14 @@ public class AccountSettings extends K9PreferenceActivity {
                 mAccount.setMaxPushFolders(Integer.parseInt(mMaxPushFolders.getValue()));
             }
     
    +        if (!mIsMoveCapable) {
    +            mAccount.setEnableMoveButtons(false);
    +            mAccount.setScrollMessageViewMoveButtons(ScrollButtons.NEVER);
    +        } else {
    +            mAccount.setEnableMoveButtons(mAccountEnableMoveButtons.isChecked());
    +            mAccount.setScrollMessageViewMoveButtons(Account.ScrollButtons.valueOf(mAccountScrollMoveButtons.getValue()));
    +        }
    +
             boolean needsRefresh = mAccount.setAutomaticCheckIntervalMinutes(Integer.parseInt(mCheckFrequency.getValue()));
             needsRefresh |= mAccount.setFolderSyncMode(Account.FolderMode.valueOf(mSyncMode.getValue()));
     
    @@ -732,9 +745,7 @@ public class AccountSettings extends K9PreferenceActivity {
             }
     
             mAccount.setScrollMessageViewButtons(Account.ScrollButtons.valueOf(mAccountScrollButtons.getValue()));
    -        mAccount.setScrollMessageViewMoveButtons(Account.ScrollButtons.valueOf(mAccountScrollMoveButtons.getValue()));
             mAccount.setShowPictures(Account.ShowPictures.valueOf(mAccountShowPictures.getValue()));
    -        mAccount.setEnableMoveButtons(mAccountEnableMoveButtons.isChecked());
             mAccount.save(Preferences.getPreferences(this));
     
             if (needsRefresh && needsPushRestart) {
    
    From 4bfff6ee1ac5ef1e4bae0f29dac2097af994cba9 Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Sat, 2 Apr 2011 23:20:56 +0200
    Subject: [PATCH 073/310] Updated german translation
    
    ---
     res/values-de/strings.xml | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
    index 6e72d4e56..ca6028d5f 100644
    --- a/res/values-de/strings.xml
    +++ b/res/values-de/strings.xml
    @@ -205,7 +205,7 @@
     Willkommen zum \"K-9 Mail\"-Setup. K-9 ist eine quelloffene E-Mail-Anwendung für Android und basiert auf Androids Standard-E-Mail-Programm.
     \n
     \n\nVerbesserte Funktionen in K-9:
    -\n * Laden von Nachrichten durch IMAP IDLE
    +\n * Benachrichtigung über neue Nachrichten per IMAP IDLE
     \n * Höhere Performance
     \n * E-Mail-Signaturen
     \n * Automatische Blindkopie an sich selbst
    @@ -301,7 +301,7 @@ Willkommen zum \"K-9 Mail\"-Setup. K-9 ist eine quelloffene E-Mail-Anwendung fü
     
         Neuer Ordnername
     
    -    (Laden)
    +    (Push)
     
         Mehr von diesem Absender
     
    
    From cf9d26dcf50a6cf4504456b92c8cf5830ebcc31c Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Sun, 3 Apr 2011 00:12:52 +0200
    Subject: [PATCH 074/310] Updated galician translation (fernandocoello)
    
    ---
     res/values-gl/strings.xml | 50 +++++++++++++++++++--------------------
     1 file changed, 25 insertions(+), 25 deletions(-)
    
    diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
    index e505cb30b..ddafeafcb 100644
    --- a/res/values-gl/strings.xml
    +++ b/res/values-gl/strings.xml
    @@ -127,7 +127,7 @@
         Opcións de carpeta
     
         (sen Asunto) 
    -    
    +    Sen data
         Sen Remitente
         Conectando
         (Conexión %s%s)
    @@ -258,14 +258,14 @@ Benvido á Configuración de K-9. K-9 é un cliente de correo OpenSource para An
         Texto da Mensaxe
         -------- Mensaxe Orixianl --------
         Asunto:
    -    
    +    Enviado:
         Dende:
         Para:
         CC:
         %s escribiu:\n\n
         Citado
         Debes engadir un destinatario
    -    
    +    Non atopo enderezo electrónico.
         Algúns adxuntos non se descargaron. Serán descargados automáticamente antes de que mandar a mensaxe
         Algúns adxuntos non poden reenviarse porque non foron descargados.
     
    @@ -324,8 +324,8 @@ Benvido á Configuración de K-9. K-9 é un cliente de correo OpenSource para An
         Previsualizar mensaxe
         Listas espaciadas con previsualización de mensaxes
         Previsualizar liñas
    -    
    -    
    +    Amosar os nomes correspondentes
    +    Amosar os nomes en lugar dos enderezos
         Ver nome de contactos
         Usar nome de destinatario dende contactos cando esté dispoñible
         Colorear contactos
    @@ -342,7 +342,7 @@ Benvido á Configuración de K-9. K-9 é un cliente de correo OpenSource para An
         Arquivar
         Borrar (Mensaxes na vista)
         Spam
    -    
    +    Marcar todos coma lidos
         Enviados
     
         Bloquear notificacións
    @@ -543,8 +543,8 @@ Benvido á Configuración de K-9. K-9 é un cliente de correo OpenSource para An
         Amosar notificacións durante o envío de correo
         Abrir correo non lido
         Abrir correo non lido dende a notificación
    -    
    -    
    +    Amosar número de mensaxes non lidos
    +    Amosar número de mensaxen non lidos na barra de notificacións.
     
         Botóns de desprazamento
         Nunca
    @@ -565,13 +565,13 @@ Benvido á Configuración de K-9. K-9 é un cliente de correo OpenSource para An
         Resposta tras cita
         Cando se responda a un correo, o texto orixinal estará por riba da sua resposta
     
    -    
    -    
    -    
    +    Formato da mensaxe
    +    Texto plano (borraránse imaxes e formato)
    +    HTML (mantéñense imaxes e formato)
     
    -    
    -    
    -    
    +    Responder estilo comentario
    +    Prefixo (coma Gmail, Pine)
    +    Cabeceira (coma Outlook, Yahoo!, Hotmail)
     
         Configuración Xeral
         Visualización
    @@ -899,8 +899,8 @@ Benvido á Configuración de K-9. K-9 é un cliente de correo OpenSource para An
         Xestos
         Aceptar controles xestuáis
     
    -    
    -    
    +    Compactar deseños
    +    Axustar o deseño para amosar máis en cada páxina
     
         Navegación con teclas de volume
         Permite moverse polas opcións usando os botóns de volume
    @@ -919,8 +919,8 @@ Benvido á Configuración de K-9. K-9 é un cliente de correo OpenSource para An
         Amosar contador de búsqueda
         Desactivar para mellorar rendimento
     
    -    
    -    
    +    Agachar contas especiais
    +    Agacha a bandexa de entrada unificada e todas as contas das mensaxes
     
         %s %s
          - Estrelas
    @@ -960,7 +960,7 @@ Benvido á Configuración de K-9. K-9 é un cliente de correo OpenSource para An
         Asunto
         Remitente
         Data
    -    
    +    Vista previa
     
         mensaxes
         Remitente
    @@ -1022,12 +1022,12 @@ Benvido á Configuración de K-9. K-9 é un cliente de correo OpenSource para An
         Borrar
         Non borrar
     
    -    
    -    
    -    
    -    
    +    Confirmar antes de mover á carpeta spam
    +    Queres mover esta mensaxe á carpeta spam?
    +    Si
    +    Non
     
    -    
    +    Descargando adxunto
     
         Opción de depuración activa
     
    @@ -1035,6 +1035,6 @@ Benvido á Configuración de K-9. K-9 é un cliente de correo OpenSource para An
         
         Imposible conectar.
     
    -    
    +    A conta \"%s\" non está dispoñible; verifica o almacenamento
     
     
    
    From 65c6fe592ebb59f9aed8fd3119177ccce03c8205 Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Sun, 3 Apr 2011 00:19:14 +0200
    Subject: [PATCH 075/310] Updated polish translation (alekhavoc)
    
    ---
     res/values-pl/strings.xml | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
    index 15ed09adb..eac9ba815 100644
    --- a/res/values-pl/strings.xml
    +++ b/res/values-pl/strings.xml
    @@ -62,7 +62,7 @@
         OK 
         Anuluj
         Wyślij
    -    
    +    Prześlij ponownie
         Zaznacz
         Odznacz
         Odpowiedz
    @@ -104,7 +104,7 @@
         
         Otwórz
         Ozn. jako przeczytane
    -    Przślij dalej (alternatywne)
    +    Prześlij dalej (alternatywne)
         Wybierz nadawcę
     
         Wszystkie jako przeczytane
    
    From 39e3aecf7317e91a4ac0c8259bcc926adc153c1d Mon Sep 17 00:00:00 2001
    From: Jesse Vincent 
    Date: Sun, 3 Apr 2011 14:18:15 +0930
    Subject: [PATCH 076/310] Unify two IMAP date parsing paths, improving the
     exception so we can learn what date format we don't cope with.
    
    ---
     .../k9/mail/store/ImapResponseParser.java     | 28 +++++++++----------
     1 file changed, 14 insertions(+), 14 deletions(-)
    
    diff --git a/src/com/fsck/k9/mail/store/ImapResponseParser.java b/src/com/fsck/k9/mail/store/ImapResponseParser.java
    index 93d9d79a3..f52653da0 100644
    --- a/src/com/fsck/k9/mail/store/ImapResponseParser.java
    +++ b/src/com/fsck/k9/mail/store/ImapResponseParser.java
    @@ -347,13 +347,25 @@ public class ImapResponseParser {
             }
     
             public Date getDate(int index) throws MessagingException {
    +            return getDate(getString(index));
    +        }
    +
    +        public Date getKeyedDate(Object key) throws MessagingException {
    +            return getDate(getKeyedString(key));
    +        }
    +
    +        private Date getDate(String value) throws MessagingException {
                 try {
    -                return parseDate(getString(index));
    +                if (value == null) {
    +                    return null;
    +                }
    +                return parseDate(value);
                 } catch (ParseException pe) {
    -                throw new MessagingException("Unable to parse IMAP datetime", pe);
    +                throw new MessagingException("Unable to parse IMAP datetime '"+value+"' ", pe);
                 }
             }
     
    +
             public Object getKeyedValue(Object key) {
                 for (int i = 0, count = size(); i < count; i++) {
                     if (equalsIgnoreCase(get(i), key)) {
    @@ -379,18 +391,6 @@ public class ImapResponseParser {
                 return Integer.parseInt(getKeyedString(key));
             }
     
    -        public Date getKeyedDate(Object key) throws MessagingException {
    -            try {
    -                String value = getKeyedString(key);
    -                if (value == null) {
    -                    return null;
    -                }
    -                return parseDate(value);
    -            } catch (ParseException pe) {
    -                throw new MessagingException("Unable to parse IMAP datetime", pe);
    -            }
    -        }
    -
             public boolean containsKey(Object key) {
                 if (key == null) {
                     return false;
    
    From 37303d69d8668ee03595bc46cc8ca5ea8ff9346d Mon Sep 17 00:00:00 2001
    From: Koji Arai 
    Date: Mon, 4 Apr 2011 00:48:13 +0900
    Subject: [PATCH 077/310] Should store the disposition-type without
     Content-Disposition parameters.
    
    ---
     src/com/fsck/k9/mail/store/LocalStore.java | 10 +++++++++-
     1 file changed, 9 insertions(+), 1 deletion(-)
    
    diff --git a/src/com/fsck/k9/mail/store/LocalStore.java b/src/com/fsck/k9/mail/store/LocalStore.java
    index 4c2ede1e5..6987ef670 100644
    --- a/src/com/fsck/k9/mail/store/LocalStore.java
    +++ b/src/com/fsck/k9/mail/store/LocalStore.java
    @@ -2368,6 +2368,14 @@ public class LocalStore extends Store implements Serializable {
                                 String contentId = MimeUtility.getHeaderParameter(attachment.getContentId(), null);
     
                                 String contentDisposition = MimeUtility.unfoldAndDecode(attachment.getDisposition());
    +                            String dispositionType = contentDisposition;
    +
    +                            int pos = dispositionType.indexOf(';');
    +                            if (pos != -1) {
    +                                // extract the disposition-type, "attachment", "inline" or extension-token (see the RFC 2183)
    +                                dispositionType = dispositionType.substring(0, pos);
    +                            }
    +
                                 if (name == null && contentDisposition != null) {
                                     name = MimeUtility.getHeaderParameter(contentDisposition, "filename");
                                 }
    @@ -2380,7 +2388,7 @@ public class LocalStore extends Store implements Serializable {
                                     cv.put("name", name);
                                     cv.put("mime_type", attachment.getMimeType());
                                     cv.put("content_id", contentId);
    -                                cv.put("content_disposition", contentDisposition);
    +                                cv.put("content_disposition", dispositionType);
     
                                     attachmentId = db.insert("attachments", "message_id", cv);
                                 } else {
    
    From 467b62390367c815551ba4ac00c566a01aeffcca Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Sun, 3 Apr 2011 22:05:35 +0200
    Subject: [PATCH 078/310] Updated polish translation (rabbbit)
    
    ---
     res/values-pl/strings.xml | 309 +++++++++++++++++++-------------------
     1 file changed, 155 insertions(+), 154 deletions(-)
    
    diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
    index eac9ba815..330e0ad55 100644
    --- a/res/values-pl/strings.xml
    +++ b/res/values-pl/strings.xml
    @@ -8,6 +8,7 @@
     
     
     
    +
     
     
     
    @@ -26,16 +27,16 @@
     
         Odczyt załączników
         Zezwalaj tej aplikacji na czytanie załaczników z Twoich maili.
    -    
    -    
    -    
    -    
    +    Odczytaj maile
    +    Zezwalaj tej aplikacji na czytanie Twoich maili
    +    Usuń emaile
    +    Zezwalaj tej aplikacji na usuwanie Twoich maili.
     
         %s
         Konta
         Zaawansowane
         %s 
    -    
    +    Konta K-9
     
         %s:%s 
     
    @@ -48,17 +49,17 @@
     
         \u0020[%d]
         \u0020(Pobieram %s:%s%s)
    -    
    +    \u0020(Pobieranie nagłówków %s:%s%s)
         \u0020(Wysyłam %s%s)
         \u0020(Przetw. %s:%s%s)
         \u0020%s/%s
     
         \u0020(Sprawdzę o %s)
    -    
    +    \u0020(Synchronizacja wyłączona)
     
         
         Dalej 
    -     
    +    Cofnij 
         OK 
         Anuluj
         Wyślij
    @@ -69,7 +70,7 @@
         Odpowiedz wszystkim
         Usuń
         Archiwizuj
    -    
    +    Spam
         Wyczyśc folder
         Prześlij dalej
         Przenieś
    @@ -93,7 +94,7 @@
         Otwórz
         Ustawienia konta
         Ustawienia folderu
    -    
    +    Ustawienia globalne
         Usuń konto
         Anuluj oczekujące zadania (niebezpieczne!)
     
    @@ -116,7 +117,7 @@
         Skopiuj
         Pokaż pełne nagłówki
         Ukryj pełne nagłówki
    -    
    +    Wybierz text
     
         Jako nieprzeczytane
         Przenieś do
    @@ -129,8 +130,8 @@
         Add załącznik (Film)
         Zapisz ustawienia
         Opróżnij śmietnik
    -    Expunge 
    -    
    +    Wyczyść 
    +    Wyczyść wiadomości lokalne
         Wybierz sortowanie
         Sortuj malejąco
         O programie
    @@ -140,7 +141,7 @@
         Opcje folderu
     
         (Brak tematu) 
    -    
    +    Brak daty
         Brak nadawcy
         Poll %s
         (Poll %s%s)
    @@ -185,15 +186,15 @@
         Drafts
         Trash
         Sent
    -    
    -    
    +    Archiwizuj
    +    Spam
         
     
         %s (Szkice)
         %s (Śmietnik)
         %s (Wysłane)
    -    
    -    
    +    %s (Archiwum)
    +    %s (Spam)
     
         Niektóre wiadomości nie zostały wysłane
         Dalsze informacje znajdziesz w folderze %s.
    @@ -269,14 +270,14 @@ Witaj w K-9 Mail, darmowym programie pocztowym dla systemu Android. Najistotniej
         Treść wiadomości
         -------- Wiadomość oryginalna --------
         Temat:
    -    
    +    Wysłane:
         Od:
         Do:
         DW:
         %s napisał:\n\n
         Cytowany tekst
         Musisz dodać co najmniej jednego odbiorcę.
    -    
    +    Żaden adres email nie został znaleziony.
         Niektóre załączniki nie zostały pobrane. Zostaną pobrane automatycznie przed wysłaniem tej wiadomości.
         Niektóre załączniki nie mogą byc przesłane dalej ponieważ nie zostały wcześniej pobrane.
     
    @@ -289,9 +290,9 @@ Witaj w K-9 Mail, darmowym programie pocztowym dla systemu Android. Najistotniej
         Zapisz
         \u25BC
         \u25B2
    -    
    -    
    -    
    +    Archiwizuj
    +    Przenieś
    +    Spam
         MMM dd yyyy hh:mm a
         Załącznik zapisano na karcie SD jako %s.
         Zapisywanie załącznika na karcie SD nie powiodło się.
    @@ -301,7 +302,7 @@ Witaj w K-9 Mail, darmowym programie pocztowym dla systemu Android. Najistotniej
         Nie moge znaleźć programu do wyświetlenia pliku %s.
     
     
    -    
    +    Pobierz całą wiadomość
     
         
         Nie wszystkie nagłówki zostały pobrane lub zapisane. Wybierz \"Zapisuj nagłówki lokalnie\" w ustawieniach serwera poczty przychodzącej aby tę funcje aktywować
    @@ -334,36 +335,36 @@ Witaj w K-9 Mail, darmowym programie pocztowym dla systemu Android. Najistotniej
         Opcja zaznaczania dostępna zawsze w trybie wielokrotnego wyboru
         Widok Touch-friendly
         Lista z podglądem treści wiadomości
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    +    Podglądaj linie
    +    Pokazuj nazwiska korespondentów
    +    Pokazuj nazwiska korespondentów zamiast ich adresów email
    +    Pokazuj nazwiska kontaktów
    +    Użyj nazwisk odbiorców z kontaktów kiedy to możliwe
    +    Koloruj kontakty
    +    Nie koloruj nazwisk na liście kontaktów
    +    Koloruj nazwiska na liście kontaktów
     
         Czcionka o stałej szer.
         Użyj czcionki o stałej szerokości do wyświetlania maili tekstowych
         Skasuj i wróć do listy
         Wraca do listy wiadomości po usunięciu danego maila
     
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    +    Potwierdź akcje
    +    Pokaż okno dialogowe kiedy wykonujesz wybrane akcje
    +    Archiwizuj
    +    Usuń (tylko widok wiadomości)
    +    Spam
    +    Oznacz wszystkie jako przeczytane
    +    Wyślij
     
    -    
    -    
    +    Powiadomienia ekranowe przy zablokowanym ekranie
    +    Nie pokazuj tematu wiadomości w pasku powiadimień gdy ekran jest zablokowany
     
     
    -    
    -    
    -    
    -    
    +    Okres ciszy
    +    Wyłącz dzwonienie, wibracje i mruganie w nocy
    +    Początek okresu ciszy
    +    Koniec okresu ciszy
     
     
         Dodaj konto
    @@ -380,8 +381,8 @@ Witaj w K-9 Mail, darmowym programie pocztowym dla systemu Android. Najistotniej
         Pobieram informacje\u2026
         Sprawdzam ustawienia serwera\u2026
         Sprawdzam ustawienia serwera\u2026
    -    
    -    
    +    Autentykacja\u2026
    +    Pobieranie ustawień konta\u2026
         Kończę\u2026
         Przerywam\u2026
     
    @@ -427,10 +428,10 @@ Witaj w K-9 Mail, darmowym programie pocztowym dla systemu Android. Najistotniej
         Pobieranie nagłówków wiadomości
         Zapisuj nagłówki lokalnie
     
    -    
    -    
    -    
    -    
    +    Pamięć zewnętrzna (karta SD)
    +    Zwykła pamięc wewnętrzna
    +    %1$s dodatkowa pamięć wewnętrzna
    +    Lokalizacja pamięci
     
         Usuwanie wiadomości
         Od razu po skasowaniu lub przeniesieniu
    @@ -440,11 +441,11 @@ Witaj w K-9 Mail, darmowym programie pocztowym dla systemu Android. Najistotniej
         Prefiks ścieżki IMAP
         (K-9 użyje NAMESPACE, jeśli funkcjonalność jest dostępna)
     
    -    Drafts folder name
    -    Sent folder name
    -    Trash folder name
    -    
    -    
    +    Szkice
    +    Wysłane
    +    Kosz
    +    Archiwum
    +    Spam
     
         Pokaż tylko subskrybowane foldery
         Zawsze rozwijaj folder
    @@ -527,7 +528,7 @@ Witaj w K-9 Mail, darmowym programie pocztowym dla systemu Android. Najistotniej
         250 wiadomości
         500 wiadomości
         1000 wiadomości
    -    
    +    Wszystkie wiadomości
     
     
         Nie mogę skopiować ani przenieść wiadomości, która nie jest zsynchronizowana z serwerem
    @@ -554,54 +555,54 @@ Witaj w K-9 Mail, darmowym programie pocztowym dla systemu Android. Najistotniej
         Powiadamiaj o mailach wysłanych przeze mnie
         Notyfikacja otwiera nieprz. wiadomości 
         Notifikacja wyszukuje nieprz. wiadomości 
    -    
    -    
    +    Pokaż liczbę nieprzeczytanych
    +    Pokaż liczbę nieprzeczytanych wiadomości w pasku powiadomień.
     
         Przyciski nawigacyjne
         Przyciski nie są nigdy przesuwalne
         Przesuwalne, gdy jest klawiatura
         Przyciski są zawsze przesuwalne
     
    -    
    -    
    -    
    +    Użyj przycisków refile  
    +    Pokaż przyciski Archiwum, Przenieś, Spam.
    +    Przewijaj przyciski refile  
     
    -    
    -    
    -    
    -    
    +    Zawsze pokazuj obrazki
    +    Nie
    +    Od kontaktów
    +    Od każdego
     
         Tworzenie wiadomości
     
    -    
    -    
    +    Odpowiadaj po cytowanym tekście
    +    Podczas odpowiadania, wiadomość oryginalna pojawi się nad Twoją odpowiedzią.
     
    -    
    -    
    -    
    +    Format wiadomości
    +    Czysty tekst (bez obrazków i formatowania)
    +    HTML (z obrazkami i formatowaniem)
     
    -    
    -    
    -    
    +    Styl cytowania podczas odpowiedzi
    +    Prefix (jak Gmail, Pine)
    +    Nagłówek (jak Outlook, Yahoo!, Hotmail)
     
    -    
    -    
    +    Ustawienia ogólne
    +    Wyświetlacz
         Synchronizacja folderów
         Foldery
         Lista wiadomości
         Wyświetlanie wiadomości
         Prefiks cytowania
    -    
    -    
    -    
    -    
    -    
    -    
    +    Kryptografia
    +    Dostawca OpenPGP
    +    Bez
    +    nie dostępny
    +    Automatyczny podpis
    +    Użyj adresu email do zgadnięcia klucza podpisu.
     
         Sprawdzanie konta
         Cykliczne sprawdzanie folderów klasy 2
     
    -    
    +    Przechowanie
     
     
         Kolor konta
    @@ -612,20 +613,20 @@ Witaj w K-9 Mail, darmowym programie pocztowym dla systemu Android. Najistotniej
     
         Liczba wiadomości
     
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    +    Pobierz wiadomośći aż do
    +    1Kb
    +    2Kb
    +    4Kb
    +    8Kb
    +    16Kb
    +    32Kb
    +    64Kb
    +    128Kb
    +    256Kb
    +    512Kb
    +    1Mb
    +    2Mb
    +    dowolny rozmiar (bez limitu)
     
         Synchronizuj nowsze niż
         Wielki Wybuch
    @@ -668,8 +669,8 @@ Witaj w K-9 Mail, darmowym programie pocztowym dla systemu Android. Najistotniej
         Foldery klasy 1 oraz 2
         Wszystkich poza klasą 2
     
    -    
    -    
    +    Synchronizacja usunięć na serwerze
    +    Remove messages when deleted on server
     
         Ustawienia folderu
     
    @@ -713,8 +714,8 @@ Witaj w K-9 Mail, darmowym programie pocztowym dla systemu Android. Najistotniej
         Schemat 5
         Liczba wibracji
         Sygnał dzwiękowy
    -    
    -    
    +    Mrugaj diodą
    +    Zamrugaj diodą przy nowej wiadomości
     
     
         Ustawienia serwera
    @@ -761,8 +762,8 @@ Witaj w K-9 Mail, darmowym programie pocztowym dla systemu Android. Najistotniej
         Tożsamość domyślna
         Wybierz tożsamość
         Wybierz tożsamość
    -    
    -    
    +    Wybierz konto/tożsamość
    +    Wyślij jako
     
     
         Przejdź do "Ustawienia Konta" -> "Tożsamości" aby utworzyć tożsamość
    @@ -807,7 +808,7 @@ Witaj w K-9 Mail, darmowym programie pocztowym dla systemu Android. Najistotniej
             nie masz płatnego konta typu \"Plus\". W takim przypadku musisz z poczty
             korzystać w dotychczasowy sposób, za pośrednictwem przeglądarki.
     
    -    
    +    Jeśli chcesz uzywać POP3 dla tego dostawcy, powinieneś zezwolić na użycie POP3 na stronie ustawień poczty Yahoo.
     
         Nieznany certyfikat
         Akceptuj
    @@ -844,25 +845,25 @@ Witaj w K-9 Mail, darmowym programie pocztowym dla systemu Android. Najistotniej
         Ciemna
         Jasna
         Ustawienia globalne
    -    
    +    Globalne
         Debugging
    -    
    -    
    -    
    +    Prywatność
    +    Sieć
    +    Interakcja
         Lista kont
         Listy widomości
         Wiadomości
         Kolorystyka
    -    
    +    Język
     
    -    
    -    
    -    
    -    
    +    Ułożenie z 1 kolumną
    +    Przeformatuj wiadomości HTML dla mniejszych ekranów
    +    Systemowe powiększenie
    +    Użyj zoom widgets i pinch-zoom jeśli Twoje urzędzenie je obsługuje  
     
     
     
    -    
    +    Domyślny systemowy
     
         Synchronizacja w tle
         Nigdy
    @@ -886,8 +887,8 @@ Witaj w K-9 Mail, darmowym programie pocztowym dla systemu Android. Najistotniej
         Ustaw jako nieprzeczytane
         Dodaj gwiazdkę
         Usuń gwiazdkę
    -    
    -    
    +    Przenieś wybrane do archiwum
    +    Przenieś wybrane do Spamu
         Przenieś
         Skopiuj
         Star mode
    @@ -910,13 +911,13 @@ Witaj w K-9 Mail, darmowym programie pocztowym dla systemu Android. Najistotniej
         Gesty
         Pozwól na sterowanie gestami
     
    -    
    -    
    +    Wygląd kopaktowy
    +    Dopaduj wygląd, aby wyświetlać więcej na każdej stronie
     
    -    
    -    
    -    
    -    
    +    Nawigacja przyciskiem głośności
    +    Przeskakuj między rzeczami używając przycisków głośności
    +    Wygląd wiadomości
    +    Różne widoki list
     
         Przycisk \"Cofnij\"
         Przycisk \"Cofnij\" zawsze cofa o jeden poziom wyżej
    @@ -930,8 +931,8 @@ Witaj w K-9 Mail, darmowym programie pocztowym dla systemu Android. Najistotniej
         Zliczaj wyniki szukania
         Wyłącz by przyspieszyć wyświetlanie
     
    -    
    -    
    +    Ukryj konta specjalne
    +    Ukryj zunifikowaną skrzynkę odbiorczą i wszystkie konta wiadomości
     
         %s %s
          - Z gwiazdka
    @@ -971,7 +972,7 @@ Witaj w K-9 Mail, darmowym programie pocztowym dla systemu Android. Najistotniej
         Temat
         Nadawca
         Data wiadomości
    -    
    +    Pogdląd
     
         Wyświetlanie wiadomość
         Nadawca
    @@ -1008,44 +1009,44 @@ Witaj w K-9 Mail, darmowym programie pocztowym dla systemu Android. Najistotniej
         Wyświetla przyciski dodawania zdjęć oraz filmów jako załączników
     
         
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    +    Nie znaleiono odpowiedniej aplikacji.
    +    Zainstalowana wersja APG nie jest wspierana.
    +    Podpisz
    +    Zakoduj
    +    Zdekoduj
    +    Potwiedź
    +    <nieznany>
    +    id: %s
    +    K-9 nie ma pełnego dostępu do APG, aby naprawić przeinstaluj K-9.
    +    Wiadomości PGP/MIME nie są jeszcze wspierane.
    +    Uwaga: załączniki nie są jeszcze podpisane i kodowane.
    +    Anulowano.
     
    -    
    -    
    +    Zapisać szkic?
    +    Zapisać czy porzucić wiadomość?
     
    -    
    +    Nie można wyświetlić wiadomości, ponieważ kodowanie \"%s\" nie zostało znalezione.
     
    -    
    +    Wybierz tekst do skopiowania.
     
    -    
    -    
    -    
    -    
    +    Potwiedź usunięcie
    +    Czy chcesz usunąć tą wiadomość?
    +    Usuń
    +    Nie usuwaj
     
    -    
    -    
    -    
    -    
    +    Potwierdź przeniesienie do spamu
    +    Na pewno przenieśc do spamu?
    +    Tak
    +    Nie
     
    -    
    +    Pobieranie załącznika
     
    -    
    +    Włączono logowanie debug\'u do logu Androida
     
    -    
    -    
    +    »
    +    
         
     
    -    
    +    Konto \"%s\" jest niedostępne; sprawdź pamięc
     
     
    
    From dcf5d150a618b6b9b78b42d38943fca47cdc461b Mon Sep 17 00:00:00 2001
    From: =?UTF-8?q?Andr=C3=A1s=20Veres-Szentkir=C3=A1lyi?= 
    Date: Mon, 4 Apr 2011 16:47:56 +0200
    Subject: [PATCH 079/310] Added SHA-1 checksum to acceptKeyDialog
    
    ---
     .../setup/AccountSetupCheckSettings.java      | 19 +++++++++++++++++++
     1 file changed, 19 insertions(+)
    
    diff --git a/src/com/fsck/k9/activity/setup/AccountSetupCheckSettings.java b/src/com/fsck/k9/activity/setup/AccountSetupCheckSettings.java
    index facae58e2..2aaac3fd5 100644
    --- a/src/com/fsck/k9/activity/setup/AccountSetupCheckSettings.java
    +++ b/src/com/fsck/k9/activity/setup/AccountSetupCheckSettings.java
    @@ -23,9 +23,13 @@ import com.fsck.k9.mail.Store;
     import com.fsck.k9.mail.Transport;
     import com.fsck.k9.mail.store.TrustManagerFactory;
     import com.fsck.k9.mail.store.WebDavStore;
    +import com.fsck.k9.mail.filter.Hex;
     
     import java.security.cert.CertificateException;
    +import java.security.cert.CertificateEncodingException;
     import java.security.cert.X509Certificate;
    +import java.security.NoSuchAlgorithmException;
    +import java.security.MessageDigest;
     
     /**
      * Checks the given settings to make sure that they can be used to send and
    @@ -237,11 +241,26 @@ public class AccountSetupCheckSettings extends K9Activity implements OnClickList
     
                     mProgressBar.setIndeterminate(false);
                     StringBuffer chainInfo = new StringBuffer(100);
    +                MessageDigest sha1 = null;
    +                try {
    +                    sha1 = MessageDigest.getInstance("SHA-1");
    +                } catch (NoSuchAlgorithmException e) {
    +                    Log.e(K9.LOG_TAG, "Error while initializing MessageDigest", e);
    +                }
                     for (int i = 0; i < chain.length; i++) {
                         // display certificate chain information
                         chainInfo.append("Certificate chain[" + i + "]:\n");
                         chainInfo.append("Subject: " + chain[i].getSubjectDN().toString() + "\n");
                         chainInfo.append("Issuer: " + chain[i].getIssuerDN().toString() + "\n");
    +                    if (sha1 != null) {
    +                        sha1.reset();
    +                        try {
    +                            char[] sha1sum = Hex.encodeHex(sha1.digest(chain[i].getEncoded()));
    +                            chainInfo.append("Fingerprint (SHA-1): " + new String(sha1sum) + "\n");
    +                        } catch (CertificateEncodingException e) {
    +                            Log.e(K9.LOG_TAG, "Error while encoding certificate", e);
    +                        }
    +                    }
                     }
     
                     new AlertDialog.Builder(AccountSetupCheckSettings.this)
    
    From d881832eca4fcc078f00f03031da5ef84ec2d7f1 Mon Sep 17 00:00:00 2001
    From: Will Hawkins 
    Date: Wed, 6 Apr 2011 11:42:37 -0400
    Subject: [PATCH 080/310] Made the minor modifications to support CRAM-MD5
     authentication in POP3 accounts.
    
    ---
     .../activity/setup/AccountSetupIncoming.java  |  9 ++-
     src/com/fsck/k9/mail/store/Pop3Store.java     | 75 +++++++++++++++++--
     2 files changed, 73 insertions(+), 11 deletions(-)
    
    diff --git a/src/com/fsck/k9/activity/setup/AccountSetupIncoming.java b/src/com/fsck/k9/activity/setup/AccountSetupIncoming.java
    index 7d9f28155..7d94e919f 100644
    --- a/src/com/fsck/k9/activity/setup/AccountSetupIncoming.java
    +++ b/src/com/fsck/k9/activity/setup/AccountSetupIncoming.java
    @@ -234,8 +234,6 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener
                     findViewById(R.id.webdav_mailbox_alias_section).setVisibility(View.GONE);
                     findViewById(R.id.webdav_owa_path_section).setVisibility(View.GONE);
                     findViewById(R.id.webdav_auth_path_section).setVisibility(View.GONE);
    -                findViewById(R.id.account_auth_type_label).setVisibility(View.GONE);
    -                findViewById(R.id.account_auth_type).setVisibility(View.GONE);
                     findViewById(R.id.compression_section).setVisibility(View.GONE);
                     findViewById(R.id.compression_label).setVisibility(View.GONE);
                     mAccount.setDeletePolicy(Account.DELETE_POLICY_NEVER);
    @@ -409,7 +407,12 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener
                     String authType = ((SpinnerOption)mAuthTypeView.getSelectedItem()).label;
                     userInfo = authType + ":" + userEnc + ":" + passwordEnc;
                 } else {
    -                userInfo = userEnc + ":" + passwordEnc;
    +                String authType = ((SpinnerOption)mAuthTypeView.getSelectedItem()).label;
    +                if (!authType.equalsIgnoreCase("plain")) {
    +                	userInfo = authType + ":" + userEnc + ":" + passwordEnc;
    +                } else {
    +                	userInfo = userEnc + ":" + passwordEnc;
    +                }
                 }
                 URI uri = new URI(
                     mAccountSchemes[securityType],
    diff --git a/src/com/fsck/k9/mail/store/Pop3Store.java b/src/com/fsck/k9/mail/store/Pop3Store.java
    index 64f5709f2..10ded8eb2 100644
    --- a/src/com/fsck/k9/mail/store/Pop3Store.java
    +++ b/src/com/fsck/k9/mail/store/Pop3Store.java
    @@ -9,6 +9,8 @@ import com.fsck.k9.controller.MessageRetrievalListener;
     import com.fsck.k9.helper.Utility;
     import com.fsck.k9.mail.*;
     import com.fsck.k9.mail.Folder.OpenMode;
    +import com.fsck.k9.mail.filter.Base64;
    +import com.fsck.k9.mail.filter.Hex;
     import com.fsck.k9.mail.internet.MimeMessage;
     
     import javax.net.ssl.SSLContext;
    @@ -17,6 +19,8 @@ import javax.net.ssl.TrustManager;
     import java.io.*;
     import java.net.*;
     import java.security.GeneralSecurityException;
    +import java.security.MessageDigest;
    +import java.security.NoSuchAlgorithmException;
     import java.security.SecureRandom;
     import java.util.ArrayList;
     import java.util.Date;
    @@ -38,6 +42,7 @@ public class Pop3Store extends Store {
         private int mPort;
         private String mUsername;
         private String mPassword;
    +    private boolean useCramMd5;
         private int mConnectionSecurity;
         private HashMap mFolders = new HashMap();
         private Pop3Capabilities mCapabilities;
    @@ -85,12 +90,20 @@ public class Pop3Store extends Store {
                 mPort = uri.getPort();
             }
     
    +        useCramMd5 = false;
             if (uri.getUserInfo() != null) {
                 try {
    +                int userIndex = 0, passwordIndex = 1;
                     String[] userInfoParts = uri.getUserInfo().split(":");
    -                mUsername = URLDecoder.decode(userInfoParts[0], "UTF-8");
    -                if (userInfoParts.length > 1) {
    -                    mPassword = URLDecoder.decode(userInfoParts[1], "UTF-8");
    +                if (userInfoParts.length > 2)
    +                {
    +                	userIndex++;
    +                	passwordIndex++;
    +                	useCramMd5 = true;
    +                }
    +                mUsername = URLDecoder.decode(userInfoParts[userIndex], "UTF-8");
    +                if (userInfoParts.length > passwordIndex) {
    +                    mPassword = URLDecoder.decode(userInfoParts[passwordIndex], "UTF-8");
                     }
                 } catch (UnsupportedEncodingException enc) {
                     // This shouldn't happen since the encoding is hardcoded to UTF-8
    @@ -215,11 +228,57 @@ public class Pop3Store extends Store {
                         }
                     }
     
    -                try {
    -                    executeSimpleCommand("USER " + mUsername);
    -                    executeSimpleCommand("PASS " + mPassword, true);
    -                } catch (MessagingException me) {
    -                    throw new AuthenticationFailedException(null, me);
    +                if (useCramMd5)
    +                {
    +                    try {
    +                        String nonce64, plainCRAM, b64CRAM;
    +                        MessageDigest md;
    +                        byte[] ipad = new byte[64];
    +                        byte[] opad = new byte[64];
    +                        byte[] nonce, secretBytes, firstPass, result;
    +
    +                        nonce64 = executeSimpleCommand("AUTH CRAM-MD5").replace("+ ", "");
    +                        nonce = Base64.decodeBase64(nonce64.getBytes("US-ASCII"));
    +
    +                        secretBytes = mPassword.getBytes("US-ASCII");
    +                        try {
    +                            md = MessageDigest.getInstance("MD5");
    +                        } catch (NoSuchAlgorithmException nsae) {
    +                            throw new AuthenticationFailedException("MD5 Not Available.");
    +                        }
    +
    +                        if (secretBytes.length > 64) {
    +                            secretBytes = md.digest(secretBytes);
    +                        }
    +
    +                        System.arraycopy(secretBytes, 0, ipad, 0, secretBytes.length);
    +                        System.arraycopy(secretBytes, 0, opad, 0, secretBytes.length);
    +                        for (int i = 0; i < ipad.length; i++) ipad[i] ^= 0x36;
    +                        for (int i = 0; i < opad.length; i++) opad[i] ^= 0x5c;
    +
    +                        md.update(ipad);
    +                        firstPass = md.digest(nonce);
    +
    +                        md.update(opad);
    +                        result = md.digest(firstPass);
    +
    +                        plainCRAM = mUsername + " " + new String(Hex.encodeHex(result));
    +                        b64CRAM = new String(Base64.encodeBase64(plainCRAM.getBytes("US-ASCII")), "US-ASCII");
    +
    +                        executeSimpleCommand(b64CRAM);
    +
    +                    } catch (MessagingException me) {
    +                        throw new AuthenticationFailedException(null, me);
    +                    }
    +                }
    +                else
    +                {
    +                    try {
    +                        executeSimpleCommand("USER " + mUsername);
    +                        executeSimpleCommand("PASS " + mPassword, true);
    +                    } catch (MessagingException me) {
    +                        throw new AuthenticationFailedException(null, me);
    +                    }
                     }
     
                     mCapabilities = getCapabilities();
    
    From 2cadff74b1a6109d5e91c32df65ba3b4715f4809 Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Thu, 7 Apr 2011 17:11:32 +0200
    Subject: [PATCH 081/310] Extracted CRAM-MD5 computation into separate class.
    
    This gets rid of duplicated code in ImapStore, Pop3Store, and
    SmtpTransport.
    ---
     src/com/fsck/k9/mail/Authentication.java      | 85 +++++++++++++++++++
     src/com/fsck/k9/mail/store/ImapStore.java     | 48 +++--------
     src/com/fsck/k9/mail/store/Pop3Store.java     | 39 +--------
     .../fsck/k9/mail/transport/SmtpTransport.java | 37 ++------
     4 files changed, 105 insertions(+), 104 deletions(-)
     create mode 100644 src/com/fsck/k9/mail/Authentication.java
    
    diff --git a/src/com/fsck/k9/mail/Authentication.java b/src/com/fsck/k9/mail/Authentication.java
    new file mode 100644
    index 000000000..f80b5f82d
    --- /dev/null
    +++ b/src/com/fsck/k9/mail/Authentication.java
    @@ -0,0 +1,85 @@
    +package com.fsck.k9.mail;
    +
    +import java.security.MessageDigest;
    +
    +import com.fsck.k9.mail.filter.Base64;
    +import com.fsck.k9.mail.filter.Hex;
    +
    +public class Authentication {
    +	private static final String US_ASCII = "US-ASCII";
    +
    +	/**
    +	 * Computes the response for CRAM-MD5 authentication mechanism given the user credentials and
    +	 * the server-provided nonce.
    +	 *
    +	 * @param username The username.
    +	 * @param password The password.
    +	 * @param b64Nonce The nonce as base64-encoded string.
    +	 * @return The CRAM-MD5 response.
    +	 *
    +	 * @throws AuthenticationFailedException If something went wrong.
    +	 *
    +	 * @see Authentication#computeCramMd5Bytes(String, String, byte[])
    +	 */
    +	public static String computeCramMd5(String username, String password, String b64Nonce)
    +	throws AuthenticationFailedException {
    +
    +        try {
    +        	byte[] b64NonceBytes = b64Nonce.getBytes(US_ASCII);
    +			byte[] b64CRAM = computeCramMd5Bytes(username, password, b64NonceBytes);
    +		    return new String(b64CRAM, US_ASCII);
    +        } catch (AuthenticationFailedException e) {
    +        	throw e;
    +        } catch (Exception e) {
    +        	throw new AuthenticationFailedException("This shouldn't happen", e);
    +        }
    +	}
    +
    +	/**
    +	 * Computes the response for CRAM-MD5 authentication mechanism given the user credentials and
    +	 * the server-provided nonce.
    +	 *
    +	 * @param username The username.
    +	 * @param password The password.
    +	 * @param b64Nonce The nonce as base64-encoded byte array.
    +	 * @return The CRAM-MD5 response as byte array.
    +	 *
    +	 * @throws AuthenticationFailedException If something went wrong.
    +	 *
    +	 * @see RFC 2195
    +	 */
    +	public static byte[] computeCramMd5Bytes(String username, String password, byte[] b64Nonce)
    +	throws AuthenticationFailedException {
    +
    +        try {
    +			byte[] nonce = Base64.decodeBase64(b64Nonce);
    +
    +		    byte[] secretBytes = password.getBytes(US_ASCII);
    +		    MessageDigest md = MessageDigest.getInstance("MD5");
    +		    if (secretBytes.length > 64) {
    +		        secretBytes = md.digest(secretBytes);
    +		    }
    +
    +			byte[] ipad = new byte[64];
    +		    byte[] opad = new byte[64];
    +		    System.arraycopy(secretBytes, 0, ipad, 0, secretBytes.length);
    +		    System.arraycopy(secretBytes, 0, opad, 0, secretBytes.length);
    +		    for (int i = 0; i < ipad.length; i++) ipad[i] ^= 0x36;
    +		    for (int i = 0; i < opad.length; i++) opad[i] ^= 0x5c;
    +
    +		    md.update(ipad);
    +		    byte[] firstPass = md.digest(nonce);
    +
    +		    md.update(opad);
    +		    byte[] result = md.digest(firstPass);
    +
    +		    String plainCRAM = username + " " + new String(Hex.encodeHex(result));
    +		    byte[] b64CRAM = Base64.encodeBase64(plainCRAM.getBytes(US_ASCII));
    +
    +		    return b64CRAM;
    +
    +        } catch (Exception e) {
    +        	throw new AuthenticationFailedException("Something went wrong during CRAM-MD5 computation", e);
    +        }
    +	}
    +}
    diff --git a/src/com/fsck/k9/mail/store/ImapStore.java b/src/com/fsck/k9/mail/store/ImapStore.java
    index 9658683bc..13e626a5d 100644
    --- a/src/com/fsck/k9/mail/store/ImapStore.java
    +++ b/src/com/fsck/k9/mail/store/ImapStore.java
    @@ -20,8 +20,6 @@ import java.nio.ByteBuffer;
     import java.nio.CharBuffer;
     import java.nio.charset.Charset;
     import java.security.GeneralSecurityException;
    -import java.security.MessageDigest;
    -import java.security.NoSuchAlgorithmException;
     import java.security.SecureRandom;
     import java.security.Security;
     import java.text.SimpleDateFormat;
    @@ -61,6 +59,7 @@ import com.fsck.k9.controller.MessageRetrievalListener;
     import com.fsck.k9.helper.Utility;
     import com.fsck.k9.helper.power.TracingPowerManager;
     import com.fsck.k9.helper.power.TracingPowerManager.TracingWakeLock;
    +import com.fsck.k9.mail.Authentication;
     import com.fsck.k9.mail.AuthenticationFailedException;
     import com.fsck.k9.mail.Body;
     import com.fsck.k9.mail.CertificateValidationException;
    @@ -73,10 +72,8 @@ import com.fsck.k9.mail.Part;
     import com.fsck.k9.mail.PushReceiver;
     import com.fsck.k9.mail.Pusher;
     import com.fsck.k9.mail.Store;
    -import com.fsck.k9.mail.filter.Base64;
     import com.fsck.k9.mail.filter.EOLConvertingOutputStream;
     import com.fsck.k9.mail.filter.FixedLengthInputStream;
    -import com.fsck.k9.mail.filter.Hex;
     import com.fsck.k9.mail.filter.PeekableInputStream;
     import com.fsck.k9.mail.internet.MimeBodyPart;
     import com.fsck.k9.mail.internet.MimeHeader;
    @@ -2085,10 +2082,10 @@ public class ImapStore extends Store {
             protected void authCramMD5() throws AuthenticationFailedException, MessagingException {
                 try {
                     String tag = sendCommand("AUTHENTICATE CRAM-MD5", false);
    -                byte[] buf = new byte[ 1024 ];
    +                byte[] buf = new byte[1024];
                     int b64NonceLen = 0;
                     for (int i = 0; i < buf.length; i++) {
    -                    buf[ i ] = (byte)mIn.read();
    +                    buf[i] = (byte)mIn.read();
                         if (buf[i] == 0x0a) {
                             b64NonceLen = i;
                             break;
    @@ -2097,57 +2094,32 @@ public class ImapStore extends Store {
                     if (b64NonceLen == 0) {
                         throw new AuthenticationFailedException("Error negotiating CRAM-MD5: nonce too long.");
                     }
    -                byte[] b64NonceTrim = new byte[ b64NonceLen - 2 ];
    +                byte[] b64NonceTrim = new byte[b64NonceLen - 2];
                     System.arraycopy(buf, 1, b64NonceTrim, 0, b64NonceLen - 2);
    -                byte[] nonce = Base64.decodeBase64(b64NonceTrim);
    -                if (K9.DEBUG) {
    -                    Log.d(K9.LOG_TAG, "Got nonce: " + new String(b64NonceTrim, "US-ASCII"));
    -                    Log.d(K9.LOG_TAG, "Plaintext nonce: " + new String(nonce, "US-ASCII"));
    -                }
     
    -                byte[] ipad = new byte[64];
    -                byte[] opad = new byte[64];
    -                byte[] secretBytes = mSettings.getPassword().getBytes("US-ASCII");
    -                MessageDigest md = MessageDigest.getInstance("MD5");
    -                if (secretBytes.length > 64) {
    -                    secretBytes = md.digest(secretBytes);
    -                }
    -                System.arraycopy(secretBytes, 0, ipad, 0, secretBytes.length);
    -                System.arraycopy(secretBytes, 0, opad, 0, secretBytes.length);
    -                for (int i = 0; i < ipad.length; i++) ipad[i] ^= 0x36;
    -                for (int i = 0; i < opad.length; i++) opad[i] ^= 0x5c;
    -                md.update(ipad);
    -                byte[] firstPass = md.digest(nonce);
    -                md.update(opad);
    -                byte[] result = md.digest(firstPass);
    -                String plainCRAM = mSettings.getUsername() + " " + new String(Hex.encodeHex(result));
    -                byte[] b64CRAM = Base64.encodeBase64(plainCRAM.getBytes("US-ASCII"));
    -                if (K9.DEBUG) {
    -                    Log.d(K9.LOG_TAG, "Username == " + mSettings.getUsername());
    -                    Log.d(K9.LOG_TAG, "plainCRAM: " + plainCRAM);
    -                    Log.d(K9.LOG_TAG, "b64CRAM: " + new String(b64CRAM, "US-ASCII"));
    -                }
    +                byte[] b64CRAM = Authentication.computeCramMd5Bytes(mSettings.getUsername(),
    +                		mSettings.getPassword(), b64NonceTrim);
     
                     mOut.write(b64CRAM);
                     mOut.write(new byte[] { 0x0d, 0x0a });
                     mOut.flush();
    +
                     int respLen = 0;
                     for (int i = 0; i < buf.length; i++) {
    -                    buf[ i ] = (byte)mIn.read();
    +                    buf[i] = (byte)mIn.read();
                         if (buf[i] == 0x0a) {
                             respLen = i;
                             break;
                         }
                     }
    +
                     String toMatch = tag + " OK";
                     String respStr = new String(buf, 0, respLen);
                     if (!respStr.startsWith(toMatch)) {
                         throw new AuthenticationFailedException("CRAM-MD5 error: " + respStr);
                     }
                 } catch (IOException ioe) {
    -                throw new AuthenticationFailedException("CRAM-MD5 Auth Failed.");
    -            } catch (NoSuchAlgorithmException nsae) {
    -                throw new AuthenticationFailedException("MD5 Not Available.");
    +                throw new AuthenticationFailedException("CRAM-MD5 Auth Failed.", ioe);
                 }
             }
     
    diff --git a/src/com/fsck/k9/mail/store/Pop3Store.java b/src/com/fsck/k9/mail/store/Pop3Store.java
    index 10ded8eb2..a5df595cf 100644
    --- a/src/com/fsck/k9/mail/store/Pop3Store.java
    +++ b/src/com/fsck/k9/mail/store/Pop3Store.java
    @@ -9,8 +9,6 @@ import com.fsck.k9.controller.MessageRetrievalListener;
     import com.fsck.k9.helper.Utility;
     import com.fsck.k9.mail.*;
     import com.fsck.k9.mail.Folder.OpenMode;
    -import com.fsck.k9.mail.filter.Base64;
    -import com.fsck.k9.mail.filter.Hex;
     import com.fsck.k9.mail.internet.MimeMessage;
     
     import javax.net.ssl.SSLContext;
    @@ -19,8 +17,6 @@ import javax.net.ssl.TrustManager;
     import java.io.*;
     import java.net.*;
     import java.security.GeneralSecurityException;
    -import java.security.MessageDigest;
    -import java.security.NoSuchAlgorithmException;
     import java.security.SecureRandom;
     import java.util.ArrayList;
     import java.util.Date;
    @@ -231,40 +227,9 @@ public class Pop3Store extends Store {
                     if (useCramMd5)
                     {
                         try {
    -                        String nonce64, plainCRAM, b64CRAM;
    -                        MessageDigest md;
    -                        byte[] ipad = new byte[64];
    -                        byte[] opad = new byte[64];
    -                        byte[] nonce, secretBytes, firstPass, result;
    -
    -                        nonce64 = executeSimpleCommand("AUTH CRAM-MD5").replace("+ ", "");
    -                        nonce = Base64.decodeBase64(nonce64.getBytes("US-ASCII"));
    -
    -                        secretBytes = mPassword.getBytes("US-ASCII");
    -                        try {
    -                            md = MessageDigest.getInstance("MD5");
    -                        } catch (NoSuchAlgorithmException nsae) {
    -                            throw new AuthenticationFailedException("MD5 Not Available.");
    -                        }
    -
    -                        if (secretBytes.length > 64) {
    -                            secretBytes = md.digest(secretBytes);
    -                        }
    -
    -                        System.arraycopy(secretBytes, 0, ipad, 0, secretBytes.length);
    -                        System.arraycopy(secretBytes, 0, opad, 0, secretBytes.length);
    -                        for (int i = 0; i < ipad.length; i++) ipad[i] ^= 0x36;
    -                        for (int i = 0; i < opad.length; i++) opad[i] ^= 0x5c;
    -
    -                        md.update(ipad);
    -                        firstPass = md.digest(nonce);
    -
    -                        md.update(opad);
    -                        result = md.digest(firstPass);
    -
    -                        plainCRAM = mUsername + " " + new String(Hex.encodeHex(result));
    -                        b64CRAM = new String(Base64.encodeBase64(plainCRAM.getBytes("US-ASCII")), "US-ASCII");
    +                        String b64Nonce = executeSimpleCommand("AUTH CRAM-MD5").replace("+ ", "");
     
    +                        String b64CRAM = Authentication.computeCramMd5(mUsername, mPassword, b64Nonce);
                             executeSimpleCommand(b64CRAM);
     
                         } catch (MessagingException me) {
    diff --git a/src/com/fsck/k9/mail/transport/SmtpTransport.java b/src/com/fsck/k9/mail/transport/SmtpTransport.java
    index 6ab90e689..9ae26e79a 100644
    --- a/src/com/fsck/k9/mail/transport/SmtpTransport.java
    +++ b/src/com/fsck/k9/mail/transport/SmtpTransport.java
    @@ -7,7 +7,6 @@ import com.fsck.k9.mail.*;
     import com.fsck.k9.mail.Message.RecipientType;
     import com.fsck.k9.mail.filter.Base64;
     import com.fsck.k9.mail.filter.EOLConvertingOutputStream;
    -import com.fsck.k9.mail.filter.Hex;
     import com.fsck.k9.mail.filter.LineWrapOutputStream;
     import com.fsck.k9.mail.filter.PeekableInputStream;
     import com.fsck.k9.mail.filter.SmtpDataStuffing;
    @@ -25,8 +24,6 @@ import java.io.OutputStream;
     import java.io.UnsupportedEncodingException;
     import java.net.*;
     import java.security.GeneralSecurityException;
    -import java.security.MessageDigest;
    -import java.security.NoSuchAlgorithmException;
     import java.security.SecureRandom;
     
     import java.util.*;
    @@ -522,33 +519,15 @@ public class SmtpTransport extends Transport {
     
         private void saslAuthCramMD5(String username, String password) throws MessagingException,
             AuthenticationFailedException, IOException {
    -        List respList = executeSimpleCommand("AUTH CRAM-MD5");
    -        if (respList.size() != 1) throw new AuthenticationFailedException("Unable to negotiate CRAM-MD5");
    +
    +    	List respList = executeSimpleCommand("AUTH CRAM-MD5");
    +        if (respList.size() != 1) {
    +        	throw new AuthenticationFailedException("Unable to negotiate CRAM-MD5");
    +        }
    +
             String b64Nonce = respList.get(0);
    -        byte[] nonce = Base64.decodeBase64(b64Nonce.getBytes("US-ASCII"));
    -        byte[] ipad = new byte[64];
    -        byte[] opad = new byte[64];
    -        byte[] secretBytes = password.getBytes("US-ASCII");
    -        MessageDigest md;
    -        try {
    -            md = MessageDigest.getInstance("MD5");
    -        } catch (NoSuchAlgorithmException nsae) {
    -            throw new AuthenticationFailedException("MD5 Not Available.");
    -        }
    -        if (secretBytes.length > 64) {
    -            secretBytes = md.digest(secretBytes);
    -        }
    -        System.arraycopy(secretBytes, 0, ipad, 0, secretBytes.length);
    -        System.arraycopy(secretBytes, 0, opad, 0, secretBytes.length);
    -        for (int i = 0; i < ipad.length; i++) ipad[i] ^= 0x36;
    -        for (int i = 0; i < opad.length; i++) opad[i] ^= 0x5c;
    -        md.update(ipad);
    -        byte[] firstPass = md.digest(nonce);
    -        md.update(opad);
    -        byte[] result = md.digest(firstPass);
    -        String plainCRAM = username + " " + new String(Hex.encodeHex(result));
    -        byte[] b64CRAM = Base64.encodeBase64(plainCRAM.getBytes("US-ASCII"));
    -        String b64CRAMString = new String(b64CRAM, "US-ASCII");
    +        String b64CRAMString = Authentication.computeCramMd5(mUsername, mPassword, b64Nonce);
    +
             try {
                 executeSimpleCommand(b64CRAMString, true);
             } catch (MessagingException me) {
    
    From 79a96952f2b8c95c059afee3e564721a09ed98c1 Mon Sep 17 00:00:00 2001
    From: Koji Arai 
    Date: Thu, 7 Apr 2011 00:18:14 +0900
    Subject: [PATCH 082/310] Correct encoding and decoding for the filename
     parameter in the Content-Disposition.
    
    ---
     src/com/fsck/k9/activity/MessageCompose.java |  4 +++-
     src/com/fsck/k9/mail/store/LocalStore.java   | 13 +++++++++----
     2 files changed, 12 insertions(+), 5 deletions(-)
    
    diff --git a/src/com/fsck/k9/activity/MessageCompose.java b/src/com/fsck/k9/activity/MessageCompose.java
    index 28593c0fc..ee5422c8e 100644
    --- a/src/com/fsck/k9/activity/MessageCompose.java
    +++ b/src/com/fsck/k9/activity/MessageCompose.java
    @@ -1121,7 +1121,9 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
                  */
                 bp.addHeader(MimeHeader.HEADER_CONTENT_DISPOSITION, String.format(
                                  "attachment;\n filename=\"%s\";\n size=%d",
    -                             attachment.name, attachment.size));
    +                             EncoderUtil.encodeIfNecessary(attachment.name, 
    +                                     EncoderUtil.Usage.WORD_ENTITY, 7),
    +                             attachment.size));
     
                 mp.addBodyPart(bp);
             }
    diff --git a/src/com/fsck/k9/mail/store/LocalStore.java b/src/com/fsck/k9/mail/store/LocalStore.java
    index 6987ef670..d0ddd6ceb 100644
    --- a/src/com/fsck/k9/mail/store/LocalStore.java
    +++ b/src/com/fsck/k9/mail/store/LocalStore.java
    @@ -16,6 +16,7 @@ import java.util.UUID;
     
     import com.fsck.k9.helper.HtmlConverter;
     import org.apache.commons.io.IOUtils;
    +import org.apache.james.mime4j.codec.EncoderUtil;
     
     import android.app.Application;
     import android.content.ContentValues;
    @@ -1671,16 +1672,20 @@ public class LocalStore extends Store implements Serializable {
                                                 if (contentUri != null) {
                                                     body = new LocalAttachmentBody(Uri.parse(contentUri), mApplication);
                                                 }
    +
    +                                            String encoded_name = EncoderUtil.encodeIfNecessary(name,
    +                                                    EncoderUtil.Usage.WORD_ENTITY, 7);
    +
                                                 MimeBodyPart bp = new LocalAttachmentBodyPart(body, id);
                                                 bp.setHeader(MimeHeader.HEADER_CONTENT_TYPE,
                                                              String.format("%s;\n name=\"%s\"",
                                                                            type,
    -                                                                       name));
    +                                                                       encoded_name));
                                                 bp.setHeader(MimeHeader.HEADER_CONTENT_TRANSFER_ENCODING, "base64");
                                                 bp.setHeader(MimeHeader.HEADER_CONTENT_DISPOSITION,
                                                              String.format("%s;\n filename=\"%s\";\n size=%d",
                                                                            contentDisposition,
    -                                                                       name,
    +                                                                       encoded_name, // TODO: Should use encoded word defined in RFC 2231.
                                                                            size));
     
                                                 bp.setHeader(MimeHeader.HEADER_CONTENT_ID, contentId);
    @@ -2364,7 +2369,7 @@ public class LocalStore extends Store implements Serializable {
                                     Utility.combine(attachment.getHeader(
                                                         MimeHeader.HEADER_ANDROID_ATTACHMENT_STORE_DATA), ',');
     
    -                            String name = MimeUtility.getHeaderParameter(attachment.getContentType(), "name");
    +                            String name = MimeUtility.unfoldAndDecode(MimeUtility.getHeaderParameter(attachment.getContentType(), "name"));
                                 String contentId = MimeUtility.getHeaderParameter(attachment.getContentId(), null);
     
                                 String contentDisposition = MimeUtility.unfoldAndDecode(attachment.getDisposition());
    @@ -2377,7 +2382,7 @@ public class LocalStore extends Store implements Serializable {
                                 }
     
                                 if (name == null && contentDisposition != null) {
    -                                name = MimeUtility.getHeaderParameter(contentDisposition, "filename");
    +                                name = MimeUtility.unfoldAndDecode(MimeUtility.getHeaderParameter(contentDisposition, "filename"));
                                 }
                                 if (attachmentId == -1) {
                                     ContentValues cv = new ContentValues();
    
    From 75fdfc2dceba64c5195ba6210fbce0a701dc1d98 Mon Sep 17 00:00:00 2001
    From: Jesse Vincent 
    Date: Fri, 8 Apr 2011 13:53:18 +1000
    Subject: [PATCH 083/310] Bumped manifest to 3.709
    
    ---
     AndroidManifest.xml | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/AndroidManifest.xml b/AndroidManifest.xml
    index 40b556fa6..b76404dbc 100644
    --- a/AndroidManifest.xml
    +++ b/AndroidManifest.xml
    @@ -1,8 +1,8 @@
     
     
         
    Date: Fri, 8 Apr 2011 14:03:04 +1000
    Subject: [PATCH 084/310] fix a bug in our git-tag target.
    
    ---
     build.xml | 10 ++++------
     1 file changed, 4 insertions(+), 6 deletions(-)
    
    diff --git a/build.xml b/build.xml
    index 10975bff4..327b46f4d 100644
    --- a/build.xml
    +++ b/build.xml
    @@ -77,19 +77,17 @@
         
     
         
    -    
    +    
             Bumping K-9 to ${version-name}
         
     
    -    
    -    
    -        
    -    
    -    
         
         
             
         
    +    
    +        
    +    
         
             
         
    
    From 2cd178e6844ecbe85707c241ad4b71a0bf89ffb0 Mon Sep 17 00:00:00 2001
    From: Koji Arai 
    Date: Sun, 10 Apr 2011 01:10:25 +0900
    Subject: [PATCH 085/310] Fixed NullPointerException
    
    ---
     src/com/fsck/k9/mail/store/LocalStore.java | 10 ++++++----
     1 file changed, 6 insertions(+), 4 deletions(-)
    
    diff --git a/src/com/fsck/k9/mail/store/LocalStore.java b/src/com/fsck/k9/mail/store/LocalStore.java
    index d0ddd6ceb..ba02381ed 100644
    --- a/src/com/fsck/k9/mail/store/LocalStore.java
    +++ b/src/com/fsck/k9/mail/store/LocalStore.java
    @@ -2375,10 +2375,12 @@ public class LocalStore extends Store implements Serializable {
                                 String contentDisposition = MimeUtility.unfoldAndDecode(attachment.getDisposition());
                                 String dispositionType = contentDisposition;
     
    -                            int pos = dispositionType.indexOf(';');
    -                            if (pos != -1) {
    -                                // extract the disposition-type, "attachment", "inline" or extension-token (see the RFC 2183)
    -                                dispositionType = dispositionType.substring(0, pos);
    +                            if (dispositionType != null) {
    +                                int pos = dispositionType.indexOf(';');
    +                                if (pos != -1) {
    +                                    // extract the disposition-type, "attachment", "inline" or extension-token (see the RFC 2183)
    +                                    dispositionType = dispositionType.substring(0, pos);
    +                                }
                                 }
     
                                 if (name == null && contentDisposition != null) {
    
    From 939660faf4a0be9a18e73f39921ad7ffcbdbc3e8 Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Sun, 10 Apr 2011 18:29:25 +0200
    Subject: [PATCH 086/310] Quote CID before using it in a regular expression
    
    Fixes issue 3227
    ---
     src/com/fsck/k9/mail/store/LocalStore.java | 3 ++-
     1 file changed, 2 insertions(+), 1 deletion(-)
    
    diff --git a/src/com/fsck/k9/mail/store/LocalStore.java b/src/com/fsck/k9/mail/store/LocalStore.java
    index ba02381ed..252f804ec 100644
    --- a/src/com/fsck/k9/mail/store/LocalStore.java
    +++ b/src/com/fsck/k9/mail/store/LocalStore.java
    @@ -13,6 +13,7 @@ import java.util.List;
     import java.util.Map;
     import java.util.Set;
     import java.util.UUID;
    +import java.util.regex.Pattern;
     
     import com.fsck.k9.helper.HtmlConverter;
     import org.apache.commons.io.IOUtils;
    @@ -2429,7 +2430,7 @@ public class LocalStore extends Store implements Serializable {
                                             String new_html;
     
                                             new_html = cursor.getString(0);
    -                                        new_html = new_html.replaceAll("cid:" + contentId,
    +                                        new_html = new_html.replaceAll(Pattern.quote("cid:" + contentId),
                                                                            contentUri.toString());
     
                                             ContentValues cv = new ContentValues();
    
    From 591d7a3c6f6028452fa2a7cb9d5b36caab36042a Mon Sep 17 00:00:00 2001
    From: =?UTF-8?q?Jo=C3=A3o=20Pedro=20Taveira?= 
    Date: Mon, 11 Apr 2011 20:34:23 +0100
    Subject: [PATCH 087/310] Added readed field to MessageProvider to indicate if
     message was readed yet.
    
    ---
     src/com/fsck/k9/provider/MessageProvider.java | 17 +++++++++++++++++
     1 file changed, 17 insertions(+)
    
    diff --git a/src/com/fsck/k9/provider/MessageProvider.java b/src/com/fsck/k9/provider/MessageProvider.java
    index f2615023e..64950ffd1 100644
    --- a/src/com/fsck/k9/provider/MessageProvider.java
    +++ b/src/com/fsck/k9/provider/MessageProvider.java
    @@ -49,6 +49,7 @@ import com.fsck.k9.mail.store.LocalStore;
     public class MessageProvider extends ContentProvider {
     
         public static interface MessageColumns extends BaseColumns {
    +    	
             /**
              * The number of milliseconds since Jan. 1, 1970, midnight GMT.
              *
    @@ -71,6 +72,11 @@ public class MessageProvider extends ContentProvider {
              */
             String PREVIEW = "preview";
     
    +        /**
    +         * 

    Type: BOOLEAN

    + */ + String READED = "readed"; + String ACCOUNT = "account"; String URI = "uri"; String DELETE_URI = "delUri"; @@ -180,6 +186,14 @@ public class MessageProvider extends ContentProvider { return source.message.getFolder().getAccount().getDescription(); } } + + public static class ReadedExtractor implements FieldExtractor { + @Override + public Boolean getField(final MessageInfoHolder source) { + return source.read; + } + } + /** * @deprecated having an incremential value has no real interest, @@ -288,6 +302,8 @@ public class MessageProvider extends ContentProvider { extractors.put(field, new DeleteUriExtractor()); } else if (MessageColumns.ACCOUNT.equals(field)) { extractors.put(field, new AccountExtractor()); + } else if (MessageColumns.READED.equals(field)) { + extractors.put(field, new ReadedExtractor()); } else if (MessageColumns.INCREMENT.equals(field)) { extractors.put(field, new IncrementExtractor()); } @@ -803,6 +819,7 @@ public class MessageProvider extends ContentProvider { MessageColumns.SUBJECT, MessageColumns.PREVIEW, MessageColumns.ACCOUNT, + MessageColumns.READED, MessageColumns.URI, MessageColumns.DELETE_URI }; From c283449d04e9c38f4970beaf2d25638c681b5a6d Mon Sep 17 00:00:00 2001 From: Sander Bogaert Date: Tue, 12 Apr 2011 14:32:42 +0200 Subject: [PATCH 088/310] Added another badDateTimeFormat to ImapResponseParser. Some IMAP servers generate timestamps without timezones. :/ Fixes gcode issue 3179 --- src/com/fsck/k9/mail/store/ImapResponseParser.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/com/fsck/k9/mail/store/ImapResponseParser.java b/src/com/fsck/k9/mail/store/ImapResponseParser.java index f52653da0..090dd85ad 100644 --- a/src/com/fsck/k9/mail/store/ImapResponseParser.java +++ b/src/com/fsck/k9/mail/store/ImapResponseParser.java @@ -15,6 +15,7 @@ public class ImapResponseParser { private static final SimpleDateFormat mDateTimeFormat = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss Z", Locale.US); private static final SimpleDateFormat badDateTimeFormat = new SimpleDateFormat("dd MMM yyyy HH:mm:ss Z", Locale.US); private static final SimpleDateFormat badDateTimeFormat2 = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss Z", Locale.US); + private static final SimpleDateFormat badDateTimeFormat3 = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss", Locale.US); private PeekableInputStream mIn; private ImapResponse mResponse; @@ -426,8 +427,14 @@ public class ImapResponseParser { return badDateTimeFormat.parse(value); } } catch (Exception e2) { - synchronized (badDateTimeFormat2) { - return badDateTimeFormat2.parse(value); + try { + synchronized (badDateTimeFormat2) { + return badDateTimeFormat2.parse(value); + } + } catch (Exception e3) { + synchronized (badDateTimeFormat3) { + return badDateTimeFormat3.parse(value); + } } } } From 17cb5106f69f478c555d33573027bb8b71837a43 Mon Sep 17 00:00:00 2001 From: Sander Bogaert Date: Tue, 12 Apr 2011 13:23:19 +0200 Subject: [PATCH 089/310] 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. --- src/com/fsck/k9/activity/MessageList.java | 5 ++++- src/com/fsck/k9/helper/MessageHelper.java | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/com/fsck/k9/activity/MessageList.java b/src/com/fsck/k9/activity/MessageList.java index 4965cd478..19c4b213b 100644 --- a/src/com/fsck/k9/activity/MessageList.java +++ b/src/com/fsck/k9/activity/MessageList.java @@ -698,7 +698,7 @@ public class MessageList @Override public void onResume() { super.onResume(); - + if (mAccount != null && !mAccount.isAvailable(this)) { onAccountUnavailable(); return; @@ -726,6 +726,9 @@ public class MessageList } } else { + // reread the selected date format preference in case it has changed + mMessageHelper.refresh(); + new Thread() { @Override public void run() { diff --git a/src/com/fsck/k9/helper/MessageHelper.java b/src/com/fsck/k9/helper/MessageHelper.java index 412796336..3eba0a5eb 100644 --- a/src/com/fsck/k9/helper/MessageHelper.java +++ b/src/com/fsck/k9/helper/MessageHelper.java @@ -99,4 +99,9 @@ public class MessageHelper { return mDateFormat.format(date); } } + + public void refresh() { + mDateFormat = DateFormatter.getDateFormat(mContext); + mTodayDateFormat = android.text.format.DateFormat.getTimeFormat(mContext); + } } From c891a5f00b77ec7765df2c2cd5e91bb3a877ff50 Mon Sep 17 00:00:00 2001 From: Jesse Vincent Date: Tue, 12 Apr 2011 21:49:31 +1000 Subject: [PATCH 090/310] Bumped manifest to 3.710 --- AndroidManifest.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index b76404dbc..c74641d35 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,8 +1,8 @@ Date: Tue, 12 Apr 2011 22:16:22 +1000 Subject: [PATCH 091/310] astyle --- src/com/fsck/k9/K9.java | 4 +- src/com/fsck/k9/activity/Accounts.java | 106 ++++++++-------- .../fsck/k9/activity/ConfirmationDialog.java | 36 +++--- src/com/fsck/k9/activity/FolderList.java | 28 +++-- src/com/fsck/k9/activity/MessageCompose.java | 2 +- src/com/fsck/k9/activity/MessageList.java | 56 ++++----- src/com/fsck/k9/activity/MessageView.java | 42 +++---- .../activity/setup/AccountSetupIncoming.java | 4 +- src/com/fsck/k9/activity/setup/Prefs.java | 16 +-- src/com/fsck/k9/helper/Contacts.java | 2 +- src/com/fsck/k9/helper/ContactsSdk3_4.java | 10 +- src/com/fsck/k9/helper/MessageHelper.java | 6 +- src/com/fsck/k9/mail/Authentication.java | 116 +++++++++--------- src/com/fsck/k9/mail/filter/Hex.java | 19 ++- .../fsck/k9/mail/internet/MimeUtility.java | 14 +-- .../k9/mail/store/ImapResponseParser.java | 4 +- src/com/fsck/k9/mail/store/ImapStore.java | 2 +- src/com/fsck/k9/mail/store/LocalStore.java | 2 +- src/com/fsck/k9/mail/store/Pop3Store.java | 16 +-- .../fsck/k9/mail/transport/SmtpTransport.java | 4 +- 20 files changed, 243 insertions(+), 246 deletions(-) diff --git a/src/com/fsck/k9/K9.java b/src/com/fsck/k9/K9.java index c193737da..f408544f2 100644 --- a/src/com/fsck/k9/K9.java +++ b/src/com/fsck/k9/K9.java @@ -942,11 +942,11 @@ public class K9 extends Application { } public static boolean confirmSpam() { - return mConfirmSpam; + return mConfirmSpam; } public static void setConfirmSpam(final boolean confirm) { - mConfirmSpam = confirm; + mConfirmSpam = confirm; } public static boolean confirmMarkAllAsRead() { diff --git a/src/com/fsck/k9/activity/Accounts.java b/src/com/fsck/k9/activity/Accounts.java index b18470208..37f5a41c8 100644 --- a/src/com/fsck/k9/activity/Accounts.java +++ b/src/com/fsck/k9/activity/Accounts.java @@ -457,66 +457,66 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC switch (id) { case DIALOG_REMOVE_ACCOUNT: return ConfirmationDialog.create(this, id, - R.string.account_delete_dlg_title, - getString(R.string.account_delete_dlg_instructions_fmt, - mSelectedContextAccount.getDescription()), - R.string.okay_action, - R.string.cancel_action, - new Runnable() { - @Override - public void run() { - if (mSelectedContextAccount instanceof Account) { - Account realAccount = (Account)mSelectedContextAccount; - try { - realAccount.getLocalStore().delete(); - } catch (Exception e) { - // Ignore, this may lead to localStores on sd-cards that are - // currently not inserted to be left - } - MessagingController.getInstance(getApplication()) - .notifyAccountCancel(Accounts.this, realAccount); - Preferences.getPreferences(Accounts.this).deleteAccount(realAccount); - K9.setServicesEnabled(Accounts.this); - refresh(); - } + R.string.account_delete_dlg_title, + getString(R.string.account_delete_dlg_instructions_fmt, + mSelectedContextAccount.getDescription()), + R.string.okay_action, + R.string.cancel_action, + new Runnable() { + @Override + public void run() { + if (mSelectedContextAccount instanceof Account) { + Account realAccount = (Account)mSelectedContextAccount; + try { + realAccount.getLocalStore().delete(); + } catch (Exception e) { + // Ignore, this may lead to localStores on sd-cards that are + // currently not inserted to be left } - }); + MessagingController.getInstance(getApplication()) + .notifyAccountCancel(Accounts.this, realAccount); + Preferences.getPreferences(Accounts.this).deleteAccount(realAccount); + K9.setServicesEnabled(Accounts.this); + refresh(); + } + } + }); case DIALOG_CLEAR_ACCOUNT: return ConfirmationDialog.create(this, id, - R.string.account_clear_dlg_title, - getString(R.string.account_clear_dlg_instructions_fmt, - mSelectedContextAccount.getDescription()), - R.string.okay_action, - R.string.cancel_action, - new Runnable() { - @Override - public void run() { - if (mSelectedContextAccount instanceof Account) { - Account realAccount = (Account)mSelectedContextAccount; - mHandler.workingAccount(realAccount, R.string.clearing_account); - MessagingController.getInstance(getApplication()).clear(realAccount, null); - } - } - }); + R.string.account_clear_dlg_title, + getString(R.string.account_clear_dlg_instructions_fmt, + mSelectedContextAccount.getDescription()), + R.string.okay_action, + R.string.cancel_action, + new Runnable() { + @Override + public void run() { + if (mSelectedContextAccount instanceof Account) { + Account realAccount = (Account)mSelectedContextAccount; + mHandler.workingAccount(realAccount, R.string.clearing_account); + MessagingController.getInstance(getApplication()).clear(realAccount, null); + } + } + }); case DIALOG_RECREATE_ACCOUNT: return ConfirmationDialog.create(this, id, - R.string.account_recreate_dlg_title, - getString(R.string.account_recreate_dlg_instructions_fmt, - mSelectedContextAccount.getDescription()), - R.string.okay_action, - R.string.cancel_action, - new Runnable() { - @Override - public void run() { - if (mSelectedContextAccount instanceof Account) { - Account realAccount = (Account)mSelectedContextAccount; - mHandler.workingAccount(realAccount, R.string.recreating_account); - MessagingController.getInstance(getApplication()).recreate(realAccount, null); - } - } - }); + R.string.account_recreate_dlg_title, + getString(R.string.account_recreate_dlg_instructions_fmt, + mSelectedContextAccount.getDescription()), + R.string.okay_action, + R.string.cancel_action, + new Runnable() { + @Override + public void run() { + if (mSelectedContextAccount instanceof Account) { + Account realAccount = (Account)mSelectedContextAccount; + mHandler.workingAccount(realAccount, R.string.recreating_account); + MessagingController.getInstance(getApplication()).recreate(realAccount, null); + } + } + }); } return super.onCreateDialog(id); } diff --git a/src/com/fsck/k9/activity/ConfirmationDialog.java b/src/com/fsck/k9/activity/ConfirmationDialog.java index e61039cd4..73e9bf81c 100644 --- a/src/com/fsck/k9/activity/ConfirmationDialog.java +++ b/src/com/fsck/k9/activity/ConfirmationDialog.java @@ -20,27 +20,27 @@ public class ConfirmationDialog { * @return A confirmation dialog with the supplied arguments */ public static Dialog create(final Activity activity, final int dialogId, final int title, - final String message, final int confirmButton, final int cancelButton, - final Runnable action) { + final String message, final int confirmButton, final int cancelButton, + final Runnable action) { final AlertDialog.Builder builder = new AlertDialog.Builder(activity); builder.setTitle(title); builder.setMessage(message); builder.setPositiveButton(confirmButton, - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - activity.dismissDialog(dialogId); - action.run(); - } - }); + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + activity.dismissDialog(dialogId); + action.run(); + } + }); builder.setNegativeButton(cancelButton, - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - activity.dismissDialog(dialogId); - } - }); + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + activity.dismissDialog(dialogId); + } + }); return builder.create(); } @@ -58,10 +58,10 @@ public class ConfirmationDialog { * @see #create(Activity,int,int,String,int,int,Runnable) */ public static Dialog create(final Activity activity, final int dialogId, final int title, - final int message, final int confirmButton, final int cancelButton, - final Runnable action) { + final int message, final int confirmButton, final int cancelButton, + final Runnable action) { return create(activity, dialogId, title, activity.getString(message), confirmButton, - cancelButton, action); + cancelButton, action); } } diff --git a/src/com/fsck/k9/activity/FolderList.java b/src/com/fsck/k9/activity/FolderList.java index 62982cba5..09c55a976 100644 --- a/src/com/fsck/k9/activity/FolderList.java +++ b/src/com/fsck/k9/activity/FolderList.java @@ -641,10 +641,12 @@ public class FolderList extends K9ListActivity { private void markAllAsRead() { try { MessagingController.getInstance(getApplication()) - .markAllMessagesRead(mAccount, mSelectedContextFolder.name); + .markAllMessagesRead(mAccount, mSelectedContextFolder.name); mSelectedContextFolder.unreadMessageCount = 0; mHandler.dataChanged(); - } catch (Exception e) { /* Ignore */ } + } catch (Exception e) { + /* Ignore */ + } } @Override @@ -652,17 +654,17 @@ public class FolderList extends K9ListActivity { switch (id) { case DIALOG_MARK_ALL_AS_READ: return ConfirmationDialog.create(this, id, - R.string.mark_all_as_read_dlg_title, - getString(R.string.mark_all_as_read_dlg_instructions_fmt, - mSelectedContextFolder.displayName), - R.string.okay_action, - R.string.cancel_action, - new Runnable() { - @Override - public void run() { - markAllAsRead(); - } - }); + R.string.mark_all_as_read_dlg_title, + getString(R.string.mark_all_as_read_dlg_instructions_fmt, + mSelectedContextFolder.displayName), + R.string.okay_action, + R.string.cancel_action, + new Runnable() { + @Override + public void run() { + markAllAsRead(); + } + }); } return super.onCreateDialog(id); diff --git a/src/com/fsck/k9/activity/MessageCompose.java b/src/com/fsck/k9/activity/MessageCompose.java index ee5422c8e..0b6b39374 100644 --- a/src/com/fsck/k9/activity/MessageCompose.java +++ b/src/com/fsck/k9/activity/MessageCompose.java @@ -1121,7 +1121,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc */ bp.addHeader(MimeHeader.HEADER_CONTENT_DISPOSITION, String.format( "attachment;\n filename=\"%s\";\n size=%d", - EncoderUtil.encodeIfNecessary(attachment.name, + EncoderUtil.encodeIfNecessary(attachment.name, EncoderUtil.Usage.WORD_ENTITY, 7), attachment.size)); diff --git a/src/com/fsck/k9/activity/MessageList.java b/src/com/fsck/k9/activity/MessageList.java index 19c4b213b..23ac75e79 100644 --- a/src/com/fsck/k9/activity/MessageList.java +++ b/src/com/fsck/k9/activity/MessageList.java @@ -698,7 +698,7 @@ public class MessageList @Override public void onResume() { super.onResume(); - + if (mAccount != null && !mAccount.isAvailable(this)) { onAccountUnavailable(); return; @@ -726,9 +726,9 @@ public class MessageList } } else { - // reread the selected date format preference in case it has changed - mMessageHelper.refresh(); - + // reread the selected date format preference in case it has changed + mMessageHelper.refresh(); + new Thread() { @Override public void run() { @@ -1142,7 +1142,7 @@ public class MessageList } } - private void moveToSpamFolder(MessageInfoHolder holder){ + private void moveToSpamFolder(MessageInfoHolder holder) { if (!mController.isMoveCapable(holder.message)) { Toast toast = Toast.makeText(this, R.string.move_copy_cannot_copy_unsynced_message, Toast.LENGTH_LONG); toast.show(); @@ -1286,31 +1286,31 @@ public class MessageList switch (id) { case DIALOG_MARK_ALL_AS_READ: return ConfirmationDialog.create(this, id, - R.string.mark_all_as_read_dlg_title, - getString(R.string.mark_all_as_read_dlg_instructions_fmt, - mCurrentFolder.displayName), - R.string.okay_action, - R.string.cancel_action, - new Runnable() { - @Override - public void run() { - markAllAsRead(); - } - }); + R.string.mark_all_as_read_dlg_title, + getString(R.string.mark_all_as_read_dlg_instructions_fmt, + mCurrentFolder.displayName), + R.string.okay_action, + R.string.cancel_action, + new Runnable() { + @Override + public void run() { + markAllAsRead(); + } + }); case R.id.dialog_confirm_spam: return ConfirmationDialog.create(this, id, - R.string.dialog_confirm_spam_title, - R.string.dialog_confirm_spam_message, - R.string.dialog_confirm_spam_confirm_button, - R.string.dialog_confirm_spam_cancel_button, - new Runnable() { - @Override - public void run() { - moveToSpamFolder(mSelectedMessage); - // No further need for this reference - mSelectedMessage = null; - } - }); + R.string.dialog_confirm_spam_title, + R.string.dialog_confirm_spam_message, + R.string.dialog_confirm_spam_confirm_button, + R.string.dialog_confirm_spam_cancel_button, + new Runnable() { + @Override + public void run() { + moveToSpamFolder(mSelectedMessage); + // No further need for this reference + mSelectedMessage = null; + } + }); } return super.onCreateDialog(id); diff --git a/src/com/fsck/k9/activity/MessageView.java b/src/com/fsck/k9/activity/MessageView.java index 49d6243b0..91e9c7f4a 100644 --- a/src/com/fsck/k9/activity/MessageView.java +++ b/src/com/fsck/k9/activity/MessageView.java @@ -932,29 +932,29 @@ public class MessageView extends K9Activity implements OnClickListener { switch (id) { case R.id.dialog_confirm_delete: return ConfirmationDialog.create(this, id, - R.string.dialog_confirm_delete_title, - R.string.dialog_confirm_delete_message, - R.string.dialog_confirm_delete_confirm_button, - R.string.dialog_confirm_delete_cancel_button, - new Runnable() { - @Override - public void run() { - delete(); - } - }); + R.string.dialog_confirm_delete_title, + R.string.dialog_confirm_delete_message, + R.string.dialog_confirm_delete_confirm_button, + R.string.dialog_confirm_delete_cancel_button, + new Runnable() { + @Override + public void run() { + delete(); + } + }); case R.id.dialog_confirm_spam: return ConfirmationDialog.create(this, id, - R.string.dialog_confirm_spam_title, - R.string.dialog_confirm_spam_message, - R.string.dialog_confirm_spam_confirm_button, - R.string.dialog_confirm_spam_cancel_button, - new Runnable() { - @Override - public void run() { - refileMessage(mDstFolder); - mDstFolder = null; - } - }); + R.string.dialog_confirm_spam_title, + R.string.dialog_confirm_spam_message, + R.string.dialog_confirm_spam_confirm_button, + R.string.dialog_confirm_spam_cancel_button, + new Runnable() { + @Override + public void run() { + refileMessage(mDstFolder); + mDstFolder = null; + } + }); case R.id.dialog_attachment_progress: ProgressDialog d = new ProgressDialog(this); d.setIndeterminate(true); diff --git a/src/com/fsck/k9/activity/setup/AccountSetupIncoming.java b/src/com/fsck/k9/activity/setup/AccountSetupIncoming.java index 7d94e919f..db0bbca33 100644 --- a/src/com/fsck/k9/activity/setup/AccountSetupIncoming.java +++ b/src/com/fsck/k9/activity/setup/AccountSetupIncoming.java @@ -409,9 +409,9 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener } else { String authType = ((SpinnerOption)mAuthTypeView.getSelectedItem()).label; if (!authType.equalsIgnoreCase("plain")) { - userInfo = authType + ":" + userEnc + ":" + passwordEnc; + userInfo = authType + ":" + userEnc + ":" + passwordEnc; } else { - userInfo = userEnc + ":" + passwordEnc; + userInfo = userEnc + ":" + passwordEnc; } } URI uri = new URI( diff --git a/src/com/fsck/k9/activity/setup/Prefs.java b/src/com/fsck/k9/activity/setup/Prefs.java index 2a2c51b93..905344041 100644 --- a/src/com/fsck/k9/activity/setup/Prefs.java +++ b/src/com/fsck/k9/activity/setup/Prefs.java @@ -182,15 +182,15 @@ public class Prefs extends K9PreferenceActivity { mConfirmActions = (CheckBoxListPreference) findPreference(PREFERENCE_CONFIRM_ACTIONS); mConfirmActions.setItems(new CharSequence[] { - getString(R.string.global_settings_confirm_action_delete), - getString(R.string.global_settings_confirm_action_spam), - getString(R.string.global_settings_confirm_action_mark_all_as_read) - }); + getString(R.string.global_settings_confirm_action_delete), + getString(R.string.global_settings_confirm_action_spam), + getString(R.string.global_settings_confirm_action_mark_all_as_read) + }); mConfirmActions.setCheckedItems(new boolean[] { - K9.confirmDelete(), - K9.confirmSpam(), - K9.confirmMarkAllAsRead() - }); + K9.confirmDelete(), + K9.confirmSpam(), + K9.confirmMarkAllAsRead() + }); mPrivacyMode = (CheckBoxPreference) findPreference(PREFERENCE_PRIVACY_MODE); mPrivacyMode.setChecked(K9.keyguardPrivacy()); diff --git a/src/com/fsck/k9/helper/Contacts.java b/src/com/fsck/k9/helper/Contacts.java index 7f3e6e441..c42b2d43d 100644 --- a/src/com/fsck/k9/helper/Contacts.java +++ b/src/com/fsck/k9/helper/Contacts.java @@ -195,7 +195,7 @@ public abstract class Contacts { public boolean hasContactPicker() { if (mHasContactPicker == null) { mHasContactPicker = (mContext.getPackageManager(). - queryIntentActivities(contactPickerIntent(), 0).size() > 0); + queryIntentActivities(contactPickerIntent(), 0).size() > 0); } return mHasContactPicker; } diff --git a/src/com/fsck/k9/helper/ContactsSdk3_4.java b/src/com/fsck/k9/helper/ContactsSdk3_4.java index 0b2433417..5d0fbdcd2 100644 --- a/src/com/fsck/k9/helper/ContactsSdk3_4.java +++ b/src/com/fsck/k9/helper/ContactsSdk3_4.java @@ -239,11 +239,11 @@ public class ContactsSdk3_4 extends com.fsck.k9.helper.Contacts { if (cursor.moveToFirst()) { String emailId = cursor.getString(cursor.getColumnIndex(Contacts.People.PRIMARY_EMAIL_ID)); cursor2 = mContext.getContentResolver().query( - ContactMethods.CONTENT_EMAIL_URI, - new String[] { ContactMethods.DATA }, - "contact_methods._id=?", - new String[] { emailId }, - null); + ContactMethods.CONTENT_EMAIL_URI, + new String[] { ContactMethods.DATA }, + "contact_methods._id=?", + new String[] { emailId }, + null); if (cursor2.moveToFirst()) { email = cursor2.getString(0); diff --git a/src/com/fsck/k9/helper/MessageHelper.java b/src/com/fsck/k9/helper/MessageHelper.java index 3eba0a5eb..43b208a77 100644 --- a/src/com/fsck/k9/helper/MessageHelper.java +++ b/src/com/fsck/k9/helper/MessageHelper.java @@ -100,8 +100,8 @@ public class MessageHelper { } } - public void refresh() { + public void refresh() { mDateFormat = DateFormatter.getDateFormat(mContext); - mTodayDateFormat = android.text.format.DateFormat.getTimeFormat(mContext); - } + mTodayDateFormat = android.text.format.DateFormat.getTimeFormat(mContext); + } } diff --git a/src/com/fsck/k9/mail/Authentication.java b/src/com/fsck/k9/mail/Authentication.java index f80b5f82d..4b9ae90ae 100644 --- a/src/com/fsck/k9/mail/Authentication.java +++ b/src/com/fsck/k9/mail/Authentication.java @@ -6,80 +6,80 @@ import com.fsck.k9.mail.filter.Base64; import com.fsck.k9.mail.filter.Hex; public class Authentication { - private static final String US_ASCII = "US-ASCII"; + private static final String US_ASCII = "US-ASCII"; - /** - * Computes the response for CRAM-MD5 authentication mechanism given the user credentials and - * the server-provided nonce. - * - * @param username The username. - * @param password The password. - * @param b64Nonce The nonce as base64-encoded string. - * @return The CRAM-MD5 response. - * - * @throws AuthenticationFailedException If something went wrong. - * - * @see Authentication#computeCramMd5Bytes(String, String, byte[]) - */ - public static String computeCramMd5(String username, String password, String b64Nonce) - throws AuthenticationFailedException { + /** + * Computes the response for CRAM-MD5 authentication mechanism given the user credentials and + * the server-provided nonce. + * + * @param username The username. + * @param password The password. + * @param b64Nonce The nonce as base64-encoded string. + * @return The CRAM-MD5 response. + * + * @throws AuthenticationFailedException If something went wrong. + * + * @see Authentication#computeCramMd5Bytes(String, String, byte[]) + */ + public static String computeCramMd5(String username, String password, String b64Nonce) + throws AuthenticationFailedException { try { - byte[] b64NonceBytes = b64Nonce.getBytes(US_ASCII); - byte[] b64CRAM = computeCramMd5Bytes(username, password, b64NonceBytes); - return new String(b64CRAM, US_ASCII); + byte[] b64NonceBytes = b64Nonce.getBytes(US_ASCII); + byte[] b64CRAM = computeCramMd5Bytes(username, password, b64NonceBytes); + return new String(b64CRAM, US_ASCII); } catch (AuthenticationFailedException e) { - throw e; + throw e; } catch (Exception e) { - throw new AuthenticationFailedException("This shouldn't happen", e); + throw new AuthenticationFailedException("This shouldn't happen", e); } - } + } - /** - * Computes the response for CRAM-MD5 authentication mechanism given the user credentials and - * the server-provided nonce. - * - * @param username The username. - * @param password The password. - * @param b64Nonce The nonce as base64-encoded byte array. - * @return The CRAM-MD5 response as byte array. - * - * @throws AuthenticationFailedException If something went wrong. - * - * @see RFC 2195 - */ - public static byte[] computeCramMd5Bytes(String username, String password, byte[] b64Nonce) - throws AuthenticationFailedException { + /** + * Computes the response for CRAM-MD5 authentication mechanism given the user credentials and + * the server-provided nonce. + * + * @param username The username. + * @param password The password. + * @param b64Nonce The nonce as base64-encoded byte array. + * @return The CRAM-MD5 response as byte array. + * + * @throws AuthenticationFailedException If something went wrong. + * + * @see RFC 2195 + */ + public static byte[] computeCramMd5Bytes(String username, String password, byte[] b64Nonce) + throws AuthenticationFailedException { try { - byte[] nonce = Base64.decodeBase64(b64Nonce); + byte[] nonce = Base64.decodeBase64(b64Nonce); - byte[] secretBytes = password.getBytes(US_ASCII); - MessageDigest md = MessageDigest.getInstance("MD5"); - if (secretBytes.length > 64) { - secretBytes = md.digest(secretBytes); - } + byte[] secretBytes = password.getBytes(US_ASCII); + MessageDigest md = MessageDigest.getInstance("MD5"); + if (secretBytes.length > 64) { + secretBytes = md.digest(secretBytes); + } - byte[] ipad = new byte[64]; - byte[] opad = new byte[64]; - System.arraycopy(secretBytes, 0, ipad, 0, secretBytes.length); - System.arraycopy(secretBytes, 0, opad, 0, secretBytes.length); - for (int i = 0; i < ipad.length; i++) ipad[i] ^= 0x36; - for (int i = 0; i < opad.length; i++) opad[i] ^= 0x5c; + byte[] ipad = new byte[64]; + byte[] opad = new byte[64]; + System.arraycopy(secretBytes, 0, ipad, 0, secretBytes.length); + System.arraycopy(secretBytes, 0, opad, 0, secretBytes.length); + for (int i = 0; i < ipad.length; i++) ipad[i] ^= 0x36; + for (int i = 0; i < opad.length; i++) opad[i] ^= 0x5c; - md.update(ipad); - byte[] firstPass = md.digest(nonce); + md.update(ipad); + byte[] firstPass = md.digest(nonce); - md.update(opad); - byte[] result = md.digest(firstPass); + md.update(opad); + byte[] result = md.digest(firstPass); - String plainCRAM = username + " " + new String(Hex.encodeHex(result)); - byte[] b64CRAM = Base64.encodeBase64(plainCRAM.getBytes(US_ASCII)); + String plainCRAM = username + " " + new String(Hex.encodeHex(result)); + byte[] b64CRAM = Base64.encodeBase64(plainCRAM.getBytes(US_ASCII)); - return b64CRAM; + return b64CRAM; } catch (Exception e) { - throw new AuthenticationFailedException("Something went wrong during CRAM-MD5 computation", e); + throw new AuthenticationFailedException("Something went wrong during CRAM-MD5 computation", e); } - } + } } diff --git a/src/com/fsck/k9/mail/filter/Hex.java b/src/com/fsck/k9/mail/filter/Hex.java index 5bbcf7b05..92022203b 100644 --- a/src/com/fsck/k9/mail/filter/Hex.java +++ b/src/com/fsck/k9/mail/filter/Hex.java @@ -20,14 +20,13 @@ package com.fsck.k9.mail.filter; * This code was copied from the Apache Commons project. * The unnecessary parts have been left out. */ -public class Hex -{ +public class Hex { /** * Used building output as Hex */ private static final char[] DIGITS = { '0', '1', '2', '3', '4', '5', '6', '7', - '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' + '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; /** @@ -43,15 +42,15 @@ public class Hex int l = data.length; - char[] out = new char[l << 1]; + char[] out = new char[l << 1]; - // two characters form the hex value. - for (int i = 0, j = 0; i < l; i++) { - out[j++] = DIGITS[(0xF0 & data[i]) >>> 4 ]; - out[j++] = DIGITS[ 0x0F & data[i] ]; - } + // two characters form the hex value. + for (int i = 0, j = 0; i < l; i++) { + out[j++] = DIGITS[(0xF0 & data[i]) >>> 4 ]; + out[j++] = DIGITS[ 0x0F & data[i] ]; + } - return out; + return out; } } diff --git a/src/com/fsck/k9/mail/internet/MimeUtility.java b/src/com/fsck/k9/mail/internet/MimeUtility.java index 24f9da2da..84ce1e063 100644 --- a/src/com/fsck/k9/mail/internet/MimeUtility.java +++ b/src/com/fsck/k9/mail/internet/MimeUtility.java @@ -1212,13 +1212,13 @@ public class MimeUtility { * @see #MIME_TYPE_REPLACEMENT_MAP */ public static String canonicalizeMimeType(String mimeType) { - for (String[] mimeTypeMapEntry : MIME_TYPE_REPLACEMENT_MAP) { - if (mimeTypeMapEntry[0].equals(mimeType)) { - return mimeTypeMapEntry[1]; - } - } - return mimeType; - } + for (String[] mimeTypeMapEntry : MIME_TYPE_REPLACEMENT_MAP) { + if (mimeTypeMapEntry[0].equals(mimeType)) { + return mimeTypeMapEntry[1]; + } + } + return mimeType; + } /** * When viewing the attachment we want the MIME type to be as sensible as diff --git a/src/com/fsck/k9/mail/store/ImapResponseParser.java b/src/com/fsck/k9/mail/store/ImapResponseParser.java index 090dd85ad..8e93ea65e 100644 --- a/src/com/fsck/k9/mail/store/ImapResponseParser.java +++ b/src/com/fsck/k9/mail/store/ImapResponseParser.java @@ -362,7 +362,7 @@ public class ImapResponseParser { } return parseDate(value); } catch (ParseException pe) { - throw new MessagingException("Unable to parse IMAP datetime '"+value+"' ", pe); + throw new MessagingException("Unable to parse IMAP datetime '" + value + "' ", pe); } } @@ -428,7 +428,7 @@ public class ImapResponseParser { } } catch (Exception e2) { try { - synchronized (badDateTimeFormat2) { + synchronized (badDateTimeFormat2) { return badDateTimeFormat2.parse(value); } } catch (Exception e3) { diff --git a/src/com/fsck/k9/mail/store/ImapStore.java b/src/com/fsck/k9/mail/store/ImapStore.java index 13e626a5d..339a74124 100644 --- a/src/com/fsck/k9/mail/store/ImapStore.java +++ b/src/com/fsck/k9/mail/store/ImapStore.java @@ -2098,7 +2098,7 @@ public class ImapStore extends Store { System.arraycopy(buf, 1, b64NonceTrim, 0, b64NonceLen - 2); byte[] b64CRAM = Authentication.computeCramMd5Bytes(mSettings.getUsername(), - mSettings.getPassword(), b64NonceTrim); + mSettings.getPassword(), b64NonceTrim); mOut.write(b64CRAM); mOut.write(new byte[] { 0x0d, 0x0a }); diff --git a/src/com/fsck/k9/mail/store/LocalStore.java b/src/com/fsck/k9/mail/store/LocalStore.java index 252f804ec..50b224d64 100644 --- a/src/com/fsck/k9/mail/store/LocalStore.java +++ b/src/com/fsck/k9/mail/store/LocalStore.java @@ -1675,7 +1675,7 @@ public class LocalStore extends Store implements Serializable { } String encoded_name = EncoderUtil.encodeIfNecessary(name, - EncoderUtil.Usage.WORD_ENTITY, 7); + EncoderUtil.Usage.WORD_ENTITY, 7); MimeBodyPart bp = new LocalAttachmentBodyPart(body, id); bp.setHeader(MimeHeader.HEADER_CONTENT_TYPE, diff --git a/src/com/fsck/k9/mail/store/Pop3Store.java b/src/com/fsck/k9/mail/store/Pop3Store.java index a5df595cf..188b5476b 100644 --- a/src/com/fsck/k9/mail/store/Pop3Store.java +++ b/src/com/fsck/k9/mail/store/Pop3Store.java @@ -91,11 +91,10 @@ public class Pop3Store extends Store { try { int userIndex = 0, passwordIndex = 1; String[] userInfoParts = uri.getUserInfo().split(":"); - if (userInfoParts.length > 2) - { - userIndex++; - passwordIndex++; - useCramMd5 = true; + if (userInfoParts.length > 2) { + userIndex++; + passwordIndex++; + useCramMd5 = true; } mUsername = URLDecoder.decode(userInfoParts[userIndex], "UTF-8"); if (userInfoParts.length > passwordIndex) { @@ -224,8 +223,7 @@ public class Pop3Store extends Store { } } - if (useCramMd5) - { + if (useCramMd5) { try { String b64Nonce = executeSimpleCommand("AUTH CRAM-MD5").replace("+ ", ""); @@ -235,9 +233,7 @@ public class Pop3Store extends Store { } catch (MessagingException me) { throw new AuthenticationFailedException(null, me); } - } - else - { + } else { try { executeSimpleCommand("USER " + mUsername); executeSimpleCommand("PASS " + mPassword, true); diff --git a/src/com/fsck/k9/mail/transport/SmtpTransport.java b/src/com/fsck/k9/mail/transport/SmtpTransport.java index 9ae26e79a..142c8ac9f 100644 --- a/src/com/fsck/k9/mail/transport/SmtpTransport.java +++ b/src/com/fsck/k9/mail/transport/SmtpTransport.java @@ -520,9 +520,9 @@ public class SmtpTransport extends Transport { private void saslAuthCramMD5(String username, String password) throws MessagingException, AuthenticationFailedException, IOException { - List respList = executeSimpleCommand("AUTH CRAM-MD5"); + List respList = executeSimpleCommand("AUTH CRAM-MD5"); if (respList.size() != 1) { - throw new AuthenticationFailedException("Unable to negotiate CRAM-MD5"); + throw new AuthenticationFailedException("Unable to negotiate CRAM-MD5"); } String b64Nonce = respList.get(0); From 50b906aef7e87f4bf5ba8d4b778480fc559c7eb5 Mon Sep 17 00:00:00 2001 From: bitblaster Date: Tue, 5 Apr 2011 02:08:10 -0700 Subject: [PATCH 092/310] Added mInboxFolderName and mOutboxFolderName fields --- src/com/fsck/k9/Account.java | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/src/com/fsck/k9/Account.java b/src/com/fsck/k9/Account.java index 719e4b15a..5aefe10c2 100644 --- a/src/com/fsck/k9/Account.java +++ b/src/com/fsck/k9/Account.java @@ -80,11 +80,13 @@ public class Account implements BaseAccount { private long mLatestOldMessageSeenTime; private boolean mNotifyNewMail; private boolean mNotifySelfNewMail; + private String mInboxFolderName; private String mDraftsFolderName; private String mSentFolderName; private String mTrashFolderName; private String mArchiveFolderName; private String mSpamFolderName; + private String mOutboxFolderName; private String mAutoExpandFolderName; private FolderMode mFolderDisplayMode; private FolderMode mFolderSyncMode; @@ -180,7 +182,8 @@ public class Account implements BaseAccount { mEnableMoveButtons = false; mIsSignatureBeforeQuotedText = false; mExpungePolicy = EXPUNGE_IMMEDIATELY; - mAutoExpandFolderName = "INBOX"; + mAutoExpandFolderName = K9.INBOX; + mInboxFolderName = K9.INBOX; mMaxPushFolders = 10; mChipColor = (new Random()).nextInt(0xffffff) + 0xff000000; goToUnreadMessageSearch = false; @@ -246,11 +249,13 @@ public class Account implements BaseAccount { mNotifySelfNewMail = prefs.getBoolean(mUuid + ".notifySelfNewMail", true); mNotifySync = prefs.getBoolean(mUuid + ".notifyMailCheck", false); mDeletePolicy = prefs.getInt(mUuid + ".deletePolicy", 0); + mInboxFolderName = prefs.getString(mUuid + ".inboxFolderName", K9.INBOX); mDraftsFolderName = prefs.getString(mUuid + ".draftsFolderName", "Drafts"); mSentFolderName = prefs.getString(mUuid + ".sentFolderName", "Sent"); mTrashFolderName = prefs.getString(mUuid + ".trashFolderName", "Trash"); mArchiveFolderName = prefs.getString(mUuid + ".archiveFolderName", "Archive"); mSpamFolderName = prefs.getString(mUuid + ".spamFolderName", "Spam"); + mOutboxFolderName = prefs.getString(mUuid + ".outboxFolderName", "Outbox"); mExpungePolicy = prefs.getString(mUuid + ".expungePolicy", EXPUNGE_IMMEDIATELY); mSyncRemoteDeletions = prefs.getBoolean(mUuid + ".syncRemoteDeletions", true); @@ -270,8 +275,7 @@ public class Account implements BaseAccount { compressionMap.put(type, useCompression); } - mAutoExpandFolderName = prefs.getString(mUuid + ".autoExpandFolderName", - "INBOX"); + mAutoExpandFolderName = prefs.getString(mUuid + ".autoExpandFolderName", K9.INBOX); mAccountNumber = prefs.getInt(mUuid + ".accountNumber", 0); @@ -394,6 +398,7 @@ public class Account implements BaseAccount { editor.remove(mUuid + ".trashFolderName"); editor.remove(mUuid + ".archiveFolderName"); editor.remove(mUuid + ".spamFolderName"); + editor.remove(mUuid + ".outboxFolderName"); editor.remove(mUuid + ".autoExpandFolderName"); editor.remove(mUuid + ".accountNumber"); editor.remove(mUuid + ".vibrate"); @@ -485,11 +490,13 @@ public class Account implements BaseAccount { editor.putBoolean(mUuid + ".notifySelfNewMail", mNotifySelfNewMail); editor.putBoolean(mUuid + ".notifyMailCheck", mNotifySync); editor.putInt(mUuid + ".deletePolicy", mDeletePolicy); + editor.putString(mUuid + ".inboxFolderName", mInboxFolderName); editor.putString(mUuid + ".draftsFolderName", mDraftsFolderName); editor.putString(mUuid + ".sentFolderName", mSentFolderName); editor.putString(mUuid + ".trashFolderName", mTrashFolderName); editor.putString(mUuid + ".archiveFolderName", mArchiveFolderName); editor.putString(mUuid + ".spamFolderName", mSpamFolderName); + editor.putString(mUuid + ".outboxFolderName", mOutboxFolderName); editor.putString(mUuid + ".autoExpandFolderName", mAutoExpandFolderName); editor.putInt(mUuid + ".accountNumber", mAccountNumber); editor.putString(mUuid + ".hideButtonsEnum", mScrollMessageViewButtons.name()); @@ -762,7 +769,7 @@ public class Account implements BaseAccount { public boolean isSpecialFolder(String folderName) { - if (folderName != null && (folderName.equalsIgnoreCase(K9.INBOX) || + if (folderName != null && (folderName.equalsIgnoreCase(getInboxFolderName()) || folderName.equals(getTrashFolderName()) || folderName.equals(getDraftsFolderName()) || folderName.equals(getArchiveFolderName()) || @@ -824,7 +831,11 @@ public class Account implements BaseAccount { } public synchronized String getOutboxFolderName() { - return K9.OUTBOX; + return mOutboxFolderName; + } + + public synchronized void setOutboxFolderName(String outboxFolderName) { + mOutboxFolderName = outboxFolderName; } public synchronized String getAutoExpandFolderName() { @@ -1303,6 +1314,15 @@ public class Account implements BaseAccount { public void setCryptoAutoSignature(boolean cryptoAutoSignature) { mCryptoAutoSignature = cryptoAutoSignature; } + + public String getInboxFolderName() { + return mInboxFolderName; + } + + public void setInboxFolderName(String mInboxFolderName) { + this.mInboxFolderName = mInboxFolderName; + } + public synchronized boolean syncRemoteDeletions() { return mSyncRemoteDeletions; } From 680e2e419163df030a26cfca2a2682c743ffe422 Mon Sep 17 00:00:00 2001 From: bitblaster Date: Tue, 5 Apr 2011 02:10:11 -0700 Subject: [PATCH 093/310] Replaced references to K9.INBOX with account.getInboxFolderName() --- src/com/fsck/k9/activity/ChooseFolder.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/com/fsck/k9/activity/ChooseFolder.java b/src/com/fsck/k9/activity/ChooseFolder.java index 01513196f..5d0ff100f 100644 --- a/src/com/fsck/k9/activity/ChooseFolder.java +++ b/src/com/fsck/k9/activity/ChooseFolder.java @@ -248,7 +248,8 @@ public class ChooseFolder extends K9ListActivity { String name = folder.getName(); // Inbox needs to be compared case-insensitively - if (hideCurrentFolder && (name.equals(mFolder) || (K9.INBOX.equalsIgnoreCase(mFolder) && K9.INBOX.equalsIgnoreCase(name)))) { + if (hideCurrentFolder && (name.equals(mFolder) || + (mAccount.getInboxFolderName().equalsIgnoreCase(mFolder) && mAccount.getInboxFolderName().equalsIgnoreCase(name)))) { continue; } try { @@ -282,10 +283,10 @@ public class ChooseFolder extends K9ListActivity { if (K9.FOLDER_NONE.equalsIgnoreCase(bName)) { return 1; } - if (K9.INBOX.equalsIgnoreCase(aName)) { + if (mAccount.getInboxFolderName().equalsIgnoreCase(aName)) { return -1; } - if (K9.INBOX.equalsIgnoreCase(bName)) { + if (mAccount.getInboxFolderName().equalsIgnoreCase(bName)) { return 1; } @@ -298,7 +299,7 @@ public class ChooseFolder extends K9ListActivity { mAdapter.clear(); int position = 0; for (String name : localFolders) { - if (K9.INBOX.equalsIgnoreCase(name)) { + if (mAccount.getInboxFolderName().equalsIgnoreCase(name)) { mAdapter.add(getString(R.string.special_mailbox_name_inbox)); heldInbox = name; } else if (!K9.ERROR_FOLDER_NAME.equals(name) && !account.getOutboxFolderName().equals(name)) { @@ -315,7 +316,7 @@ public class ChooseFolder extends K9ListActivity { selectedFolder = position; } } else if (name.equals(mFolder) || - (K9.INBOX.equalsIgnoreCase(mFolder) && K9.INBOX.equalsIgnoreCase(name))) { + (mAccount.getInboxFolderName().equalsIgnoreCase(mFolder) && mAccount.getInboxFolderName().equalsIgnoreCase(name))) { selectedFolder = position; } position++; From 236226858ca0681761ef3982d17e01100d48c597 Mon Sep 17 00:00:00 2001 From: bitblaster Date: Tue, 5 Apr 2011 02:11:21 -0700 Subject: [PATCH 094/310] Replaced references to K9.INBOX with account.getInboxFolderName() --- src/com/fsck/k9/activity/FolderInfoHolder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/fsck/k9/activity/FolderInfoHolder.java b/src/com/fsck/k9/activity/FolderInfoHolder.java index 30023b343..4f9eca5f0 100644 --- a/src/com/fsck/k9/activity/FolderInfoHolder.java +++ b/src/com/fsck/k9/activity/FolderInfoHolder.java @@ -97,7 +97,7 @@ public class FolderInfoHolder implements Comparable { this.status = truncateStatus(folder.getStatus()); - if (this.name.equalsIgnoreCase(K9.INBOX)) { + if (this.name.equalsIgnoreCase(account.getInboxFolderName())) { this.displayName = context.getString(R.string.special_mailbox_name_inbox); } else { this.displayName = folder.getName(); From ccc79f62b92a1095c04ebe6633d01aeda7383f26 Mon Sep 17 00:00:00 2001 From: bitblaster Date: Tue, 5 Apr 2011 02:12:06 -0700 Subject: [PATCH 095/310] Replaced references to K9.INBOX with account.getInboxFolderName() --- src/com/fsck/k9/activity/MessageList.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/fsck/k9/activity/MessageList.java b/src/com/fsck/k9/activity/MessageList.java index 23ac75e79..915e9ef00 100644 --- a/src/com/fsck/k9/activity/MessageList.java +++ b/src/com/fsck/k9/activity/MessageList.java @@ -491,7 +491,7 @@ public class MessageList if (mFolderName != null) { displayName = mFolderName; - if (K9.INBOX.equalsIgnoreCase(displayName)) { + if (mAccount.getInboxFolderName().equalsIgnoreCase(displayName)) { displayName = getString(R.string.special_mailbox_name_inbox); } else if (mAccount.getOutboxFolderName().equals(displayName)) { displayName = getString(R.string.special_mailbox_name_outbox); From 32901667496a84cec9c78d9d1613fbb44b0ce88f Mon Sep 17 00:00:00 2001 From: bitblaster Date: Tue, 5 Apr 2011 02:14:56 -0700 Subject: [PATCH 096/310] Replaced references to K9.INBOX with account.getInboxFolderName() and disabled the call to reverseTranslateFolder in case of WebDav account --- src/com/fsck/k9/activity/setup/AccountSettings.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/com/fsck/k9/activity/setup/AccountSettings.java b/src/com/fsck/k9/activity/setup/AccountSettings.java index b5c4a54b4..c54f82cc4 100644 --- a/src/com/fsck/k9/activity/setup/AccountSettings.java +++ b/src/com/fsck/k9/activity/setup/AccountSettings.java @@ -700,7 +700,13 @@ public class AccountSettings extends K9PreferenceActivity { mAccount.setCryptoAutoSignature(mCryptoAutoSignature.isChecked()); mAccount.setLocalStorageProviderId(mLocalStorageProvider.getValue()); - mAccount.setAutoExpandFolderName(reverseTranslateFolder(mAutoExpandFolder.getValue())); + // In webdav account we use the exact folder name also for inbox, + // since it varies because of internationalization + if(mAccount.getStoreUri().startsWith("webdav")) + mAccount.setAutoExpandFolderName(mAutoExpandFolder.getValue()); + else + mAccount.setAutoExpandFolderName(reverseTranslateFolder(mAutoExpandFolder.getValue())); + mAccount.setArchiveFolderName(mArchiveFolder.getValue()); mAccount.setDraftsFolderName(mDraftsFolder.getValue()); mAccount.setSentFolderName(mSentFolder.getValue()); @@ -826,7 +832,7 @@ public class AccountSettings extends K9PreferenceActivity { } private String translateFolder(String in) { - if (K9.INBOX.equalsIgnoreCase(in)) { + if (mAccount.getInboxFolderName().equalsIgnoreCase(in)) { return getString(R.string.special_mailbox_name_inbox); } else { return in; @@ -835,7 +841,7 @@ public class AccountSettings extends K9PreferenceActivity { private String reverseTranslateFolder(String in) { if (getString(R.string.special_mailbox_name_inbox).equals(in)) { - return K9.INBOX; + return mAccount.getInboxFolderName(); } else { return in; } From 879d8726169eb637ef51517217055449c893fd2e Mon Sep 17 00:00:00 2001 From: bitblaster Date: Tue, 5 Apr 2011 02:19:27 -0700 Subject: [PATCH 097/310] Replaced references to K9.INBOX with account.getInboxFolderName() --- src/com/fsck/k9/activity/setup/AccountSetupCheckSettings.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/fsck/k9/activity/setup/AccountSetupCheckSettings.java b/src/com/fsck/k9/activity/setup/AccountSetupCheckSettings.java index 2aaac3fd5..bfc8e3520 100644 --- a/src/com/fsck/k9/activity/setup/AccountSetupCheckSettings.java +++ b/src/com/fsck/k9/activity/setup/AccountSetupCheckSettings.java @@ -116,7 +116,7 @@ public class AccountSetupCheckSettings extends K9Activity implements OnClickList setMessage(R.string.account_setup_check_settings_fetch); } MessagingController.getInstance(getApplication()).listFoldersSynchronous(mAccount, true, null); - MessagingController.getInstance(getApplication()).synchronizeMailbox(mAccount, K9.INBOX , null, null); + MessagingController.getInstance(getApplication()).synchronizeMailbox(mAccount, mAccount.getInboxFolderName(), null, null); } if (mDestroyed) { return; From 461b57747c1209ab451275828b94c2f21f88a1d1 Mon Sep 17 00:00:00 2001 From: bitblaster Date: Tue, 5 Apr 2011 02:23:57 -0700 Subject: [PATCH 098/310] Replaced references to K9.INBOX with account.getInboxFolderName() --- src/com/fsck/k9/controller/MessagingController.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/com/fsck/k9/controller/MessagingController.java b/src/com/fsck/k9/controller/MessagingController.java index 7acc65882..de04e2d1c 100644 --- a/src/com/fsck/k9/controller/MessagingController.java +++ b/src/com/fsck/k9/controller/MessagingController.java @@ -719,7 +719,7 @@ public class MessagingController implements Runnable { } } // Never exclude the INBOX (see issue 1817) - else if (noSpecialFolders && !localFolderName.equalsIgnoreCase(K9.INBOX) && + else if (noSpecialFolders && !localFolderName.equalsIgnoreCase(account.getInboxFolderName()) && !localFolderName.equals(account.getArchiveFolderName()) && account.isSpecialFolder(localFolderName)) { include = false; } else if (displayableOnly && modeMismatch(account.getFolderDisplayMode(), folder.getDisplayClass())) { @@ -2880,7 +2880,7 @@ public class MessagingController implements Runnable { (NotificationManager)mApplication.getSystemService(Context.NOTIFICATION_SERVICE); Notification notif = new Notification(R.drawable.ic_menu_refresh, mApplication.getString(R.string.notification_bg_send_ticker, account.getDescription()), System.currentTimeMillis()); - Intent intent = MessageList.actionHandleFolderIntent(mApplication, account, K9.INBOX); + Intent intent = MessageList.actionHandleFolderIntent(mApplication, account, account.getInboxFolderName()); PendingIntent pi = PendingIntent.getActivity(mApplication, 0, intent, 0); notif.setLatestEventInfo(mApplication, mApplication.getString(R.string.notification_bg_send_title), account.getDescription() , pi); @@ -2922,7 +2922,7 @@ public class MessagingController implements Runnable { Notification notif = new Notification(R.drawable.ic_menu_refresh, mApplication.getString(R.string.notification_bg_sync_ticker, account.getDescription(), folder.getName()), System.currentTimeMillis()); - Intent intent = MessageList.actionHandleFolderIntent(mApplication, account, K9.INBOX); + Intent intent = MessageList.actionHandleFolderIntent(mApplication, account, account.getInboxFolderName()); PendingIntent pi = PendingIntent.getActivity(mApplication, 0, intent, 0); notif.setLatestEventInfo(mApplication, mApplication.getString(R.string.notification_bg_sync_title), account.getDescription() + mApplication.getString(R.string.notification_bg_title_separator) + folder.getName(), pi); @@ -3867,7 +3867,7 @@ public class MessagingController implements Runnable { // No notification for new messages in Trash, Drafts, Spam or Sent folder. // But do notify if it's the INBOX (see issue 1817). String folderName = folder.getName(); - if (!K9.INBOX.equals(folderName) && + if (!account.getInboxFolderName().equals(folderName) && (account.getTrashFolderName().equals(folderName) || account.getDraftsFolderName().equals(folderName) || account.getSpamFolderName().equals(folderName) From 20a9043a135c29d3d1da8c31ee8d24e8a96c1152 Mon Sep 17 00:00:00 2001 From: bitblaster Date: Tue, 5 Apr 2011 02:27:04 -0700 Subject: [PATCH 099/310] Replaced references to K9.INBOX with account.getInboxFolderName() --- src/com/fsck/k9/mail/store/ImapStore.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/com/fsck/k9/mail/store/ImapStore.java b/src/com/fsck/k9/mail/store/ImapStore.java index 339a74124..bbd7fc148 100644 --- a/src/com/fsck/k9/mail/store/ImapStore.java +++ b/src/com/fsck/k9/mail/store/ImapStore.java @@ -380,7 +380,7 @@ public class ImapStore extends Store { mCombinedPrefix = null; } - if (folder.equalsIgnoreCase(K9.INBOX)) { + if (folder.equalsIgnoreCase(mAccount.getInboxFolderName())) { continue; } else if (folder.equalsIgnoreCase(K9.OUTBOX)) { /* @@ -413,7 +413,7 @@ public class ImapStore extends Store { } } } - folders.add(getFolder("INBOX")); + folders.add(getFolder(mAccount.getInboxFolderName())); return folders; } @@ -548,7 +548,7 @@ public class ImapStore extends Store { public String getPrefixedName() throws MessagingException { String prefixedName = ""; - if (!K9.INBOX.equalsIgnoreCase(mName)) { + if (!mAccount.getInboxFolderName().equalsIgnoreCase(mName)) { ImapConnection connection = null; synchronized (this) { if (mConnection == null) { From 59b1d57658d982609fbb48e8cdd108201a636980 Mon Sep 17 00:00:00 2001 From: bitblaster Date: Tue, 5 Apr 2011 02:27:39 -0700 Subject: [PATCH 100/310] Replaced references to K9.INBOX with account.getInboxFolderName() --- src/com/fsck/k9/mail/store/LocalStore.java | 23 +++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/com/fsck/k9/mail/store/LocalStore.java b/src/com/fsck/k9/mail/store/LocalStore.java index 50b224d64..4c010924b 100644 --- a/src/com/fsck/k9/mail/store/LocalStore.java +++ b/src/com/fsck/k9/mail/store/LocalStore.java @@ -366,7 +366,7 @@ public class LocalStore extends Store implements Serializable { Folder.FolderClass pushClass = Folder.FolderClass.SECOND_CLASS; boolean inTopGroup = false; boolean integrate = false; - if (K9.INBOX.equals(name)) { + if (mAccount.getInboxFolderName().equals(name)) { displayClass = Folder.FolderClass.FIRST_CLASS; syncClass = Folder.FolderClass.FIRST_CLASS; pushClass = Folder.FolderClass.FIRST_CLASS; @@ -515,7 +515,7 @@ public class LocalStore extends Store implements Serializable { mAccount.getSpamFolderName() != null ? mAccount.getSpamFolderName() : "", mAccount.getOutboxFolderName() != null ? mAccount.getOutboxFolderName() : "", mAccount.getSentFolderName() != null ? mAccount.getSentFolderName() : "", - K9.INBOX + mAccount.getInboxFolderName() } ); @@ -526,7 +526,7 @@ public class LocalStore extends Store implements Serializable { mAccount.getSpamFolderName() != null ? mAccount.getSpamFolderName() : "", mAccount.getOutboxFolderName() != null ? mAccount.getOutboxFolderName() : "", mAccount.getSentFolderName() != null ? mAccount.getSentFolderName() : "", - K9.INBOX, Folder.FolderClass.FIRST_CLASS.name() + mAccount.getInboxFolderName(), Folder.FolderClass.FIRST_CLASS.name() }); @@ -537,7 +537,7 @@ public class LocalStore extends Store implements Serializable { mAccount.getSpamFolderName() != null ? mAccount.getSpamFolderName() : "", mAccount.getOutboxFolderName() != null ? mAccount.getOutboxFolderName() : "", mAccount.getSentFolderName() != null ? mAccount.getSentFolderName() : "", - K9.INBOX, Folder.FolderClass.FIRST_CLASS.name(), Folder.FolderClass.SECOND_CLASS.name() + mAccount.getInboxFolderName(), Folder.FolderClass.FIRST_CLASS.name(), Folder.FolderClass.SECOND_CLASS.name() }); } else if (displayMode == Account.FolderMode.NOT_SECOND_CLASS) { cursor = db.rawQuery(baseQuery + " AND ( name = ? OR display_class != ?)", new String[] { @@ -547,7 +547,7 @@ public class LocalStore extends Store implements Serializable { mAccount.getSpamFolderName() != null ? mAccount.getSpamFolderName() : "", mAccount.getOutboxFolderName() != null ? mAccount.getOutboxFolderName() : "", mAccount.getSentFolderName() != null ? mAccount.getSentFolderName() : "", - K9.INBOX, Folder.FolderClass.SECOND_CLASS.name() + mAccount.getInboxFolderName(), Folder.FolderClass.SECOND_CLASS.name() }); } else if (displayMode == Account.FolderMode.ALL) { cursor = db.rawQuery(baseQuery, new String[] { @@ -1047,14 +1047,14 @@ public class LocalStore extends Store implements Serializable { if (mAccount.isSpecialFolder(name)) { prefHolder.inTopGroup = true; prefHolder.displayClass = LocalFolder.FolderClass.FIRST_CLASS; - if (name.equalsIgnoreCase(K9.INBOX)) { + if (name.equalsIgnoreCase(mAccount.getInboxFolderName())) { prefHolder.integrate = true; prefHolder.pushClass = LocalFolder.FolderClass.FIRST_CLASS; } else { prefHolder.pushClass = LocalFolder.FolderClass.INHERITED; } - if (name.equalsIgnoreCase(K9.INBOX) || + if (name.equalsIgnoreCase(mAccount.getInboxFolderName()) || name.equalsIgnoreCase(mAccount.getDraftsFolderName())) { prefHolder.syncClass = LocalFolder.FolderClass.FIRST_CLASS; } else { @@ -1104,7 +1104,8 @@ public class LocalStore extends Store implements Serializable { super(LocalStore.this.mAccount); this.mName = name; - if (K9.INBOX.equals(getName())) { + if (LocalStore.this.mAccount.getInboxFolderName().equals(getName())) { + mSyncClass = FolderClass.FIRST_CLASS; mPushClass = FolderClass.FIRST_CLASS; mInTopGroup = true; @@ -1484,19 +1485,19 @@ public class LocalStore extends Store implements Serializable { String id = getPrefId(); // there can be a lot of folders. For the defaults, let's not save prefs, saving space, except for INBOX - if (mDisplayClass == FolderClass.NO_CLASS && !K9.INBOX.equals(getName())) { + if (mDisplayClass == FolderClass.NO_CLASS && !mAccount.getInboxFolderName().equals(getName())) { editor.remove(id + ".displayMode"); } else { editor.putString(id + ".displayMode", mDisplayClass.name()); } - if (mSyncClass == FolderClass.INHERITED && !K9.INBOX.equals(getName())) { + if (mSyncClass == FolderClass.INHERITED && !mAccount.getInboxFolderName().equals(getName())) { editor.remove(id + ".syncMode"); } else { editor.putString(id + ".syncMode", mSyncClass.name()); } - if (mPushClass == FolderClass.SECOND_CLASS && !K9.INBOX.equals(getName())) { + if (mPushClass == FolderClass.SECOND_CLASS && !mAccount.getInboxFolderName().equals(getName())) { editor.remove(id + ".pushMode"); } else { editor.putString(id + ".pushMode", mPushClass.name()); From c46372b58cd0c3b64648610b388579092d860e62 Mon Sep 17 00:00:00 2001 From: bitblaster Date: Tue, 5 Apr 2011 02:28:04 -0700 Subject: [PATCH 101/310] Replaced references to K9.INBOX with account.getInboxFolderName() --- src/com/fsck/k9/mail/store/Pop3Store.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/com/fsck/k9/mail/store/Pop3Store.java b/src/com/fsck/k9/mail/store/Pop3Store.java index 188b5476b..b9d3eae8b 100644 --- a/src/com/fsck/k9/mail/store/Pop3Store.java +++ b/src/com/fsck/k9/mail/store/Pop3Store.java @@ -120,13 +120,13 @@ public class Pop3Store extends Store { @Override public List getPersonalNamespaces(boolean forceListAll) throws MessagingException { List folders = new LinkedList(); - folders.add(getFolder("INBOX")); + folders.add(getFolder(mAccount.getInboxFolderName())); return folders; } @Override public void checkSettings() throws MessagingException { - Pop3Folder folder = new Pop3Folder("INBOX"); + Pop3Folder folder = new Pop3Folder(mAccount.getInboxFolderName()); folder.open(OpenMode.READ_WRITE); if (!mCapabilities.uidl) { /* @@ -157,8 +157,9 @@ public class Pop3Store extends Store { public Pop3Folder(String name) { super(Pop3Store.this.mAccount); this.mName = name; - if (mName.equalsIgnoreCase("INBOX")) { - mName = "INBOX"; + + if (mName.equalsIgnoreCase(mAccount.getInboxFolderName())) { + mName = mAccount.getInboxFolderName(); } } @@ -168,7 +169,7 @@ public class Pop3Store extends Store { return; } - if (!mName.equalsIgnoreCase("INBOX")) { + if (!mName.equalsIgnoreCase(mAccount.getInboxFolderName())) { throw new MessagingException("Folder does not exist"); } @@ -325,7 +326,7 @@ public class Pop3Store extends Store { @Override public boolean exists() throws MessagingException { - return mName.equalsIgnoreCase("INBOX"); + return mName.equalsIgnoreCase(mAccount.getInboxFolderName()); } @Override From 0a5d7ba953980c7dc989bcf1a1fb62345254dff7 Mon Sep 17 00:00:00 2001 From: bitblaster Date: Tue, 5 Apr 2011 02:31:17 -0700 Subject: [PATCH 102/310] 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. --- src/com/fsck/k9/mail/store/WebDavStore.java | 319 ++++++++++++-------- 1 file changed, 195 insertions(+), 124 deletions(-) diff --git a/src/com/fsck/k9/mail/store/WebDavStore.java b/src/com/fsck/k9/mail/store/WebDavStore.java index efedebf7b..297811357 100644 --- a/src/com/fsck/k9/mail/store/WebDavStore.java +++ b/src/com/fsck/k9/mail/store/WebDavStore.java @@ -1,58 +1,38 @@ package com.fsck.k9.mail.store; -import android.util.Log; +import java.io.*; +import java.net.*; +import java.security.*; +import java.text.*; +import java.util.*; +import java.util.zip.*; -import com.fsck.k9.Account; -import com.fsck.k9.K9; -import com.fsck.k9.R; -import com.fsck.k9.controller.MessageRetrievalListener; -import com.fsck.k9.helper.Utility; +import javax.net.ssl.*; +import javax.xml.parsers.*; + +import org.apache.http.*; +import org.apache.http.client.*; +import org.apache.http.client.entity.*; +import org.apache.http.client.methods.*; +import org.apache.http.client.protocol.*; +import org.apache.http.conn.scheme.*; +import org.apache.http.entity.*; +import org.apache.http.impl.client.*; +import org.apache.http.message.*; +import org.apache.http.protocol.*; +import org.xml.sax.*; +import org.xml.sax.helpers.*; + +import android.util.*; + +import com.fsck.k9.*; +import com.fsck.k9.controller.*; +import com.fsck.k9.helper.*; import com.fsck.k9.mail.*; import com.fsck.k9.mail.Folder.OpenMode; -import com.fsck.k9.mail.filter.EOLConvertingOutputStream; -import com.fsck.k9.mail.internet.MimeMessage; -import com.fsck.k9.mail.transport.TrustedSocketFactory; -import org.apache.http.*; -import org.apache.http.client.CookieStore; -import org.apache.http.client.entity.UrlEncodedFormEntity; -import org.apache.http.client.methods.HttpEntityEnclosingRequestBase; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.methods.HttpUriRequest; -import org.apache.http.client.protocol.ClientContext; -import org.apache.http.conn.scheme.Scheme; -import org.apache.http.conn.scheme.SchemeRegistry; -import org.apache.http.entity.StringEntity; -import org.apache.http.impl.client.BasicCookieStore; -import org.apache.http.impl.client.DefaultHttpClient; -import org.apache.http.message.BasicNameValuePair; -import org.apache.http.protocol.BasicHttpContext; -import org.apache.http.protocol.HttpContext; -import org.xml.sax.Attributes; -import org.xml.sax.InputSource; -import org.xml.sax.SAXException; -import org.xml.sax.XMLReader; -import org.xml.sax.helpers.DefaultHandler; - -import javax.net.ssl.SSLException; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; -import java.io.*; -import java.net.URI; -import java.net.URISyntaxException; -import java.net.URLDecoder; -import java.net.URLEncoder; -import java.security.KeyManagementException; -import java.security.NoSuchAlgorithmException; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Stack; -import java.util.zip.GZIPInputStream; +import com.fsck.k9.mail.filter.*; +import com.fsck.k9.mail.internet.*; +import com.fsck.k9.mail.transport.*; /** *
    @@ -79,8 +59,13 @@ public class WebDavStore extends Store {
     
         private static final Message[] EMPTY_MESSAGE_ARRAY = new Message[0];
     
    +    private static final Object DAV_MAIL_INBOX_FOLDER = "inbox";
    +    private static final Object DAV_MAIL_DRAFTS_FOLDER = "drafts";
    +    private static final String DAV_MAIL_SPAM_FOLDER = "spam";
         private static final String DAV_MAIL_SEND_FOLDER = "##DavMailSubmissionURI##";
    -    private static final String DAV_MAIL_TMP_FOLDER = "drafts";
    +	private static final Object DAV_MAIL_TRASH_FOLDER = "deleteditems";
    +	private static final Object DAV_MAIL_OUTBOX_FOLDER = "outbox";
    +	private static final Object DAV_MAIL_SENT_FOLDER = "sentitems";
     
         private short mConnectionSecurity;
         private String mUsername; /* Stores the username for authentications */
    @@ -101,6 +86,7 @@ public class WebDavStore extends Store {
         private short mAuthentication = AUTH_TYPE_NONE;
         private String mCachedLoginUrl;
     
    +    private Folder mSendFolder = null;
         private HashMap mFolderList = new HashMap();
     
         /**
    @@ -231,63 +217,120 @@ public class WebDavStore extends Store {
         @Override
         public List  getPersonalNamespaces(boolean forceListAll) throws MessagingException {
             LinkedList folderList = new LinkedList();
    -        HashMap headers = new HashMap();
    -        DataSet dataset = new DataSet();
    -        String messageBody;
    -        String[] folderUrls;
    -        int urlLength;
    -
    -        String translatedInbox = K9.app.getString(R.string.special_mailbox_name_inbox);
    -
             /**
              * We have to check authentication here so we have the proper URL stored
              */
             getHttpClient();
    -        messageBody = getFolderListXml();
    +
    +        /**
    +         *  Firstly we get the "special" folders list (inbox, outbox, etc)
    +         *  and setup the account accordingly
    +         */
    +        HashMap headers = new HashMap();
    +        DataSet dataset = new DataSet();
    +        headers.put("Depth", "0");
             headers.put("Brief", "t");
    -        dataset = processRequest(this.mUrl, "SEARCH", messageBody, headers);
    +        dataset = processRequest(this.mUrl, "PROPFIND", getSpecialFoldersList(), headers);
     
    -        folderUrls = dataset.getHrefs();
    -        urlLength = folderUrls.length;
    +        HashMap specialFoldersMap = dataset.getSpecialFolderToUrl();
    +        String folderName = getFolderName(specialFoldersMap.get(DAV_MAIL_INBOX_FOLDER));
    +        if(folderName != null) {
    +		mAccount.setAutoExpandFolderName(folderName);
    +		mAccount.setInboxFolderName(folderName);
    +        }
     
    -        for (int i = 0; i < urlLength; i++) {
    -            String[] urlParts = folderUrls[i].split("/");
    -            String folderName = urlParts[urlParts.length - 1];
    -            String fullPathName = "";
    -            WebDavFolder wdFolder;
    +        folderName = getFolderName(specialFoldersMap.get(DAV_MAIL_DRAFTS_FOLDER));
    +        if(folderName != null)
    +		mAccount.setDraftsFolderName(folderName);
     
    -            // Check each Exchange folder name to see if it is the user's inbox.
    -            // We will check for the default English inbox ("Inbox"), and the user's
    -            // translation for "Inbox", in case the user is using a non-English
    -            // version of Exchange.
    -            if (folderName.equalsIgnoreCase("Inbox") ||
    -                    folderName.equalsIgnoreCase(translatedInbox)) {
    -                folderName = K9.INBOX;
    -            } else {
    -                for (int j = 5, count = urlParts.length; j < count; j++) {
    -                    if (j != 5) {
    -                        fullPathName = fullPathName + "/" + urlParts[j];
    -                    } else {
    -                        fullPathName = urlParts[j];
    -                    }
    -                }
    -                try {
    -                    folderName = java.net.URLDecoder.decode(fullPathName, "UTF-8");
    -                } catch (UnsupportedEncodingException uee) {
    -                    /** If we don't support UTF-8 there's a problem, don't decode it then */
    -                    folderName = fullPathName;
    -                }
    -            }
    +        folderName = getFolderName(specialFoldersMap.get(DAV_MAIL_TRASH_FOLDER));
    +        if(folderName != null)
    +		mAccount.setTrashFolderName(folderName);
     
    -            wdFolder = new WebDavFolder(this, folderName);
    -            wdFolder.setUrl(folderUrls[i]);
    -            folderList.add(wdFolder);
    -            this.mFolderList.put(folderName, wdFolder);
    +        folderName = getFolderName(specialFoldersMap.get(DAV_MAIL_SPAM_FOLDER));
    +        if(folderName != null)
    +		mAccount.setSpamFolderName(folderName);
    +
    +        folderName = getFolderName(specialFoldersMap.get(DAV_MAIL_OUTBOX_FOLDER));
    +        if(folderName != null)
    +		mAccount.setOutboxFolderName(folderName);
    +
    +        folderName = getFolderName(specialFoldersMap.get(DAV_MAIL_SENT_FOLDER));
    +        if(folderName != null)
    +		mAccount.setSentFolderName(folderName);
    +
    +        /**
    +         * Next we get all the folders (including "special" ones)
    +         */
    +        headers = new HashMap();
    +        dataset = new DataSet();
    +        headers.put("Brief", "t");
    +        dataset = processRequest(this.mUrl, "SEARCH", getFolderListXml(), headers);
    +        String[] folderUrls = dataset.getHrefs();
    +
    +        for (int i = 0; i < folderUrls.length; i++) {
    +            String tempUrl = folderUrls[i];
    +            createFolder(tempUrl, folderList);
             }
     
             return folderList;
         }
     
    +    private WebDavFolder createFolder(String folderUrl, LinkedList folderList) {
    +	if(folderUrl == null || folderList == null)
    +		return null;
    +
    +	WebDavFolder wdFolder=null;
    +	String folderName = getFolderName(folderUrl);
    +	if(folderName != null) {
    +			if(!this.mFolderList.containsKey(folderName)) {
    +                wdFolder = new WebDavFolder(this, folderName);
    +                wdFolder.setUrl(folderUrl);
    +		folderList.add(wdFolder);
    +		mFolderList.put(folderName, wdFolder);
    +			}
    +        }
    +	// else: Unknown URL format => NO Folder created
    +
    +	return wdFolder;
    +	}
    +
    +    private String getFolderName(String folderUrl) {
    +	if(folderUrl == null)
    +		return null;
    +
    +        int folderSlash=-1;
    +        for(int j=0; j < 5; j++) {
    +		folderSlash=folderUrl.indexOf('/', folderSlash+1);
    +		if(folderSlash < 0)
    +			break;
    +        }
    +
    +        if(folderSlash > 0) {
    +		String folderName;
    +		String fullPathName;
    +
    +		if(folderUrl.charAt(folderUrl.length()-1) == '/')
    +			fullPathName = folderUrl.substring(folderSlash+1, folderUrl.length()-1);
    +		else
    +			fullPathName = folderUrl.substring(folderSlash+1);
    +
    +			try {
    +				folderName = java.net.URLDecoder.decode(fullPathName, "UTF-8");
    +			} catch (UnsupportedEncodingException uee) {
    +				/**
    +				 * If we don't support UTF-8 there's a problem, don't decode
    +				 * it then
    +				 */
    +				folderName = fullPathName;
    +			}
    +
    +			return folderName;
    +		}
    +
    +        return null;
    +    }
    +
         @Override
         public Folder getFolder(String name) {
             WebDavFolder folder;
    @@ -300,7 +343,10 @@ public class WebDavStore extends Store {
         }
     
         public Folder getSendSpoolFolder() throws MessagingException {
    -        return getFolder(DAV_MAIL_SEND_FOLDER);
    +		if (mSendFolder == null)
    +			mSendFolder = getFolder(DAV_MAIL_SEND_FOLDER);
    +
    +		return mSendFolder;
         }
     
         @Override
    @@ -313,6 +359,27 @@ public class WebDavStore extends Store {
             return true;
         }
     
    +	private String getSpecialFoldersList() {
    +		StringBuffer buffer = new StringBuffer(200);
    +		buffer.append("");
    +		buffer.append("");
    +		buffer.append("");
    +		buffer.append("<").append(DAV_MAIL_INBOX_FOLDER).append(" xmlns=\"urn:schemas:httpmail:\"/>");
    +		buffer.append("<").append(DAV_MAIL_DRAFTS_FOLDER).append(" xmlns=\"urn:schemas:httpmail:\"/>");
    +		buffer.append("<").append(DAV_MAIL_OUTBOX_FOLDER).append(" xmlns=\"urn:schemas:httpmail:\"/>");
    +		buffer.append("<").append(DAV_MAIL_SENT_FOLDER).append(" xmlns=\"urn:schemas:httpmail:\"/>");
    +		buffer.append("<").append(DAV_MAIL_TRASH_FOLDER).append(" xmlns=\"urn:schemas:httpmail:\"/>");
    +		// This should always be ##DavMailSubmissionURI## for which we already have a constant
    +		// buffer.append("");
    +
    +		//TODO: What is the id of the spam folder???
    +		//buffer.append("<").append(DAV_MAIL_SPAM_FOLDER).append(" xmlns=\"urn:schemas:httpmail:\"/>");
    +
    +		buffer.append("");
    +		buffer.append("");
    +		return buffer.toString();
    +	}
    +
         /***************************************************************
          * WebDAV XML Request body retrieval functions
          */
    @@ -980,7 +1047,7 @@ public class WebDavStore extends Store {
     
         @Override
         public void sendMessages(Message[] messages) throws MessagingException {
    -        WebDavFolder tmpFolder = (WebDavStore.WebDavFolder) getFolder(DAV_MAIL_TMP_FOLDER);
    +		WebDavFolder tmpFolder = (WebDavStore.WebDavFolder) getFolder(mAccount.getDraftsFolderName());
             try {
                 tmpFolder.open(OpenMode.READ_WRITE);
                 Message[] retMessages = tmpFolder.appendWebDavMessages(messages);
    @@ -1017,37 +1084,30 @@ public class WebDavStore extends Store {
                 store = nStore;
                 this.mName = name;
     
    -            if (DAV_MAIL_SEND_FOLDER.equals(name)) {
    -                this.mFolderUrl = getUrl() + "/" + name + "/";
    -            } else {
    -                String encodedName = "";
    -                try {
    -                    String[] urlParts = name.split("/");
    -                    String url = "";
    -                    for (int i = 0, count = urlParts.length; i < count; i++) {
    -                        if (i != 0) {
    -                            url = url + "/" + java.net.URLEncoder.encode(urlParts[i], "UTF-8");
    -                        } else {
    -                            url = java.net.URLEncoder.encode(urlParts[i], "UTF-8");
    -                        }
    +            String encodedName = "";
    +            try {
    +                String[] urlParts = name.split("/");
    +                String url = "";
    +                for (int i = 0, count = urlParts.length; i < count; i++) {
    +                    if (i != 0) {
    +                        url = url + "/" + java.net.URLEncoder.encode(urlParts[i], "UTF-8");
    +                    } else {
    +                        url = java.net.URLEncoder.encode(urlParts[i], "UTF-8");
                         }
    -                    encodedName = url;
    -                } catch (UnsupportedEncodingException uee) {
    -                    Log.e(K9.LOG_TAG, "UnsupportedEncodingException URLEncoding folder name, skipping encoded");
    -                    encodedName = name;
                     }
    -
    -                encodedName = encodedName.replaceAll("\\+", "%20");
    -
    -                if (encodedName.equals(K9.INBOX)) {
    -                    encodedName = "Inbox";
    -                }
    -                this.mFolderUrl = WebDavStore.this.mUrl;
    -                if (!WebDavStore.this.mUrl.endsWith("/")) {
    -                    this.mFolderUrl += "/";
    -                }
    -                this.mFolderUrl += encodedName;
    +                encodedName = url;
    +            } catch (UnsupportedEncodingException uee) {
    +                Log.e(K9.LOG_TAG, "UnsupportedEncodingException URLEncoding folder name, skipping encoded");
    +                encodedName = name;
                 }
    +
    +            encodedName = encodedName.replaceAll("\\+", "%20");
    +
    +            this.mFolderUrl = WebDavStore.this.mUrl;
    +            if (!WebDavStore.this.mUrl.endsWith("/")) {
    +                this.mFolderUrl += "/";
    +            }
    +            this.mFolderUrl += encodedName;
             }
     
             public void setUrl(String url) {
    @@ -1978,6 +2038,17 @@ public class WebDavStore extends Store {
             }
     
             /**
    +		 * Returns a hashmap of special folder name => special folder url
    +		 */
    +		public HashMap getSpecialFolderToUrl() {
    +			// We return the first (and only) map
    +			for (HashMap folderMap : mData.values()) {
    +				return folderMap;
    +			}
    +			return new HashMap();
    +		}
    +
    +		/**
              * Returns a hashmap of Message UID => Message Url
              */
             public HashMap getUidToUrl() {
    
    From d2c56edbd246e79e565a4c0967b4d09dfbfcc8c5 Mon Sep 17 00:00:00 2001
    From: bitblaster 
    Date: Fri, 8 Apr 2011 04:10:20 -0700
    Subject: [PATCH 103/310] Restored original imports, added comments, changed
     method createFolder
    
    ---
     src/com/fsck/k9/mail/store/WebDavStore.java | 118 +++++++++++++-------
     1 file changed, 76 insertions(+), 42 deletions(-)
    
    diff --git a/src/com/fsck/k9/mail/store/WebDavStore.java b/src/com/fsck/k9/mail/store/WebDavStore.java
    index 297811357..6f626bba9 100644
    --- a/src/com/fsck/k9/mail/store/WebDavStore.java
    +++ b/src/com/fsck/k9/mail/store/WebDavStore.java
    @@ -1,38 +1,58 @@
     package com.fsck.k9.mail.store;
     
    -import java.io.*;
    -import java.net.*;
    -import java.security.*;
    -import java.text.*;
    -import java.util.*;
    -import java.util.zip.*;
    +import android.util.Log;
     
    -import javax.net.ssl.*;
    -import javax.xml.parsers.*;
    -
    -import org.apache.http.*;
    -import org.apache.http.client.*;
    -import org.apache.http.client.entity.*;
    -import org.apache.http.client.methods.*;
    -import org.apache.http.client.protocol.*;
    -import org.apache.http.conn.scheme.*;
    -import org.apache.http.entity.*;
    -import org.apache.http.impl.client.*;
    -import org.apache.http.message.*;
    -import org.apache.http.protocol.*;
    -import org.xml.sax.*;
    -import org.xml.sax.helpers.*;
    -
    -import android.util.*;
    -
    -import com.fsck.k9.*;
    -import com.fsck.k9.controller.*;
    -import com.fsck.k9.helper.*;
    +import com.fsck.k9.Account;
    +import com.fsck.k9.K9;
    +import com.fsck.k9.R;
    +import com.fsck.k9.controller.MessageRetrievalListener;
    +import com.fsck.k9.helper.Utility;
     import com.fsck.k9.mail.*;
     import com.fsck.k9.mail.Folder.OpenMode;
    -import com.fsck.k9.mail.filter.*;
    -import com.fsck.k9.mail.internet.*;
    -import com.fsck.k9.mail.transport.*;
    +import com.fsck.k9.mail.filter.EOLConvertingOutputStream;
    +import com.fsck.k9.mail.internet.MimeMessage;
    +import com.fsck.k9.mail.transport.TrustedSocketFactory;
    +import org.apache.http.*;
    +import org.apache.http.client.CookieStore;
    +import org.apache.http.client.entity.UrlEncodedFormEntity;
    +import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;
    +import org.apache.http.client.methods.HttpGet;
    +import org.apache.http.client.methods.HttpUriRequest;
    +import org.apache.http.client.protocol.ClientContext;
    +import org.apache.http.conn.scheme.Scheme;
    +import org.apache.http.conn.scheme.SchemeRegistry;
    +import org.apache.http.entity.StringEntity;
    +import org.apache.http.impl.client.BasicCookieStore;
    +import org.apache.http.impl.client.DefaultHttpClient;
    +import org.apache.http.message.BasicNameValuePair;
    +import org.apache.http.protocol.BasicHttpContext;
    +import org.apache.http.protocol.HttpContext;
    +import org.xml.sax.Attributes;
    +import org.xml.sax.InputSource;
    +import org.xml.sax.SAXException;
    +import org.xml.sax.XMLReader;
    +import org.xml.sax.helpers.DefaultHandler;
    +
    +import javax.net.ssl.SSLException;
    +import javax.xml.parsers.ParserConfigurationException;
    +import javax.xml.parsers.SAXParser;
    +import javax.xml.parsers.SAXParserFactory;
    +import java.io.*;
    +import java.net.URI;
    +import java.net.URISyntaxException;
    +import java.net.URLDecoder;
    +import java.net.URLEncoder;
    +import java.security.KeyManagementException;
    +import java.security.NoSuchAlgorithmException;
    +import java.text.DateFormat;
    +import java.text.SimpleDateFormat;
    +import java.util.ArrayList;
    +import java.util.Date;
    +import java.util.HashMap;
    +import java.util.LinkedList;
    +import java.util.List;
    +import java.util.Stack;
    +import java.util.zip.GZIPInputStream;
     
     /**
      * 
    @@ -59,13 +79,15 @@ public class WebDavStore extends Store {
     
         private static final Message[] EMPTY_MESSAGE_ARRAY = new Message[0];
     
    -    private static final Object DAV_MAIL_INBOX_FOLDER = "inbox";
    -    private static final Object DAV_MAIL_DRAFTS_FOLDER = "drafts";
    -    private static final String DAV_MAIL_SPAM_FOLDER = "spam";
    +    // These are the ids used from Exchange server to identify the special folders
    +    // http://social.technet.microsoft.com/Forums/en/exchangesvrdevelopment/thread/1cd2e98c-8a12-44bd-a3e3-9c5ee9e4e14d
    +    private static final String DAV_MAIL_INBOX_FOLDER = "inbox";
    +    private static final String DAV_MAIL_DRAFTS_FOLDER = "drafts";
    +    private static final String DAV_MAIL_SPAM_FOLDER = "junkemail";
         private static final String DAV_MAIL_SEND_FOLDER = "##DavMailSubmissionURI##";
    -	private static final Object DAV_MAIL_TRASH_FOLDER = "deleteditems";
    -	private static final Object DAV_MAIL_OUTBOX_FOLDER = "outbox";
    -	private static final Object DAV_MAIL_SENT_FOLDER = "sentitems";
    +	private static final String DAV_MAIL_TRASH_FOLDER = "deleteditems";
    +	private static final String DAV_MAIL_OUTBOX_FOLDER = "outbox";
    +	private static final String DAV_MAIL_SENT_FOLDER = "sentitems";
     
         private short mConnectionSecurity;
         private String mUsername; /* Stores the username for authentications */
    @@ -270,14 +292,23 @@ public class WebDavStore extends Store {
     
             for (int i = 0; i < folderUrls.length; i++) {
                 String tempUrl = folderUrls[i];
    -            createFolder(tempUrl, folderList);
    +            WebDavFolder folder = createFolder(tempUrl);
    +            if(folder != null)
    +		folderList.add(folder);
             }
     
             return folderList;
         }
     
    -    private WebDavFolder createFolder(String folderUrl, LinkedList folderList) {
    -	if(folderUrl == null || folderList == null)
    +    /**
    +     * Creates a folder using the URL passed as parameter (only if it has not been
    +     * already created) and adds this to our store folder map.
    +     *
    +     * @param folderUrl
    +     * @return
    +     */
    +    private WebDavFolder createFolder(String folderUrl) {
    +	if(folderUrl == null)
     		return null;
     
     	WebDavFolder wdFolder=null;
    @@ -286,7 +317,6 @@ public class WebDavStore extends Store {
     			if(!this.mFolderList.containsKey(folderName)) {
                     wdFolder = new WebDavFolder(this, folderName);
                     wdFolder.setUrl(folderUrl);
    -		folderList.add(wdFolder);
     		mFolderList.put(folderName, wdFolder);
     			}
             }
    @@ -299,6 +329,9 @@ public class WebDavStore extends Store {
     	if(folderUrl == null)
     		return null;
     
    +	// Here we extract the folder name starting from the complete url.
    +	// folderUrl is in the form http://mail.domain.com/exchange/username/foldername
    +	// so we need "foldername" which is the string after the fifth slash
             int folderSlash=-1;
             for(int j=0; j < 5; j++) {
     		folderSlash=folderUrl.indexOf('/', folderSlash+1);
    @@ -310,11 +343,13 @@ public class WebDavStore extends Store {
     		String folderName;
     		String fullPathName;
     
    +		// Removes the final slash if present
     		if(folderUrl.charAt(folderUrl.length()-1) == '/')
     			fullPathName = folderUrl.substring(folderSlash+1, folderUrl.length()-1);
     		else
     			fullPathName = folderUrl.substring(folderSlash+1);
     
    +		// Decodes the url-encoded folder name (i.e. "My%20folder" => "My Folder"
     			try {
     				folderName = java.net.URLDecoder.decode(fullPathName, "UTF-8");
     			} catch (UnsupportedEncodingException uee) {
    @@ -372,8 +407,7 @@ public class WebDavStore extends Store {
     		// This should always be ##DavMailSubmissionURI## for which we already have a constant
     		// buffer.append("");
     
    -		//TODO: What is the id of the spam folder???
    -		//buffer.append("<").append(DAV_MAIL_SPAM_FOLDER).append(" xmlns=\"urn:schemas:httpmail:\"/>");
    +		buffer.append("<").append(DAV_MAIL_SPAM_FOLDER).append(" xmlns=\"urn:schemas:httpmail:\"/>");
     
     		buffer.append("");
     		buffer.append("");
    
    From d3848d352d7a06322f845a24a912f0b4abf69359 Mon Sep 17 00:00:00 2001
    From: Jesse Vincent 
    Date: Tue, 12 Apr 2011 22:17:22 +1000
    Subject: [PATCH 104/310] astyle
    
    ---
     src/com/fsck/k9/Account.java                  |  18 +-
     src/com/fsck/k9/activity/ChooseFolder.java    |   4 +-
     .../k9/activity/setup/AccountSettings.java    |   6 +-
     src/com/fsck/k9/mail/store/WebDavStore.java   | 180 +++++++++---------
     4 files changed, 104 insertions(+), 104 deletions(-)
    
    diff --git a/src/com/fsck/k9/Account.java b/src/com/fsck/k9/Account.java
    index 5aefe10c2..9dd61ba9d 100644
    --- a/src/com/fsck/k9/Account.java
    +++ b/src/com/fsck/k9/Account.java
    @@ -86,7 +86,7 @@ public class Account implements BaseAccount {
         private String mTrashFolderName;
         private String mArchiveFolderName;
         private String mSpamFolderName;
    -	private String mOutboxFolderName;
    +    private String mOutboxFolderName;
         private String mAutoExpandFolderName;
         private FolderMode mFolderDisplayMode;
         private FolderMode mFolderSyncMode;
    @@ -255,7 +255,7 @@ public class Account implements BaseAccount {
             mTrashFolderName = prefs.getString(mUuid  + ".trashFolderName", "Trash");
             mArchiveFolderName = prefs.getString(mUuid  + ".archiveFolderName", "Archive");
             mSpamFolderName = prefs.getString(mUuid  + ".spamFolderName", "Spam");
    -		mOutboxFolderName = prefs.getString(mUuid + ".outboxFolderName", "Outbox");
    +        mOutboxFolderName = prefs.getString(mUuid + ".outboxFolderName", "Outbox");
             mExpungePolicy = prefs.getString(mUuid  + ".expungePolicy", EXPUNGE_IMMEDIATELY);
             mSyncRemoteDeletions = prefs.getBoolean(mUuid  + ".syncRemoteDeletions", true);
     
    @@ -398,7 +398,7 @@ public class Account implements BaseAccount {
             editor.remove(mUuid + ".trashFolderName");
             editor.remove(mUuid + ".archiveFolderName");
             editor.remove(mUuid + ".spamFolderName");
    -		editor.remove(mUuid + ".outboxFolderName");
    +        editor.remove(mUuid + ".outboxFolderName");
             editor.remove(mUuid + ".autoExpandFolderName");
             editor.remove(mUuid + ".accountNumber");
             editor.remove(mUuid + ".vibrate");
    @@ -496,7 +496,7 @@ public class Account implements BaseAccount {
             editor.putString(mUuid + ".trashFolderName", mTrashFolderName);
             editor.putString(mUuid + ".archiveFolderName", mArchiveFolderName);
             editor.putString(mUuid + ".spamFolderName", mSpamFolderName);
    -		editor.putString(mUuid + ".outboxFolderName", mOutboxFolderName);
    +        editor.putString(mUuid + ".outboxFolderName", mOutboxFolderName);
             editor.putString(mUuid + ".autoExpandFolderName", mAutoExpandFolderName);
             editor.putInt(mUuid + ".accountNumber", mAccountNumber);
             editor.putString(mUuid + ".hideButtonsEnum", mScrollMessageViewButtons.name());
    @@ -1316,12 +1316,12 @@ public class Account implements BaseAccount {
         }
     
         public String getInboxFolderName() {
    -		return mInboxFolderName;
    -	}
    +        return mInboxFolderName;
    +    }
     
    -	public void setInboxFolderName(String mInboxFolderName) {
    -		this.mInboxFolderName = mInboxFolderName;
    -	}
    +    public void setInboxFolderName(String mInboxFolderName) {
    +        this.mInboxFolderName = mInboxFolderName;
    +    }
     
         public synchronized boolean syncRemoteDeletions() {
             return mSyncRemoteDeletions;
    diff --git a/src/com/fsck/k9/activity/ChooseFolder.java b/src/com/fsck/k9/activity/ChooseFolder.java
    index 5d0ff100f..32e7fba22 100644
    --- a/src/com/fsck/k9/activity/ChooseFolder.java
    +++ b/src/com/fsck/k9/activity/ChooseFolder.java
    @@ -249,7 +249,7 @@ public class ChooseFolder extends K9ListActivity {
     
                     // Inbox needs to be compared case-insensitively
                     if (hideCurrentFolder && (name.equals(mFolder) ||
    -			(mAccount.getInboxFolderName().equalsIgnoreCase(mFolder) && mAccount.getInboxFolderName().equalsIgnoreCase(name)))) {
    +                (mAccount.getInboxFolderName().equalsIgnoreCase(mFolder) && mAccount.getInboxFolderName().equalsIgnoreCase(name)))) {
                         continue;
                     }
                     try {
    @@ -316,7 +316,7 @@ public class ChooseFolder extends K9ListActivity {
                                 selectedFolder = position;
                             }
                         } else if (name.equals(mFolder) ||
    -                        (mAccount.getInboxFolderName().equalsIgnoreCase(mFolder) && mAccount.getInboxFolderName().equalsIgnoreCase(name))) {
    +                    (mAccount.getInboxFolderName().equalsIgnoreCase(mFolder) && mAccount.getInboxFolderName().equalsIgnoreCase(name))) {
                             selectedFolder = position;
                         }
                         position++;
    diff --git a/src/com/fsck/k9/activity/setup/AccountSettings.java b/src/com/fsck/k9/activity/setup/AccountSettings.java
    index c54f82cc4..2944ace9b 100644
    --- a/src/com/fsck/k9/activity/setup/AccountSettings.java
    +++ b/src/com/fsck/k9/activity/setup/AccountSettings.java
    @@ -702,10 +702,10 @@ public class AccountSettings extends K9PreferenceActivity {
     
             // In webdav account we use the exact folder name also for inbox,
             // since it varies because of internationalization
    -        if(mAccount.getStoreUri().startsWith("webdav"))
    -		mAccount.setAutoExpandFolderName(mAutoExpandFolder.getValue());
    +        if (mAccount.getStoreUri().startsWith("webdav"))
    +            mAccount.setAutoExpandFolderName(mAutoExpandFolder.getValue());
             else
    -		mAccount.setAutoExpandFolderName(reverseTranslateFolder(mAutoExpandFolder.getValue()));
    +            mAccount.setAutoExpandFolderName(reverseTranslateFolder(mAutoExpandFolder.getValue()));
     
             mAccount.setArchiveFolderName(mArchiveFolder.getValue());
             mAccount.setDraftsFolderName(mDraftsFolder.getValue());
    diff --git a/src/com/fsck/k9/mail/store/WebDavStore.java b/src/com/fsck/k9/mail/store/WebDavStore.java
    index 6f626bba9..ef3b837f6 100644
    --- a/src/com/fsck/k9/mail/store/WebDavStore.java
    +++ b/src/com/fsck/k9/mail/store/WebDavStore.java
    @@ -85,9 +85,9 @@ public class WebDavStore extends Store {
         private static final String DAV_MAIL_DRAFTS_FOLDER = "drafts";
         private static final String DAV_MAIL_SPAM_FOLDER = "junkemail";
         private static final String DAV_MAIL_SEND_FOLDER = "##DavMailSubmissionURI##";
    -	private static final String DAV_MAIL_TRASH_FOLDER = "deleteditems";
    -	private static final String DAV_MAIL_OUTBOX_FOLDER = "outbox";
    -	private static final String DAV_MAIL_SENT_FOLDER = "sentitems";
    +    private static final String DAV_MAIL_TRASH_FOLDER = "deleteditems";
    +    private static final String DAV_MAIL_OUTBOX_FOLDER = "outbox";
    +    private static final String DAV_MAIL_SENT_FOLDER = "sentitems";
     
         private short mConnectionSecurity;
         private String mUsername; /* Stores the username for authentications */
    @@ -256,30 +256,30 @@ public class WebDavStore extends Store {
     
             HashMap specialFoldersMap = dataset.getSpecialFolderToUrl();
             String folderName = getFolderName(specialFoldersMap.get(DAV_MAIL_INBOX_FOLDER));
    -        if(folderName != null) {
    -		mAccount.setAutoExpandFolderName(folderName);
    -		mAccount.setInboxFolderName(folderName);
    +        if (folderName != null) {
    +            mAccount.setAutoExpandFolderName(folderName);
    +            mAccount.setInboxFolderName(folderName);
             }
     
             folderName = getFolderName(specialFoldersMap.get(DAV_MAIL_DRAFTS_FOLDER));
    -        if(folderName != null)
    -		mAccount.setDraftsFolderName(folderName);
    +        if (folderName != null)
    +            mAccount.setDraftsFolderName(folderName);
     
             folderName = getFolderName(specialFoldersMap.get(DAV_MAIL_TRASH_FOLDER));
    -        if(folderName != null)
    -		mAccount.setTrashFolderName(folderName);
    +        if (folderName != null)
    +            mAccount.setTrashFolderName(folderName);
     
             folderName = getFolderName(specialFoldersMap.get(DAV_MAIL_SPAM_FOLDER));
    -        if(folderName != null)
    -		mAccount.setSpamFolderName(folderName);
    +        if (folderName != null)
    +            mAccount.setSpamFolderName(folderName);
     
             folderName = getFolderName(specialFoldersMap.get(DAV_MAIL_OUTBOX_FOLDER));
    -        if(folderName != null)
    -		mAccount.setOutboxFolderName(folderName);
    +        if (folderName != null)
    +            mAccount.setOutboxFolderName(folderName);
     
             folderName = getFolderName(specialFoldersMap.get(DAV_MAIL_SENT_FOLDER));
    -        if(folderName != null)
    -		mAccount.setSentFolderName(folderName);
    +        if (folderName != null)
    +            mAccount.setSentFolderName(folderName);
     
             /**
              * Next we get all the folders (including "special" ones)
    @@ -293,8 +293,8 @@ public class WebDavStore extends Store {
             for (int i = 0; i < folderUrls.length; i++) {
                 String tempUrl = folderUrls[i];
                 WebDavFolder folder = createFolder(tempUrl);
    -            if(folder != null)
    -		folderList.add(folder);
    +            if (folder != null)
    +                folderList.add(folder);
             }
     
             return folderList;
    @@ -308,60 +308,60 @@ public class WebDavStore extends Store {
          * @return
          */
         private WebDavFolder createFolder(String folderUrl) {
    -	if(folderUrl == null)
    -		return null;
    +        if (folderUrl == null)
    +            return null;
     
    -	WebDavFolder wdFolder=null;
    -	String folderName = getFolderName(folderUrl);
    -	if(folderName != null) {
    -			if(!this.mFolderList.containsKey(folderName)) {
    +        WebDavFolder wdFolder = null;
    +        String folderName = getFolderName(folderUrl);
    +        if (folderName != null) {
    +            if (!this.mFolderList.containsKey(folderName)) {
                     wdFolder = new WebDavFolder(this, folderName);
                     wdFolder.setUrl(folderUrl);
    -		mFolderList.put(folderName, wdFolder);
    -			}
    +                mFolderList.put(folderName, wdFolder);
    +            }
             }
    -	// else: Unknown URL format => NO Folder created
    +        // else: Unknown URL format => NO Folder created
     
    -	return wdFolder;
    -	}
    +        return wdFolder;
    +    }
     
         private String getFolderName(String folderUrl) {
    -	if(folderUrl == null)
    -		return null;
    +        if (folderUrl == null)
    +            return null;
     
    -	// Here we extract the folder name starting from the complete url.
    -	// folderUrl is in the form http://mail.domain.com/exchange/username/foldername
    -	// so we need "foldername" which is the string after the fifth slash
    -        int folderSlash=-1;
    -        for(int j=0; j < 5; j++) {
    -		folderSlash=folderUrl.indexOf('/', folderSlash+1);
    -		if(folderSlash < 0)
    -			break;
    +        // Here we extract the folder name starting from the complete url.
    +        // folderUrl is in the form http://mail.domain.com/exchange/username/foldername
    +        // so we need "foldername" which is the string after the fifth slash
    +        int folderSlash = -1;
    +        for (int j = 0; j < 5; j++) {
    +            folderSlash = folderUrl.indexOf('/', folderSlash + 1);
    +            if (folderSlash < 0)
    +                break;
             }
     
    -        if(folderSlash > 0) {
    -		String folderName;
    -		String fullPathName;
    +        if (folderSlash > 0) {
    +            String folderName;
    +            String fullPathName;
     
    -		// Removes the final slash if present
    -		if(folderUrl.charAt(folderUrl.length()-1) == '/')
    -			fullPathName = folderUrl.substring(folderSlash+1, folderUrl.length()-1);
    -		else
    -			fullPathName = folderUrl.substring(folderSlash+1);
    +            // Removes the final slash if present
    +            if (folderUrl.charAt(folderUrl.length() - 1) == '/')
    +                fullPathName = folderUrl.substring(folderSlash + 1, folderUrl.length() - 1);
    +            else
    +                fullPathName = folderUrl.substring(folderSlash + 1);
     
    -		// Decodes the url-encoded folder name (i.e. "My%20folder" => "My Folder"
    -			try {
    -				folderName = java.net.URLDecoder.decode(fullPathName, "UTF-8");
    -			} catch (UnsupportedEncodingException uee) {
    -				/**
    -				 * If we don't support UTF-8 there's a problem, don't decode
    -				 * it then
    -				 */
    -				folderName = fullPathName;
    -			}
    +            // Decodes the url-encoded folder name (i.e. "My%20folder" => "My Folder"
    +            try {
    +                folderName = java.net.URLDecoder.decode(fullPathName, "UTF-8");
    +            } catch (UnsupportedEncodingException uee) {
    +                /**
    +                 * If we don't support UTF-8 there's a problem, don't decode
    +                 * it then
    +                 */
    +                folderName = fullPathName;
    +            }
     
    -			return folderName;
    -		}
    +            return folderName;
    +        }
     
             return null;
         }
    @@ -378,10 +378,10 @@ public class WebDavStore extends Store {
         }
     
         public Folder getSendSpoolFolder() throws MessagingException {
    -		if (mSendFolder == null)
    -			mSendFolder = getFolder(DAV_MAIL_SEND_FOLDER);
    +        if (mSendFolder == null)
    +            mSendFolder = getFolder(DAV_MAIL_SEND_FOLDER);
     
    -		return mSendFolder;
    +        return mSendFolder;
         }
     
         @Override
    @@ -394,25 +394,25 @@ public class WebDavStore extends Store {
             return true;
         }
     
    -	private String getSpecialFoldersList() {
    -		StringBuffer buffer = new StringBuffer(200);
    -		buffer.append("");
    -		buffer.append("");
    -		buffer.append("");
    -		buffer.append("<").append(DAV_MAIL_INBOX_FOLDER).append(" xmlns=\"urn:schemas:httpmail:\"/>");
    -		buffer.append("<").append(DAV_MAIL_DRAFTS_FOLDER).append(" xmlns=\"urn:schemas:httpmail:\"/>");
    -		buffer.append("<").append(DAV_MAIL_OUTBOX_FOLDER).append(" xmlns=\"urn:schemas:httpmail:\"/>");
    -		buffer.append("<").append(DAV_MAIL_SENT_FOLDER).append(" xmlns=\"urn:schemas:httpmail:\"/>");
    -		buffer.append("<").append(DAV_MAIL_TRASH_FOLDER).append(" xmlns=\"urn:schemas:httpmail:\"/>");
    -		// This should always be ##DavMailSubmissionURI## for which we already have a constant
    -		// buffer.append("");
    +    private String getSpecialFoldersList() {
    +        StringBuffer buffer = new StringBuffer(200);
    +        buffer.append("");
    +        buffer.append("");
    +        buffer.append("");
    +        buffer.append("<").append(DAV_MAIL_INBOX_FOLDER).append(" xmlns=\"urn:schemas:httpmail:\"/>");
    +        buffer.append("<").append(DAV_MAIL_DRAFTS_FOLDER).append(" xmlns=\"urn:schemas:httpmail:\"/>");
    +        buffer.append("<").append(DAV_MAIL_OUTBOX_FOLDER).append(" xmlns=\"urn:schemas:httpmail:\"/>");
    +        buffer.append("<").append(DAV_MAIL_SENT_FOLDER).append(" xmlns=\"urn:schemas:httpmail:\"/>");
    +        buffer.append("<").append(DAV_MAIL_TRASH_FOLDER).append(" xmlns=\"urn:schemas:httpmail:\"/>");
    +        // This should always be ##DavMailSubmissionURI## for which we already have a constant
    +        // buffer.append("");
     
    -		buffer.append("<").append(DAV_MAIL_SPAM_FOLDER).append(" xmlns=\"urn:schemas:httpmail:\"/>");
    +        buffer.append("<").append(DAV_MAIL_SPAM_FOLDER).append(" xmlns=\"urn:schemas:httpmail:\"/>");
     
    -		buffer.append("");
    -		buffer.append("");
    -		return buffer.toString();
    -	}
    +        buffer.append("");
    +        buffer.append("");
    +        return buffer.toString();
    +    }
     
         /***************************************************************
          * WebDAV XML Request body retrieval functions
    @@ -1081,7 +1081,7 @@ public class WebDavStore extends Store {
     
         @Override
         public void sendMessages(Message[] messages) throws MessagingException {
    -		WebDavFolder tmpFolder = (WebDavStore.WebDavFolder) getFolder(mAccount.getDraftsFolderName());
    +        WebDavFolder tmpFolder = (WebDavStore.WebDavFolder) getFolder(mAccount.getDraftsFolderName());
             try {
                 tmpFolder.open(OpenMode.READ_WRITE);
                 Message[] retMessages = tmpFolder.appendWebDavMessages(messages);
    @@ -2072,17 +2072,17 @@ public class WebDavStore extends Store {
             }
     
             /**
    -		 * Returns a hashmap of special folder name => special folder url
    -		 */
    -		public HashMap getSpecialFolderToUrl() {
    -			// We return the first (and only) map
    -			for (HashMap folderMap : mData.values()) {
    -				return folderMap;
    -			}
    -			return new HashMap();
    -		}
    +         * Returns a hashmap of special folder name => special folder url
    +         */
    +        public HashMap getSpecialFolderToUrl() {
    +            // We return the first (and only) map
    +            for (HashMap folderMap : mData.values()) {
    +                return folderMap;
    +            }
    +            return new HashMap();
    +        }
     
    -		/**
    +        /**
              * Returns a hashmap of Message UID => Message Url
              */
             public HashMap getUidToUrl() {
    
    From d68d3c1ea3ec9c4a61e7eaca31baddc683943e46 Mon Sep 17 00:00:00 2001
    From: Koji Arai 
    Date: Wed, 13 Apr 2011 02:27:37 +0900
    Subject: [PATCH 105/310] Renamed package name corresponding to the directory
    
    ---
     tests/src/com/fsck/k9/activity/AccountsTest.java | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/tests/src/com/fsck/k9/activity/AccountsTest.java b/tests/src/com/fsck/k9/activity/AccountsTest.java
    index 54a5d3670..81ef1c5f8 100644
    --- a/tests/src/com/fsck/k9/activity/AccountsTest.java
    +++ b/tests/src/com/fsck/k9/activity/AccountsTest.java
    @@ -1,4 +1,4 @@
    -package com.fsck.k9;
    +package com.fsck.k9.activity;
     
     import android.test.ActivityInstrumentationTestCase2;
     import com.fsck.k9.activity.Accounts;
    
    From 9bdfb0d023c8916588a67648564c4a6e94b60409 Mon Sep 17 00:00:00 2001
    From: mwolschon 
    Date: Wed, 13 Apr 2011 12:18:07 +0200
    Subject: [PATCH 106/310] BUGFIX: time changes are still honored even if the
     user choose the [abort] button of the DialogPreference.
    
    ---
     .../k9/preferences/TimePickerPreference.java  | 35 +++++++++++++++----
     1 file changed, 29 insertions(+), 6 deletions(-)
    
    diff --git a/src/com/fsck/k9/preferences/TimePickerPreference.java b/src/com/fsck/k9/preferences/TimePickerPreference.java
    index b8824bac1..b8944bd6c 100644
    --- a/src/com/fsck/k9/preferences/TimePickerPreference.java
    +++ b/src/com/fsck/k9/preferences/TimePickerPreference.java
    @@ -25,7 +25,18 @@ public class TimePickerPreference extends DialogPreference implements
          * The default value for this preference
          */
         private String defaultValue;
    -
    +    /**
    +     * Store the original value, in case the user
    +     * chooses to abort the {@link DialogPreference}
    +     * after making a change.
    +     */
    +    private int originalHour = 0;
    +    /**
    +     * Store the original value, in case the user
    +     * chooses to abort the {@link DialogPreference}
    +     * after making a change.
    +     */
    +    private int originalMinute = 0;
         /**
          * @param context
          * @param attrs
    @@ -64,11 +75,12 @@ public class TimePickerPreference extends DialogPreference implements
             TimePicker tp = new TimePicker(getContext());
             tp.setOnTimeChangedListener(this);
     
    -        int h = getHour();
    -        int m = getMinute();
    -        if (h >= 0 && m >= 0) {
    -            tp.setCurrentHour(h);
    -            tp.setCurrentMinute(m);
    +        originalHour = getHour();
    +        originalMinute = getMinute();
    +        if (originalHour >= 0 && originalMinute >= 0)
    +        {
    +            tp.setCurrentHour(originalHour);
    +            tp.setCurrentMinute(originalMinute);
             }
     
             return tp;
    @@ -88,6 +100,17 @@ public class TimePickerPreference extends DialogPreference implements
             callChangeListener(String.format("%02d:%02d", hour, minute));
         }
     
    +    @Override
    +	protected void onDialogClosed(boolean positiveResult) {
    +    	// Bug #1185 "[SE-QS] GMX: Nach Abbruch der Einstellungen der Ruhezeiten werden diese trotzdem uebernommen"
    +
    +		if (!positiveResult) {
    +			persistString(String.format("%02d:%02d", originalHour, originalMinute));
    +	        callChangeListener(String.format("%02d:%02d", originalHour, originalMinute));
    +		}
    +		super.onDialogClosed(positiveResult);
    +	}
    +
         /*
          * (non-Javadoc)
          *
    
    From 3b4fcbe6028dc33695ac4c105086b1271b7764cf Mon Sep 17 00:00:00 2001
    From: Koji Arai 
    Date: Wed, 13 Apr 2011 23:30:21 +0900
    Subject: [PATCH 107/310] Updated Japanese translation. catch up with 4aec4b0.
    
    ---
     res/values-ja/strings.xml | 26 +++++++++++++-------------
     1 file changed, 13 insertions(+), 13 deletions(-)
    
    diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
    index 645c50736..7336ce75e 100644
    --- a/res/values-ja/strings.xml
    +++ b/res/values-ja/strings.xml
    @@ -259,14 +259,14 @@ K-9 Mail セットアップにようこそ。\nK-9 は標準のAndroidメール
         本文
         -------- 元メール --------
         件名:
    -    
    +    送信日:
         送信者:
         宛先:
         CC:
         %s wrote:\n\n
         テキスト引用
         少なくとも1つの受信者を追加する必要があります
    -    
    +    メールアドレスが登録されていません
         一部の添付ファイルをダウンロードしていません.このメールが送信される前に自動的にダウンロードされます.
         ダウンロードしていないため、一部の添付ファイルを転送することはできません.
     
    @@ -342,7 +342,7 @@ K-9 Mail セットアップにようこそ。\nK-9 は標準のAndroidメール
         アーカイブ
         削除(メッセージ表示画面のみ)
         迷惑メール
    -    
    +    すべて既読にする
         送信
     
         スクリーンロック時の通知
    @@ -910,13 +910,13 @@ K-9 Mail セットアップにようこそ。\nK-9 は標準のAndroidメール
         起動後に統合フォルダを表示する
     
         アカウントのサイズ表示
    -    表示を早くしたい場合はチェックをはずしてください
    +    表示を速くしたい場合はチェックをはずしてください
     
         検索結果の件数表示
    -    表示を早くしたい場合はチェックをはずしてください
    +    表示を速くしたい場合はチェックをはずしてください
     
    -    
    -    
    +    特殊なアカウントを隠す
    +    統合フォルダと全メッセージを隠す
     
         %s %s
          - スター
    @@ -1018,12 +1018,12 @@ K-9 Mail セットアップにようこそ。\nK-9 は標準のAndroidメール
         削除する
         削除しない
     
    -    
    -    
    -    
    -    
    +    迷惑メールフォルダへの移動の確認
    +    本当にこのメッセージを迷惑メールフォルダに移動しますか?
    +    はい
    +    いいえ
     
    -    
    +    添付ファイルをダウンロードしています
     
         Android のログにデバッグ用のログを出力するように設定しました。
     
    @@ -1031,6 +1031,6 @@ K-9 Mail セットアップにようこそ。\nK-9 は標準のAndroidメール
         \u203a
         接続できません
     
    -    
    +    アカウント \"%s\" は利用できません。ストレージを確認してください。
     
     
    
    From 7f5c18bd2b1505b4556def7f8ad2bfe963dd4ffb Mon Sep 17 00:00:00 2001
    From: mwolschon 
    Date: Thu, 14 Apr 2011 10:07:33 +0200
    Subject: [PATCH 108/310] updated comments
    
    ---
     .../k9/preferences/TimePickerPreference.java  | 37 +++++++++++--------
     1 file changed, 21 insertions(+), 16 deletions(-)
    
    diff --git a/src/com/fsck/k9/preferences/TimePickerPreference.java b/src/com/fsck/k9/preferences/TimePickerPreference.java
    index b8944bd6c..16685efe9 100644
    --- a/src/com/fsck/k9/preferences/TimePickerPreference.java
    +++ b/src/com/fsck/k9/preferences/TimePickerPreference.java
    @@ -41,7 +41,7 @@ public class TimePickerPreference extends DialogPreference implements
          * @param context
          * @param attrs
          */
    -    public TimePickerPreference(Context context, AttributeSet attrs) {
    +    public TimePickerPreference(final Context context, final AttributeSet attrs) {
             super(context, attrs);
             initialize();
         }
    @@ -51,8 +51,8 @@ public class TimePickerPreference extends DialogPreference implements
          * @param attrs
          * @param defStyle
          */
    -    public TimePickerPreference(Context context, AttributeSet attrs,
    -                                int defStyle) {
    +    public TimePickerPreference(final Context context, final AttributeSet attrs,
    +    		final int defStyle) {
             super(context, attrs, defStyle);
             initialize();
         }
    @@ -86,23 +86,24 @@ public class TimePickerPreference extends DialogPreference implements
             return tp;
         }
     
    -    /*
    -     * (non-Javadoc)
    -     *
    +    /**
          * @see
          * android.widget.TimePicker.OnTimeChangedListener#onTimeChanged(android
          * .widget.TimePicker, int, int)
          */
         @Override
    -    public void onTimeChanged(TimePicker view, int hour, int minute) {
    +    public void onTimeChanged(final TimePicker view, final int hour, final int minute) {
     
             persistString(String.format("%02d:%02d", hour, minute));
             callChangeListener(String.format("%02d:%02d", hour, minute));
         }
     
    +    /**
    +     * If not a positive result, restore the original value
    +     * before going to super.onDialogClosed(positiveResult).
    +     */
         @Override
     	protected void onDialogClosed(boolean positiveResult) {
    -    	// Bug #1185 "[SE-QS] GMX: Nach Abbruch der Einstellungen der Ruhezeiten werden diese trotzdem uebernommen"
     
     		if (!positiveResult) {
     			persistString(String.format("%02d:%02d", originalHour, originalMinute));
    @@ -111,13 +112,11 @@ public class TimePickerPreference extends DialogPreference implements
     		super.onDialogClosed(positiveResult);
     	}
     
    -    /*
    -     * (non-Javadoc)
    -     *
    +    /**
          * @see android.preference.Preference#setDefaultValue(java.lang.Object)
          */
         @Override
    -    public void setDefaultValue(Object defaultValue) {
    +    public void setDefaultValue(final Object defaultValue) {
             // BUG this method is never called if you use the 'android:defaultValue' attribute in your XML preference file, not sure why it isn't
     
             super.setDefaultValue(defaultValue);
    @@ -136,10 +135,10 @@ public class TimePickerPreference extends DialogPreference implements
         /**
          * Get the hour value (in 24 hour time)
          *
    -     * @return The hour value, will be 0 to 23 (inclusive)
    +     * @return The hour value, will be 0 to 23 (inclusive) or -1 if illegal
          */
         private int getHour() {
    -        String time = getPersistedString(this.defaultValue);
    +        String time = getTime();
             if (time == null || !time.matches(VALIDATION_EXPRESSION)) {
                 return -1;
             }
    @@ -150,10 +149,10 @@ public class TimePickerPreference extends DialogPreference implements
         /**
          * Get the minute value
          *
    -     * @return the minute value, will be 0 to 59 (inclusive)
    +     * @return the minute value, will be 0 to 59 (inclusive) or -1 if illegal
          */
         private int getMinute() {
    -        String time = getPersistedString(this.defaultValue);
    +        String time = getTime();
             if (time == null || !time.matches(VALIDATION_EXPRESSION)) {
                 return -1;
             }
    @@ -161,6 +160,12 @@ public class TimePickerPreference extends DialogPreference implements
             return Integer.valueOf(time.split(":")[1]);
         }
     
    +    /**
    +     * Get the time. It is only legal, if it matches
    +     * {@link #VALIDATION_EXPRESSION}.
    +     *
    +     * @return the time as hh:mm
    +     */
         public String getTime() {
             return getPersistedString(this.defaultValue);
         }
    
    From 659a5d36b2d02f6aea61eaee29da236343adc3b1 Mon Sep 17 00:00:00 2001
    From: Koji Arai 
    Date: Sat, 16 Apr 2011 18:13:54 +0900
    Subject: [PATCH 109/310] Fixed issue 2991: Should display colorized name in
     the message list.
    
    ---
     src/com/fsck/k9/activity/MessageList.java | 26 ++++++++++++-----------
     1 file changed, 14 insertions(+), 12 deletions(-)
    
    diff --git a/src/com/fsck/k9/activity/MessageList.java b/src/com/fsck/k9/activity/MessageList.java
    index 915e9ef00..e48b7cf00 100644
    --- a/src/com/fsck/k9/activity/MessageList.java
    +++ b/src/com/fsck/k9/activity/MessageList.java
    @@ -12,13 +12,13 @@ import android.app.AlertDialog;
     import android.app.Dialog;
     import android.content.Context;
     import android.content.Intent;
    -import android.content.res.ColorStateList;
     import android.graphics.Typeface;
     import android.graphics.drawable.Drawable;
     import android.os.Bundle;
     import android.text.Spannable;
     import android.text.SpannableStringBuilder;
    -import android.text.style.TextAppearanceSpan;
    +import android.text.style.AbsoluteSizeSpan;
    +import android.text.style.StyleSpan;
     import android.util.Log;
     import android.util.TypedValue;
     import android.view.animation.Animation;
    @@ -2159,13 +2159,14 @@ public class MessageList
                         holder.preview.setText(noSender, TextView.BufferType.SPANNABLE);
                         Spannable str = (Spannable) holder.preview.getText();
     
    -                    ColorStateList color = holder.subject.getTextColors();
    -                    ColorStateList linkColor = holder.subject.getLinkTextColors();
    -                    str.setSpan(new TextAppearanceSpan(null, Typeface.NORMAL, mFontSizes.getMessageListSender(), color, linkColor),
    +                    str.setSpan(new StyleSpan(Typeface.NORMAL),
                                     0,
                                     noSender.length(),
    -                                Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
    -                               );
    +                                Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    +                    str.setSpan(new AbsoluteSizeSpan(mFontSizes.getMessageListSender(), true),
    +                                0,
    +                                noSender.length(),
    +                                Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
                     } else {
                         holder.from.setText(noSender);
                         holder.from.setTypeface(null, Typeface.NORMAL);
    @@ -2247,13 +2248,14 @@ public class MessageList
                     Spannable str = (Spannable)holder.preview.getText();
     
                     // Create a span section for the sender, and assign the correct font size and weight.
    -                ColorStateList color = holder.subject.getTextColors();
    -                ColorStateList linkColor = holder.subject.getLinkTextColors();
    -                str.setSpan(new TextAppearanceSpan(null, senderTypeface, mFontSizes.getMessageListSender(), color, linkColor),
    +                str.setSpan(new StyleSpan(senderTypeface),
                                 0,
                                 message.sender.length() + 1,
    -                            Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
    -                           );
    +                            Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    +                str.setSpan(new AbsoluteSizeSpan(mFontSizes.getMessageListSender(), true),
    +                            0,
    +                            message.sender.length() + 1,
    +                            Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
                 } else {
                     holder.from.setText(new SpannableStringBuilder(recipientSigil(message)).append(message.sender));
     
    
    From 724b6eaaa5595bede25ddce80cc48659b1ce7a82 Mon Sep 17 00:00:00 2001
    From: Jesse Vincent 
    Date: Sun, 17 Apr 2011 21:07:13 +1000
    Subject: [PATCH 110/310] For a while, it was possible for users to conifgure
     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.
    
    ---
     src/com/fsck/k9/controller/MessagingController.java | 10 ++++++++++
     1 file changed, 10 insertions(+)
    
    diff --git a/src/com/fsck/k9/controller/MessagingController.java b/src/com/fsck/k9/controller/MessagingController.java
    index de04e2d1c..f37b89318 100644
    --- a/src/com/fsck/k9/controller/MessagingController.java
    +++ b/src/com/fsck/k9/controller/MessagingController.java
    @@ -3025,6 +3025,16 @@ public class MessagingController implements Runnable {
     
                         localFolder.fetch(new Message[] { message }, fp, null);
                         try {
    +
    +
    +                        if (message.getHeader(K9.IDENTITY_HEADER) != null) {
    +                            Log.v(K9.LOG_TAG, "The user has set the Outbox and Drafts folder to the same thing. " +
    +                                  "This message appears to be a draft, so K-9 will not send it");
    +                            continue;
    +
    +                        }
    +
    +
                             message.setFlag(Flag.X_SEND_IN_PROGRESS, true);
                             if (K9.DEBUG)
                                 Log.i(K9.LOG_TAG, "Sending message with UID " + message.getUid());
    
    From 59399506dfdddb01996a07165218634c00e12993 Mon Sep 17 00:00:00 2001
    From: Marcus Wolschon 
    Date: Tue, 19 Apr 2011 09:01:01 +0200
    Subject: [PATCH 111/310] fixed very rare NullPointerException
    
    ---
     src/com/fsck/k9/provider/AttachmentProvider.java | 9 ++++++++-
     1 file changed, 8 insertions(+), 1 deletion(-)
    
    diff --git a/src/com/fsck/k9/provider/AttachmentProvider.java b/src/com/fsck/k9/provider/AttachmentProvider.java
    index 126223d72..8b234113b 100644
    --- a/src/com/fsck/k9/provider/AttachmentProvider.java
    +++ b/src/com/fsck/k9/provider/AttachmentProvider.java
    @@ -72,7 +72,14 @@ public class AttachmentProvider extends ContentProvider {
              * We use the cache dir as a temporary directory (since Android doesn't give us one) so
              * on startup we'll clean up any .tmp files from the last run.
              */
    -        File[] files = getContext().getCacheDir().listFiles();
    +        final File cacheDir = getContext().getCacheDir();
    +        if (cacheDir == null) {
    +        	return true;
    +        }
    +		File[] files = cacheDir.listFiles();
    +		if (files == null) {
    +			return true;
    +		}
             for (File file : files) {
                 if (file.getName().endsWith(".tmp")) {
                     file.delete();
    
    From 6f4bef3530e615361a9edee50f692b1efa6b63d9 Mon Sep 17 00:00:00 2001
    From: Marcus Wolschon 
    Date: Tue, 19 Apr 2011 10:46:17 +0200
    Subject: [PATCH 112/310]  Issue 3259:  	 Show SubjectAltNames in
     acceptKeyDialog
    
    ---
     .../setup/AccountSetupCheckSettings.java      | 74 +++++++++++++++++++
     1 file changed, 74 insertions(+)
    
    diff --git a/src/com/fsck/k9/activity/setup/AccountSetupCheckSettings.java b/src/com/fsck/k9/activity/setup/AccountSetupCheckSettings.java
    index bfc8e3520..4e21619d9 100644
    --- a/src/com/fsck/k9/activity/setup/AccountSetupCheckSettings.java
    +++ b/src/com/fsck/k9/activity/setup/AccountSetupCheckSettings.java
    @@ -5,6 +5,7 @@ import android.app.Activity;
     import android.app.AlertDialog;
     import android.content.DialogInterface;
     import android.content.Intent;
    +import android.net.Uri;
     import android.os.Bundle;
     import android.os.Handler;
     import android.os.Process;
    @@ -27,9 +28,12 @@ import com.fsck.k9.mail.filter.Hex;
     
     import java.security.cert.CertificateException;
     import java.security.cert.CertificateEncodingException;
    +import java.security.cert.CertificateParsingException;
     import java.security.cert.X509Certificate;
     import java.security.NoSuchAlgorithmException;
     import java.security.MessageDigest;
    +import java.util.Collection;
    +import java.util.List;
     
     /**
      * Checks the given settings to make sure that they can be used to send and
    @@ -249,8 +253,78 @@ public class AccountSetupCheckSettings extends K9Activity implements OnClickList
                     }
                     for (int i = 0; i < chain.length; i++) {
                         // display certificate chain information
    +                	//TODO: localize this strings
                         chainInfo.append("Certificate chain[" + i + "]:\n");
                         chainInfo.append("Subject: " + chain[i].getSubjectDN().toString() + "\n");
    +
    +                    // display SubjectAltNames too
    +                    // (the user may be mislead into mistrusting a certificate
    +                    //  by a subjectDN not matching the server even though a
    +                    //  SubjectAltName matches)
    +                    try {
    +						final Collection> subjectAlternativeNames = chain[i].getSubjectAlternativeNames();
    +						if (subjectAlternativeNames != null) {
    +							// The list of SubjectAltNames may be very long
    +		                	//TODO: localize this string
    +							StringBuffer altNamesText = new StringBuffer("Subject has " + subjectAlternativeNames.size() + " alternative names\n");
    +
    +							// we need these for matching
    +							String storeURIHost = (Uri.parse(mAccount.getStoreUri())).getHost();
    +							String transportURIHost = (Uri.parse(mAccount.getTransportUri())).getHost();
    +
    +							for (List subjectAlternativeName : subjectAlternativeNames) {
    +								Integer type = (Integer)subjectAlternativeName.get(0);
    +							    Object value = subjectAlternativeName.get(1);
    +							    String name = "";
    +							    switch (type.intValue()) {
    +							      case 0:
    +							    	  Log.w(K9.LOG_TAG, "SubjectAltName of type OtherName not supported.");
    +							    	  continue;
    +							      case 1: // RFC822Name 
    +							    	  name = (String)value;
    +							        break;
    +							      case 2:  // DNSName 
    +							    	  name = (String)value;
    +							        break;
    +							      case 3:
    +							    	  Log.w(K9.LOG_TAG, "unsupported SubjectAltName of type x400Address");
    +							    	  continue;
    +							      case 4:
    +							    	  Log.w(K9.LOG_TAG, "unsupported SubjectAltName of type directoryName");
    +							    	  continue;
    +							      case 5:
    +							    	  Log.w(K9.LOG_TAG, "unsupported SubjectAltName of type ediPartyName");
    +							    	  continue;
    +							      case 6:  // Uri
    +							    	  name = (String)value;
    +							        break;
    +							      case 7: // ip-address
    +							    	  name = (String)value;
    +							        break;
    +							      default:
    +							    	  Log.w(K9.LOG_TAG, "unsupported SubjectAltName of unknown type");
    +							    	  continue;
    +							   }
    +
    +							    // if some of the SubjectAltNames match the store or transport -host,
    +							    // display them
    +							    if (name.equalsIgnoreCase(storeURIHost) || name.equalsIgnoreCase(transportURIHost)) {
    +				                	//TODO: localize this string
    +        	                        altNamesText.append("Subject(alt): " + name + ",...\n");
    +							    } else if (name.startsWith("*.")) {
    +							    	if (storeURIHost.endsWith(name.substring(2)) || transportURIHost.endsWith(name.substring(2))) {
    +					                	//TODO: localize this string
    +							    		altNamesText.append("Subject(alt): " + name + ",...\n");
    +							    	}
    +							    }
    +							}
    +							chainInfo.append(altNamesText);
    +						}
    +					} catch (Exception e1) {
    +						// don't fail just because of subjectAltNames
    +						Log.w(K9.LOG_TAG, "cannot display SubjectAltNames in dialog", e1);
    +					}
    +
                         chainInfo.append("Issuer: " + chain[i].getIssuerDN().toString() + "\n");
                         if (sha1 != null) {
                             sha1.reset();
    
    From 120a39d5d6b5603169e6622103be9fa8294512c8 Mon Sep 17 00:00:00 2001
    From: Bernhard Redl 
    Date: Wed, 20 Apr 2011 10:01:23 +0800
    Subject: [PATCH 113/310] * Fix Bug
     https://code.google.com/p/k9mail/issues/detail?id=3224   12/24 timesetting is
     no based on the android system settings
    
    ---
     src/com/fsck/k9/preferences/TimePickerPreference.java | 3 ++-
     1 file changed, 2 insertions(+), 1 deletion(-)
    
    diff --git a/src/com/fsck/k9/preferences/TimePickerPreference.java b/src/com/fsck/k9/preferences/TimePickerPreference.java
    index 16685efe9..cc021f8d8 100644
    --- a/src/com/fsck/k9/preferences/TimePickerPreference.java
    +++ b/src/com/fsck/k9/preferences/TimePickerPreference.java
    @@ -6,6 +6,7 @@ package com.fsck.k9.preferences;
     
     import android.content.Context;
     import android.preference.DialogPreference;
    +import android.text.format.DateFormat;
     import android.util.AttributeSet;
     import android.view.View;
     import android.widget.TimePicker;
    @@ -73,8 +74,8 @@ public class TimePickerPreference extends DialogPreference implements
         protected View onCreateDialogView() {
     
             TimePicker tp = new TimePicker(getContext());
    +        tp.setIs24HourView(DateFormat.is24HourFormat(getContext()));
             tp.setOnTimeChangedListener(this);
    -
             originalHour = getHour();
             originalMinute = getMinute();
             if (originalHour >= 0 && originalMinute >= 0)
    
    From 415c11d7123c8681e5fb38d837b036de173e2d47 Mon Sep 17 00:00:00 2001
    From: Bernhard Redl 
    Date: Wed, 20 Apr 2011 14:55:55 +0200
    Subject: [PATCH 114/310] "When calculating the number of unread messages shown
     in the account list, INBOX now is always counted, even if a "special" folder
     has been set to INBOX (issue 3074)
    
    ---
     src/com/fsck/k9/mail/store/LocalStore.java | 66 +++++++---------------
     1 file changed, 21 insertions(+), 45 deletions(-)
    
    diff --git a/src/com/fsck/k9/mail/store/LocalStore.java b/src/com/fsck/k9/mail/store/LocalStore.java
    index 4c010924b..a484b3855 100644
    --- a/src/com/fsck/k9/mail/store/LocalStore.java
    +++ b/src/com/fsck/k9/mail/store/LocalStore.java
    @@ -507,57 +507,33 @@ public class LocalStore extends Store implements Serializable {
                     Cursor cursor = null;
                     try {
                         String baseQuery = "SELECT SUM(unread_count), SUM(flagged_count) FROM folders WHERE ( name != ? AND name != ? AND name != ? AND name != ? AND name != ? ) ";
    +                    List queryParam = new ArrayList();
    +                    queryParam.add((mAccount.getTrashFolderName() != null && !mAccount.getTrashFolderName().equals(mAccount.getInboxFolderName())) ? mAccount.getTrashFolderName() : "");
    +                    queryParam.add((mAccount.getDraftsFolderName() != null && !mAccount.getTrashFolderName().equals(mAccount.getInboxFolderName())) ? mAccount.getDraftsFolderName() : "");
    +                    queryParam.add((mAccount.getSpamFolderName() != null && !mAccount.getSpamFolderName().equals(mAccount.getInboxFolderName())) ? mAccount.getSpamFolderName() : "");
    +                    queryParam.add((mAccount.getOutboxFolderName() != null && !mAccount.getOutboxFolderName().equals(mAccount.getInboxFolderName())) ?  mAccount.getOutboxFolderName() : "");
    +                    queryParam.add((mAccount.getSentFolderName() != null && !mAccount.getSentFolderName().equals(mAccount.getInboxFolderName())) ? mAccount.getSentFolderName() : "");
    +
                         if (displayMode == Account.FolderMode.NONE) {
    -                        cursor = db.rawQuery(baseQuery + "AND (name = ? )", new String[] {
    -
    -                                                 mAccount.getTrashFolderName() != null ? mAccount.getTrashFolderName() : "" ,
    -                                                 mAccount.getDraftsFolderName() != null ? mAccount.getDraftsFolderName() : "",
    -                                                 mAccount.getSpamFolderName() != null ? mAccount.getSpamFolderName() : "",
    -                                                 mAccount.getOutboxFolderName() != null ?  mAccount.getOutboxFolderName() : "",
    -                                                 mAccount.getSentFolderName() != null ? mAccount.getSentFolderName() : "",
    -                                                 mAccount.getInboxFolderName()
    -                                             }
    -
    -                                            );
    +                        queryParam.add(mAccount.getInboxFolderName());
    +                        cursor = db.rawQuery(baseQuery + "AND (name = ? )", queryParam.toArray(new String[queryParam.size()]));
                         } else if (displayMode == Account.FolderMode.FIRST_CLASS) {
    -                        cursor = db.rawQuery(baseQuery + " AND ( name = ? OR display_class = ?)", new String[] {
    -                                                 mAccount.getTrashFolderName() != null ? mAccount.getTrashFolderName() : "" ,
    -                                                 mAccount.getDraftsFolderName() != null ? mAccount.getDraftsFolderName() : "",
    -                                                 mAccount.getSpamFolderName() != null ? mAccount.getSpamFolderName() : "",
    -                                                 mAccount.getOutboxFolderName() != null ?  mAccount.getOutboxFolderName() : "",
    -                                                 mAccount.getSentFolderName() != null ? mAccount.getSentFolderName() : "",
    -                                                 mAccount.getInboxFolderName(), Folder.FolderClass.FIRST_CLASS.name()
    -                                             });
    -
    +                        queryParam.add(mAccount.getInboxFolderName());
    +                        queryParam.add(Folder.FolderClass.FIRST_CLASS.name());
    +                        cursor = db.rawQuery(baseQuery + " AND ( name = ? OR display_class = ?)", queryParam.toArray(new String[queryParam.size()]));
     
                         } else if (displayMode == Account.FolderMode.FIRST_AND_SECOND_CLASS) {
    -                        cursor = db.rawQuery(baseQuery + " AND ( name = ? OR display_class = ? OR display_class = ? )", new String[] {
    -                                                 mAccount.getTrashFolderName() != null ? mAccount.getTrashFolderName() : "" ,
    -                                                 mAccount.getDraftsFolderName() != null ? mAccount.getDraftsFolderName() : "",
    -                                                 mAccount.getSpamFolderName() != null ? mAccount.getSpamFolderName() : "",
    -                                                 mAccount.getOutboxFolderName() != null ?  mAccount.getOutboxFolderName() : "",
    -                                                 mAccount.getSentFolderName() != null ? mAccount.getSentFolderName() : "",
    -                                                 mAccount.getInboxFolderName(), Folder.FolderClass.FIRST_CLASS.name(), Folder.FolderClass.SECOND_CLASS.name()
    -                                             });
    +                        queryParam.add(mAccount.getInboxFolderName());
    +                        queryParam.add(Folder.FolderClass.FIRST_CLASS.name());
    +                        queryParam.add(Folder.FolderClass.SECOND_CLASS.name());
    +                        cursor = db.rawQuery(baseQuery + " AND ( name = ? OR display_class = ? OR display_class = ? )", queryParam.toArray(new String[queryParam.size()]));
    +
                         } else if (displayMode == Account.FolderMode.NOT_SECOND_CLASS) {
    -                        cursor = db.rawQuery(baseQuery + " AND ( name = ? OR display_class != ?)", new String[] {
    -
    -                                                 mAccount.getTrashFolderName() != null ? mAccount.getTrashFolderName() : "" ,
    -                                                 mAccount.getDraftsFolderName() != null ? mAccount.getDraftsFolderName() : "",
    -                                                 mAccount.getSpamFolderName() != null ? mAccount.getSpamFolderName() : "",
    -                                                 mAccount.getOutboxFolderName() != null ?  mAccount.getOutboxFolderName() : "",
    -                                                 mAccount.getSentFolderName() != null ? mAccount.getSentFolderName() : "",
    -                                                 mAccount.getInboxFolderName(), Folder.FolderClass.SECOND_CLASS.name()
    -                                             });
    +                        queryParam.add(mAccount.getInboxFolderName());
    +                        queryParam.add(Folder.FolderClass.SECOND_CLASS.name());
    +                        cursor = db.rawQuery(baseQuery + " AND ( name = ? OR display_class != ?)", queryParam.toArray(new String[queryParam.size()]));
                         } else if (displayMode == Account.FolderMode.ALL) {
    -                        cursor = db.rawQuery(baseQuery,  new String[] {
    -
    -                                                 mAccount.getTrashFolderName() != null ? mAccount.getTrashFolderName() : "" ,
    -                                                 mAccount.getDraftsFolderName() != null ? mAccount.getDraftsFolderName() : "",
    -                                                 mAccount.getSpamFolderName() != null ? mAccount.getSpamFolderName() : "",
    -                                                 mAccount.getOutboxFolderName() != null ?  mAccount.getOutboxFolderName() : "",
    -                                                 mAccount.getSentFolderName() != null ? mAccount.getSentFolderName() : "",
    -                                             });
    +                        cursor = db.rawQuery(baseQuery, (String [])queryParam.toArray());
                         } else {
                             Log.e(K9.LOG_TAG, "asked to compute account statistics for an impossible folder mode " + displayMode);
                             stats.unreadMessageCount = 0;
    
    From 92f7c3a19fd40323b6218ab5099dc62b21a10273 Mon Sep 17 00:00:00 2001
    From: Bernhard Redl 
    Date: Wed, 20 Apr 2011 15:30:08 +0200
    Subject: [PATCH 115/310] Refactored the code to calculate the number of unread
     messages in an account
    
    ---
     src/com/fsck/k9/mail/store/LocalStore.java | 13 +++++++------
     1 file changed, 7 insertions(+), 6 deletions(-)
    
    diff --git a/src/com/fsck/k9/mail/store/LocalStore.java b/src/com/fsck/k9/mail/store/LocalStore.java
    index a484b3855..7cbb94e8e 100644
    --- a/src/com/fsck/k9/mail/store/LocalStore.java
    +++ b/src/com/fsck/k9/mail/store/LocalStore.java
    @@ -506,13 +506,14 @@ public class LocalStore extends Store implements Serializable {
                 public Integer doDbWork(final SQLiteDatabase db) {
                     Cursor cursor = null;
                     try {
    -                    String baseQuery = "SELECT SUM(unread_count), SUM(flagged_count) FROM folders WHERE ( name != ? AND name != ? AND name != ? AND name != ? AND name != ? ) ";
    +                    String baseQuery = "SELECT SUM(unread_count), SUM(flagged_count) FROM folders WHERE ((name = ?) or ( name != ? AND name != ? AND name != ? AND name != ? AND name != ? )) ";
                         List queryParam = new ArrayList();
    -                    queryParam.add((mAccount.getTrashFolderName() != null && !mAccount.getTrashFolderName().equals(mAccount.getInboxFolderName())) ? mAccount.getTrashFolderName() : "");
    -                    queryParam.add((mAccount.getDraftsFolderName() != null && !mAccount.getTrashFolderName().equals(mAccount.getInboxFolderName())) ? mAccount.getDraftsFolderName() : "");
    -                    queryParam.add((mAccount.getSpamFolderName() != null && !mAccount.getSpamFolderName().equals(mAccount.getInboxFolderName())) ? mAccount.getSpamFolderName() : "");
    -                    queryParam.add((mAccount.getOutboxFolderName() != null && !mAccount.getOutboxFolderName().equals(mAccount.getInboxFolderName())) ?  mAccount.getOutboxFolderName() : "");
    -                    queryParam.add((mAccount.getSentFolderName() != null && !mAccount.getSentFolderName().equals(mAccount.getInboxFolderName())) ? mAccount.getSentFolderName() : "");
    +                    queryParam.add(mAccount.getInboxFolderName());
    +                    queryParam.add((mAccount.getTrashFolderName() != null) ? mAccount.getTrashFolderName() : "");
    +                    queryParam.add((mAccount.getDraftsFolderName() != null) ? mAccount.getDraftsFolderName() : "");
    +                    queryParam.add((mAccount.getSpamFolderName() != null) ? mAccount.getSpamFolderName() : "");
    +                    queryParam.add((mAccount.getOutboxFolderName() != null) ?  mAccount.getOutboxFolderName() : "");
    +                    queryParam.add((mAccount.getSentFolderName() != null) ? mAccount.getSentFolderName() : "");
     
                         if (displayMode == Account.FolderMode.NONE) {
                             queryParam.add(mAccount.getInboxFolderName());
    
    From 49308922d99d622ca62bbaf0594184abe83efd5e Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Wed, 20 Apr 2011 23:58:10 +0200
    Subject: [PATCH 116/310] Refactored code to calculate number of unread
     messages some more
    
    ---
     src/com/fsck/k9/mail/store/LocalStore.java | 80 ++++++++++++++--------
     1 file changed, 50 insertions(+), 30 deletions(-)
    
    diff --git a/src/com/fsck/k9/mail/store/LocalStore.java b/src/com/fsck/k9/mail/store/LocalStore.java
    index 7cbb94e8e..31d6c8987 100644
    --- a/src/com/fsck/k9/mail/store/LocalStore.java
    +++ b/src/com/fsck/k9/mail/store/LocalStore.java
    @@ -10,6 +10,7 @@ import java.util.HashMap;
     import java.util.HashSet;
     import java.util.LinkedList;
     import java.util.List;
    +import java.util.Locale;
     import java.util.Map;
     import java.util.Set;
     import java.util.UUID;
    @@ -506,42 +507,61 @@ public class LocalStore extends Store implements Serializable {
                 public Integer doDbWork(final SQLiteDatabase db) {
                     Cursor cursor = null;
                     try {
    -                    String baseQuery = "SELECT SUM(unread_count), SUM(flagged_count) FROM folders WHERE ((name = ?) or ( name != ? AND name != ? AND name != ? AND name != ? AND name != ? )) ";
    +                    // Always count messages in the INBOX but exclude special folders and possibly
    +                    // more (depending on the folder display mode)
    +                    String baseQuery = "SELECT SUM(unread_count), SUM(flagged_count) " +
    +                            "FROM folders " +
    +                            "WHERE (name = ?)" +  /* INBOX */
    +                            " OR (" +
    +                            "name NOT IN (?, ?, ?, ?, ?)" +  /* special folders */
    +                            "%s)";  /* placeholder for additional constraints */
    +
                         List queryParam = new ArrayList();
                         queryParam.add(mAccount.getInboxFolderName());
    -                    queryParam.add((mAccount.getTrashFolderName() != null) ? mAccount.getTrashFolderName() : "");
    -                    queryParam.add((mAccount.getDraftsFolderName() != null) ? mAccount.getDraftsFolderName() : "");
    -                    queryParam.add((mAccount.getSpamFolderName() != null) ? mAccount.getSpamFolderName() : "");
    -                    queryParam.add((mAccount.getOutboxFolderName() != null) ?  mAccount.getOutboxFolderName() : "");
    -                    queryParam.add((mAccount.getSentFolderName() != null) ? mAccount.getSentFolderName() : "");
     
    -                    if (displayMode == Account.FolderMode.NONE) {
    -                        queryParam.add(mAccount.getInboxFolderName());
    -                        cursor = db.rawQuery(baseQuery + "AND (name = ? )", queryParam.toArray(new String[queryParam.size()]));
    -                    } else if (displayMode == Account.FolderMode.FIRST_CLASS) {
    -                        queryParam.add(mAccount.getInboxFolderName());
    -                        queryParam.add(Folder.FolderClass.FIRST_CLASS.name());
    -                        cursor = db.rawQuery(baseQuery + " AND ( name = ? OR display_class = ?)", queryParam.toArray(new String[queryParam.size()]));
    +                    queryParam.add((mAccount.getTrashFolderName() != null) ?
    +                            mAccount.getTrashFolderName() : "");
    +                    queryParam.add((mAccount.getDraftsFolderName() != null) ?
    +                            mAccount.getDraftsFolderName() : "");
    +                    queryParam.add((mAccount.getSpamFolderName() != null) ?
    +                            mAccount.getSpamFolderName() : "");
    +                    queryParam.add((mAccount.getOutboxFolderName() != null) ?
    +                            mAccount.getOutboxFolderName() : "");
    +                    queryParam.add((mAccount.getSentFolderName() != null) ?
    +                            mAccount.getSentFolderName() : "");
     
    -                    } else if (displayMode == Account.FolderMode.FIRST_AND_SECOND_CLASS) {
    -                        queryParam.add(mAccount.getInboxFolderName());
    -                        queryParam.add(Folder.FolderClass.FIRST_CLASS.name());
    -                        queryParam.add(Folder.FolderClass.SECOND_CLASS.name());
    -                        cursor = db.rawQuery(baseQuery + " AND ( name = ? OR display_class = ? OR display_class = ? )", queryParam.toArray(new String[queryParam.size()]));
    -
    -                    } else if (displayMode == Account.FolderMode.NOT_SECOND_CLASS) {
    -                        queryParam.add(mAccount.getInboxFolderName());
    -                        queryParam.add(Folder.FolderClass.SECOND_CLASS.name());
    -                        cursor = db.rawQuery(baseQuery + " AND ( name = ? OR display_class != ?)", queryParam.toArray(new String[queryParam.size()]));
    -                    } else if (displayMode == Account.FolderMode.ALL) {
    -                        cursor = db.rawQuery(baseQuery, (String [])queryParam.toArray());
    -                    } else {
    -                        Log.e(K9.LOG_TAG, "asked to compute account statistics for an impossible folder mode " + displayMode);
    -                        stats.unreadMessageCount = 0;
    -                        stats.flaggedMessageCount = 0;
    -                        return null;
    +                    final String extraWhere;
    +                    switch (displayMode) {
    +                        case FIRST_CLASS:
    +                            // Count messages in the INBOX and non-special first class folders
    +                            extraWhere = " AND (display_class = ?)";
    +                            queryParam.add(Folder.FolderClass.FIRST_CLASS.name());
    +                            break;
    +                        case FIRST_AND_SECOND_CLASS:
    +                            // Count messages in the INBOX and non-special first and second class folders
    +                            extraWhere = " AND (display_class IN (?, ?))";
    +                            queryParam.add(Folder.FolderClass.FIRST_CLASS.name());
    +                            queryParam.add(Folder.FolderClass.SECOND_CLASS.name());
    +                            break;
    +                        case NOT_SECOND_CLASS:
    +                            // Count messages in the INBOX and non-special non-second-class folders
    +                            extraWhere = " AND (display_class != ?)";
    +                            queryParam.add(Folder.FolderClass.SECOND_CLASS.name());
    +                            break;
    +                        case ALL:
    +                            // Count messages in the INBOX and non-special folders
    +                            extraWhere = "";
    +                            break;
    +                        default:
    +                            Log.e(K9.LOG_TAG, "asked to compute account statistics for an impossible folder mode " + displayMode);
    +                            stats.unreadMessageCount = 0;
    +                            stats.flaggedMessageCount = 0;
    +                            return null;
                         }
     
    +                    String query = String.format(Locale.US, baseQuery, extraWhere);
    +                    cursor = db.rawQuery(query, queryParam.toArray(EMPTY_STRING_ARRAY));
    +
                         cursor.moveToFirst();
                         stats.unreadMessageCount = cursor.getInt(0);
                         stats.flaggedMessageCount = cursor.getInt(1);
    
    From 4b2fe6efab49899076a41d4f3089c0b27eaf94e5 Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Thu, 21 Apr 2011 00:00:16 +0200
    Subject: [PATCH 117/310] Removed unused imports
    
    ---
     .../fsck/k9/activity/setup/AccountSetupCheckSettings.java    | 5 ++---
     src/com/fsck/k9/mail/store/WebDavStore.java                  | 1 -
     2 files changed, 2 insertions(+), 4 deletions(-)
    
    diff --git a/src/com/fsck/k9/activity/setup/AccountSetupCheckSettings.java b/src/com/fsck/k9/activity/setup/AccountSetupCheckSettings.java
    index 4e21619d9..eda175696 100644
    --- a/src/com/fsck/k9/activity/setup/AccountSetupCheckSettings.java
    +++ b/src/com/fsck/k9/activity/setup/AccountSetupCheckSettings.java
    @@ -28,7 +28,6 @@ import com.fsck.k9.mail.filter.Hex;
     
     import java.security.cert.CertificateException;
     import java.security.cert.CertificateEncodingException;
    -import java.security.cert.CertificateParsingException;
     import java.security.cert.X509Certificate;
     import java.security.NoSuchAlgorithmException;
     import java.security.MessageDigest;
    @@ -280,10 +279,10 @@ public class AccountSetupCheckSettings extends K9Activity implements OnClickList
     							      case 0:
     							    	  Log.w(K9.LOG_TAG, "SubjectAltName of type OtherName not supported.");
     							    	  continue;
    -							      case 1: // RFC822Name 
    +							      case 1: // RFC822Name
     							    	  name = (String)value;
     							        break;
    -							      case 2:  // DNSName 
    +							      case 2:  // DNSName
     							    	  name = (String)value;
     							        break;
     							      case 3:
    diff --git a/src/com/fsck/k9/mail/store/WebDavStore.java b/src/com/fsck/k9/mail/store/WebDavStore.java
    index ef3b837f6..69d788c89 100644
    --- a/src/com/fsck/k9/mail/store/WebDavStore.java
    +++ b/src/com/fsck/k9/mail/store/WebDavStore.java
    @@ -4,7 +4,6 @@ import android.util.Log;
     
     import com.fsck.k9.Account;
     import com.fsck.k9.K9;
    -import com.fsck.k9.R;
     import com.fsck.k9.controller.MessageRetrievalListener;
     import com.fsck.k9.helper.Utility;
     import com.fsck.k9.mail.*;
    
    From 9954d96c10a3c26075bf30f967d51633ee482677 Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Thu, 21 Apr 2011 00:02:11 +0200
    Subject: [PATCH 118/310] Fixed HTML to get rid of some warnings
    
    ---
     assets/downloading.html | 2 +-
     assets/empty.html       | 2 +-
     assets/loading.html     | 2 +-
     3 files changed, 3 insertions(+), 3 deletions(-)
    
    diff --git a/assets/downloading.html b/assets/downloading.html
    index 403950b57..d77026c14 100644
    --- a/assets/downloading.html
    +++ b/assets/downloading.html
    @@ -2,7 +2,7 @@
     	
     		
    -				
    + Downloading...

    diff --git a/assets/empty.html b/assets/empty.html index f2f3af345..ae837b940 100644 --- a/assets/empty.html +++ b/assets/empty.html @@ -2,7 +2,7 @@ - diff --git a/assets/loading.html b/assets/loading.html index 0cc9cecc3..fc8c14ac8 100644 --- a/assets/loading.html +++ b/assets/loading.html @@ -2,7 +2,7 @@
    + No text
    - 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
      dO3M`aC$6g>IbleAAiL61@vE~_dgpR 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 z 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 )tBVev`-ut2+tBRr%8F%) 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%0Auv3nN?jeBKikhm>TRICq@AL;4n9r}|R{*$IQ% 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
    + Loading...

    From 44feb1563b11942ce3d8d675a7a7d2001d2db7a0 Mon Sep 17 00:00:00 2001 From: cketti Date: Thu, 21 Apr 2011 00:05:03 +0200 Subject: [PATCH 119/310] Updated german translation (nagel.patrick) --- res/values-de/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index ca6028d5f..06c0bd1e3 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -56,7 +56,7 @@ Antworten Allen antworten Löschen - Sichern + Archivieren Spam Ordner leeren Weiterleiten From e278ea23e9588a0cd7d0f913df8fa3eb2ed1d306 Mon Sep 17 00:00:00 2001 From: Bernhard Redl Date: Sun, 24 Apr 2011 13:54:28 +1000 Subject: [PATCH 120/310] Add a preference for selecting a default folder in which to save attachments --- res/values/strings.xml | 3 ++ res/xml/global_preferences.xml | 6 ++- src/com/fsck/k9/K9.java | 15 ++++-- src/com/fsck/k9/activity/setup/Prefs.java | 62 ++++++++++++++++++++++- 4 files changed, 80 insertions(+), 6 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 8737904e7..425682fce 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1041,4 +1041,7 @@ Welcome to K-9 Mail setup. K-9 is an open source mail client for Android origin Account \"%s\" is unavailable; check storage + Attachments Default Path + Save to + No filebrowser installed. Please enter destination foldername diff --git a/res/xml/global_preferences.xml b/res/xml/global_preferences.xml index aee7235e2..a65450f83 100644 --- a/res/xml/global_preferences.xml +++ b/res/xml/global_preferences.xml @@ -231,7 +231,11 @@ android:dialogTitle="@string/global_settings_confirm_actions_title" android:positiveButtonText="@android:string/ok" android:negativeButtonText="@android:string/cancel" /> - + Date: Sun, 24 Apr 2011 13:56:34 +1000 Subject: [PATCH 121/310] Unroll import statements in AttachmentView.java --- src/com/fsck/k9/view/AttachmentView.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/com/fsck/k9/view/AttachmentView.java b/src/com/fsck/k9/view/AttachmentView.java index 1fff23319..0ebfa228e 100644 --- a/src/com/fsck/k9/view/AttachmentView.java +++ b/src/com/fsck/k9/view/AttachmentView.java @@ -1,7 +1,16 @@ package com.fsck.k9.view; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; + +import org.apache.commons.io.IOUtils; + import android.content.Context; import android.content.Intent; +import android.content.pm.PackageManager; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; @@ -9,7 +18,12 @@ import android.os.Environment; import android.util.AttributeSet; import android.util.Log; import android.view.View; -import android.widget.*; +import android.widget.Button; +import android.widget.FrameLayout; +import android.widget.ImageView; +import android.widget.TextView; +import android.widget.Toast; + import com.fsck.k9.Account; import com.fsck.k9.K9; import com.fsck.k9.R; @@ -23,9 +37,6 @@ import com.fsck.k9.mail.Part; import com.fsck.k9.mail.internet.MimeUtility; import com.fsck.k9.mail.store.LocalStore.LocalAttachmentBodyPart; import com.fsck.k9.provider.AttachmentProvider; -import org.apache.commons.io.IOUtils; - -import java.io.*; public class AttachmentView extends FrameLayout { From ab4bae214f3b6d5bdf13fed317a5eba4a2e350e8 Mon Sep 17 00:00:00 2001 From: Bernhard Redl Date: Sun, 24 Apr 2011 14:00:10 +1000 Subject: [PATCH 122/310] Make attachment saving respect the new preference. Allow long-press to choose a folder. (new constant renamed from CHOOSE_FOLDER to CHOOSE directory for clarity) --- src/com/fsck/k9/activity/MessageView.java | 51 ++++++++++++++++++++- src/com/fsck/k9/view/AttachmentView.java | 48 +++++++++++++++++-- src/com/fsck/k9/view/SingleMessageView.java | 13 +++++- 3 files changed, 106 insertions(+), 6 deletions(-) diff --git a/src/com/fsck/k9/activity/MessageView.java b/src/com/fsck/k9/activity/MessageView.java index 91e9c7f4a..da64d2acf 100644 --- a/src/com/fsck/k9/activity/MessageView.java +++ b/src/com/fsck/k9/activity/MessageView.java @@ -17,12 +17,16 @@ import com.fsck.k9.*; import com.fsck.k9.controller.MessagingController; import com.fsck.k9.controller.MessagingListener; import com.fsck.k9.crypto.PgpData; +import com.fsck.k9.helper.FileBrowserHelper; +import com.fsck.k9.helper.FileBrowserHelper.FileBrowserFailOverCallback; import com.fsck.k9.mail.*; import com.fsck.k9.mail.store.StorageManager; import com.fsck.k9.view.AttachmentView; import com.fsck.k9.view.ToggleScrollView; import com.fsck.k9.view.SingleMessageView; +import com.fsck.k9.view.AttachmentView.AttachmentFileDownloadCallback; +import java.io.File; import java.util.*; public class MessageView extends K9Activity implements OnClickListener { @@ -33,7 +37,7 @@ public class MessageView extends K9Activity implements OnClickListener { private static final String STATE_PGP_DATA = "pgpData"; private static final int ACTIVITY_CHOOSE_FOLDER_MOVE = 1; private static final int ACTIVITY_CHOOSE_FOLDER_COPY = 2; - + private static final int ACTIVITY_CHOOSE_DIRECTORY = 3; private SingleMessageView mMessageView; @@ -61,6 +65,12 @@ public class MessageView extends K9Activity implements OnClickListener { private MessageViewHandler mHandler = new MessageViewHandler(); private StorageManager.StorageListener mStorageListener = new StorageListenerImplementation(); + /** this variable is used to save the calling AttachmentView + * until the onActivityResult is called. + * => with this reference we can identity the caller + */ + private AttachmentView attachmentTmpStore; + /** * Used to temporarily store the destination folder for refile operations if a confirmation * dialog is shown. @@ -295,6 +305,32 @@ public class MessageView extends K9Activity implements OnClickListener { mTopView = mToggleScrollView = (ToggleScrollView) findViewById(R.id.top_view); mMessageView = (SingleMessageView) findViewById(R.id.message_view); + //set a callback for the attachment view. With this callback the attachmentview + //request the start of a filebrowser activity. + mMessageView.setAttachmentCallback(new AttachmentFileDownloadCallback() { + + @Override + public void showFileBrowser(final AttachmentView caller) { + FileBrowserHelper.getInstance() + .showFileBrowserActivity(MessageView.this, + null, + MessageView.ACTIVITY_CHOOSE_DIRECTORY, + callback); + attachmentTmpStore = caller; + } + FileBrowserFailOverCallback callback = new FileBrowserFailOverCallback() { + + @Override + public void onPathEntered(String path) { + attachmentTmpStore.writeFile(new File(path)); + } + + @Override + public void onCancel() { + // canceled, do nothing + } + }; + }); mMessageView.initialize(this); setTitle(""); @@ -712,6 +748,19 @@ public class MessageView extends K9Activity implements OnClickListener { if (resultCode != RESULT_OK) return; switch (requestCode) { + case ACTIVITY_CHOOSE_DIRECTORY: + if (resultCode == RESULT_OK && data != null) { + // obtain the filename + Uri fileUri = data.getData(); + if (fileUri != null) { + String filePath = fileUri.getPath(); + if (filePath != null) { + attachmentTmpStore.writeFile(new File(filePath)); + } + } + } + + break; case ACTIVITY_CHOOSE_FOLDER_MOVE: case ACTIVITY_CHOOSE_FOLDER_COPY: if (data == null) diff --git a/src/com/fsck/k9/view/AttachmentView.java b/src/com/fsck/k9/view/AttachmentView.java index 0ebfa228e..cf24aa322 100644 --- a/src/com/fsck/k9/view/AttachmentView.java +++ b/src/com/fsck/k9/view/AttachmentView.java @@ -53,6 +53,8 @@ public class AttachmentView extends FrameLayout { public long size; public ImageView iconView; + private AttachmentFileDownloadCallback callback; + public AttachmentView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); mContext = context; @@ -67,7 +69,18 @@ public class AttachmentView extends FrameLayout { } - + public interface AttachmentFileDownloadCallback { + /** + * this method i called by the attachmentview when + * he wants to show a filebrowser + * the provider should show the filebrowser activity + * and save the reference to the attachment view for later. + * in his onActivityResult he can get the saved reference and + * call the saveFile method of AttachmentView + * @param view + */ + public void showFileBrowser(AttachmentView caller); + } public boolean populateFromPart(Part inputPart, Message message, Account account, MessagingController controller, MessagingListener listener) { try { part = (LocalAttachmentBodyPart) inputPart; @@ -124,6 +137,14 @@ public class AttachmentView extends FrameLayout { return; } }); + downloadButton.setOnLongClickListener(new OnLongClickListener() { + + @Override + public boolean onLongClick(View v) { + callback.showFileBrowser(AttachmentView.this); + return true; + } + }); attachmentName.setText(name); attachmentInfo.setText(SizeFormatter.formatSize(mContext, size)); @@ -169,9 +190,13 @@ public class AttachmentView extends FrameLayout { saveFile(); } - public void writeFile() { + /** + * Writes the attachment onto the given path + * @param directory: the base dir where the file should be saved. + */ + public void writeFile(File directory) { try { - File file = Utility.createUniqueFile(Environment.getExternalStorageDirectory(), name); + File file = Utility.createUniqueFile(directory, name); Uri uri = AttachmentProvider.getAttachmentUri(mAccount, part.getAttachmentId()); InputStream in = mContext.getContentResolver().openInputStream(uri); OutputStream out = new FileOutputStream(file); @@ -179,14 +204,22 @@ public class AttachmentView extends FrameLayout { out.flush(); out.close(); in.close(); - attachmentSaved(file.getName()); + attachmentSaved(file.toString()); new MediaScannerNotifier(mContext, file); } catch (IOException ioe) { attachmentNotSaved(); } } + /** + * saves the file to the defaultpath setting in the config, or if the config + * is not set => to the Environment + */ + public void writeFile() { + writeFile(new File(K9.getAttachmentDefaultPath())); + } public void saveFile() { + //TODO: Can the user save attachments on the internal filesystem or sd card only? if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { /* * Abort early if there's no place to save the attachment. We don't want to spend @@ -259,4 +292,11 @@ public class AttachmentView extends FrameLayout { mContext.getString(R.string.message_view_status_attachment_not_saved), Toast.LENGTH_LONG).show(); } + public AttachmentFileDownloadCallback getCallback() { + return callback; + } + public void setCallback(AttachmentFileDownloadCallback callback) { + this.callback = callback; + } + } diff --git a/src/com/fsck/k9/view/SingleMessageView.java b/src/com/fsck/k9/view/SingleMessageView.java index 3f0ceb146..5b84fc57f 100644 --- a/src/com/fsck/k9/view/SingleMessageView.java +++ b/src/com/fsck/k9/view/SingleMessageView.java @@ -44,7 +44,7 @@ public class SingleMessageView extends LinearLayout { private Button mDownloadRemainder; private LayoutInflater mInflater; private Contacts mContacts; - + private AttachmentView.AttachmentFileDownloadCallback attachmentCallback; public void initialize(Activity activity) { mMessageContentView = (MessageWebView) findViewById(R.id.message_content); @@ -265,6 +265,7 @@ public class SingleMessageView extends LinearLayout { return; } AttachmentView view = (AttachmentView)mInflater.inflate(R.layout.message_view_attachment, null); + view.setCallback(attachmentCallback); if (view.populateFromPart(part, message, account, controller, listener)) { addAttachment(view); } @@ -299,4 +300,14 @@ public class SingleMessageView extends LinearLayout { mMessageContentView.clearView(); mAttachments.removeAllViews(); } + + public AttachmentView.AttachmentFileDownloadCallback getAttachmentCallback() { + return attachmentCallback; + } + + public void setAttachmentCallback( + AttachmentView.AttachmentFileDownloadCallback attachmentCallback) { + this.attachmentCallback = attachmentCallback; + } + } From 0b2a9b5912dc11f0d893b478262a47754deb552f Mon Sep 17 00:00:00 2001 From: Jesse Vincent Date: Sun, 24 Apr 2011 14:11:43 +1000 Subject: [PATCH 123/310] Phrasing improvements for "where to save attachments" preference --- res/values/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 425682fce..01150c8eb 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1041,7 +1041,7 @@ Welcome to K-9 Mail setup. K-9 is an open source mail client for Android origin Account \"%s\" is unavailable; check storage - Attachments Default Path - Save to - No filebrowser installed. Please enter destination foldername + Save attachments to... + Save attachment + No file browser found. Where would you like to save this attachment? From a4db299289906d8cff7f4e733137cba8913e2964 Mon Sep 17 00:00:00 2001 From: Jesse Vincent Date: Sun, 24 Apr 2011 14:12:32 +1000 Subject: [PATCH 124/310] we don't use def_ to mean default --- res/values/strings.xml | 2 +- res/xml/global_preferences.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 01150c8eb..8458b0b1c 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1041,7 +1041,7 @@ Welcome to K-9 Mail setup. K-9 is an open source mail client for Android origin Account \"%s\" is unavailable; check storage - Save attachments to... + Save attachments to... Save attachment No file browser found. Where would you like to save this attachment? diff --git a/res/xml/global_preferences.xml b/res/xml/global_preferences.xml index a65450f83..bf26c2eeb 100644 --- a/res/xml/global_preferences.xml +++ b/res/xml/global_preferences.xml @@ -233,7 +233,7 @@ android:negativeButtonText="@android:string/cancel" /> From ad46c5a22e897cdd665b1880a7cd773f608f500f Mon Sep 17 00:00:00 2001 From: Jesse Vincent Date: Sun, 24 Apr 2011 14:13:13 +1000 Subject: [PATCH 125/310] default path to save attachments isn't an interaction preference. until we have a "storage" toplevel preferences section, move it to misc --- res/xml/global_preferences.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/res/xml/global_preferences.xml b/res/xml/global_preferences.xml index bf26c2eeb..d3297c942 100644 --- a/res/xml/global_preferences.xml +++ b/res/xml/global_preferences.xml @@ -231,11 +231,6 @@ android:dialogTitle="@string/global_settings_confirm_actions_title" android:positiveButtonText="@android:string/ok" android:negativeButtonText="@android:string/cancel" /> - + Date: Sat, 23 Apr 2011 08:24:13 +0800 Subject: [PATCH 126/310] fix NullPtr Exception when there is no Sent Mail folder on the imap server --- src/com/fsck/k9/activity/setup/AccountSettings.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/fsck/k9/activity/setup/AccountSettings.java b/src/com/fsck/k9/activity/setup/AccountSettings.java index 2944ace9b..69f35cb6e 100644 --- a/src/com/fsck/k9/activity/setup/AccountSettings.java +++ b/src/com/fsck/k9/activity/setup/AccountSettings.java @@ -873,7 +873,7 @@ public class AccountSettings extends K9PreferenceActivity { Iterator iter = folders.iterator(); while (iter.hasNext()) { Folder folder = iter.next(); - if (mAccount.getOutboxFolderName().equalsIgnoreCase(folder.getName())) { + if (mAccount.getOutboxFolderName() != null && mAccount.getOutboxFolderName().equalsIgnoreCase(folder.getName())) { iter.remove(); } } From c3480db129a55e2ea41f14c9d70b76a176c8b64a Mon Sep 17 00:00:00 2001 From: Jesse Vincent Date: Mon, 25 Apr 2011 13:17:18 +1000 Subject: [PATCH 127/310] Add missing file from the file chooser work --- src/com/fsck/k9/helper/FileBrowserHelper.java | 116 ++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 src/com/fsck/k9/helper/FileBrowserHelper.java diff --git a/src/com/fsck/k9/helper/FileBrowserHelper.java b/src/com/fsck/k9/helper/FileBrowserHelper.java new file mode 100644 index 000000000..caf7f55cc --- /dev/null +++ b/src/com/fsck/k9/helper/FileBrowserHelper.java @@ -0,0 +1,116 @@ +package com.fsck.k9.helper; + +import java.io.File; + +import android.app.Activity; +import android.app.AlertDialog; +import android.content.ActivityNotFoundException; +import android.content.DialogInterface; +import android.content.Intent; +import android.net.Uri; +import android.text.InputType; +import android.widget.EditText; + +import com.fsck.k9.K9; +import com.fsck.k9.R; + +public class FileBrowserHelper { + private static FileBrowserHelper sInstance; + + /** + * callback class to provide the result of the fallback textedit path dialog + */ + public interface FileBrowserFailOverCallback { + /** + * the user has entered a path + * @param path the path as String + */ + public void onPathEntered(String path); + /** + * the user has cancel the inputtext dialog + */ + public void onCancel(); + } + /** + * factory method + * + */ + private FileBrowserHelper() { + } + public synchronized static FileBrowserHelper getInstance() { + if (sInstance == null) { + sInstance = new FileBrowserHelper(); + } + return sInstance; + } + + + /** + * tries to open known filebrowsers. + * If no filebrowser is found and fallback textdialog is shown + * @param c the context as activty + * @param startPath: the default value, where the filebrowser will start. + * if startPath = null => the default path is used + * @param requestcode: the int you will get as requestcode in onActivityResult + * (only used if there is a filebrowser installed) + * @param callback: the callback (only used when no filebrowser is installed. + * if a filebrowser is installed => override the onActivtyResult Method + * + * @return true: if a filebrowser has been found (the result will be in the onActivityResult + * false: a fallback textinput has been shown. The Result will be sent with the callback method + * + * + */ + public boolean showFileBrowserActivity(Activity c, File startPath, int requestcode, FileBrowserFailOverCallback callback) { + boolean success = false; + Intent intent = new Intent("org.openintents.action.PICK_DIRECTORY"); + if (startPath == null) + startPath = new File(K9.getAttachmentDefaultPath()); + if (startPath != null) + intent.setData(Uri.fromFile(startPath)); + + try { + c.startActivityForResult(intent, requestcode); + success = true; + } catch (ActivityNotFoundException e) { + try { + intent = new Intent("com.androidworkz.action.PICK_DIRECTORY"); + c.startActivityForResult(intent, requestcode); + success = true; + } catch (ActivityNotFoundException ee) { + //No Filebrowser is installed => show an fallback textdialog + showPathTextInput(c, startPath, callback); + return false; + } + } + return success; + } + + private void showPathTextInput(final Activity c, final File startPath, final FileBrowserFailOverCallback callback) { + AlertDialog.Builder alert = new AlertDialog.Builder(c); + + alert.setTitle(c.getString(R.string.attachment_save_title)); + alert.setMessage(c.getString(R.string.attachment_save_desc)); + final EditText input = new EditText(c); + input.setInputType(InputType.TYPE_CLASS_TEXT); + if (startPath != null) + input.setText(startPath.toString()); + alert.setView(input); + + alert.setPositiveButton(c.getString(R.string.okay_action), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int whichButton) { + String path = input.getText().toString(); + callback.onPathEntered(path); + } + }); + + alert.setNegativeButton(c.getString(R.string.cancel_action), + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int whichButton) { + callback.onCancel(); + } + }); + + alert.show(); + } +} From da38149091cd8793ee74f25e1f16a09ca9b8beef Mon Sep 17 00:00:00 2001 From: Jonas Hurrelmann Date: Mon, 25 Apr 2011 22:32:48 +0200 Subject: [PATCH 128/310] Support for SMTP authentication methods that are not announced by the server. - Added AUTOMATIC as a new authentication method that will automatically choose the best authentication method (basically old behavior with CRAM_MD5). All other options will now enforce the selected authentication method. - Added LOGIN as selectable option. - Cleaned up code so strings to the different authentication methods are only defined once. --- .../activity/setup/AccountSetupOutgoing.java | 21 +++++---- .../fsck/k9/mail/transport/SmtpTransport.java | 47 ++++++++++++------- 2 files changed, 42 insertions(+), 26 deletions(-) diff --git a/src/com/fsck/k9/activity/setup/AccountSetupOutgoing.java b/src/com/fsck/k9/activity/setup/AccountSetupOutgoing.java index 770f6e909..3a3938d09 100644 --- a/src/com/fsck/k9/activity/setup/AccountSetupOutgoing.java +++ b/src/com/fsck/k9/activity/setup/AccountSetupOutgoing.java @@ -16,6 +16,8 @@ import android.widget.CompoundButton.OnCheckedChangeListener; import com.fsck.k9.*; import com.fsck.k9.activity.K9Activity; import com.fsck.k9.helper.Utility; +import com.fsck.k9.mail.transport.SmtpTransport; + import java.io.UnsupportedEncodingException; import java.net.URI; import java.net.URISyntaxException; @@ -45,10 +47,13 @@ public class AccountSetupOutgoing extends K9Activity implements OnClickListener, "webdav", "webdav+ssl", "webdav+ssl+", "webdav+tls", "webdav+tls+" }; */ - private static final String authTypes[] = { - "PLAIN", "CRAM_MD5" + SmtpTransport.AUTH_AUTOMATIC, + SmtpTransport.AUTH_LOGIN, + SmtpTransport.AUTH_PLAIN, + SmtpTransport.AUTH_CRAM_MD5, }; + private EditText mUsernameView; private EditText mPasswordView; private EditText mServerView; @@ -117,14 +122,10 @@ public class AccountSetupOutgoing extends K9Activity implements OnClickListener, new SpinnerOption(4, getString(R.string.account_setup_incoming_security_tls_label)), }; - // This needs to be kept in sync with the list at the top of the file. - // that makes me somewhat unhappy - SpinnerOption authTypeSpinnerOptions[] = { - new SpinnerOption(0, "PLAIN"), - new SpinnerOption(1, "CRAM_MD5") - }; - - + SpinnerOption authTypeSpinnerOptions[] = new SpinnerOption[authTypes.length]; + for (int i = 0; i < authTypes.length; i++) { + authTypeSpinnerOptions[i] = new SpinnerOption(i, authTypes[i]); + } ArrayAdapter securityTypesAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, securityTypes); diff --git a/src/com/fsck/k9/mail/transport/SmtpTransport.java b/src/com/fsck/k9/mail/transport/SmtpTransport.java index 142c8ac9f..0666ce62d 100644 --- a/src/com/fsck/k9/mail/transport/SmtpTransport.java +++ b/src/com/fsck/k9/mail/transport/SmtpTransport.java @@ -39,6 +39,14 @@ public class SmtpTransport extends Transport { public static final int CONNECTION_SECURITY_SSL_OPTIONAL = 4; + public static final String AUTH_PLAIN = "PLAIN"; + + public static final String AUTH_CRAM_MD5 = "CRAM_MD5"; + + public static final String AUTH_LOGIN = "LOGIN"; + + public static final String AUTH_AUTOMATIC = "AUTOMATIC"; + String mHost; int mPort; @@ -227,22 +235,29 @@ public class SmtpTransport extends Transport { boolean authLoginSupported = false; boolean authPlainSupported = false; boolean authCramMD5Supported = false; - for (String result : results) { - if (result.matches(".*AUTH.*LOGIN.*$")) { - authLoginSupported = true; - } - if (result.matches(".*AUTH.*PLAIN.*$")) { - authPlainSupported = true; - } - if (result.matches(".*AUTH.*CRAM-MD5.*$") && mAuthType != null && mAuthType.equals("CRAM_MD5")) { - authCramMD5Supported = true; - } - if (result.matches(".*SIZE \\d*$")) { - try { - mLargestAcceptableMessage = Integer.parseInt(result.substring(result.lastIndexOf(' ') + 1)); - } catch (Exception e) { - if (K9.DEBUG && K9.DEBUG_PROTOCOL_SMTP) { - Log.d(K9.LOG_TAG, "Tried to parse " + result + " and get an int out of the last word: " + e); + if (mAuthType != null) { + authLoginSupported = mAuthType.equals(AUTH_LOGIN); + authPlainSupported = mAuthType.equals(AUTH_PLAIN); + authCramMD5Supported = mAuthType.equals(AUTH_CRAM_MD5); + } + if (mAuthType == null || mAuthType.equals(AUTH_AUTOMATIC)) { + for (String result : results) { + if (result.matches(".*AUTH.*LOGIN.*$")) { + authLoginSupported = true; + } + if (result.matches(".*AUTH.*PLAIN.*$")) { + authPlainSupported = true; + } + if (result.matches(".*AUTH.*CRAM-MD5.*$")) { + authCramMD5Supported = true; + } + if (result.matches(".*SIZE \\d*$")) { + try { + mLargestAcceptableMessage = Integer.parseInt(result.substring(result.lastIndexOf(' ') + 1)); + } catch (Exception e) { + if (K9.DEBUG && K9.DEBUG_PROTOCOL_SMTP) { + Log.d(K9.LOG_TAG, "Tried to parse " + result + " and get an int out of the last word: " + e); + } } } } From 9b2e4c43a9d8da8f131aad0e827e2a28f533d003 Mon Sep 17 00:00:00 2001 From: Koji Arai Date: Tue, 26 Apr 2011 23:49:25 +0900 Subject: [PATCH 129/310] Fixed default sender color in the MessageList --- res/layout/message_list_item_touchable.xml | 2 +- src/com/fsck/k9/activity/MessageList.java | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/res/layout/message_list_item_touchable.xml b/res/layout/message_list_item_touchable.xml index 0cf1ad978..32d27ca07 100644 --- a/res/layout/message_list_item_touchable.xml +++ b/res/layout/message_list_item_touchable.xml @@ -83,7 +83,7 @@ android:layout_marginRight="0dip" android:singleLine="false" android:bufferType="spannable" - android:textColor="?android:attr/textColorTertiary" + android:textColor="?android:attr/textColorPrimary" android:textAppearance="?android:attr/textAppearanceSmall" /> diff --git a/src/com/fsck/k9/activity/MessageList.java b/src/com/fsck/k9/activity/MessageList.java index e48b7cf00..c99253795 100644 --- a/src/com/fsck/k9/activity/MessageList.java +++ b/src/com/fsck/k9/activity/MessageList.java @@ -12,12 +12,14 @@ import android.app.AlertDialog; import android.app.Dialog; import android.content.Context; import android.content.Intent; +import android.graphics.Color; import android.graphics.Typeface; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.text.Spannable; import android.text.SpannableStringBuilder; import android.text.style.AbsoluteSizeSpan; +import android.text.style.ForegroundColorSpan; import android.text.style.StyleSpan; import android.util.Log; import android.util.TypedValue; @@ -2256,6 +2258,12 @@ public class MessageList 0, message.sender.length() + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + + // set span for preview message. + str.setSpan(new ForegroundColorSpan(Color.rgb(128, 128, 128)), // How do I can specify the android.R.attr.textColorTertiary + message.sender.length() + 1, + str.length(), + Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } else { holder.from.setText(new SpannableStringBuilder(recipientSigil(message)).append(message.sender)); From e8a1a9a4661e9b5aa0ed4dd819e0b680bed7f0b8 Mon Sep 17 00:00:00 2001 From: cketti Date: Tue, 26 Apr 2011 17:49:40 +0200 Subject: [PATCH 130/310] Restored semantics of auth*Supported in SMTP authentication code Also, display a debug message if a certain authentication method was selected by the user but the server didn't advertise support for it in the EHLO response. --- .../fsck/k9/mail/transport/SmtpTransport.java | 68 ++++++++++--------- 1 file changed, 37 insertions(+), 31 deletions(-) diff --git a/src/com/fsck/k9/mail/transport/SmtpTransport.java b/src/com/fsck/k9/mail/transport/SmtpTransport.java index 0666ce62d..aa4f64383 100644 --- a/src/com/fsck/k9/mail/transport/SmtpTransport.java +++ b/src/com/fsck/k9/mail/transport/SmtpTransport.java @@ -229,47 +229,53 @@ public class SmtpTransport extends Transport { } } - /* - * result contains the results of the EHLO in concatenated form - */ + boolean useAuthLogin = AUTH_LOGIN.equals(mAuthType); + boolean useAuthPlain = AUTH_PLAIN.equals(mAuthType); + boolean useAuthCramMD5 = AUTH_CRAM_MD5.equals(mAuthType); + boolean authLoginSupported = false; boolean authPlainSupported = false; boolean authCramMD5Supported = false; - if (mAuthType != null) { - authLoginSupported = mAuthType.equals(AUTH_LOGIN); - authPlainSupported = mAuthType.equals(AUTH_PLAIN); - authCramMD5Supported = mAuthType.equals(AUTH_CRAM_MD5); - } - if (mAuthType == null || mAuthType.equals(AUTH_AUTOMATIC)) { - for (String result : results) { - if (result.matches(".*AUTH.*LOGIN.*$")) { - authLoginSupported = true; - } - if (result.matches(".*AUTH.*PLAIN.*$")) { - authPlainSupported = true; - } - if (result.matches(".*AUTH.*CRAM-MD5.*$")) { - authCramMD5Supported = true; - } - if (result.matches(".*SIZE \\d*$")) { - try { - mLargestAcceptableMessage = Integer.parseInt(result.substring(result.lastIndexOf(' ') + 1)); - } catch (Exception e) { - if (K9.DEBUG && K9.DEBUG_PROTOCOL_SMTP) { - Log.d(K9.LOG_TAG, "Tried to parse " + result + " and get an int out of the last word: " + e); - } + for (String result : results) { + if (result.matches(".*AUTH.*LOGIN.*$")) { + authLoginSupported = true; + } + if (result.matches(".*AUTH.*PLAIN.*$")) { + authPlainSupported = true; + } + if (result.matches(".*AUTH.*CRAM-MD5.*$")) { + authCramMD5Supported = true; + } + if (result.matches(".*SIZE \\d*$")) { + try { + mLargestAcceptableMessage = Integer.parseInt(result.substring(result.lastIndexOf(' ') + 1)); + } catch (Exception e) { + if (K9.DEBUG && K9.DEBUG_PROTOCOL_SMTP) { + Log.d(K9.LOG_TAG, "Tried to parse " + result + " and get an int out of the last word: " + e); } } } } - if (mUsername != null && mUsername.length() > 0 && mPassword != null - && mPassword.length() > 0) { - if (authCramMD5Supported) { + if (mUsername != null && mUsername.length() > 0 && + mPassword != null && mPassword.length() > 0) { + if (useAuthCramMD5 || authCramMD5Supported) { + if (!authCramMD5Supported && K9.DEBUG && K9.DEBUG_PROTOCOL_SMTP) { + Log.d(K9.LOG_TAG, "Using CRAM_MD5 as authentication method although the " + + "server didn't advertise support for it in EHLO response."); + } saslAuthCramMD5(mUsername, mPassword); - } else if (authPlainSupported) { + } else if (useAuthPlain || authPlainSupported) { + if (!authPlainSupported && K9.DEBUG && K9.DEBUG_PROTOCOL_SMTP) { + Log.d(K9.LOG_TAG, "Using PLAIN as authentication method although the " + + "server didn't advertise support for it in EHLO response."); + } saslAuthPlain(mUsername, mPassword); - } else if (authLoginSupported) { + } else if (useAuthLogin || authLoginSupported) { + if (!authPlainSupported && K9.DEBUG && K9.DEBUG_PROTOCOL_SMTP) { + Log.d(K9.LOG_TAG, "Using LOGIN as authentication method although the " + + "server didn't advertise support for it in EHLO response."); + } saslAuthLogin(mUsername, mPassword); } else { throw new MessagingException("No valid authentication mechanism found."); From 037b0ff64de7f8461920a21445595e4a160e1381 Mon Sep 17 00:00:00 2001 From: cketti Date: Tue, 26 Apr 2011 18:23:41 +0200 Subject: [PATCH 131/310] Fix automatic authentication method selection for SMTP Only use automatic authentication method selection if none was explicitly selected in outgoing server settings. --- src/com/fsck/k9/mail/transport/SmtpTransport.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/com/fsck/k9/mail/transport/SmtpTransport.java b/src/com/fsck/k9/mail/transport/SmtpTransport.java index aa4f64383..bb31409be 100644 --- a/src/com/fsck/k9/mail/transport/SmtpTransport.java +++ b/src/com/fsck/k9/mail/transport/SmtpTransport.java @@ -233,6 +233,9 @@ public class SmtpTransport extends Transport { boolean useAuthPlain = AUTH_PLAIN.equals(mAuthType); boolean useAuthCramMD5 = AUTH_CRAM_MD5.equals(mAuthType); + // Automatically choose best authentication method if none was explicitly selected + boolean useAutomaticAuth = !(useAuthLogin || useAuthPlain || useAuthCramMD5); + boolean authLoginSupported = false; boolean authPlainSupported = false; boolean authCramMD5Supported = false; @@ -259,19 +262,19 @@ public class SmtpTransport extends Transport { if (mUsername != null && mUsername.length() > 0 && mPassword != null && mPassword.length() > 0) { - if (useAuthCramMD5 || authCramMD5Supported) { + if (useAuthCramMD5 || (useAutomaticAuth && authCramMD5Supported)) { if (!authCramMD5Supported && K9.DEBUG && K9.DEBUG_PROTOCOL_SMTP) { Log.d(K9.LOG_TAG, "Using CRAM_MD5 as authentication method although the " + "server didn't advertise support for it in EHLO response."); } saslAuthCramMD5(mUsername, mPassword); - } else if (useAuthPlain || authPlainSupported) { + } else if (useAuthPlain || (useAutomaticAuth && authPlainSupported)) { if (!authPlainSupported && K9.DEBUG && K9.DEBUG_PROTOCOL_SMTP) { Log.d(K9.LOG_TAG, "Using PLAIN as authentication method although the " + "server didn't advertise support for it in EHLO response."); } saslAuthPlain(mUsername, mPassword); - } else if (useAuthLogin || authLoginSupported) { + } else if (useAuthLogin || (useAutomaticAuth && authLoginSupported)) { if (!authPlainSupported && K9.DEBUG && K9.DEBUG_PROTOCOL_SMTP) { Log.d(K9.LOG_TAG, "Using LOGIN as authentication method although the " + "server didn't advertise support for it in EHLO response."); From b7a6dbd9734700e3eacdaf1477fed14c03106e00 Mon Sep 17 00:00:00 2001 From: cketti Date: Thu, 28 Apr 2011 04:46:01 +0200 Subject: [PATCH 132/310] Skip IMAP folders with names that are not correctly encoded. Configure the CharsetDecoder to throw an exception if malformed input is encountered. Not doing this can cause an endless loop that allocates memory until the application dies with an OutOfMemory error. Until we have support for both a folder display name and a raw folder name we simply ignore folders with names that aren't correctly encoded with the modified UTF-7 variant. Fixes issue 3268 Credits: Bernhard Redl (aatdark) analysed the problem and wrote the initial version of the fix. --- src/com/fsck/k9/mail/store/ImapStore.java | 27 ++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/src/com/fsck/k9/mail/store/ImapStore.java b/src/com/fsck/k9/mail/store/ImapStore.java index bbd7fc148..4eeb3bea0 100644 --- a/src/com/fsck/k9/mail/store/ImapStore.java +++ b/src/com/fsck/k9/mail/store/ImapStore.java @@ -18,7 +18,10 @@ import java.net.URISyntaxException; import java.net.URLDecoder; import java.nio.ByteBuffer; import java.nio.CharBuffer; +import java.nio.charset.CharacterCodingException; import java.nio.charset.Charset; +import java.nio.charset.CharsetDecoder; +import java.nio.charset.CodingErrorAction; import java.security.GeneralSecurityException; import java.security.SecureRandom; import java.security.Security; @@ -373,7 +376,20 @@ public class ImapStore extends Store { for (ImapResponse response : responses) { if (ImapResponseParser.equalsIgnoreCase(response.get(0), commandResponse)) { boolean includeFolder = true; - String folder = decodeFolderName(response.getString(3)); + + String folder; + try { + folder = decodeFolderName(response.getString(3)); + } catch (CharacterCodingException e) { + Log.w(K9.LOG_TAG, "Folder name not correctly encoded with the UTF-7 variant " + + "as defined by RFC 3501: " + response.getString(3), e); + + //TODO: Use the raw name returned by the server for all commands that require + // a folder name. Use the decoded name only for showing it to the user. + + // We currently just skip folders with malformed names. + continue; + } if (mPathDelimeter == null) { mPathDelimeter = response.getString(2); @@ -395,7 +411,7 @@ public class ImapStore extends Store { if (folder.length() >= getCombinedPrefix().length()) { folder = folder.substring(getCombinedPrefix().length()); } - if (!decodeFolderName(response.getString(3)).equalsIgnoreCase(getCombinedPrefix() + folder)) { + if (!folder.equalsIgnoreCase(getCombinedPrefix() + folder)) { includeFolder = false; } } @@ -492,14 +508,15 @@ public class ImapStore extends Store { } } - private String decodeFolderName(String name) { + private String decodeFolderName(String name) throws CharacterCodingException { /* * Convert the encoded name to US-ASCII, then pass it through the modified UTF-7 * decoder and return the Unicode String. */ try { - byte[] encoded = name.getBytes("US-ASCII"); - CharBuffer cb = mModifiedUtf7Charset.decode(ByteBuffer.wrap(encoded)); + // Make sure the decoder throws an exception if it encounters an invalid encoding. + CharsetDecoder decoder = mModifiedUtf7Charset.newDecoder().onMalformedInput(CodingErrorAction.REPORT); + CharBuffer cb = decoder.decode(ByteBuffer.wrap(name.getBytes("US-ASCII"))); return cb.toString(); } catch (UnsupportedEncodingException uee) { /* From d745df753d2ea6b7531c1a575aee63db5bf7c408 Mon Sep 17 00:00:00 2001 From: Koji Arai Date: Thu, 28 Apr 2011 00:22:13 +0900 Subject: [PATCH 133/310] Improved Japanese translation --- res/values-ja/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml index 7336ce75e..52108d795 100644 --- a/res/values-ja/strings.xml +++ b/res/values-ja/strings.xml @@ -133,7 +133,7 @@ (取込中 %s%s) メール取込中\u2026 接続エラー - 新着メールなし + メッセージが見つかりません エラー 送信\u2026 From d5ca4f107a4d78e9d0ba985b9c4ca39fe907855f Mon Sep 17 00:00:00 2001 From: Jesse Vincent Date: Sat, 30 Apr 2011 08:17:25 +0800 Subject: [PATCH 134/310] Bumped manifest to 3.711 --- AndroidManifest.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index c74641d35..4285bdcba 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,8 +1,8 @@ Date: Sun, 1 May 2011 01:32:34 +0900 Subject: [PATCH 135/310] Updated Japanese translation. catch up with a4db299. --- res/values-ja/strings.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml index 52108d795..ebf53b638 100644 --- a/res/values-ja/strings.xml +++ b/res/values-ja/strings.xml @@ -1033,4 +1033,7 @@ K-9 Mail セットアップにようこそ。\nK-9 は標準のAndroidメール アカウント \"%s\" は利用できません。ストレージを確認してください。 + 添付ファイルの保存先 + 添付ファイルの保存先 + ファイルブラウザがインストールされていません。添付ファイルの保存場所を直接入力してください。 From 785fd397c5125ed94e4b2bc0d94e99766dd6c354 Mon Sep 17 00:00:00 2001 From: cketti Date: Sat, 30 Apr 2011 23:22:47 +0200 Subject: [PATCH 136/310] Updated catalan translation (dvbotet) --- res/values-ca/strings.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml index 7284788f1..5aea00067 100644 --- a/res/values-ca/strings.xml +++ b/res/values-ca/strings.xml @@ -344,7 +344,7 @@ Benvingut a la configuració del K-9. El K-9 és un client de codi obert per An Arxiva Esborra (només la vista del missatge) Brossa - + Maca\'ls tots com a llegits Envia Bloca notificacions @@ -1025,10 +1025,10 @@ Benvingut a la configuració del K-9. El K-9 és un client de codi obert per An Esborra No esborris - - - - + Confirma moure\'l carpeta brossa + Realment vols moure aquest missatge a la carpeta brossa? + + No S\'està descarregant adjunt @@ -1038,6 +1038,6 @@ Benvingut a la configuració del K-9. El K-9 és un client de codi obert per An No es pot connectar. - + Compte \"%s\" no és disponible; comprova emmagatzematge From f2283aa91efeac1947cb6539652b0b71ad52a540 Mon Sep 17 00:00:00 2001 From: Bernhard Redl Date: Sun, 1 May 2011 00:42:15 +0200 Subject: [PATCH 137/310] Catch IllegalCharsetNameException causing force-close on unsupported japanese charsets (issue 3272) --- src/com/fsck/k9/mail/internet/MimeUtility.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/com/fsck/k9/mail/internet/MimeUtility.java b/src/com/fsck/k9/mail/internet/MimeUtility.java index 84ce1e063..0fd320c0a 100644 --- a/src/com/fsck/k9/mail/internet/MimeUtility.java +++ b/src/com/fsck/k9/mail/internet/MimeUtility.java @@ -14,6 +14,7 @@ import java.io.OutputStream; import java.util.ArrayList; import java.util.regex.Pattern; import java.nio.charset.Charset; +import java.nio.charset.IllegalCharsetNameException; public class MimeUtility { @@ -1381,13 +1382,19 @@ public class MimeUtility { /* * See if there is conversion from the MIME charset to the Java one. + * this function may also throw an exception if the charset name is not known */ - if (!Charset.isSupported(charset)) { + boolean supported; + try { + supported = Charset.isSupported(charset); + } catch (IllegalCharsetNameException e) { + supported = false; + } + if (!supported) { Log.e(K9.LOG_TAG, "I don't know how to deal with the charset " + charset + ". Falling back to US-ASCII"); charset = "US-ASCII"; } - /* * Convert and return as new String */ From 01937d4ab83e89195124488de7c52686ea492645 Mon Sep 17 00:00:00 2001 From: cketti Date: Sun, 1 May 2011 05:34:17 +0200 Subject: [PATCH 138/310] Don't crash if "footer view" is clicked in search results Fixes issue 3071 --- src/com/fsck/k9/activity/MessageList.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/com/fsck/k9/activity/MessageList.java b/src/com/fsck/k9/activity/MessageList.java index c99253795..c7069df0e 100644 --- a/src/com/fsck/k9/activity/MessageList.java +++ b/src/com/fsck/k9/activity/MessageList.java @@ -567,9 +567,10 @@ public class MessageList @Override public void onItemClick(AdapterView parent, View view, int position, long id) { - // Use mListView.getAdapter() to get the WrapperListAdapter that includes the footer view. - if (mCurrentFolder != null && ((position + 1) == mListView.getAdapter().getCount())) { - mController.loadMoreMessages(mAccount, mFolderName, mAdapter.mListener); + if (view == mFooterView) { + if (mCurrentFolder != null) { + mController.loadMoreMessages(mAccount, mFolderName, mAdapter.mListener); + } return; } From af7d57561f9055befc5ab4d5a3532210409994f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pedro=20Taveira?= Date: Mon, 2 May 2011 16:00:04 +0100 Subject: [PATCH 139/310] Message ContentProvider field rename from READED to UNREAD to maintain names consistency. --- src/com/fsck/k9/provider/MessageProvider.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/com/fsck/k9/provider/MessageProvider.java b/src/com/fsck/k9/provider/MessageProvider.java index 64950ffd1..7ea325396 100644 --- a/src/com/fsck/k9/provider/MessageProvider.java +++ b/src/com/fsck/k9/provider/MessageProvider.java @@ -17,6 +17,7 @@ import android.content.ContentProvider; import android.content.ContentResolver; import android.content.ContentValues; import android.content.Context; +import android.content.Intent; import android.content.UriMatcher; import android.database.CharArrayBuffer; import android.database.ContentObserver; @@ -75,7 +76,7 @@ public class MessageProvider extends ContentProvider { /** *

    Type: BOOLEAN

    */ - String READED = "readed"; + String UNREAD = "unread"; String ACCOUNT = "account"; String URI = "uri"; @@ -187,10 +188,10 @@ public class MessageProvider extends ContentProvider { } } - public static class ReadedExtractor implements FieldExtractor { + public static class UnreadExtractor implements FieldExtractor { @Override public Boolean getField(final MessageInfoHolder source) { - return source.read; + return !source.read; } } @@ -302,8 +303,8 @@ public class MessageProvider extends ContentProvider { extractors.put(field, new DeleteUriExtractor()); } else if (MessageColumns.ACCOUNT.equals(field)) { extractors.put(field, new AccountExtractor()); - } else if (MessageColumns.READED.equals(field)) { - extractors.put(field, new ReadedExtractor()); + } else if (MessageColumns.UNREAD.equals(field)) { + extractors.put(field, new UnreadExtractor()); } else if (MessageColumns.INCREMENT.equals(field)) { extractors.put(field, new IncrementExtractor()); } @@ -819,7 +820,7 @@ public class MessageProvider extends ContentProvider { MessageColumns.SUBJECT, MessageColumns.PREVIEW, MessageColumns.ACCOUNT, - MessageColumns.READED, + MessageColumns.UNREAD, MessageColumns.URI, MessageColumns.DELETE_URI }; From 37ae2e41f536a360cf86a4d0083393b540dd73ba Mon Sep 17 00:00:00 2001 From: Vitaly Polonetsky Date: Thu, 5 May 2011 04:25:58 +0800 Subject: [PATCH 140/310] fixed displaying of "(null)" account description in notification at account setup wizard --- src/com/fsck/k9/controller/MessagingController.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/com/fsck/k9/controller/MessagingController.java b/src/com/fsck/k9/controller/MessagingController.java index f37b89318..e05654b1c 100644 --- a/src/com/fsck/k9/controller/MessagingController.java +++ b/src/com/fsck/k9/controller/MessagingController.java @@ -3982,7 +3982,8 @@ public class MessagingController implements Runnable { Intent i = FolderList.actionHandleNotification(context, account, message.getFolder().getName()); PendingIntent pi = PendingIntent.getActivity(context, 0, i, 0); - String accountNotice = context.getString(R.string.notification_new_one_account_fmt, unreadCount, account.getDescription()); + String accountDescr = (account.getDescription() != null) ? account.getDescription() : account.getEmail(); + String accountNotice = context.getString(R.string.notification_new_one_account_fmt, unreadCount, accountDescr); notif.setLatestEventInfo(context, accountNotice, messageNotice, pi); // Only ring or vibrate if we have not done so already on this From 870791958f707a3df7a672ea382f84e47c0db081 Mon Sep 17 00:00:00 2001 From: Koji Arai Date: Thu, 5 May 2011 07:06:29 +0900 Subject: [PATCH 141/310] Refresh folder list when folder is cleared --- src/com/fsck/k9/activity/FolderList.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/com/fsck/k9/activity/FolderList.java b/src/com/fsck/k9/activity/FolderList.java index 09c55a976..30b0ed706 100644 --- a/src/com/fsck/k9/activity/FolderList.java +++ b/src/com/fsck/k9/activity/FolderList.java @@ -487,6 +487,7 @@ public class FolderList extends K9ListActivity { } } + onRefresh(!REFRESH_REMOTE); } From 67b2921bcf58a80c7e32e14a5d82469561a09e37 Mon Sep 17 00:00:00 2001 From: cketti Date: Wed, 4 May 2011 23:45:54 +0200 Subject: [PATCH 142/310] Replaced tabs with spaces --- res/values/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 8458b0b1c..4f496e6b0 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1041,7 +1041,7 @@ Welcome to K-9 Mail setup. K-9 is an open source mail client for Android origin Account \"%s\" is unavailable; check storage - Save attachments to... - Save attachment - No file browser found. Where would you like to save this attachment? + Save attachments to... + Save attachment + No file browser found. Where would you like to save this attachment? From bb4da9a8bad22099fc87305a98ce7512a6a59f59 Mon Sep 17 00:00:00 2001 From: cketti Date: Thu, 5 May 2011 00:08:09 +0200 Subject: [PATCH 143/310] Added placeholders for newly added string to translations --- res/values-ca/strings.xml | 3 +++ res/values-cs/strings.xml | 3 +++ res/values-de/strings.xml | 3 +++ res/values-es/strings.xml | 3 +++ res/values-fi/strings.xml | 3 +++ res/values-gl/strings.xml | 3 +++ res/values-it/strings.xml | 3 +++ res/values-nl/strings.xml | 3 +++ res/values-pl/strings.xml | 3 +++ res/values-pt-rBR/strings.xml | 3 +++ res/values-ru/strings.xml | 3 +++ res/values-sv/strings.xml | 3 +++ res/values-zh-rCN/strings.xml | 3 +++ 13 files changed, 39 insertions(+) diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml index 5aea00067..46b74b95e 100644 --- a/res/values-ca/strings.xml +++ b/res/values-ca/strings.xml @@ -1040,4 +1040,7 @@ Benvingut a la configuració del K-9. El K-9 és un client de codi obert per An Compte \"%s\" no és disponible; comprova emmagatzematge + + + diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml index beeb45308..feeb968e2 100644 --- a/res/values-cs/strings.xml +++ b/res/values-cs/strings.xml @@ -1047,4 +1047,7 @@ Vítejte v nastavení pošty K-9 Mail. K-9 je open source poštovní klient pro + + + diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index 06c0bd1e3..7003a790f 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -1037,4 +1037,7 @@ Willkommen zum \"K-9 Mail\"-Setup. K-9 ist eine quelloffene E-Mail-Anwendung fü Konto \"%s\" ist nicht verfügbar; Bitte SD-Karte prüfen. + + + diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index 08c5a51d7..267874dc2 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -1037,4 +1037,7 @@ Bienvenido a la Configuración de K-9. K-9 es un cliente de correo OpenSource pa + + + diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml index bf46e58ea..1417f417b 100644 --- a/res/values-fi/strings.xml +++ b/res/values-fi/strings.xml @@ -1034,4 +1034,7 @@ Tervetuloa K-9 Mail asennukseen.  K-9 on avoimen lähdekoodin sähköpostiasiak + + + diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml index ddafeafcb..111a5ab19 100644 --- a/res/values-gl/strings.xml +++ b/res/values-gl/strings.xml @@ -1037,4 +1037,7 @@ Benvido á Configuración de K-9. K-9 é un cliente de correo OpenSource para An A conta \"%s\" non está dispoñible; verifica o almacenamento + + + diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index e4b8dbb9a..f6ed42781 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -1041,4 +1041,7 @@ Benvenuto nella configurazione della posta di K-9. K-9 è un client di posta ope + + + diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml index fbbd28747..32aed4154 100644 --- a/res/values-nl/strings.xml +++ b/res/values-nl/strings.xml @@ -1037,4 +1037,7 @@ Welkom bij K-9 Mail setup. K-9 is een open source mail cliënt voor Android, ge + + + diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index 330e0ad55..6cd8251f9 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -1049,4 +1049,7 @@ Witaj w K-9 Mail, darmowym programie pocztowym dla systemu Android. Najistotniej Konto \"%s\" jest niedostępne; sprawdź pamięc + + + diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml index 985402e68..f14f57657 100644 --- a/res/values-pt-rBR/strings.xml +++ b/res/values-pt-rBR/strings.xml @@ -1034,4 +1034,7 @@ Bem-vindo à configuração do K-9 Mail. K-9 é um cliente de e-mail com código + + + diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index 385ba22fe..ced8e0123 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -1031,4 +1031,7 @@ + + + diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml index fe28f9f1c..afbcbd5d4 100644 --- a/res/values-sv/strings.xml +++ b/res/values-sv/strings.xml @@ -1040,4 +1040,7 @@ Välkommen till installationen av K-9 E-post. K-9 är en e-postklient med öppen + + + diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index c431f76dd..645aa8ff7 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -1021,4 +1021,7 @@ + + + From 50b6d621699265f450c638989e00fe4501186962 Mon Sep 17 00:00:00 2001 From: jmccabe Date: Thu, 5 May 2011 00:10:50 +0800 Subject: [PATCH 144/310] Refactor of showFileBrowserActivity to add a couple of extra options to the list of possible file browser intents (ES File Explorer and Blackmoon File Browser) and simplify possible future updates. --- src/com/fsck/k9/helper/FileBrowserHelper.java | 50 ++++++++++++------- 1 file changed, 32 insertions(+), 18 deletions(-) diff --git a/src/com/fsck/k9/helper/FileBrowserHelper.java b/src/com/fsck/k9/helper/FileBrowserHelper.java index caf7f55cc..3293a80d0 100644 --- a/src/com/fsck/k9/helper/FileBrowserHelper.java +++ b/src/com/fsck/k9/helper/FileBrowserHelper.java @@ -48,7 +48,7 @@ public class FileBrowserHelper { /** * tries to open known filebrowsers. * If no filebrowser is found and fallback textdialog is shown - * @param c the context as activty + * @param c the context as activity * @param startPath: the default value, where the filebrowser will start. * if startPath = null => the default path is used * @param requestcode: the int you will get as requestcode in onActivityResult @@ -62,27 +62,41 @@ public class FileBrowserHelper { * */ public boolean showFileBrowserActivity(Activity c, File startPath, int requestcode, FileBrowserFailOverCallback callback) { - boolean success = false; - Intent intent = new Intent("org.openintents.action.PICK_DIRECTORY"); - if (startPath == null) - startPath = new File(K9.getAttachmentDefaultPath()); - if (startPath != null) - intent.setData(Uri.fromFile(startPath)); + // A string array that specifies the name of the intent to use, and + // the scheme to use with it when setting the data for the intent. + String[][] intentDetails = + { { "org.openintents.action.PICK_DIRECTORY", "file://" }, // OI File Manager (maybe others) + { "com.androidworkz.action.PICK_DIRECTORY", "file://" }, // SystemExplorer + { "com.estrongs.action.PICK_DIRECTORY", "file://" }, // ES File Explorer + { Intent.ACTION_PICK, "folder://" } }; // Blackmoon File Browser (maybe others) - try { - c.startActivityForResult(intent, requestcode); - success = true; - } catch (ActivityNotFoundException e) { - try { - intent = new Intent("com.androidworkz.action.PICK_DIRECTORY"); + boolean success = false; + + if (startPath == null) { + startPath = new File(K9.getAttachmentDefaultPath()); + } + + int listIndex = 0; + do { + Intent intent = new Intent(intentDetails[listIndex][0]); + if (startPath != null) { + intent.setData(Uri.parse(intentDetails[listIndex][1] + startPath.getPath())); + } + try { c.startActivityForResult(intent, requestcode); success = true; - } catch (ActivityNotFoundException ee) { - //No Filebrowser is installed => show an fallback textdialog - showPathTextInput(c, startPath, callback); - return false; - } + } catch (ActivityNotFoundException e) { + // Try the next intent in the list + listIndex++; + }; + } while (!success && (listIndex < intentDetails.length)); + + if (listIndex == intentDetails.length) { + //No Filebrowser is installed => show a fallback textdialog + showPathTextInput(c, startPath, callback); + success = false; } + return success; } From 837b7da2067720519b9813017a62b5a0b85a5817 Mon Sep 17 00:00:00 2001 From: cketti Date: Thu, 5 May 2011 02:36:15 +0200 Subject: [PATCH 145/310] Changed order of pick directory intents --- src/com/fsck/k9/helper/FileBrowserHelper.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/com/fsck/k9/helper/FileBrowserHelper.java b/src/com/fsck/k9/helper/FileBrowserHelper.java index 3293a80d0..f5ea6c4f8 100644 --- a/src/com/fsck/k9/helper/FileBrowserHelper.java +++ b/src/com/fsck/k9/helper/FileBrowserHelper.java @@ -62,13 +62,13 @@ public class FileBrowserHelper { * */ public boolean showFileBrowserActivity(Activity c, File startPath, int requestcode, FileBrowserFailOverCallback callback) { - // A string array that specifies the name of the intent to use, and - // the scheme to use with it when setting the data for the intent. - String[][] intentDetails = - { { "org.openintents.action.PICK_DIRECTORY", "file://" }, // OI File Manager (maybe others) - { "com.androidworkz.action.PICK_DIRECTORY", "file://" }, // SystemExplorer - { "com.estrongs.action.PICK_DIRECTORY", "file://" }, // ES File Explorer - { Intent.ACTION_PICK, "folder://" } }; // Blackmoon File Browser (maybe others) + // A string array that specifies the name of the intent to use, and + // the scheme to use with it when setting the data for the intent. + String[][] intentDetails = + { { "org.openintents.action.PICK_DIRECTORY", "file://" }, // OI File Manager (maybe others) + { "com.estrongs.action.PICK_DIRECTORY", "file://" }, // ES File Explorer + { Intent.ACTION_PICK, "folder://" }, // Blackmoon File Browser (maybe others) + { "com.androidworkz.action.PICK_DIRECTORY", "file://" }}; // SystemExplorer boolean success = false; From 141e2d2ad91c89ecad67c45dd587bca9ac96ae77 Mon Sep 17 00:00:00 2001 From: cketti Date: Thu, 5 May 2011 02:52:47 +0200 Subject: [PATCH 146/310] Make the "pick directory intent" array a constant --- src/com/fsck/k9/helper/FileBrowserHelper.java | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/com/fsck/k9/helper/FileBrowserHelper.java b/src/com/fsck/k9/helper/FileBrowserHelper.java index f5ea6c4f8..2ef2c78e9 100644 --- a/src/com/fsck/k9/helper/FileBrowserHelper.java +++ b/src/com/fsck/k9/helper/FileBrowserHelper.java @@ -15,6 +15,16 @@ import com.fsck.k9.K9; import com.fsck.k9.R; public class FileBrowserHelper { + /** + * A string array that specifies the name of the intent to use, and the scheme to use with it + * when setting the data for the intent. + */ + private static final String[][] PICK_DIRECTORY_INTENTS = + { { "org.openintents.action.PICK_DIRECTORY", "file://" }, // OI File Manager (maybe others) + { "com.estrongs.action.PICK_DIRECTORY", "file://" }, // ES File Explorer + { Intent.ACTION_PICK, "folder://" }, // Blackmoon File Browser (maybe others) + { "com.androidworkz.action.PICK_DIRECTORY", "file://" }}; // SystemExplorer + private static FileBrowserHelper sInstance; /** @@ -62,14 +72,6 @@ public class FileBrowserHelper { * */ public boolean showFileBrowserActivity(Activity c, File startPath, int requestcode, FileBrowserFailOverCallback callback) { - // A string array that specifies the name of the intent to use, and - // the scheme to use with it when setting the data for the intent. - String[][] intentDetails = - { { "org.openintents.action.PICK_DIRECTORY", "file://" }, // OI File Manager (maybe others) - { "com.estrongs.action.PICK_DIRECTORY", "file://" }, // ES File Explorer - { Intent.ACTION_PICK, "folder://" }, // Blackmoon File Browser (maybe others) - { "com.androidworkz.action.PICK_DIRECTORY", "file://" }}; // SystemExplorer - boolean success = false; if (startPath == null) { @@ -78,9 +80,11 @@ public class FileBrowserHelper { int listIndex = 0; do { - Intent intent = new Intent(intentDetails[listIndex][0]); + String intentAction = PICK_DIRECTORY_INTENTS[listIndex][0]; + String uriPrefix = PICK_DIRECTORY_INTENTS[listIndex][1]; + Intent intent = new Intent(intentAction); if (startPath != null) { - intent.setData(Uri.parse(intentDetails[listIndex][1] + startPath.getPath())); + intent.setData(Uri.parse(uriPrefix + startPath.getPath())); } try { c.startActivityForResult(intent, requestcode); @@ -89,9 +93,9 @@ public class FileBrowserHelper { // Try the next intent in the list listIndex++; }; - } while (!success && (listIndex < intentDetails.length)); + } while (!success && (listIndex < PICK_DIRECTORY_INTENTS.length)); - if (listIndex == intentDetails.length) { + if (listIndex == PICK_DIRECTORY_INTENTS.length) { //No Filebrowser is installed => show a fallback textdialog showPathTextInput(c, startPath, callback); success = false; From 71c5e3c611cc9482e5dcea61790bcd9183eab88c Mon Sep 17 00:00:00 2001 From: cketti Date: Thu, 5 May 2011 02:54:20 +0200 Subject: [PATCH 147/310] Remove unnecessary null pointer check --- src/com/fsck/k9/helper/FileBrowserHelper.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/com/fsck/k9/helper/FileBrowserHelper.java b/src/com/fsck/k9/helper/FileBrowserHelper.java index 2ef2c78e9..3c8634c57 100644 --- a/src/com/fsck/k9/helper/FileBrowserHelper.java +++ b/src/com/fsck/k9/helper/FileBrowserHelper.java @@ -83,9 +83,8 @@ public class FileBrowserHelper { String intentAction = PICK_DIRECTORY_INTENTS[listIndex][0]; String uriPrefix = PICK_DIRECTORY_INTENTS[listIndex][1]; Intent intent = new Intent(intentAction); - if (startPath != null) { - intent.setData(Uri.parse(uriPrefix + startPath.getPath())); - } + intent.setData(Uri.parse(uriPrefix + startPath.getPath())); + try { c.startActivityForResult(intent, requestcode); success = true; From 3fcca67ae504ee43e59492593fa9ece16fa5e415 Mon Sep 17 00:00:00 2001 From: Andrew Chen Date: Wed, 4 May 2011 23:33:22 -0700 Subject: [PATCH 148/310] Preserve legacy SMTP authentication behavior for PLAIN by trying LOGIN if supported. --- .../fsck/k9/mail/transport/SmtpTransport.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/com/fsck/k9/mail/transport/SmtpTransport.java b/src/com/fsck/k9/mail/transport/SmtpTransport.java index bb31409be..45f218191 100644 --- a/src/com/fsck/k9/mail/transport/SmtpTransport.java +++ b/src/com/fsck/k9/mail/transport/SmtpTransport.java @@ -273,7 +273,22 @@ public class SmtpTransport extends Transport { Log.d(K9.LOG_TAG, "Using PLAIN as authentication method although the " + "server didn't advertise support for it in EHLO response."); } - saslAuthPlain(mUsername, mPassword); + try { + saslAuthPlain(mUsername, mPassword); + } catch(MessagingException ex) { + // PLAIN is a special case. Historically, PLAIN has represented both PLAIN and LOGIN; only the + // protocol being advertised by the server would be used, with PLAIN taking precedence. Instead + // of using only the requested protocol, we'll try PLAIN and then try LOGIN. + if (useAuthPlain && authLoginSupported) { + if (K9.DEBUG && K9.DEBUG_PROTOCOL_SMTP) { + Log.d(K9.LOG_TAG, "Using legacy PLAIN authentication behavior and trying LOGIN."); + } + saslAuthLogin(mUsername, mPassword); + } else { + // If it was auto detected and failed, continue throwing the exception back up. + throw ex; + } + } } else if (useAuthLogin || (useAutomaticAuth && authLoginSupported)) { if (!authPlainSupported && K9.DEBUG && K9.DEBUG_PROTOCOL_SMTP) { Log.d(K9.LOG_TAG, "Using LOGIN as authentication method although the " + From 1ea27d7020ab4f4338e52f838111cbe53fd7924e Mon Sep 17 00:00:00 2001 From: Andrew Chen Date: Thu, 5 May 2011 00:17:34 -0700 Subject: [PATCH 149/310] Issue 3105: Generate proper HTML-ified versions of text messages so that textification of the HTMLified text message preserves the original newlines. --- src/com/fsck/k9/helper/HtmlConverter.java | 48 ++++++++++++++++++++--- 1 file changed, 42 insertions(+), 6 deletions(-) diff --git a/src/com/fsck/k9/helper/HtmlConverter.java b/src/com/fsck/k9/helper/HtmlConverter.java index f4135138d..1282bd985 100644 --- a/src/com/fsck/k9/helper/HtmlConverter.java +++ b/src/com/fsck/k9/helper/HtmlConverter.java @@ -123,6 +123,43 @@ public class HtmlConverter { private static final int MAX_SMART_HTMLIFY_MESSAGE_LENGTH = 1024 * 256 ; + /** + * Naively convert a text string into an HTML document. This method avoids using regular expressions on the entire + * message body to save memory. + * @param text Plain text string. + * @return HTML string. + */ + private static String simpleTextToHtml(String text) { + // Encode HTML entities to make sure we don't display something evil. + text = TextUtils.htmlEncode(text); + + StringReader reader = new StringReader(text); + StringBuilder buff = new StringBuilder(text.length() + TEXT_TO_HTML_EXTRA_BUFFER_LENGTH); + buff.append(""); + + int c; + try { + while ((c = reader.read()) != -1) { + switch (c) { + case '\n': + buff.append("
    \n"); + break; + case '\r': + break; + default: + buff.append((char)c); + }//switch + } + } catch (IOException e) { + //Should never happen + Log.e(K9.LOG_TAG, "Could not read string to convert text to HTML:", e); + } + + buff.append(""); + + return buff.toString(); + } + /** * Convert a text string into an HTML document. Attempts to do smart replacement for large * documents to prevent OOM errors. This method adds headers and footers to create a proper HTML @@ -136,11 +173,7 @@ public class HtmlConverter { // if the message is big and plain text, just do // a trivial htmlification if (text.length() > MAX_SMART_HTMLIFY_MESSAGE_LENGTH) { - return "" + - htmlifyMessageHeader() + - text + - htmlifyMessageFooter() + - ""; + return simpleTextToHtml(text); } StringReader reader = new StringReader(text); StringBuilder buff = new StringBuilder(text.length() + TEXT_TO_HTML_EXTRA_BUFFER_LENGTH); @@ -148,6 +181,9 @@ public class HtmlConverter { try { while ((c = reader.read()) != -1) { switch (c) { + case '\n': + buff.append("
    \n"); + break; case '&': buff.append("&"); break; @@ -1076,7 +1112,7 @@ public class HtmlConverter { final String font = K9.messageViewFixedWidthFont() ? "monospace" : "sans-serif"; - return "
    ";
    +        return "
    ";
         }
     
         private static String htmlifyMessageFooter() {
    
    From 196a9c167de165c9d34471e8caed7120b603074d Mon Sep 17 00:00:00 2001
    From: Jesse Vincent 
    Date: Thu, 5 May 2011 12:47:39 -0400
    Subject: [PATCH 150/310] comment some preview regexes
    
    ---
     src/com/fsck/k9/mail/store/LocalStore.java | 10 +++++++++-
     1 file changed, 9 insertions(+), 1 deletion(-)
    
    diff --git a/src/com/fsck/k9/mail/store/LocalStore.java b/src/com/fsck/k9/mail/store/LocalStore.java
    index 31d6c8987..7e85bae70 100644
    --- a/src/com/fsck/k9/mail/store/LocalStore.java
    +++ b/src/com/fsck/k9/mail/store/LocalStore.java
    @@ -2705,13 +2705,21 @@ public class LocalStore extends Store implements Serializable {
                     text = text.substring(0, 8192);
                 }
     
    -
    +            // try to remove lines of dashes in the preview
                 text = text.replaceAll("(?m)^----.*?$", "");
    +            // remove quoted text from the preview
                 text = text.replaceAll("(?m)^[#>].*$", "");
    +            // Remove a common quote header from the preview
                 text = text.replaceAll("(?m)^On .*wrote.?$", "");
    +            // Remove a more generic quote header from the preview
                 text = text.replaceAll("(?m)^.*\\w+:$", "");
    +
    +            // URLs in the preview should just be shown as "..." - They're not
    +            // clickable and they usually overwhelm the preview
                 text = text.replaceAll("https?://\\S+", "...");
    +            // Don't show newlines in the preview
                 text = text.replaceAll("(\\r|\\n)+", " ");
    +            // Collapse whitespace in the preview
                 text = text.replaceAll("\\s+", " ");
                 if (text.length() <= 512) {
                     return text;
    
    From 8a907f9be74143b99b0976d041f53273f66260ec Mon Sep 17 00:00:00 2001
    From: Jesse Vincent 
    Date: Thu, 5 May 2011 12:47:57 -0400
    Subject: [PATCH 151/310] remove a pointless extra assignment
    
    ---
     src/com/fsck/k9/mail/store/LocalStore.java | 3 +--
     1 file changed, 1 insertion(+), 2 deletions(-)
    
    diff --git a/src/com/fsck/k9/mail/store/LocalStore.java b/src/com/fsck/k9/mail/store/LocalStore.java
    index 7e85bae70..b2ed1069f 100644
    --- a/src/com/fsck/k9/mail/store/LocalStore.java
    +++ b/src/com/fsck/k9/mail/store/LocalStore.java
    @@ -2724,8 +2724,7 @@ public class LocalStore extends Store implements Serializable {
                 if (text.length() <= 512) {
                     return text;
                 } else {
    -                text = text.substring(0, 512);
    -                return text;
    +                return text.substring(0, 512);
                 }
     
             }
    
    From cfd1ad7cdbb4133566b1089261bd78f769763de9 Mon Sep 17 00:00:00 2001
    From: Jesse Vincent 
    Date: Thu, 5 May 2011 12:50:45 -0400
    Subject: [PATCH 152/310] comment some htmlifciation regexes
    
    ---
     src/com/fsck/k9/helper/HtmlConverter.java | 6 ++++++
     1 file changed, 6 insertions(+)
    
    diff --git a/src/com/fsck/k9/helper/HtmlConverter.java b/src/com/fsck/k9/helper/HtmlConverter.java
    index 1282bd985..5ea30e59c 100644
    --- a/src/com/fsck/k9/helper/HtmlConverter.java
    +++ b/src/com/fsck/k9/helper/HtmlConverter.java
    @@ -204,8 +204,14 @@ public class HtmlConverter {
                 Log.e(K9.LOG_TAG, "Could not read string to convert text to HTML:", e);
             }
             text = buff.toString();
    +
    +        // Replace lines of -,= or _ with horizontal rules
             text = text.replaceAll("\\s*([-=_]{30,}+)\\s*", "
    "); + + // TODO: reverse engineer (or troll history) and document text = text.replaceAll("(?m)^([^\r\n]{4,}[\\s\\w,:;+/])(?:\r\n|\n|\r)(?=[a-z]\\S{0,10}[\\s\\n\\r])", "$1 "); + + // Compress four or more newlines down to two newlines text = text.replaceAll("(?m)(\r\n|\n|\r){4,}", "\n\n"); StringBuffer sb = new StringBuffer(text.length() + TEXT_TO_HTML_EXTRA_BUFFER_LENGTH); From 723b20a7f670f065ba1e7bede6867923a75b7c88 Mon Sep 17 00:00:00 2001 From: kris kechagia Date: Thu, 5 May 2011 21:24:11 +0200 Subject: [PATCH 153/310] removed empty, non-localized strings --- res/layout/message_compose.xml | 2 -- 1 file changed, 2 deletions(-) diff --git a/res/layout/message_compose.xml b/res/layout/message_compose.xml index 7d9120cde..66f0de097 100644 --- a/res/layout/message_compose.xml +++ b/res/layout/message_compose.xml @@ -152,7 +152,6 @@ Date: Thu, 5 May 2011 21:24:39 +0200 Subject: [PATCH 154/310] added libraries to Android.mk --- Android.mk | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/Android.mk b/Android.mk index 5fbfacca1..a17c75e68 100644 --- a/Android.mk +++ b/Android.mk @@ -1,10 +1,33 @@ LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) +LOCAL_STATIC_JAVA_LIBRARIES += libcore +LOCAL_STATIC_JAVA_LIBRARIES += libdom +LOCAL_STATIC_JAVA_LIBRARIES += libio +LOCAL_STATIC_JAVA_LIBRARIES += libjutf +LOCAL_STATIC_JAVA_LIBRARIES += libjzlib + LOCAL_MODULE_TAGS := eng LOCAL_SRC_FILES := $(call all-subdir-java-files) +LOCAL_SDK_VERSION := current + LOCAL_PACKAGE_NAME := Email include $(BUILD_PACKAGE) +################################################## +include $(CLEAR_VARS) + +LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += libcore:libs/apache-mime4j-core-0.7-SNAPSHOT.jar +LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += libdom:libs/apache-mime4j-dom-0.7-SNAPSHOT.jar +LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += libio:libs/commons-io-2.0.1.jar +LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += libjutf:libs/jutf7-1.0.1-SNAPSHOT.jar +LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += libjzlib:libs/jzlib-1.0.7.jar + +include $(BUILD_MULTI_PREBUILT) + + +# Use the folloing include to make our test apk. +include $(call all-makefiles-under,$(LOCAL_PATH)) + From e12dd323f8e56a0af75534919507e3860405ec7c Mon Sep 17 00:00:00 2001 From: Andrew Chen Date: Thu, 5 May 2011 13:52:28 -0700 Subject: [PATCH 155/310] Issue 3105: Drop newlines in favor of preserving multiple spaces in htmlified text bodies. --- src/com/fsck/k9/helper/HtmlConverter.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/com/fsck/k9/helper/HtmlConverter.java b/src/com/fsck/k9/helper/HtmlConverter.java index 5ea30e59c..fefa22d2c 100644 --- a/src/com/fsck/k9/helper/HtmlConverter.java +++ b/src/com/fsck/k9/helper/HtmlConverter.java @@ -142,7 +142,9 @@ public class HtmlConverter { while ((c = reader.read()) != -1) { switch (c) { case '\n': - buff.append("
    \n"); + // pine treats
    as two newlines, but
    as one newline. Use
    so our messages aren't + // doublespaced. + buff.append("
    "); break; case '\r': break; @@ -182,7 +184,9 @@ public class HtmlConverter { while ((c = reader.read()) != -1) { switch (c) { case '\n': - buff.append("
    \n"); + // pine treats
    as two newlines, but
    as one newline. Use
    so our messages aren't + // doublespaced. + buff.append("
    "); break; case '&': buff.append("&"); @@ -1118,7 +1122,7 @@ public class HtmlConverter { final String font = K9.messageViewFixedWidthFont() ? "monospace" : "sans-serif"; - return "
    ";
    +        return "
    ";
         }
     
         private static String htmlifyMessageFooter() {
    
    From 824c8c89bb272fd2c5733e145c84d7dc02cf9781 Mon Sep 17 00:00:00 2001
    From: Jesse Vincent 
    Date: Thu, 5 May 2011 23:10:33 -0400
    Subject: [PATCH 156/310] 3.900 version bumping
    
    ---
     AndroidManifest.xml | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/AndroidManifest.xml b/AndroidManifest.xml
    index 4285bdcba..6a425013d 100644
    --- a/AndroidManifest.xml
    +++ b/AndroidManifest.xml
    @@ -1,8 +1,8 @@
     
     
         
    Date: Thu, 5 May 2011 23:12:18 -0400
    Subject: [PATCH 157/310] Bumped manifest to 3.900
    
    ---
     AndroidManifest.xml | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/AndroidManifest.xml b/AndroidManifest.xml
    index 6a425013d..241f78786 100644
    --- a/AndroidManifest.xml
    +++ b/AndroidManifest.xml
    @@ -1,7 +1,7 @@
     
     
         
    Date: Fri, 6 May 2011 20:02:55 +0200
    Subject: [PATCH 158/310] Avoid NullPointerException for messages with
     html_content = NULL in DB
    
    Fixes issue 3302
    ---
     src/com/fsck/k9/mail/store/LocalStore.java | 18 ++++++++++--------
     1 file changed, 10 insertions(+), 8 deletions(-)
    
    diff --git a/src/com/fsck/k9/mail/store/LocalStore.java b/src/com/fsck/k9/mail/store/LocalStore.java
    index b2ed1069f..ad487af06 100644
    --- a/src/com/fsck/k9/mail/store/LocalStore.java
    +++ b/src/com/fsck/k9/mail/store/LocalStore.java
    @@ -2425,16 +2425,18 @@ public class LocalStore extends Store implements Serializable {
                                                              { Long.toString(messageId) }, null, null, null);
                                     try {
                                         if (cursor.moveToNext()) {
    -                                        String new_html;
    +                                        String htmlContent = cursor.getString(0);
     
    -                                        new_html = cursor.getString(0);
    -                                        new_html = new_html.replaceAll(Pattern.quote("cid:" + contentId),
    -                                                                       contentUri.toString());
    +                                        if (htmlContent != null) {
    +                                            String newHtmlContent = htmlContent.replaceAll(
    +                                                    Pattern.quote("cid:" + contentId),
    +                                                    contentUri.toString());
     
    -                                        ContentValues cv = new ContentValues();
    -                                        cv.put("html_content", new_html);
    -                                        db.update("messages", cv, "id = ?", new String[]
    -                                                  { Long.toString(messageId) });
    +                                            ContentValues cv = new ContentValues();
    +                                            cv.put("html_content", newHtmlContent);
    +                                            db.update("messages", cv, "id = ?", new String[]
    +                                                      { Long.toString(messageId) });
    +                                        }
                                         }
                                     } finally {
                                         if (cursor != null) {
    
    From 92ea452163551a4a7bfc8a8e6316271b2f359657 Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Sat, 7 May 2011 23:57:47 +0200
    Subject: [PATCH 159/310] Restore hardcoded Outbox
    
    ---
     src/com/fsck/k9/Account.java                        | 10 +---------
     src/com/fsck/k9/K9.java                             | 10 +++++-----
     src/com/fsck/k9/activity/setup/AccountSettings.java |  2 +-
     src/com/fsck/k9/mail/store/WebDavStore.java         |  3 +++
     4 files changed, 10 insertions(+), 15 deletions(-)
    
    diff --git a/src/com/fsck/k9/Account.java b/src/com/fsck/k9/Account.java
    index 9dd61ba9d..67d2b4f2f 100644
    --- a/src/com/fsck/k9/Account.java
    +++ b/src/com/fsck/k9/Account.java
    @@ -86,7 +86,6 @@ public class Account implements BaseAccount {
         private String mTrashFolderName;
         private String mArchiveFolderName;
         private String mSpamFolderName;
    -    private String mOutboxFolderName;
         private String mAutoExpandFolderName;
         private FolderMode mFolderDisplayMode;
         private FolderMode mFolderSyncMode;
    @@ -255,7 +254,6 @@ public class Account implements BaseAccount {
             mTrashFolderName = prefs.getString(mUuid  + ".trashFolderName", "Trash");
             mArchiveFolderName = prefs.getString(mUuid  + ".archiveFolderName", "Archive");
             mSpamFolderName = prefs.getString(mUuid  + ".spamFolderName", "Spam");
    -        mOutboxFolderName = prefs.getString(mUuid + ".outboxFolderName", "Outbox");
             mExpungePolicy = prefs.getString(mUuid  + ".expungePolicy", EXPUNGE_IMMEDIATELY);
             mSyncRemoteDeletions = prefs.getBoolean(mUuid  + ".syncRemoteDeletions", true);
     
    @@ -398,7 +396,6 @@ public class Account implements BaseAccount {
             editor.remove(mUuid + ".trashFolderName");
             editor.remove(mUuid + ".archiveFolderName");
             editor.remove(mUuid + ".spamFolderName");
    -        editor.remove(mUuid + ".outboxFolderName");
             editor.remove(mUuid + ".autoExpandFolderName");
             editor.remove(mUuid + ".accountNumber");
             editor.remove(mUuid + ".vibrate");
    @@ -496,7 +493,6 @@ public class Account implements BaseAccount {
             editor.putString(mUuid + ".trashFolderName", mTrashFolderName);
             editor.putString(mUuid + ".archiveFolderName", mArchiveFolderName);
             editor.putString(mUuid + ".spamFolderName", mSpamFolderName);
    -        editor.putString(mUuid + ".outboxFolderName", mOutboxFolderName);
             editor.putString(mUuid + ".autoExpandFolderName", mAutoExpandFolderName);
             editor.putInt(mUuid + ".accountNumber", mAccountNumber);
             editor.putString(mUuid + ".hideButtonsEnum", mScrollMessageViewButtons.name());
    @@ -831,11 +827,7 @@ public class Account implements BaseAccount {
         }
     
         public synchronized String getOutboxFolderName() {
    -        return mOutboxFolderName;
    -    }
    -
    -    public synchronized void setOutboxFolderName(String outboxFolderName) {
    -        mOutboxFolderName = outboxFolderName;
    +        return K9.OUTBOX;
         }
     
         public synchronized String getAutoExpandFolderName() {
    diff --git a/src/com/fsck/k9/K9.java b/src/com/fsck/k9/K9.java
    index 8f8892522..364c5188c 100644
    --- a/src/com/fsck/k9/K9.java
    +++ b/src/com/fsck/k9/K9.java
    @@ -144,6 +144,11 @@ public class K9 extends Application {
         public static boolean ENABLE_ERROR_FOLDER = true;
         public static String ERROR_FOLDER_NAME = "K9mail-errors";
     
    +    /**
    +     * This local folder is used to store messages to be sent.
    +     */
    +    public static final String OUTBOX = "OUTBOX";
    +
     
         private static boolean mAnimations = true;
     
    @@ -217,11 +222,6 @@ public class K9 extends Application {
          */
         public static final String INBOX = "INBOX";
     
    -    /**
    -     * This local folder is used to store messages to be sent.
    -     */
    -    public static final String OUTBOX = "OUTBOX";
    -
         /**
          * For use when displaying that no folder is selected
          */
    diff --git a/src/com/fsck/k9/activity/setup/AccountSettings.java b/src/com/fsck/k9/activity/setup/AccountSettings.java
    index 69f35cb6e..3a67198fb 100644
    --- a/src/com/fsck/k9/activity/setup/AccountSettings.java
    +++ b/src/com/fsck/k9/activity/setup/AccountSettings.java
    @@ -873,7 +873,7 @@ public class AccountSettings extends K9PreferenceActivity {
                 Iterator  iter = folders.iterator();
                 while (iter.hasNext()) {
                     Folder folder = iter.next();
    -                if (mAccount.getOutboxFolderName() != null && mAccount.getOutboxFolderName().equalsIgnoreCase(folder.getName())) {
    +                if (mAccount.getOutboxFolderName().equals(folder.getName())) {
                         iter.remove();
                     }
                 }
    diff --git a/src/com/fsck/k9/mail/store/WebDavStore.java b/src/com/fsck/k9/mail/store/WebDavStore.java
    index 69d788c89..0f8714a36 100644
    --- a/src/com/fsck/k9/mail/store/WebDavStore.java
    +++ b/src/com/fsck/k9/mail/store/WebDavStore.java
    @@ -272,9 +272,12 @@ public class WebDavStore extends Store {
             if (folderName != null)
                 mAccount.setSpamFolderName(folderName);
     
    +        // K-9 Mail's outbox is a special local folder and different from Exchange/WebDAV's outbox.
    +        /*
             folderName = getFolderName(specialFoldersMap.get(DAV_MAIL_OUTBOX_FOLDER));
             if (folderName != null)
                 mAccount.setOutboxFolderName(folderName);
    +        */
     
             folderName = getFolderName(specialFoldersMap.get(DAV_MAIL_SENT_FOLDER));
             if (folderName != null)
    
    From f4931a3167268bafef6fdd43e62bf4a190fde5f7 Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Sun, 8 May 2011 02:17:23 +0200
    Subject: [PATCH 160/310] Get rid of constant K9.INBOX
    
    Use Account.getInboxFolderName() instead
    ---
     src/com/fsck/k9/Account.java                   | 13 +++++++++----
     src/com/fsck/k9/K9.java                        |  6 ------
     src/com/fsck/k9/activity/ActivityListener.java |  3 +--
     3 files changed, 10 insertions(+), 12 deletions(-)
    
    diff --git a/src/com/fsck/k9/Account.java b/src/com/fsck/k9/Account.java
    index 67d2b4f2f..256a31793 100644
    --- a/src/com/fsck/k9/Account.java
    +++ b/src/com/fsck/k9/Account.java
    @@ -33,6 +33,11 @@ import java.util.concurrent.ConcurrentHashMap;
      * and delete itself given a Preferences to work with. Each account is defined by a UUID.
      */
     public class Account implements BaseAccount {
    +    /**
    +     * Default value for the inbox folder (never changes for POP3 and IMAP)
    +     */
    +    public static final String INBOX = "INBOX";
    +
         public static final String EXPUNGE_IMMEDIATELY = "EXPUNGE_IMMEDIATELY";
         public static final String EXPUNGE_MANUALLY = "EXPUNGE_MANUALLY";
         public static final String EXPUNGE_ON_POLL = "EXPUNGE_ON_POLL";
    @@ -181,8 +186,8 @@ public class Account implements BaseAccount {
             mEnableMoveButtons = false;
             mIsSignatureBeforeQuotedText = false;
             mExpungePolicy = EXPUNGE_IMMEDIATELY;
    -        mAutoExpandFolderName = K9.INBOX;
    -        mInboxFolderName = K9.INBOX;
    +        mAutoExpandFolderName = INBOX;
    +        mInboxFolderName = INBOX;
             mMaxPushFolders = 10;
             mChipColor = (new Random()).nextInt(0xffffff) + 0xff000000;
             goToUnreadMessageSearch = false;
    @@ -248,7 +253,7 @@ public class Account implements BaseAccount {
             mNotifySelfNewMail = prefs.getBoolean(mUuid + ".notifySelfNewMail", true);
             mNotifySync = prefs.getBoolean(mUuid + ".notifyMailCheck", false);
             mDeletePolicy = prefs.getInt(mUuid + ".deletePolicy", 0);
    -        mInboxFolderName = prefs.getString(mUuid  + ".inboxFolderName", K9.INBOX);
    +        mInboxFolderName = prefs.getString(mUuid  + ".inboxFolderName", INBOX);
             mDraftsFolderName = prefs.getString(mUuid  + ".draftsFolderName", "Drafts");
             mSentFolderName = prefs.getString(mUuid  + ".sentFolderName", "Sent");
             mTrashFolderName = prefs.getString(mUuid  + ".trashFolderName", "Trash");
    @@ -273,7 +278,7 @@ public class Account implements BaseAccount {
                 compressionMap.put(type, useCompression);
             }
     
    -        mAutoExpandFolderName = prefs.getString(mUuid  + ".autoExpandFolderName", K9.INBOX);
    +        mAutoExpandFolderName = prefs.getString(mUuid  + ".autoExpandFolderName", INBOX);
     
             mAccountNumber = prefs.getInt(mUuid + ".accountNumber", 0);
     
    diff --git a/src/com/fsck/k9/K9.java b/src/com/fsck/k9/K9.java
    index 364c5188c..84f62a054 100644
    --- a/src/com/fsck/k9/K9.java
    +++ b/src/com/fsck/k9/K9.java
    @@ -216,12 +216,6 @@ public class K9 extends Application {
         public static final String[] UNACCEPTABLE_ATTACHMENT_DOWNLOAD_TYPES = new String[] {
         };
     
    -    /**
    -     * The special name "INBOX" is used throughout the application to mean "Whatever folder
    -     * the server refers to as the user's Inbox. Placed here to ease use.
    -     */
    -    public static final String INBOX = "INBOX";
    -
         /**
          * For use when displaying that no folder is selected
          */
    diff --git a/src/com/fsck/k9/activity/ActivityListener.java b/src/com/fsck/k9/activity/ActivityListener.java
    index 6fbfaec16..58c6eed77 100644
    --- a/src/com/fsck/k9/activity/ActivityListener.java
    +++ b/src/com/fsck/k9/activity/ActivityListener.java
    @@ -6,7 +6,6 @@ import android.content.Context;
     
     import com.fsck.k9.Account;
     import com.fsck.k9.AccountStats;
    -import com.fsck.k9.K9;
     import com.fsck.k9.R;
     import com.fsck.k9.controller.MessagingListener;
     import com.fsck.k9.service.MailService;
    @@ -35,7 +34,7 @@ public class ActivityListener extends MessagingListener {
     
                 if (mLoadingFolderName != null || mLoadingHeaderFolderName != null) {
                     String displayName = mLoadingFolderName;
    -                if (K9.INBOX.equalsIgnoreCase(displayName)) {
    +                if (mAccount.getInboxFolderName().equalsIgnoreCase(displayName)) {
                         displayName = context.getString(R.string.special_mailbox_name_inbox);
                     } else if ((mAccount != null) && mAccount.getOutboxFolderName().equals(displayName)) {
                         displayName = context.getString(R.string.special_mailbox_name_outbox);
    
    From 8e1c4acef943efe52e24c38c9a1e8586e5f53312 Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Sun, 8 May 2011 02:22:38 +0200
    Subject: [PATCH 161/310] Get rid of constant K9.OUTBOX
    
    Use Account.getOutboxFolderName() instead (still hardcoded, though)
    ---
     src/com/fsck/k9/Account.java              | 7 ++++++-
     src/com/fsck/k9/K9.java                   | 6 ------
     src/com/fsck/k9/mail/store/ImapStore.java | 2 +-
     3 files changed, 7 insertions(+), 8 deletions(-)
    
    diff --git a/src/com/fsck/k9/Account.java b/src/com/fsck/k9/Account.java
    index 256a31793..7508e87cb 100644
    --- a/src/com/fsck/k9/Account.java
    +++ b/src/com/fsck/k9/Account.java
    @@ -38,6 +38,11 @@ public class Account implements BaseAccount {
          */
         public static final String INBOX = "INBOX";
     
    +    /**
    +     * This local folder is used to store messages to be sent.
    +     */
    +    public static final String OUTBOX = "OUTBOX";
    +
         public static final String EXPUNGE_IMMEDIATELY = "EXPUNGE_IMMEDIATELY";
         public static final String EXPUNGE_MANUALLY = "EXPUNGE_MANUALLY";
         public static final String EXPUNGE_ON_POLL = "EXPUNGE_ON_POLL";
    @@ -832,7 +837,7 @@ public class Account implements BaseAccount {
         }
     
         public synchronized String getOutboxFolderName() {
    -        return K9.OUTBOX;
    +        return OUTBOX;
         }
     
         public synchronized String getAutoExpandFolderName() {
    diff --git a/src/com/fsck/k9/K9.java b/src/com/fsck/k9/K9.java
    index 84f62a054..0c5da2007 100644
    --- a/src/com/fsck/k9/K9.java
    +++ b/src/com/fsck/k9/K9.java
    @@ -144,12 +144,6 @@ public class K9 extends Application {
         public static boolean ENABLE_ERROR_FOLDER = true;
         public static String ERROR_FOLDER_NAME = "K9mail-errors";
     
    -    /**
    -     * This local folder is used to store messages to be sent.
    -     */
    -    public static final String OUTBOX = "OUTBOX";
    -
    -
         private static boolean mAnimations = true;
     
         private static boolean mConfirmDelete = false;
    diff --git a/src/com/fsck/k9/mail/store/ImapStore.java b/src/com/fsck/k9/mail/store/ImapStore.java
    index 4eeb3bea0..56e0f8a52 100644
    --- a/src/com/fsck/k9/mail/store/ImapStore.java
    +++ b/src/com/fsck/k9/mail/store/ImapStore.java
    @@ -398,7 +398,7 @@ public class ImapStore extends Store {
     
                     if (folder.equalsIgnoreCase(mAccount.getInboxFolderName())) {
                         continue;
    -                } else if (folder.equalsIgnoreCase(K9.OUTBOX)) {
    +                } else if (folder.equals(mAccount.getOutboxFolderName())) {
                         /*
                          * There is a folder on the server with the same name as our local
                          * outbox. Until we have a good plan to deal with this situation
    
    From 806e2094bcbde3525125f403087f0c340d8ae804 Mon Sep 17 00:00:00 2001
    From: sunglim 
    Date: Sun, 8 May 2011 12:56:40 +0900
    Subject: [PATCH 162/310] strings.xml
    
    ---
     res/values-ko/strings.xml | 1038 +++++++++++++++++++++++++++++++++++++
     1 file changed, 1038 insertions(+)
     create mode 100644 res/values-ko/strings.xml
    
    diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
    new file mode 100644
    index 000000000..d820e7a3f
    --- /dev/null
    +++ b/res/values-ko/strings.xml
    @@ -0,0 +1,1038 @@
    +
    +
    +    K-9 메일
    +    K-9 메일 베타
    +    Authors: %s
    +    http://code.google.com/p/k9mail/wiki/ReleaseNotes
    +    수정 정보: %s
    +    http://code.google.com/p/k9mail/
    +    K-9 메일은 아래의 서드파티 라이브러리를 이용합니다 : %s
    +    Emoji 아이콘: %s
    +    
    +    첨부 읽기
    +    K-9이 이메일의 첨부를 읽도록 합니다
    +    이메일 읽기
    +    K-9이 이메일을 읽도록 합니다.
    +    이메일 삭제
    +    K-9이 이메일을 삭제하도록 합니다
    +    
    +     정보 %s
    +    계정
    +    고급
    +    %s 
    +    K-9 계정
    +    
    +      %s:%s 
    +
    +    쓰기
    +    디버그
    +    폴더 선택
    +    색 선택
    +
    +    %s%s%s
    +
    +    \u0020[%d]
    +    \u0020(수신 %s:%s%s)
    +    \u0020(헤더정보를 가져오는 중 %s:%s%s)
    +    \u0020(보내는 중 %s%s)
    +    \u0020(Proc %s:%s%s)
    +    \u0020%s/%s
    +
    +    \u0020(다음 수신 @ %s)
    +    \u0020(동기화 불가능)
    +
    +    
    +    다음 
    +    이전 
    +    OK 
    +    취소
    +    전송
    +    재전송
    +    선택
    +    선택 해제
    +    회신
    +    전체회신
    +    지우기
    +    보관
    +    스팸
    +    폴더 비우기
    +    전달
    +    이동
    +    계속
    +    완료 
    +    삭제
    +    버리기
    +    임시 보관함에 저장
    +    재시도
    +    새로 읽기
    +    새로고침
    +    메시지 보내기
    +    폴더 목록
    +    폴더 다시읽기
    +    모든 편지를 읽음으로 표시
    +    계정 추가
    +    작성
    +    검색
    +    검색 결과
    +    설정
    +    열기
    +    계정 설정
    +    폴더 설정
    +    환경 설정
    +    계정 삭제
    +    예정된 작업 없애기(위험!)
    +    
    +    계정
    +    
    +    
    +    읽기
    +    읽은 메일로 표시
    +    공유
    +    발신자 선택
    +
    +    모든 편지를 읽음으로 표시
    +    \'%s\' 폴더의 모든 메시지를 읽음으로 표시하시겠습니까?  (K-9에서 보여지지 않은 폴더의 메시지포함)
    +
    +    별표 붙이기
    +    별표 삭제
    +    복사
    +    헤더 보기
    +    헤더 숨기기
    +    텍스트 선택
    +
    +    읽지 않은 메일로 표시
    +    다음으로 이동
    +    폴더
    +    세부내용 보기/숨기기 
    +    참조/숨은참조 추가
    +    제목 수정
    +    첨부 추가
    +    첨부 추가 (이미지)
    +    첨부 추가 (비디오)
    +    Dump settings
    +    휴지통 비우기
    +    삭제(expunge)
    +    로컬 메시지 삭제
    +    정렬방식 선택
    +    반대로 정렬
    +    About
    +
    +    설정
    +    계정 옵션
    +    폴더 옵션
    +
    +    (제목 없음) 
    +    날짜 없음
    +    보낸이 없음
    +    수신중
    +    (수신 %s%s)
    +    로딩중..\u2026
    +    연결 오류
    +    메시지를 찾을 수 없습니다
    +    오류 
    +    보내는 중 
    +
    +    메시지 로딩 실패
    +
    +    %d개 더 읽기
    +
    +    GB
    +    MB
    +    KB
    +    B
    +
    +    
    +    \"%s\" 계정이 차지하는 용량이
    +    %s
    +    에서
    +    %s 로 줄었습니다
    +    
    +
    +    계정 최적화(compact) \"%s\"
    +    계정 비우기(clearing) \"%s\"
    +    계정 재생성 \"%s\"
    +
    +    새 이메일
    +    새 이메일 %s
    +    %d 개 읽지 않음 (%s) 
    +    %d 개 새 이메일 (%s) 
    +    in %d accounts
    +    메시지가 전송되지 않았습니다
    +
    +    메일 체크중: %s:%s
    +    메일 체크중
    +    메일 전송중: %s
    +    메일 전송중
    +    :
    +
    +    받은 메일함
    +    보낸 메일함
    +    
    +    임시 메일함
    +    휴지통
    +    보낸 메일함
    +    보관
    +    스팸메일함
    +    
    +
    +    %s (임시보관함)
    +    %s (Trash)
    +    %s (Sent)
    +    %s (Archive)
    +    %s (Spam)
    +
    +    일부 메시지를 보내는데 실패하였습니다
    +    %s 폴더 자세히 보기
    +    K-9에서 메시지를 보내는데 문제가 발생하였습니다.
    +    하지만 문제의 특성상 K-9은 메시지가 확실히 보내졌는지 여부를 확인할 수 없습니다. 
    +	수신자는 이미 메시지를 받았을 수도 있습니다.
    +    \u000a\u000a발생된 문제 유형의 메시지는 보낸편지함에 별표(started) 표시되었습니다.
    +    이 별표를 없애면 K-9은 메시지를 재전송을 시도할것입니다.
    +	다른 발신 작업을 하기위해서는 보낸편지함을 길게 눌러 메시지 보내기를 찾으십시오.\u000A\u000a
    +	%s 폴더에 실패에 대한 에러메시지가 있습니다.
    +
    +    K-9 알람
    +    네트워크 문제로 동기화, 메일보내기가 지연되고있습니다.
    +
    +    더 이상 없음
    +
    +    
    +K-9 메일 설치를 환영합니다.  K-9은 안드로이드용 오픈소스 메일 클라이언트로 표준 안드로이드 메일 클라이언트를 기반으로 하였습니다.
    +\n
    +\n\nK-9\'s 향상된 기능:
    +\n * IMAP IDLE를 이용한 메일 푸시(PUSH)기능
    +\n * 더 나은 성능
    +\n * 메시지 재정리
    +\n * 이메일 서명
    +\n * Bcc-to-self
    +\n * 폴더 구독
    +\n * 모든 폴더 동기화
    +\n * 회신주소 수정
    +\n * 키보드 단축
    +\n * 더 나은 IMAP 지원
    +\n * SD 카드에 첨부파일 저장
    +\n * 휴지통 비우기
    +\n * 메시지 정렬
    +\n * ...그리고 그 밖에
    +\n
    +\nK-9 메일은 다른 메일 클라이언트와 마찬가지로 대부분의 무료 hotmail 계정을 Microsoft Exchange와 연결할때 발생되는 문제로 인해 지원하지 않습니다. 
    +\n
    +\n 버그 리포트, 새로운 기능 그리고 질문에 대한 문의는 http://k9mail.googlecode.com/ 로 남겨주시기바랍니다.
    +
    +
    +
    +    Version: %s
    +    버그 정보 기록
    +    추가적인 정보를 기록합니다.
    +    중요 정보 기록
    +    로그에 비밀번호를 남길수도 있습니다.
    +
    +    안드로이드용 K-9 메일 
    +
    +    모든 메일
    +    모든 계정의 모든 메시지
    +    받은 편지함의 모든 메일 
    +
    +    %s:%s
    +                       %s
    +                       %s
    +                       %s
    +                       %s
    +    메시지 추가 로드
    +    To:%s
    +    지우기
    +    읽음으로 표시
    +    읽지 않음으료 표시
    +    별표 더하기
    +    별표 지우기
    +
    +    받는 사람
    +    참조
    +    숨은 참조
    +    제목
    +    내용
    +    -------- 원본 메시지 --------
    +    제목:
    +    보낸날짜:
    +    보낸 사람:
    +    받는 사람:
    +    참조:
    +    %s wrote:\n\n
    +    Quoted text
    +    한명 이상의 받는 사람을 입력하십시오.
    +    이메일 주소를 찾을 수 없습니다.
    +    일부 첨부파일을 다운로드 할 수 없습니다. 이 메시지가 보내지기 이전에 자동적으로 다운로드 됩니다.
    +    다운로드 완료되지않은 일부 첨부파일을 보낼수 없습니다.
    +
    +
    +
    +    발신자: %s <%s>
    +    수신자:
    +    참조:
    +    열기
    +    저장
    +    \u25BC
    +    \u25B2
    +    보관
    +    이동
    +    스팸
    +    MMM dd yyyy hh:mm a
    +    첨부파일이 SD카드에 %s 로 저장되었습니다.
    +    첨부파일을 SD카드에 저장할 수 없습니다.
    +    포함된 그림을 보기위해서는  \"그림 보기\" 버튼을 누르십시오.
    +    그림 보기
    +    첨부파일 가져오는 중.
    +    %s에 대한 뷰어를 찾을 수 없습니다.
    +
    +
    +    다운로드 완료 메시지
    +
    +    
    +    모든 헤더의 다운로드 혹은 저장이 완료 되지않았습니다. Select \"Save all headers locally\" in the account\'s incoming server settings to enable this for the future.
    +    모든 헤더의 다운로드 완료되었습니다. 더이상 보여줄 추가적인 헤더정보가 없습니다.
    +    이 데이터베이스 혹은 메일서버에서 추가적인 헤더 정보를 가져오는데 실패.
    +
    +    폴더
    +    새 폴더
    +
    +    새 폴더 이름
    +
    +    (Push)
    +
    +    이 발신자에 대한 추가작업
    +
    +    복사됨
    +    이동됨
    +    삭제됨
    +    버려짐
    +    임시보관함에 저장되었습니다
    +    삭제 실패
    +
    +    About %s
    +    버전: %s
    +
    +
    +    별표 보기
    +    체크된 메시지 별표하기
    +    체크박스 여러게 선택하기
    +    여러게 선택하기를 항상보여줍니다.
    +    메시지 미리보기
    +    메시지 미리보기 목록의 각 항목을 더 넓게
    +    미리보기 라인
    +    발신자 이름을 보여줌
    +    이메일 주소를 보여주지않고 발신자 이름을 보여줌
    +    주소록(Contact) 이름 보기
    +    받는사람 이름을 주소록(Contact)에서 가져옵니다.
    +    주소록 색표시
    +    주소록(Contact) 목록에 있는 이름에 색표시 하지않음
    +    주소록(Contact) 목록에 있는 이름에 색표시
    +
    +    고정 넓이 폰트
    +    일반텍스트(Plain) 메시지를 보여줄때 고정 넓이 폰트사용
    +    삭제후 목록으로
    +    메시지 삭제후에 메시지 목록으로 되돌아갑니다.
    +
    +    동작시 행동
    +    설정한 행동을 할 경우 확인창을 보여줍니다.
    +    보관
    +    삭제 (message view only)
    +    스팸
    +    모든 편지를 읽음으로 표시
    +    보내기
    +
    +    잠긴화면에서 알림
    +    화면이 잠겨있을경우 메시지 수신시 제목을 화면에 보여주지 않습니다.
    +
    +
    +    무음 시간
    +    벨소리, 부져, 플래쉬를 밤시간에 사용하지않습니다
    +    무음 시작 시간
    +    무음 끝나는 시간
    +
    +
    +    계정 추가
    +    이메일 계정을 입력하시오:
    +    (%d개의 계정을 추가하였습니다.)
    +    이메일 주소
    +    %s 유효하지 않은 이메일 주소입니다.
    +    %s는 이미 등록되있습니다.
    +    비밀번호
    +    기본 이메일로 설정
    +    수동 설정
    +
    +    
    +    계정 정보 복구\u2026
    +    받기 서버 설정 확인중\u2026
    +    보내기 서버 설정 확인중\u2026
    +    인증중\u2026
    +    계정설정 가져오기\u2026
    +    완료중\u2026
    +    취소중\u2026
    +
    +    거의 완료되었습니다!
    +    계정이 설정되었습니다. 순조롭게 진행중입니다!
    +    이 계정의 이름을 입력 (옵션):
    +    이름 입력 (보내는 메시지에 표시 될 이름):
    +
    +    계정 설정완료!\n\메일을 가져오는중\u2026
    +
    +    계정 종류
    +    계정 유형을 선택하시오.
    +    POP3
    +    IMAP
    +    Exchange (WebDAV)
    +
    +    받기 서버 설정
    +    아이디
    +    비밀번호
    +    POP3 서버
    +    IMAP 서버
    +    Exchange 서버
    +    포트 번호
    +    보안 연결
    +    인증 방식
    +    없음
    +    SSL (유효할경우)
    +    SSL (항상)
    +    TLS (유효할경우)
    +    TLS (항상)
    +
    +    메시지 삭제시
    +    서버에는 메일을 삭제하지않음
    +    7일 이후
    +    서버에도 메일 삭제
    +    서버에 읽은 메일로 표시
    +
    +    네트워크상에서 압축 사용:
    +    Mobile
    +    Wi-Fi
    +    Other
    +
    +    헤더정보 다운로드
    +    모든 메시지의 헤더정보를 로컬에 저장
    +
    +    외부 저장장치(SD card)
    +    일반적인 내부 저장장치
    +    %1$s 추가적인 내부 저장장치
    +    저장 위치
    +
    +    삭제된 메시지를 없앰(Expunge)
    +    즉시
    +    수신시(poll)
    +    항상 수동적으로
    +
    +    IMAP path prefix
    +    (NAMESPACE가 이용가능할경우 자동으로 이용)
    +
    +    임시보관함 폴더
    +    보낸 편지함 폴더
    +    휴지통 폴더
    +    보관 폴더
    +    스팸 폴더
    +
    +    설정한 폴더만 보기
    +    폴더 자동 펼치기
    +
    +    OWA 경로
    +    옵션
    +
    +    인증 경로
    +    옵션
    +    Mailbox alias
    +    옵션
    +
    +    보내기 서버 설정
    +    SMTP 서버
    +    포트번호
    +    보안 유형
    +    없음
    +    SSL
    +    TLS (유효할 경우)
    +    TLS (항상)
    +    sign-in 필요.
    +    이름
    +    비밀번호
    +    인증 유형
    +    
    +    아이디 & 비밀번호
    +    아이디
    +    비밀번호
    +    POP before SMTP
    +    IMAP before SMTP
    +    WebDAV (Exchange) before SMTP
    +
    +    잘못된 설정: %s
    +
    +    계정 옵션
    +
    +    최적화
    +    편지 비우기 (위험!)
    +    데이터 재생성 (Last Resort!)
    +
    +    폴더 수신(poll) 빈도
    +    
    +    하지않음
    +    매 1분 마다
    +    매 5분 마다
    +    매 10분 마다
    +    매 15분 마다
    +    매 30분 마다
    +    매 시간 마다
    +    2시간 마다
    +    3시간 마다
    +    6시간 마다
    +    12시간 마다
    +    24시간 마다
    +
    +    push접속시 수신
    +    이 계정의 메일에 대해 push 하도록함
    +    만약 해당 계정서버가 push를 지원할경우 새로운 메시지가 있을경우 바로 보여질것입니다. 이  기능은 성능을 매우 향상시킬수 있습니다.
    +    IDLE 연결을 재생(refresh)
    +    매 1분 마다
    +    매 2분 마다
    +    매 3분 마다
    +    매 6분 마다
    +    매 12분 마다
    +    매 24분 마다
    +    매 36분 마다
    +    매 48분 마다
    +    매 60분 마다
    +
    +    보내기 기본 계정으로 사용합니다.
    +    메일 도착시 알림
    +    메일 확인시 알림
    +
    +    
    +    화면에 보여질 메시지 수
    +    10 메시지
    +    25 메시지
    +    50 메시지
    +    100 메시지
    +    250 메시지
    +    500 메시지
    +    1000 메시지
    +    모든 메시지
    +
    +
    +    서버와 동기화 되지않은 메시지를 복사하거나 이동할 수 없습니다.
    +
    +    설정이 완료되지 않았습니다
    +    아이디 혹은 비밀번호가 틀림.\n(%s) 
    +    서버에 안전하게 연결할 수 없습니다.\n(%s) 
    +    서버에 연결할 수 없습니다.\n(%s) 
    +    내용 수정
    +    계속
    +
    +    고급
    +    계정 설정
    +    기본 계정
    +    기본 계정
    +    보내기 기본 계정으로 사용합니다.
    +    새 메일 알림
    +    동기화 알림
    +    당신의 이메일 주소
    +    메일 도착시 상태바에 표시
    +    동기화 확인중일때 상태바에 표시
    +    Show combined Inbox
    +    보낸편지함 포함
    +    내가 보낸 메시지에대해 알림 보기
    +    읽지 않은 메일에 대해 알림
    +    알림표시 가능상태일 때 읽지 않은 메일에 대해 찾습니다
    +    읽지 않은 메일 수 세기
    +    읽지 않은 메시지의 수를 상태바에 보여줍니다.
    +
    +    네비게이션 버튼을 스크롤
    +    하지않음
    +    키보드를 이용가능할 경우
    +    항상
    +
    +    재정리(refile) 버튼 활성화
    +    보관, 이동, 스팸 버튼을 보이기
    +    재정리(refile) 보튼을 스크롤
    +
    +    항상 그림 보기
    +    아니오
    +    주소록에 등록된 경우
    +    항상
    +
    +    메일 보내기
    +
    +    Reply after quoted text
    +    메시지 회신시 원본 메시지를 회신메시지에 포함시킵니다.
    +
    +    메시지 형식
    +    일반 텍스트(Plain) (이미지와 꾸밈format은 없어집니다)
    +    HTML (이미지와 꾸밈format이 보존됩니다)
    +
    +    회신시 인용문 위치
    +    Prefix (Gmail, Pine 처럼)
    +    Header (Outlook, Yahoo!, Hotmail 처럼)
    +
    +    일반 설정
    +    화면
    +    메일 가져오기
    +    폴더
    +    메시지 목록
    +    메시지 보기
    +    본문 앞에
    +    암호화 방법
    +    OpenPGP Provider
    +    없음
    +    이용 불가
    +    Auto-sign
    +    계정의 이메일 주소를 서명키를 추측할 수 있도록 사용.
    +
    +    폴더 수신(poll) 빈도
    +    2nd class check frequency
    +
    +    저장장치
    +
    +
    +    계정 색깔
    +    계정 목록과 폴더내에서 사용될 계정 색깔을 선택하시오.
    +
    +    알림 LED 색깔
    +    이 계정에 대해 깜빡일 LED 색을 선택하시오.
    +
    +    로컬 폴더 용량
    +
    +    가져올 메시지 최대용량
    +    1Kb
    +    2Kb
    +    4Kb
    +    8Kb
    +    16Kb
    +    32Kb
    +    64Kb
    +    128Kb
    +    256Kb
    +    512Kb
    +    1Mb
    +    2Mb
    +    any size (제한없음)
    +
    +    메시지 동기화 기간
    +    모두 (제한없음)
    +    오늘
    +    최근 2일
    +    최근 3일
    +    최근 1주
    +    최근 2주
    +    최근 3주
    +    최근 1달
    +    최근 2달
    +    최근 3달
    +    최근 6달
    +    최근 1년
    +
    +
    +    보여질 폴더
    +    모든 폴더
    +    Only 1st Class folders
    +    1st and 2nd Class folders
    +    All except 2nd Class folders
    +
    +    폴링(Poll)할 폴더Poll
    +    모든 폴더
    +    Only 1st Class folders
    +    1st and 2nd Class folders
    +    All except 2nd Class folders
    +    없음
    +
    +    푸시(Push)할 폴더
    +    모든 폴더
    +    Only 1st Class folders
    +    1st and 2nd Class folders
    +    All except 2nd Class folders
    +    없음
    +
    +    이동/복사 메시지가 저장될 폴더
    +    모든 폴더
    +    Only 1st Class folders
    +    1st and 2nd Class folders
    +    All except 2nd Class folders
    +
    +    서버에서의 삭제 동기화
    +    서버에서 메시지가 삭제되있을 경우 메시지를 삭제합니다
    +
    +    폴더 설정
    +
    +    첫번째 그룹에 보여짐
    +    폴더 목록의 가장 위에 보여짐
    +
    +    폴더 디스플레이 클래스(Class)
    +    없음
    +    1st Class
    +    2nd Class
    +
    +    폴더 동기화 클래스(Class)
    +    없음
    +    1st Class
    +    2nd Class
    +    Same as display class
    +
    +    폴더 푸시(Push) 클래스(Class)
    +    없음
    +    1st Class
    +    2nd Class
    +    동기화 클래스와 같음
    +
    +    받기 서버
    +    메일 받기 서버 수정
    +    보내기 서버
    +    메일 보내기서버(SMTP) 수정
    +    Add another account
    +    계정 이름
    +    당신의 이름
    +    통지
    +    메일 도착시 벨울림
    +    진동
    +    메일 도착시 진동
    +    진동 패턴
    +    기본
    +    패턴 1
    +    패턴 2
    +    패턴 3
    +    패턴 4
    +    패턴 5
    +    진동 반복
    +    새로운 메일 벨울림
    +    LED 깜빡임
    +    메일 도착시 LED를 깜빡입니다.
    +
    +
    +    서버 설정
    +
    +    메시지 작성 옵션
    +    메시지 작성 기본값
    +     기본 발신자, 숨은참조, 서명을 설정
    +
    +    내 정보 관리
    +    Set up alternate \'From\' addresses and signatures
    +
    +    신원(Identities) 관리
    +
    +    신원(Identity) 관리
    +
    +    신원(Identity) 수정
    +    새로운 신원(Identity)
    +
    +    모든 메시지를 비밀첨부 보냄
    +    이 주소로 보내는 모든 메시지의 복사본을 전달합니다
    +
    +    수정
    +    위로 이동
    +    아래로 이동
    +    맨위로 이동 / 기본값으로 함
    +    제거
    +
    +    이 항목(Identity) 설명
    +    (Optional)
    +    이름
    +    (옵션)
    +    이메일 주소
    +    (필수)
    +    회신(reply-to) 주소
    +    (옵션)
    +    서명
    +    (옵션)
    +
    +    서명 사용
    +    서명
    +    모든 보내는 메시지에 서명을 사용합니다
    +
    +    -- \nSent from my Android phone with K-9 Mail. Please excuse my brevity.
    +    초기 발신자
    +    발신자 선택
    +    발신자 선택
    +    계정을 선택하시오
    +    다른 계정으로 보내기
    +
    +
    +    신원 설정 가기 -> 새로운 신원(Identity) 생성을 위한 신원(Identity) 관리
    +    신원(Identity)를 제거할 수 없습니다.
    +    이메일 주소없이 신원(Identity)을 사용할 수 없습니다
    +    신원(Identity) 선택과 서명 변경은 임시 저장에서 제외됩니다
    +
    +    오래된 메시지를 순서
    +    최근 메시지 순서
    +    알파벳 순서
    +    알파벳 순서의 역순
    +    제목의 알파벳 순서
    +    제목의 알파벳 순서의 역순
    +    별표(stared) 메시지를 첫번째로
    +    별표아닌(unstarted) 메시지를 첫번째로
    +    읽지않은 메시지를 첫번째로
    +    읽은 메시지를 첫번째로
    +    첨부파일이 있는 메시지를 첫번째로
    +    첨부파일이 있는 메시지를 첫번째로
    +
    +    정렬
    +    날짜
    +    보낸이
    +    제목
    +    즐겨찾기
    +    읽음/읽지않음
    +    첨부
    +    %s
    +
    +    계정 삭제
    +    \"%s\" 계정이 K-9에서 삭제됩니다.
    +
    +    계정 재생성
    +    \"%s\"의 모든 데이타가 K-9에서 삭제됩니다. 하지만 계정 설정은 보존됩니다.
    +
    +    계정 비우기
    +    \"%s\"의 모든 메일이 K-9에서 삭제될것입니다. 하지만 계정 설정은 보존됩니다.
    +
    +	\"Plus\" 계정만이 이 프로그램을 POP 접근 하도록 허락합니다. 
    +	올바른 이메일 주소와 비밀번호로 로그인 실패할 경우 \"Plus\" 계정을 위해 유료전환 해야 할 것입니다. 
    +	웹브라우저를 통해 접근을 얻도록 하십시오	
    +		
    +    POP3를 이용하기위해서는 야휴 메일 설정페이지에서 POP3 이용을 설정하여야합니다.
    +
    +    잘못된 인증정보
    +    Accept Key
    +    Reject Key
    +
    +    Del (or D) - 삭제\u000AR -
    +    회신\u000AA - 전체 회신\u000AF - 전달\u000AJ or P - Previous
    +    메시지\u000AK, N - 다음 메시지\u000AM - 이동\u000AY - 복사\u000AZ - Zoom Out\u000AShift-Z -
    +    Zoom In\u000aG - Star
    +    Del (or D) - 삭제\u000AR -
    +    회신\u000AA - 전체 회신\u000AC - 작성\u000AF - 전달\u000aM -
    +    이동\u000AY - 복사\u000AG - Star\u000AO - Sort type\u000AI - 정렬 순서\u000AQ
    +    - 폴더로 돌아가기\u000AS - 선택/선택해제
    +
    +    
    +    1 - 첫 번째 클래스 폴더만 보기\u000A
    +    2 - 첫 번째, 두 번째 클레스(Class)를 제외하고 모두 보기\u000A
    +    3 - 두 번째 클레스(Class)를 제외하고 모두 보기\u000A
    +    4 - 모든 폴더 보기\u000A
    +    Q - 계정 변경\u000A
    +    S - 계정 설정 변경
    +
    +    폴더
    +    모든 폴더 표시
    +    Display only 1st Class folders
    +    Display 1st and 2nd Class folders
    +    Display all except 2nd Class folders
    +
    +
    +
    +    서명 위치
    +    본문 앞에
    +    본문 뒤에
    +    어두운 테마
    +    밝은 테마
    +    화면
    +    Global
    +    디버깅
    +    개인정보
    +    네트워크
    +    상호 작용(Interaction)
    +    계정 항목
    +    메시지 리스트
    +    메시지
    +    테마
    +    언어
    +
    +    Single-column layout
    +    작은 스크린에서 HTML 메시지를 다시만듬(reformat)
    +    시스템 줌 컨트롤
    +    Enable zoom widgets or pinch-zoom if your device supports it
    +
    +
    +
    +    시스템 기본값
    +
    +    벡그라운드 동기화
    +    절대 하지않음
    +    항상
    +    \'백그라운드 데이타\'가 선택된 경우
    +    \'백그라운드 데이타\'와 \'Auto-sync\'가 선택된 경우
    +
    +    아무 메시지도 선택되지않음
    +
    +    날짜 형식
    +    
    +    SHORT
    +    MEDIUM
    +    dd-MMM-yyyy
    +    yyyy-MM-dd
    +
    +    선택항목 일괄처리
    +    삭제
    +    읽음으로 표시
    +    읽지 않음으로 표시
    +    별표 추기
    +    별표 없애기
    +    보관(Archive)으로 이동
    +    스팸으로 이동
    +    이동(Move)
    +    복사
    +    별표(Star) 모드
    +    선택(Select) 모드
    +    일반(Plain)모드
    +    모두 선택
    +    선택 취소
    +
    +    Push 체크할 최대 폴더 수
    +    10개 폴더
    +    25개 폴더
    +    50개 폴더
    +    100개 폴더
    +    250개 폴더
    +    500개 폴더
    +    1000개 폴더
    +
    +    Animation
    +    Use gaudy visual effects
    +    제스쳐
    +    제스쳐를 이용합니다
    +
    +    레이아웃 최적화(Compact)
    +    각 페이지에 더 많은 내용을 보여주기위해 레이아웃을 조절
    +
    +    볼륨키 네비게이션
    +    볼륨키를 이용하여 메시지 목록의 각 항목을 넘김
    +    메시지 뷰
    +    다양한 리스트 뷰
    +
    +     \"뒤로\" 버튼 관리
    +    \"뒤로\" 버튼이 항상 위로
    +
    +    통합 메일함으로 시작
    +    통합 메일함을 시작시 보여줍니다
    +
    +    계정 용량을 보여줍니다
    +    빠른 처리를 위해 비활성화
    +
    +    검색 결과 카운트
    +    빠른 처리를 위해 비활성화
    +
    +    특정 계정 숨기기
    +    통합 이메일함과 모든 편지함 숨기기
    +
    +    %s %s
    +     - 별표 메일수
    +     - 읽지않은 메일수
    +
    +    모든 편지
    +    검색가능한 모든 편지
    +
    +    통합 이메일함
    +    통합된 폴더의 모든 이메일
    +
    +    Tap envelope or star for unread or starred messages
    +
    +    통합
    +    모든 메시지는 통합 이메일함에 보여집니다
    +
    +    찾을 폴더
    +    모두
    +    보여지는 폴더
    +    없음
    +
    +    K-9 메일 리모콘
    +    이 어플리케이션이 K-9 메일을 제어하고 설정하도록 함.
    +
    +    글씨 크기
    +    글씨 크기 수정
    +
    +    계정 리스트
    +    계정 이름
    +    계정 정보
    +
    +    폴더 리스트
    +    폴더 이름
    +    폴더 순위(status)
    +
    +    메시지 목록
    +    제목
    +    보낸이
    +    날짜
    +    미리보기
    +
    +    메시지
    +    보낸이
    +    받는이
    +    참조
    +    추가 헤더정보
    +    제목
    +    시간
    +    날짜
    +    내용
    +
    +    가장 작음
    +    매우 작음
    +    더 작게
    +    작게
    +    중간
    +    크게
    +    더 크게
    +
    +    가장 작음
    +    더 작게
    +    보통
    +    더 크게
    +    가장 크게
    +
    +    
    +    \"설정\" 확인 -> \"갤러리 버그 회피\" 갤러리 3D버그를 피해 이미지 혹은 비디오를 사용하기위함.
    +
    +    
    +    \"첨부 추가 (이미지)\" 혹은 \"첨부 추가 (비디오)\"를 Gallery 3D를 이용해서 이미지나 비디오를 보낼수 있습니다.
    +
    +    기타 설정
    +    갤러리 버그 회피
    +    이미지/비디오 첨부를 위한 버튼을 보여줍니다.(갤러리의 3D 버그를 회피하기위함)
    +
    +    
    +    이 작동에 대해 적절한 어플리케이션을 찾을 수 없습니다.
    +    설치된 APG 버전을 지원하지 않습니다.
    +    Sign
    +    암호화
    +    복호화
    +    인증(Verify)
    +    <알수없음>
    +    id: %s
    +    K-9 는 APG를 완벽하게 접근할 권한이 없습니다. K-9 재설치를 통해 고쳐질 수 있습니다.
    +    PGP/MIME 메시지는 아직 지원하지 않습니다.
    +    경고: 첨부파일이 아직 암호화 안 되었습니다
    +    보내기 실패.
    +
    +    임시보관함에 저장하시겠습니까?
    +    메시지를 저장하거나 버리하시겠습니까?
    +
    +    이 메시지를 보여드릴수 없습니다. charset \"%s\" 을 찾을 수 없습니다.
    +
    +    복사할 텍스트 선택.
    +
    +    삭제 확인
    +    이 메시지를 삭제하시겠습니까?
    +    삭제함
    +    삭제하지 않음
    +
    +    스팸폴더로 이동 확인
    +    정말 이 메시지를 스팸폴더로 옮기시겠습니까?
    +    
    +    아니오
    +
    +    첨부파일 다운로드중
    +
    +    디버그 로깅정보를 바탕으로 안드로이드 디버그 로깅 시스템 사용
    +
    +    »
    +    
    +    연결실패
    +
    +    \"%s\" 계정을 이용할 수 없습니다.; 저장장치를 확인하십시오.
    +
    +	첨부파일 저장위치
    +	첨부파일 저장
    +	파일 브라우져를 찾을 수 없습니다. 첨부파일을 저장할 경로를 입력하시오
    +
    
    From e0ef94f64b221a75643ff7436b4ce40b6dab050d Mon Sep 17 00:00:00 2001
    From: Marcus Wolschon 
    Date: Mon, 9 May 2011 11:21:24 +0200
    Subject: [PATCH 163/310] Issue 3319:  	 unseen message count can add up to
     infinity
    
    ---
     src/com/fsck/k9/activity/MessageView.java | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/src/com/fsck/k9/activity/MessageView.java b/src/com/fsck/k9/activity/MessageView.java
    index da64d2acf..eee9a9485 100644
    --- a/src/com/fsck/k9/activity/MessageView.java
    +++ b/src/com/fsck/k9/activity/MessageView.java
    @@ -823,7 +823,7 @@ public class MessageView extends K9Activity implements OnClickListener {
     
         private void onMarkAsUnread() {
             if (mMessage != null) {
    -            mController.setFlag(mAccount, mMessageReference.folderName, new String[] { mMessage.getUid() }, Flag.SEEN, false);
    +// (Issue 3319)            mController.setFlag(mAccount, mMessageReference.folderName, new String[] { mMessage.getUid() }, Flag.SEEN, false);
                 try {
                     mMessage.setFlag(Flag.SEEN, false);
                     mMessageView.setHeaders(mMessage, mAccount);
    
    From 1f62b8d945105c5fab7025a8337c4131a845b8f3 Mon Sep 17 00:00:00 2001
    From: sunglim 
    Date: Tue, 10 May 2011 15:09:11 +0900
    Subject: [PATCH 164/310] ko option
    
    ---
     res/values/arrays.xml | 1 +
     1 file changed, 1 insertion(+)
    
    diff --git a/res/values/arrays.xml b/res/values/arrays.xml
    index 645747228..97e8df20f 100644
    --- a/res/values/arrays.xml
    +++ b/res/values/arrays.xml
    @@ -501,6 +501,7 @@
             zh_CN
             fi
             sv
    +		ko
         
     
         
    
    From dfa1b290e748556dd040650e8fe294ef943c2d88 Mon Sep 17 00:00:00 2001
    From: sunglim 
    Date: Tue, 10 May 2011 15:13:04 +0900
    Subject: [PATCH 165/310] Korean Language Option
    
    ---
     res/values/arrays.xml | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/res/values/arrays.xml b/res/values/arrays.xml
    index 97e8df20f..68b88c018 100644
    --- a/res/values/arrays.xml
    +++ b/res/values/arrays.xml
    @@ -501,7 +501,7 @@
             zh_CN
             fi
             sv
    -		ko
    +        ko
         
     
         
    
    From e5d952bff4e5494145914eb60b48eee081f0bb33 Mon Sep 17 00:00:00 2001
    From: Andrew Chen 
    Date: Tue, 10 May 2011 15:23:25 -0700
    Subject: [PATCH 166/310] Save and restore the cursor position when saving or
     loading a draft.  This is the first step in making "resume composition on
     context switch" a reality.
    
    ---
     src/com/fsck/k9/activity/MessageCompose.java | 21 +++++++++++++++++++-
     1 file changed, 20 insertions(+), 1 deletion(-)
    
    diff --git a/src/com/fsck/k9/activity/MessageCompose.java b/src/com/fsck/k9/activity/MessageCompose.java
    index 0b6b39374..4b985e719 100644
    --- a/src/com/fsck/k9/activity/MessageCompose.java
    +++ b/src/com/fsck/k9/activity/MessageCompose.java
    @@ -1139,7 +1139,8 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
             NAME("n"),
             EMAIL("e"),
             // TODO - store a reference to the message being replied so we can mark it at the time of send.
    -        ORIGINAL_MESSAGE("m");
    +        ORIGINAL_MESSAGE("m"),
    +        CURSOR_POSITION("p");   // Where in the message your cursor was when you saved.
     
             private final String value;
     
    @@ -1202,6 +1203,8 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
                 uri.appendQueryParameter(IdentityField.ORIGINAL_MESSAGE.value(), mMessageReference.toIdentityString());
             }
     
    +        uri.appendQueryParameter(IdentityField.CURSOR_POSITION.value(), Integer.toString(mMessageContentView.getSelectionStart()));
    +
             String k9identity = IDENTITY_VERSION_1 + uri.build().getEncodedQuery();
     
             if (K9.DEBUG) {
    @@ -2047,6 +2050,15 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
                         }
                     }
     
    +                int cursorPosition = 0;
    +                if(k9identity.containsKey(IdentityField.CURSOR_POSITION)) {
    +                    try {
    +                        cursorPosition = Integer.valueOf(k9identity.get(IdentityField.CURSOR_POSITION)).intValue();
    +                    } catch(Exception e) {
    +                        Log.e(K9.LOG_TAG, "Could not parse cursor position for MessageCompose; continuing.", e);
    +                    }
    +                }
    +
                     mIdentity = newIdentity;
     
                     updateSignature();
    @@ -2151,6 +2163,13 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
                             Log.e(K9.LOG_TAG, "Unhandled message format.");
                         }
                     }
    +
    +                // Set the cursor position if we have it.
    +                try {
    +                    mMessageContentView.setSelection(cursorPosition);
    +                } catch(Exception e) {
    +                    Log.e(K9.LOG_TAG, "Could not set cursor position in MessageCompose; ignoring.", e);
    +                }
                 }
             } catch (MessagingException me) {
                 /**
    
    From eb83cfe1b5f5155793276c6b6be1d070c354fc94 Mon Sep 17 00:00:00 2001
    From: sunglim 
    Date: Thu, 12 May 2011 02:57:43 +0900
    Subject: [PATCH 167/310] add some Korean providers
    
    ---
     res/values-ko/strings.xml |  7 ++++++-
     res/values/strings.xml    |  5 +++++
     res/xml/providers.xml     | 27 +++++++++++++++++++++++++++
     3 files changed, 38 insertions(+), 1 deletion(-)
    
    diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
    index d820e7a3f..5ed4d832f 100644
    --- a/res/values-ko/strings.xml
    +++ b/res/values-ko/strings.xml
    @@ -790,7 +790,12 @@ K-9 메일 설치를 환영합니다.  K-9은 안드로이드용 오픈소스 
     	웹브라우저를 통해 접근을 얻도록 하십시오	
     		
         POP3를 이용하기위해서는 야휴 메일 설정페이지에서 POP3 이용을 설정하여야합니다.
    -
    +   
    +    IMAP/POP3를 이용하기위해서는 네이버 메일 설정페이지에서 IMAP/POP3 이용을 설정하여야합니다.
    +    IMAP/POP3을 이용하기위해서는 한메일 환경설정 페이지에서 IMAP/POP3 이용을 설정하여야합니다.
    +    IMAP/POP3을 이용하기위해서는 파란 메일 환경설정 페이지에서 IMAP/POP3 이용을 설정하여야합니다.
    +    IMAP/POP3을 이용하기위해서는 네이트 메일 환경설정 페이지에서 IMAP/POP3 이용을 설정하여야합니다.
    +    
         잘못된 인증정보
         Accept Key
         Reject Key
    diff --git a/res/values/strings.xml b/res/values/strings.xml
    index 4f496e6b0..fcdf3539a 100644
    --- a/res/values/strings.xml
    +++ b/res/values/strings.xml
    @@ -800,6 +800,11 @@ Welcome to K-9 Mail setup.  K-9 is an open source mail client for Android origin
     
         If you would like to use POP3 for this provider, You should permit to use POP3 on Yahoo mail settings page.
     
    +    If you would like to use IMAP or POP3 for this provider, You should permit to use IMAP or POP3 on Naver mail settings page.
    +    If you would like to use IMAP or POP3 for this provider, You should permit to use IMAP or POP3 on Hanmail(Daum) mail settings page.
    +    If you would like to use IMAP or POP3 for this provider, You should permit to use IMAP or POP3 on Paran mail settings page.
    +    If you would like to use IMAP or POP3 for this provider, You should permit to use IMAP or POP3 on Nate mail settings page.
    +    
         Unrecognized Certificate
         Accept Key
         Reject Key
    diff --git a/res/xml/providers.xml b/res/xml/providers.xml
    index aed1477a0..9a7ecc794 100644
    --- a/res/xml/providers.xml
    +++ b/res/xml/providers.xml
    @@ -276,6 +276,33 @@
             
         
     
    +   
    +    
    +        
    +        
    +    
    +    
    +        
    +        
    +    
    +    
    +        
    +        
    +    
    +    
    +        
    +        
    +    
    +    
    +        
    +        
    +    
    +    
         
         
             
    
    From 969e2d93fdc771a85fbf34b754eb179e303e442d Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Sat, 14 May 2011 04:53:17 +0200
    Subject: [PATCH 168/310] Don't use the "owner name" as default value for the
     email name
    
    Get rid of Contacts.getOwnerName() and associated permissions.
    
    Fixes issue 3331
    ---
     AndroidManifest.xml                           | 10 +++------
     .../k9/activity/setup/AccountSetupBasics.java | 13 +++---------
     src/com/fsck/k9/helper/Contacts.java          |  7 -------
     src/com/fsck/k9/helper/ContactsSdk3_4.java    | 21 -------------------
     src/com/fsck/k9/helper/ContactsSdk5.java      | 18 ----------------
     5 files changed, 6 insertions(+), 63 deletions(-)
    
    diff --git a/AndroidManifest.xml b/AndroidManifest.xml
    index 241f78786..faf568c95 100644
    --- a/AndroidManifest.xml
    +++ b/AndroidManifest.xml
    @@ -18,10 +18,6 @@
         
         
     
    -    
    -    
    -    
    -
         
         
     
    @@ -319,7 +315,7 @@
                   android:enabled="true"
                   >
                 
    -
                     
    -
    diff --git a/src/com/fsck/k9/activity/setup/AccountSetupBasics.java b/src/com/fsck/k9/activity/setup/AccountSetupBasics.java
    index 0bde132a1..2c31e1920 100644
    --- a/src/com/fsck/k9/activity/setup/AccountSetupBasics.java
    +++ b/src/com/fsck/k9/activity/setup/AccountSetupBasics.java
    @@ -18,7 +18,6 @@ import android.widget.CheckBox;
     import android.widget.EditText;
     import com.fsck.k9.*;
     import com.fsck.k9.activity.K9Activity;
    -import com.fsck.k9.helper.Contacts;
     import com.fsck.k9.helper.Utility;
     import java.io.Serializable;
     import java.io.UnsupportedEncodingException;
    @@ -134,17 +133,11 @@ public class AccountSetupBasics extends K9Activity
         private String getOwnerName() {
             String name = null;
             try {
    -            name = Contacts.getInstance(this).getOwnerName();
    +            name = getDefaultAccountName();
             } catch (Exception e) {
    -            Log.e(K9.LOG_TAG, "Could not get owner name, using default account name", e);
    -        }
    -        if (name == null || name.length() == 0) {
    -            try {
    -                name = getDefaultAccountName();
    -            } catch (Exception e) {
    -                Log.e(K9.LOG_TAG, "Could not get default account name", e);
    -            }
    +            Log.e(K9.LOG_TAG, "Could not get default account name", e);
             }
    +
             if (name == null) {
                 name = "";
             }
    diff --git a/src/com/fsck/k9/helper/Contacts.java b/src/com/fsck/k9/helper/Contacts.java
    index c42b2d43d..acf97d174 100644
    --- a/src/com/fsck/k9/helper/Contacts.java
    +++ b/src/com/fsck/k9/helper/Contacts.java
    @@ -97,13 +97,6 @@ public abstract class Contacts {
             mContentResolver = context.getContentResolver();
         }
     
    -    /**
    -     * Get the name of the device's owner.
    -     *
    -     * @return The name of the owner if available. null, otherwise.
    -     */
    -    public abstract String getOwnerName();
    -
         /**
          * Start the activity to add information to an existing contact or add a
          * new one.
    diff --git a/src/com/fsck/k9/helper/ContactsSdk3_4.java b/src/com/fsck/k9/helper/ContactsSdk3_4.java
    index 5d0fbdcd2..c7addc83f 100644
    --- a/src/com/fsck/k9/helper/ContactsSdk3_4.java
    +++ b/src/com/fsck/k9/helper/ContactsSdk3_4.java
    @@ -85,27 +85,6 @@ public class ContactsSdk3_4 extends com.fsck.k9.helper.Contacts {
             mContext.startActivity(contactIntent);
         }
     
    -    @Override
    -    public String getOwnerName() {
    -        String name = null;
    -        final Cursor c = mContentResolver.query(
    -                             Uri.withAppendedPath(Contacts.People.CONTENT_URI, "owner"),
    -                             new String[] {Contacts.ContactMethods.DISPLAY_NAME},
    -                             null,
    -                             null,
    -                             null);
    -
    -        if (c != null) {
    -            if (c.getCount() > 0) {
    -                c.moveToFirst();
    -                name = c.getString(0);  // owner's display name
    -            }
    -            c.close();
    -        }
    -
    -        return name;
    -    }
    -
         @Override
         public boolean isInContacts(final String emailAddress) {
             boolean result = false;
    diff --git a/src/com/fsck/k9/helper/ContactsSdk5.java b/src/com/fsck/k9/helper/ContactsSdk5.java
    index 40ae2768b..b77539c88 100644
    --- a/src/com/fsck/k9/helper/ContactsSdk5.java
    +++ b/src/com/fsck/k9/helper/ContactsSdk5.java
    @@ -1,7 +1,5 @@
     package com.fsck.k9.helper;
     
    -import android.accounts.Account;
    -import android.accounts.AccountManager;
     import android.content.Context;
     import android.content.Intent;
     import android.database.Cursor;
    @@ -87,22 +85,6 @@ public class ContactsSdk5 extends com.fsck.k9.helper.Contacts {
             mContext.startActivity(contactIntent);
         }
     
    -    @Override
    -    public String getOwnerName() {
    -        String name = null;
    -
    -        // Get the name of the first account that has one.
    -        Account[] accounts = AccountManager.get(mContext).getAccounts();
    -        for (final Account account : accounts) {
    -            if (account.name != null) {
    -                name = account.name;
    -                break;
    -            }
    -        }
    -
    -        return name;
    -    }
    -
         @Override
         public boolean isInContacts(final String emailAddress) {
             boolean result = false;
    
    From 86fca9c1f2c9477469ffd1f753d6a70421cda59a Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Sat, 14 May 2011 21:40:21 +0200
    Subject: [PATCH 169/310] POP3: Check for support of the TOP command (if CAPA
     isn't supported)
    
    This will allow to download partial messages if the server doesn't
    support the CAPA command but supports the TOP command (e.g. Hotmail).
    
    Fixes issue 2042
    ---
     src/com/fsck/k9/mail/store/Pop3Store.java | 108 ++++++++++++++++------
     1 file changed, 79 insertions(+), 29 deletions(-)
    
    diff --git a/src/com/fsck/k9/mail/store/Pop3Store.java b/src/com/fsck/k9/mail/store/Pop3Store.java
    index b9d3eae8b..e3843c568 100644
    --- a/src/com/fsck/k9/mail/store/Pop3Store.java
    +++ b/src/com/fsck/k9/mail/store/Pop3Store.java
    @@ -43,6 +43,13 @@ public class Pop3Store extends Store {
         private HashMap mFolders = new HashMap();
         private Pop3Capabilities mCapabilities;
     
    +    /**
    +     * This value is {@code true} if the server supports the CAPA command but doesn't advertise
    +     * support for the TOP command OR if the server doesn't support the CAPA command and we
    +     * already unsuccessfully tried to use the TOP command.
    +     */
    +    private boolean mTopNotSupported;
    +
         /**
          * pop3://user:password@server:port CONNECTION_SECURITY_NONE
          * pop3+tls://user:password@server:port CONNECTION_SECURITY_TLS_OPTIONAL
    @@ -656,41 +663,67 @@ public class Pop3Store extends Store {
             }
     
             /**
    -         * Fetches the body of the given message, limiting the stored data
    -         * to the specified number of lines. If lines is -1 the entire message
    -         * is fetched. This is implemented with RETR for lines = -1 or TOP
    -         * for any other value. If the server does not support TOP it is
    -         * emulated with RETR and extra lines are thrown away.
    -         * @param message
    -         * @param lines
    +         * Fetches the body of the given message, limiting the downloaded data to the specified
    +         * number of lines if possible.
    +         *
    +         * If lines is -1 the entire message is fetched. This is implemented with RETR for
    +         * lines = -1 or TOP for any other value. If the server does not support TOP, RETR is used
    +         * instead.
              */
             private void fetchBody(Pop3Message message, int lines)
             throws IOException, MessagingException {
                 String response = null;
    -            if (lines == -1 || !mCapabilities.top) {
    +
    +            // Try hard to use the TOP command if we're not asked to download the whole message.
    +            if (lines != -1 && (!mTopNotSupported || mCapabilities.top)) {
    +                try {
    +                    if (K9.DEBUG && K9.DEBUG_PROTOCOL_POP3 && !mCapabilities.top) {
    +                        Log.d(K9.LOG_TAG, "This server doesn't support the CAPA command. " +
    +                                "Checking to see if the TOP command is supported nevertheless.");
    +                    }
    +
    +                    response = executeSimpleCommand(String.format("TOP %d %d",
    +                            mUidToMsgNumMap.get(message.getUid()), lines));
    +
    +                    // TOP command is supported. Remember this for the next time.
    +                    mCapabilities.top = true;
    +                } catch (Pop3ErrorResponse e) {
    +                    if (mCapabilities.top) {
    +                        // The TOP command should be supported but something went wrong.
    +                        throw e;
    +                    } else {
    +                        if (K9.DEBUG && K9.DEBUG_PROTOCOL_POP3) {
    +                            Log.d(K9.LOG_TAG, "The server really doesn't support the TOP " +
    +                                    "command. Using RETR instead.");
    +                        }
    +
    +                        // Don't try to use the TOP command again.
    +                        mTopNotSupported = true;
    +                    }
    +                }
    +            }
    +
    +            if (response == null) {
                     response = executeSimpleCommand(String.format("RETR %d",
                                                     mUidToMsgNumMap.get(message.getUid())));
    -            } else {
    -                response = executeSimpleCommand(String.format("TOP %d %d",
    -                                                mUidToMsgNumMap.get(message.getUid()),
    -                                                lines));
                 }
    -            if (response != null) {
    -                try {
    -                    message.parse(new Pop3ResponseInputStream(mIn));
    -                    if (lines == -1 || !mCapabilities.top) {
    -                        message.setFlag(Flag.X_DOWNLOADED_FULL, true);
    -                    }
    -                } catch (MessagingException me) {
    -                    /*
    -                     * If we're only downloading headers it's possible
    -                     * we'll get a broken MIME message which we're not
    -                     * real worried about. If we've downloaded the body
    -                     * and can't parse it we need to let the user know.
    -                     */
    -                    if (lines == -1) {
    -                        throw me;
    -                    }
    +
    +            try {
    +                message.parse(new Pop3ResponseInputStream(mIn));
    +
    +                // TODO: if we've received fewer lines than requested we also have the complete message.
    +                if (lines == -1 || !mCapabilities.top) {
    +                    message.setFlag(Flag.X_DOWNLOADED_FULL, true);
    +                }
    +            } catch (MessagingException me) {
    +                /*
    +                 * If we're only downloading headers it's possible
    +                 * we'll get a broken MIME message which we're not
    +                 * real worried about. If we've downloaded the body
    +                 * and can't parse it we need to let the user know.
    +                 */
    +                if (lines == -1) {
    +                    throw me;
                     }
                 }
             }
    @@ -806,6 +839,14 @@ public class Pop3Store extends Store {
                             capabilities.top = true;
                         }
                     }
    +
    +                if (!capabilities.top) {
    +                    /*
    +                     * If the CAPA command is supported but it doesn't advertise support for the
    +                     * TOP command, we won't check for it manually.
    +                     */
    +                    mTopNotSupported = true;
    +                }
                 } catch (MessagingException me) {
                     /*
                      * The server may not support the CAPA command, so we just eat this Exception
    @@ -838,7 +879,7 @@ public class Pop3Store extends Store {
     
                     String response = readLine();
                     if (response.length() > 1 && response.charAt(0) == '-') {
    -                    throw new MessagingException(response);
    +                    throw new Pop3ErrorResponse(response);
                     }
     
                     return response;
    @@ -953,4 +994,13 @@ public class Pop3Store extends Store {
                 return d;
             }
         }
    +
    +    /**
    +     * Exception that is thrown if the server returns an error response.
    +     */
    +    static class Pop3ErrorResponse extends MessagingException {
    +        public Pop3ErrorResponse(String message) {
    +            super(message, true);
    +        }
    +    }
     }
    
    From 92b17ec2e2dbf46d4ca6a7046096b116c887a8a7 Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Sat, 14 May 2011 22:15:39 +0200
    Subject: [PATCH 170/310] Hide "Show only subscribed folders" checkbox for POP3
     accounts
    
    ---
     src/com/fsck/k9/activity/setup/AccountSetupIncoming.java | 1 +
     1 file changed, 1 insertion(+)
    
    diff --git a/src/com/fsck/k9/activity/setup/AccountSetupIncoming.java b/src/com/fsck/k9/activity/setup/AccountSetupIncoming.java
    index db0bbca33..520ac6f82 100644
    --- a/src/com/fsck/k9/activity/setup/AccountSetupIncoming.java
    +++ b/src/com/fsck/k9/activity/setup/AccountSetupIncoming.java
    @@ -236,6 +236,7 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener
                     findViewById(R.id.webdav_auth_path_section).setVisibility(View.GONE);
                     findViewById(R.id.compression_section).setVisibility(View.GONE);
                     findViewById(R.id.compression_label).setVisibility(View.GONE);
    +                subscribedFoldersOnly.setVisibility(View.GONE);
                     mAccount.setDeletePolicy(Account.DELETE_POLICY_NEVER);
                 } else if (uri.getScheme().startsWith("imap")) {
                     serverLabelView.setText(R.string.account_setup_incoming_imap_server_label);
    
    From e90a47938484e35217cce5413c0dbec8659feffd Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Sat, 14 May 2011 22:17:15 +0200
    Subject: [PATCH 171/310] Renamed member variables to match code style
     guidelines
    
    ---
     .../activity/setup/AccountSetupIncoming.java  | 36 +++++++++----------
     1 file changed, 18 insertions(+), 18 deletions(-)
    
    diff --git a/src/com/fsck/k9/activity/setup/AccountSetupIncoming.java b/src/com/fsck/k9/activity/setup/AccountSetupIncoming.java
    index 520ac6f82..1cbd7410a 100644
    --- a/src/com/fsck/k9/activity/setup/AccountSetupIncoming.java
    +++ b/src/com/fsck/k9/activity/setup/AccountSetupIncoming.java
    @@ -65,10 +65,10 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener
         private Button mNextButton;
         private Account mAccount;
         private boolean mMakeDefault;
    -    private CheckBox compressionMobile;
    -    private CheckBox compressionWifi;
    -    private CheckBox compressionOther;
    -    private CheckBox subscribedFoldersOnly;
    +    private CheckBox mCompressionMobile;
    +    private CheckBox mCompressionWifi;
    +    private CheckBox mCompressionOther;
    +    private CheckBox mSubscribedFoldersOnly;
     
         public static void actionIncomingSettings(Activity context, Account account, boolean makeDefault) {
             Intent i = new Intent(context, AccountSetupIncoming.class);
    @@ -101,10 +101,10 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener
             mWebdavAuthPathView = (EditText)findViewById(R.id.webdav_auth_path);
             mWebdavMailboxPathView = (EditText)findViewById(R.id.webdav_mailbox_path);
             mNextButton = (Button)findViewById(R.id.next);
    -        compressionMobile = (CheckBox)findViewById(R.id.compression_mobile);
    -        compressionWifi = (CheckBox)findViewById(R.id.compression_wifi);
    -        compressionOther = (CheckBox)findViewById(R.id.compression_other);
    -        subscribedFoldersOnly = (CheckBox)findViewById(R.id.subscribed_folders_only);
    +        mCompressionMobile = (CheckBox)findViewById(R.id.compression_mobile);
    +        mCompressionWifi = (CheckBox)findViewById(R.id.compression_wifi);
    +        mCompressionOther = (CheckBox)findViewById(R.id.compression_other);
    +        mSubscribedFoldersOnly = (CheckBox)findViewById(R.id.subscribed_folders_only);
     
             mNextButton.setOnClickListener(this);
     
    @@ -236,7 +236,7 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener
                     findViewById(R.id.webdav_auth_path_section).setVisibility(View.GONE);
                     findViewById(R.id.compression_section).setVisibility(View.GONE);
                     findViewById(R.id.compression_label).setVisibility(View.GONE);
    -                subscribedFoldersOnly.setVisibility(View.GONE);
    +                mSubscribedFoldersOnly.setVisibility(View.GONE);
                     mAccount.setDeletePolicy(Account.DELETE_POLICY_NEVER);
                 } else if (uri.getScheme().startsWith("imap")) {
                     serverLabelView.setText(R.string.account_setup_incoming_imap_server_label);
    @@ -267,7 +267,7 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener
                     findViewById(R.id.account_auth_type).setVisibility(View.GONE);
                     findViewById(R.id.compression_section).setVisibility(View.GONE);
                     findViewById(R.id.compression_label).setVisibility(View.GONE);
    -                subscribedFoldersOnly.setVisibility(View.GONE);
    +                mSubscribedFoldersOnly.setVisibility(View.GONE);
                     if (uri.getPath() != null && uri.getPath().length() > 0) {
                         String[] pathParts = uri.getPath().split("\\|");
     
    @@ -300,9 +300,9 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener
                         SpinnerOption.setSpinnerOptionValue(mSecurityTypeView, i);
                     }
                 }
    -            compressionMobile.setChecked(mAccount.useCompression(Account.TYPE_MOBILE));
    -            compressionWifi.setChecked(mAccount.useCompression(Account.TYPE_WIFI));
    -            compressionOther.setChecked(mAccount.useCompression(Account.TYPE_OTHER));
    +            mCompressionMobile.setChecked(mAccount.useCompression(Account.TYPE_MOBILE));
    +            mCompressionWifi.setChecked(mAccount.useCompression(Account.TYPE_WIFI));
    +            mCompressionOther.setChecked(mAccount.useCompression(Account.TYPE_OTHER));
     
                 if (uri.getHost() != null) {
                     mServerView.setText(uri.getHost());
    @@ -314,7 +314,7 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener
                     updatePortFromSecurityType();
                 }
     
    -            subscribedFoldersOnly.setChecked(mAccount.subscribedFoldersOnly());
    +            mSubscribedFoldersOnly.setChecked(mAccount.subscribedFoldersOnly());
     
                 validateFields();
             } catch (Exception e) {
    @@ -426,10 +426,10 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener
                 mAccount.setStoreUri(uri.toString());
     
     
    -            mAccount.setCompression(Account.TYPE_MOBILE, compressionMobile.isChecked());
    -            mAccount.setCompression(Account.TYPE_WIFI, compressionWifi.isChecked());
    -            mAccount.setCompression(Account.TYPE_OTHER, compressionOther.isChecked());
    -            mAccount.setSubscribedFoldersOnly(subscribedFoldersOnly.isChecked());
    +            mAccount.setCompression(Account.TYPE_MOBILE, mCompressionMobile.isChecked());
    +            mAccount.setCompression(Account.TYPE_WIFI, mCompressionWifi.isChecked());
    +            mAccount.setCompression(Account.TYPE_OTHER, mCompressionOther.isChecked());
    +            mAccount.setSubscribedFoldersOnly(mSubscribedFoldersOnly.isChecked());
     
                 AccountSetupCheckSettings.actionCheckSettings(this, mAccount, true, false);
             } catch (Exception e) {
    
    From ba9bc2f8e92ee143504e993e965da020dea2f492 Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Sat, 14 May 2011 23:19:24 +0200
    Subject: [PATCH 172/310] Added method Folder.isFlagSupported(Flag)
    
    ---
     src/com/fsck/k9/controller/MessagingController.java | 11 ++---------
     src/com/fsck/k9/mail/Folder.java                    |  6 +++++-
     src/com/fsck/k9/mail/store/Pop3Store.java           |  5 +++++
     3 files changed, 12 insertions(+), 10 deletions(-)
    
    diff --git a/src/com/fsck/k9/controller/MessagingController.java b/src/com/fsck/k9/controller/MessagingController.java
    index e05654b1c..cc408d051 100644
    --- a/src/com/fsck/k9/controller/MessagingController.java
    +++ b/src/com/fsck/k9/controller/MessagingController.java
    @@ -2174,14 +2174,7 @@ public class MessagingController implements Runnable {
     
             Store remoteStore = account.getRemoteStore();
             Folder remoteFolder = remoteStore.getFolder(folder);
    -        if (!remoteFolder.exists() ||
    -                /*
    -                 * Don't proceed if the remote folder doesn't support flags and
    -                 * the flag to be changed isn't the deleted flag. This avoids
    -                 * unnecessary connections to POP3 servers.
    -                 */
    -                // TODO: This should actually call a supportsSettingFlag(flag) method.
    -                (!remoteFolder.supportsFetchingFlags() && !Flag.DELETED.equals(flag))) {
    +        if (!remoteFolder.exists() || !remoteFolder.isFlagSupported(flag)) {
                 return;
             }
     
    @@ -3982,7 +3975,7 @@ public class MessagingController implements Runnable {
             Intent i = FolderList.actionHandleNotification(context, account, message.getFolder().getName());
             PendingIntent pi = PendingIntent.getActivity(context, 0, i, 0);
     
    -        String accountDescr = (account.getDescription() != null) ? account.getDescription() : account.getEmail(); 
    +        String accountDescr = (account.getDescription() != null) ? account.getDescription() : account.getEmail();
             String accountNotice = context.getString(R.string.notification_new_one_account_fmt, unreadCount, accountDescr);
             notif.setLatestEventInfo(context, accountNotice, messageNotice, pi);
     
    diff --git a/src/com/fsck/k9/mail/Folder.java b/src/com/fsck/k9/mail/Folder.java
    index 7e338400b..0f5b96060 100644
    --- a/src/com/fsck/k9/mail/Folder.java
    +++ b/src/com/fsck/k9/mail/Folder.java
    @@ -153,9 +153,13 @@ public abstract class Folder {
             return null;
         }
     
    +    public boolean isFlagSupported(Flag flag) {
    +        return true;
    +    }
    +
         public boolean supportsFetchingFlags() {
             return true;
    -    }//isFlagSupported
    +    }
     
         @Override
         public String toString() {
    diff --git a/src/com/fsck/k9/mail/store/Pop3Store.java b/src/com/fsck/k9/mail/store/Pop3Store.java
    index e3843c568..cb5b64b01 100644
    --- a/src/com/fsck/k9/mail/store/Pop3Store.java
    +++ b/src/com/fsck/k9/mail/store/Pop3Store.java
    @@ -891,6 +891,11 @@ public class Pop3Store extends Store {
                 }
             }
     
    +        @Override
    +        public boolean isFlagSupported(Flag flag) {
    +            return (flag == Flag.DELETED);
    +        }
    +
             @Override
             public boolean supportsFetchingFlags() {
                 return false;
    
    From dc96bf318635ad860c4e2595b3c68f52098ea954 Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Sat, 14 May 2011 23:30:47 +0200
    Subject: [PATCH 173/310] Only mark all messages as read on the server if
     that's supported
    
    This change prevents K-9 Mail from establishing a connection to the
    server when all messages are marked as read on a POP3 account.
    ---
     src/com/fsck/k9/controller/MessagingController.java | 2 +-
     src/com/fsck/k9/mail/store/Pop3Store.java           | 4 +++-
     2 files changed, 4 insertions(+), 2 deletions(-)
    
    diff --git a/src/com/fsck/k9/controller/MessagingController.java b/src/com/fsck/k9/controller/MessagingController.java
    index cc408d051..da325a287 100644
    --- a/src/com/fsck/k9/controller/MessagingController.java
    +++ b/src/com/fsck/k9/controller/MessagingController.java
    @@ -2378,7 +2378,7 @@ public class MessagingController implements Runnable {
                 Store remoteStore = account.getRemoteStore();
                 remoteFolder = remoteStore.getFolder(folder);
     
    -            if (!remoteFolder.exists()) {
    +            if (!remoteFolder.exists() || !remoteFolder.isFlagSupported(Flag.SEEN)) {
                     return;
                 }
                 remoteFolder.open(OpenMode.READ_WRITE);
    diff --git a/src/com/fsck/k9/mail/store/Pop3Store.java b/src/com/fsck/k9/mail/store/Pop3Store.java
    index cb5b64b01..de40edea1 100644
    --- a/src/com/fsck/k9/mail/store/Pop3Store.java
    +++ b/src/com/fsck/k9/mail/store/Pop3Store.java
    @@ -283,7 +283,9 @@ public class Pop3Store extends Store {
             @Override
             public void close() {
                 try {
    -                executeSimpleCommand("QUIT");
    +                if (isOpen()) {
    +                    executeSimpleCommand("QUIT");
    +                }
                 } catch (Exception e) {
                     /*
                      * QUIT may fail if the connection is already closed. We don't care. It's just
    
    From 95288b37d7b060173db89b7b171eb648ff482400 Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Sat, 14 May 2011 23:46:26 +0200
    Subject: [PATCH 174/310] Removed unnecessary method implementation
    
    Make Pop3Folder.setFlags(Flag[],boolean) throw an
    UnsupportedOperationException instead of calling a method that does
    just that.
    ---
     src/com/fsck/k9/mail/store/Pop3Store.java | 6 ++----
     1 file changed, 2 insertions(+), 4 deletions(-)
    
    diff --git a/src/com/fsck/k9/mail/store/Pop3Store.java b/src/com/fsck/k9/mail/store/Pop3Store.java
    index de40edea1..ee04f15d8 100644
    --- a/src/com/fsck/k9/mail/store/Pop3Store.java
    +++ b/src/com/fsck/k9/mail/store/Pop3Store.java
    @@ -754,10 +754,8 @@ public class Pop3Store extends Store {
             }
     
             @Override
    -        public void setFlags(Flag[] flags, boolean value)
    -        throws MessagingException {
    -            Message[] messages = getMessages(null);
    -            setFlags(messages, flags, value);
    +        public void setFlags(Flag[] flags, boolean value) throws MessagingException {
    +            throw new UnsupportedOperationException("POP3: No setFlags(Flag[],boolean)");
             }
     
             @Override
    
    From 41b039b691ff45b81b91fa694eb2164f5bc0abb0 Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Sun, 15 May 2011 16:23:53 +0200
    Subject: [PATCH 175/310] Fix bug introduced with commit
     b7a6dbd9734700e3eacdaf1477fed14c03106e00
    
    Fixes issue 3297
    ---
     src/com/fsck/k9/mail/store/ImapStore.java | 17 ++++++++++-------
     1 file changed, 10 insertions(+), 7 deletions(-)
    
    diff --git a/src/com/fsck/k9/mail/store/ImapStore.java b/src/com/fsck/k9/mail/store/ImapStore.java
    index 56e0f8a52..92d0cb778 100644
    --- a/src/com/fsck/k9/mail/store/ImapStore.java
    +++ b/src/com/fsck/k9/mail/store/ImapStore.java
    @@ -377,9 +377,9 @@ public class ImapStore extends Store {
                 if (ImapResponseParser.equalsIgnoreCase(response.get(0), commandResponse)) {
                     boolean includeFolder = true;
     
    -                String folder;
    +                String decodedFolderName;
                     try {
    -                    folder = decodeFolderName(response.getString(3));
    +                    decodedFolderName = decodeFolderName(response.getString(3));
                     } catch (CharacterCodingException e) {
                         Log.w(K9.LOG_TAG, "Folder name not correctly encoded with the UTF-7 variant " +
                                 "as defined by RFC 3501: " + response.getString(3), e);
    @@ -391,6 +391,8 @@ public class ImapStore extends Store {
                         continue;
                     }
     
    +                String folder = decodedFolderName;
    +
                     if (mPathDelimeter == null) {
                         mPathDelimeter = response.getString(2);
                         mCombinedPrefix = null;
    @@ -406,12 +408,13 @@ public class ImapStore extends Store {
                          */
                         continue;
                     } else {
    -
    -                    if (getCombinedPrefix().length() > 0) {
    -                        if (folder.length() >= getCombinedPrefix().length()) {
    -                            folder = folder.substring(getCombinedPrefix().length());
    +                    int prefixLength = getCombinedPrefix().length();
    +                    if (prefixLength > 0) {
    +                        // Strip prefix from the folder name
    +                        if (folder.length() >= prefixLength) {
    +                            folder = folder.substring(prefixLength);
                             }
    -                        if (!folder.equalsIgnoreCase(getCombinedPrefix() + folder)) {
    +                        if (!decodedFolderName.equalsIgnoreCase(getCombinedPrefix() + folder)) {
                                 includeFolder = false;
                             }
                         }
    
    From 8fc714ac4ae5203298bc88ded6112d8ddf686b22 Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Mon, 16 May 2011 00:36:46 +0200
    Subject: [PATCH 176/310] Don't show "null" for partially downloaded messages
     with empty text body
    
    ---
     src/com/fsck/k9/mail/store/LocalStore.java | 18 ++++++++++++++++++
     1 file changed, 18 insertions(+)
    
    diff --git a/src/com/fsck/k9/mail/store/LocalStore.java b/src/com/fsck/k9/mail/store/LocalStore.java
    index ad487af06..c0607cd39 100644
    --- a/src/com/fsck/k9/mail/store/LocalStore.java
    +++ b/src/com/fsck/k9/mail/store/LocalStore.java
    @@ -2074,6 +2074,15 @@ public class LocalStore extends Store implements Serializable {
                                     for (Part viewable : viewables) {
                                         try {
                                             String text = MimeUtility.getTextFromPart(viewable);
    +
    +                                        /*
    +                                         * Small hack to make sure the string "null" doesn't end up
    +                                         * in one of the StringBuffers.
    +                                         */
    +                                        if (text == null) {
    +                                            text = "";
    +                                        }
    +
                                             /*
                                              * Anything with MIME type text/html will be stored as such. Anything
                                              * else will be stored as text/plain.
    @@ -2179,6 +2188,15 @@ public class LocalStore extends Store implements Serializable {
                                     Part viewable = viewables.get(i);
                                     try {
                                         String text = MimeUtility.getTextFromPart(viewable);
    +
    +                                    /*
    +                                     * Small hack to make sure the string "null" doesn't end up
    +                                     * in one of the StringBuffers.
    +                                     */
    +                                    if (text == null) {
    +                                        text = "";
    +                                    }
    +
                                         /*
                                          * Anything with MIME type text/html will be stored as such. Anything
                                          * else will be stored as text/plain.
    
    From 2311e688f09793dccab208cc561135495e5c7726 Mon Sep 17 00:00:00 2001
    From: Marcus Wolschon 
    Date: Tue, 17 May 2011 09:16:42 +0200
    Subject: [PATCH 177/310] changed German translation for batch-ops. *
     "Mehrfachauswahl" was confusing and suggesting some kind of selection-mode *
     menu-texts for the individual batch-ops didn't even fit the screen.
    
    ---
     res/values-de/strings.xml | 20 ++++++++++----------
     1 file changed, 10 insertions(+), 10 deletions(-)
    
    diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
    index 7003a790f..822e172ab 100644
    --- a/res/values-de/strings.xml
    +++ b/res/values-de/strings.xml
    @@ -869,16 +869,16 @@ Willkommen zum \"K-9 Mail\"-Setup. K-9 ist eine quelloffene E-Mail-Anwendung fü
         dd.MMM yyyy
         yyyy-MM-dd
     
    -    Mehrfachauswahl
    -    Ausgewählte löschen
    -    Ausgewählte als gelesen markieren
    -    Ausgewählte als ungelesen markieren
    -    Ausgewählte als wichtig markieren
    -    Markierung bei Ausgewählten entfernen
    -    Ausgewählte sichern
    -    Ausgewählte als Spam markieren
    -    Ausgewählte verschieben
    -    Ausgewählte kopieren
    +    Gruppenoperationen
    +    Gewählte löschen
    +    Gewählte als gelesen markieren
    +    Gewählte als ungelesen markieren
    +    Gewählte als wichtig markieren
    +    Markierung bei Gewählten entfernen
    +    Gewählte sichern
    +    Gewählte als Spam markieren
    +    Gewählte verschieben
    +    Gewählte kopieren
         Stern-Modus
         Auswahl-Modus
         Normaler Modus
    
    From 2d7fad1fa9e2fa8a2faebf51b1bff2c906c2ac0e Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Thu, 19 May 2011 00:55:34 +0200
    Subject: [PATCH 178/310] Use InetAddress.getCanonicalHostName() instead of
     getHostName()
    
    This should always return a FQDN.
    ---
     src/com/fsck/k9/mail/transport/SmtpTransport.java | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/src/com/fsck/k9/mail/transport/SmtpTransport.java b/src/com/fsck/k9/mail/transport/SmtpTransport.java
    index 45f218191..7906ca5db 100644
    --- a/src/com/fsck/k9/mail/transport/SmtpTransport.java
    +++ b/src/com/fsck/k9/mail/transport/SmtpTransport.java
    @@ -171,7 +171,7 @@ public class SmtpTransport extends Transport {
                 executeSimpleCommand(null);
     
                 InetAddress localAddress = mSocket.getLocalAddress();
    -            String localHost = localAddress.getHostName();
    +            String localHost = localAddress.getCanonicalHostName();
                 String ipAddr = localAddress.getHostAddress();
     
                 if (localHost.equals("") || localHost.equals(ipAddr) || localHost.contains("_")) {
    
    From e6d4299c238a80081a591025b0ba663c0682fb75 Mon Sep 17 00:00:00 2001
    From: Koji Arai 
    Date: Fri, 20 May 2011 00:19:12 +0900
    Subject: [PATCH 179/310] Improved Japanese translation
    
    ---
     res/values-ja/strings.xml | 44 +++++++++++++++++++--------------------
     1 file changed, 22 insertions(+), 22 deletions(-)
    
    diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
    index ebf53b638..bdce1340b 100644
    --- a/res/values-ja/strings.xml
    +++ b/res/values-ja/strings.xml
    @@ -188,13 +188,13 @@
     
         メール送信に失敗しました
         %s フォルダ詳細を確認してください
    -    K-9 はメール送信中にトラブルが発生しました.
    -     メッセージが送信されたかどうかについては、トラブルに応じるため不明です.
    -      送信宛先は、メールを既に受信している場合があります.
    -    \u000a\u000a送信済みトレイにトラブルで発生したメールを格納します.
    -    フラグ解除されたメールを再送信することができます.
    -    送信済みトレイを長く押下することで「メール送信」メニューを表示させて送信することができます.\u000A\u000a
    -    %s フォルダには失敗したエラーメッセージが含まれています.
    +    メール送信中に問題が発生しました。
    +    問題の性質により、メッセージが送信されたかどうかがわかりません。
    +    受信者は、そのメッセージを既に受信しているかもしれません。
    +    \u000a\u000a問題が発生したメールには送信トレイにスターが付いています。
    +    スターを取ることで、メールを再送することができます。
    +    他のメッセージを送信するには、「メール送信」メニューを表示させるために送信トレイを長押ししてください。\u000A\u000a
    +    %s フォルダにはその問題に関するエラーメッセージが含まれています。
     
         K-9 警告
         送信ネットワークのリソース不足のため同期処理中断
    @@ -231,7 +231,7 @@ K-9 Mail セットアップにようこそ。\nK-9 は標準のAndroidメール
         拡張デバッグログ
         追加診断情報ログ
         詳細情報ログ
    -    ログにパスワードが表示されるかもしれません
    +    ログにパスワードが表示される
     
         K-9 for Android 
     
    @@ -267,8 +267,8 @@ K-9 Mail セットアップにようこそ。\nK-9 は標準のAndroidメール
         テキスト引用
         少なくとも1つの受信者を追加する必要があります
         メールアドレスが登録されていません
    -    一部の添付ファイルをダウンロードしていません.このメールが送信される前に自動的にダウンロードされます.
    -    ダウンロードしていないため、一部の添付ファイルを転送することはできません.
    +    一部の添付ファイルをダウンロードしていません。このメールが送信される前に自動的にダウンロードされます。
    +    ダウンロードしていないため、一部の添付ファイルを転送することはできません。
     
     
     
    @@ -293,9 +293,9 @@ K-9 Mail セットアップにようこそ。\nK-9 は標準のAndroidメール
         すべてダウンロード
     
         
    -    一部のヘッダしか保存されていません.ヘッダをすべて保存するためには、アカウント設定の受信メールサーバ設定で「すべてのヘッダを端末に保存」をチェックしてください.
    -    すべてのヘッダをダウンロードしましたが、表示すべき追加ヘッダはありませんでした.
    -    追加ヘッダをデータベースまたはメールサーバから取得できませんでした.
    +    一部のヘッダしか保存されていません。ヘッダをすべて保存するためには、アカウント設定の受信メールサーバ設定で「すべてのヘッダを端末に保存」をチェックしてください。
    +    すべてのヘッダをダウンロードしましたが、表示すべき追加ヘッダはありませんでした。
    +    追加ヘッダをデータベースまたはメールサーバから取得できませんでした。
     
         フォルダ
         新しいフォルダ
    @@ -318,7 +318,7 @@ K-9 Mail セットアップにようこそ。\nK-9 は標準のAndroidメール
     
     
         スターを表示
    -    スターは印を付けたメッセージを示します
    +    スターは印の付いたメッセージを示す
         複数選択チェックボックス
         複数選択チェックボックス常時表示
         メッセージプレビュー
    @@ -333,7 +333,7 @@ K-9 Mail セットアップにようこそ。\nK-9 は標準のAndroidメール
         連絡先の名前の場合は色を付ける
     
         固定幅フォント
    -    プレーンテキストメッセージを表示する際、固定幅フォントを利用します.
    +    プレーンテキストメッセージの表示に固定幅フォントを利用
         削除後メッセージ一覧へ戻る
         メッセージの削除後、メッセージ一覧に戻る
     
    @@ -350,7 +350,7 @@ K-9 Mail セットアップにようこそ。\nK-9 は標準のAndroidメール
     
     
         夜間時間帯
    -    夜間での各種通知や表示を抑制する時間帯を設定します.
    +    夜間での各種通知や表示を抑制する時間帯を設定
         開始時刻
         終了時刻
     
    @@ -491,7 +491,7 @@ K-9 Mail セットアップにようこそ。\nK-9 は標準のAndroidメール
     
         プッシュ接続時の同期
         このアカウントにプッシュメールを有効化
    -    メールサーバがサポートしていれば新しいメッセージは即座に表示されます.当オプションはパフォーマンスが改善もしくは低下します.
    +    メールサーバがサポートしていれば新しいメッセージは即座に表示されます。当オプションはパフォーマンスが改善もしくは低下します。
         IMAP IDLE(プッシュ)接続のリフレッシュ
         1分毎
         2分毎
    @@ -584,7 +584,7 @@ K-9 Mail セットアップにようこそ。\nK-9 は標準のAndroidメール
         なし
         利用不可
         自動署名
    -    このアカウントのE-Mailアドレスから署名の鍵を自動的に決定する.
    +    このアカウントのE-Mailアドレスから署名の鍵を自動的に決定する
     
         同期フォルダの同期間隔
         2nd クラス自動受信間隔
    @@ -600,7 +600,7 @@ K-9 Mail セットアップにようこそ。\nK-9 は標準のAndroidメール
     
         一度に表示するメール数
     
    -    ダウンロードするメッセージの上限
    +    ダウンロードするメッセージサイズの上限
         1Kb
         2Kb
         4Kb
    @@ -841,7 +841,7 @@ K-9 Mail セットアップにようこそ。\nK-9 は標準のAndroidメール
         1列レイアウト
         小さい画面用にHTMLメッセージを再構成
         ズーム制御
    -    デバイスが対応するならば、ズームウィジェットやピンチズームを有効にします
    +    デバイスが対応するならば、ズームウィジェットやピンチズームを有効にする
     
     
     
    @@ -910,10 +910,10 @@ K-9 Mail セットアップにようこそ。\nK-9 は標準のAndroidメール
         起動後に統合フォルダを表示する
     
         アカウントのサイズ表示
    -    表示を速くしたい場合はチェックをはずしてください
    +    表示を速くしたい場合はチェックをはずす
     
         検索結果の件数表示
    -    表示を速くしたい場合はチェックをはずしてください
    +    表示を速くしたい場合はチェックをはずす
     
         特殊なアカウントを隠す
         統合フォルダと全メッセージを隠す
    
    From 6c1b1ebf322d9936901a3a8ac53d980aa88b374f Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Fri, 20 May 2011 23:00:48 +0200
    Subject: [PATCH 180/310] Moved checks from notifyAccount() to
     shouldNotifyForMessage()
    
    This should fix the "notification count" for cases where messages
    passed the shouldNotifyForMessage() checks but not the ones in
    notifyAccount().
    ---
     .../k9/controller/MessagingController.java    | 64 +++++++++----------
     1 file changed, 31 insertions(+), 33 deletions(-)
    
    diff --git a/src/com/fsck/k9/controller/MessagingController.java b/src/com/fsck/k9/controller/MessagingController.java
    index da325a287..c18579b32 100644
    --- a/src/com/fsck/k9/controller/MessagingController.java
    +++ b/src/com/fsck/k9/controller/MessagingController.java
    @@ -3859,16 +3859,29 @@ public class MessagingController implements Runnable {
     
     
         private boolean shouldNotifyForMessage(Account account, LocalFolder localFolder, Message message) {
    -        // Do not notify if the user does not have notifications
    -        // enabled or if the message has been read
    -        if (!account.isNotifyNewMail() || message.isSet(Flag.SEEN) || (account.getName() == null)) {
    +        // If we don't even have an account name, don't show the notification.
    +        // (This happens during initial account setup)
    +        if (account.getName() == null) {
                 return false;
             }
     
    +        // Do not notify if the user does not have notifications enabled or if the message has
    +        // been read.
    +        if (!account.isNotifyNewMail() || message.isSet(Flag.SEEN)) {
    +            return false;
    +        }
    +
    +        // If the account is a POP3 account and the message is older than the oldest message we've
    +        // previously seen, then don't notify about it.
    +        if (account.getStoreUri().startsWith("pop3") &&
    +                message.olderThan(new Date(account.getLatestOldMessageSeenTime()))) {
    +            return false;
    +        }
    +
    +        // No notification for new messages in Trash, Drafts, Spam or Sent folder.
    +        // But do notify if it's the INBOX (see issue 1817).
             Folder folder = message.getFolder();
             if (folder != null) {
    -            // No notification for new messages in Trash, Drafts, Spam or Sent folder.
    -            // But do notify if it's the INBOX (see issue 1817).
                 String folderName = folder.getName();
                 if (!account.getInboxFolderName().equals(folderName) &&
                         (account.getTrashFolderName().equals(folderName)
    @@ -3884,7 +3897,8 @@ public class MessagingController implements Runnable {
                     Integer messageUid = Integer.parseInt(message.getUid());
                     if (messageUid <= localFolder.getLastUid()) {
                         if (K9.DEBUG)
    -                        Log.d(K9.LOG_TAG, "Message uid is " + messageUid + ", max message uid is " + localFolder.getLastUid() + ".  Skipping notification.");
    +                        Log.d(K9.LOG_TAG, "Message uid is " + messageUid + ", max message uid is " +
    +                                localFolder.getLastUid() + ".  Skipping notification.");
                         return false;
                     }
                 } catch (NumberFormatException e) {
    @@ -3892,31 +3906,22 @@ public class MessagingController implements Runnable {
                 }
             }
     
    -        return true;
    +        // Don't notify if the sender address matches one of our identities and the user chose not
    +        // to be notified for such messages.
    +        if (account.isAnIdentity(message.getFrom()) && !account.isNotifySelfNewMail()) {
    +            return false;
    +        }
     
    +        return true;
         }
     
     
     
    -    /** Creates a notification of new email messages
    -      * ringtone, lights, and vibration to be played
    -    */
    -    private boolean notifyAccount(Context context, Account account, Message message, int previousUnreadMessageCount, AtomicInteger newMessageCount) {
    -        // If we don't even have an account name, don't show the notification
    -        // (This happens during initial account setup)
    -        //
    -        if (account.getName() == null) {
    -            return false;
    -        }
    -
    -        // If the account us a POP3 account and the message is older than
    -        // the oldest message we've previously seen then don't notify about it
    -        if (account.getStoreUri().startsWith("pop3")) {
    -            if (message.olderThan(new Date(account.getLatestOldMessageSeenTime()))) {
    -                return false;
    -            }
    -        }
    -
    +    /**
    +     * Creates a notification of a newly received message.
    +     */
    +    private void notifyAccount(Context context, Account account, Message message,
    +            int previousUnreadMessageCount, AtomicInteger newMessageCount) {
     
             // If we have a message, set the notification to ": "
             StringBuilder messageNotice = new StringBuilder();
    @@ -3937,19 +3942,13 @@ public class MessagingController implements Runnable {
                         }
                         // show To: if the message was sent from me
                         else {
    -                        if (!account.isNotifySelfNewMail()) {
    -                            return false;
    -                        }
    -
                             Address[] rcpts = message.getRecipients(Message.RecipientType.TO);
                             String to = rcpts.length > 0 ? rcpts[0].toFriendly().toString() : null;
                             if (to != null) {
                                 messageNotice.append(String.format(context.getString(R.string.message_to_fmt), to)).append(": ").append(subject);
                             } else {
                                 messageNotice.append(context.getString(R.string.general_no_sender)).append(": ").append(subject);
    -
                             }
    -
                         }
                     }
                 }
    @@ -3992,7 +3991,6 @@ public class MessagingController implements Runnable {
             configureNotification(notif, (n.shouldRing() ?  n.getRingtone() : null), (n.shouldVibrate() ? n.getVibration() : null), (n.isLed() ?  n.getLedColor()  : null), K9.NOTIFICATION_LED_BLINK_SLOW, ringAndVibrate);
     
             notifMgr.notify(account.getAccountNumber(), notif);
    -        return true;
         }
     
         /**
    
    From 4f67a6be245ef33aa52e45cdda538c611d70d5c1 Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Sat, 21 May 2011 00:33:43 +0200
    Subject: [PATCH 181/310] Fixed counting of new unread messages
    
    ---
     .../k9/controller/MessagingController.java    | 42 ++++++++++++++++---
     1 file changed, 37 insertions(+), 5 deletions(-)
    
    diff --git a/src/com/fsck/k9/controller/MessagingController.java b/src/com/fsck/k9/controller/MessagingController.java
    index c18579b32..fd4e0f7f1 100644
    --- a/src/com/fsck/k9/controller/MessagingController.java
    +++ b/src/com/fsck/k9/controller/MessagingController.java
    @@ -1161,12 +1161,32 @@ public class MessagingController implements Runnable {
             }
         }
     
    +    /**
    +     * Fetches the messages described by inputMessages from the remote store and writes them to
    +     * local storage.
    +     *
    +     * @param account
    +     *            The account the remote store belongs to.
    +     * @param remoteFolder
    +     *            The remote folder to download messages from.
    +     * @param localFolder
    +     *            The {@link LocalFolder} instance corresponding to the remote folder.
    +     * @param inputMessages
    +     *            A list of messages objects that store the UIDs of which messages to download.
    +     * @param flagSyncOnly
    +     *            Only flags will be fetched from the remote store if this is {@code true}.
    +     *
    +     * @return The number of downloaded messages that are not flagged as {@link Flag#SEEN}.
    +     *
    +     * @throws MessagingException
    +     */
         private int downloadMessages(final Account account, final Folder remoteFolder,
    -                                 final LocalFolder localFolder, List inputMessages, boolean flagSyncOnly) throws MessagingException {
    +                                 final LocalFolder localFolder, List inputMessages,
    +                                 boolean flagSyncOnly) throws MessagingException {
    +
             final Date earliestDate = account.getEarliestPollDate();
             Date downloadStarted = new Date(); // now
     
    -
             if (earliestDate != null) {
                 if (K9.DEBUG) {
                     Log.d(K9.LOG_TAG, "Only syncing messages after " + earliestDate);
    @@ -1541,7 +1561,7 @@ public class MessagingController implements Runnable {
             remoteFolder.fetch(smallMessages.toArray(new Message[smallMessages.size()]),
             fp, new MessageRetrievalListener() {
                 @Override
    -            public void messageFinished(Message message, int number, int ofTotal) {
    +            public void messageFinished(final Message message, int number, int ofTotal) {
                     try {
     
                         if (!shouldImportMessage(account, folder, message, progress, earliestDate)) {
    @@ -1557,6 +1577,13 @@ public class MessagingController implements Runnable {
                                 progress.incrementAndGet();
                             }
                         });
    +
    +                    // Increment the number of "new messages" if the newly downloaded message is
    +                    // not marked as read.
    +                    if (!localMessage.isSet(Flag.SEEN)) {
    +                        newMessages.incrementAndGet();
    +                    }
    +
                         if (K9.DEBUG)
                             Log.v(K9.LOG_TAG, "About to notify listeners that we got a new small message "
                                   + account + ":" + folder + ":" + message.getUid());
    @@ -1572,7 +1599,6 @@ public class MessagingController implements Runnable {
                         // Send a notification of this message
     
                         if (shouldNotifyForMessage(account, localFolder, message)) {
    -                        newMessages.incrementAndGet();
                             notifyAccount(mApplication, account, message, unreadBeforeStart, newMessages);
                         }
     
    @@ -1691,6 +1717,13 @@ public class MessagingController implements Runnable {
                 // Update the listener with what we've found
                 progress.incrementAndGet();
                 Message localMessage = localFolder.getMessage(message.getUid());
    +
    +            // Increment the number of "new messages" if the newly downloaded message is
    +            // not marked as read.
    +            if (!localMessage.isSet(Flag.SEEN)) {
    +                newMessages.incrementAndGet();
    +            }
    +
                 for (MessagingListener l : getListeners()) {
                     l.synchronizeMailboxAddOrUpdateMessage(account, folder, localMessage);
                     l.synchronizeMailboxProgress(account, folder, progress.get(), todo);
    @@ -1701,7 +1734,6 @@ public class MessagingController implements Runnable {
     
                 // Send a notification of this message
                 if (shouldNotifyForMessage(account, localFolder, message)) {
    -                newMessages.incrementAndGet();
                     notifyAccount(mApplication, account, message, unreadBeforeStart, newMessages);
                 }
     
    
    From 91a8bb78d9c7ca546b207437fb179956c09d24d0 Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Sat, 21 May 2011 05:55:21 +0200
    Subject: [PATCH 182/310] Updated catalan translation (dvbotet)
    
    ---
     res/values-ca/strings.xml | 8 ++++----
     1 file changed, 4 insertions(+), 4 deletions(-)
    
    diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
    index 46b74b95e..4c8e01188 100644
    --- a/res/values-ca/strings.xml
    +++ b/res/values-ca/strings.xml
    @@ -1001,7 +1001,7 @@ Benvingut a la configuració del K-9.  El K-9 és un client de codi obert per An
     
         
         No s’ha trobat cap aplicació idònia per a aquesta acció.
    -    Versió APG instal lada no suportada.
    +    Versió APG instal·lada no suportada.
         Inicia
         Encripta
         Desencripta
    @@ -1040,7 +1040,7 @@ Benvingut a la configuració del K-9.  El K-9 és un client de codi obert per An
     
         Compte \"%s\" no és disponible; comprova emmagatzematge
     
    -    
    -    
    -    
    +    Desa adjunts a...
    +    Desa adjunt
    +    No s\'ha trobat l\'arxiu al navegador. On vols desar l\'adjunt?
     
    
    From a97d7ff31146f1e552b22ae011f5f65beb83b026 Mon Sep 17 00:00:00 2001
    From: Bernhard Redl 
    Date: Sat, 21 May 2011 17:13:26 +0200
    Subject: [PATCH 183/310] added new translated strings (german)
    
    ---
     res/values-de/strings.xml | 18 +++++++++---------
     1 file changed, 9 insertions(+), 9 deletions(-)
    
    diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
    index 822e172ab..ab10542f7 100644
    --- a/res/values-de/strings.xml
    +++ b/res/values-de/strings.xml
    @@ -341,7 +341,7 @@ Willkommen zum \"K-9 Mail\"-Setup. K-9 ist eine quelloffene E-Mail-Anwendung fü
         Archivieren
         Löschen (nur in Nachrichtenansicht)
         Spam
    -    
    +    Alle als gelesen markieren
         Senden
     
         Vertrauliche Benachrichtigung
    @@ -1022,12 +1022,12 @@ Willkommen zum \"K-9 Mail\"-Setup. K-9 ist eine quelloffene E-Mail-Anwendung fü
         Löschen
         Nicht löschen
     
    -    
    -    
    -    
    -    
    +    als Spam markieren
    +    Wollen sie die Nachricht in den Spam Ordner verschieben?
    +    Ja
    +    Nein
     
    -    
    +    Anhänge werden heruntergeladen
     
         Debug-Meldungen werden mit Hilfe des Android-Logging-Systems aufgezeichnet.
     
    @@ -1037,7 +1037,7 @@ Willkommen zum \"K-9 Mail\"-Setup. K-9 ist eine quelloffene E-Mail-Anwendung fü
     
         Konto \"%s\" ist nicht verfügbar; Bitte SD-Karte prüfen.
     
    -    
    -    
    -    
    +    Anhang speichern unter...
    +    Anhang abspeichern
    +    Keine Filebrowser App installiert, wo soll der Anhang abgelegt werden?
     
    
    From 072620e4fac804f670d30b37194bf3698b22f5ba Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Sat, 21 May 2011 18:04:23 +0200
    Subject: [PATCH 184/310] Modified german translation
    
    ---
     res/values-de/strings.xml | 12 ++++++------
     1 file changed, 6 insertions(+), 6 deletions(-)
    
    diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
    index ab10542f7..16f6b4c40 100644
    --- a/res/values-de/strings.xml
    +++ b/res/values-de/strings.xml
    @@ -688,7 +688,7 @@ Willkommen zum \"K-9 Mail\"-Setup. K-9 ist eine quelloffene E-Mail-Anwendung fü
         Eine weiteres Konto hinzufügen
         Kontoname
         Ihr Name
    -    Benachrichtigungseinstellungen
    +    Benachrichtigungen
         Klingeln bei neuer Nachricht
         Vibration
         Vibration bei neuer Nachricht
    @@ -1022,12 +1022,12 @@ Willkommen zum \"K-9 Mail\"-Setup. K-9 ist eine quelloffene E-Mail-Anwendung fü
         Löschen
         Nicht löschen
     
    -    als Spam markieren
    -    Wollen sie die Nachricht in den Spam Ordner verschieben?
    +    Als Spam markieren
    +    Wollen Sie diese Nachricht in den Spam-Ordner verschieben?
         Ja
         Nein
     
    -    Anhänge werden heruntergeladen
    +    Anhang wird heruntergeladen
     
         Debug-Meldungen werden mit Hilfe des Android-Logging-Systems aufgezeichnet.
     
    @@ -1038,6 +1038,6 @@ Willkommen zum \"K-9 Mail\"-Setup. K-9 ist eine quelloffene E-Mail-Anwendung fü
         Konto \"%s\" ist nicht verfügbar; Bitte SD-Karte prüfen.
     
         Anhang speichern unter...
    -    Anhang abspeichern
    -    Keine Filebrowser App installiert, wo soll der Anhang abgelegt werden?
    +    Anhang speichern
    +    Es wurde kein Dateimanager gefunden. Wo soll der Anhang abgelegt werden?
     
    
    From 5d6df85aac5a9ded0579f4bfd7dfee56dde8ec95 Mon Sep 17 00:00:00 2001
    From: Koji Arai 
    Date: Wed, 11 May 2011 00:54:17 +0900
    Subject: [PATCH 185/310] possible to toggle to display the quoted message to
     send.
    
    ---
     res/layout/message_compose.xml               |  10 +
     src/com/fsck/k9/activity/MessageCompose.java | 277 ++++++++++---------
     2 files changed, 160 insertions(+), 127 deletions(-)
    
    diff --git a/res/layout/message_compose.xml b/res/layout/message_compose.xml
    index 66f0de097..bc8d89d39 100644
    --- a/res/layout/message_compose.xml
    +++ b/res/layout/message_compose.xml
    @@ -237,6 +237,16 @@
                     android:textColor="@android:color/primary_text_light"
                     android:textAppearance="?android:attr/textAppearanceMedium" />
     
    +            
    +
                 
                  0) {
    -                                mQuotedHtmlContent = new InsertableHtmlContent();
    -                                mQuotedHtmlContent.setQuotedContent(quotedHTML);
    -                                mQuotedHtmlContent.setHeaderInsertionPoint(bodyOffset);
    -                                mQuotedHTML.loadDataWithBaseURL("http://", mQuotedHtmlContent.getQuotedContent(), "text/html", "utf-8", null);
    -                                mQuotedHTML.setVisibility(View.VISIBLE);
    -                                mQuotedTextBar.setVisibility(View.VISIBLE);
    -                                mQuotedTextEdit.setVisibility(View.VISIBLE);
    -                            }
    +                        // Regenerate the quoted html without our user content in it.
    +                        StringBuilder quotedHTML = new StringBuilder();
    +                        quotedHTML.append(text.substring(0, bodyOffset));   // stuff before the reply
    +                        quotedHTML.append(text.substring(bodyOffset + bodyLength));
    +                        if (quotedHTML.length() > 0) {
    +                            mQuotedHtmlContent = new InsertableHtmlContent();
    +                            mQuotedHtmlContent.setQuotedContent(quotedHTML);
    +                            mQuotedHtmlContent.setHeaderInsertionPoint(bodyOffset);
    +                            mQuotedHTML.loadDataWithBaseURL("http://", mQuotedHtmlContent.getQuotedContent(), "text/html", "utf-8", null);
                             }
                         }
                     } else if (mMessageFormat == MessageFormat.TEXT) {
    -                    MessageFormat format = k9identity.get(IdentityField.MESSAGE_FORMAT) != null
    -                                           ? MessageFormat.valueOf(k9identity.get(IdentityField.MESSAGE_FORMAT))
    -                                           : null;
    -                    if (format == null) {
    -                        mMessageContentView.setText(getBodyTextFromMessage(message, MessageFormat.TEXT));
    -                    } else if (format.equals(MessageFormat.HTML)) {
    -                        // We are in text mode, but have an HTML message.
    -                        Part htmlPart = MimeUtility.findFirstPartByMimeType(message, "text/html");
    -                        if (htmlPart != null) { // Shouldn't happen if we were the one who saved it.
    -                            String text = MimeUtility.getTextFromPart(htmlPart);
    -                            if (K9.DEBUG) {
    -                                Log.d(K9.LOG_TAG, "Loading message with offset " + bodyOffset + ", length " + bodyLength + ". Text length is " + text.length() + ".");
    -                            }
    +                    Part textPart = MimeUtility.findFirstPartByMimeType(message, "text/plain");
    +                    if (textPart != null) {
    +                        String text = MimeUtility.getTextFromPart(textPart);
    +                        // If we had a body length (and it was valid), separate the composition from the quoted text
    +                        // and put them in their respective places in the UI.
    +                        if (bodyLength != null && bodyLength + 1 < text.length()) { // + 1 to get rid of the newline we added when saving the draft
    +                            String bodyText = text.substring(0, bodyLength);
    +                            String quotedText = text.substring(bodyLength + 1, text.length());
     
    -                            // Grab our reply text.
    -                            String bodyText = text.substring(bodyOffset, bodyOffset + bodyLength);
    -                            mMessageContentView.setText(Html.fromHtml(bodyText).toString());
    -
    -                            // Regenerate the quoted html without out content in it.
    -                            StringBuilder quotedHTML = new StringBuilder();
    -                            quotedHTML.append(text.substring(0, bodyOffset));   // stuff before the reply
    -                            quotedHTML.append(text.substring(bodyOffset + bodyLength));
    -                            // Convert it to text.
    -                            mQuotedText.setText(HtmlConverter.htmlToText(quotedHTML.toString()));
    -
    -                            mQuotedTextBar.setVisibility(View.VISIBLE);
    -                            mQuotedText.setVisibility(View.VISIBLE);
    +                            mMessageContentView.setText(bodyText);
    +                            mQuotedText.setText(quotedText);
                             } else {
    -                            Log.e(K9.LOG_TAG, "Found an HTML draft but couldn't find the HTML part!  Something's wrong.");
    +                            mMessageContentView.setText(text);
                             }
    -                    } else if (format.equals(MessageFormat.TEXT)) {
    -                        Part textPart = MimeUtility.findFirstPartByMimeType(message, "text/plain");
    -                        if (textPart != null) {
    -                            String text = MimeUtility.getTextFromPart(textPart);
    -                            // If we had a body length (and it was valid), separate the composition from the quoted text
    -                            // and put them in their respective places in the UI.
    -                            if (bodyLength != null && bodyLength + 1 < text.length()) { // + 1 to get rid of the newline we added when saving the draft
    -                                String bodyText = text.substring(0, bodyLength);
    -                                String quotedText = text.substring(bodyLength + 1, text.length());
    -
    -                                mMessageContentView.setText(bodyText);
    -                                mQuotedText.setText(quotedText);
    -
    -                                mQuotedTextBar.setVisibility(View.VISIBLE);
    -                                mQuotedText.setVisibility(View.VISIBLE);
    -                                mQuotedHTML.setVisibility(View.VISIBLE);
    -                            } else {
    -                                mMessageContentView.setText(text);
    -                            }
    -                        }
    -                    } else {
    -                        Log.e(K9.LOG_TAG, "Unhandled message format.");
                         }
    +                } else {
    +                    Log.e(K9.LOG_TAG, "Unhandled message format.");
                     }
     
                     // Set the cursor position if we have it.
    @@ -2170,6 +2198,8 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
                     } catch(Exception e) {
                         Log.e(K9.LOG_TAG, "Could not set cursor position in MessageCompose; ignoring.", e);
                     }
    +
    +                showOrHideQuotedText(QuotedTextMode.valueOf(showQuotedTextMode));
                 }
             } catch (MessagingException me) {
                 /**
    @@ -2178,8 +2208,10 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
                  */
                 Log.e(K9.LOG_TAG, "Error while processing source message: ", me);
             }
    -        mSourceMessageProcessed = true;
    -        mDraftNeedsSaving = false;
    +        finally {
    +            mSourceMessageProcessed = true;
    +            mDraftNeedsSaving = false;
    +        }
         }
     
         /**
    @@ -2200,20 +2232,11 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
                 // Load the message with the reply header.
                 mQuotedHTML.loadDataWithBaseURL("http://", mQuotedHtmlContent.getQuotedContent(), "text/html", "utf-8", null);
     
    -            mQuotedTextBar.setVisibility(View.VISIBLE);
    -            mQuotedHTML.setVisibility(View.VISIBLE);
    -            mQuotedTextEdit.setVisibility(View.VISIBLE);
    -
    -            mQuotedText.setVisibility(View.GONE);
    +            showOrHideQuotedText(QuotedTextMode.SHOW);
             } else if (mMessageFormat == MessageFormat.TEXT) {
                 mQuotedText.setText(quoteOriginalTextMessage(mSourceMessage, content, mAccount.getQuoteStyle()));
     
    -            mQuotedTextBar.setVisibility(View.VISIBLE);
    -            mQuotedText.setVisibility(View.VISIBLE);
    -
    -            mQuotedHtmlContent = null;
    -            mQuotedTextEdit.setVisibility(View.GONE);
    -            mQuotedHTML.setVisibility(View.GONE);
    +            showOrHideQuotedText(QuotedTextMode.SHOW);
             }
         }
     
    @@ -2428,7 +2451,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
                                 populateUIWithQuotedMessage();
                             } catch (MessagingException e) {
                                 // Hm, if we couldn't populate the UI after source reprocessing, let's just delete it?
    -                            deleteQuotedText();
    +                            showOrHideQuotedText(QuotedTextMode.HIDE);
                                 Log.e(K9.LOG_TAG, "Could not re-process source message; deleting quoted text to be safe.", e);
                             }
                         } else {
    
    From ce9b280746728e69a0d28f4fba240464f60b12b3 Mon Sep 17 00:00:00 2001
    From: Koji Arai 
    Date: Sun, 15 May 2011 00:15:01 +0900
    Subject: [PATCH 186/310] Added account preference to display quoted text.
    
    ---
     res/values/strings.xml                             |  3 +++
     res/xml/account_settings_preferences.xml           |  7 +++++++
     src/com/fsck/k9/Account.java                       | 13 +++++++++++++
     src/com/fsck/k9/activity/MessageCompose.java       | 14 +++++++++-----
     .../fsck/k9/activity/setup/AccountSettings.java    |  6 ++++++
     5 files changed, 38 insertions(+), 5 deletions(-)
    
    diff --git a/res/values/strings.xml b/res/values/strings.xml
    index fcdf3539a..0239bcadc 100644
    --- a/res/values/strings.xml
    +++ b/res/values/strings.xml
    @@ -564,6 +564,9 @@ Welcome to K-9 Mail setup.  K-9 is an open source mail client for Android origin
     
         Sending mail
     
    +    Show quoted text by default
    +    When replying to messages, the original message is in your reply.
    +
         Reply after quoted text
         When replying to messages, the original message will appear above your reply.
     
    diff --git a/res/xml/account_settings_preferences.xml b/res/xml/account_settings_preferences.xml
    index 33a29ed60..942eee150 100644
    --- a/res/xml/account_settings_preferences.xml
    +++ b/res/xml/account_settings_preferences.xml
    @@ -239,6 +239,13 @@
                 android:entries="@array/account_settings_quote_style_entries"
                 android:entryValues="@array/account_settings_quote_style_values" />
     
    +        
    +
             
    Date: Wed, 18 May 2011 00:00:16 +0900
    Subject: [PATCH 187/310] Use the Button instead of the ImageButton.
    
    ---
     res/layout/message_compose.xml               | 11 ++++++-----
     res/values/strings.xml                       |  3 ++-
     src/com/fsck/k9/activity/MessageCompose.java |  5 +++--
     3 files changed, 11 insertions(+), 8 deletions(-)
    
    diff --git a/res/layout/message_compose.xml b/res/layout/message_compose.xml
    index bc8d89d39..2cafb2428 100644
    --- a/res/layout/message_compose.xml
    +++ b/res/layout/message_compose.xml
    @@ -237,15 +237,16 @@
                     android:textColor="@android:color/primary_text_light"
                     android:textAppearance="?android:attr/textAppearanceMedium" />
     
    -            
    +                android:layout_alignParentRight="true" />
     
                 
                 No email address could be found.
         Some attachments were not downloaded. They will be downloaded automatically before this message is sent.
         Some attachments cannot be forwarded because they have not been downloaded.
    -
    +    Quote message
     
     
         From: %s <%s>
    @@ -1052,4 +1052,5 @@ Welcome to K-9 Mail setup.  K-9 is an open source mail client for Android origin
         Save attachments to...
         Save attachment
         No file browser found. Where would you like to save this attachment?
    +
     
    diff --git a/src/com/fsck/k9/activity/MessageCompose.java b/src/com/fsck/k9/activity/MessageCompose.java
    index ac94139db..d9ed28141 100644
    --- a/src/com/fsck/k9/activity/MessageCompose.java
    +++ b/src/com/fsck/k9/activity/MessageCompose.java
    @@ -38,6 +38,7 @@ import android.view.View.OnFocusChangeListener;
     import android.view.Window;
     import android.webkit.WebView;
     import android.widget.AutoCompleteTextView.Validator;
    +import android.widget.Button;
     import android.widget.CheckBox;
     import android.widget.EditText;
     import android.widget.ImageButton;
    @@ -179,7 +180,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
         private EditText mSignatureView;
         private EditText mMessageContentView;
         private LinearLayout mAttachments;
    -    private ImageButton mQuotedTextShow;
    +    private Button mQuotedTextShow;
         private View mQuotedTextBar;
         private ImageButton mQuotedTextEdit;
         private ImageButton mQuotedTextDelete;
    @@ -399,7 +400,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
             mMessageContentView = (EditText)findViewById(R.id.message_content);
             mMessageContentView.getInputExtras(true).putBoolean("allowEmoji", true);
             mAttachments = (LinearLayout)findViewById(R.id.attachments);
    -        mQuotedTextShow = (ImageButton)findViewById(R.id.quoted_text_show);
    +        mQuotedTextShow = (Button)findViewById(R.id.quoted_text_show);
             mQuotedTextBar = findViewById(R.id.quoted_text_bar);
             mQuotedTextEdit = (ImageButton)findViewById(R.id.quoted_text_edit);
             mQuotedTextDelete = (ImageButton)findViewById(R.id.quoted_text_delete);
    
    From 54030547dba3e484392efffc6e866601a5a21965 Mon Sep 17 00:00:00 2001
    From: Koji Arai 
    Date: Sun, 22 May 2011 08:45:37 +0900
    Subject: [PATCH 188/310] Improved Japanese translation
    
    ---
     res/values-ja/strings.xml | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
    index bdce1340b..1547aa213 100644
    --- a/res/values-ja/strings.xml
    +++ b/res/values-ja/strings.xml
    @@ -910,10 +910,10 @@ K-9 Mail セットアップにようこそ。\nK-9 は標準のAndroidメール
         起動後に統合フォルダを表示する
     
         アカウントのサイズ表示
    -    表示を速くしたい場合はチェックをはずす
    +    表示を速くしたい場合はチェックしない
     
         検索結果の件数表示
    -    表示を速くしたい場合はチェックをはずす
    +    表示を速くしたい場合はチェックしない
     
         特殊なアカウントを隠す
         統合フォルダと全メッセージを隠す
    
    From dc72efdb0be709f171e9dc8fbc1fd47bdaeb1ba4 Mon Sep 17 00:00:00 2001
    From: Koji Arai 
    Date: Sun, 22 May 2011 08:49:02 +0900
    Subject: [PATCH 189/310] Improved Japanese translation
    
    ---
     res/values-ja/strings.xml | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
    index 1547aa213..82ee33b03 100644
    --- a/res/values-ja/strings.xml
    +++ b/res/values-ja/strings.xml
    @@ -23,7 +23,7 @@
         アカウント一覧
         拡張機能
         %s 
    -    K-9 Accounts
    +    K-9 アカウント
     
         %s:%s 
     
    
    From abb288ee078108c78ebd3fdc533e6f09d146d173 Mon Sep 17 00:00:00 2001
    From: Koji Arai 
    Date: Sun, 22 May 2011 08:54:51 +0900
    Subject: [PATCH 190/310] Improved Japanese translation
    
    ---
     res/values-ja/strings.xml | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
    index 82ee33b03..b660fcc9b 100644
    --- a/res/values-ja/strings.xml
    +++ b/res/values-ja/strings.xml
    @@ -293,7 +293,7 @@ K-9 Mail セットアップにようこそ。\nK-9 は標準のAndroidメール
         すべてダウンロード
     
         
    -    一部のヘッダしか保存されていません。ヘッダをすべて保存するためには、アカウント設定の受信メールサーバ設定で「すべてのヘッダを端末に保存」をチェックしてください。
    +    一部のヘッダしか保存されていません。ヘッダをすべて保存するためには、アカウント設定の受信メールサーバ設定で「ヘッダのダウンロード」をチェックしてください。
         すべてのヘッダをダウンロードしましたが、表示すべき追加ヘッダはありませんでした。
         追加ヘッダをデータベースまたはメールサーバから取得できませんでした。
     
    
    From e894d30d54d265ed7d19cc3458735f901d278e09 Mon Sep 17 00:00:00 2001
    From: Frank071 
    Date: Tue, 24 May 2011 05:32:04 -0700
    Subject: [PATCH 191/310] As requested by Jesse - all NEW: are translated.
    
    ---
     res/values-nl/strings.xml | 134 +++++++++++++++++++-------------------
     1 file changed, 67 insertions(+), 67 deletions(-)
    
    diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
    index 32aed4154..8dec642c0 100644
    --- a/res/values-nl/strings.xml
    +++ b/res/values-nl/strings.xml
    @@ -3,14 +3,14 @@
         K-9 Mail
         K-9 Mail BETA
         Google, The K-9 Dog Walkers.
    -    
    -    
    +    Copyright 2008-%s The K-9 Dog Walkers. Portions Copyright 2006-%s the Android Open Source Project.
    +    Licensed under the Apache License, Version 2.0.
         Auteurs: %s
         http://code.google.com/p/k9mail/wiki/ReleaseNotes
         Revisie Informatie: %s
         http://code.google.com/p/k9mail/
    -    
    -    
    +    De volgende externe bibliotheken worden gebruikt: %s
    +    Emoji icons: %s
     
         Lees Email bijlage
         Sta deze applicatie toe de bijlage van emails te lezen.
    @@ -42,15 +42,15 @@
         \u0020%s/%s
     
         \u0020(Volgende poll @ %s)
    -    
    +    \u0020(Synchroniseren uitgeschakeld)
     
         
         Volgende 
    -     
    +    Vorige 
         OK 
         Annuleer
         Verzenden
    -    
    +    Opnieuw Verzenden
         Selecteren
         Annuleer selectie
         Antwoorden
    @@ -117,7 +117,7 @@
         Gooi instellingen weg
         Prullenbak legen
         Wissen
    -    
    +    Lokale berichten wissen
         Kies sortering
         Omgekeerd sorteren
         Over
    @@ -127,7 +127,7 @@
         Map opties
     
         (Geen onderwerp) 
    -    
    +    Geen datum
         Geen afzender
         Polling
         (Poll %s%s)
    @@ -259,14 +259,14 @@ Welkom bij K-9 Mail setup.  K-9 is een open source mail cliënt voor Android, ge
         Bericht tekst
         -------- Origineel bericht --------
         Subject:
    -    
    +    Verzonden:
         From:
         To:
         CC:
         %s wrote:\n\n
         Ge-quote tekst
         Minimaal 1 ontvanger kiezen.
    -    
    +    Geen email adres gevonden.
         Sommige bijlage zijn niet gedownload. Deze worden automatisch gedownload voor dat dit bericht is verzonden.
         Sommige bijlagen kunnen niet worden doorgestuurd, omdat ze niet zijn gedownload.
     
    @@ -324,11 +324,11 @@ Welkom bij K-9 Mail setup.  K-9 is een open source mail cliënt voor Android, ge
         Laat altijd multi-selecteer selectieboxen zien
         Berichten voorbeelden
         Ruimere lijst items met bericht voorbeelden
    -    
    -    
    -    
    -    
    -    
    +    Preview regels
    +    Toon naam bij bericht
    +    Geef bij voorkeur naam van afzender/geadresseerde weer i.p.v. email adres
    +    Toon naam uit contactenlijst
    +    Geef de naam weer uit het adresboek
         Kleuren contacten
         Niet kleuren van namen in uw lijst met contactpersonen
         Kleuren van namen in uw lijst met contactpersonen
    @@ -343,17 +343,17 @@ Welkom bij K-9 Mail setup.  K-9 is een open source mail cliënt voor Android, ge
         Archief
         Verwijder (alleen berichten bekijken)
         Spam
    -    
    +    Markeer alles als gelezen
         Verzonden
     
         Lock-screen meldingen
         Niet weergegeven onderwerp van het bericht in de notificatie bar als het systeem is vergrendeld
     
     
    -    
    -    
    -    
    -    
    +    Stilteperiode
    +    Schakel beltoon, vibratie en leds uit gedurende de nacht
    +    Stilteperiode start
    +    Stilteperiode eindigt
     
     
         Een nieuwe account instellen
    @@ -370,8 +370,8 @@ Welkom bij K-9 Mail setup.  K-9 is een open source mail cliënt voor Android, ge
         Ophalen account informatie\u2026
         Controleren van inkomende serverinstellingen\u2026
         Controleren van uitgaande serverinstellingen\u2026
    -    
    -    
    +    Authenticatie\u2026
    +    Accountinstellingen worden opgehaald\u2026
         Afronden\u2026
         Annuleren\u2026
     
    @@ -417,10 +417,10 @@ Welkom bij K-9 Mail setup.  K-9 is een open source mail cliënt voor Android, ge
         Downloaden van email headers
         Sla alle headers lokaal op
     
    -    
    -    
    -    
    -    
    +    Externe opslag (SD kaart)
    +    Reguliere interne opslag
    +    %1$s extra interne opslag
    +    Opslag locatie
     
         Wissen berichten
         Onmiddellijk na verwijderen of verplaatsen
    @@ -517,7 +517,7 @@ Welkom bij K-9 Mail setup.  K-9 is een open source mail cliënt voor Android, ge
         250 berichten
         500 berichten
         1000 berichten
    -    
    +    alle berichten
     
     
         Kan bericht niet kopiëren of verplaatsen omdat deze niet gesynchroniseerd is met de server
    @@ -529,7 +529,7 @@ Welkom bij K-9 Mail setup.  K-9 is een open source mail cliënt voor Android, ge
         Aanpassen details
         Doorgaan
     
    -    
    +    Geavanceerd
         Algemene instellingen
         Standaard account
         Standaard account
    @@ -544,8 +544,8 @@ Welkom bij K-9 Mail setup.  K-9 is een open source mail cliënt voor Android, ge
         Notificatie ook voor mail verzonden vanaf een identiteit
         Notificatie opent ongelezen berichten
         Zoekt voor ongelezen berichten wanneer Notificatie is geopend
    -    
    -    
    +    Toon aantal ongelezen
    +    Toon het aantal ongelezen berichten in de \'notification bar\'.
     
         Scroll navigatie knoppen
         Nooit
    @@ -566,16 +566,16 @@ Welkom bij K-9 Mail setup.  K-9 is een open source mail cliënt voor Android, ge
         Antwoorden na quote
         Wanneer u antwoord op berichten, zal het originele bericht boven uw antwoord staan.
     
    -    
    -    
    -    
    +    Berichtopmaak
    +    Platte Tekst (plaatjes en formattering worden verwijderd)
    +    HTML (plaatjes en formattering blijven behouden)
     
    -    
    -    
    -    
    +    Quotestijl bij antwoorden
    +    Prefix (zoals Gmail, Pine)
    +    Header (zoals Outlook, Yahoo!, Hotmail)
     
    -    
    -    
    +    Algemeen
    +    Scherm
         Synchroniseren van mappen
         Mappen
         Lijst berichten
    @@ -591,7 +591,7 @@ Welkom bij K-9 Mail setup.  K-9 is een open source mail cliënt voor Android, ge
         Mappen poll controleer frequentie
         2e klasse controleer frequentie
     
    -    
    +    Opslag
     
     
         Account kleur
    @@ -752,7 +752,7 @@ Welkom bij K-9 Mail setup.  K-9 is een open source mail cliënt voor Android, ge
         Kies identiteit
         Kies identiteit
         Kies account/identiteit
    -    
    +    Verzenden als
     
     
         Ga naar Account Instellingen -> Beheer identiteiten om identiteiten aan te maken
    @@ -794,7 +794,7 @@ Welkom bij K-9 Mail setup.  K-9 is een open source mail cliënt voor Android, ge
         Alleen sommige \"Plus\" accounts staan POP access
      toe om verbinding te krijgen met dit programma. Als het niet mogelijk is om in te loggen met de juiste gebruikersnaam en wachtwoord, heb je misschien geen betaalde \"Plus\" account.  Start de webbrowser om de toegang tot deze e-mailaccount te krijgen.
     
    -    
    +    Als je POP3 wilt gebruiken, moet je het geebruik van POP3 activeren op de Yahoo mail settings pagina.
     
         Onbekend Certificaat
         Accepteer Sleutel
    @@ -831,21 +831,21 @@ Welkom bij K-9 Mail setup.  K-9 is een open source mail cliënt voor Android, ge
         Donker
         Licht
         Algemene instellingen
    -    
    +    Globaal
         Verwijderen van fouten
    -    
    -    
    -    
    +    Privacy
    +    Netwerk
    +    Interactie
         Account Lijst
         Berichten Lijst
         Berichten
         Thema
         Taal
     
    -    
    -    
    -    
    -    
    +    1-kolom layout
    +    Herschik HTML berichten voor kleinere schermen
    +    Apparaat zoom
    +    Gebruik zoom widgets of pinch-zoom als het apparaat dat ondersteunt
     
     
     
    @@ -899,8 +899,8 @@ Welkom bij K-9 Mail setup.  K-9 is een open source mail cliënt voor Android, ge
         Gebaren
         Accepteer gebaren sturing
     
    -    
    -    
    +    Compacte layout-
    +    Pas layout aan zodat er meer op een pagina past
     
         Volume op/neer navigatie
         Spring tussen items door gebruik van de volumeknoppen
    @@ -919,8 +919,8 @@ Welkom bij K-9 Mail setup.  K-9 is een open source mail cliënt voor Android, ge
         Tel zoek resultaten
         Zet uit voor sneller beeldscherm
     
    -    
    -    
    +    Verberg speciale accounts
    +    Verberg de gecombineerde inbox and alle berichtaccounts
     
         %s %s
          - Starred
    @@ -960,7 +960,7 @@ Welkom bij K-9 Mail setup.  K-9 is een open source mail cliënt voor Android, ge
         Bericht onderwerp
         bericht afzender
         Bericht datum
    -    
    +    Preview
     
         Beeld berichten
         bericht afzender
    @@ -1022,22 +1022,22 @@ Welkom bij K-9 Mail setup.  K-9 is een open source mail cliënt voor Android, ge
         Verwijder
         Niet verwijderen
     
    -    
    -    
    -    
    -    
    +    Bevestig verplaatsing naar spam map
    +    Wil je dit bericht echt verplaatsen naar de spam map?
    +    Ja
    +    Nee
     
    -    
    +    Bijlage wordt opgehaald
     
         Debug logging van Android logging systeem ingeschakeld
     
    -    
    -    
    -    
    +    » 
    +    
    +    Kan geen verbinding maken.
     
    -    
    +    Account \"%s\" is niet beschikbaar; controleer opslag
     
    -    
    -    
    -    
    +    Sla bijlagen op naar...
    +    Sla bijlage op
    +    Geen bestandsverkenner gevonden. Waar wil je deze bijlage opslaan?
     
    
    From e6a8dff0d5d9397b4c41e6bcb6c39f65cda5d797 Mon Sep 17 00:00:00 2001
    From: Koji Arai 
    Date: Wed, 25 May 2011 00:15:13 +0900
    Subject: [PATCH 192/310] Correct resources.
    
    ---
     res/values/strings.xml                   | 2 +-
     res/xml/account_settings_preferences.xml | 2 +-
     2 files changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/res/values/strings.xml b/res/values/strings.xml
    index f5e795baa..bdcd6ddd6 100644
    --- a/res/values/strings.xml
    +++ b/res/values/strings.xml
    @@ -564,7 +564,7 @@ Welcome to K-9 Mail setup.  K-9 is an open source mail client for Android origin
     
         Sending mail
     
    -    Show quoted text by default
    +    Quote original message when replying
         When replying to messages, the original message is in your reply.
     
         Reply after quoted text
    diff --git a/res/xml/account_settings_preferences.xml b/res/xml/account_settings_preferences.xml
    index 942eee150..f30ed0065 100644
    --- a/res/xml/account_settings_preferences.xml
    +++ b/res/xml/account_settings_preferences.xml
    @@ -243,7 +243,7 @@
                 android:persistent="false"
                 android:key="default_quoted_text_shown"
                 android:title="@string/account_settings_default_quoted_text_shown_label"
    -            android:defaultValue="false"
    +            android:defaultValue="true"
                 android:summary="@string/account_settings_default_quoted_text_shown_summary" />
     
             
    Date: Wed, 25 May 2011 00:25:23 +0900
    Subject: [PATCH 193/310] Refactoring
    
    ---
     src/com/fsck/k9/activity/MessageCompose.java | 11 ++++-------
     1 file changed, 4 insertions(+), 7 deletions(-)
    
    diff --git a/src/com/fsck/k9/activity/MessageCompose.java b/src/com/fsck/k9/activity/MessageCompose.java
    index d9ed28141..0230c632a 100644
    --- a/src/com/fsck/k9/activity/MessageCompose.java
    +++ b/src/com/fsck/k9/activity/MessageCompose.java
    @@ -840,13 +840,10 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
                                       .getBoolean(STATE_KEY_BCC_SHOWN) ? View.VISIBLE : View.GONE);
             showOrHideQuotedText((QuotedTextMode)savedInstanceState.getSerializable(STATE_KEY_QUOTED_TEXT_MODE));
     
    -        if (mQuotedTextMode != QuotedTextMode.NONE) {
    -            if (mMessageFormat == MessageFormat.HTML) {
    -                mQuotedHtmlContent = (InsertableHtmlContent) savedInstanceState.getSerializable(STATE_KEY_HTML_QUOTE);
    -                if (mQuotedHtmlContent != null && mQuotedHtmlContent.getQuotedContent() != null) {
    -                    mQuotedHTML.loadDataWithBaseURL("http://", mQuotedHtmlContent.getQuotedContent(), "text/html", "utf-8", null);
    -                    mQuotedTextEdit.setVisibility(View.VISIBLE);
    -                }
    +        if (mQuotedTextMode != QuotedTextMode.NONE && mMessageFormat == MessageFormat.HTML) {
    +            mQuotedHtmlContent = (InsertableHtmlContent) savedInstanceState.getSerializable(STATE_KEY_HTML_QUOTE);
    +            if (mQuotedHtmlContent != null && mQuotedHtmlContent.getQuotedContent() != null) {
    +                mQuotedHTML.loadDataWithBaseURL("http://", mQuotedHtmlContent.getQuotedContent(), "text/html", "utf-8", null);
                 }
             }
             mDraftUid = savedInstanceState.getString(STATE_KEY_DRAFT_UID);
    
    From a4f7288d3749b8ed5c89ee82b59e52bee979b2f2 Mon Sep 17 00:00:00 2001
    From: Koji Arai 
    Date: Thu, 28 Apr 2011 00:23:16 +0900
    Subject: [PATCH 194/310] Avoid NullPointerException. The name parameter in
     Content-Type may be not set.
    
    ---
     src/com/fsck/k9/mail/store/LocalStore.java | 26 ++++++++++++----------
     1 file changed, 14 insertions(+), 12 deletions(-)
    
    diff --git a/src/com/fsck/k9/mail/store/LocalStore.java b/src/com/fsck/k9/mail/store/LocalStore.java
    index c0607cd39..55b630d66 100644
    --- a/src/com/fsck/k9/mail/store/LocalStore.java
    +++ b/src/com/fsck/k9/mail/store/LocalStore.java
    @@ -1672,20 +1672,22 @@ public class LocalStore extends Store implements Serializable {
                                                     body = new LocalAttachmentBody(Uri.parse(contentUri), mApplication);
                                                 }
     
    -                                            String encoded_name = EncoderUtil.encodeIfNecessary(name,
    -                                                                  EncoderUtil.Usage.WORD_ENTITY, 7);
    -
                                                 MimeBodyPart bp = new LocalAttachmentBodyPart(body, id);
    -                                            bp.setHeader(MimeHeader.HEADER_CONTENT_TYPE,
    -                                                         String.format("%s;\n name=\"%s\"",
    -                                                                       type,
    -                                                                       encoded_name));
                                                 bp.setHeader(MimeHeader.HEADER_CONTENT_TRANSFER_ENCODING, "base64");
    -                                            bp.setHeader(MimeHeader.HEADER_CONTENT_DISPOSITION,
    -                                                         String.format("%s;\n filename=\"%s\";\n size=%d",
    -                                                                       contentDisposition,
    -                                                                       encoded_name, // TODO: Should use encoded word defined in RFC 2231.
    -                                                                       size));
    +                                            if (name != null) {
    +                                                String encoded_name = EncoderUtil.encodeIfNecessary(name,
    +                                                                                                    EncoderUtil.Usage.WORD_ENTITY, 7);
    +
    +                                                bp.setHeader(MimeHeader.HEADER_CONTENT_TYPE,
    +                                                             String.format("%s;\n name=\"%s\"",
    +                                                                           type,
    +                                                                           encoded_name));
    +                                                bp.setHeader(MimeHeader.HEADER_CONTENT_DISPOSITION,
    +                                                             String.format("%s;\n filename=\"%s\";\n size=%d",
    +                                                                           contentDisposition,
    +                                                                           encoded_name, // TODO: Should use encoded word defined in RFC 2231.
    +                                                                           size));
    +                                            }
     
                                                 bp.setHeader(MimeHeader.HEADER_CONTENT_ID, contentId);
                                                 /*
    
    From cb46f170cdc93b9341413a1cf59c1d5a5d946e68 Mon Sep 17 00:00:00 2001
    From: Koji Arai 
    Date: Wed, 29 Dec 2010 16:42:11 +0900
    Subject: [PATCH 195/310] Should reset visibleLimit on clear messages.
    
    ---
     src/com/fsck/k9/mail/store/LocalStore.java | 1 +
     1 file changed, 1 insertion(+)
    
    diff --git a/src/com/fsck/k9/mail/store/LocalStore.java b/src/com/fsck/k9/mail/store/LocalStore.java
    index 55b630d66..2fb64dd07 100644
    --- a/src/com/fsck/k9/mail/store/LocalStore.java
    +++ b/src/com/fsck/k9/mail/store/LocalStore.java
    @@ -2572,6 +2572,7 @@ public class LocalStore extends Store implements Serializable {
                 setPushState(null);
                 setLastPush(0);
                 setLastChecked(0);
    +            setVisibleLimit(mAccount.getDisplayCount());
             }
     
             private void resetUnreadAndFlaggedCounts() {
    
    From b4f37122463eb916d874ded2c99271844fd850e2 Mon Sep 17 00:00:00 2001
    From: Koji Arai 
    Date: Sat, 19 Feb 2011 23:10:51 +0900
    Subject: [PATCH 196/310] Should retrieve just visibleLimit messages when the
     local folder is cleared.
    
    ---
     src/com/fsck/k9/controller/MessagingController.java | 2 +-
     src/com/fsck/k9/mail/store/LocalStore.java          | 7 +------
     2 files changed, 2 insertions(+), 7 deletions(-)
    
    diff --git a/src/com/fsck/k9/controller/MessagingController.java b/src/com/fsck/k9/controller/MessagingController.java
    index fd4e0f7f1..f8cd2167f 100644
    --- a/src/com/fsck/k9/controller/MessagingController.java
    +++ b/src/com/fsck/k9/controller/MessagingController.java
    @@ -793,7 +793,7 @@ public class MessagingController implements Runnable {
                 LocalStore localStore = account.getLocalStore();
                 LocalFolder localFolder = localStore.getFolder(folder);
                 if (localFolder.getVisibleLimit() > 0) {
    -                localFolder.setVisibleLimit(localFolder.getVisibleLimit() + account.getDisplayCount());
    +                localFolder.setVisibleLimit(localFolder.getVisibleLimit() + localFolder.getMessageCount());
                 }
                 synchronizeMailbox(account, folder, listener, null);
             } catch (MessagingException me) {
    diff --git a/src/com/fsck/k9/mail/store/LocalStore.java b/src/com/fsck/k9/mail/store/LocalStore.java
    index 2fb64dd07..52d28b8d7 100644
    --- a/src/com/fsck/k9/mail/store/LocalStore.java
    +++ b/src/com/fsck/k9/mail/store/LocalStore.java
    @@ -485,9 +485,6 @@ public class LocalStore extends Store implements Serializable {
                         cursor = db.rawQuery("SELECT COUNT(*) FROM messages", null);
                         cursor.moveToFirst();
                         return cursor.getInt(0);   // message count
    -
    -
    -
                     } finally {
                         if (cursor != null) {
                             cursor.close();
    @@ -497,8 +494,6 @@ public class LocalStore extends Store implements Serializable {
             });
         }
     
    -
    -
         public void getMessageCounts(final AccountStats stats) throws MessagingException {
             final Account.FolderMode displayMode = mAccount.getFolderDisplayMode();
     
    @@ -1269,7 +1264,7 @@ public class LocalStore extends Store implements Serializable {
                             }
                             Cursor cursor = null;
                             try {
    -                            cursor = db.rawQuery("SELECT COUNT(*) FROM messages WHERE folder_id = ?",
    +                            cursor = db.rawQuery("SELECT COUNT(*) FROM messages WHERE deleted = 0 and folder_id = ?",
                                                      new String[] {
                                                          Long.toString(mFolderId)
                                                      });
    
    From b05af904efa1fff37eedd98cd2f0df91129bc36a Mon Sep 17 00:00:00 2001
    From: Andrew Chen 
    Date: Tue, 24 May 2011 12:43:32 -0700
    Subject: [PATCH 197/310] Update .iml for IntelliJ IDEA 10.5 (Android SDK is
     now the platform SDK); remove unused compile only libs.
    
    ---
     k9mail.iml | 29 -----------------------------
     1 file changed, 29 deletions(-)
    
    diff --git a/k9mail.iml b/k9mail.iml
    index b5267d68f..1f9d13dd0 100644
    --- a/k9mail.iml
    +++ b/k9mail.iml
    @@ -3,7 +3,6 @@
       
         
           
    -        
     
         
    @@ -127,6 +130,9 @@
             524288
             1048576
             2097152
    +        5242880
    +        10485760
    +        0
         
     
         
    diff --git a/res/values/strings.xml b/res/values/strings.xml
    index 710bf894a..243e6d3d8 100644
    --- a/res/values/strings.xml
    +++ b/res/values/strings.xml
    @@ -617,6 +617,8 @@ Welcome to K-9 Mail setup.  K-9 is an open source mail client for Android origin
         512Kb
         1Mb
         2Mb
    +    5Mb
    +    10Mb
         any size (no limit)
     
         Sync messages from
    diff --git a/src/com/fsck/k9/controller/MessagingController.java b/src/com/fsck/k9/controller/MessagingController.java
    index 079b72812..028ebfcd3 100644
    --- a/src/com/fsck/k9/controller/MessagingController.java
    +++ b/src/com/fsck/k9/controller/MessagingController.java
    @@ -1441,7 +1441,8 @@ public class MessagingController implements Runnable {
                             return;
                         }
     
    -                    if (message.getSize() > account.getMaximumAutoDownloadMessageSize()) {
    +                    if (account.getMaximumAutoDownloadMessageSize() > 0 &&
    +                    message.getSize() > account.getMaximumAutoDownloadMessageSize()) {
                             largeMessages.add(message);
                         } else {
                             smallMessages.add(message);
    @@ -1674,8 +1675,11 @@ public class MessagingController implements Runnable {
                          * the account's autodownload size limit, otherwise mark as only a partial
                          * download.  This will prevent the system from downloading the same message
                          * twice.
    +                     *
    +                     * If there is no limit on autodownload size, that's the same as the message
    +                     * being smaller than the max size
                          */
    -                    if (message.getSize() < account.getMaximumAutoDownloadMessageSize()) {
    +                    if (account.getMaximumAutoDownloadMessageSize() == 0 || message.getSize() < account.getMaximumAutoDownloadMessageSize()) {
                             localMessage.setFlag(Flag.X_DOWNLOADED_FULL, true);
                         } else {
                             // Set a flag indicating that the message has been partially downloaded and
    diff --git a/src/com/fsck/k9/mail/store/ImapStore.java b/src/com/fsck/k9/mail/store/ImapStore.java
    index b639a11f2..1ee09fc75 100644
    --- a/src/com/fsck/k9/mail/store/ImapStore.java
    +++ b/src/com/fsck/k9/mail/store/ImapStore.java
    @@ -1110,7 +1110,12 @@ public class ImapStore extends Store {
                     fetchFields.add("BODYSTRUCTURE");
                 }
                 if (fp.contains(FetchProfile.Item.BODY_SANE)) {
    -                fetchFields.add(String.format("BODY.PEEK[]<0.%d>", mAccount.getMaximumAutoDownloadMessageSize()));
    +                // If the user wants to download unlimited-size messages, don't go only for the truncated body
    +                if (mAccount.getMaximumAutoDownloadMessageSize() > 0) {
    +                    fetchFields.add(String.format("BODY.PEEK[]<0.%d>", mAccount.getMaximumAutoDownloadMessageSize()));
    +                } else {
    +                    fetchFields.add("BODY.PEEK[]");
    +                }
                 }
                 if (fp.contains(FetchProfile.Item.BODY)) {
                     fetchFields.add("BODY.PEEK[]");
    diff --git a/src/com/fsck/k9/mail/store/Pop3Store.java b/src/com/fsck/k9/mail/store/Pop3Store.java
    index a307c8484..f6b8f1063 100644
    --- a/src/com/fsck/k9/mail/store/Pop3Store.java
    +++ b/src/com/fsck/k9/mail/store/Pop3Store.java
    @@ -582,8 +582,12 @@ public class Pop3Store extends Store {
                              * To convert the suggested download size we take the size
                              * divided by the maximum line size (76).
                              */
    -                        fetchBody(pop3Message,
    -                                  (mAccount.getMaximumAutoDownloadMessageSize() / 76));
    +                        if (mAccount.getMaximumAutoDownloadMessageSize() > 0) {
    +                            fetchBody(pop3Message,
    +                                      (mAccount.getMaximumAutoDownloadMessageSize() / 76));
    +                        } else {
    +                            fetchBody(pop3Message, -1);
    +                        }
                         } else if (fp.contains(FetchProfile.Item.STRUCTURE)) {
                             /*
                              * If the user is requesting STRUCTURE we are required to set the body
    diff --git a/src/com/fsck/k9/mail/store/WebDavStore.java b/src/com/fsck/k9/mail/store/WebDavStore.java
    index 81a498f25..dfd3d9155 100644
    --- a/src/com/fsck/k9/mail/store/WebDavStore.java
    +++ b/src/com/fsck/k9/mail/store/WebDavStore.java
    @@ -1411,7 +1411,11 @@ public class WebDavStore extends Store {
                 }
     
                 if (fp.contains(FetchProfile.Item.BODY_SANE)) {
    -                fetchMessages(messages, listener, (mAccount.getMaximumAutoDownloadMessageSize() / 76));
    +                if (mAccount.getMaximumAutoDownloadMessageSize() > 0) {
    +                    fetchMessages(messages, listener, (mAccount.getMaximumAutoDownloadMessageSize() / 76));
    +                } else {
    +                    fetchMessages(messages, listener, -1);
    +                }
                 }
                 if (fp.contains(FetchProfile.Item.BODY)) {
                     fetchMessages(messages, listener, -1);
    
    From 55a014a8a2228923c1b3ea685cbbaefd46336285 Mon Sep 17 00:00:00 2001
    From: =?UTF-8?q?S=C3=A1ndor=20P=C3=A9ter=20Nagy?= 
    Date: Sat, 2 Jul 2011 15:38:25 -0400
    Subject: [PATCH 247/310] Added a Hungarian translation
    
    ---
     res/values-hu/strings.xml | 857 ++++++++++++++++++++++++++++++++++++++
     res/values/arrays.xml     |   1 +
     2 files changed, 858 insertions(+)
     create mode 100644 res/values-hu/strings.xml
    
    diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
    new file mode 100644
    index 000000000..e64553740
    --- /dev/null
    +++ b/res/values-hu/strings.xml
    @@ -0,0 +1,857 @@
    +
    +
    +    K-9 Mail
    +    K-9 Mail BETA
    +    Google, The K-9 Dog Walkers.
    +    Copyright 2008-%s The K-9 Dog Walkers. Portions Copyright 2006-%s the Android Open Source Project.
    +    Licensed under the Apache License, Version 2.0.
    +    Authors: %s
    +    http://code.google.com/p/k9mail/wiki/ReleaseNotes
    +    Revision Information: %s
    +    http://code.google.com/p/k9mail/
    +    "We're using the following third-party libraries: %s"
    +    Emoji icons: %s
    +    Levélmellékletek megnyitása
    +    Az alkalmazás engedélyezi a levélmellékletek megnyitását.
    +    Levelek olvasása
    +    Az alkalmazás engedélyezi az emailek olvasását.
    +    Levelek törlése
    +    Az alkalmazás engedélyezi az emailek törlését.
    +    About %s
    +    Fióklista
    +    Haladó beállítások
    +    %s
    +    K-9 fiókok
    +    %s:%s
    +    Levélírás
    +    Hibakeresés
    +    Válasszon mappát
    +    Válasszon színt
    +    %s%s%s
    +    " [%d]"
    +    " (%s:%s%s)"
    +    " (Letöltés %s:%s%s)"
    +    " (Küldés %s%s)"
    +    " (Feldolgozás %s:%s%s)"
    +    " %s/%s"
    +    " (Frissítés @ %s)"
    +    " (Nincs frissítve)"
    +    Tovább
    +    Vissza
    +    OK
    +    Mégse
    +    Küldés
    +    Újraküldés
    +    Megjelöl
    +    Nem jelöl
    +    Válasz
    +    Válasz mindenkinek
    +    Törlés
    +    Archiválás
    +    Levélszemét
    +    Mappa törlése
    +    Továbbítás
    +    Áthelyez
    +    Folytatás
    +    Rendben
    +    Töröl
    +    Mégsem
    +    Piszkozat
    +    Újból
    +    Frissít
    +    Levelek frissítése
    +    Üzenet küldése
    +    Mappa lista
    +    Mappák frissítése
    +    Mindent olvasottnak jelöl
    +    Új fiók
    +    Levélírás
    +    Keresés
    +    Keresés eredménye
    +    Beállítások
    +    Megnyit
    +    Fiók beállításai
    +    Mappa beállításai
    +    Általános beállítások
    +    Fiók törlése
    +    Függőben lévők törlése
    +    Fiókok
    +    
    +    
    +    Olvas
    +    Olvasottnak jelöl
    +    Megosztás
    +    Küldő választása
    +    Mindent olvasottnak jelöl
    +    "A '%s' fiók minden üzenetét olvasottnak jelöli?"
    +    Csillagos
    +    Csillag törlése
    +    Másolás
    +    Mutassa a teljes fejlécet
    +    Kompakt fejléc mutatása
    +    Szöveg kijelölése
    +    Olvasatlannak jelöl
    +    Áthelyez a
    +    Mappák
    +    Részletek be/ki
    +    Másolatot kap
    +    Tárgy
    +    Melléklet
    +    Kép-melléklet csatolása
    +    Videó-melléklet csatolása
    +    Ideiglenes beállítások
    +    Lomtár ürítése
    +    Biztonságos törlés
    +    Helyi üzenetek törlése
    +    Sorbarendezés módja
    +    Fordított sorrendben
    +    Névjegy
    +    Beállítások
    +    Fiók beállításai
    +    Mappa beállítási
    +    (nincs tárgy)
    +    Nincs dátum
    +    Nincs feladó
    +    Letöltés
    +    (Letöltés %s%s)
    +    Üzenetek betöltése…
    +    Kapcsolódási hiba
    +    Nincs ilyen üzenet
    +    Hiba
    +    Küldés
    +    Hibás letöltések újratöltése
    +    Az utolsó %d levél frissítése
    +    GB
    +    MB
    +    KB
    +    B
    +    \"%s\" fiók tömörítése %s helyett %s
    +    Fiók tömörítése \"%s\"
    +    Fiók takarítása \"%s\"
    +    A \"%sújbóli létrehozása
    +    Új levél
    +    Új levél %s -tól
    +    %d Olvasatlan (%s)
    +    %d Új üzenet (%s)
    +    a %d fiókban
    +    Levél nincs elküldve
    +    Levelek ellenörzése: %s:%s
    +    Levelek ellenörzése
    +    Küldés a %s fiókkal
    +    Levél küldése
    +    :
    +    Érkezett
    +    Postázatlan
    +    Piszkozat
    +    Lomtár
    +    Elküldött
    +    Archivált
    +    Levélszemét
    +    %s
    +    %s
    +    %s
    +    %s
    +    %s
    +    Néhány üzenetet nem sikerült elküldeni
    +    Nézze meg a %s mappát a részletekért.
    +    "A K-9 hibát észlelt üzenetküldés közben. A probléma miatt elképzelhető, hogy a levél nem érkezik meg, de az is lehet hogy igen. 
    +
    +Az ilyen hibás leveleket csillag jelzi a postázandó mappában. Ha eltávolítja a csillagot a K-9 megpróbálja újból elküldeni a levelet. Hosszan a Postázatlan mappára kattintva válassza az Üzenetek küldését.
    +
    + A %s tartalmaz küldéssel kapcsolatos hibákat."
    +    K-9 riasztás
    +    A szinkronizáció és a levélküldés felfüggesztve, hálozati kapcsolat hiánya miatt.
    +    Nincs több üzenet
    +    "Üdvözöljük a K-9 Mail beállításokban. A K-9 egy nyílt forráskódú levelezőprogram Androidra, a sima mail kliens alapjaira helyezve. 
    + 
    +K-9 továbbfejlesztett funkciói: 
    + * Push mail using IMAP IDLE 
    + * Jobb teljesítmény 
    + * Message refiling 
    + * E-mail aláírások 
    + * Titkos másolat 
    + * Mappa-előfizetések 
    + * Minden mappa szinkronizálása 
    + * Válasz cím beállítása 
    + * Gyorsbillentyűk 
    + * Jobb IMAP támogatás 
    + * Mellékletek mentése a memóriakártyára 
    + * Kuka ürítése 
    + * Üzenetek válogatás 
    + * ...és még sok más
    +
    +Magyarította: Deák Tamás (maya98) és RootRulez  
    + 
    +Vegye figyelembe, hogy a K-9 nem támogatja a legtöbb ingyenes hotmail fiókot és még sok más klienst. Történnek furcsaságok, ha Microsoft Exchange-el kommunikál.
    + Hibajelentéseivel hozzájárul az újabb verziók tökéletesítéséhez, kérdéseit itt teheti fel http://k9mail.googlecode.com/"
    +    Verzió: %s
    +    Hibakeresés
    +    Extra diagnosztikai naplózás
    +    Személyes adatok naplózása
    +    Jelszavak naplózása
    +    K-9 Levlező program Android rendszerhez
    +    Minden levél
    +    Legújabb üzenetek az összes fiókból
    +    Minden beérkezett üzenet
    +    %s:%s %s %s %s %s
    +    Többi levél letöltése
    +    a:%s
    +    Törlés
    +    Olvasottnak jelöl
    +    Olvasattlannak jelöl
    +    Csillagos
    +    Csillag törlése
    +    Címzett
    +    Másolat
    +    Titkos másolat
    +    Tárgy
    +    Levél szövege
    +    -------- Eredeti levél --------
    +    Tárgy:
    +    Küldve:
    +    Feladó:
    +    Címzett:
    +    Másolat:
    +    "%s írta:
    +
    +"
    +    Idézet
    +    Legalább egy címzetted adjon meg.
    +    E-mail cím nem található.
    +	Néhány melléklet nem lett letöltve. Levélküldés előtt automatikusan letöltődnek.
    +    Néhány mellékletet nem lehet továbbítani, mert nem lettek letöltve.
    +    Feladó: %s <%s>
    +    Címzett:
    +    Másolat:
    +    Megnyit
    +    Mentés
    +    
    +    
    +    Archivál
    +    Áthelyez
    +    Levélszemét
    +    MMM dd yyyy hh:mm a
    +    %s mellékletei a SD kártyára mentve.
    +    Nem lehet a mellékletet az SD kártyára menteni.
    +    Válassza a \"Képek mutatását\" a beágyazott képek megjelenítéséhez.
    +    Képek mutatása
    +    Melléklet letöltése.
    +    %s nincs társítva semmihez.
    +    Teljes üzenet letöltése
    +    Nincs minden fejléc letöltve. Válassza a \"Minden levélfejléc letöltése\" opciót a bejövő szerverbeállításoknál.
    +    Minden fejléc letöltve, de nincs mind megjelenítve.
    +    Nem sikerült betölteni az összes fejlécet adatbázishiba, vagy email szerver hiba miatt.
    +    Mappák
    +    Új mappa
    +    Új mappa neve
    +    (Push)
    +    Összes ettől a feladótol
    +    Levél átmásolva
    +    Levél áthelyezve
    +    Levél törölve
    +    Levél eldobva
    +    Levél mentve a piszkozatokba
    +    Levél törlése nem sikerült
    +    Névjegy %s
    +    Verzió: %s
    +    Csillagok
    +    Csillag jelzi a fontos leveleket
    +    Többszörös kijelölés
    +    Kijelölő négyzetet a levelek mellet
    +    Levelek előnézete
    +    Üzenetek bővített előnézete
    +    Előnézeti sorok száma
    +    Nevek mutatása
    +    Ha a címtárban szerepel az email cím, a hozzá tartozó név megjelenítése
    +    Névjegyek mutatása
    +    Használja a címzettek nevét ha címtárban szerepel
    +    Névjegyek színe
    +    Ne használjon színeket a névjegyzékben
    +    Színek használata a névjegyzékben
    +    Fix szélleségű betűk
    +    Fix szélességű betűtípus használata a sima szöveges üzeneteknél
    +    Visszalépés törlés után
    +    Törlés után visszalép a levelek listájára
    +    Parancsok megerősítése
    +    Üzenet megjelenítése a parancs végrehatása előtt
    +    Archivál
    +    Törlés (csak üzenetek nézet)
    +    Levélszemét
    +    Összes megjelölése olvasottként
    +	Küldés
    +    Képernyőzár értesítések
    +    Lezárt képernyőnél ne mutassa a levelek tárgyát a állapotsoron
    +    Csendes mód
    +    Éjszakára kikapcsolja a jelzőhangokat, rezgést, villogást
    +    Csendes mód kezdete
    +    Csendes mód vége
    +    Új fiók létrehozása
    +    A fiókhoz használt email cím:
    +    (Másik %d fiók létrehozása.)
    +    Email cím
    +    %s nem mefelelő formátumú email cím.
    +    %s már egy létezik.
    +    Jelszó
    +    Ez legyen az alapértelmezett levélküldő
    +    Kézi beállítás
    +    
    +    Fiók adatainak ellenörzése…
    +    Bejövő szerver tesztelése…
    +    Kimenő szerver tesztelése…
    +    Hitelesítés…
    +    Fiók adatainak letöltése…
    +    Befejezés…
    +    Megszakítás…
    +    Majdnem kész!
    +    Az ön fiókja használatra kész, még pár személyes adat hiányzik!
    +    Adjon a fióknak nevet (nem kötelező):
    +    Adja meg a nevét (elküldött leveleknél ez jelenik meg):
    +    "A fiókbeállítások sikerültek!
    +
    +Levelek letöltése…"
    +    Fiók típusa
    +    Kiszolgálótípus
    +    POP3
    +    IMAP
    +    Exchange (WebDAV)
    +    Bejövő szerver
    +    Felhasználónév
    +    Jelszó
    +    POP3 szerver
    +    IMAP szerver
    +    Exchange szerver
    +    Port
    +    Kapcsolat biztonsága
    +    Hitelesítés típus
    +    Nincs
    +    SSL (ha elérhető)
    +    SSL (mindig)
    +    TLS (ha elérhető)
    +    TLS (mindig)
    +    Üzenet törlésekor
    +    Ne törlődjön a szerverről
    +    7 nap múlva
    +    Törlődjön a szerverről
    +    Jelölje olvasottnak
    +    Használjon tömörítést a hálózaton:
    +    Mobil
    +    Wi-Fi
    +    Egyéb
    +    Fejlécek letöltése
    +    Minden levélfejléc letöltése
    +    Külső tárhely (SD kártya)
    +    Belső memória
    +    %1$s egyéb belső tároló
    +    Levelek tárolási helye
    +    Biztonságos törlés véglegesítése
    +    Azonnal
    +    Frissítés után
    +    Kézileg
    +    IMAP útvonal prefix
    +    (automatikusan használja a NAMESPACE ha lehetséges)
    +    Piszkozatok mappája
    +    Elküldöttek mappája
    +    Lomtár mappája
    +    Archiváltak mappája
    +    Levélszemét mappája
    +    Csak a megjelölt mappákat
    +    Minden mappa kibontása
    +    OWA útvonal
    +    Választható
    +    Hitelesítési útvonal
    +    Választható
    +    Mailbox álnév
    +    Választható
    +    Kimenő szerver beállításai
    +    SMTP szerver
    +    Port
    +    Kapcsolat biztonsága
    +    Nincs
    +    SSL
    +    TLS (ha lehetséges)
    +    TLS (mindig)
    +    Bejelentkezés szükséges
    +    Felhasználónév
    +    Jelszó
    +    Hitelesítés típusa
    +    Felhasználónév & jelszó
    +    Felhasználónév
    +    Jelszó
    +    POP az SMTP előtt
    +    IMAP az SMTP előtt
    +    WebDAV (Exchange) az SMTP előtt
    +    Hibás beállítás: %s
    +    Fiók beállításai
    +    Tömörítés
    +    Üzenetek törlése!
    +    Adatok helyreállítása
    +    Új levelek ellenőrzése
    +    Soha
    +    1 percenként
    +    5 percenként
    +    10 percenként
    +    15 percenként
    +    30 percenként
    +    Minden órában
    +    2 óránként
    +    3 óránként
    +    6 óránként
    +    12 óránként
    +    24 óránként
    +    Küldéskor új levelek letöltése
    +    Azonnali levélfogadás engedélyezése
    +    Ha a szerver támogatja, azonnal értesítést kapunk az érkező levelekről. Ez az opció csökkenti a telefon teljesítményét.
    +    Frissítés tétlen kapcsolatkor
    +    Percenként
    +    2 percenként
    +    3 percenként
    +    6 percenként
    +    12 percenként
    +    24 percenként
    +    36 percenként
    +    48 percenként
    +    60 percenként
    +    Ez az alapértelmezett levélküldő fiók
    +    Értesítés email érkezésekor
    +    Értesítés adatszinkronizáláskor
    +    Látható levelek száma
    +    10 levél
    +    25 levél
    +    50 levél
    +    100 levél
    +    250 levél
    +    500 levél
    +    1000 levél
    +    Minden levél
    +    Ez a levél nem másolható illetve mozgatható máshova, mert nincs szinkronizálva a szerverrel.
    +    A konfigurálás nem sikerült
    +    "Felhasználónév vagy a jelszó hibás.
    +(%s)"
    +    "Nem lehet biztonságosan kapcsolódni a szerverhez.
    +(%s)"
    +    "Nem lehet kapcsolódni a szerverhez.
    +(%s)"
    +    Módosítás
    +    Tovább
    +    Haladó
    +    Fiók beállításai
    +    Alapértelmezett fiók
    +    Alapértelmezett fiók
    +    Levélküldéskor ez a fiók az alapértelmezett
    +    Értesítés új levélnél
    +    Értesítés szinkronizálásnál
    +    Az email címe
    +    Értesítés az állapotsoron ha új levél érkezett
    +    Értesítés az állapotsoron adatszinkronizálásánál
    +    Összevont beérkezett üzenetek
    +    Értesítés küldéskor
    +    Mutassa az állapotsoron ha a küldés sikeres volt
    +    Értesítés megnyitása
    +    Értesítésre kattintva megnyitja az olvasatlan üzeneteket
    +    Olvasatlanok kijelzése
    +    Olvasatlan levelek száma az állapotsoron.
    +    Görgetés iránygombokkal
    +    Soha
    +    Ha van billentyűzet
    +    Mindig
    +    Művelet gombok megjelenítése
    +    Mutassa a Mozgatás, Archív és Levélszemét gombokat
    +    Művelet gombok görgetése
    +    Képek megjelenítése
    +    Soha
    +    Csak az ismerősökét
    +    Mindig
    +    Levelek küldése
    +    Válasz az idézet után
    +    Válaszlevélnél az eredeti üzenet fent jelenik meg
    +    Levél formátuma
    +    Sima szöveg (képek és formázás nélkül)
    +    HTML (képekkel és formázással)
    +    Válaszlevél stílusa
    +    Előtag (pl. Gmail, Pine)
    +    Fejléc (pl. Outlook, Yahoo!, Hotmail)
    +    Általános beállítások
    +    Fiók testreszabása
    +    Levelek letöltése
    +    Mappák
    +    Levelek listázása
    +    Levelek megjelenítése
    +    Idézett szöveg előtagja
    +    Titkosítás
    +    OpenPGP Provider
    +    None
    +    nem elérhető
    +    Auto aláírás
    +    Használja az email címet a titkosítási kulcshoz
    +    Frissítés gyakorisága
    +    Másodlagosak frissítési gyakorisága
    +    Tárolás
    +    Fiók színe
    +    Válasszon egyéni színt a fiókhoz
    +    Figyelmeztető LED színe
    +    Telefon LED színe figyelmeztetéskor
    +    Helyi mappa mérete
    +    Letölthető levélméret
    +    1Kb
    +    2Kb
    +    4Kb
    +    8Kb
    +    16Kb
    +    32Kb
    +    64Kb
    +    128Kb
    +    256Kb
    +    512Kb
    +    1Mb
    +    2Mb
    +    nincs korlátozva
    +    Dátum szerint
    +    mindent (nincs időkorlát)
    +    csak a maiak
    +    elmúlt 2 nap
    +    elmúlt 3 nap
    +    elmúlt hét
    +    elmúlt 2 hét
    +    elmúlt 3 hét
    +    elmúlt hónap
    +    elmúlt 2 hónap
    +    elmúlt 3 hónap
    +    elműlt 6 hónap
    +    az elmúlt év
    +    Megjelenítendő mappák
    +    Összes
    +    Csak az elsődleges
    +    Első és Másodlagosak
    +    Minden, kivéve a Másodlagosak
    +    Letöltendő mappák
    +    Összes
    +    Csak az elsődlegesek
    +    Első és Másodlagosak
    +    Minden, kivéve a Másodlagosak
    +    Nincs
    +    Azonnali levélfogadás
    +    Minden
    +    Csak az Elsődleges mappák
    +    Első és Másodlagos mappák
    +    Minden, kivéve a Másodlagosak
    +    Nincs
    +    Áthelyezés/másolás a célmappába
    +    Minden
    +    Csak az elsődlegesek
    +    Első és Másodlagosak
    +    Minden, kivéve a Másodlagosak
    +    Szerver oldali törlések
    +    Törölje a helyi üzeneteket ha a szerveren törlődtek
    +    Mappa beállításai
    +    Megjelenítés a fenti csoportban
    +    Mutassa a mappa lista tetjén
    +    Osztályozott mappanézet
    +    Nincs
    +    Elsődleges
    +    Másodlagos
    +    Osztályozott szinkronizálás
    +    Nincs
    +    Elsődleges
    +    Másodlagos
    +    Az aktuális osztály
    +    Osztályozott küldés
    +    Nincs
    +    Elsődleges
    +    Másodlagos
    +    Mint a szinkronizált
    +    Bejövő szerver
    +    Beérkező levélszerver konfigurálása
    +    Kimenő szerver
    +    Levélküldő szerver konfigurálása (SMTP)
    +    Másik fiók létrehozása
    +    Fiók neve
    +    Az ön neve
    +    Értesítések
    +    Csengetés levél érkezésekor
    +    Rezgés
    +    Rezgés levél érkezésekor
    +    Rezgés típusa
    +    alapértelmezett
    +    rezgésminta 1
    +    rezgésminta 2
    +    rezgésminta 3
    +    rezgésminta 4
    +    rezgésminta 5
    +    Rezgés ismétlése
    +    Új levél csengőhangja
    +    LED villogása
    +    Villogtatja a LED-et új levél érkezésekor
    +    Szerver beállításai
    +    Levélírás beállításai
    +    Szerkesztési alapbeállítások
    +    Egyéni aláírás készítése
    +    Személyes adatok
    +    Alternatív cím és aláírás létrehozása
    +    Személyazonosság
    +    Személyazonosság
    +    Adataim szerkesztése
    +    Új személyazonosság
    +    Titkos másolat készítése
    +    Az összes elküldött levelélről titkos másolatot küld
    +    Szerkeszt
    +    Fentebb
    +    Lentebb
    +    Legfelülre / alap.
    +    Töröl
    +    Személyazonosság részletei
    +    (Opcionális)
    +    Az ön neve
    +    (Opcionális)
    +    Email cím
    +    (Kötelező)
    +    Válaszcím
    +    (Opcionális)
    +    Aláírás
    +    (Opcionális)
    +    Aláírás használata
    +    Aláírás
    +    Az aláírás hozzáfűzése minden elküldött levélhez
    +    "-- 
    +Ezt a levelet mobiltelefonról küldtem, K-9 Mail-el. Elnézést a levél rövidségéért és az esetleges hibákért."
    +    Elsődleges személyazonosságom
    +    Személyazonosság választása
    +    Személyazonosság választása
    +    Válasszon fiókot/személyazonosságot
    +    Küldés más néven
    +    Menjen a Fiók beállításai -> Személyazonosság kezelése és hozzon létre eggyet.
    +    Nem tudja eltávolítani, egy azonosítónak lennie kell
    +    Nem tudja használni az azonosítót email cím nélkül
    +    Az ön aláírása és azonosítója nincs mentve, átkerült a piszkozatokba.
    +    Korábbi leveleket előre
    +    Későbbi levelket előre
    +    Feladó szerint sorban
    +    Feladó szerint fordítva
    +    Tárgy szerint sorban
    +    Tárgy szerint fordítva
    +    Csillagos levelek előre
    +    Csillag nélküliek előre
    +    Olvasatlanok előre
    +    Olvasottak előre
    +    Mellékletes levelek előre
    +    Melléklet nélküliek előre
    +    Rendezés...
    +    Dátum
    +    Feladó
    +    Tárgy
    +    Csillag
    +    Olvasott
    +    Melléklet
    +    %s
    +    Fiók törlése
    +    A \"%s\" fiók törölve a K9 Mail-ból.
    +    Fiók újbóli létrehozása
    +    Az összes üzenet, melléklet, mappa és beállításai törlődni fognak a \"%s\" fiókból. A fiók beállításai megmaradnak.
    +    Fiók tisztítása
    +    Minden levél törlődni fog a \"%s\" fiókból, de a beállítások megmaradnak.
    +    Csak néhány \"Plusz\" postafiók tartalmaz POP hozzáférést. Ha nem tud bejelentkezni a helyes jelszavával, akkor lehet nem fizett elő a \"Plusz\" postafiókra. Kérem használja a webes felülelet hogy hozzáférjen a fiók leveleihez.
    +    Ha POP3-at szeretne használni ehhez a szolgáltatóhoz, akkor engedélyezze a Yahoo mail beállításai oldalon.
    +    Ha POP3-at vagy IMAP-ot szeretne használni ehhez a szolgáltatóhoz, akkor engedélyeznie kell az IMAP vagy POP3 beállításokat a  Naver oldalán.
    +    Ha POP3-at vagy IMAP-ot szeretne használni ehhez a szolgáltatóhoz, akkor engedélyeznie kell az IMAP vagy POP3 beállításokat a Hanmail(Daum) oldalán.
    +    Ha POP3-at vagy IMAP-ot szeretne használni ehhez a szolgáltatóhoz, akkor engedélyeznie kell az IMAP vagy POP3 beállításokat a Paran oldalán.
    +    Ha POP3-at vagy IMAP-ot szeretne használni ehhez a szolgáltatóhoz, akkor engedélyeznie kell az IMAP vagy POP3 beállításokat a Nate oldalán.
    +	Felismerhetetlen tanúsítvány
    +    Kulcs elfogadva
    +    Kulcs elutasítva
    +    "Del (or D) - Delete
    +R - Reply
    +A - Reply All
    +F - Forward
    +J or P - Previous Message
    +K, N - Next Message
    +M - Move
    +Y - Copy
    +Z - Zoom Out
    +Shift-Z - Zoom In
    +G - Star"
    +    "Del (or D) - Delete
    +R - Reply
    +A - Reply All
    +C - Compose
    +F - Forward
    +M - Move
    +Y - Copy
    +G - Star
    +O - Sort type
    +I - Sort order
    +Q - Return to Folders
    +S - Select/deselect"
    +    "1 - Display only 1st Class folders
    + 2 - Display 1st and 2nd Class folders
    + 3 - Display all except 2nd Class folders
    + 4 - Display all folders
    + Q - Return to Accounts
    + S - Edit Account Settings"
    +    Mappák megjelenítése
    +    Minen mappa
    +    Csak az Elsődleges
    +    Első és Másodlagos
    +    Mind, kivéve a Másodlagost
    +    Aláírás helyzete
    +    Idézett szöveg elé
    +    Idézett szöveg után
    +    Sötét
    +    Világos
    +    Megjelenés beállításai
    +    Általános beállítások
    +    Hibakeresés
    +    Titoktartás
    +    Adatszinkronizálás
    +    Működési beállítások
    +    Fiókok listája
    +    Levelek listája
    +    Levélírás
    +    Téma
    +    Nyelv
    +    Egy oszlopos elrendezés
    +    HTML üzenetek újraformázása a kisebb kijelzőkhöz.
    +    Rendszer nagyító használta
    +    Engedélyezi a multi touch nagyítást és a nagyító widgeteket.
    +    Alapértelmezett
    +    Háttérszinkronizálás
    +    Soha
    +    Mindig
    +    "Ha a 'Háttéradatok' bekapcsolva"
    +    "Ha a 'Háttéradatok' és 'Auto-szink' bekapcsolva"
    +    Nincs levél kiválasztva
    +    Dátum formátuma
    +    SHORT
    +    MEDIUM
    +    dd-MMM-yyyy
    +    yyyy-MM-dd
    +    Kötegelt feladatok
    +    Kijelöltek törlése
    +    Kijelöltek olvasottnak jelöl
    +    Kijelöltek olvasottlannak jelöl
    +    Csillag hozzáadása
    +    Csillag törlése
    +    Kijelöltek archiválása
    +    Kijelöltek levélszemétnek
    +    Kijelöltek áthelyezése
    +    Kijelöltek másolása
    +    Csillag mód
    +    Kijelölés mód
    +    Egyszerű mód
    +    Mindent kijelöl
    +    Kijelölések megszüntetése
    +    Ellenőrízhető mappák száma
    +    10 mappa
    +    25 mappa
    +    50 mappa
    +    100 mappa
    +    250 mappa
    +    500 mappa
    +    1000 mappa
    +    Animációk
    +    Áttünési effektusok használata.
    +    Kézmozdulatok
    +    Engedélyezi a kézmozdulakkal való vezérlést.
    +    Kompakt elrendezés
    +    Adjust layouts to display more on each page
    +	Hangerő gomb vezérlés
    +    Léptetés az hangerő gombokkal
    +    Leveleknél
    +    Lista nézetek váltása
    +    A \"Vissza\" gomb működése
    +    Használva lépjen vissza egy szintet
    +    Kezdőlap az Összevont mappa
    +    Összes beérkezett levél mappa jelenjen meg indításkor
    +    Mutassa a fiókok méretét
    +    Kikapcsolva gyorsabb működés
    +    Számolja a keresés eredményét
    +    Kikcsapcsolva gyorsabb műkodés
    +    Különleges fiókok elrejtése
    +    Egységesen elrejti a fiókok bejövő mappáit
    +	%s %s
    +    - Csillagos
    +    - Olvasatlan
    +    Minden levél
    +    Az összes levél egy helyen
    +    Összes beérkezett levél
    +    Minden üzenet egy helyen
    +    Érintse meg a borítékot vagy a csillagot a kijelölésekhez
    +    Egyesítés
    +    Minden üzenetet az Összes beérkezett mappába
    +    Keresés ezekben mappákban
    +    Mind
    +    Látható
    +    Semmi
    +    K-9 Mail távoli vezérlés
    +    Lehetővé teszi, hogy az alkalmazás módosítsa a K9 mail beállításait.
    +    Betűméret
    +    Betűméretek beállításai
    +    Fiókok listája
    +    Fiók neve
    +    Fiók részletei
    +    Mappák listája
    +    Mappa neve
    +    Mappa státuszta
    +    Levelek listája
    +    Tárgy
    +    Feladó
    +    Dátum
    +    Előnézet
    +    Levelek megjelenítése
    +    Feladó
    +    Címzett
    +    Másolatot kap
    +    További fejlécek
    +    Tárgy
    +    Idő
    +    Dátum
    +    Üzenet szövege
    +    Mini
    +    Pici
    +    Kisebb
    +    Kicsi
    +    Közepes
    +    Nagy
    +    Nagyobb
    +    Kisebb
    +    Kicsi
    +    Normál
    +    Nagyobb
    +    Legnagyobb
    +    Kapcsolja be a \"Beállítások\" -> \"Galéria hiba\" ha 3D galériából akar képet mellékelni.
    +    Használja a \"Kép csatolása\" vagy \"Videó csatolása\" opciót ha 3D galériából szeretne választani.
    +    Egyéb
    +    Galéria hiba kikerülése
    +    Gombok megjelenítése a kép/videó csatoláshoz (a 3D Galéria hiba kikerülése érdekében)
    +    Nincs megfelelő alkalmazás ehhez a művelethez.
    +    A telepített APG verzió nem támogatott.
    +    Aláírás
    +    Titkosítás
    +    Dekódolás
    +    Ellenőrzés
    +    <ismeretlen>
    +    azonosító: %s
    +    A K-9-nek nincs hozzáférési joga az APG-hez. Kérem telepítse újra a K-9 Mail.
    +    PGP/MIME üzenetek még nem támogatottak.
    +    Figyelem: a mellékletek nincsenek aláírva vagy nem titkosítottak.
    +    Küldés megszakítva.
    +    Menti piszkozatként?
    +    Menti vagy mégsem az üzenetet?
    +    Ez az üzenet nem jeleníthető meg, mert a \"%s\" kódlap nem található.
    +    Szöveg kijelölése.
    +    Törlés megerősítése
    +    Biztos hogy törli ezt a levelet?
    +    Törlés
    +    Nem törlöm
    +    Levélszemét mappa áthelyzésének jóváhagyása
    +    Valóban át szeretné helyezni?
    +    Igen
    +    Nem
    +    Csatolmányok letöltése
    +	Hibakereső naplózás bekapcsolva
    +    »
    +    
    +    Nem lehet kapcsolódni.
    +	 \"%s\" fiók nem elérhető ellenőríze a tárhelyet
    +    Csatolményok mentése ide:
    +    Csatolményok mentése
    +    Nincs fájlkezelő. Hova szeretné mentni a csatolmányt?
    +
    diff --git a/res/values/arrays.xml b/res/values/arrays.xml
    index e6cde687e..c6409ad84 100644
    --- a/res/values/arrays.xml
    +++ b/res/values/arrays.xml
    @@ -499,6 +499,7 @@
             gl
             it
             ja
    +        hu
             nl
             pl
             pt_BR
    
    From 9c5ccd3b82881adf05204f0af92246e8fc46a137 Mon Sep 17 00:00:00 2001
    From: Jesse Vincent 
    Date: Sat, 2 Jul 2011 15:41:20 -0400
    Subject: [PATCH 248/310] Bumped manifest to 3.902
    
    ---
     AndroidManifest.xml | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/AndroidManifest.xml b/AndroidManifest.xml
    index 9e8019af3..e925c5ada 100644
    --- a/AndroidManifest.xml
    +++ b/AndroidManifest.xml
    @@ -1,8 +1,8 @@
     
     
         
    Date: Thu, 7 Jul 2011 03:05:12 +0200
    Subject: [PATCH 249/310] Rewrite mime type image/pjpeg to image/jpeg
    
    Fixes issue 1712
    ---
     src/com/fsck/k9/mail/internet/MimeUtility.java | 3 ++-
     1 file changed, 2 insertions(+), 1 deletion(-)
    
    diff --git a/src/com/fsck/k9/mail/internet/MimeUtility.java b/src/com/fsck/k9/mail/internet/MimeUtility.java
    index 0fd320c0a..1ab056482 100644
    --- a/src/com/fsck/k9/mail/internet/MimeUtility.java
    +++ b/src/com/fsck/k9/mail/internet/MimeUtility.java
    @@ -883,7 +883,8 @@ public class MimeUtility {
          * Table format: wrong type, correct type
          */
         private static final String[][] MIME_TYPE_REPLACEMENT_MAP = new String[][] {
    -        {"image/jpg", "image/jpeg"}
    +        {"image/jpg", "image/jpeg"},
    +        {"image/pjpeg", "image/jpeg"}   // see issue 1712
         };
     
         public static String unfold(String s) {
    
    From a60a2a42955a7ea04a0284467dd5dc56230b3096 Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Thu, 7 Jul 2011 04:59:45 +0200
    Subject: [PATCH 250/310] Changed code to show/hide the correct views for
     CC/BCC
    
    Fixes issue 3509
    ---
     src/com/fsck/k9/activity/MessageCompose.java | 12 ++++++------
     1 file changed, 6 insertions(+), 6 deletions(-)
    
    diff --git a/src/com/fsck/k9/activity/MessageCompose.java b/src/com/fsck/k9/activity/MessageCompose.java
    index 0cef93db5..b107cb669 100644
    --- a/src/com/fsck/k9/activity/MessageCompose.java
    +++ b/src/com/fsck/k9/activity/MessageCompose.java
    @@ -808,8 +808,8 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
                 attachments.add(attachment.uri);
             }
             outState.putParcelableArrayList(STATE_KEY_ATTACHMENTS, attachments);
    -        outState.putBoolean(STATE_KEY_CC_SHOWN, mCcView.getVisibility() == View.VISIBLE);
    -        outState.putBoolean(STATE_KEY_BCC_SHOWN, mBccView.getVisibility() == View.VISIBLE);
    +        outState.putBoolean(STATE_KEY_CC_SHOWN, mCcWrapper.getVisibility() == View.VISIBLE);
    +        outState.putBoolean(STATE_KEY_BCC_SHOWN, mBccWrapper.getVisibility() == View.VISIBLE);
             outState.putSerializable(STATE_KEY_QUOTED_TEXT_MODE, mQuotedTextMode);
             outState.putBoolean(STATE_KEY_SOURCE_MESSAGE_PROCED, mSourceMessageProcessed);
             outState.putString(STATE_KEY_DRAFT_UID, mDraftUid);
    @@ -2005,7 +2005,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
                                 }
     
                             }
    -                        mCcView.setVisibility(View.VISIBLE);
    +                        mCcWrapper.setVisibility(View.VISIBLE);
                         }
                     }
                 } else if (ACTION_FORWARD.equals(action)) {
    @@ -2031,7 +2031,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
                     addAddresses(mToView, message.getRecipients(RecipientType.TO));
                     if (message.getRecipients(RecipientType.CC).length > 0) {
                         addAddresses(mCcView, message.getRecipients(RecipientType.CC));
    -                    mCcView.setVisibility(View.VISIBLE);
    +                    mCcWrapper.setVisibility(View.VISIBLE);
                     }
     
                     Address[] bccRecipients = message.getRecipients(RecipientType.BCC);
    @@ -2040,9 +2040,9 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
                         String bccAddress = mAccount.getAlwaysBcc();
                         if (bccRecipients.length == 1 && bccAddress != null && bccAddress.equals(bccRecipients[0].toString())) {
                             // If the auto-bcc is the only entry in the BCC list, don't show the Bcc fields.
    -                        mBccView.setVisibility(View.GONE);
    +                        mBccWrapper.setVisibility(View.GONE);
                         } else {
    -                        mBccView.setVisibility(View.VISIBLE);
    +                        mBccWrapper.setVisibility(View.VISIBLE);
                         }
                     }
     
    
    From c7e8969b01a54a74f164df747673e37af798f769 Mon Sep 17 00:00:00 2001
    From: Jesse Vincent 
    Date: Sat, 9 Jul 2011 00:27:56 -0400
    Subject: [PATCH 251/310] remove a bunch of listener notification duplication
     that crept into the code. this caused all attachments to be double-opened,
     among other things
    
    ---
     .../k9/controller/MessagingController.java    | 48 ++++---------------
     1 file changed, 9 insertions(+), 39 deletions(-)
    
    diff --git a/src/com/fsck/k9/controller/MessagingController.java b/src/com/fsck/k9/controller/MessagingController.java
    index 028ebfcd3..32f1486d6 100644
    --- a/src/com/fsck/k9/controller/MessagingController.java
    +++ b/src/com/fsck/k9/controller/MessagingController.java
    @@ -2742,31 +2742,21 @@ public class MessagingController implements Runnable {
              */
     
             if (part.getBody() != null) {
    -            for (MessagingListener l : getListeners()) {
    +            for (MessagingListener l : getListeners(listener)) {
                     l.loadAttachmentStarted(account, message, part, tag, false);
                 }
    -            if (listener != null) {
    -                listener.loadAttachmentStarted(account, message, part, tag, false);
    -            }
     
    -            for (MessagingListener l : getListeners()) {
    +            for (MessagingListener l : getListeners(listener)) {
                     l.loadAttachmentFinished(account, message, part, tag);
                 }
    -
    -            if (listener != null) {
    -                listener.loadAttachmentFinished(account, message, part, tag);
    -            }
                 return;
             }
     
     
     
    -        for (MessagingListener l : getListeners()) {
    +        for (MessagingListener l : getListeners(listener)) {
                 l.loadAttachmentStarted(account, message, part, tag, true);
             }
    -        if (listener != null) {
    -            listener.loadAttachmentStarted(account, message, part, tag, false);
    -        }
     
             put("loadAttachment", listener, new Runnable() {
                 @Override
    @@ -2793,22 +2783,16 @@ public class MessagingController implements Runnable {
                         remoteFolder.fetchPart(remoteMessage, part, null);
     
                         localFolder.updateMessage((LocalMessage)message);
    -                    for (MessagingListener l : getListeners()) {
    +                    for (MessagingListener l : getListeners(listener)) {
                             l.loadAttachmentFinished(account, message, part, tag);
                         }
    -                    if (listener != null) {
    -                        listener.loadAttachmentFinished(account, message, part, tag);
    -                    }
                     } catch (MessagingException me) {
                         if (K9.DEBUG)
                             Log.v(K9.LOG_TAG, "Exception loading attachment", me);
     
    -                    for (MessagingListener l : getListeners()) {
    +                    for (MessagingListener l : getListeners(listener)) {
                             l.loadAttachmentFailed(account, message, part, tag, me.getMessage());
                         }
    -                    if (listener != null) {
    -                        listener.loadAttachmentFailed(account, message, part, tag, me.getMessage());
    -                    }
                         addErrorMessage(account, null, me);
     
                     } finally {
    @@ -3371,10 +3355,7 @@ public class MessagingController implements Runnable {
                 //We need to make these callbacks before moving the messages to the trash
                 //as messages get a new UID after being moved
                 for (Message message : messages) {
    -                if (listener != null) {
    -                    listener.messageDeleted(account, folder, message);
    -                }
    -                for (MessagingListener l : getListeners()) {
    +                for (MessagingListener l : getListeners(listener)) {
                         l.messageDeleted(account, folder, message);
                     }
                 }
    @@ -3813,10 +3794,7 @@ public class MessagingController implements Runnable {
                         long oldSize = localStore.getSize();
                         localStore.compact();
                         long newSize = localStore.getSize();
    -                    if (ml != null) {
    -                        ml.accountSizeChanged(account, oldSize, newSize);
    -                    }
    -                    for (MessagingListener l : getListeners()) {
    +                    for (MessagingListener l : getListeners(ml)) {
                             l.accountSizeChanged(account, oldSize, newSize);
                         }
                     } catch (UnavailableStorageException e) {
    @@ -3843,11 +3821,7 @@ public class MessagingController implements Runnable {
                         stats.size = newSize;
                         stats.unreadMessageCount = 0;
                         stats.flaggedMessageCount = 0;
    -                    if (ml != null) {
    -                        ml.accountSizeChanged(account, oldSize, newSize);
    -                        ml.accountStatusChanged(account, stats);
    -                    }
    -                    for (MessagingListener l : getListeners()) {
    +                    for (MessagingListener l : getListeners(ml)) {
                             l.accountSizeChanged(account, oldSize, newSize);
                             l.accountStatusChanged(account, stats);
                         }
    @@ -3875,11 +3849,7 @@ public class MessagingController implements Runnable {
                         stats.size = newSize;
                         stats.unreadMessageCount = 0;
                         stats.flaggedMessageCount = 0;
    -                    if (ml != null) {
    -                        ml.accountSizeChanged(account, oldSize, newSize);
    -                        ml.accountStatusChanged(account, stats);
    -                    }
    -                    for (MessagingListener l : getListeners()) {
    +                    for (MessagingListener l : getListeners(ml)) {
                             l.accountSizeChanged(account, oldSize, newSize);
                             l.accountStatusChanged(account, stats);
                         }
    
    From 8cffc5b682835a2952dcd10bb2a38031f67962e5 Mon Sep 17 00:00:00 2001
    From: Jesse Vincent 
    Date: Sat, 9 Jul 2011 15:26:30 -0400
    Subject: [PATCH 252/310] Bullet proofing for user-reported exceptions in
     WebDAV sync:
    
    E/k9      ( 5735): java.lang.NullPointerException
    E/k9      ( 5735):      at
    com.kaitenmail.mail.store.WebDavStore$WebDavMessage.setNewHeaders(WebDavStore.java:1903)
    E/k9      ( 5735):      at
    com.kaitenmail.mail.store.WebDavStore$WebDavFolder.fetchEnvelope(WebDavStore.java:1655)
    E/k9      ( 5735):      at
    com.kaitenmail.mail.store.WebDavStore$WebDavFolder.fetchEnvelope(WebDavStore.java:1627)
    E/k9      ( 5735):      at
    com.kaitenmail.mail.store.WebDavStore$WebDavFolder.fetchEnvelope(WebDavStore.java:1627)
    E/k9      ( 5735):      at
    com.kaitenmail.mail.store.WebDavStore$WebDavFolder.fetchEnvelope(WebDavStore.java:1627)
    E/k9      ( 5735):      at
    com.kaitenmail.mail.store.WebDavStore$WebDavFolder.fetchEnvelope(WebDavStore.java:1627)
    E/k9      ( 5735):      at
    com.kaitenmail.mail.store.WebDavStore$WebDavFolder.fetch(WebDavStore.java:1404)
    E/k9      ( 5735):      at
    com.kaitenmail.controller.MessagingController.fetchUnsyncedMessages(MessagingController.java:1418)
    E/k9      ( 5735):      at
    com.kaitenmail.controller.MessagingController.downloadMessages(MessagingController.java:1253)
    E/k9      ( 5735):      at
    com.kaitenmail.controller.MessagingController.synchronizeMailboxSynchronous(MessagingController.java:1031)
    E/k9      ( 5735):      at
    com.kaitenmail.controller.MessagingController.access$400(MessagingController.java:81)
    E/k9      ( 5735):      at
    com.kaitenmail.controller.MessagingController$30.run(MessagingController.java:3768)
    E/k9      ( 5735):      at
    com.kaitenmail.controller.MessagingController.run(MessagingController.java:276)
    E/k9      ( 5735):      at java.lang.Thread.run(Thread.java:1096)
    ---
     src/com/fsck/k9/mail/store/WebDavStore.java | 9 +++++++--
     1 file changed, 7 insertions(+), 2 deletions(-)
    
    diff --git a/src/com/fsck/k9/mail/store/WebDavStore.java b/src/com/fsck/k9/mail/store/WebDavStore.java
    index dfd3d9155..56828b6ba 100644
    --- a/src/com/fsck/k9/mail/store/WebDavStore.java
    +++ b/src/com/fsck/k9/mail/store/WebDavStore.java
    @@ -1652,8 +1652,13 @@ public class WebDavStore extends Store {
                         listener.messageStarted(messages[i].getUid(), i, count);
                     }
     
    -                wdMessage.setNewHeaders(envelopes.get(wdMessage.getUid()));
    -                wdMessage.setFlagInternal(Flag.SEEN, envelopes.get(wdMessage.getUid()).getReadStatus());
    +                ParsedMessageEnvelope envelope = envelopes.get(wdMessage.getUid());
    +                if (envelope != null) {
    +                    wdMessage.setNewHeaders(envelope);
    +                    wdMessage.setFlagInternal(Flag.SEEN, envelope.getReadStatus());
    +                } else {
    +                    Log.e(K9.LOG_TAG,"Asked to get metadata for a non-existent message: "+wdMessage.getUid());
    +                }
     
                     if (listener != null) {
                         listener.messageFinished(messages[i], i, count);
    
    From 220be75473525e6c364e92dd5f7d8991d1f25e1d Mon Sep 17 00:00:00 2001
    From: Jesse Vincent 
    Date: Sat, 9 Jul 2011 16:24:18 -0400
    Subject: [PATCH 253/310] Add a bit of logging to find out what webdav servers
     tell us about how many messages they have in debug mode
    
    ---
     src/com/fsck/k9/mail/store/WebDavStore.java | 3 +++
     1 file changed, 3 insertions(+)
    
    diff --git a/src/com/fsck/k9/mail/store/WebDavStore.java b/src/com/fsck/k9/mail/store/WebDavStore.java
    index 56828b6ba..bcf353c76 100644
    --- a/src/com/fsck/k9/mail/store/WebDavStore.java
    +++ b/src/com/fsck/k9/mail/store/WebDavStore.java
    @@ -1225,6 +1225,9 @@ public class WebDavStore extends Store {
                 if (dataset != null) {
                     messageCount = dataset.getMessageCount();
                 }
    +            if (K9.DEBUG && K9.DEBUG_PROTOCOL_WEBDAV) {
    +                Log.v(K9.LOG_TAG, "Counted messages and webdav returned: "+messageCount);
    +            }
     
                 return messageCount;
             }
    
    From d7dfba15cff136ced2fb68d359b099dc3343f749 Mon Sep 17 00:00:00 2001
    From: Jesse Vincent 
    Date: Sat, 9 Jul 2011 17:00:35 -0400
    Subject: [PATCH 254/310] It appears that Exchange is returning responses
     without a visiblecount element for empty folders Which resulted in this code
     returning -1 (as that was the previous default.) -1 is an error condition.
     Now the default is empty
    
    ---
     src/com/fsck/k9/mail/store/WebDavStore.java | 7 ++++++-
     1 file changed, 6 insertions(+), 1 deletion(-)
    
    diff --git a/src/com/fsck/k9/mail/store/WebDavStore.java b/src/com/fsck/k9/mail/store/WebDavStore.java
    index bcf353c76..8f760dc7c 100644
    --- a/src/com/fsck/k9/mail/store/WebDavStore.java
    +++ b/src/com/fsck/k9/mail/store/WebDavStore.java
    @@ -2166,7 +2166,12 @@ public class WebDavStore extends Store {
              * Returns the message count as it was retrieved
              */
             public int getMessageCount() {
    -            int messageCount = -1;
    +            // It appears that Exchange is returning responses
    +            // without a visiblecount element for empty folders
    +            // Which resulted in this code returning -1 (as that was
    +            // the previous default.)
    +            // -1 is an error condition. Now the default is empty
    +            int messageCount = 0;
     
                 for (String uid : mData.keySet()) {
                     HashMap data = mData.get(uid);
    
    From 98ae8cf2be83ab2dc3c1f22f6e7aacbb1041c2d4 Mon Sep 17 00:00:00 2001
    From: Jesse Vincent 
    Date: Sat, 9 Jul 2011 18:44:14 -0400
    Subject: [PATCH 255/310] refactoring to use the object we extracted from the
     array
    
    ---
     src/com/fsck/k9/mail/store/WebDavStore.java | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/src/com/fsck/k9/mail/store/WebDavStore.java b/src/com/fsck/k9/mail/store/WebDavStore.java
    index 8f760dc7c..787e15790 100644
    --- a/src/com/fsck/k9/mail/store/WebDavStore.java
    +++ b/src/com/fsck/k9/mail/store/WebDavStore.java
    @@ -1587,13 +1587,13 @@ public class WebDavStore extends Store {
                     WebDavMessage wdMessage = (WebDavMessage) messages[i];
     
                     if (listener != null) {
    -                    listener.messageStarted(messages[i].getUid(), i, count);
    +                    listener.messageStarted(wdMessage.getUid(), i, count);
                     }
     
                     wdMessage.setFlagInternal(Flag.SEEN, uidToReadStatus.get(wdMessage.getUid()));
     
                     if (listener != null) {
    -                    listener.messageFinished(messages[i], i, count);
    +                    listener.messageFinished(wdMessage, i, count);
                     }
                 }
             }
    
    From b85c9b7b0edb6a36c53cc0d0db0b2b285cdcb3b1 Mon Sep 17 00:00:00 2001
    From: Jesse Vincent 
    Date: Sun, 10 Jul 2011 14:27:36 -0400
    Subject: [PATCH 256/310] Work around the fact that when we can't get read
     status for a message, we'd end up with an NPE as we then queried the hashmap
    
    ---
     src/com/fsck/k9/mail/store/WebDavStore.java | 8 ++++++--
     1 file changed, 6 insertions(+), 2 deletions(-)
    
    diff --git a/src/com/fsck/k9/mail/store/WebDavStore.java b/src/com/fsck/k9/mail/store/WebDavStore.java
    index 787e15790..9be88b78b 100644
    --- a/src/com/fsck/k9/mail/store/WebDavStore.java
    +++ b/src/com/fsck/k9/mail/store/WebDavStore.java
    @@ -2124,10 +2124,14 @@ public class WebDavStore extends Store {
                 for (String uid : mData.keySet()) {
                     HashMap data = mData.get(uid);
                     String readStatus = data.get("read");
    -                if (readStatus != null &&
    -                        !readStatus.equals("")) {
    +                if (readStatus != null && !readStatus.equals("")) {
                         Boolean value = !readStatus.equals("0");
                         uidToRead.put(uid, value);
    +                } else {
    +                    // We don't actually want to have null values in our hashmap,
    +                    // as it causes the calling code to crash with an NPE as it
    +                    // does a lookup in the maap.
    +                    uidToRead.put(uid, false);
                     }
                 }
     
    
    From 87640719ddc32e3130b61f0c62e2df6ad7b14afe Mon Sep 17 00:00:00 2001
    From: Jesse Vincent 
    Date: Tue, 12 Jul 2011 21:47:37 -0400
    Subject: [PATCH 257/310] Disable "download by date range" for webdav and pop3.
     The previous behavior caused catastrophic network abuse, downloading messages
     outside the date range over and over.
    
    ---
     src/com/fsck/k9/Account.java                  | 12 +++++++
     .../k9/activity/setup/AccountSettings.java    | 34 ++++++++++++-------
     .../k9/controller/MessagingController.java    |  2 +-
     3 files changed, 35 insertions(+), 13 deletions(-)
    
    diff --git a/src/com/fsck/k9/Account.java b/src/com/fsck/k9/Account.java
    index d7d431cfc..a1bbda111 100644
    --- a/src/com/fsck/k9/Account.java
    +++ b/src/com/fsck/k9/Account.java
    @@ -977,6 +977,18 @@ public class Account implements BaseAccount {
             return Store.getRemoteInstance(this);
         }
     
    +    // It'd be great if this actually went into the store implementation
    +    // to get this, but that's expensive and not easilly accessible
    +    // during initialization
    +    public boolean isSearchByDateCapable() {
    +        if (getStoreUri().startsWith("imap")) {
    +            return true;
    +        } else {
    +            return false;
    +        }
    +    }
    +
    +
         @Override
         public synchronized String toString() {
             return mDescription;
    diff --git a/src/com/fsck/k9/activity/setup/AccountSettings.java b/src/com/fsck/k9/activity/setup/AccountSettings.java
    index 38c9e38e0..4c1d26531 100644
    --- a/src/com/fsck/k9/activity/setup/AccountSettings.java
    +++ b/src/com/fsck/k9/activity/setup/AccountSettings.java
    @@ -385,18 +385,26 @@ public class AccountSettings extends K9PreferenceActivity {
                 }
             });
     
    +    
    +
             mMessageAge = (ListPreference) findPreference(PREFERENCE_MESSAGE_AGE);
    -        mMessageAge.setValue(String.valueOf(mAccount.getMaximumPolledMessageAge()));
    -        mMessageAge.setSummary(mMessageAge.getEntry());
    -        mMessageAge.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
    -            public boolean onPreferenceChange(Preference preference, Object newValue) {
    -                final String summary = newValue.toString();
    -                int index = mMessageAge.findIndexOfValue(summary);
    -                mMessageAge.setSummary(mMessageAge.getEntries()[index]);
    -                mMessageAge.setValue(summary);
    -                return false;
    -            }
    -        });
    +
    +        if (!mAccount.isSearchByDateCapable()) {
    +            mMessageAge.setEnabled(false);
    +        } else {
    +	        mMessageAge.setValue(String.valueOf(mAccount.getMaximumPolledMessageAge()));
    +	        mMessageAge.setSummary(mMessageAge.getEntry());
    +	        mMessageAge.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
    +	            public boolean onPreferenceChange(Preference preference, Object newValue) {
    +	                final String summary = newValue.toString();
    +	                int index = mMessageAge.findIndexOfValue(summary);
    +	                mMessageAge.setSummary(mMessageAge.getEntries()[index]);
    +	                mMessageAge.setValue(summary);
    +	                return false;
    +	            }
    +	        });
    +	
    +        }
     
             mMessageSize = (ListPreference) findPreference(PREFERENCE_MESSAGE_SIZE);
             mMessageSize.setValue(String.valueOf(mAccount.getMaximumAutoDownloadMessageSize()));
    @@ -683,8 +691,10 @@ public class AccountSettings extends K9PreferenceActivity {
             mAccount.setNotifySelfNewMail(mAccountNotifySelf.isChecked());
             mAccount.setShowOngoing(mAccountNotifySync.isChecked());
             mAccount.setDisplayCount(Integer.parseInt(mDisplayCount.getValue()));
    -        mAccount.setMaximumPolledMessageAge(Integer.parseInt(mMessageAge.getValue()));
             mAccount.setMaximumAutoDownloadMessageSize(Integer.parseInt(mMessageSize.getValue()));
    +        if (mAccount.isSearchByDateCapable()) {
    +            mAccount.setMaximumPolledMessageAge(Integer.parseInt(mMessageAge.getValue()));
    +        }
             mAccount.getNotificationSetting().setVibrate(mAccountVibrate.isChecked());
             mAccount.getNotificationSetting().setVibratePattern(Integer.parseInt(mAccountVibratePattern.getValue()));
             mAccount.getNotificationSetting().setVibrateTimes(Integer.parseInt(mAccountVibrateTimes.getValue()));
    diff --git a/src/com/fsck/k9/controller/MessagingController.java b/src/com/fsck/k9/controller/MessagingController.java
    index 32f1486d6..b51f83dc7 100644
    --- a/src/com/fsck/k9/controller/MessagingController.java
    +++ b/src/com/fsck/k9/controller/MessagingController.java
    @@ -1534,7 +1534,7 @@ public class MessagingController implements Runnable {
                 return false;
     
             }
    -        if (message.olderThan(earliestDate)) {
    +        if (account.isSearchByDateCapable() && message.olderThan(earliestDate)) {
                 if (K9.DEBUG) {
                     Log.d(K9.LOG_TAG, "Message " + message.getUid() + " is older than "
                           + earliestDate + ", hence not saving");
    
    From 2e173150d55a4fb0780ae1fa7609fcc360fe9731 Mon Sep 17 00:00:00 2001
    From: Jesse Vincent 
    Date: Wed, 13 Jul 2011 22:15:36 -0400
    Subject: [PATCH 258/310] Rather than disabling imap-specific preferences on
     POP3, hide em
    
    ---
     .../k9/activity/setup/AccountSettings.java    | 100 ++++++++++--------
     1 file changed, 55 insertions(+), 45 deletions(-)
    
    diff --git a/src/com/fsck/k9/activity/setup/AccountSettings.java b/src/com/fsck/k9/activity/setup/AccountSettings.java
    index 4c1d26531..ab4db9806 100644
    --- a/src/com/fsck/k9/activity/setup/AccountSettings.java
    +++ b/src/com/fsck/k9/activity/setup/AccountSettings.java
    @@ -46,6 +46,8 @@ public class AccountSettings extends K9PreferenceActivity {
         private static final int ACTIVITY_MANAGE_IDENTITIES = 2;
     
         private static final String PREFERENCE_SCREEN_COMPOSING = "composing";
    +    private static final String PREFERENCE_SCREEN_INCOMING = "incoming_prefs";
    +    private static final String PREFERENCE_SCREEN_PUSH_ADVANCED = "push_advanced";
     
         private static final String PREFERENCE_DESCRIPTION = "account_description";
         private static final String PREFERENCE_COMPOSITION = "composition";
    @@ -299,19 +301,6 @@ public class AccountSettings extends K9PreferenceActivity {
                 }
             });
     
    -        mPushMode = (ListPreference) findPreference(PREFERENCE_PUSH_MODE);
    -        mPushMode.setEnabled(mIsPushCapable);
    -        mPushMode.setValue(mAccount.getFolderPushMode().name());
    -        mPushMode.setSummary(mPushMode.getEntry());
    -        mPushMode.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
    -            public boolean onPreferenceChange(Preference preference, Object newValue) {
    -                final String summary = newValue.toString();
    -                int index = mPushMode.findIndexOfValue(summary);
    -                mPushMode.setSummary(mPushMode.getEntries()[index]);
    -                mPushMode.setValue(summary);
    -                return false;
    -            }
    -        });
     
             mTargetMode = (ListPreference) findPreference(PREFERENCE_TARGET_MODE);
             mTargetMode.setValue(mAccount.getFolderTargetMode().name());
    @@ -339,19 +328,24 @@ public class AccountSettings extends K9PreferenceActivity {
                 }
             });
     
    +
             mExpungePolicy = (ListPreference) findPreference(PREFERENCE_EXPUNGE_POLICY);
    -        mExpungePolicy.setEnabled(mIsExpungeCapable);
    -        mExpungePolicy.setValue(mAccount.getExpungePolicy());
    -        mExpungePolicy.setSummary(mExpungePolicy.getEntry());
    -        mExpungePolicy.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
    -            public boolean onPreferenceChange(Preference preference, Object newValue) {
    -                final String summary = newValue.toString();
    -                int index = mExpungePolicy.findIndexOfValue(summary);
    -                mExpungePolicy.setSummary(mExpungePolicy.getEntries()[index]);
    -                mExpungePolicy.setValue(summary);
    -                return false;
    -            }
    -        });
    +        if (mIsExpungeCapable) {
    +	        mExpungePolicy.setValue(mAccount.getExpungePolicy());
    +	        mExpungePolicy.setSummary(mExpungePolicy.getEntry());
    +	        mExpungePolicy.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
    +	            public boolean onPreferenceChange(Preference preference, Object newValue) {
    +	                final String summary = newValue.toString();
    +	                int index = mExpungePolicy.findIndexOfValue(summary);
    +	                mExpungePolicy.setSummary(mExpungePolicy.getEntries()[index]);
    +	                mExpungePolicy.setValue(summary);
    +	                return false;
    +	            }
    +	        });
    +        } else {
    +            ((PreferenceScreen) findPreference(PREFERENCE_SCREEN_INCOMING)).removePreference(mExpungePolicy);
    +        }
    +
     
             mSyncRemoteDeletions = (CheckBoxPreference) findPreference(PREFERENCE_SYNC_REMOTE_DELETIONS);
             mSyncRemoteDeletions.setChecked(mAccount.syncRemoteDeletions());
    @@ -390,8 +384,8 @@ public class AccountSettings extends K9PreferenceActivity {
             mMessageAge = (ListPreference) findPreference(PREFERENCE_MESSAGE_AGE);
     
             if (!mAccount.isSearchByDateCapable()) {
    -            mMessageAge.setEnabled(false);
    -        } else {
    +            ((PreferenceScreen) findPreference(PREFERENCE_SCREEN_INCOMING)).removePreference(mMessageAge);
    +       } else {
     	        mMessageAge.setValue(String.valueOf(mAccount.getMaximumPolledMessageAge()));
     	        mMessageAge.setSummary(mMessageAge.getEntry());
     	        mMessageAge.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
    @@ -523,10 +517,22 @@ public class AccountSettings extends K9PreferenceActivity {
                         return false;
                     }
                 });
    +	        mPushMode = (ListPreference) findPreference(PREFERENCE_PUSH_MODE);
    +	        mPushMode.setValue(mAccount.getFolderPushMode().name());
    +	        mPushMode.setSummary(mPushMode.getEntry());
    +	        mPushMode.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
    +	            public boolean onPreferenceChange(Preference preference, Object newValue) {
    +	                final String summary = newValue.toString();
    +	                int index = mPushMode.findIndexOfValue(summary);
    +	                mPushMode.setSummary(mPushMode.getEntries()[index]);
    +	                mPushMode.setValue(summary);
    +	                return false;
    +	            }
    +	        });
             } else {
    -            mPushPollOnConnect.setEnabled(false);
    -            mMaxPushFolders.setEnabled(false);
    -            mIdleRefreshPeriod.setEnabled(false);
    +            PreferenceScreen incomingPrefs = (PreferenceScreen) findPreference(PREFERENCE_SCREEN_INCOMING);
    +            incomingPrefs.removePreference( (PreferenceScreen) findPreference(PREFERENCE_SCREEN_PUSH_ADVANCED));
    +            incomingPrefs.removePreference( (ListPreference) findPreference(PREFERENCE_PUSH_MODE));
             }
     
             mAccountNotify = (CheckBoxPreference) findPreference(PREFERENCE_NOTIFY);
    @@ -703,7 +709,9 @@ public class AccountSettings extends K9PreferenceActivity {
             mAccount.setNotificationShowsUnreadCount(mNotificationUnreadCount.isChecked());
             mAccount.setFolderTargetMode(Account.FolderMode.valueOf(mTargetMode.getValue()));
             mAccount.setDeletePolicy(Integer.parseInt(mDeletePolicy.getValue()));
    -        mAccount.setExpungePolicy(mExpungePolicy.getValue());
    +        if (mIsExpungeCapable) {
    +            mAccount.setExpungePolicy(mExpungePolicy.getValue());
    +        };
             mAccount.setSyncRemoteDeletions(mSyncRemoteDeletions.isChecked());
             mAccount.setSaveAllHeaders(mSaveAllHeaders.isChecked());
             mAccount.setSearchableFolders(Account.Searchable.valueOf(mSearchableFolders.getValue()));
    @@ -747,14 +755,8 @@ public class AccountSettings extends K9PreferenceActivity {
             boolean needsRefresh = mAccount.setAutomaticCheckIntervalMinutes(Integer.parseInt(mCheckFrequency.getValue()));
             needsRefresh |= mAccount.setFolderSyncMode(Account.FolderMode.valueOf(mSyncMode.getValue()));
     
    -        boolean needsPushRestart = mAccount.setFolderPushMode(Account.FolderMode.valueOf(mPushMode.getValue()));
             boolean displayModeChanged = mAccount.setFolderDisplayMode(Account.FolderMode.valueOf(mDisplayMode.getValue()));
     
    -        if (mAccount.getFolderPushMode() != FolderMode.NONE) {
    -            needsPushRestart |= displayModeChanged;
    -            needsPushRestart |= mIncomingChanged;
    -        }
    -
             SharedPreferences prefs = mAccountRingtone.getPreferenceManager().getSharedPreferences();
             String newRingtone = prefs.getString(PREFERENCE_RINGTONE, null);
             if (newRingtone != null) {
    @@ -769,14 +771,22 @@ public class AccountSettings extends K9PreferenceActivity {
             mAccount.setScrollMessageViewButtons(Account.ScrollButtons.valueOf(mAccountScrollButtons.getValue()));
             mAccount.setShowPictures(Account.ShowPictures.valueOf(mAccountShowPictures.getValue()));
             mAccount.save(Preferences.getPreferences(this));
    -
    -        if (needsRefresh && needsPushRestart) {
    -            MailService.actionReset(this, null);
    -        } else if (needsRefresh) {
    -            MailService.actionReschedulePoll(this, null);
    -        } else if (needsPushRestart) {
    -            MailService.actionRestartPushers(this, null);
    -        }
    +       
    +	    if (mIsPushCapable) {
    +	        boolean needsPushRestart = mAccount.setFolderPushMode(Account.FolderMode.valueOf(mPushMode.getValue()));
    +	        if (mAccount.getFolderPushMode() != FolderMode.NONE) {
    +	            needsPushRestart |= displayModeChanged;
    +	            needsPushRestart |= mIncomingChanged;
    +	        }
    +	
    +	        if (needsRefresh && needsPushRestart) {
    +	            MailService.actionReset(this, null);
    +	        } else if (needsRefresh) {
    +	            MailService.actionReschedulePoll(this, null);
    +	        } else if (needsPushRestart) {
    +	            MailService.actionRestartPushers(this, null);
    +	        }
    +	    }
             // TODO: refresh folder list here
         }
     
    
    From 45e29ccba4eedaa78cd158bb7f76da39b7a49fe3 Mon Sep 17 00:00:00 2001
    From: Koji Arai 
    Date: Thu, 16 Jun 2011 00:35:27 +0900
    Subject: [PATCH 259/310] Fixed issue 3530. Should not HTMLify the message when
     it is sent without quoted message.
    
    The problem is:
    1. set MessageFormat in Account setting to the TEXT.
    2. reply a message without quoted text.
    3. it is sent with HTML tags.
    ---
     src/com/fsck/k9/activity/MessageCompose.java | 38 ++++++++------------
     1 file changed, 14 insertions(+), 24 deletions(-)
    
    diff --git a/src/com/fsck/k9/activity/MessageCompose.java b/src/com/fsck/k9/activity/MessageCompose.java
    index b107cb669..32d6793af 100644
    --- a/src/com/fsck/k9/activity/MessageCompose.java
    +++ b/src/com/fsck/k9/activity/MessageCompose.java
    @@ -909,29 +909,16 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
     
             String text = mMessageContentView.getText().toString();
     
    -        boolean discardQuotedText = false;
    -        if (!isDraft && !mQuotedTextMode.equals(QuotedTextMode.SHOW)) {
    -            discardQuotedText = true;
    +        boolean saveQuotedText = false;
    +        if (isDraft || mQuotedTextMode.equals(QuotedTextMode.SHOW)) {
    +            saveQuotedText = true;
             }
     
     
    -        if (discardQuotedText) {
    -            if (!isDraft) {
    -                text = appendSignature(text);
    -            }
    -
    -            text = HtmlConverter.textToHtmlFragment(text);
    -            // Build the body.
    -            TextBody body = new TextBody(text);
    -            body.setComposedMessageLength(text.length());
    -            body.setComposedMessageOffset(0);
    -
    -            return body;
    -        }
             // Handle HTML separate from the rest of the text content. HTML mode doesn't allow signature after the quoted
             // text, nor does it allow reply after quote. Users who want that functionality will need to stick with text
             // mode.
    -        else if (mMessageFormat == MessageFormat.HTML) {
    +        if (mMessageFormat == MessageFormat.HTML) {
                 // Add the signature.
                 if (!isDraft) {
                     text = appendSignature(text);
    @@ -940,7 +927,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
                 // Insert it into the existing content object.
                 if (K9.DEBUG && mQuotedHtmlContent != null)
                     Log.d(K9.LOG_TAG, "insertable: " + mQuotedHtmlContent.toDebugString());
    -            if (mQuotedHtmlContent != null) {
    +            if (mQuotedHtmlContent != null && saveQuotedText) {
     
                     // Set the insertion location based upon our reply after quote setting. Reply after
                     // quote makes no sense for HEADER style replies. In addition, add some extra
    @@ -981,11 +968,13 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
                 Integer composedMessageOffset = 0;
     
                 // Placing the signature before the quoted text does not make sense if replyAfterQuote is true.
    -            if (!replyAfterQuote && !isDraft && mAccount.isSignatureBeforeQuotedText()) {
    -                text = appendSignature(text);
    +            if (!isDraft) {
    +                if (!replyAfterQuote && mAccount.isSignatureBeforeQuotedText()) {
    +                    text = appendSignature(text);
    +                }
                 }
     
    -            if (mQuotedTextMode != QuotedTextMode.NONE) {
    +            if (saveQuotedText) {
                     if (replyAfterQuote) {
                         composedMessageOffset = mQuotedText.getText().toString().length() + "\n".length();
                         text = mQuotedText.getText().toString() + "\n" + text;
    @@ -996,10 +985,11 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
     
                 // Note: If user has selected reply after quote AND signature before quote, ignore the
                 // latter setting and append the signature at the end.
    -            if (!isDraft && (!mAccount.isSignatureBeforeQuotedText() || replyAfterQuote)) {
    -                text = appendSignature(text);
    +            if (!isDraft) {
    +                if (replyAfterQuote || !mAccount.isSignatureBeforeQuotedText()) {
    +                    text = appendSignature(text);
    +                }
                 }
    -
                 // Build the body.
                 TextBody body = new TextBody(text);
                 body.setComposedMessageLength(composedMessageLength);
    
    From 9f581cb6f3631d26183d182fd4f5bc34620d503f Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Sun, 17 Jul 2011 14:13:04 +0200
    Subject: [PATCH 260/310] Extracted POP3 commands and capabilities to constants
    
    ---
     src/com/fsck/k9/mail/store/Pop3Store.java | 58 +++++++++++++++--------
     1 file changed, 38 insertions(+), 20 deletions(-)
    
    diff --git a/src/com/fsck/k9/mail/store/Pop3Store.java b/src/com/fsck/k9/mail/store/Pop3Store.java
    index f6b8f1063..420878874 100644
    --- a/src/com/fsck/k9/mail/store/Pop3Store.java
    +++ b/src/com/fsck/k9/mail/store/Pop3Store.java
    @@ -32,6 +32,24 @@ public class Pop3Store extends Store {
         public static final int CONNECTION_SECURITY_SSL_REQUIRED = 3;
         public static final int CONNECTION_SECURITY_SSL_OPTIONAL = 4;
     
    +    private static final String STLS_COMMAND = "STLS";
    +    private static final String USER_COMMAND = "USER";
    +    private static final String PASS_COMMAND = "PASS";
    +    private static final String CAPA_COMMAND = "PASS";
    +    private static final String STAT_COMMAND = "STAT";
    +    private static final String LIST_COMMAND = "LIST";
    +    private static final String UIDL_COMMAND = "UIDL";
    +    private static final String TOP_COMMAND = "TOP";
    +    private static final String RETR_COMMAND = "RETR";
    +    private static final String DELE_COMMAND = "DELE";
    +    private static final String QUIT_COMMAND = "QUIT";
    +
    +    private static final String STLS_CAPABILITY = "STLS";
    +    private static final String UIDL_CAPABILITY = "UIDL";
    +    private static final String PIPELINING_CAPABILITY = "PIPELINING";
    +    private static final String USER_CAPABILITY = "USER";
    +    private static final String TOP_CAPABILITY = "TOP";
    +
         private static final Flag[] PERMANENT_FLAGS = { Flag.DELETED };
     
         private String mHost;
    @@ -145,7 +163,7 @@ public class Pop3Store extends Store {
                  * If the server doesn't support UIDL it will return a - response, which causes
                  * executeSimpleCommand to throw a MessagingException, exiting this method.
                  */
    -            folder.executeSimpleCommand("UIDL");
    +            folder.executeSimpleCommand(UIDL_COMMAND);
     
             }
             folder.close();
    @@ -211,7 +229,7 @@ public class Pop3Store extends Store {
                         mCapabilities = getCapabilities();
     
                         if (mCapabilities.stls) {
    -                        writeLine("STLS");
    +                        writeLine(STLS_COMMAND);
     
                             SSLContext sslContext = SSLContext.getInstance("TLS");
                             boolean secure = mConnectionSecurity == CONNECTION_SECURITY_TLS_REQUIRED;
    @@ -243,8 +261,8 @@ public class Pop3Store extends Store {
                         }
                     } else {
                         try {
    -                        executeSimpleCommand("USER " + mUsername);
    -                        executeSimpleCommand("PASS " + mPassword, true);
    +                        executeSimpleCommand(USER_COMMAND + " " + mUsername);
    +                        executeSimpleCommand(PASS_COMMAND + " " + mPassword, true);
                         } catch (MessagingException me) {
                             throw new AuthenticationFailedException(null, me);
                         }
    @@ -260,7 +278,7 @@ public class Pop3Store extends Store {
                     throw new MessagingException("Unable to open connection to POP server.", ioe);
                 }
     
    -            String response = executeSimpleCommand("STAT");
    +            String response = executeSimpleCommand(STAT_COMMAND);
                 String[] parts = response.split(" ");
                 mMessageCount = Integer.parseInt(parts[1]);
     
    @@ -284,7 +302,7 @@ public class Pop3Store extends Store {
             public void close() {
                 try {
                     if (isOpen()) {
    -                    executeSimpleCommand("QUIT");
    +                    executeSimpleCommand(QUIT_COMMAND);
                     }
                 } catch (Exception e) {
                     /*
    @@ -425,7 +443,7 @@ public class Pop3Store extends Store {
                     for (int msgNum = start; msgNum <= end; msgNum++) {
                         Pop3Message message = mMsgNumToMsgMap.get(msgNum);
                         if (message == null) {
    -                        String response = executeSimpleCommand("UIDL " + msgNum);
    +                        String response = executeSimpleCommand(UIDL_COMMAND + " " + msgNum);
                             int uidIndex = response.lastIndexOf(' ');
                             String msgUid = response.substring(uidIndex + 1);
                             message = new Pop3Message(msgUid, this);
    @@ -433,7 +451,7 @@ public class Pop3Store extends Store {
                         }
                     }
                 } else {
    -                String response = executeSimpleCommand("UIDL");
    +                String response = executeSimpleCommand(UIDL_COMMAND);
                     while ((response = readLine()) != null) {
                         if (response.equals(".")) {
                             break;
    @@ -484,7 +502,7 @@ public class Pop3Store extends Store {
                  * get them is to do a full UIDL list. A possible optimization
                  * would be trying UIDL for the latest X messages and praying.
                  */
    -            String response = executeSimpleCommand("UIDL");
    +            String response = executeSimpleCommand(UIDL_COMMAND);
                 while ((response = readLine()) != null) {
                     if (response.equals(".")) {
                         break;
    @@ -629,7 +647,7 @@ public class Pop3Store extends Store {
                         if (listener != null) {
                             listener.messageStarted(pop3Message.getUid(), i, count);
                         }
    -                    String response = executeSimpleCommand(String.format("LIST %d",
    +                    String response = executeSimpleCommand(String.format(LIST_COMMAND + " %d",
                                                                mUidToMsgNumMap.get(pop3Message.getUid())));
                         String[] listParts = response.split(" ");
                         //int msgNum = Integer.parseInt(listParts[1]);
    @@ -645,7 +663,7 @@ public class Pop3Store extends Store {
                         msgUidIndex.add(message.getUid());
                     }
                     int i = 0, count = messages.length;
    -                String response = executeSimpleCommand("LIST");
    +                String response = executeSimpleCommand(LIST_COMMAND);
                     while ((response = readLine()) != null) {
                         if (response.equals(".")) {
                             break;
    @@ -688,7 +706,7 @@ public class Pop3Store extends Store {
                                   "Checking to see if the TOP command is supported nevertheless.");
                         }
     
    -                    response = executeSimpleCommand(String.format("TOP %d %d",
    +                    response = executeSimpleCommand(String.format(TOP_COMMAND + " %d %d",
                                                         mUidToMsgNumMap.get(message.getUid()), lines));
     
                         // TOP command is supported. Remember this for the next time.
    @@ -710,7 +728,7 @@ public class Pop3Store extends Store {
                 }
     
                 if (response == null) {
    -                response = executeSimpleCommand(String.format("RETR %d",
    +                response = executeSimpleCommand(String.format(RETR_COMMAND + " %d",
                                                     mUidToMsgNumMap.get(message.getUid())));
                 }
     
    @@ -790,7 +808,7 @@ public class Pop3Store extends Store {
                         me.setPermanentFailure(true);
                         throw me;
                     }
    -                executeSimpleCommand(String.format("DELE %s", msgNum));
    +                executeSimpleCommand(String.format(DELE_COMMAND + " %s", msgNum));
                 }
             }
     
    @@ -826,20 +844,20 @@ public class Pop3Store extends Store {
             private Pop3Capabilities getCapabilities() throws IOException {
                 Pop3Capabilities capabilities = new Pop3Capabilities();
                 try {
    -                String response = executeSimpleCommand("CAPA");
    +                String response = executeSimpleCommand(CAPA_COMMAND);
                     while ((response = readLine()) != null) {
                         if (response.equals(".")) {
                             break;
                         }
    -                    if (response.equalsIgnoreCase("STLS")) {
    +                    if (response.equalsIgnoreCase(STLS_CAPABILITY)) {
                             capabilities.stls = true;
    -                    } else if (response.equalsIgnoreCase("UIDL")) {
    +                    } else if (response.equalsIgnoreCase(UIDL_CAPABILITY)) {
                             capabilities.uidl = true;
    -                    } else if (response.equalsIgnoreCase("PIPELINING")) {
    +                    } else if (response.equalsIgnoreCase(PIPELINING_CAPABILITY)) {
                             capabilities.pipelining = true;
    -                    } else if (response.equalsIgnoreCase("USER")) {
    +                    } else if (response.equalsIgnoreCase(USER_CAPABILITY)) {
                             capabilities.user = true;
    -                    } else if (response.equalsIgnoreCase("TOP")) {
    +                    } else if (response.equalsIgnoreCase(TOP_CAPABILITY)) {
                             capabilities.top = true;
                         }
                     }
    
    From 2acd55a9ef9a7b409010588825c064a86b198c9e Mon Sep 17 00:00:00 2001
    From: cketti 
    Date: Sun, 17 Jul 2011 14:37:21 +0200
    Subject: [PATCH 261/310] Implemented work-around to handle malformed UIDL
     responses (POP3).
    
    Fixes issue 3546
    ---
     src/com/fsck/k9/mail/store/Pop3Store.java | 17 ++++++++++++++++-
     1 file changed, 16 insertions(+), 1 deletion(-)
    
    diff --git a/src/com/fsck/k9/mail/store/Pop3Store.java b/src/com/fsck/k9/mail/store/Pop3Store.java
    index 420878874..3f4319206 100644
    --- a/src/com/fsck/k9/mail/store/Pop3Store.java
    +++ b/src/com/fsck/k9/mail/store/Pop3Store.java
    @@ -456,7 +456,22 @@ public class Pop3Store extends Store {
                         if (response.equals(".")) {
                             break;
                         }
    -                    String[] uidParts = response.split(" ");
    +
    +                    /*
    +                     * Yet another work-around for buggy server software:
    +                     * Replace every occurence of multiple spaces with exactly one space. This way
    +                     * the String.split() call below will have the desired effect, i.e. split the
    +                     * response into message number and unique identifier.
    +                     *
    +                     * Example for a malformed response:
    +                     * 1   2011071307115510400ae3e9e00bmu9
    +                     *
    +                     * Note the three spaces between message number and unique identifier.
    +                     * See issue 3546
    +                     */
    +                    String cleanedResponse = response.replaceAll("  +", " ");
    +
    +                    String[] uidParts = cleanedResponse.split(" ");
                         if ((uidParts.length >= 3) && "+OK".equals(uidParts[0])) {
                             /*
                              * At least one server software places a "+OK" in
    
    From 8d264b159eef75345833fc68eb637ae97f5f1eef Mon Sep 17 00:00:00 2001
    From: Koji Arai 
    Date: Mon, 18 Jul 2011 00:53:49 +0900
    Subject: [PATCH 262/310] Workaround for below issue.
    
    1. Show a message in MessageView.
    2. Press HOME button to back home.
    3. Re-launch the K-9 and select another message.
    4. Show first selected message.
    
    See also: https://github.com/k9mail/k-9/commit/fix_activity_stack
    ---
     src/com/fsck/k9/activity/MessageView.java | 1 +
     1 file changed, 1 insertion(+)
    
    diff --git a/src/com/fsck/k9/activity/MessageView.java b/src/com/fsck/k9/activity/MessageView.java
    index 937e4e035..0698e90d1 100644
    --- a/src/com/fsck/k9/activity/MessageView.java
    +++ b/src/com/fsck/k9/activity/MessageView.java
    @@ -368,6 +368,7 @@ public class MessageView extends K9Activity implements OnClickListener {
             i.putExtra(EXTRA_MESSAGE_REFERENCE, messRef);
             i.putParcelableArrayListExtra(EXTRA_MESSAGE_REFERENCES, messReferences);
             i.putExtra(EXTRA_ORIGINATING_INTENT, originatingIntent);
    +        i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK );
             if (extras != null) {
                 i.putExtras(extras);
             }
    
    From 1d3e0df21d5bddc9f5d8d371067fdd8d4cd37d08 Mon Sep 17 00:00:00 2001
    From: Alexei Emanov 
    Date: Mon, 18 Jul 2011 00:16:42 +0400
    Subject: [PATCH 263/310] The updated russian translation
    
    ---
     res/values-ru/strings.xml | 746 +++++++++++++++++++-------------------
     1 file changed, 371 insertions(+), 375 deletions(-)
    
    diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
    index 8608c981d..759bfd64d 100644
    --- a/res/values-ru/strings.xml
    +++ b/res/values-ru/strings.xml
    @@ -3,59 +3,59 @@
         K-9 Mail
         K-9 Mail BETA
         Google, The K-9 Dog Walkers.
    -    
    -    
    +    Copyright 2008-%s The K-9 Dog Walkers. Portions Copyright 2006-%s the Android Open Source Project.
    +    Лицензия Apache License, Version 2.0.
         Авторы: %s
         Информация об изменениях: %s
    -    
    -    
    +    Мы используем следующие тертьесторонние библиотеки: %s
    +    Иконки настроения: %s
     
         читать вложения электронной почты
         Разрешать этой программе читать вложения электронной почты.
    -    
    -    
    -    
    -    
    +    Читать письма
    +    Разрешать этой программе читать ваши письма.
    +    Унитожать письма
    +    Разрешать этой программе уничтожать ваши письма.
     
         О программе %s
         Адреса
         Дополнительные параметры
         %s 
    -    
    +    K-9 Mail Учётные записи
     
         %s:%s 
     
         Написать новое письмо
    -    Отлажки
    -    Выбрать Папку
    -    
    +    Отладка
    +    Выберите папку
    +    Выберите цвет
     
         %s%s%s
     
         \u0020[%d]
         \u0020(Запрос %s:%s%s)
    -    
    +    \u0020(Чтение заголовков %s:%s%s)
         \u0020(Отправка %s%s)
         \u0020(Обработка %s:%s%s)
         \u0020%s/%s
     
         \u0020(Следующий запрос @ %s)
    -    
    +    \u0020(Синхронизация запрещена)
     
         
         Следующий 
    -     
    +    Предыдущий 
         ОК 
         Отменить
         Отослать
    -    
    +    Послать снова
         Выбрать
         Сброс выбора
         Ответить
         Ответить всем
         Удалить
         Архивировать
    -    
    +    Спам
         Очистить папку
         Переслать
         Переместить
    @@ -79,13 +79,11 @@
         Открыть
         Почтовые настройки
         Настройки папки
    -    
    +    Глобальные настройки
         Удалить адрес
    -    Остановить незаконченные действия (опасность!)
    +    Остановить незаконченные действия (опасно!)
     
    -
    -
    -    Список почтовых ящиков
    +    Учётные записи
         
         
         Прочесть
    @@ -95,14 +93,14 @@
     
         Отметить все сообщения как прочитанные
         Отметить все сообщения в \'%s\' как прочитанные?  (включая
    -    сообщения в папке которые не отображаются в K-9)
    +    сообщения в папке, которые не отображаются)
     
         Добавить звезду
         Удалить звезду
         Копировать
    -    
    -    
    -    
    +    Показать полный заголовок
    +    Скрыть полный заголовок
    +    Выбрать текст
     
         Отметить как непрочитанное
         Переместить в
    @@ -111,12 +109,12 @@
         Добавить Копию/СК
         Редактировать тему
         Добавить вложение
    -    
    -    
    +    Добавить вложение (Изображение)
    +    Добавить вложение (Видео)
         Сброс настроек
    -    Опустошить Мусор
    +    Очистить Корзину
         Стереть
    -    
    +    Удалить локальные сообщения
         Выбрать сортировку
         Обратный порядок сортировки
         О Программе
    @@ -126,9 +124,9 @@
         Параметры папок
     
         (Без темы) 
    -    
    +    Нет даты
         Отправитель отсуствует
    -    Запрос%s
    +    Загрузка
         (Запрос %s%s)
         Загрузка сообщений\u2026
         Ошибка при соединении
    @@ -138,24 +136,18 @@
     
         Повторите загрузку сообщений
     
    -    Загрузить
    -    еще %d больше
    +    Загрузить еще %d
     
         ГБ
         МБ
         КБ
         Б
     
    -    
    -    Размер \"%s\" сократился от
    -    %s
    -    до
    -    %s
    -    
    +    Размер \"%s\" сократился с %s до %s
     
         Сжатие ящика \"%s\"
         Очистка ящика \"%s\"
    -    
    +    Пересоздание учётной записи\"%s\"
     
         Новые сообщения
         Новое сообщение от %s
    @@ -174,37 +166,35 @@
         Исходящие
         
         Черновики
    -    Мусор
    +    Корзина
         Отправленные
    -    
    -    
    +    Архив
    +    Спам
         
     
    -    %s (Черновики)
    -    %s (Мусор)
    -    %s (Отправленные)
    -    
    -    
    +    %s
    +    %s
    +    %s
    +    %s
    +    %s
     
         Не удалось отправить несколько сообщений
         Смотрите папку %s для подробностей.
    -    Программа столкнулась с проблемой при отправке некоторых из Ваших сообщений.
    -     В связи с родом проблемы, программа не может быть уверена либо сообщения были разосланы.
    -    Адресаты, возможно, уже получили копию этих сообщений.
    -    \u000a\u000aСообщения, для которых такого рода проблема возникла были помечены звездой в папке "Исходящие".
    +    Возникла проблема при отправке некоторых из Ваших сообщений, однако, возможно, они дошли до адресатов.
    +    \u000a\u000aДанные сообщения помечены звездой в папке "Исходящие".
         Если вы удалите звезды, программа попытается отправить сообщения еще раз.
    -    Нажмите на папку Исходящие и выберите "Отправить сообщения" для инициировки еще одной попытки отправки.\u000A\u000a
    -    Папка %s может содержать сообщения с ошибками о неудачах.
    +    Нажмите на папку Исходящие и выберите "Отправить сообщения" для еще одной попытки отправки.\u000A\u000a
    +    Папка %s может содержать сообщения о неудачах.
     
    -    K-9 предупреждение
    +    K-9 Mail предупреждение
         Синхронизация и передача прервана из-за отсутствия сети.
     
         Сообщений больше нету
     
         
    -Добро пожаловать на K-9 Mail настройки.  K-9 это программа электронной почты для Android операционных систем с открытым исходным кодом, первоначально основанная на стандартной программе Android Mail.
    +Добро пожаловать на K-9 Mail настройки.  K-9 Mail это программа электронной почты для Android операционных систем с открытым исходным кодом, первоначально основанная на стандартной программе Android Mail.
     \n
    -\n\n Улучшенные возможности программы K-9 включают:
    +\n\n Улучшенные возможности программы K-9 Mail включают:
     \n * Push mail при использовании IMAP IDLE
     \n * Более высокая скорость
     \n * Систематизация сообщений
    @@ -216,7 +206,7 @@
     \n * Сочетания клавиш на аппаратной клавиатуре
     \n * Лучшая поддержка для IMAP
     \n * Сохранение вложений на SD карту
    -\n * Вычистка мусора
    +\n * Очистка Корзины
     \n * Сортировка сообщений
     \n * ... и более
     \n
    @@ -225,14 +215,14 @@
     \n Просьба представлять отчеты об ошибках, запросы про разработке новых функций, и задавать вопросы на http://k9mail.googlecode.com/
     
         Версия: %s
    -    Включить занос в журнал отладок
    -    Занос дополнительной диагностической информации
    -    Занос конфиденциальной информации
    -    Может показывать пароли в журналах.
    +    Включить запись в журнал отладок
    +    Запись дополнительной диагностической информации
    +    Запись конфиденциальной информации
    +    Разрешает запись паролей в журнал
     
    -    K-9 Mail for Android
    +    K-9 Mail для Android
     
    -    Вся Почта
    +    Вся почта
         Последние сообщения из всех почтовых ящиков
         Все Входящие Сообщения 
     
    @@ -241,7 +231,7 @@
                            %s
                            %s
                            %s
    -    Загрузить болюше сообщений
    +    Загрузить больше сообщений
         Для:%s
         Удалить
         Отметить как прочитанное
    @@ -249,36 +239,35 @@
         Добавить Звезду
         Удалить Звезду
     
    -    Для
    +    Кому
         Копия
         СК
         Тема
         Текст сообщения
         -------- Исходное сообщение --------
         Тема:
    -    
    +    Послано:
         От:
         Для:
         Копия:
         %s написал(а):\n\n
         Цитированный текст
         Необходимо добавить хотя бы одного адресата.
    -    
    +    Не найден адрес почты.
         Некоторые вложения не были загружены. Они будут автоматически загружены перед отправкой этого сообщения.
         Некоторые вложения не могут быть пересланы, поскольку они не загрузились.
    +		Цитировать сообщение
     
    -
    -
    -    От: %s <%s>
    +		От: %s <%s>
         Для:
         Копия:
         Открыть
         Сохранить
         \u25BC
         \u25B2
    -    
    -    
    -    
    +    Архивировать
    +    Перенести
    +    Спам
         MMM dd yyyy hh:mm a
         Вложение сохранено на карту SD под именем %s.
         Не удалось сохранить вложение на карту SD.
    @@ -287,22 +276,21 @@
         Загрузка вложения.
         Приложение просмотра не найдено для %s.
     
    -
    -    
    +    Загрузить сообщение целиком
     
         
    -    
    -    
    -    
    +    Не все заголовки были загружены или сохранены. Выберите \"Сохранять заголовки локально\" в настройках входящего сервера, чтобы использовать эту возможность.
    +    Все заголовки загружены, дополнительных заголовков для отображения нет.
    +    Не удалось загрузить дополнительные заголовки из базы данных или почтового сервера.
     
         Папки
         Новая папка
     
         Имя новой папки
     
    -    (Push)
    +    (Поддержка Push Mail)
     
    -    
    +    Еще от этого отправителя
     
         Сообщение скопировано
         Сообщение перенесено
    @@ -315,43 +303,42 @@
         Версия: %s
     
     
    -    Начало сообщения
    +    Показывать звезды
         Звезды указывают отмеченные сообщения
         Флажки множественного выбора
         Всегда показывать Флажки множественного выбора
         Отображение удобное для управления пальцами
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    +    Список сообщений с предпросмотром
    +    Строки предпросмотра
    +    Показывать имя отправителя
    +    Показывать имя отправителя вместо e-mail, если это возмомжно
    +    Показывать имя получателя
    +    Использовать имя получателя из списка контактов
    +    Раскраска контактов
    +    Не раскрашивать имена в списке контактов
    +    Раскрасить имена в списке контактов
     
    -    
    -    
    -    
    -    
    +    Шрифты м ы иксированноц шириной
    +    Использовать шрифт фиксированной ширины при показе плоского текста
    +    Вернуться к списку после удаления
    +    Вернуться к списку сообщений после удаления сообщения
     
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    +    Подтверждение действий
    +    Показывать диалог при совершении действий
    +    Архивировать
    +    Удалить (только представление сообщения)
    +    Спам
    +    Пометить как прочитанное
    +    Послать
     
    -    
    -    
    +    Уведомления при заблокированном экране
    +    Не показывать тему письма в уведомлениях, когда система заблокирована
     
     
    -    
    -    
    -    
    -    
    -
    +    Время тишины
    +    Запретить сигнал, вибрацию, мигание в ночное время
    +    Начинало времени тишины
    +    Конец времени тишины
     
         Установить новый адрес
         Введите адрес электронной почты:
    @@ -367,15 +354,15 @@
         Получение информации об адресе\u2026
         Проверка настроек входящего сервера\u2026
         Проверка настроек исходящего сервера\u2026
    -    
    -    
    +    Аутентификация\u2026
    +    Чтение настроек учётной записи\u2026
         Завершение\u2026
         Отмена\u2026
     
         Почти готово!
         Ваш ящик создан и почта на пути!
         Дать этому ящику имя (необязательно):
    -    Ваше имя (отображается на исходящих сообщениях):
    +    Ваше имя (отображается в исходящих сообщениях):
     
         Ваш ящик готов!\n\nПочта загружается\u2026
     
    @@ -411,13 +398,13 @@
         Wi-Fi
         Другие
     
    -    
    -    
    +    Загрузить заголовки
    +    Сохранить локально все заголовки
     
    -    
    -    
    -    
    -    
    +    Внешнее хранилище (SD-карта)
    +    Стандартное внутреннее хранилище
    +    %1$s дополнительное внутреннее хранилище
    +    Расположение хранилища
     
         Стирать сообщения
         Сразу же после удаления или перемещения
    @@ -429,11 +416,11 @@
     
         Имя папки Черновиков
         Имя папки Отправленныx
    -    Имя папки Мусора
    -    
    -    
    +    Имя папки Корзины
    +    Имя папки Архива
    +    Имя папки Спам
     
    -    
    +    Показывать только папки из подписки
         Автоматически открывать папку
     
         Путь для WebDAV (Exchange)
    @@ -470,7 +457,7 @@
     
         Сжать данные
         Очистить все данные (опасно!)
    -    
    +    Пересоздать данные (крайний случай!)
     
         Частота опроса папок
         
    @@ -487,19 +474,19 @@
         Каждых 12 часов
         Каждых 24 часа
     
    -    
    +    Запрашивать при соединении с Push Mail
         Использовать Push Mail
         Если ваш сервер поддерживает такую возможность, новые сообщения появляются мгновенно. Эта опция может существенно улучшить или ухудшить скорость и эффективность всей системы.
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    +    Обновлять неактивное соединение
    +    Каждую минуту
    +    Каждые 2 минут
    +    Каждые 3 минут
    +    Каждые 6 минут
    +    Каждые 12 минут
    +    Каждые 24 минут
    +    Каждые 36 минут
    +    Каждые 48 минут
    +    Каждые 60 минут
     
         Отправлять сообщения с этого ящика по умолчанию
         Оповещать о прибытии новой почты
    @@ -514,8 +501,7 @@
         250 сообщений
         500 сообщений
         1000 сообщений
    -    
    -
    +    все сообщения
     
         Не удалось скопировать или переместить сообщение, которое не было синхронизированно с сервером
     
    @@ -526,7 +512,7 @@
         Изменить данные
         Продолжить
     
    -    
    +    Расширенные
         Общие настройки
         Ящик по умолчанию
         Ящик по умолчанию
    @@ -539,94 +525,97 @@
         Показать комбинированную папку Входящих сообщений
         Уведомлять о посланных мною сообщений
         Уведомлять даже о сообщениях, отправленных из личной почты
    -    
    -    
    -    
    -    
    +    Открыть непрочитанные сообщения
    +    Искать непрочитанные сообщения, когда уведомление открыто
    +    Показать количество непрочитанных
    +    Показать количество непрочитанных в строке уведомлений.
     
         Прокрутка навигационных кнопок
         Никогда
         Когда присутствует клавиатура
         Всегда
     
    -    
    -    
    -    
    +    Разрешить кнопки переноса сообщений
    +    Показывает кнопки: Архив, Переместить, Спам.
    +    Спрятать кнопки перемещения
     
    -    
    -    
    -    
    -    
    +    Показывать изображения
    +    Никогда
    +    От контактов
    +    От всех
     
         Написание сообщений
     
    -    
    -    
    +		Цитировать оригинальное сообщение при ответе
    +		Оригинальное сообщение вставляется в ответное сообщение.
     
    -    
    -    
    -    
    +		Отвечать после цитаты
    +    При ответе цитата будет выше ответа.
     
    -    
    -    
    -    
    +    Формат сообщения
    +    Плоский текст (изображения и форматирование не сохраняется)
    +    HTML (сохранять изображения и форматирование)
     
    -    
    -    
    +    Стиль цитирования
    +    Префикс (например Gmail, Pine)
    +    Заголовок (например Outlook, Yahoo!, Hotmail)
    +
    +    Общие
    +    Экран
         Синхронизация папок
         Папки
         Список сообщений
         Просмотр сообщений
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    +    Префикс цитирования
    +    Криптография
    +    OpenPGP
    +    Нет
    +    Не доступна
    +    Автоподпись
    +    Использовать e-mail учётной записи для формирования ключа подписи.
     
         Частота опроса папок
         Частота опроса папок 2-го класса
     
    -    
    +    Хранилище
     
     
    -    
    -    
    +    Цвет учётной записи
    +    Выберите цвет учётной записи, используемый в папке и списке учётных записей
     
    -    
    -    
    +    Notification LED color
    +    Выбрать цвет мигания для учётной записи
     
         Количество показываемых сообщений
     
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    +    Загружать сообщения до
    +    1Kb
    +    2Kb
    +    4Kb
    +    8Kb
    +    16Kb
    +    32Kb
    +    64Kb
    +    128Kb
    +    256Kb
    +    512Kb
    +    1Mb
    +    2Mb
    +    любого размера без ограничений
     
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    +    Синхронизировать сообщения
    +    без ограничения по давности
    +    за сегодня
    +    за 2 последних дня
    +    за 3 последних дня
    +    за последнюю неделю
    +    за 2 последних недели
    +    за 3 последних недели
    +    за последний месяц
    +    за 2 последних месяца
    +    за 3 последних месяца
    +    за 6 последних месяцев
    +    за последний год
     
     
         Выбор показываемых папок
    @@ -655,8 +644,8 @@
         Папки 1-го и 2-го класса
         Все, кроме папок 2-го класса
     
    -    
    -    
    +    Синхронизировать удаление на сервере
    +    Удаляет удалённые на сервере сообщения
     
         Настройки папок
     
    @@ -691,18 +680,17 @@
         Звонок при новых сообщениях
         Вибрация
         Вибрация при новых сообщениях
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    +    Паттерн вибрации
    +    По умолчанию
    +    паттерн 1
    +    паттерн 2
    +    паттерн 3
    +    паттерн 4
    +    паттерн 5
    +    Повторять вибрацию
         Выбор мелодии
    -    
    -    
    -
    +    Мигать
    +    Мигать если получены сообщения
     
         Настройки сервера
     
    @@ -735,21 +723,21 @@
         (Необязательныо)
         Адрес электронной почты
         (Обязательный)
    -    
    -    
    +    Отвечать на адрес
    +    (Необязательно)
         Подпись
    -    (Необязательныо)
    +    (Необязательно)
     
         Включить подпись
         Подпись
         Добавить подпись к каждому отправляемому сообщению
     
    -    -- \nОтправлено с мобильного телефона через К-9 Mail. Извините за краткость, пожалуйста.
    +    -- \nОтправлено через К-9 Mail. Извините за краткость, пожалуйста.
         Первоначальная личность
         Выбрать личность
         Выбрать личность
    -    
    -    
    +    Выбрать учётную запись/личность
    +    Послать как
     
     
         Добавить личность можно в Настройке Ящиков -> Управление личностями
    @@ -757,18 +745,18 @@
         Личность без адреса электронной почты не позволяется.
         Ваш выбор личности и изменения подписи не будут сохранены.
     
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    +    Сначала старые сообщения
    +    Сначала новые сообщения
    +    Отправитель по алфавиту
    +    Отправитель по алфавиту в обратном порядке
    +    Тема по алфавиту
    +    Тема по алфавиту в обратном порядке
    +    Сначала сообщения со звёздами
    +    Сначала сообщения без звёзд
    +    Сначала непрочитанные сообщения
    +    Сначала прочитанные сообщения
    +    Сначала сообщения с вложениями
    +    Сначала сообщения без вложений
     
         Сортировка по...
         Дате
    @@ -779,25 +767,29 @@
         Вложениям
         %s
     
    -    Удалить
    -    Почтовой ящик \"%s\" будет удален.
    +    Удалить учётную запись
    +    Учётная запись \"%s\" будет удален.
     
    -    
    -    
    +    Пересоздать учётную запись
    +    Все данные учётной записи \"%s\" будут уничтожены, но настройки сохранятся.
     
    -    
    -    
    +    Очистить учётную запись
    +    Все сообщения учётной записи \"%s\" будут уничтожены, но настройки сохранятся.
     
    -    Только избранные \"Plus\" ящики поддерживают получения электронной почты через \"POP"
    -        и таким образом работают с этой программой. Если вы не можете подключится
    -        с верными данными, то ваш тип почтового ящика не имеет такого доступа.
    -        Пожалуйста, пользуйтесь мобильной версией Yahoo! Mail для получения сообщений.
    +    Только некоторые \"Plus\" ящики поддерживают получение почты через \"POP\". Если вы не можете подключится
    +        с верными данными подключения, то ваш почтовый ящик не имеет такого доступа.
    +        Воспользуйтесь мобильной версией Yahoo! Mail для получения сообщений.
     
    -    
    +    Если вы хотите использовать POP3 для данного поставщика, вы должны разрешить использование POP3 на странице настроек почты Yahoo.
     
    -    Сертификат не признан
    -    Принять Ключ
    -    Отклонить Ключ
    +		Если вы хотите использовать IMAP или POP3 для данного поставщика, вы должны разрешить использование IMAP или POP3 на странице настроек почты Naver.
    +		Если вы хотите использовать IMAP или POP3 для данного поставщика, вы должны разрешить использование IMAP или POP3 на странице настроек почты Hanmail(Daum).
    +		Если вы хотите использовать IMAP или POP3 для данного поставщика, вы должны	разрешить использование IMAP или POP3 на странице настроек почты Paran.
    +		Если вы хотите использовать IMAP или POP3 для данного поставщика, вы должны разрешить использование IMAP или POP3 на странице настроек почты Nate.
    +
    +		Сертификат не признан
    +    Принять сертификат
    +    Отклонить сертификат
     
         Del (или D) - Удалить\u000AR -
         Ответить\u000AA - Ответить Всем\u000AF - Переслать\u000AJ or P - Предыдущее
    @@ -824,51 +816,56 @@
     
     
     
    -    Пизиция подписи
    -    Перед цитатой
    +    Размещение подписи
    +    перед цитатой
         после цитаты
         Темное
         Светлое
    -    Глобальные настройки
    -    
    +    Экран
    +    Глобальные
         Отладка
    -    
    -    
    -    
    -    
    -    Списки Сообщений
    -    
    +    Конфиденциальность
    +    Сеть
    +    Взаимодействие
    +    Список учётных записей
    +    Списки сообщений
    +    Сообщения
         Изображение
    -    
    +    Язык
     
    -    
    -    
    -    
    -    
    +    Режим одной колонки
    +    Форматировать HTML сообщения для маленького экрана
    +    Системное управление зумом
    +    Разрешить использование зума, если устройство его поддерживает
     
    -
    -
    -    
    +    По умолчанию
     
         Синхронизация в фоновом режиме
         Никогда
         Всегда
    -    Когда \'Фоноввый режим\' включен
    -    
    +    Когда \'Фоновый режим\' включен
    +    Когда \'Фоновые данные\' & \'Автосинхронизация\' включены
     
         Никаких сообщшний не выбранно
     
         Формат даты
    -    
    +	
    +		SHORT
    +		MEDIUM
    +		dd-MMM-yyyy
    +		yyyy-MM-dd
     
    -    Групповые операции
    +		Групповые операции
         Удалить выбранное
         Пометить выбранное как прочитанное
         Пометить выбранное как не прочитанное
         Пометить выбранное звездами
         Удалить звезды с выбранных
    -    
    -    
    +    Переместить выбранные в Архив
    +    Переместить выбранные в Спам
         Переместить выбранное
         Скопировать выбранное
         Режим звезд
    @@ -891,40 +888,40 @@
         Жесты
         Принимать контроль жестами
     
    -    
    -    
    +    Компактное размещение
    +    Настроить размещение для отображения максимума на каждой странице
     
    -    
    -    
    -    
    -    
    +    Использовать управление громкостью для навигации
    +    Перемещаться по элементам, используя управление громкостью
    +    Сообщение
    +    Различные списки элементов
     
    -    
    -    
    +    Использовать кнопку \"Назад\"
    +    \"Назад\" всегда возвращает на уровень вверх
     
    -    
    -    
    +    Входить в общий ящик при запуске
    +    Показать общий ящик сообщений после запуска
     
    -    
    -    
    +    Показать размер учётной записи
    +    Выключите для быстрого отображения
     
    -    
    -    
    +    Считать результаты поиска
    +    Выключите для быстрого отображения
     
    -    
    -    
    +    Спрятать специальные учётные записи
    +    Спрятать объединённый ящик со входящими письмами и все учётные записи сообщений
     
    -    
    -    
    -    
    +    %s %s
    +     - Помеченные
    +     - Непрочитанные
     
    -    
    -    
    +    Все сообщения
    +    Все сообщения в папках для поика
     
         Объединенная папка входящей почты (непрочитанное)
         Все непрочитанные сообщения в объединенных папках
     
    -    
    +    Нажмите конверт или звездочку для непрочитанных или помеченных звездой сообщений
     
         Объединить
         Показывать непрочитанные сообщения в объединенной папке
    @@ -937,112 +934,111 @@
         Дистанционное управление K-9 Mail
         Позволяет этому приложению управлеть деятельностью и настройками K-9 Mail.
     
    -    
    -    
    +	Размер шрифта
    +	Настройте размер шрифта
     
    -    
    -    
    -    
    +	Список учётных записей
    +	Название учётной записи
    +	Описание учётной записи
     
    -    
    -    
    -    
    +	Список папок
    +	Имя папки
    +	Статус папки
     
    -    
    -    
    -    
    -    
    -    
    +	Список сообщений
    +	Тема
    +	Отпрвитель
    +	Дата
    +	Предпросмотр
     
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    +	Сообщения
    +	отправитель
    +	Кому
    +	Скрытая копия
    +	дополнительные заголовки
    +	Тема
    +	Время
    +	Дата
    +	Тело сообщения
     
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    +	самый крочшечный
    +	Крошечный
    +	Еще меньше
    +	Маленький
    +	средний
    +	Большой
    +	Наибольший
     
    -    
    -    
    -    
    -    
    -    
    +	Крошечный
    +	Маленький
    +	Нормальный
    +	Большой
    +	Наибольший
     
    -    
    -    
    +	
    +		 Выберите \"Настройка\" -> \"Использовать обход проблемы...\", чтобы вкладывать картинки и изображения используя Gallery 3D.
     
    -    
    -    
    +		 
    +		 Выберите \"Добавить вложение (Картинка)\" или "Добвить вложение (Видео)\", чтобы вкладывать картинки и изображения используя Gallery 3D.
     
    -    
    -    
    -    
    +		 Разное
    +		 Использовать обход проблемы с \"Использовать галерею\"
    +		 Показывать кнопки для добавления картинок и видео вложений (чтобы обойти проблемы с 3D в Gallery)
    +		 
    +		 Нет подходящего приложения для действия.
    +		 Установленная версия APG не поддерживается.
    +		 подписать
    +		 Зашифровать
    +		 Расшифровать
    +		 проверить
    +		 <неизвестный>
    +		 id: %s
    +		 K-9 Mail не имеет разрешения для полного доступа к APG, please пожалуйста переустановите приложение.
    +		 PGP/MIME сообщения пока не поддерживаются.
    +		 Предупреждение: вложения еще не подписаны и не зашифрованы.
    +		 Отправка отменена.
     
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    +		 Сохранить черновик сообщения?
    +		 Сохранить или уничтожить сообщение?
     
    -    
    -    
    +		 Это сообщение не может быть отображено, так как кодовая страница \"%s\" не найдена.
     
    -    
    +		 Выберите текс для копирования.
     
    -    
    +		 Подтвердите удаление
    +		 Вы хотите удалить это сообщение?
    +		 Удалить
    +		 Не удалять
     
    -    
    -    
    -    
    -    
    +		 Подтвердите перенос в папку Спам
    +		 
    +				 Вы действительно хотите переместить сообщение в папку Спам?
    +				 Вы действительно хотите переместить %1$d сообщений в папку Спам?
    +
    -    
    +		 
    +		 Да
    +		 Нет
     
    -  Possible values for 'quantity': zero, one, two, few, many, other
    +		 Скачивание вложения
     
    -  (1) http://developer.android.com/guide/topics/resources/string-resource.html#Plurals
    +		 Разрешить журналирование отладочной информайии
     
    -    -->
    -    
    -    
    +		 »
    +		 
    +		 Не получается соединиться.
     
    -    
    +		 Учётная запись\"%s\" недоступна; проверьте хранилище
     
    -    
    -
    -    
    -    
    -    
    -
    -    
    -
    -    
    -    
    -    
    +		 Сохранять вложения в...
    +		 Сохранить вложение
    +		 Не найден браузер файлов. Где бы вы хотели сохранить вложение?
     
    
    From 0543183b11be1125461b1b04567ee4ec8fba01ac Mon Sep 17 00:00:00 2001
    From: Jesse Vincent 
    Date: Tue, 19 Jul 2011 22:43:32 -0400
    Subject: [PATCH 264/310] Work around a weird NPE in WebDAV sync reported by
     Jon Blow
    
    ---
     src/com/fsck/k9/mail/store/WebDavStore.java | 6 +++++-
     1 file changed, 5 insertions(+), 1 deletion(-)
    
    diff --git a/src/com/fsck/k9/mail/store/WebDavStore.java b/src/com/fsck/k9/mail/store/WebDavStore.java
    index 9be88b78b..a0ecb5085 100644
    --- a/src/com/fsck/k9/mail/store/WebDavStore.java
    +++ b/src/com/fsck/k9/mail/store/WebDavStore.java
    @@ -1590,7 +1590,11 @@ public class WebDavStore extends Store {
                         listener.messageStarted(wdMessage.getUid(), i, count);
                     }
     
    -                wdMessage.setFlagInternal(Flag.SEEN, uidToReadStatus.get(wdMessage.getUid()));
    +                try { 
    +                    wdMessage.setFlagInternal(Flag.SEEN, uidToReadStatus.get(wdMessage.getUid()));
    +                } catch (NullPointerException e) {
    +                    Log.v(K9.LOG_TAG,"Under some weird circumstances, setting the read status when syncing from webdav threw an NPE. Skipping.");
    +                }
     
                     if (listener != null) {
                         listener.messageFinished(wdMessage, i, count);
    
    From fda43206a30b2cf7bafdc3ffd5d29d4fac2b84ba Mon Sep 17 00:00:00 2001
    From: Koji Arai 
    Date: Tue, 19 Jul 2011 23:37:19 +0900
    Subject: [PATCH 265/310] Fixed the below issue for GalaxyS and S2.
    
    When scrolling a ListView, all items turn black.
    it was reproduced on FolderList, MessageList and Accounts, other views were not.
    ---
     src/com/fsck/k9/activity/Accounts.java    | 1 +
     src/com/fsck/k9/activity/FolderList.java  | 2 +-
     src/com/fsck/k9/activity/MessageList.java | 2 +-
     3 files changed, 3 insertions(+), 2 deletions(-)
    
    diff --git a/src/com/fsck/k9/activity/Accounts.java b/src/com/fsck/k9/activity/Accounts.java
    index 37f5a41c8..7053707fe 100644
    --- a/src/com/fsck/k9/activity/Accounts.java
    +++ b/src/com/fsck/k9/activity/Accounts.java
    @@ -262,6 +262,7 @@ public class Accounts extends K9ListActivity implements OnItemClickListener, OnC
                 listView.setOnItemClickListener(this);
                 listView.setItemsCanFocus(false);
                 listView.setEmptyView(findViewById(R.id.empty));
    +            listView.setScrollingCacheEnabled(false);
                 findViewById(R.id.next).setOnClickListener(this);
                 registerForContextMenu(listView);
     
    diff --git a/src/com/fsck/k9/activity/FolderList.java b/src/com/fsck/k9/activity/FolderList.java
    index 30b0ed706..383540261 100644
    --- a/src/com/fsck/k9/activity/FolderList.java
    +++ b/src/com/fsck/k9/activity/FolderList.java
    @@ -243,7 +243,7 @@ public class FolderList extends K9ListActivity {
             mListView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_INSET);
             mListView.setLongClickable(true);
             mListView.setFastScrollEnabled(true);
    -        mListView.setScrollingCacheEnabled(true);
    +        mListView.setScrollingCacheEnabled(false);
             mListView.setOnItemClickListener(new OnItemClickListener() {
                 public void onItemClick(AdapterView parent, View view, int position, long id) {
                     onOpenFolder(((FolderInfoHolder)mAdapter.getItem(position)).name);
    diff --git a/src/com/fsck/k9/activity/MessageList.java b/src/com/fsck/k9/activity/MessageList.java
    index f9cf52721..7b36f5426 100644
    --- a/src/com/fsck/k9/activity/MessageList.java
    +++ b/src/com/fsck/k9/activity/MessageList.java
    @@ -800,7 +800,7 @@ public class MessageList
             mListView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_INSET);
             mListView.setLongClickable(true);
             mListView.setFastScrollEnabled(true);
    -        mListView.setScrollingCacheEnabled(true);
    +        mListView.setScrollingCacheEnabled(false);
             mListView.setOnItemClickListener(this);
             mListView.addFooterView(getFooterView(mListView));
     
    
    From e31964db0ac30318aab5a092b76acabbbaea8649 Mon Sep 17 00:00:00 2001
    From: Jesse Vincent 
    Date: Wed, 20 Jul 2011 18:05:37 -0400
    Subject: [PATCH 266/310] 3.904
    
    ---
     AndroidManifest.xml | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/AndroidManifest.xml b/AndroidManifest.xml
    index e925c5ada..e04197ca2 100644
    --- a/AndroidManifest.xml
    +++ b/AndroidManifest.xml
    @@ -1,8 +1,8 @@
     
     
         
    Date: Thu, 21 Jul 2011 17:41:19 -0700
    Subject: [PATCH 267/310] Add mockito jar for testing.
    
    ---
     compile-only-libs/mockito-all-1.8.5.jar | Bin 0 -> 1419869 bytes
     1 file changed, 0 insertions(+), 0 deletions(-)
     create mode 100644 compile-only-libs/mockito-all-1.8.5.jar
    
    diff --git a/compile-only-libs/mockito-all-1.8.5.jar b/compile-only-libs/mockito-all-1.8.5.jar
    new file mode 100644
    index 0000000000000000000000000000000000000000..4b0395ed81412d94fcb94c5b9bfd410c1361ebaa
    GIT binary patch
    literal 1419869
    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

    |%ZaTg$UqEg#SB=M&g2eD2|S>}fuUy~roC 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

    =x2%p9FQLKX@_kwZ6>lz<5Aj$uy2 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 literal 0 HcmV?d00001 From 7b7601082b90e3b9b4f4157cadefdaae551cfe00 Mon Sep 17 00:00:00 2001 From: Jesse Vincent Date: Sat, 23 Jul 2011 18:44:18 -0400 Subject: [PATCH 268/310] the refactoring to combine batch and record logic added an extra check that broke delete of single messages from message list. --- src/com/fsck/k9/activity/MessageList.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/com/fsck/k9/activity/MessageList.java b/src/com/fsck/k9/activity/MessageList.java index 7b36f5426..79a125b2f 100644 --- a/src/com/fsck/k9/activity/MessageList.java +++ b/src/com/fsck/k9/activity/MessageList.java @@ -1170,12 +1170,9 @@ public class MessageList * Never {@code null}. */ private void onDelete(final List holders) { - // FIXME: removeMessage does it own check on the 'selected' field, we're duplicating the logic here... final List messagesToRemove = new ArrayList(); for (MessageInfoHolder holder : holders) { - if (holder.selected) { - messagesToRemove.add(holder.message); - } + messagesToRemove.add(holder.message); } mHandler.removeMessages(holders); mController.deleteMessages(messagesToRemove.toArray(EMPTY_MESSAGE_ARRAY), null); From 00f2038b61fbaa0a247bb8ce371e4394ce3de149 Mon Sep 17 00:00:00 2001 From: Jesse Vincent Date: Sat, 23 Jul 2011 18:47:41 -0400 Subject: [PATCH 269/310] Bumped manifest to 3.905 --- AndroidManifest.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index e04197ca2..4105dda68 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,8 +1,8 @@ Date: Sat, 2 Jul 2011 17:52:54 -0400 Subject: [PATCH 270/310] Workaround for market-reported error: java.lang.Error: org.apache.james.mime4j.io.MaxHeaderLimitException: Maximum header limit exceeded at com.kaitenmail.mail.internet.MimeMessage.parse(MimeMessage.java:85) at com.kaitenmail.mail.store.Pop3Store$Pop3Message.parse(Pop3Store.java:932) at com.kaitenmail.mail.store.Pop3Store$Pop3Folder.fetchBody(Pop3Store.java:714) at com.kaitenmail.mail.store.Pop3Store$Pop3Folder.fetch(Pop3Store.java:579) at com.kaitenmail.controller.MessagingController.downloadSmallMessages(MessagingController.java:1562) at com.kaitenmail.controller.MessagingController.downloadMessages(MessagingController.java:1288) at com.kaitenmail.controller.MessagingController.synchronizeMailboxSynchronous(MessagingController.java:1031) at com.kaitenmail.controller.MessagingController.access$400(MessagingController.java:81) at com.kaitenmail.controller.MessagingController$8.run(MessagingController.java:823) at com.kaitenmail.controller.MessagingController.run(MessagingController.java:276) at java.lang.Thread.run(Thread.java:1096) Caused by: org.apache.james.mime4j.io.MaxHeaderLimitException: Maximum header limit exceeded at org.apache.james.mime4j.stream.AbstractEntity.parseField(AbstractEntity.java:153) at org.apache.james.mime4j.stream.MimeEntity.advance(MimeEntity.java:120) at org.apache.james.mime4j.stream.MimeTokenStream.next(MimeTokenStream.java:351) at org.apache.james.mime4j.parser.MimeStreamParser.parse(MimeStreamParser.java:179) at com.kaitenmail.mail.internet.MimeMessage.parse(MimeMessage.java:83) ... 10 more --- src/com/fsck/k9/mail/internet/MimeMessage.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/com/fsck/k9/mail/internet/MimeMessage.java b/src/com/fsck/k9/mail/internet/MimeMessage.java index 64893674e..d61ed86bc 100644 --- a/src/com/fsck/k9/mail/internet/MimeMessage.java +++ b/src/com/fsck/k9/mail/internet/MimeMessage.java @@ -77,6 +77,7 @@ public class MimeMessage extends Message { parserConfig.setMaxHeaderLen(-1); // The default is a mere 10k parserConfig.setMaxLineLen(-1); // The default is 1000 characters. Some MUAs generate // REALLY long References: headers + parserConfig.setMaxHeaderCount(-1); // Disable the check for header count. MimeStreamParser parser = new MimeStreamParser(parserConfig); parser.setContentHandler(new MimeMessageBuilder()); try { From b89704900af4a08594c84c9aa611d1085137208d Mon Sep 17 00:00:00 2001 From: Jesse Vincent Date: Mon, 25 Jul 2011 01:55:03 -0400 Subject: [PATCH 271/310] Bumped manifest to 3.906 --- AndroidManifest.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 4105dda68..b5047cc9f 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,8 +1,8 @@ Date: Thu, 28 Jul 2011 15:08:00 -0400 Subject: [PATCH 272/310] Fixed bug where uid in response was truncated The SAX parser returns chunks of text to the WebDavHandler. Other tags were correctly appending values while the special cased tag was simply assigned the value it was given, which would result in the last chunk assigned to it and not the whole string of text. --- src/com/fsck/k9/mail/store/WebDavStore.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/com/fsck/k9/mail/store/WebDavStore.java b/src/com/fsck/k9/mail/store/WebDavStore.java index a0ecb5085..67c909e8d 100644 --- a/src/com/fsck/k9/mail/store/WebDavStore.java +++ b/src/com/fsck/k9/mail/store/WebDavStore.java @@ -2060,12 +2060,12 @@ public class WebDavStore extends Store { public class DataSet { private HashMap> mData = new HashMap>(); // private HashMap mLostData = new HashMap(); - private String mUid = ""; + private StringBuilder mUid = new StringBuilder(); private HashMap mTempData = new HashMap(); public void addValue(String value, String tagName) { if (tagName.equals("uid")) { - mUid = value; + mUid.append(value); } if (mTempData.containsKey(tagName)) { @@ -2076,9 +2076,10 @@ public class WebDavStore extends Store { } public void finish() { - if (mUid != null && + String uid = mUid.toString(); + if (!uid.equals("") && mTempData != null) { - mData.put(mUid, mTempData); + mData.put(uid, mTempData); } else if (mTempData != null) { /* * Lost Data are for requests that don't include a message UID. These requests should only have a depth @@ -2086,7 +2087,7 @@ public class WebDavStore extends Store { */ } - mUid = ""; + mUid = new StringBuilder(); mTempData = new HashMap(); } From ee132e92d1110fef909dcce5a55867f024e19820 Mon Sep 17 00:00:00 2001 From: Jesse Vincent Date: Mon, 8 Aug 2011 01:01:15 -0400 Subject: [PATCH 273/310] 3.9 no longer targets 1.6. Bumped to the oldest 2.x sdk level that google still lets us build against. Thanks and apologies to Joey Jones for finding the pre-existing incompatibility that pushed me to make the build change we've been promising for so long --- AndroidManifest.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index b5047cc9f..4c3de3ea5 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -5,8 +5,8 @@ android:versionName="3.906" package="com.fsck.k9" > Date: Fri, 12 Aug 2011 21:57:01 +0200 Subject: [PATCH 274/310] Use SDK 10 to build K-9 Mail since SDK 9 is no longer available. --- default.properties | 2 +- tests/default.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/default.properties b/default.properties index 528230532..8fc4bac37 100644 --- a/default.properties +++ b/default.properties @@ -10,6 +10,6 @@ # Indicates whether an apk should be generated for each density. split.density=false # Project target. -target=android-9 +target=android-10 extensible.libs.classpath=compile-only-libs java.encoding=utf8 diff --git a/tests/default.properties b/tests/default.properties index 4686f7f8d..66db0d159 100644 --- a/tests/default.properties +++ b/tests/default.properties @@ -8,4 +8,4 @@ # project structure. # Project target. -target=android-9 +target=android-10 From 940a17ef52415e367aa83a3efbc71a284f8d5c6e Mon Sep 17 00:00:00 2001 From: sunglim Date: Mon, 22 Aug 2011 02:03:45 +0900 Subject: [PATCH 275/310] Korean language minor update --- res/values-ko/strings.xml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml index 68a93adb9..137eeb974 100644 --- a/res/values-ko/strings.xml +++ b/res/values-ko/strings.xml @@ -91,8 +91,8 @@ 모든 편지를 읽음으로 표시 \'%s\' 폴더의 모든 메시지를 읽음으로 표시하시겠습니까? (K-9에서 보여지지 않은 폴더의 메시지포함) - 별표 붙이기 - 별표 삭제 + 즐겨찾기 등록 + 즐겨찾기 해제 복사 헤더 보기 헤더 숨기기 @@ -184,8 +184,8 @@ K-9에서 메시지를 보내는데 문제가 발생하였습니다. 하지만 문제의 특성상 K-9은 메시지가 확실히 보내졌는지 여부를 확인할 수 없습니다. 수신자는 이미 메시지를 받았을 수도 있습니다. - \u000a\u000a발생된 문제 유형의 메시지는 보낸편지함에 별표(started) 표시되었습니다. - 이 별표를 없애면 K-9은 메시지를 재전송을 시도할것입니다. + \u000a\u000a발생된 문제 유형의 메시지는 보낸편지함에 즐겨찾기(stared) 표시되었습니다. + 이 즐겨찾기(stared)를 없애면 K-9은 메시지를 재전송을 시도할것입니다. 다른 발신 작업을 하기위해서는 보낸편지함을 길게 눌러 메시지 보내기를 찾으십시오.\u000A\u000a %s 폴더에 실패에 대한 에러메시지가 있습니다. @@ -241,8 +241,8 @@ K-9 메일 설치를 환영합니다. K-9은 안드로이드용 오픈소스 지우기 읽음으로 표시 읽지 않음으료 표시 - 별표 더하기 - 별표 지우기 + 즐겨찾기 등록 + 즐겨찾기 해제 받는 사람 참조 @@ -310,8 +310,8 @@ K-9 메일 설치를 환영합니다. K-9은 안드로이드용 오픈소스 버전: %s - 별표 보기 - 체크된 메시지 별표하기 + 즐겨찾기 보기 + 체크된 메시지 즐겨찾기등록 체크박스 여러게 선택하기 여러게 선택하기를 항상보여줍니다. 메시지 미리보기 @@ -758,8 +758,8 @@ K-9 메일 설치를 환영합니다. K-9은 안드로이드용 오픈소스 알파벳 순서의 역순 제목의 알파벳 순서 제목의 알파벳 순서의 역순 - 별표(stared) 메시지를 첫번째로 - 별표아닌(unstarted) 메시지를 첫번째로 + 즐겨찾기(stared) 메시지를 첫번째로 + 즐겨찾기아닌(unstarted) 메시지를 첫번째로 읽지않은 메시지를 첫번째로 읽은 메시지를 첫번째로 첨부파일이 있는 메시지를 첫번째로 @@ -871,13 +871,13 @@ K-9 메일 설치를 환영합니다. K-9은 안드로이드용 오픈소스 삭제 읽음으로 표시 읽지 않음으로 표시 - 별표 추기 - 별표 없애기 + 즐겨찾기 추기 + 즐겨찾기 해제 보관(Archive)으로 이동 스팸으로 이동 이동(Move) 복사 - 별표(Star) 모드 + 즐겨찾기(Star) 모드 선택(Select) 모드 일반(Plain)모드 모두 선택 @@ -921,7 +921,7 @@ K-9 메일 설치를 환영합니다. K-9은 안드로이드용 오픈소스 통합 이메일함과 모든 편지함 숨기기 %s %s - - 별표 메일수 + - 즐겨찾기 메일수 - 읽지않은 메일수 모든 편지 From 3f1123110b3147419554def5e560b297a8c8ea4f Mon Sep 17 00:00:00 2001 From: sunglim Date: Mon, 22 Aug 2011 02:29:17 +0900 Subject: [PATCH 276/310] korean minor update --- res/values-ko/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml index 137eeb974..3e89f0cae 100644 --- a/res/values-ko/strings.xml +++ b/res/values-ko/strings.xml @@ -184,7 +184,7 @@ K-9에서 메시지를 보내는데 문제가 발생하였습니다. 하지만 문제의 특성상 K-9은 메시지가 확실히 보내졌는지 여부를 확인할 수 없습니다. 수신자는 이미 메시지를 받았을 수도 있습니다. - \u000a\u000a발생된 문제 유형의 메시지는 보낸편지함에 즐겨찾기(stared) 표시되었습니다. + \u000a\u000a발생된 문제 유형의 메시지는 보낸편지함에 즐겨찾기(stared) 표시가 되어있습니다. 이 즐겨찾기(stared)를 없애면 K-9은 메시지를 재전송을 시도할것입니다. 다른 발신 작업을 하기위해서는 보낸편지함을 길게 눌러 메시지 보내기를 찾으십시오.\u000A\u000a %s 폴더에 실패에 대한 에러메시지가 있습니다. From 5e5f05833901130bf93c7c8efd8b636d8fe5e64b Mon Sep 17 00:00:00 2001 From: sunglim Date: Thu, 25 Aug 2011 04:29:26 +0900 Subject: [PATCH 277/310] Updated Korean Language --- res/values-ko/strings.xml | 48 +++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml index 3e89f0cae..7f4b5ac94 100644 --- a/res/values-ko/strings.xml +++ b/res/values-ko/strings.xml @@ -3,7 +3,7 @@ K-9 메일 K-9 메일 베타 Authors: %s - 수정 정보: %s + 릴리즈 정보: %s K-9 메일은 아래의 서드파티 라이브러리를 이용합니다 : %s Emoji 아이콘: %s @@ -14,7 +14,7 @@ 이메일 삭제 K-9이 이메일을 삭제하도록 합니다 - 정보 %s + %s 계정 고급 %s @@ -22,7 +22,7 @@ %s:%s - 쓰기 + 작성 디버그 폴더 선택 색 선택 @@ -37,7 +37,7 @@ \u0020%s/%s \u0020(다음 수신 @ %s) - \u0020(동기화 불가능) + \u0020(동기화 실패) 다음 @@ -78,7 +78,7 @@ 폴더 설정 환경 설정 계정 삭제 - 예정된 작업 없애기(위험!) + 예정된 작업 삭제(위험!) 계정 @@ -124,15 +124,15 @@ 보낸이 없음 수신중 (수신 %s%s) - 로딩중..\u2026 + 이메일을 가져오는 중..\u2026 연결 오류 메시지를 찾을 수 없습니다 오류 - 보내는 중 + 전송중 메시지 로딩 실패 - %d개 더 읽기 + %d개 이메일 더 불러오기 GB MB @@ -152,7 +152,7 @@ 새 이메일 새 이메일 %s - %d 개 읽지 않음 (%s) + %d 통의 읽지 않은 메일 (%s) %d 개 새 이메일 (%s) in %d accounts 메시지가 전송되지 않았습니다 @@ -195,9 +195,9 @@ 더 이상 없음 -K-9 메일 설치를 환영합니다. K-9은 안드로이드용 오픈소스 메일 클라이언트로 표준 안드로이드 메일 클라이언트를 기반으로 하였습니다. +K-9 메일 설치를 환영합니다. K-9은 표준 안드로이드 메일 클라이언트를 기반으로 한 안드로이드용 오픈소스 메일 클라이언트 입니다. \n -\n\nK-9\'s 향상된 기능: +\n\nK-9의 향상된 기능: \n * IMAP IDLE를 이용한 메일 푸시(PUSH)기능 \n * 더 나은 성능 \n * 메시지 재정리 @@ -207,7 +207,7 @@ K-9 메일 설치를 환영합니다. K-9은 안드로이드용 오픈소스 \n * 모든 폴더 동기화 \n * 회신주소 수정 \n * 키보드 단축 -\n * 더 나은 IMAP 지원 +\n * 향상된 IMAP 지원 \n * SD 카드에 첨부파일 저장 \n * 휴지통 비우기 \n * 메시지 정렬 @@ -302,7 +302,7 @@ K-9 메일 설치를 환영합니다. K-9은 안드로이드용 오픈소스 복사됨 이동됨 삭제됨 - 버려짐 + 삭제됨 임시보관함에 저장되었습니다 삭제 실패 @@ -360,14 +360,14 @@ K-9 메일 설치를 환영합니다. K-9은 안드로이드용 오픈소스 계정 정보 복구\u2026 - 받기 서버 설정 확인중\u2026 - 보내기 서버 설정 확인중\u2026 + 수신 서버 설정 확인중\u2026 + 발신 서버 설정 확인중\u2026 인증중\u2026 계정설정 가져오기\u2026 완료중\u2026 취소중\u2026 - 거의 완료되었습니다! + 설정이 거의 완료되었습니다! 계정이 설정되었습니다. 순조롭게 진행중입니다! 이 계정의 이름을 입력 (옵션): 이름 입력 (보내는 메시지에 표시 될 이름): @@ -826,8 +826,8 @@ K-9 메일 설치를 환영합니다. K-9은 안드로이드용 오픈소스 서명 위치 본문 앞에 본문 뒤에 - 어두운 테마 - 밝은 테마 + 어두운 + 밝은 화면 Global 디버깅 @@ -850,12 +850,12 @@ K-9 메일 설치를 환영합니다. K-9은 안드로이드용 오픈소스 시스템 기본값 벡그라운드 동기화 - 절대 하지않음 + 하지않음 항상 \'백그라운드 데이타\'가 선택된 경우 \'백그라운드 데이타\'와 \'Auto-sync\'가 선택된 경우 - 아무 메시지도 선택되지않음 + 선택된 메시지가 없습니다. 날짜 형식