diff --git a/k9mail/src/main/java/com/fsck/k9/Account.java b/k9mail/src/main/java/com/fsck/k9/Account.java index 7acbe96bc..fc6cdb861 100644 --- a/k9mail/src/main/java/com/fsck/k9/Account.java +++ b/k9mail/src/main/java/com/fsck/k9/Account.java @@ -760,7 +760,7 @@ public class Account implements BaseAccount, StoreConfig { try { getLocalStore().resetVisibleLimits(getDisplayCount()); } catch (MessagingException e) { - Timber.e("Unable to reset visible limits", e); + Timber.e(e, "Unable to reset visible limits"); } } @@ -953,8 +953,8 @@ public class Account implements BaseAccount, StoreConfig { switchLocalStorage(id); successful = true; } catch (MessagingException e) { - Timber.e("Switching local storage provider from " + - mLocalStorageProviderId + " to " + id + " failed.", e); + Timber.e(e, "Switching local storage provider from " + + mLocalStorageProviderId + " to " + id + " failed."); } // if migration to/from SD-card failed once, it will fail again. diff --git a/k9mail/src/main/java/com/fsck/k9/K9.java b/k9mail/src/main/java/com/fsck/k9/K9.java index 093440fd1..252d286ff 100644 --- a/k9mail/src/main/java/com/fsck/k9/K9.java +++ b/k9mail/src/main/java/com/fsck/k9/K9.java @@ -24,7 +24,6 @@ import android.os.Handler; import android.os.Looper; import android.os.StrictMode; import android.text.format.Time; -import timber.log.Timber; import com.fsck.k9.Account.SortType; import com.fsck.k9.activity.MessageCompose; @@ -47,9 +46,6 @@ import com.fsck.k9.service.StorageGoneReceiver; import com.fsck.k9.widget.list.MessageListWidgetProvider; import timber.log.Timber; -import static timber.log.Timber.i; -import static timber.log.Timber.v; - public class K9 extends Application { /** @@ -421,7 +417,7 @@ public class K9 extends Application { try { queue.put(new Handler()); } catch (InterruptedException e) { - Timber.e("", e); + Timber.e(e, ""); } Looper.loop(); } @@ -431,13 +427,13 @@ public class K9 extends Application { try { final Handler storageGoneHandler = queue.take(); registerReceiver(receiver, filter, null, storageGoneHandler); - i("Registered: unmount receiver"); + Timber.i("Registered: unmount receiver"); } catch (InterruptedException e) { - Timber.e("Unable to register unmount receiver", e); + Timber.e(e, "Unable to register unmount receiver"); } registerReceiver(new ShutdownReceiver(), new IntentFilter(Intent.ACTION_SHUTDOWN)); - i("Registered: shutdown receiver"); + Timber.i("Registered: shutdown receiver"); } public static void save(StorageEditor editor) { @@ -582,7 +578,7 @@ public class K9 extends Application { UnreadWidgetProvider.updateUnreadCount(K9.this); } catch (Exception e) { if (K9.DEBUG) { - Timber.e("Error while updating unread widget(s)", e); + Timber.e(e, "Error while updating unread widget(s)"); } } } @@ -594,7 +590,7 @@ public class K9 extends Application { if (BuildConfig.DEBUG) { throw e; } else if (K9.DEBUG) { - Timber.e("Error while updating message list widget", e); + Timber.e(e, "Error while updating message list widget"); } } } @@ -804,12 +800,12 @@ public class K9 extends Application { synchronized (observers) { for (final ApplicationAware aware : observers) { if (K9.DEBUG) { - v("Initializing observer: " + aware); + Timber.v("Initializing observer: " + aware); } try { aware.initializeComponent(this); } catch (Exception e) { - Timber.w("Failure when notifying " + aware, e); + Timber.w(e, "Failure when notifying " + aware); } } diff --git a/k9mail/src/main/java/com/fsck/k9/Preferences.java b/k9mail/src/main/java/com/fsck/k9/Preferences.java index 0e19be865..8154f6634 100644 --- a/k9mail/src/main/java/com/fsck/k9/Preferences.java +++ b/k9mail/src/main/java/com/fsck/k9/Preferences.java @@ -130,7 +130,7 @@ public class Preferences { try { RemoteStore.removeInstance(account); } catch (Exception e) { - Timber.e("Failed to reset remote store for account " + account.getUuid(), e); + Timber.e(e, "Failed to reset remote store for account " + account.getUuid()); } LocalStore.removeAccount(account); @@ -178,8 +178,8 @@ public class Preferences { try { return Enum.valueOf(defaultEnum.getDeclaringClass(), stringPref); } catch (IllegalArgumentException ex) { - Timber.w("Unable to convert preference key [" + key + - "] value [" + stringPref + "] to enum of type " + defaultEnum.getDeclaringClass(), ex); + Timber.w(ex, "Unable to convert preference key [" + key + + "] value [" + stringPref + "] to enum of type " + defaultEnum.getDeclaringClass()); return defaultEnum; } diff --git a/k9mail/src/main/java/com/fsck/k9/activity/Accounts.java b/k9mail/src/main/java/com/fsck/k9/activity/Accounts.java index ea052b866..b889fe7fd 100644 --- a/k9mail/src/main/java/com/fsck/k9/activity/Accounts.java +++ b/k9mail/src/main/java/com/fsck/k9/activity/Accounts.java @@ -261,7 +261,7 @@ public class Accounts extends K9ListActivity implements OnItemClickListener { accountStatusChanged(account, stats); } } catch (Exception e) { - Timber.e("Unable to get account stats", e); + Timber.e(e, "Unable to get account stats"); } } @Override @@ -995,7 +995,7 @@ public class Accounts extends K9ListActivity implements OnItemClickListener { // Get list of folders from remote server MessagingController.getInstance(mApplication).listFolders(mAccount, true, null); } catch (Exception e) { - Timber.e("Something went while setting account passwords", e); + Timber.e(e, "Something went while setting account passwords"); } return null; } @@ -1926,7 +1926,7 @@ public class Accounts extends K9ListActivity implements OnItemClickListener { mFileName = SettingsExporter.exportToFile(mContext, mIncludeGlobals, mAccountUuids); } catch (SettingsImportExportException e) { - Timber.w("Exception during export", e); + Timber.w(e, "Exception during export"); return false; } return true; @@ -1993,13 +1993,13 @@ public class Accounts extends K9ListActivity implements OnItemClickListener { } } } catch (SettingsImportExportException e) { - Timber.w("Exception during import", e); + Timber.w(e, "Exception during import"); return false; } catch (FileNotFoundException e) { - Timber.w("Couldn't open import file", e); + Timber.w(e, "Couldn't open import file"); return false; } catch (Exception e) { - Timber.w("Unknown error", e); + Timber.w(e, "Unknown error"); return false; } return true; @@ -2066,7 +2066,7 @@ public class Accounts extends K9ListActivity implements OnItemClickListener { } } } catch (SettingsImportExportException e) { - Timber.w("Exception during export", e); + Timber.w(e, "Exception during export"); return false; } catch (FileNotFoundException e) { Timber.w("Couldn't read content from URI " + mUri); diff --git a/k9mail/src/main/java/com/fsck/k9/activity/FolderList.java b/k9mail/src/main/java/com/fsck/k9/activity/FolderList.java index 9dd5509f7..a609f6bff 100644 --- a/k9mail/src/main/java/com/fsck/k9/activity/FolderList.java +++ b/k9mail/src/main/java/com/fsck/k9/activity/FolderList.java @@ -813,7 +813,7 @@ public class FolderList extends K9ListActivity { } } } catch (Exception e) { - Timber.e("Exception while populating folder", e); + Timber.e(e, "Exception while populating folder"); } finally { if (localFolder != null) { localFolder.close(); diff --git a/k9mail/src/main/java/com/fsck/k9/activity/MessageCompose.java b/k9mail/src/main/java/com/fsck/k9/activity/MessageCompose.java index acdc4f061..484086867 100644 --- a/k9mail/src/main/java/com/fsck/k9/activity/MessageCompose.java +++ b/k9mail/src/main/java/com/fsck/k9/activity/MessageCompose.java @@ -1157,7 +1157,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, * Let the user continue composing their message even if we have a problem processing * the source message. Log it as an error, though. */ - Timber.e("Error while processing source message: ", me); + Timber.e(me, "Error while processing source message: "); } finally { relatedMessageProcessed = true; changesMadeSinceLastSave = false; @@ -1352,7 +1352,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, contacts.markAsContacted(message.getRecipients(RecipientType.BCC)); updateReferencedMessage(); } catch (Exception e) { - Timber.e("Failed to mark contact as contacted.", e); + Timber.e(e, "Failed to mark contact as contacted."); } MessagingController.getInstance(context).sendMessage(account, message, null); @@ -1481,7 +1481,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, @Override public void onMessageBuildException(MessagingException me) { - Timber.e("Error sending message", me); + Timber.e(me, "Error sending message"); Toast.makeText(MessageCompose.this, getString(R.string.send_failed_reason, me.getLocalizedMessage()), Toast.LENGTH_LONG).show(); currentMessageBuilder = null; @@ -1494,7 +1494,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, try { startIntentSenderForResult(pendingIntent.getIntentSender(), requestCode, null, 0, 0, 0); } catch (SendIntentException e) { - Timber.e("Error starting pending intent from builder!", e); + Timber.e(e, "Error starting pending intent from builder!"); } } @@ -1518,7 +1518,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, } catch (MessagingException e) { // Hm, if we couldn't populate the UI after source reprocessing, let's just delete it? quotedMessagePresenter.showOrHideQuotedText(QuotedTextMode.HIDE); - Timber.e("Could not re-process source message; deleting quoted text to be safe.", e); + Timber.e(e, "Could not re-process source message; deleting quoted text to be safe."); } updateMessageFormat(); } else { @@ -1563,7 +1563,7 @@ public class MessageCompose extends K9Activity implements OnClickListener, requestCode |= REQUEST_MASK_LOADER_HELPER; startIntentSenderForResult(si, requestCode, fillIntent, flagsMask, flagValues, extraFlags); } catch (SendIntentException e) { - Timber.e("Irrecoverable error calling PendingIntent!", e); + Timber.e(e, "Irrecoverable error calling PendingIntent!"); } } diff --git a/k9mail/src/main/java/com/fsck/k9/activity/compose/RecipientPresenter.java b/k9mail/src/main/java/com/fsck/k9/activity/compose/RecipientPresenter.java index 19617d6af..20d2539b9 100644 --- a/k9mail/src/main/java/com/fsck/k9/activity/compose/RecipientPresenter.java +++ b/k9mail/src/main/java/com/fsck/k9/activity/compose/RecipientPresenter.java @@ -678,7 +678,7 @@ public class RecipientPresenter implements PermissionPingCallback { // TODO handle error case better recipientMvpView.showErrorOpenPgpConnection(); cryptoProviderState = CryptoProviderState.ERROR; - Timber.e("error connecting to crypto provider!", e); + Timber.e(e, "error connecting to crypto provider!"); updateCryptoStatus(); } diff --git a/k9mail/src/main/java/com/fsck/k9/activity/loader/AttachmentContentLoader.java b/k9mail/src/main/java/com/fsck/k9/activity/loader/AttachmentContentLoader.java index 241ade769..5f69d7322 100644 --- a/k9mail/src/main/java/com/fsck/k9/activity/loader/AttachmentContentLoader.java +++ b/k9mail/src/main/java/com/fsck/k9/activity/loader/AttachmentContentLoader.java @@ -78,7 +78,7 @@ public class AttachmentContentLoader extends AsyncTaskLoader { cachedResultAttachment = sourceAttachment.deriveWithLoadComplete(file.getAbsolutePath()); return cachedResultAttachment; } catch (IOException e) { - Timber.e("Error saving attachment!", e); + Timber.e(e, "Error saving attachment!"); } cachedResultAttachment = sourceAttachment.deriveWithLoadCancelled(); diff --git a/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSettings.java b/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSettings.java index 4ee1e6a2c..30a570c0e 100644 --- a/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSettings.java +++ b/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSettings.java @@ -219,7 +219,7 @@ public class AccountSettings extends K9PreferenceActivity { mIsExpungeCapable = store.isExpungeCapable(); mIsSeenFlagSupported = store.isSeenFlagSupported(); } catch (Exception e) { - Timber.e("Could not get remote store", e); + Timber.e(e, "Could not get remote store"); } addPreferencesFromResource(R.xml.account_settings_preferences); diff --git a/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupAccountType.java b/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupAccountType.java index fbc636537..9173c5a8c 100644 --- a/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupAccountType.java +++ b/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupAccountType.java @@ -125,7 +125,7 @@ public class AccountSetupAccountType extends K9Activity implements OnClickListen } private void failure(Exception use) { - Timber.e("Failure", use); + Timber.e(use, "Failure"); String toastText = getString(R.string.account_setup_bad_uri, use.getMessage()); Toast toast = Toast.makeText(getApplication(), toastText, Toast.LENGTH_LONG); diff --git a/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupBasics.java b/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupBasics.java index d395ef2b3..0ce978d05 100644 --- a/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupBasics.java +++ b/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupBasics.java @@ -232,7 +232,7 @@ public class AccountSetupBasics extends K9Activity try { name = getDefaultAccountName(); } catch (Exception e) { - Timber.e("Could not get default account name", e); + Timber.e(e, "Could not get default account name"); } if (name == null) { @@ -496,7 +496,7 @@ public class AccountSetupBasics extends K9Activity } } } catch (Exception e) { - Timber.e("Error while trying to load provider settings.", e); + Timber.e(e, "Error while trying to load provider settings."); } return null; } diff --git a/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupCheckSettings.java b/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupCheckSettings.java index 402cda969..8cf1b2058 100644 --- a/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupCheckSettings.java +++ b/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupCheckSettings.java @@ -101,7 +101,7 @@ public class AccountSetupCheckSettings extends K9Activity implements OnClickList } private void handleCertificateValidationException(CertificateValidationException cve) { - Timber.e("Error while testing settings", cve); + Timber.e(cve, "Error while testing settings"); X509Certificate[] chain = cve.getCertChain(); // Avoid NullPointerException in acceptKeyDialog() @@ -155,7 +155,7 @@ public class AccountSetupCheckSettings extends K9Activity implements OnClickList try { sha1 = MessageDigest.getInstance("SHA-1"); } catch (NoSuchAlgorithmException e) { - Timber.e("Error while initializing MessageDigest", e); + Timber.e(e, "Error while initializing MessageDigest"); } final X509Certificate[] chain = ex.getCertChain(); @@ -232,7 +232,7 @@ public class AccountSetupCheckSettings extends K9Activity implements OnClickList } } catch (Exception e1) { // don't fail just because of subjectAltNames - Timber.w("cannot display SubjectAltNames in dialog", e1); + Timber.w(e1, "cannot display SubjectAltNames in dialog"); } chainInfo.append("Issuer: ").append(chain[i].getIssuerDN().toString()).append("\n"); @@ -242,7 +242,7 @@ public class AccountSetupCheckSettings extends K9Activity implements OnClickList String sha1sum = Hex.encodeHex(sha1.digest(chain[i].getEncoded())); chainInfo.append("Fingerprint (SHA-1): ").append(sha1sum).append("\n"); } catch (CertificateEncodingException e) { - Timber.e("Error while encoding certificate", e); + Timber.e(e, "Error while encoding certificate"); } } } @@ -429,14 +429,14 @@ public class AccountSetupCheckSettings extends K9Activity implements OnClickList finish(); } catch (AuthenticationFailedException afe) { - Timber.e("Error while testing settings", afe); + Timber.e(afe, "Error while testing settings"); showErrorDialog( R.string.account_setup_failed_dlg_auth_message_fmt, afe.getMessage() == null ? "" : afe.getMessage()); } catch (CertificateValidationException cve) { handleCertificateValidationException(cve); } catch (Exception e) { - Timber.e("Error while testing settings", e); + Timber.e(e, "Error while testing settings"); String message = e.getMessage() == null ? "" : e.getMessage(); showErrorDialog(R.string.account_setup_failed_dlg_server_message_fmt, message); } diff --git a/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupIncoming.java b/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupIncoming.java index aa30e46d6..2fea3592a 100644 --- a/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupIncoming.java +++ b/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupIncoming.java @@ -494,7 +494,7 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener Store store = mAccount.getRemoteStore(); isPushCapable = store.isPushCapable(); } catch (Exception e) { - Timber.e("Could not get remote store", e); + Timber.e(e, "Could not get remote store"); } if (isPushCapable && mAccount.getFolderPushMode() != FolderMode.NONE) { MailService.actionRestartPushers(this, null); @@ -602,7 +602,7 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener } private void failure(Exception use) { - Timber.e("Failure", use); + Timber.e(use, "Failure"); String toastText = getString(R.string.account_setup_bad_uri, use.getMessage()); Toast toast = Toast.makeText(getApplication(), toastText, Toast.LENGTH_LONG); diff --git a/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupOptions.java b/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupOptions.java index 368ef006d..d44e9aa09 100644 --- a/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupOptions.java +++ b/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupOptions.java @@ -115,7 +115,7 @@ public class AccountSetupOptions extends K9Activity implements OnClickListener { Store store = mAccount.getRemoteStore(); isPushCapable = store.isPushCapable(); } catch (Exception e) { - Timber.e("Could not get remote store", e); + Timber.e(e, "Could not get remote store"); } diff --git a/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupOutgoing.java b/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupOutgoing.java index 0f9617e52..cf0ed34f7 100644 --- a/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupOutgoing.java +++ b/k9mail/src/main/java/com/fsck/k9/activity/setup/AccountSetupOutgoing.java @@ -487,7 +487,7 @@ public class AccountSetupOutgoing extends K9Activity implements OnClickListener, } private void failure(Exception use) { - Timber.e("Failure", use); + Timber.e(use, "Failure"); String toastText = getString(R.string.account_setup_bad_uri, use.getMessage()); Toast toast = Toast.makeText(getApplication(), toastText, Toast.LENGTH_LONG); diff --git a/k9mail/src/main/java/com/fsck/k9/activity/setup/FolderSettings.java b/k9mail/src/main/java/com/fsck/k9/activity/setup/FolderSettings.java index 6fc89afce..e78c234d4 100644 --- a/k9mail/src/main/java/com/fsck/k9/activity/setup/FolderSettings.java +++ b/k9mail/src/main/java/com/fsck/k9/activity/setup/FolderSettings.java @@ -62,7 +62,7 @@ public class FolderSettings extends K9PreferenceActivity { mFolder = localStore.getFolder(folderName); mFolder.open(Folder.OPEN_MODE_RW); } catch (MessagingException me) { - Timber.e("Unable to edit folder " + folderName + " preferences", me); + Timber.e(me, "Unable to edit folder " + folderName + " preferences"); return; } @@ -71,7 +71,7 @@ public class FolderSettings extends K9PreferenceActivity { Store store = mAccount.getRemoteStore(); isPushCapable = store.isPushCapable(); } catch (Exception e) { - Timber.e("Could not get remote store", e); + Timber.e(e, "Could not get remote store"); } addPreferencesFromResource(R.xml.folder_settings_preferences); @@ -167,7 +167,7 @@ public class FolderSettings extends K9PreferenceActivity { try { saveSettings(); } catch (MessagingException e) { - Timber.e("Saving folder settings failed", e); + Timber.e(e, "Saving folder settings failed"); } super.onPause(); diff --git a/k9mail/src/main/java/com/fsck/k9/controller/MessagingController.java b/k9mail/src/main/java/com/fsck/k9/controller/MessagingController.java index 6eabd613a..9d7baf37b 100644 --- a/k9mail/src/main/java/com/fsck/k9/controller/MessagingController.java +++ b/k9mail/src/main/java/com/fsck/k9/controller/MessagingController.java @@ -42,7 +42,6 @@ import android.os.Process; import android.os.SystemClock; import android.support.annotation.NonNull; import android.support.annotation.VisibleForTesting; -import timber.log.Timber; import com.fsck.k9.Account; import com.fsck.k9.Account.DeletePolicy; @@ -109,10 +108,6 @@ import timber.log.Timber; import static com.fsck.k9.K9.MAX_SEND_ATTEMPTS; import static com.fsck.k9.mail.Flag.X_REMOTE_COPY_STARTED; -import static timber.log.Timber.e; -import static timber.log.Timber.i; -import static timber.log.Timber.v; -import static timber.log.Timber.w; /** @@ -205,7 +200,7 @@ public class MessagingController { commandDescription = command.description; if (K9.DEBUG) { - i("Running command '" + command.description + "', seq = " + command.sequence + + Timber.i("Running command '" + command.description + "', seq = " + command.sequence + "(" + (command.isForegroundPriority ? "foreground" : "background") + "priority)"); } @@ -220,7 +215,7 @@ public class MessagingController { sleep(30 * 1000); queuedCommands.put(command); } catch (InterruptedException e) { - e("interrupted while putting a pending command for" + Timber.e("interrupted while putting a pending command for" + " an unavailable account back into the queue." + " THIS SHOULD NEVER HAPPEN."); } @@ -229,11 +224,11 @@ public class MessagingController { } if (K9.DEBUG) { - i(" Command '" + command.description + "' completed"); + Timber.i(" Command '" + command.description + "' completed"); } } } catch (Exception e) { - Timber.e("Error running command '" + commandDescription + "'", e); + Timber.e(e, "Error running command '" + commandDescription + "'"); } } } @@ -384,7 +379,7 @@ public class MessagingController { } List localFolders = null; if (!account.isAvailable(context)) { - i("not listing folders of unavailable account"); + Timber.i("not listing folders of unavailable account"); } else { try { LocalStore localStore = account.getLocalStore(); @@ -571,7 +566,7 @@ public class MessagingController { + ", folderName = " + folderName + ", query = " + query + ")"; - i(msg); + Timber.i(msg); } return threadPool.submit(new Runnable() { @@ -609,7 +604,7 @@ public class MessagingController { List messages = remoteFolder.search(query, requiredFlags, forbiddenFlags); if (K9.DEBUG) { - i("Remote search got " + messages.size() + " results"); + Timber.i("Remote search got " + messages.size() + " results"); } // There's no need to fetch messages already completely downloaded @@ -634,9 +629,9 @@ public class MessagingController { } catch (Exception e) { if (Thread.currentThread().isInterrupted()) { - Timber.i("Caught exception on aborted remote search; safe to ignore.", e); + Timber.i(e, "Caught exception on aborted remote search; safe to ignore."); } else { - Timber.e("Could not complete remote search", e); + Timber.e(e, "Could not complete remote search"); if (listener != null) { listener.remoteSearchFailed(null, e.getMessage()); } @@ -674,7 +669,7 @@ public class MessagingController { loadSearchResultsSynchronous(messages, localFolder, remoteFolder, listener); } catch (MessagingException e) { - e("Exception in loadSearchResults: " + e); + Timber.e("Exception in loadSearchResults: " + e); addErrorMessage(account, null, e); } finally { if (listener != null) { @@ -750,7 +745,7 @@ public class MessagingController { LocalFolder tLocalFolder = null; if (K9.DEBUG) { - i("Synchronizing folder " + account.getDescription() + ":" + folder); + Timber.i("Synchronizing folder " + account.getDescription() + ":" + folder); } for (MessagingListener l : getListeners(listener)) { @@ -778,7 +773,7 @@ public class MessagingController { } catch (Exception e) { addErrorMessage(account, null, e); - Timber.e("Failure processing command, but allow message sync attempt", e); + Timber.e(e, "Failure processing command, but allow message sync attempt"); commandException = e; } @@ -787,7 +782,7 @@ public class MessagingController { * the uids within the list. */ if (K9.DEBUG) { - v("SYNC: About to get local folder " + folder); + Timber.v("SYNC: About to get local folder " + folder); } final LocalStore localStore = account.getLocalStore(); @@ -799,14 +794,14 @@ public class MessagingController { if (providedRemoteFolder != null) { if (K9.DEBUG) { - v("SYNC: using providedRemoteFolder " + folder); + Timber.v("SYNC: using providedRemoteFolder " + folder); } remoteFolder = providedRemoteFolder; } else { Store remoteStore = account.getRemoteStore(); if (K9.DEBUG) { - v("SYNC: About to get remote folder " + folder); + Timber.v("SYNC: About to get remote folder " + folder); } remoteFolder = remoteStore.getFolder(folder); @@ -837,7 +832,7 @@ public class MessagingController { * Open the remote folder. This pre-loads certain metadata like message count. */ if (K9.DEBUG) { - v("SYNC: About to open remote folder " + folder); + Timber.v("SYNC: About to open remote folder " + folder); } remoteFolder.open(Folder.OPEN_MODE_RW); @@ -867,7 +862,7 @@ public class MessagingController { Map remoteUidMap = new HashMap<>(); if (K9.DEBUG) { - v("SYNC: Remote message count for folder " + folder + " is " + remoteMessageCount); + Timber.v("SYNC: Remote message count for folder " + folder + " is " + remoteMessageCount); } final Date earliestDate = account.getEarliestPollDate(); long earliestTimestamp = earliestDate != null ? earliestDate.getTime() : 0L; @@ -883,7 +878,7 @@ public class MessagingController { } if (K9.DEBUG) { - v("SYNC: About to get messages " + remoteStart + " through " + remoteMessageCount + + Timber.v("SYNC: About to get messages " + remoteStart + " through " + remoteMessageCount + " for folder " + folder); } @@ -910,7 +905,7 @@ public class MessagingController { } } if (K9.DEBUG) { - v("SYNC: Got " + remoteUidMap.size() + " messages for folder " + folder); + Timber.v("SYNC: Got " + remoteUidMap.size() + " messages for folder " + folder); } for (MessagingListener l : getListeners(listener)) { @@ -980,7 +975,7 @@ public class MessagingController { if (commandException != null) { String rootMessage = getRootCauseMessage(commandException); - e("Root cause failure in " + account.getDescription() + ":" + + Timber.e("Root cause failure in " + account.getDescription() + ":" + tLocalFolder.getName() + " was '" + rootMessage + "'"); localFolder.setStatus(rootMessage); for (MessagingListener l : getListeners(listener)) { @@ -989,7 +984,7 @@ public class MessagingController { } if (K9.DEBUG) { - i("Done synchronizing folder " + account.getDescription() + ":" + folder); + Timber.i("Done synchronizing folder " + account.getDescription() + ":" + folder); } } catch (AuthenticationFailedException e) { @@ -999,7 +994,7 @@ public class MessagingController { l.synchronizeMailboxFailed(account, folder, "Authentication failure"); } } catch (Exception e) { - Timber.e("synchronizeMailbox", e); + Timber.e(e, "synchronizeMailbox"); // If we don't set the last checked, it can try too often during // failure conditions String rootMessage = getRootCauseMessage(e); @@ -1008,8 +1003,8 @@ public class MessagingController { tLocalFolder.setStatus(rootMessage); tLocalFolder.setLastChecked(System.currentTimeMillis()); } catch (MessagingException me) { - Timber.e("Could not set last checked on folder " + account.getDescription() + ":" + - tLocalFolder.getName(), e); + Timber.e(e, "Could not set last checked on folder " + account.getDescription() + ":" + + tLocalFolder.getName()); } } @@ -1018,7 +1013,7 @@ public class MessagingController { } notifyUserIfCertificateProblem(account, e, true); addErrorMessage(account, null, e); - e("Failed synchronizing folder " + account.getDescription() + ":" + folder + " @ " + new Date()); + Timber.e("Failed synchronizing folder " + account.getDescription() + ":" + folder + " @ " + new Date()); } finally { if (providedRemoteFolder == null) { @@ -1071,7 +1066,7 @@ public class MessagingController { l.synchronizeMailboxFinished(account, folder, 0, 0); } if (K9.DEBUG) { - i("Done synchronizing folder " + folder); + Timber.i("Done synchronizing folder " + folder); } return false; @@ -1122,7 +1117,7 @@ public class MessagingController { unreadBeforeStart = stats.unreadMessageCount; } catch (MessagingException e) { - Timber.e("Unable to getUnreadMessageCount for account: " + account, e); + Timber.e(e, "Unable to getUnreadMessageCount for account: " + account); } List syncFlagMessages = new ArrayList<>(); @@ -1271,7 +1266,7 @@ public class MessagingController { boolean flagSyncOnly) throws MessagingException { if (message.isSet(Flag.DELETED)) { if (K9.DEBUG) { - v("Message with uid " + message.getUid() + " is marked as deleted"); + Timber.v("Message with uid " + message.getUid() + " is marked as deleted"); } syncFlagMessages.add(message); return; @@ -1283,13 +1278,13 @@ public class MessagingController { if (!flagSyncOnly) { if (!message.isSet(Flag.X_DOWNLOADED_FULL) && !message.isSet(Flag.X_DOWNLOADED_PARTIAL)) { if (K9.DEBUG) { - v("Message with uid " + message.getUid() + " has not yet been downloaded"); + Timber.v("Message with uid " + message.getUid() + " has not yet been downloaded"); } unsyncedMessages.add(message); } else { if (K9.DEBUG) { - v("Message with uid " + message.getUid() + " is partially or fully downloaded"); + Timber.v("Message with uid " + message.getUid() + " is partially or fully downloaded"); } // Store the updated message locally @@ -1309,12 +1304,12 @@ public class MessagingController { } } else if (!localMessage.isSet(Flag.DELETED)) { if (K9.DEBUG) { - v("Message with uid " + message.getUid() + " is present in the local store"); + Timber.v("Message with uid " + message.getUid() + " is present in the local store"); } if (!localMessage.isSet(Flag.X_DOWNLOADED_FULL) && !localMessage.isSet(Flag.X_DOWNLOADED_PARTIAL)) { if (K9.DEBUG) { - v("Message with uid " + message.getUid() + Timber.v("Message with uid " + message.getUid() + " is not downloaded, even partially; trying again"); } @@ -1328,7 +1323,7 @@ public class MessagingController { } } else { if (K9.DEBUG) { - v("Local copy of message with uid " + message.getUid() + " is marked as deleted"); + Timber.v("Local copy of message with uid " + message.getUid() + " is marked as deleted"); } } } @@ -1351,7 +1346,7 @@ public class MessagingController { if (message.isSet(Flag.DELETED) || message.olderThan(earliestDate)) { if (K9.DEBUG) { if (message.isSet(Flag.DELETED)) { - v("Newly downloaded message " + account + ":" + folder + ":" + + Timber.v("Newly downloaded message " + account + ":" + folder + ":" + message.getUid() + " was marked deleted on server, skipping"); } else { @@ -1374,7 +1369,7 @@ public class MessagingController { smallMessages.add(message); } } catch (Exception e) { - Timber.e("Error while storing downloaded message.", e); + Timber.e(e, "Error while storing downloaded message."); addErrorMessage(account, null, e); } } @@ -1447,7 +1442,7 @@ public class MessagingController { } if (K9.DEBUG) { - v("About to notify listeners that we got a new small message " + Timber.v("About to notify listeners that we got a new small message " + account + ":" + folder + ":" + message.getUid()); } @@ -1467,7 +1462,7 @@ public class MessagingController { } catch (MessagingException me) { addErrorMessage(account, null, me); - Timber.e("SYNC: fetch small messages", me); + Timber.e(me, "SYNC: fetch small messages"); } } @@ -1512,7 +1507,7 @@ public class MessagingController { downloadPartial(remoteFolder, localFolder, message); } if (K9.DEBUG) { - v("About to notify listeners that we got a new large message " + Timber.v("About to notify listeners that we got a new large message " + account + ":" + folder + ":" + message.getUid()); } // Update the listener with what we've found @@ -1729,11 +1724,11 @@ public class MessagingController { try { processPendingCommandsSynchronous(account); } catch (UnavailableStorageException e) { - i( + Timber.i( "Failed to process pending command because storage is not available - trying again later."); throw new UnavailableAccountException(e); } catch (MessagingException me) { - Timber.e("processPendingCommands", me); + Timber.e(me, "processPendingCommands"); addErrorMessage(account, null, me); @@ -1786,7 +1781,7 @@ public class MessagingController { } catch (MessagingException me) { if (me.isPermanentFailure()) { addErrorMessage(account, null, me); - e("Failure of command '" + command + "' was permanent, removing command from queue"); + Timber.e("Failure of command '" + command + "' was permanent, removing command from queue"); localStore.removePendingCommand(processingCommand); } else { throw me; @@ -1802,7 +1797,7 @@ public class MessagingController { } catch (MessagingException me) { notifyUserIfCertificateProblem(account, me, true); addErrorMessage(account, null, me); - Timber.e("Could not process command '" + processingCommand + "'", me); + Timber.e(me, "Could not process command '" + processingCommand + "'"); throw me; } finally { for (MessagingListener l : getListeners()) { @@ -1858,13 +1853,13 @@ public class MessagingController { if (remoteMessage == null) { if (localMessage.isSet(Flag.X_REMOTE_COPY_STARTED)) { - w("Local message with uid " + localMessage.getUid() + + Timber.w("Local message with uid " + localMessage.getUid() + " has flag " + X_REMOTE_COPY_STARTED + " already set, checking for remote message with " + " same message id"); String rUid = remoteFolder.getUidFromMessageId(localMessage); if (rUid != null) { - w("Local message has flag " + X_REMOTE_COPY_STARTED + + Timber.w("Local message has flag " + X_REMOTE_COPY_STARTED + " already set, and there is a remote message with uid " + rUid + ", assuming message was already copied and aborting this copy"); @@ -1876,7 +1871,7 @@ public class MessagingController { } return; } else { - w("No remote message with message-id found, proceeding with append"); + Timber.w("No remote message with message-id found, proceeding with append"); } } @@ -2031,7 +2026,7 @@ public class MessagingController { } if (!isCopy && Expunge.EXPUNGE_IMMEDIATELY == account.getExpungePolicy()) { if (K9.DEBUG) { - i("processingPendingMoveOrCopy expunging folder " + account.getDescription() + ":" + + Timber.i("processingPendingMoveOrCopy expunging folder " + account.getDescription() + ":" + srcFolder); } @@ -2197,7 +2192,7 @@ public class MessagingController { remoteFolder.setFlags(Collections.singleton(Flag.SEEN), true); remoteFolder.close(); } catch (UnsupportedOperationException uoe) { - Timber.w("Could not mark all server-side as read because store doesn't support operation", uoe); + Timber.w(uoe, "Could not mark all server-side as read because store doesn't support operation"); } finally { closeFolder(localFolder); closeFolder(remoteFolder); @@ -2231,7 +2226,7 @@ public class MessagingController { addErrorMessage(account, subject, baos.toString()); } catch (Throwable it) { - Timber.e("Could not save error message to " + account.getErrorFolderName(), it); + Timber.e(it, "Could not save error message to " + account.getErrorFolderName()); } } @@ -2268,7 +2263,7 @@ public class MessagingController { localFolder.clearMessagesOlderThan(nowTime - (15 * 60 * 1000)); } catch (Throwable it) { - Timber.e("Could not save error message to " + account.getErrorFolderName(), it); + Timber.e(it, "Could not save error message to " + account.getErrorFolderName()); } finally { loopCatch.set(false); } @@ -2278,7 +2273,7 @@ public class MessagingController { public void markAllMessagesRead(final Account account, final String folder) { if (K9.DEBUG) { - i("Marking all messages in " + account.getDescription() + ":" + folder + " as read"); + Timber.i("Marking all messages in " + account.getDescription() + ":" + folder + " as read"); } PendingCommand command = PendingMarkAllAsRead.create(folder); queuePendingCommand(account, command); @@ -2318,7 +2313,7 @@ public class MessagingController { try { localStore = account.getLocalStore(); } catch (MessagingException e) { - Timber.e("Couldn't get LocalStore instance", e); + Timber.e(e, "Couldn't get LocalStore instance"); return; } @@ -2333,7 +2328,7 @@ public class MessagingController { removeFlagFromCache(account, ids, flag); } } catch (MessagingException e) { - Timber.e("Couldn't set flags in local database", e); + Timber.e(e, "Couldn't set flags in local database"); } // Read folder name and UID of messages from the database @@ -2341,7 +2336,7 @@ public class MessagingController { try { folderMap = localStore.getFoldersAndUids(ids, threadedList); } catch (MessagingException e) { - Timber.e("Couldn't get folder name and UID of messages", e); + Timber.e(e, "Couldn't get folder name and UID of messages"); return; } @@ -2357,7 +2352,7 @@ public class MessagingController { l.folderStatusChanged(account, folderName, unreadMessageCount); } } catch (MessagingException e) { - Timber.w("Couldn't get unread count for folder: " + folderName, e); + Timber.w(e, "Couldn't get unread count for folder: " + folderName); } // The error folder is always a local folder @@ -2477,11 +2472,11 @@ public class MessagingController { public void clearAllPending(final Account account) { try { - w("Clearing pending commands!"); + Timber.w("Clearing pending commands!"); LocalStore localStore = account.getLocalStore(); localStore.removePendingCommands(); } catch (MessagingException me) { - Timber.e("Unable to clear pending command", me); + Timber.e(me, "Unable to clear pending command"); addErrorMessage(account, null, me); } } @@ -2519,7 +2514,7 @@ public class MessagingController { LocalMessage message = localFolder.getMessage(uid); if (uid.startsWith(K9.LOCAL_UID_PREFIX)) { - w("Message has local UID so cannot download fully."); + Timber.w("Message has local UID so cannot download fully."); // ASH move toast android.widget.Toast.makeText(context, "Message has local UID so cannot download fully", @@ -2655,7 +2650,7 @@ public class MessagingController { } } catch (MessagingException me) { if (K9.DEBUG) { - Timber.v("Exception loading attachment", me); + Timber.v(me, "Exception loading attachment"); } for (MessagingListener l : getListeners(listener)) { @@ -2761,7 +2756,7 @@ public class MessagingController { return true; } } catch (Exception e) { - Timber.e("Exception while checking for unsent messages", e); + Timber.e(e, "Exception while checking for unsent messages"); } finally { closeFolder(localFolder); } @@ -2782,7 +2777,7 @@ public class MessagingController { account.getOutboxFolderName()); if (!localFolder.exists()) { if (K9.DEBUG) { - v("Outbox does not exist"); + Timber.v("Outbox does not exist"); } return; } @@ -2806,7 +2801,7 @@ public class MessagingController { fp.add(FetchProfile.Item.BODY); if (K9.DEBUG) { - i("Scanning folder '" + account.getOutboxFolderName() + Timber.i("Scanning folder '" + account.getOutboxFolderName() + "' (" + localFolder.getId() + ") for messages to send"); } @@ -2824,11 +2819,11 @@ public class MessagingController { count = oldCount; } if (K9.DEBUG) { - i("Send count for message " + message.getUid() + " is " + count.get()); + Timber.i("Send count for message " + message.getUid() + " is " + count.get()); } if (count.incrementAndGet() > K9.MAX_SEND_ATTEMPTS) { - e("Send count for message " + message.getUid() + " can't be delivered after " + Timber.e("Send count for message " + message.getUid() + " can't be delivered after " + MAX_SEND_ATTEMPTS + " attempts. Giving up until the user restarts the device"); notificationController.showSendFailedNotification(account, new MessagingException(message.getSubject())); @@ -2838,14 +2833,14 @@ public class MessagingController { localFolder.fetch(Collections.singletonList(message), fp, null); try { if (message.getHeader(K9.IDENTITY_HEADER).length > 0) { - v("The user has set the Outbox and Drafts folder to the same thing. " + + Timber.v("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) { - i("Sending message with UID " + message.getUid()); + Timber.i("Sending message with UID " + message.getUid()); } transport.sendMessage(message); message.setFlag(Flag.X_SEND_IN_PROGRESS, false); @@ -2881,7 +2876,7 @@ public class MessagingController { } catch (Exception e) { lastFailure = e; wasPermanentFailure = false; - Timber.e("Failed to fetch message for sending", e); + Timber.e(e, "Failed to fetch message for sending"); addErrorMessage(account, "Failed to fetch message for sending", e); notifySynchronizeMailboxFailed(account, localFolder, e); } @@ -2899,11 +2894,11 @@ public class MessagingController { } } } catch (UnavailableStorageException e) { - i("Failed to send pending messages because storage is not available - trying again later."); + Timber.i("Failed to send pending messages because storage is not available - trying again later."); throw new UnavailableAccountException(e); } catch (Exception e) { if (K9.DEBUG) { - Timber.v("Failed to send pending messages", e); + Timber.v(e, "Failed to send pending messages"); } for (MessagingListener l : getListeners()) { l.sendPendingMessagesFailed(account); @@ -2922,20 +2917,20 @@ public class MessagingController { LocalFolder localFolder, LocalMessage message) throws MessagingException { if (!account.hasSentFolder()) { if (K9.DEBUG) { - i("Account does not have a sent mail folder; deleting sent message"); + Timber.i("Account does not have a sent mail folder; deleting sent message"); } message.setFlag(Flag.DELETED, true); } else { LocalFolder localSentFolder = localStore.getFolder(account.getSentFolderName()); if (K9.DEBUG) { - i("Moving sent message to folder '" + account.getSentFolderName() + "' (" + + Timber.i("Moving sent message to folder '" + account.getSentFolderName() + "' (" + localSentFolder.getId() + ") "); } localFolder.moveMessages(Collections.singletonList(message), localSentFolder); if (K9.DEBUG) { - i("Moved sent message to folder '" + account.getSentFolderName() + "' (" + + Timber.i("Moved sent message to folder '" + account.getSentFolderName() + "' (" + localSentFolder.getId() + ") "); } @@ -2948,7 +2943,7 @@ public class MessagingController { private void handleSendFailure(Account account, Store localStore, Folder localFolder, Message message, Exception exception, boolean permanentFailure) throws MessagingException { - Timber.e("Failed to send message", exception); + Timber.e(exception, "Failed to send message"); if (permanentFailure) { moveMessageToDraftsFolder(account, localFolder, localStore, message); @@ -2984,8 +2979,8 @@ public class MessagingController { AccountStats stats = account.getStats(context); listener.accountStatusChanged(account, stats); } catch (MessagingException me) { - Timber.e("Count not get unread count for account " + - account.getDescription(), me); + Timber.e(me, "Count not get unread count for account " + + account.getDescription()); } } @@ -3082,7 +3077,7 @@ public class MessagingController { Folder localFolder = account.getLocalStore().getFolder(folderName); unreadMessageCount = localFolder.getUnreadMessageCount(); } catch (MessagingException me) { - Timber.e("Count not get unread count for account " + account.getDescription(), me); + Timber.e(me, "Count not get unread count for account " + account.getDescription()); } l.folderStatusChanged(account, folderName, unreadMessageCount); } @@ -3108,7 +3103,7 @@ public class MessagingController { return localStore.isMoveCapable() && remoteStore.isMoveCapable(); } catch (MessagingException me) { - Timber.e("Exception while ascertaining move capability", me); + Timber.e(me, "Exception while ascertaining move capability"); return false; } } @@ -3119,7 +3114,7 @@ public class MessagingController { Store remoteStore = account.getRemoteStore(); return localStore.isCopyCapable() && remoteStore.isCopyCapable(); } catch (MessagingException me) { - Timber.e("Exception while ascertaining copy capability", me); + Timber.e(me, "Exception while ascertaining copy capability"); return false; } } @@ -3248,7 +3243,7 @@ public class MessagingController { } if (K9.DEBUG) { - i("moveOrCopyMessageSynchronous: source folder = " + srcFolder + Timber.i("moveOrCopyMessageSynchronous: source folder = " + srcFolder + ", " + messages.size() + " messages, " + ", destination folder = " + destFolder + ", isCopy = " + isCopy); } @@ -3299,7 +3294,7 @@ public class MessagingController { processPendingCommands(account); } catch (UnavailableStorageException e) { - i("Failed to move/copy message because storage is not available - trying again later."); + Timber.i("Failed to move/copy message because storage is not available - trying again later."); throw new UnavailableAccountException(e); } catch (MessagingException me) { addErrorMessage(account, null, me); @@ -3360,7 +3355,7 @@ public class MessagingController { deleteMessagesSynchronous(account, folderName, messagesToDelete, null); } catch (MessagingException e) { - Timber.e("Something went wrong while deleting threads", e); + Timber.e(e, "Something went wrong while deleting threads"); } } @@ -3511,7 +3506,7 @@ public class MessagingController { unsuppressMessages(account, messages); } catch (UnavailableStorageException e) { - i("Failed to delete message because storage is not available - trying again later."); + Timber.i("Failed to delete message because storage is not available - trying again later."); throw new UnavailableAccountException(e); } catch (MessagingException me) { addErrorMessage(account, null, me); @@ -3582,10 +3577,10 @@ public class MessagingController { processPendingCommands(account); } } catch (UnavailableStorageException e) { - i("Failed to empty trash because storage is not available - trying again later."); + Timber.i("Failed to empty trash because storage is not available - trying again later."); throw new UnavailableAccountException(e); } catch (Exception e) { - Timber.e("emptyTrash failed", e); + Timber.e(e, "emptyTrash failed"); addErrorMessage(account, null, e); } finally { closeFolder(localFolder); @@ -3611,10 +3606,10 @@ public class MessagingController { localFolder.open(Folder.OPEN_MODE_RW); localFolder.clearAllMessages(); } catch (UnavailableStorageException e) { - i("Failed to clear folder because storage is not available - trying again later."); + Timber.i("Failed to clear folder because storage is not available - trying again later."); throw new UnavailableAccountException(e); } catch (Exception e) { - Timber.e("clearFolder failed", e); + Timber.e(e, "clearFolder failed"); addErrorMessage(account, null, e); } finally { closeFolder(localFolder); @@ -3716,7 +3711,7 @@ public class MessagingController { try { if (K9.DEBUG) { - i("Starting mail check"); + Timber.i("Starting mail check"); } Preferences prefs = Preferences.getPreferences(context); @@ -3733,7 +3728,7 @@ public class MessagingController { } } catch (Exception e) { - Timber.e("Unable to synchronize mail", e); + Timber.e(e, "Unable to synchronize mail"); addErrorMessage(account, null, e); } putBackground("finalize sync", null, new Runnable() { @@ -3741,7 +3736,7 @@ public class MessagingController { public void run() { if (K9.DEBUG) { - i("Finished mail sync"); + Timber.i("Finished mail sync"); } if (wakeLock != null) { @@ -3764,20 +3759,20 @@ public class MessagingController { final MessagingListener listener) { if (!account.isAvailable(context)) { if (K9.DEBUG) { - i("Skipping synchronizing unavailable account " + account.getDescription()); + Timber.i("Skipping synchronizing unavailable account " + account.getDescription()); } return; } final long accountInterval = account.getAutomaticCheckIntervalMinutes() * 60 * 1000; if (!ignoreLastCheckedTime && accountInterval <= 0) { if (K9.DEBUG) { - i("Skipping synchronizing account " + account.getDescription()); + Timber.i("Skipping synchronizing account " + account.getDescription()); } return; } if (K9.DEBUG) { - i("Synchronizing account " + account.getDescription()); + Timber.i("Synchronizing account " + account.getDescription()); } account.setRingNotified(false); @@ -3821,14 +3816,14 @@ public class MessagingController { synchronizeFolder(account, folder, ignoreLastCheckedTime, accountInterval, listener); } } catch (MessagingException e) { - Timber.e("Unable to synchronize account " + account.getName(), e); + Timber.e(e, "Unable to synchronize account " + account.getName()); addErrorMessage(account, null, e); } finally { putBackground("clear notification flag for " + account.getDescription(), null, new Runnable() { @Override public void run() { if (K9.DEBUG) { - v("Clearing notification flag for " + account.getDescription()); + Timber.v("Clearing notification flag for " + account.getDescription()); } account.setRingNotified(false); try { @@ -3837,7 +3832,7 @@ public class MessagingController { notificationController.clearNewMailNotifications(account); } } catch (MessagingException e) { - Timber.e("Unable to getUnreadMessageCount for account: " + account, e); + Timber.e(e, "Unable to getUnreadMessageCount for account: " + account); } } } @@ -3857,14 +3852,14 @@ public class MessagingController { if (K9.DEBUG) { - v("Folder " + folder.getName() + " was last synced @ " + + Timber.v("Folder " + folder.getName() + " was last synced @ " + new Date(folder.getLastChecked())); } if (!ignoreLastCheckedTime && folder.getLastChecked() > (System.currentTimeMillis() - accountInterval)) { if (K9.DEBUG) { - v("Not syncing folder " + folder.getName() + Timber.v("Not syncing folder " + folder.getName() + ", previously synced @ " + new Date(folder.getLastChecked()) + " which would be too recent for the account period"); } @@ -3885,7 +3880,7 @@ public class MessagingController { if (!ignoreLastCheckedTime && tLocalFolder.getLastChecked() > (System.currentTimeMillis() - accountInterval)) { if (K9.DEBUG) { - v("Not running Command for folder " + folder.getName() + Timber.v("Not running Command for folder " + folder.getName() + ", previously synced @ " + new Date(folder.getLastChecked()) + " which would be too recent for the account period"); } @@ -3899,8 +3894,8 @@ public class MessagingController { } } catch (Exception e) { - Timber.e("Exception while processing folder " + - account.getDescription() + ":" + folder.getName(), e); + Timber.e(e, "Exception while processing folder " + + account.getDescription() + ":" + folder.getName()); addErrorMessage(account, null, e); } finally { closeFolder(tLocalFolder); @@ -3938,10 +3933,10 @@ public class MessagingController { l.accountSizeChanged(account, oldSize, newSize); } } catch (UnavailableStorageException e) { - i("Failed to compact account because storage is not available - trying again later."); + Timber.i("Failed to compact account because storage is not available - trying again later."); throw new UnavailableAccountException(e); } catch (Exception e) { - Timber.e("Failed to compact account " + account.getDescription(), e); + Timber.e(e, "Failed to compact account " + account.getDescription()); } } }); @@ -3966,10 +3961,10 @@ public class MessagingController { l.accountStatusChanged(account, stats); } } catch (UnavailableStorageException e) { - i("Failed to clear account because storage is not available - trying again later."); + Timber.i("Failed to clear account because storage is not available - trying again later."); throw new UnavailableAccountException(e); } catch (Exception e) { - Timber.e("Failed to clear account " + account.getDescription(), e); + Timber.e(e, "Failed to clear account " + account.getDescription()); } } }); @@ -3994,10 +3989,10 @@ public class MessagingController { l.accountStatusChanged(account, stats); } } catch (UnavailableStorageException e) { - i("Failed to recreate an account because storage is not available - trying again later."); + Timber.i("Failed to recreate an account because storage is not available - trying again later."); throw new UnavailableAccountException(e); } catch (Exception e) { - Timber.e("Failed to recreate account " + account.getDescription(), e); + Timber.e(e, "Failed to recreate account " + account.getDescription()); } } }); @@ -4121,7 +4116,7 @@ public class MessagingController { } } catch (MessagingException e) { - Timber.e("Unable to save message as draft.", e); + Timber.e(e, "Unable to save message as draft."); addErrorMessage(account, null, e); } return localMessage; @@ -4132,7 +4127,7 @@ public class MessagingController { if (message instanceof LocalMessage) { id = message.getId(); } else { - w("MessagingController.getId() called without a LocalMessage"); + Timber.w("MessagingController.getId() called without a LocalMessage"); id = INVALID_MESSAGE_ID; } @@ -4248,7 +4243,7 @@ public class MessagingController { continue; } if (K9.DEBUG) { - i("Starting pusher for " + account.getDescription() + ":" + folder.getName()); + Timber.i("Starting pusher for " + account.getDescription() + ":" + folder.getName()); } names.add(folder.getName()); @@ -4260,7 +4255,7 @@ public class MessagingController { if (names.size() > maxPushFolders) { if (K9.DEBUG) { - i("Count of folders to push for account " + account.getDescription() + " is " + + Timber.i("Count of folders to push for account " + account.getDescription() + " is " + names.size() + ", greater than limit of " + maxPushFolders + ", truncating"); } @@ -4272,7 +4267,7 @@ public class MessagingController { Store store = account.getRemoteStore(); if (!store.isPushCapable()) { if (K9.DEBUG) { - i("Account " + account.getDescription() + " is not push capable, skipping"); + Timber.i("Account " + account.getDescription() + " is not push capable, skipping"); } return false; @@ -4285,27 +4280,27 @@ public class MessagingController { } } } catch (Exception e) { - Timber.e("Could not get remote store", e); + Timber.e(e, "Could not get remote store"); return false; } return true; } else { if (K9.DEBUG) { - i("No folders are configured for pushing in account " + account.getDescription()); + Timber.i("No folders are configured for pushing in account " + account.getDescription()); } return false; } } catch (Exception e) { - Timber.e("Got exception while setting up pushing", e); + Timber.e(e, "Got exception while setting up pushing"); } return false; } public void stopAllPushing() { if (K9.DEBUG) { - i("Stopping all pushers"); + Timber.i("Stopping all pushers"); } Iterator iter = pushers.values().iterator(); @@ -4319,7 +4314,7 @@ public class MessagingController { public void messagesArrived(final Account account, final Folder remoteFolder, final List messages, final boolean flagSyncOnly) { if (K9.DEBUG) { - i("Got new pushed email messages for account " + account.getDescription() + Timber.i("Got new pushed email messages for account " + account.getDescription() + ", folder " + remoteFolder.getName()); } @@ -4343,7 +4338,7 @@ public class MessagingController { localFolder.setStatus(null); if (K9.DEBUG) { - i("messagesArrived newCount = " + newCount + ", unread count = " + unreadMessageCount); + Timber.i("messagesArrived newCount = " + newCount + ", unread count = " + unreadMessageCount); } if (unreadMessageCount == 0) { @@ -4360,7 +4355,7 @@ public class MessagingController { try { localFolder.setStatus(errorMessage); } catch (Exception se) { - Timber.e("Unable to set failed status on localFolder", se); + Timber.e(se, "Unable to set failed status on localFolder"); } for (MessagingListener l : getListeners()) { l.synchronizeMailboxFailed(account, remoteFolder.getName(), errorMessage); @@ -4376,10 +4371,10 @@ public class MessagingController { try { latch.await(); } catch (Exception e) { - Timber.e("Interrupted while awaiting latch release", e); + Timber.e(e, "Interrupted while awaiting latch release"); } if (K9.DEBUG) { - i("MessagingController.messagesArrivedLatch released"); + Timber.i("MessagingController.messagesArrivedLatch released"); } } @@ -4466,7 +4461,7 @@ public class MessagingController { List localMessages = messageFolder.getMessagesByReference(messageReferences); actor.act(account, messageFolder, localMessages); } catch (MessagingException e) { - Timber.e("Error loading account?!", e); + Timber.e(e, "Error loading account?!"); } } diff --git a/k9mail/src/main/java/com/fsck/k9/controller/MessagingControllerPushReceiver.java b/k9mail/src/main/java/com/fsck/k9/controller/MessagingControllerPushReceiver.java index 6d94d4b32..bbc675609 100644 --- a/k9mail/src/main/java/com/fsck/k9/controller/MessagingControllerPushReceiver.java +++ b/k9mail/src/main/java/com/fsck/k9/controller/MessagingControllerPushReceiver.java @@ -64,7 +64,7 @@ public class MessagingControllerPushReceiver implements PushReceiver { if (K9.DEBUG) Timber.v("syncFolder(" + folder.getName() + ") got latch release"); } catch (Exception e) { - Timber.e("Interrupted while awaiting latch release", e); + Timber.e(e, "Interrupted while awaiting latch release"); } } @@ -96,8 +96,8 @@ public class MessagingControllerPushReceiver implements PushReceiver { localFolder.open(Folder.OPEN_MODE_RW); return localFolder.getPushState(); } catch (Exception e) { - Timber.e("Unable to get push state from account " + account.getDescription() - + ", folder " + folderName, e); + Timber.e(e, "Unable to get push state from account " + account.getDescription() + + ", folder " + folderName); return null; } finally { if (localFolder != null) { diff --git a/k9mail/src/main/java/com/fsck/k9/fragment/MessageListFragment.java b/k9mail/src/main/java/com/fsck/k9/fragment/MessageListFragment.java index 790501a2c..6848c0ccf 100644 --- a/k9mail/src/main/java/com/fsck/k9/fragment/MessageListFragment.java +++ b/k9mail/src/main/java/com/fsck/k9/fragment/MessageListFragment.java @@ -1164,7 +1164,7 @@ public class MessageListFragment extends Fragment implements OnItemClickListener LocalFolder firstMsgFolder = getFolder(firstMsg.getFolderName(), account); firstMsgFolder.setLastSelectedFolderName(destFolderName); } catch (MessagingException e) { - Timber.e("Error getting folder for setLastSelectedFolderName()", e); + Timber.e(e, "Error getting folder for setLastSelectedFolderName()"); } } @@ -2828,7 +2828,7 @@ public class MessageListFragment extends Fragment implements OnItemClickListener mListener.remoteSearchFinished(mCurrentFolder.name, 0, searchAccount.getRemoteSearchNumResults(), null); } catch (Exception e) { // Since the user is going back, log and squash any exceptions. - Timber.e("Could not abort remote search before going back", e); + Timber.e(e, "Could not abort remote search before going back"); } } super.onStop(); diff --git a/k9mail/src/main/java/com/fsck/k9/helper/Contacts.java b/k9mail/src/main/java/com/fsck/k9/helper/Contacts.java index d489fd1a2..9ae14199d 100644 --- a/k9mail/src/main/java/com/fsck/k9/helper/Contacts.java +++ b/k9mail/src/main/java/com/fsck/k9/helper/Contacts.java @@ -265,7 +265,7 @@ public class Contacts { Uri person = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, contactId); return Uri.withAppendedPath(person, ContactsContract.Contacts.Photo.CONTENT_DIRECTORY); } catch (Exception e) { - Timber.e("Couldn't fetch photo for contact with email " + address, e); + Timber.e(e, "Couldn't fetch photo for contact with email " + address); return null; } } diff --git a/k9mail/src/main/java/com/fsck/k9/helper/FileHelper.java b/k9mail/src/main/java/com/fsck/k9/helper/FileHelper.java index 314adab85..287384da0 100644 --- a/k9mail/src/main/java/com/fsck/k9/helper/FileHelper.java +++ b/k9mail/src/main/java/com/fsck/k9/helper/FileHelper.java @@ -82,7 +82,7 @@ public class FileHelper { } } } catch (Exception e) { - Timber.d("Unable to touch file: " + file.getAbsolutePath(), e); + Timber.d(e, "Unable to touch file: " + file.getAbsolutePath()); } } @@ -150,7 +150,7 @@ public class FileHelper { } return true; } catch (Exception e) { - Timber.w("cannot move " + from.getAbsolutePath() + " to " + to.getAbsolutePath(), e); + Timber.w(e, "cannot move " + from.getAbsolutePath() + " to " + to.getAbsolutePath()); return false; } } diff --git a/k9mail/src/main/java/com/fsck/k9/mailstore/AttachmentResolver.java b/k9mail/src/main/java/com/fsck/k9/mailstore/AttachmentResolver.java index 6db8d1134..6faea95fb 100644 --- a/k9mail/src/main/java/com/fsck/k9/mailstore/AttachmentResolver.java +++ b/k9mail/src/main/java/com/fsck/k9/mailstore/AttachmentResolver.java @@ -72,7 +72,7 @@ public class AttachmentResolver { result.put(contentId, attachmentInfo.internalUri); } } catch (MessagingException e) { - Timber.e("Error extracting attachment info", e); + Timber.e(e, "Error extracting attachment info"); } } } diff --git a/k9mail/src/main/java/com/fsck/k9/mailstore/LocalFolder.java b/k9mail/src/main/java/com/fsck/k9/mailstore/LocalFolder.java index f7cc97437..2cb367e9b 100644 --- a/k9mail/src/main/java/com/fsck/k9/mailstore/LocalFolder.java +++ b/k9mail/src/main/java/com/fsck/k9/mailstore/LocalFolder.java @@ -612,7 +612,7 @@ public class LocalFolder extends Folder implements Serializable { prefHolder.displayClass = FolderClass.valueOf(storage.getString(id + ".displayMode", prefHolder.displayClass.name())); } catch (Exception e) { - Timber.e("Unable to load displayMode for " + getName(), e); + Timber.e(e, "Unable to load displayMode for " + getName()); } if (prefHolder.displayClass == FolderClass.NONE) { prefHolder.displayClass = FolderClass.NO_CLASS; @@ -622,7 +622,7 @@ public class LocalFolder extends Folder implements Serializable { prefHolder.syncClass = FolderClass.valueOf(storage.getString(id + ".syncMode", prefHolder.syncClass.name())); } catch (Exception e) { - Timber.e("Unable to load syncMode for " + getName(), e); + Timber.e(e, "Unable to load syncMode for " + getName()); } if (prefHolder.syncClass == FolderClass.NONE) { @@ -633,7 +633,7 @@ public class LocalFolder extends Folder implements Serializable { prefHolder.notifyClass = FolderClass.valueOf(storage.getString(id + ".notifyMode", prefHolder.notifyClass.name())); } catch (Exception e) { - Timber.e("Unable to load notifyMode for " + getName(), e); + Timber.e(e, "Unable to load notifyMode for " + getName()); } if (prefHolder.notifyClass == FolderClass.NONE) { prefHolder.notifyClass = FolderClass.INHERITED; @@ -643,7 +643,7 @@ public class LocalFolder extends Folder implements Serializable { prefHolder.pushClass = FolderClass.valueOf(storage.getString(id + ".pushMode", prefHolder.pushClass.name())); } catch (Exception e) { - Timber.e("Unable to load pushMode for " + getName(), e); + Timber.e(e, "Unable to load pushMode for " + getName()); } if (prefHolder.pushClass == FolderClass.NONE) { prefHolder.pushClass = FolderClass.INHERITED; @@ -1661,7 +1661,7 @@ public class LocalFolder extends Folder implements Serializable { try { updateOrInsertMessagePart(db, new ContentValues(), part, messagePartId); } catch (Exception e) { - Timber.e("Error writing message part", e); + Timber.e(e, "Error writing message part"); } return null; @@ -1709,7 +1709,7 @@ public class LocalFolder extends Folder implements Serializable { try { message.setFlags(flags, value); } catch (MessagingException e) { - Timber.e("Something went wrong while setting flag", e); + Timber.e(e, "Something went wrong while setting flag"); } } @@ -1925,7 +1925,7 @@ public class LocalFolder extends Folder implements Serializable { return cursor.getInt(0); } } catch (Exception e) { - Timber.e("Unable to updateLastUid: ", e); + Timber.e(e, "Unable to updateLastUid: "); } finally { Utility.closeQuietly(cursor); } @@ -1950,7 +1950,7 @@ public class LocalFolder extends Folder implements Serializable { return cursor.getLong(0); } } catch (Exception e) { - Timber.e("Unable to fetch oldest message date: ", e); + Timber.e(e, "Unable to fetch oldest message date: "); } finally { Utility.closeQuietly(cursor); } diff --git a/k9mail/src/main/java/com/fsck/k9/mailstore/LocalStore.java b/k9mail/src/main/java/com/fsck/k9/mailstore/LocalStore.java index 99f04449d..63fc77691 100644 --- a/k9mail/src/main/java/com/fsck/k9/mailstore/LocalStore.java +++ b/k9mail/src/main/java/com/fsck/k9/mailstore/LocalStore.java @@ -249,7 +249,7 @@ public class LocalStore extends Store implements Serializable { try { removeInstance(account); } catch (Exception e) { - Timber.e("Failed to reset local store for account " + account.getUuid(), e); + Timber.e(e, "Failed to reset local store for account " + account.getUuid()); } } @@ -631,7 +631,7 @@ public class LocalStore extends Store implements Serializable { i++; } } catch (Exception e) { - Timber.d("Got an exception", e); + Timber.d(e, "Got an exception"); } finally { Utility.closeQuietly(cursor); } diff --git a/k9mail/src/main/java/com/fsck/k9/mailstore/LockableDatabase.java b/k9mail/src/main/java/com/fsck/k9/mailstore/LockableDatabase.java index 60b6c4bb1..4f91fc470 100644 --- a/k9mail/src/main/java/com/fsck/k9/mailstore/LockableDatabase.java +++ b/k9mail/src/main/java/com/fsck/k9/mailstore/LockableDatabase.java @@ -88,7 +88,7 @@ public class LockableDatabase { unlockWrite(); } } catch (UnavailableStorageException e) { - Timber.w("Unable to writelock on unmount", e); + Timber.w(e, "Unable to writelock on unmount"); } } @@ -106,7 +106,7 @@ public class LockableDatabase { try { openOrCreateDataspace(); } catch (UnavailableStorageException e) { - Timber.e("Unable to open DB on mount", e); + Timber.e(e, "Unable to open DB on mount"); } } } @@ -326,7 +326,7 @@ public class LockableDatabase { try { mDb.close(); } catch (Exception e) { - Timber.i("Unable to close DB on local store migration", e); + Timber.i(e, "Unable to close DB on local store migration"); } final StorageManager storageManager = getStorageManager(); @@ -378,7 +378,7 @@ public class LockableDatabase { doOpenOrCreateDb(databaseFile); } catch (SQLiteException e) { // TODO handle this error in a better way! - Timber.w("Unable to open DB " + databaseFile + " - removing file and retrying", e); + Timber.w(e, "Unable to open DB " + databaseFile + " - removing file and retrying"); if (databaseFile.exists() && !databaseFile.delete()) { Timber.d("Failed to remove " + databaseFile + " that couldn't be opened"); } @@ -493,7 +493,7 @@ public class LockableDatabase { try { deleteDatabase(storageManager.getDatabase(uUid, mStorageProviderId)); } catch (Exception e) { - Timber.i("LockableDatabase: delete(): Unable to delete backing DB file", e); + Timber.i(e, "LockableDatabase: delete(): Unable to delete backing DB file"); } if (recreate) { diff --git a/k9mail/src/main/java/com/fsck/k9/mailstore/StorageManager.java b/k9mail/src/main/java/com/fsck/k9/mailstore/StorageManager.java index 513ac160a..fceea47c6 100644 --- a/k9mail/src/main/java/com/fsck/k9/mailstore/StorageManager.java +++ b/k9mail/src/main/java/com/fsck/k9/mailstore/StorageManager.java @@ -204,7 +204,7 @@ public class StorageManager { return isMountPoint(root) && Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()); } catch (IOException e) { - Timber.w("Specified root isn't ready: " + mRoot, e); + Timber.w(e, "Specified root isn't ready: " + mRoot); return false; } } @@ -641,7 +641,7 @@ public class StorageManager { try { listener.onUnmount(provider.getId()); } catch (Exception e) { - Timber.w("Error while notifying StorageListener", e); + Timber.w(e, "Error while notifying StorageListener"); } } final SynchronizationAid sync = mProviderLocks.get(resolveProvider(path)); @@ -682,7 +682,7 @@ public class StorageManager { try { listener.onMount(provider.getId()); } catch (Exception e) { - Timber.w("Error while notifying StorageListener", e); + Timber.w(e, "Error while notifying StorageListener"); } } diff --git a/k9mail/src/main/java/com/fsck/k9/mailstore/StoreSchemaDefinition.java b/k9mail/src/main/java/com/fsck/k9/mailstore/StoreSchemaDefinition.java index c643d570d..f8710a580 100644 --- a/k9mail/src/main/java/com/fsck/k9/mailstore/StoreSchemaDefinition.java +++ b/k9mail/src/main/java/com/fsck/k9/mailstore/StoreSchemaDefinition.java @@ -44,7 +44,7 @@ class StoreSchemaDefinition implements LockableDatabase.SchemaDefinition { throw new Error("Exception while upgrading database", e); } - Timber.e("Exception while upgrading database. Resetting the DB to v0", e); + Timber.e(e, "Exception while upgrading database. Resetting the DB to v0"); db.setVersion(0); upgradeDatabase(db); } diff --git a/k9mail/src/main/java/com/fsck/k9/mailstore/migrations/MigrationTo35.java b/k9mail/src/main/java/com/fsck/k9/mailstore/migrations/MigrationTo35.java index ba18a8ad7..ddda3ea4b 100644 --- a/k9mail/src/main/java/com/fsck/k9/mailstore/migrations/MigrationTo35.java +++ b/k9mail/src/main/java/com/fsck/k9/mailstore/migrations/MigrationTo35.java @@ -13,7 +13,7 @@ class MigrationTo35 { try { db.execSQL("update messages set flags = replace(flags, 'X_NO_SEEN_INFO', 'X_BAD_FLAG')"); } catch (SQLiteException e) { - Timber.e("Unable to get rid of obsolete flag X_NO_SEEN_INFO", e); + Timber.e(e, "Unable to get rid of obsolete flag X_NO_SEEN_INFO"); } } } diff --git a/k9mail/src/main/java/com/fsck/k9/mailstore/migrations/MigrationTo41.java b/k9mail/src/main/java/com/fsck/k9/mailstore/migrations/MigrationTo41.java index f596e9441..95f82eadb 100644 --- a/k9mail/src/main/java/com/fsck/k9/mailstore/migrations/MigrationTo41.java +++ b/k9mail/src/main/java/com/fsck/k9/mailstore/migrations/MigrationTo41.java @@ -38,11 +38,11 @@ class MigrationTo41 { String name = cursor.getString(1); update41Metadata(db, migrationsHelper, id, name); } catch (Exception e) { - Timber.e(" error trying to ugpgrade a folder class", e); + Timber.e(e, " error trying to ugpgrade a folder class"); } } } catch (SQLiteException e) { - Timber.e("Exception while upgrading database to v41. folder classes may have vanished", e); + Timber.e(e, "Exception while upgrading database to v41. folder classes may have vanished"); } finally { Utility.closeQuietly(cursor); } @@ -73,7 +73,7 @@ class MigrationTo41 { inTopGroup = storage.getBoolean(accountUuid + "." + name + ".inTopGroup", inTopGroup); integrate = storage.getBoolean(accountUuid + "." + name + ".integrate", integrate); } catch (Exception e) { - Timber.e(" Throwing away an error while trying to upgrade folder metadata", e); + Timber.e(e, " Throwing away an error while trying to upgrade folder metadata"); } if (displayClass == Folder.FolderClass.NONE) { diff --git a/k9mail/src/main/java/com/fsck/k9/mailstore/migrations/MigrationTo42.java b/k9mail/src/main/java/com/fsck/k9/mailstore/migrations/MigrationTo42.java index cab8cb2b6..37519d15e 100644 --- a/k9mail/src/main/java/com/fsck/k9/mailstore/migrations/MigrationTo42.java +++ b/k9mail/src/main/java/com/fsck/k9/mailstore/migrations/MigrationTo42.java @@ -35,7 +35,7 @@ class MigrationTo42 { Timber.i("Putting folder preferences for " + folders.size() + " folders back into Preferences took " + (endTime - startTime) + " ms"); } catch (Exception e) { - Timber.e("Could not replace Preferences in upgrade from DB_VERSION 41", e); + Timber.e(e, "Could not replace Preferences in upgrade from DB_VERSION 41"); } } } diff --git a/k9mail/src/main/java/com/fsck/k9/mailstore/migrations/MigrationTo43.java b/k9mail/src/main/java/com/fsck/k9/mailstore/migrations/MigrationTo43.java index 900a47de6..2bf752430 100644 --- a/k9mail/src/main/java/com/fsck/k9/mailstore/migrations/MigrationTo43.java +++ b/k9mail/src/main/java/com/fsck/k9/mailstore/migrations/MigrationTo43.java @@ -56,7 +56,7 @@ class MigrationTo43 { obsoleteOutbox.delete(true); } } catch (Exception e) { - Timber.e("Error trying to fix the outbox folders", e); + Timber.e(e, "Error trying to fix the outbox folders"); } } } diff --git a/k9mail/src/main/java/com/fsck/k9/mailstore/migrations/MigrationTo51.java b/k9mail/src/main/java/com/fsck/k9/mailstore/migrations/MigrationTo51.java index e70a799ff..8f5c054eb 100644 --- a/k9mail/src/main/java/com/fsck/k9/mailstore/migrations/MigrationTo51.java +++ b/k9mail/src/main/java/com/fsck/k9/mailstore/migrations/MigrationTo51.java @@ -124,7 +124,7 @@ class MigrationTo51 { cv.put("attachment_count", attachmentCount); db.update("messages", cv, "id = ?", new String[] { Long.toString(messageId) }); } catch (IOException e) { - Timber.e("error inserting into database", e); + Timber.e(e, "error inserting into database"); } } diff --git a/k9mail/src/main/java/com/fsck/k9/mailstore/migrations/MigrationTo55.java b/k9mail/src/main/java/com/fsck/k9/mailstore/migrations/MigrationTo55.java index ae03f1a3c..6c8ae6dac 100644 --- a/k9mail/src/main/java/com/fsck/k9/mailstore/migrations/MigrationTo55.java +++ b/k9mail/src/main/java/com/fsck/k9/mailstore/migrations/MigrationTo55.java @@ -50,7 +50,7 @@ class MigrationTo55 { } } } catch (MessagingException e) { - Timber.e("error indexing fulltext - skipping rest, fts index is incomplete!", e); + Timber.e(e, "error indexing fulltext - skipping rest, fts index is incomplete!"); } } } diff --git a/k9mail/src/main/java/com/fsck/k9/message/extractors/AttachmentInfoExtractor.java b/k9mail/src/main/java/com/fsck/k9/message/extractors/AttachmentInfoExtractor.java index 35faef776..76f96d3fb 100644 --- a/k9mail/src/main/java/com/fsck/k9/message/extractors/AttachmentInfoExtractor.java +++ b/k9mail/src/main/java/com/fsck/k9/message/extractors/AttachmentInfoExtractor.java @@ -99,7 +99,7 @@ public class AttachmentInfoExtractor { uri = DecryptedFileProvider.getUriForProvidedFile( context, file, decryptedTempFileBody.getEncoding(), mimeType); } catch (IOException e) { - Timber.e("Decrypted temp file (no longer?) exists!", e); + Timber.e(e, "Decrypted temp file (no longer?) exists!"); uri = null; } return uri; diff --git a/k9mail/src/main/java/com/fsck/k9/preferences/SettingsImporter.java b/k9mail/src/main/java/com/fsck/k9/preferences/SettingsImporter.java index 1e9b2e175..bcfa42350 100644 --- a/k9mail/src/main/java/com/fsck/k9/preferences/SettingsImporter.java +++ b/k9mail/src/main/java/com/fsck/k9/preferences/SettingsImporter.java @@ -193,7 +193,7 @@ public class SettingsImporter { } } } catch (Exception e) { - Timber.e("Exception while importing global settings", e); + Timber.e(e, "Exception while importing global settings"); } } @@ -244,12 +244,12 @@ public class SettingsImporter { } } catch (InvalidSettingValueException e) { if (K9.DEBUG) { - Timber.e("Encountered invalid setting while " + - "importing account \"" + account.name + "\"", e); + Timber.e(e, "Encountered invalid setting while " + + "importing account \"" + account.name + "\""); } erroneousAccounts.add(new AccountDescription(account.name, account.uuid)); } catch (Exception e) { - Timber.e("Exception while importing account \"" + account.name + "\"", e); + Timber.e(e, "Exception while importing account \"" + account.name + "\""); erroneousAccounts.add(new AccountDescription(account.name, account.uuid)); } } else { diff --git a/k9mail/src/main/java/com/fsck/k9/preferences/Storage.java b/k9mail/src/main/java/com/fsck/k9/preferences/Storage.java index a05cbb530..fbd84094d 100644 --- a/k9mail/src/main/java/com/fsck/k9/preferences/Storage.java +++ b/k9mail/src/main/java/com/fsck/k9/preferences/Storage.java @@ -119,7 +119,7 @@ public class Storage { writeValue(mDb, uuid + ".storeUri", newStoreUriStr); } } catch (Exception e) { - Timber.e("ooops", e); + Timber.e(e, "ooops"); } } } @@ -294,7 +294,7 @@ public class Storage { try { return Integer.parseInt(val); } catch (NumberFormatException nfe) { - Timber.e("Could not parse int", nfe); + Timber.e(nfe, "Could not parse int"); return defValue; } } @@ -307,7 +307,7 @@ public class Storage { try { return Long.parseLong(val); } catch (NumberFormatException nfe) { - Timber.e("Could not parse long", nfe); + Timber.e(nfe, "Could not parse long"); return defValue; } } diff --git a/k9mail/src/main/java/com/fsck/k9/preferences/StorageEditor.java b/k9mail/src/main/java/com/fsck/k9/preferences/StorageEditor.java index 9364d7d07..96d1a7f01 100644 --- a/k9mail/src/main/java/com/fsck/k9/preferences/StorageEditor.java +++ b/k9mail/src/main/java/com/fsck/k9/preferences/StorageEditor.java @@ -46,7 +46,7 @@ public class StorageEditor { commitChanges(); return true; } catch (Exception e) { - Timber.e("Failed to save preferences", e); + Timber.e(e, "Failed to save preferences"); return false; } } diff --git a/k9mail/src/main/java/com/fsck/k9/provider/AttachmentProvider.java b/k9mail/src/main/java/com/fsck/k9/provider/AttachmentProvider.java index a6adff305..43e91b801 100644 --- a/k9mail/src/main/java/com/fsck/k9/provider/AttachmentProvider.java +++ b/k9mail/src/main/java/com/fsck/k9/provider/AttachmentProvider.java @@ -96,7 +96,7 @@ public class AttachmentProvider extends ContentProvider { final Account account = Preferences.getPreferences(getContext()).getAccount(accountUuid); attachmentInfo = LocalStore.getInstance(account, getContext()).getAttachmentInfo(id); } catch (MessagingException e) { - Timber.e("Unable to retrieve attachment info from local store for ID: " + id, e); + Timber.e(e, "Unable to retrieve attachment info from local store for ID: " + id); return null; } @@ -154,7 +154,7 @@ public class AttachmentProvider extends ContentProvider { type = attachmentInfo.type; } } catch (MessagingException e) { - Timber.e("Unable to retrieve LocalStore for " + account, e); + Timber.e(e, "Unable to retrieve LocalStore for " + account); type = MimeUtility.DEFAULT_ATTACHMENT_MIME_TYPE; } @@ -171,10 +171,10 @@ public class AttachmentProvider extends ContentProvider { } return openPgpDataSource.startPumpThread(); } catch (MessagingException e) { - Timber.e("Error getting InputStream for attachment", e); + Timber.e(e, "Error getting InputStream for attachment"); return null; } catch (IOException e) { - Timber.e("Error creating ParcelFileDescriptor", e); + Timber.e(e, "Error creating ParcelFileDescriptor"); return null; } } diff --git a/k9mail/src/main/java/com/fsck/k9/provider/MessageProvider.java b/k9mail/src/main/java/com/fsck/k9/provider/MessageProvider.java index 7879b2783..2e8c88498 100644 --- a/k9mail/src/main/java/com/fsck/k9/provider/MessageProvider.java +++ b/k9mail/src/main/java/com/fsck/k9/provider/MessageProvider.java @@ -150,7 +150,7 @@ public class MessageProvider extends ContentProvider { QueryHandler handler = queryHandlers.get(code); cursor = handler.query(uri, projection, selection, selectionArgs, sortOrder); } catch (Exception e) { - Timber.e("Unable to execute query for URI: " + uri, e); + Timber.e(e, "Unable to execute query for URI: " + uri); return null; } @@ -1076,7 +1076,7 @@ public class MessageProvider extends ContentProvider { try { monitored.close(); } catch (Exception e) { - Timber.w("Exception while forcibly closing cursor", e); + Timber.w(e, "Exception while forcibly closing cursor"); } } } @@ -1119,7 +1119,7 @@ public class MessageProvider extends ContentProvider { try { queue.put(holders); } catch (InterruptedException e) { - Timber.e("Unable to return message list back to caller", e); + Timber.e(e, "Unable to return message list back to caller"); } } } diff --git a/k9mail/src/main/java/com/fsck/k9/provider/UnreadWidgetProvider.java b/k9mail/src/main/java/com/fsck/k9/provider/UnreadWidgetProvider.java index be7a8b6b2..60ff01ada 100644 --- a/k9mail/src/main/java/com/fsck/k9/provider/UnreadWidgetProvider.java +++ b/k9mail/src/main/java/com/fsck/k9/provider/UnreadWidgetProvider.java @@ -100,7 +100,7 @@ public class UnreadWidgetProvider extends AppWidgetProvider { } } catch (Exception e) { if (K9.DEBUG) { - Timber.e("Error getting widget configuration", e); + Timber.e(e, "Error getting widget configuration"); } } diff --git a/k9mail/src/main/java/com/fsck/k9/service/DatabaseUpgradeService.java b/k9mail/src/main/java/com/fsck/k9/service/DatabaseUpgradeService.java index 64af789df..175efe6c9 100644 --- a/k9mail/src/main/java/com/fsck/k9/service/DatabaseUpgradeService.java +++ b/k9mail/src/main/java/com/fsck/k9/service/DatabaseUpgradeService.java @@ -202,7 +202,7 @@ public class DatabaseUpgradeService extends Service { } catch (UnavailableStorageException e) { Timber.e("Database unavailable"); } catch (Exception e) { - Timber.e("Error while upgrading database", e); + Timber.e(e, "Error while upgrading database"); } mProgress++; diff --git a/k9mail/src/main/java/com/fsck/k9/service/MailService.java b/k9mail/src/main/java/com/fsck/k9/service/MailService.java index 20948755a..19c8b82d2 100644 --- a/k9mail/src/main/java/com/fsck/k9/service/MailService.java +++ b/k9mail/src/main/java/com/fsck/k9/service/MailService.java @@ -309,7 +309,7 @@ public class MailService extends CoreService { } } catch (Exception e) { // I once got a NullPointerException deep in new Date(); - Timber.e("Exception while logging", e); + Timber.e(e, "Exception while logging"); } Intent i = new Intent(this, MailService.class); @@ -414,7 +414,7 @@ public class MailService extends CoreService { MessagingController.getInstance(getApplication()).sendPendingMessages(null); } catch (Exception e) { - Timber.e("Exception while refreshing pushers", e); + Timber.e(e, "Exception while refreshing pushers"); } } diff --git a/k9mail/src/main/java/com/fsck/k9/service/RemoteControlReceiver.java b/k9mail/src/main/java/com/fsck/k9/service/RemoteControlReceiver.java index a5e6cec60..c992e21fe 100644 --- a/k9mail/src/main/java/com/fsck/k9/service/RemoteControlReceiver.java +++ b/k9mail/src/main/java/com/fsck/k9/service/RemoteControlReceiver.java @@ -41,7 +41,7 @@ public class RemoteControlReceiver extends CoreReceiver { bundle.putStringArray(K9_ACCOUNT_UUIDS, uuids); bundle.putStringArray(K9_ACCOUNT_DESCRIPTIONS, descriptions); } catch (Exception e) { - Timber.e("Could not handle K9_RESPONSE_INTENT", e); + Timber.e(e, "Could not handle K9_RESPONSE_INTENT"); } } diff --git a/k9mail/src/main/java/com/fsck/k9/service/RemoteControlService.java b/k9mail/src/main/java/com/fsck/k9/service/RemoteControlService.java index c14ca13cd..f026655b0 100644 --- a/k9mail/src/main/java/com/fsck/k9/service/RemoteControlService.java +++ b/k9mail/src/main/java/com/fsck/k9/service/RemoteControlService.java @@ -147,7 +147,7 @@ public class RemoteControlService extends CoreService { BootReceiver.scheduleIntent(RemoteControlService.this, nextTime, i); } } catch (Exception e) { - Timber.e("Could not handle K9_SET", e); + Timber.e(e, "Could not handle K9_SET"); Toast toast = Toast.makeText(RemoteControlService.this, e.getMessage(), Toast.LENGTH_LONG); toast.show(); } diff --git a/k9mail/src/main/java/com/fsck/k9/service/SleepService.java b/k9mail/src/main/java/com/fsck/k9/service/SleepService.java index a113f5025..60f8d0942 100644 --- a/k9mail/src/main/java/com/fsck/k9/service/SleepService.java +++ b/k9mail/src/main/java/com/fsck/k9/service/SleepService.java @@ -54,7 +54,7 @@ public class SleepService extends CoreService { currentThread().getName()); } } catch (InterruptedException ie) { - Timber.e("SleepService Interrupted while awaiting latch", ie); + Timber.e(ie, "SleepService Interrupted while awaiting latch"); } SleepDatum releaseDatum = sleepData.remove(id); if (releaseDatum == null) { @@ -69,7 +69,7 @@ public class SleepService extends CoreService { Timber.d("SleepService reacquireLatch finished for id = " + id + ", thread " + currentThread().getName()); } catch (InterruptedException ie) { - Timber.e("SleepService Interrupted while awaiting reacquireLatch", ie); + Timber.e(ie, "SleepService Interrupted while awaiting reacquireLatch"); } } else { reacquireWakeLock(releaseDatum); diff --git a/k9mail/src/main/java/com/fsck/k9/ui/compose/QuotedMessagePresenter.java b/k9mail/src/main/java/com/fsck/k9/ui/compose/QuotedMessagePresenter.java index 576771c0b..ad5acc445 100644 --- a/k9mail/src/main/java/com/fsck/k9/ui/compose/QuotedMessagePresenter.java +++ b/k9mail/src/main/java/com/fsck/k9/ui/compose/QuotedMessagePresenter.java @@ -190,7 +190,7 @@ public class QuotedMessagePresenter { try { cursorPosition = Integer.parseInt(k9identity.get(IdentityField.CURSOR_POSITION)); } catch (Exception e) { - Timber.e("Could not parse cursor position for MessageCompose; continuing.", e); + Timber.e(e, "Could not parse cursor position for MessageCompose; continuing."); } } @@ -298,7 +298,7 @@ public class QuotedMessagePresenter { try { view.setMessageContentCursorPosition(cursorPosition); } catch (Exception e) { - Timber.e("Could not set cursor position in MessageCompose; ignoring.", e); + Timber.e(e, "Could not set cursor position in MessageCompose; ignoring."); } showOrHideQuotedText(quotedMode); diff --git a/k9mail/src/main/java/com/fsck/k9/ui/crypto/MessageCryptoHelper.java b/k9mail/src/main/java/com/fsck/k9/ui/crypto/MessageCryptoHelper.java index db7aaafcc..44e268d3b 100644 --- a/k9mail/src/main/java/com/fsck/k9/ui/crypto/MessageCryptoHelper.java +++ b/k9mail/src/main/java/com/fsck/k9/ui/crypto/MessageCryptoHelper.java @@ -226,7 +226,7 @@ public class MessageCryptoHelper { @Override public void onError(Exception e) { // TODO actually handle (hand to ui, offer retry?) - Timber.e("Couldn't connect to OpenPgpService", e); + Timber.e(e, "Couldn't connect to OpenPgpService"); } }); openPgpServiceConnection.bindToService(); @@ -276,9 +276,9 @@ public class MessageCryptoHelper { throw new IllegalStateException("Unknown crypto part type: " + cryptoPartType); } catch (IOException e) { - Timber.e("IOException", e); + Timber.e(e, "IOException"); } catch (MessagingException e) { - Timber.e("MessagingException", e); + Timber.e(e, "MessagingException"); } } @@ -321,7 +321,7 @@ public class MessageCryptoHelper { TextBody body = new TextBody(new String(decryptedByteOutputStream.toByteArray())); return new MimeBodyPart(body, "text/plain"); } catch (MessagingException e) { - Timber.e("MessagingException", e); + Timber.e(e, "MessagingException"); } return null; @@ -382,7 +382,7 @@ public class MessageCryptoHelper { Timber.d("signed data type: " + signatureBodyPart.getMimeType()); signatureBodyPart.writeTo(os); } catch (MessagingException e) { - Timber.e("Exception while writing message to crypto provider", e); + Timber.e(e, "Exception while writing message to crypto provider"); } } }; @@ -431,7 +431,7 @@ public class MessageCryptoHelper { throw new IllegalStateException("part to stream must be encrypted or inline!"); } } catch (MessagingException e) { - Timber.e("MessagingException while writing message to crypto provider", e); + Timber.e(e, "MessagingException while writing message to crypto provider"); } } }; @@ -447,7 +447,7 @@ public class MessageCryptoHelper { DecryptedFileProvider.getFileFactory(context); return MimePartStreamParser.parse(fileFactory, is); } catch (MessagingException e) { - Timber.e("Something went wrong while parsing the decrypted MIME part", e); + Timber.e(e, "Something went wrong while parsing the decrypted MIME part"); //TODO: pass error to main thread and display error message to user return null; } @@ -596,7 +596,7 @@ public class MessageCryptoHelper { partsToDecryptOrVerify.removeFirst(); currentCryptoPart = null; } else { - Timber.e("Got to onCryptoFinished() with no part in processing!", new Throwable()); + Timber.e(new Throwable(), "Got to onCryptoFinished() with no part in processing!"); } decryptOrVerifyNextPart(); } @@ -726,7 +726,7 @@ public class MessageCryptoHelper { } return new MimeBodyPart(new TextBody(replacementText), "text/plain"); } catch (MessagingException e) { - Timber.e("failed to create clearsigned text replacement part", e); + Timber.e(e, "failed to create clearsigned text replacement part"); return NO_REPLACEMENT_PART; } } diff --git a/k9mail/src/main/java/com/fsck/k9/ui/message/LocalMessageExtractorLoader.java b/k9mail/src/main/java/com/fsck/k9/ui/message/LocalMessageExtractorLoader.java index 54923e7e5..199ba1053 100644 --- a/k9mail/src/main/java/com/fsck/k9/ui/message/LocalMessageExtractorLoader.java +++ b/k9mail/src/main/java/com/fsck/k9/ui/message/LocalMessageExtractorLoader.java @@ -54,7 +54,7 @@ public class LocalMessageExtractorLoader extends AsyncTaskLoader { try { return loadMessageFromDatabase(); } catch (Exception e) { - Timber.e("Error while loading message from database", e); + Timber.e(e, "Error while loading message from database"); return null; } } diff --git a/k9mail/src/main/java/com/fsck/k9/ui/messageview/AttachmentController.java b/k9mail/src/main/java/com/fsck/k9/ui/messageview/AttachmentController.java index d1d87dfdb..18f6b6eeb 100644 --- a/k9mail/src/main/java/com/fsck/k9/ui/messageview/AttachmentController.java +++ b/k9mail/src/main/java/com/fsck/k9/ui/messageview/AttachmentController.java @@ -181,7 +181,7 @@ public class AttachmentController { try { intentDataUri = AttachmentTempFileProvider.createTempUriForContentUri(context, attachment.internalUri); } catch (IOException e) { - Timber.e("Error creating temp file for attachment!", e); + Timber.e(e, "Error creating temp file for attachment!"); return null; } @@ -212,7 +212,7 @@ public class AttachmentController { viewIntent = createViewIntentForFileUri(resolvedIntentInfo.getMimeType(), Uri.fromFile(tempFile)); } catch (IOException e) { if (K9.DEBUG) { - Timber.e("Error while saving attachment to use file:// URI with ACTION_VIEW Intent", e); + Timber.e(e, "Error while saving attachment to use file:// URI with ACTION_VIEW Intent"); } viewIntent = createViewIntentForAttachmentProviderUri(intentDataUri, MimeUtility.DEFAULT_ATTACHMENT_MIME_TYPE); } @@ -332,7 +332,7 @@ public class AttachmentController { try { context.startActivity(intent); } catch (ActivityNotFoundException e) { - Timber.e("Could not display attachment of type " + attachment.mimeType, e); + Timber.e(e, "Could not display attachment of type " + attachment.mimeType); String message = context.getString(R.string.message_view_no_viewer, attachment.mimeType); displayMessageToUser(message); @@ -354,7 +354,7 @@ public class AttachmentController { return saveAttachmentWithUniqueFileName(directory); } catch (IOException e) { if (K9.DEBUG) { - Timber.e("Error saving attachment", e); + Timber.e(e, "Error saving attachment"); } return null; } diff --git a/k9mail/src/main/java/com/fsck/k9/ui/messageview/DownloadImageTask.java b/k9mail/src/main/java/com/fsck/k9/ui/messageview/DownloadImageTask.java index 890093112..a28fe3780 100644 --- a/k9mail/src/main/java/com/fsck/k9/ui/messageview/DownloadImageTask.java +++ b/k9mail/src/main/java/com/fsck/k9/ui/messageview/DownloadImageTask.java @@ -57,7 +57,7 @@ class DownloadImageTask extends AsyncTask { return fileName; } catch (Exception e) { - Timber.e("Error while downloading image", e); + Timber.e(e, "Error while downloading image"); return null; } } diff --git a/k9mail/src/main/java/com/fsck/k9/ui/messageview/MessageCryptoPresenter.java b/k9mail/src/main/java/com/fsck/k9/ui/messageview/MessageCryptoPresenter.java index c1fa732d4..6365ed059 100644 --- a/k9mail/src/main/java/com/fsck/k9/ui/messageview/MessageCryptoPresenter.java +++ b/k9mail/src/main/java/com/fsck/k9/ui/messageview/MessageCryptoPresenter.java @@ -200,7 +200,7 @@ public class MessageCryptoPresenter implements OnCryptoClickListener { pendingIntent.getIntentSender(), REQUEST_CODE_UNKNOWN_KEY, null, 0, 0, 0); } } catch (IntentSender.SendIntentException e) { - Timber.e("SendIntentException", e); + Timber.e(e, "SendIntentException"); } } @@ -212,7 +212,7 @@ public class MessageCryptoPresenter implements OnCryptoClickListener { pendingIntent.getIntentSender(), null, null, 0, 0, 0); } } catch (IntentSender.SendIntentException e) { - Timber.e("SendIntentException", e); + Timber.e(e, "SendIntentException"); } } diff --git a/k9mail/src/main/java/com/fsck/k9/ui/messageview/MessageViewFragment.java b/k9mail/src/main/java/com/fsck/k9/ui/messageview/MessageViewFragment.java index d36f70ba7..8e142c33b 100644 --- a/k9mail/src/main/java/com/fsck/k9/ui/messageview/MessageViewFragment.java +++ b/k9mail/src/main/java/com/fsck/k9/ui/messageview/MessageViewFragment.java @@ -789,7 +789,7 @@ public class MessageViewFragment extends Fragment implements ConfirmationDialogF getActivity().startIntentSenderForResult( si, requestCode, fillIntent, flagsMask, flagValues, extraFlags); } catch (SendIntentException e) { - Timber.e("Irrecoverable error calling PendingIntent!", e); + Timber.e(e, "Irrecoverable error calling PendingIntent!"); } } }; diff --git a/k9mail/src/main/java/com/fsck/k9/view/K9WebViewClient.java b/k9mail/src/main/java/com/fsck/k9/view/K9WebViewClient.java index 714acb33c..7651f7f1f 100644 --- a/k9mail/src/main/java/com/fsck/k9/view/K9WebViewClient.java +++ b/k9mail/src/main/java/com/fsck/k9/view/K9WebViewClient.java @@ -111,7 +111,7 @@ abstract class K9WebViewClient extends WebViewClient { return new WebResourceResponse(mimeType, null, inputStream); } catch (Exception e) { - Timber.e("Error while intercepting URI: " + uri, e); + Timber.e(e, "Error while intercepting URI: " + uri); return RESULT_DUMMY_RESPONSE; } } diff --git a/k9mail/src/main/java/com/fsck/k9/view/MessageHeader.java b/k9mail/src/main/java/com/fsck/k9/view/MessageHeader.java index f094e8081..ce008876e 100644 --- a/k9mail/src/main/java/com/fsck/k9/view/MessageHeader.java +++ b/k9mail/src/main/java/com/fsck/k9/view/MessageHeader.java @@ -188,7 +188,7 @@ public class MessageHeader extends LinearLayout implements OnClickListener, OnLo final Address senderEmail = mMessage.getFrom()[0]; mContacts.createContact(senderEmail); } catch (Exception e) { - Timber.e("Couldn't create contact", e); + Timber.e(e, "Couldn't create contact"); } } } diff --git a/k9mail/src/main/java/com/fsck/k9/view/MessageWebView.java b/k9mail/src/main/java/com/fsck/k9/view/MessageWebView.java index 52f31f72a..16d451f76 100644 --- a/k9mail/src/main/java/com/fsck/k9/view/MessageWebView.java +++ b/k9mail/src/main/java/com/fsck/k9/view/MessageWebView.java @@ -146,7 +146,7 @@ public class MessageWebView extends RigidWebView { shiftPressEvent.dispatch(this, null, null); Toast.makeText(getContext() , R.string.select_text_now, Toast.LENGTH_SHORT).show(); } catch (Exception e) { - Timber.e("Exception in emulateShiftHeld()", e); + Timber.e(e, "Exception in emulateShiftHeld()"); } }