From 560bfadc3151f7a06f3b06e9a6c92cfa534c63ec Mon Sep 17 00:00:00 2001 From: Scott Kennedy Date: Sat, 25 May 2013 21:32:32 -0700 Subject: [PATCH] Unify LogTag There is now only one LogTag class. The static initializer of GmailApplication (existing) and EmailApplication (new) will now set the log tag to "Gmail" and "Email", respectively. Up until that code is run, it will be "UnifiedEmail". "setprop log.tag.Gmail VERBOSE" (or .Email) will trigger all logs to be printed as long as they go through LogUtils, regardless of what tag is used by that individual log. This lets us still turn on logging everywhere in one command, but also lets us use more descriptive tags (like the class name). And since we no longer have three com.android.mail.utils.LogTag classes, builds will be much easier. Also, we now use LogUtils everywhere. Change-Id: I55f1c7a66ce50ead54877a13e40256422a56dc39 --- AndroidManifest.xml | 1 + emailcommon/Android.mk | 1 + .../src/com/android/emailcommon/Device.java | 12 ++- .../src/com/android/emailcommon/Logging.java | 4 +- .../emailcommon/VendorPolicyLoader.java | 11 ++- .../emailcommon/provider/EmailContent.java | 8 +- .../android/emailcommon/provider/Mailbox.java | 6 +- .../provider/MailboxUtilities.java | 7 +- .../service/EmailServiceCallback.java | 5 +- .../service/EmailServiceProxy.java | 7 +- .../service/PolicyServiceProxy.java | 9 +- .../emailcommon/service/ServiceProxy.java | 17 ++-- .../utility/AttachmentUtilities.java | 7 +- .../utility/EmailClientConnectionManager.java | 5 +- .../utility/LoggingInputStream.java | 9 +- .../android/emailcommon/utility/SSLUtils.java | 18 ++-- .../android/emailcommon/utility/Utility.java | 10 +- .../emailsync/AbstractSyncService.java | 12 +-- .../emailsync/EmailSyncAlarmReceiver.java | 6 +- .../com/android/emailsync/SyncManager.java | 24 ++--- .../EmailApplication.java} | 23 ++--- .../email/EmailConnectivityManager.java | 6 +- src/com/android/email/LegacyConversions.java | 16 +-- src/com/android/email/Preferences.java | 18 ++-- src/com/android/email/SecurityPolicy.java | 33 ++++--- src/com/android/email/StopWatch.java | 9 +- .../email/activity/ContactStatusLoader.java | 4 +- .../setup/AccountCheckSettingsFragment.java | 10 +- .../email/activity/setup/AccountSecurity.java | 30 +++--- .../email/activity/setup/AccountSettings.java | 8 +- ...untSettingsEditQuickResponsesFragment.java | 6 +- .../setup/AccountSettingsFragment.java | 18 ++-- .../activity/setup/AccountSettingsUtils.java | 9 +- .../activity/setup/AccountSetupActivity.java | 5 +- .../activity/setup/AccountSetupBasics.java | 8 +- .../setup/AccountSetupIncomingFragment.java | 26 ++--- .../activity/setup/AccountSetupOptions.java | 15 +-- .../setup/AccountSetupOutgoingFragment.java | 28 +++--- .../email/activity/setup/DebugFragment.java | 6 +- .../email/activity/setup/MailboxSettings.java | 10 +- src/com/android/email/mail/Sender.java | 4 +- src/com/android/email/mail/Store.java | 5 +- .../email/mail/store/ImapConnection.java | 16 +-- .../android/email/mail/store/ImapFolder.java | 12 +-- .../android/email/mail/store/ImapStore.java | 5 +- .../android/email/mail/store/Pop3Store.java | 19 ++-- .../mail/store/imap/ImapMemoryLiteral.java | 5 +- .../mail/store/imap/ImapResponseParser.java | 10 +- .../email/mail/store/imap/ImapString.java | 5 +- .../mail/store/imap/ImapTempFileLiteral.java | 9 +- .../email/mail/store/imap/ImapUtility.java | 7 +- .../email/mail/transport/DiscourseLogger.java | 7 +- .../email/mail/transport/MailTransport.java | 22 ++--- .../email/mail/transport/SmtpSender.java | 10 +- .../mail/transport/StatusOutputStream.java | 7 +- .../email/provider/AccountReconciler.java | 16 +-- .../email/provider/AttachmentProvider.java | 14 +-- .../android/email/provider/ContentCache.java | 30 +++--- src/com/android/email/provider/DBHelper.java | 97 +++++++++---------- .../android/email/provider/EmailProvider.java | 63 ++++++------ .../email/provider/FolderPickerActivity.java | 14 ++- src/com/android/email/provider/Utilities.java | 8 +- .../service/AttachmentDownloadService.java | 40 ++++---- .../EmailBroadcastProcessorService.java | 10 +- .../email/service/EmailServiceStub.java | 8 +- .../email/service/EmailServiceUtils.java | 49 +++++----- .../android/email/service/ImapService.java | 37 ++++--- .../email/service/ImapTempFileLiteral.java | 9 +- .../android/email/service/MailService.java | 4 +- .../android/email/service/Pop3Service.java | 14 +-- .../service/PopImapSyncAdapterService.java | 10 +- .../android/email2/ui/MailActivityEmail.java | 10 +- .../com/android/email/RefreshManagerTest.java | 7 +- tests/src/com/android/email/TestUtils.java | 3 +- .../email/activity/MessageComposeTests.java | 1 - .../email/mail/transport/MockTransport.java | 8 +- .../com/android/emailcommon/DeviceTests.java | 3 +- 77 files changed, 533 insertions(+), 532 deletions(-) rename src/com/android/{mail/utils/LogTag.java => email/EmailApplication.java} (59%) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index e7d8d1f83..42e606b55 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -67,6 +67,7 @@ android:name="com.android.email.permission.ACCESS_PROVIDER"/> clazz) { String name = clazz.getName(); - Log.d(Logging.LOG_TAG, String.format("Using policy: package=%s name=%s", + LogUtils.d(Logging.LOG_TAG, String.format("Using policy: package=%s name=%s", apkPackageName, name)); sInstance = new VendorPolicyLoader(context, apkPackageName, name, true); } @@ -117,10 +118,10 @@ public class VendorPolicyLoader { // Package not found -- it's okay - there's no policy .apk found, which is OK } catch (ClassNotFoundException e) { // Class not found -- probably not OK, but let's not crash here - Log.w(Logging.LOG_TAG, "VendorPolicyLoader: " + e); + LogUtils.w(Logging.LOG_TAG, "VendorPolicyLoader: " + e); } catch (NoSuchMethodException e) { // Method not found -- probably not OK, but let's not crash here - Log.w(Logging.LOG_TAG, "VendorPolicyLoader: " + e); + LogUtils.w(Logging.LOG_TAG, "VendorPolicyLoader: " + e); } mPolicyMethod = method; } @@ -147,7 +148,7 @@ public class VendorPolicyLoader { try { ret = (Bundle) mPolicyMethod.invoke(null, policy, args); } catch (Exception e) { - Log.w(Logging.LOG_TAG, "VendorPolicyLoader", e); + LogUtils.w(Logging.LOG_TAG, "VendorPolicyLoader", e); } } return (ret != null) ? ret : Bundle.EMPTY; diff --git a/emailcommon/src/com/android/emailcommon/provider/EmailContent.java b/emailcommon/src/com/android/emailcommon/provider/EmailContent.java index f2fe77fdd..67da5cff6 100755 --- a/emailcommon/src/com/android/emailcommon/provider/EmailContent.java +++ b/emailcommon/src/com/android/emailcommon/provider/EmailContent.java @@ -29,11 +29,11 @@ import android.os.Environment; import android.os.Parcel; import android.os.Parcelable; import android.os.RemoteException; -import android.util.Log; import com.android.emailcommon.utility.TextUtilities; import com.android.emailcommon.utility.Utility; import com.android.mail.providers.UIProvider; +import com.android.mail.utils.LogUtils; import com.google.common.annotations.VisibleForTesting; import java.io.File; @@ -139,7 +139,7 @@ public abstract class EmailContent { EMAIL_PACKAGE_NAME = PACKAGE_NAME.substring(0, lastDot + 1) + "email"; } AUTHORITY = EMAIL_PACKAGE_NAME + ".provider"; - Log.d("EmailContent", "init for " + AUTHORITY); + LogUtils.d("EmailContent", "init for " + AUTHORITY); NOTIFIER_AUTHORITY = EMAIL_PACKAGE_NAME + ".notifier"; CONTENT_URI = Uri.parse("content://" + AUTHORITY); CONTENT_NOTIFIER_URI = Uri.parse("content://" + NOTIFIER_AUTHORITY); @@ -988,7 +988,7 @@ public abstract class EmailContent { u = results[resultIndex].uri; } else { // We didn't find the expected attachment, log this error - Log.e(LOG_TAG, "Invalid index into ContentProviderResults: " + + LogUtils.e(LOG_TAG, "Invalid index into ContentProviderResults: " + resultIndex); u = null; } @@ -1331,7 +1331,7 @@ public abstract class EmailContent { // Create a proper uri string using the actual provider return ATTACHMENT_PROVIDER_URI_PREFIX + "/" + mContentUri.substring(prefix); } else { - Log.e("Attachment", "Improper contentUri format: " + mContentUri); + LogUtils.e("Attachment", "Improper contentUri format: " + mContentUri); // Belt & suspenders; can't really happen return mContentUri; } diff --git a/emailcommon/src/com/android/emailcommon/provider/Mailbox.java b/emailcommon/src/com/android/emailcommon/provider/Mailbox.java index e3b327c56..0bacbf3e5 100644 --- a/emailcommon/src/com/android/emailcommon/provider/Mailbox.java +++ b/emailcommon/src/com/android/emailcommon/provider/Mailbox.java @@ -24,12 +24,12 @@ import android.database.Cursor; import android.net.Uri; import android.os.Parcel; import android.os.Parcelable; -import android.util.Log; import com.android.emailcommon.Logging; import com.android.emailcommon.R; import com.android.emailcommon.provider.EmailContent.MailboxColumns; import com.android.emailcommon.utility.Utility; +import com.android.mail.utils.LogUtils; public class Mailbox extends EmailContent implements MailboxColumns, Parcelable { /** @@ -336,10 +336,10 @@ public class Mailbox extends EmailContent implements MailboxColumns, Parcelable if (c.moveToFirst()) { mailbox = getContent(c, Mailbox.class); if (c.moveToNext()) { - Log.w(Logging.LOG_TAG, "Multiple mailboxes named \"" + path + "\""); + LogUtils.w(Logging.LOG_TAG, "Multiple mailboxes named \"" + path + "\""); } } else { - Log.i(Logging.LOG_TAG, "Could not find mailbox at \"" + path + "\""); + LogUtils.i(Logging.LOG_TAG, "Could not find mailbox at \"" + path + "\""); } return mailbox; } finally { diff --git a/emailcommon/src/com/android/emailcommon/provider/MailboxUtilities.java b/emailcommon/src/com/android/emailcommon/provider/MailboxUtilities.java index adba81402..4cb2ba13e 100644 --- a/emailcommon/src/com/android/emailcommon/provider/MailboxUtilities.java +++ b/emailcommon/src/com/android/emailcommon/provider/MailboxUtilities.java @@ -21,14 +21,13 @@ import android.content.ContentUris; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; -import android.os.Debug; import android.text.TextUtils; -import android.util.Log; import com.android.emailcommon.Logging; import com.android.emailcommon.provider.Account; import com.android.emailcommon.provider.EmailContent.MailboxColumns; import com.android.emailcommon.provider.Mailbox; +import com.android.mail.utils.LogUtils; import java.util.HashMap; @@ -88,7 +87,7 @@ public class MailboxUtilities { } else { // Mark this is having no parent, so that we don't examine this mailbox again parentValues.put(Mailbox.PARENT_KEY, Mailbox.NO_MAILBOX); - Log.w(Logging.LOG_TAG, "Mailbox with null serverId: " + + LogUtils.w(Logging.LOG_TAG, "Mailbox with null serverId: " + parentCursor.getString(Mailbox.CONTENT_DISPLAY_NAME_COLUMN) + ", type: " + parentType); } @@ -199,7 +198,7 @@ public class MailboxUtilities { Account account = Account.restoreAccountWithId(context, accountId); if (account == null) return; if ((account.mFlags & ACCOUNT_MAILBOX_CHANGE_FLAG) != 0) { - Log.w(Logging.LOG_TAG, "Account " + account.mDisplayName + + LogUtils.w(Logging.LOG_TAG, "Account " + account.mDisplayName + " has inconsistent mailbox data; fixing up..."); // Set all account mailboxes to uninitialized parent key ContentValues values = new ContentValues(); diff --git a/emailcommon/src/com/android/emailcommon/service/EmailServiceCallback.java b/emailcommon/src/com/android/emailcommon/service/EmailServiceCallback.java index e00e5a6ca..97c1e49c8 100644 --- a/emailcommon/src/com/android/emailcommon/service/EmailServiceCallback.java +++ b/emailcommon/src/com/android/emailcommon/service/EmailServiceCallback.java @@ -17,9 +17,9 @@ package com.android.emailcommon.service; import android.os.RemoteCallbackList; import android.os.RemoteException; -import android.util.Log; import com.android.emailcommon.service.IEmailServiceCallback.Stub; +import com.android.mail.utils.LogUtils; public class EmailServiceCallback extends Stub { @@ -47,7 +47,8 @@ public class EmailServiceCallback extends Stub { } catch (RuntimeException e) { // We don't want an exception in one call to prevent other calls, so // we'll just log this and continue - Log.e("EmailServiceCallback", "Caught RuntimeException in broadcast", e); + LogUtils.e("EmailServiceCallback", "Caught RuntimeException in broadcast", + e); } } } finally { diff --git a/emailcommon/src/com/android/emailcommon/service/EmailServiceProxy.java b/emailcommon/src/com/android/emailcommon/service/EmailServiceProxy.java index 32e5dcfe2..7e5eb8b96 100644 --- a/emailcommon/src/com/android/emailcommon/service/EmailServiceProxy.java +++ b/emailcommon/src/com/android/emailcommon/service/EmailServiceProxy.java @@ -21,7 +21,6 @@ import android.content.Intent; import android.os.Bundle; import android.os.IBinder; import android.os.RemoteException; -import android.util.Log; import com.android.emailcommon.Api; import com.android.emailcommon.Device; @@ -30,6 +29,7 @@ import com.android.emailcommon.mail.MessagingException; import com.android.emailcommon.provider.Account; import com.android.emailcommon.provider.HostAuth; import com.android.emailcommon.provider.Policy; +import com.android.mail.utils.LogUtils; import java.io.IOException; @@ -221,7 +221,7 @@ public class EmailServiceProxy extends ServiceProxy implements IEmailService { } else { Bundle bundle = (Bundle) mReturn; bundle.setClassLoader(Policy.class.getClassLoader()); - Log.v(TAG, "validate returns " + bundle.getInt(VALIDATE_BUNDLE_RESULT_CODE)); + LogUtils.v(TAG, "validate returns " + bundle.getInt(VALIDATE_BUNDLE_RESULT_CODE)); return bundle; } } @@ -252,7 +252,8 @@ public class EmailServiceProxy extends ServiceProxy implements IEmailService { } else { Bundle bundle = (Bundle) mReturn; bundle.setClassLoader(HostAuth.class.getClassLoader()); - Log.v(TAG, "autoDiscover returns " + bundle.getInt(AUTO_DISCOVER_BUNDLE_ERROR_CODE)); + LogUtils.v(TAG, "autoDiscover returns " + + bundle.getInt(AUTO_DISCOVER_BUNDLE_ERROR_CODE)); return bundle; } } diff --git a/emailcommon/src/com/android/emailcommon/service/PolicyServiceProxy.java b/emailcommon/src/com/android/emailcommon/service/PolicyServiceProxy.java index 78a354329..e33d02c91 100755 --- a/emailcommon/src/com/android/emailcommon/service/PolicyServiceProxy.java +++ b/emailcommon/src/com/android/emailcommon/service/PolicyServiceProxy.java @@ -19,10 +19,10 @@ package com.android.emailcommon.service; import android.content.Context; import android.os.IBinder; import android.os.RemoteException; -import android.util.Log; import com.android.emailcommon.provider.Account; import com.android.emailcommon.provider.Policy; +import com.android.mail.utils.LogUtils; public class PolicyServiceProxy extends ServiceProxy implements IPolicyService { private static final boolean DEBUG_PROXY = false; // DO NOT CHECK THIS IN SET TO TRUE @@ -40,6 +40,7 @@ public class PolicyServiceProxy extends ServiceProxy implements IPolicyService { mService = IPolicyService.Stub.asInterface(binder); } + @Override public IBinder asBinder() { return null; } @@ -47,13 +48,14 @@ public class PolicyServiceProxy extends ServiceProxy implements IPolicyService { @Override public boolean isActive(final Policy arg0) throws RemoteException { setTask(new ProxyTask() { + @Override public void run() throws RemoteException { mReturn = mService.isActive(arg0); } }, "isActive"); waitForCompletion(); if (DEBUG_PROXY) { - Log.v(TAG, "isActive: " + ((mReturn == null) ? "null" : mReturn)); + LogUtils.v(TAG, "isActive: " + ((mReturn == null) ? "null" : mReturn)); } if (mReturn == null) { throw new ServiceUnavailableException("isActive"); @@ -66,6 +68,7 @@ public class PolicyServiceProxy extends ServiceProxy implements IPolicyService { public void setAccountPolicy(final long accountId, final Policy policy, final String securityKey) throws RemoteException { setTask(new ProxyTask() { + @Override public void run() throws RemoteException { mService.setAccountPolicy(accountId, policy, securityKey); } @@ -76,6 +79,7 @@ public class PolicyServiceProxy extends ServiceProxy implements IPolicyService { @Override public void remoteWipe() throws RemoteException { setTask(new ProxyTask() { + @Override public void run() throws RemoteException { mService.remoteWipe(); } @@ -85,6 +89,7 @@ public class PolicyServiceProxy extends ServiceProxy implements IPolicyService { @Override public void setAccountHoldFlag(final long arg0, final boolean arg1) throws RemoteException { setTask(new ProxyTask() { + @Override public void run() throws RemoteException { mService.setAccountHoldFlag(arg0, arg1); } diff --git a/emailcommon/src/com/android/emailcommon/service/ServiceProxy.java b/emailcommon/src/com/android/emailcommon/service/ServiceProxy.java index 7e4e378a8..8e2e751fc 100644 --- a/emailcommon/src/com/android/emailcommon/service/ServiceProxy.java +++ b/emailcommon/src/com/android/emailcommon/service/ServiceProxy.java @@ -26,7 +26,8 @@ import android.os.Debug; import android.os.IBinder; import android.os.Looper; import android.os.RemoteException; -import android.util.Log; + +import com.android.mail.utils.LogUtils; /** * ServiceProxy is a superclass for proxy objects which make a single call to a service. It handles @@ -96,7 +97,7 @@ public abstract class ServiceProxy { @Override public void onServiceConnected(ComponentName name, IBinder binder) { if (DEBUG_PROXY) { - Log.v(mTag, "Connected: " + name.getShortClassName() + " at " + + LogUtils.v(mTag, "Connected: " + name.getShortClassName() + " at " + (System.currentTimeMillis() - mStartTime) + "ms"); } @@ -122,7 +123,7 @@ public abstract class ServiceProxy { mTaskCompleted = true; synchronized(mConnection) { if (DEBUG_PROXY) { - Log.v(mTag, "Task " + mName + " completed; disconnecting"); + LogUtils.v(mTag, "Task " + mName + " completed; disconnecting"); } mConnection.notify(); } @@ -134,7 +135,7 @@ public abstract class ServiceProxy { @Override public void onServiceDisconnected(ComponentName name) { if (DEBUG_PROXY) { - Log.v(mTag, "Disconnected: " + name.getShortClassName() + " at " + + LogUtils.v(mTag, "Disconnected: " + name.getShortClassName() + " at " + (System.currentTimeMillis() - mStartTime) + "ms"); } } @@ -162,7 +163,7 @@ public abstract class ServiceProxy { mTask = task; mStartTime = System.currentTimeMillis(); if (DEBUG_PROXY) { - Log.v(mTag, "Bind requested for task " + mName); + LogUtils.v(mTag, "Bind requested for task " + mName); } return mContext.bindService(mIntent, mConnection, Context.BIND_AUTO_CREATE); } @@ -187,14 +188,14 @@ public abstract class ServiceProxy { long time = System.currentTimeMillis(); try { if (DEBUG_PROXY) { - Log.v(mTag, "Waiting for task " + mName + " to complete..."); + LogUtils.v(mTag, "Waiting for task " + mName + " to complete..."); } mConnection.wait(mTimeout * 1000L); } catch (InterruptedException e) { // Can be ignored safely } if (DEBUG_PROXY) { - Log.v(mTag, "Wait for " + mName + + LogUtils.v(mTag, "Wait for " + mName + (mTaskCompleted ? " finished in " : " timed out in ") + (System.currentTimeMillis() - time) + "ms"); } @@ -211,7 +212,7 @@ public abstract class ServiceProxy { @Override public void run() throws RemoteException { if (DEBUG_PROXY) { - Log.v(mTag, "Connection test succeeded in " + + LogUtils.v(mTag, "Connection test succeeded in " + (System.currentTimeMillis() - mStartTime) + "ms"); } } diff --git a/emailcommon/src/com/android/emailcommon/utility/AttachmentUtilities.java b/emailcommon/src/com/android/emailcommon/utility/AttachmentUtilities.java index bc53d50a4..2f807d737 100644 --- a/emailcommon/src/com/android/emailcommon/utility/AttachmentUtilities.java +++ b/emailcommon/src/com/android/emailcommon/utility/AttachmentUtilities.java @@ -26,7 +26,6 @@ import android.media.MediaScannerConnection; import android.net.Uri; import android.os.Environment; import android.text.TextUtils; -import android.util.Log; import android.webkit.MimeTypeMap; import com.android.emailcommon.Logging; @@ -37,6 +36,7 @@ import com.android.emailcommon.provider.EmailContent.BodyColumns; import com.android.emailcommon.provider.EmailContent.Message; import com.android.emailcommon.provider.EmailContent.MessageColumns; import com.android.mail.providers.UIProvider; +import com.android.mail.utils.LogUtils; import org.apache.commons.io.IOUtils; @@ -365,7 +365,7 @@ public class AttachmentUtilities { for (File file : files) { boolean result = file.delete(); if (!result) { - Log.e(Logging.LOG_TAG, "Failed to delete attachment file " + file.getName()); + LogUtils.e(Logging.LOG_TAG, "Failed to delete attachment file " + file.getName()); } } } @@ -418,7 +418,8 @@ public class AttachmentUtilities { contentUri = dm.getUriForDownloadedFile(id).toString(); } else { - Log.w(Logging.LOG_TAG, "Trying to save an attachment without external storage?"); + LogUtils.w(Logging.LOG_TAG, + "Trying to save an attachment without external storage?"); throw new IOException(); } diff --git a/emailcommon/src/com/android/emailcommon/utility/EmailClientConnectionManager.java b/emailcommon/src/com/android/emailcommon/utility/EmailClientConnectionManager.java index 868150714..a275a12fd 100644 --- a/emailcommon/src/com/android/emailcommon/utility/EmailClientConnectionManager.java +++ b/emailcommon/src/com/android/emailcommon/utility/EmailClientConnectionManager.java @@ -18,13 +18,12 @@ package com.android.emailcommon.utility; import android.content.Context; -import android.net.SSLCertificateSocketFactory; -import android.util.Log; import com.android.emailcommon.Logging; import com.android.emailcommon.provider.HostAuth; import com.android.emailcommon.utility.SSLUtils.KeyChainKeyManager; import com.android.emailcommon.utility.SSLUtils.TrackingKeyManager; +import com.android.mail.utils.LogUtils; import org.apache.http.conn.scheme.PlainSocketFactory; import org.apache.http.conn.scheme.Scheme; @@ -97,7 +96,7 @@ public class EmailClientConnectionManager extends ThreadSafeClientConnManager { Scheme existing = registry.get(schemeName); if (existing == null) { if (LOG_ENABLED) { - Log.i(Logging.LOG_TAG, "Registering socket factory for certificate alias [" + LogUtils.i(Logging.LOG_TAG, "Registering socket factory for certificate alias [" + hostAuth.mClientCertAlias + "]"); } KeyManager keyManager = diff --git a/emailcommon/src/com/android/emailcommon/utility/LoggingInputStream.java b/emailcommon/src/com/android/emailcommon/utility/LoggingInputStream.java index 212efa183..cae87d14a 100644 --- a/emailcommon/src/com/android/emailcommon/utility/LoggingInputStream.java +++ b/emailcommon/src/com/android/emailcommon/utility/LoggingInputStream.java @@ -17,8 +17,7 @@ package com.android.emailcommon.utility; import com.android.emailcommon.Logging; - -import android.util.Log; +import com.android.mail.utils.LogUtils; import java.io.FilterInputStream; import java.io.IOException; @@ -27,7 +26,7 @@ import java.io.InputStream; /** * Simple class used for debugging only that affords us a view of the raw IMAP or POP3 stream, * in addition to the tokenized version. - * + * * Use of this class *MUST* be restricted to logging-enabled situations only. */ public class LoggingInputStream extends FilterInputStream { @@ -44,7 +43,7 @@ public class LoggingInputStream extends FilterInputStream { mTag = tag + " "; mDumpEmptyLines = dumpEmptyLines; initBuffer(); - Log.d(Logging.LOG_TAG, mTag + "dump start"); + LogUtils.d(Logging.LOG_TAG, mTag + "dump start"); } private void initBuffer() { @@ -96,7 +95,7 @@ public class LoggingInputStream extends FilterInputStream { private void flushLog() { if (mDumpEmptyLines || (mSb.length() > mTag.length())) { - Log.d(Logging.LOG_TAG, mSb.toString()); + LogUtils.d(Logging.LOG_TAG, mSb.toString()); initBuffer(); } } diff --git a/emailcommon/src/com/android/emailcommon/utility/SSLUtils.java b/emailcommon/src/com/android/emailcommon/utility/SSLUtils.java index a85049072..b8538e988 100644 --- a/emailcommon/src/com/android/emailcommon/utility/SSLUtils.java +++ b/emailcommon/src/com/android/emailcommon/utility/SSLUtils.java @@ -23,10 +23,10 @@ import android.database.Cursor; import android.net.SSLCertificateSocketFactory; import android.security.KeyChain; import android.security.KeyChainException; -import android.util.Log; import com.android.emailcommon.provider.EmailContent.HostAuthColumns; import com.android.emailcommon.provider.HostAuth; +import com.android.mail.utils.LogUtils; import com.google.common.annotations.VisibleForTesting; import java.io.ByteArrayInputStream; @@ -246,7 +246,7 @@ public class SSLUtils { public String chooseClientAlias(String[] keyTypes, Principal[] issuers, Socket socket) { if (LOG_ENABLED) { InetAddress address = socket.getInetAddress(); - Log.i(TAG, "TrackingKeyManager: requesting a client cert alias for " + LogUtils.i(TAG, "TrackingKeyManager: requesting a client cert alias for " + address.getCanonicalHostName()); } mLastTimeCertRequested = System.currentTimeMillis(); @@ -256,7 +256,7 @@ public class SSLUtils { @Override public X509Certificate[] getCertificateChain(String alias) { if (LOG_ENABLED) { - Log.i(TAG, "TrackingKeyManager: returning a null cert chain"); + LogUtils.i(TAG, "TrackingKeyManager: returning a null cert chain"); } return null; } @@ -264,7 +264,7 @@ public class SSLUtils { @Override public PrivateKey getPrivateKey(String alias) { if (LOG_ENABLED) { - Log.i(TAG, "TrackingKeyManager: returning a null private key"); + LogUtils.i(TAG, "TrackingKeyManager: returning a null private key"); } return null; } @@ -325,9 +325,9 @@ public class SSLUtils { private static void logError(String alias, String type, Exception ex) { // Avoid logging PII when explicit logging is not on. if (LOG_ENABLED) { - Log.e(TAG, "Unable to retrieve " + type + " for [" + alias + "] due to " + ex); + LogUtils.e(TAG, "Unable to retrieve " + type + " for [" + alias + "] due to " + ex); } else { - Log.e(TAG, "Unable to retrieve " + type + " due to " + ex); + LogUtils.e(TAG, "Unable to retrieve " + type + " due to " + ex); } } @@ -342,7 +342,7 @@ public class SSLUtils { @Override public String chooseClientAlias(String[] keyTypes, Principal[] issuers, Socket socket) { if (LOG_ENABLED) { - Log.i(TAG, "Requesting a client cert alias for " + Arrays.toString(keyTypes)); + LogUtils.i(TAG, "Requesting a client cert alias for " + Arrays.toString(keyTypes)); } return mClientAlias; } @@ -350,7 +350,7 @@ public class SSLUtils { @Override public X509Certificate[] getCertificateChain(String alias) { if (LOG_ENABLED) { - Log.i(TAG, "Requesting a client certificate chain for alias [" + alias + "]"); + LogUtils.i(TAG, "Requesting a client certificate chain for alias [" + alias + "]"); } return mCertificateChain; } @@ -358,7 +358,7 @@ public class SSLUtils { @Override public PrivateKey getPrivateKey(String alias) { if (LOG_ENABLED) { - Log.i(TAG, "Requesting a client private key for alias [" + alias + "]"); + LogUtils.i(TAG, "Requesting a client private key for alias [" + alias + "]"); } return mPrivateKey; } diff --git a/emailcommon/src/com/android/emailcommon/utility/Utility.java b/emailcommon/src/com/android/emailcommon/utility/Utility.java index b0f019ccf..c7852934f 100644 --- a/emailcommon/src/com/android/emailcommon/utility/Utility.java +++ b/emailcommon/src/com/android/emailcommon/utility/Utility.java @@ -38,7 +38,6 @@ import android.text.SpannableStringBuilder; import android.text.TextUtils; import android.text.style.StyleSpan; import android.util.Base64; -import android.util.Log; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; @@ -58,7 +57,6 @@ import com.android.mail.utils.LogUtils; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileDescriptor; -import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; @@ -755,7 +753,7 @@ public class Utility { return false; } } catch (RuntimeException re) { - Log.w(Logging.LOG_TAG, "attachmentExists RuntimeException=" + re); + LogUtils.w(Logging.LOG_TAG, "attachmentExists RuntimeException=" + re); return false; } } @@ -781,7 +779,7 @@ public class Utility { // alternative. In theory, this situation shouldn't be possible. if ((att.mFlags & (Attachment.FLAG_DOWNLOAD_FORWARD | Attachment.FLAG_DOWNLOAD_USER_REQUEST)) == 0) { - Log.d(Logging.LOG_TAG, "Unloaded attachment isn't marked for download: " + + LogUtils.d(Logging.LOG_TAG, "Unloaded attachment isn't marked for download: " + att.mFileName + ", #" + att.mId); Account acct = Account.restoreAccountWithId(context, msg.mAccountKey); if (acct == null) return true; @@ -1027,10 +1025,10 @@ public class Utility { return; } if (c.isClosed()) { - Log.w(Logging.LOG_TAG, "Cursor was closed here: Cursor=" + c, + LogUtils.w(Logging.LOG_TAG, "Cursor was closed here: Cursor=" + c, getTraceIfAvailable(c)); } else { - Log.w(Logging.LOG_TAG, "Cursor not closed. Cursor=" + c); + LogUtils.w(Logging.LOG_TAG, "Cursor not closed. Cursor=" + c); } } diff --git a/emailsync/src/com/android/emailsync/AbstractSyncService.java b/emailsync/src/com/android/emailsync/AbstractSyncService.java index 45765545c..002e20e97 100644 --- a/emailsync/src/com/android/emailsync/AbstractSyncService.java +++ b/emailsync/src/com/android/emailsync/AbstractSyncService.java @@ -22,11 +22,11 @@ import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Bundle; import android.text.format.DateUtils; -import android.util.Log; import com.android.emailcommon.provider.Account; import com.android.emailcommon.provider.HostAuth; import com.android.emailcommon.provider.Mailbox; +import com.android.mail.utils.LogUtils; import java.util.concurrent.LinkedBlockingQueue; @@ -205,9 +205,9 @@ public abstract class AbstractSyncService implements Runnable { public void userLog(String str, Exception e) { if (mUserLog) { - Log.e(TAG, str, e); + LogUtils.e(TAG, str, e); } else { - Log.e(TAG, str + e); + LogUtils.e(TAG, str + e); } if (mFileLog) { FileLogger.log(e); @@ -216,7 +216,7 @@ public abstract class AbstractSyncService implements Runnable { /** * Standard logging for EAS. - * If user logging is active, we concatenate any arguments and log them using Log.d + * If user logging is active, we concatenate any arguments and log them using LogUtils.d * We also check for file logging, and log appropriately * @param strings strings to concatenate and log */ @@ -232,7 +232,7 @@ public abstract class AbstractSyncService implements Runnable { } logText = sb.toString(); } - Log.d(TAG, logText); + LogUtils.d(TAG, logText); if (mFileLog) { FileLogger.log(TAG, logText); } @@ -244,7 +244,7 @@ public abstract class AbstractSyncService implements Runnable { * @param str the string to log */ public void errorLog(String str) { - Log.e(TAG, str); + LogUtils.e(TAG, str); if (mFileLog) { FileLogger.log(TAG, str); } diff --git a/emailsync/src/com/android/emailsync/EmailSyncAlarmReceiver.java b/emailsync/src/com/android/emailsync/EmailSyncAlarmReceiver.java index 8ac0f0633..a52c7e53a 100644 --- a/emailsync/src/com/android/emailsync/EmailSyncAlarmReceiver.java +++ b/emailsync/src/com/android/emailsync/EmailSyncAlarmReceiver.java @@ -22,11 +22,11 @@ import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.database.Cursor; -import android.util.Log; import com.android.emailcommon.provider.EmailContent.Message; import com.android.emailcommon.provider.EmailContent.MessageColumns; import com.android.emailcommon.provider.ProviderUnavailableException; +import com.android.mail.utils.LogUtils; import java.util.ArrayList; @@ -54,6 +54,7 @@ public class EmailSyncAlarmReceiver extends BroadcastReceiver { @Override public void onReceive(final Context context, Intent intent) { new Thread(new Runnable() { + @Override public void run() { handleReceive(context); } @@ -105,7 +106,8 @@ public class EmailSyncAlarmReceiver extends BroadcastReceiver { SyncManager.serviceRequest(mailboxId, SyncManager.SYNC_UPSYNC); } } catch (ProviderUnavailableException e) { - Log.e("EmailSyncAlarmReceiver", "EmailProvider unavailable; aborting alarm receiver"); + LogUtils.e("EmailSyncAlarmReceiver", + "EmailProvider unavailable; aborting alarm receiver"); } } } diff --git a/emailsync/src/com/android/emailsync/SyncManager.java b/emailsync/src/com/android/emailsync/SyncManager.java index 390381abc..e1f1fea2c 100644 --- a/emailsync/src/com/android/emailsync/SyncManager.java +++ b/emailsync/src/com/android/emailsync/SyncManager.java @@ -43,7 +43,6 @@ import android.provider.CalendarContract; import android.provider.CalendarContract.Calendars; import android.provider.CalendarContract.Events; import android.provider.ContactsContract; -import android.util.Log; import com.android.emailcommon.TempDirectory; import com.android.emailcommon.provider.Account; @@ -63,9 +62,9 @@ import com.android.emailcommon.service.EmailServiceProxy; import com.android.emailcommon.service.EmailServiceStatus; import com.android.emailcommon.service.IEmailServiceCallback.Stub; import com.android.emailcommon.service.PolicyServiceProxy; -import com.android.emailcommon.utility.EmailAsyncTask; import com.android.emailcommon.utility.EmailClientConnectionManager; import com.android.emailcommon.utility.Utility; +import com.android.mail.utils.LogUtils; import org.apache.http.conn.params.ConnManagerPNames; import org.apache.http.conn.params.ConnPerRoute; @@ -74,7 +73,6 @@ import org.apache.http.params.BasicHttpParams; import org.apache.http.params.HttpParams; import java.io.FileDescriptor; -import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashMap; @@ -339,10 +337,11 @@ public abstract class SyncManager extends Service implements Runnable { if (sFileLog) { sUserLog = true; } - Log.d("Sync Debug", "Logging: " + (sUserLog ? "User " : "") + (sFileLog ? "File" : "")); + LogUtils.d("Sync Debug", "Logging: " + (sUserLog ? "User " : "") + + (sFileLog ? "File" : "")); } - private boolean onSecurityHold(Account account) { + private static boolean onSecurityHold(Account account) { return (account.mFlags & Account.FLAGS_SECURITY_HOLD) != 0; } @@ -688,7 +687,7 @@ public abstract class SyncManager extends Service implements Runnable { c.close(); } } catch (ProviderUnavailableException e) { - Log.w(TAG, "Observer failed; provider unavailable"); + LogUtils.w(TAG, "Observer failed; provider unavailable"); } }}, "Calendar Observer").start(); } @@ -850,7 +849,7 @@ public abstract class SyncManager extends Service implements Runnable { public static void log(String tag, String str) { if (sUserLog) { - Log.d(tag, str); + LogUtils.d(tag, str); if (sFileLog) { FileLogger.log(tag, str); } @@ -859,7 +858,7 @@ public abstract class SyncManager extends Service implements Runnable { public static void alwaysLog(String str) { if (!sUserLog) { - Log.d(TAG, str); + LogUtils.d(TAG, str); } else { log(str); } @@ -1142,7 +1141,8 @@ public abstract class SyncManager extends Service implements Runnable { // We ignore drafts completely (doesn't sync). Changes in Outbox are // handled in the checkMailboxes loop, so we can ignore these pings. if (sUserLog) { - Log.d(TAG, "Alert for mailbox " + id + " (" + m.mDisplayName + ")"); + LogUtils.d(TAG, "Alert for mailbox " + id + " (" + + m.mDisplayName + ")"); } if (m.mType == Mailbox.TYPE_DRAFTS || m.mType == Mailbox.TYPE_OUTBOX) { String[] args = new String[] {Long.toString(m.mId)}; @@ -1572,12 +1572,12 @@ public abstract class SyncManager extends Service implements Runnable { // NOTE: Sync adapters will also crash with this error, but that is already handled // in the adapters themselves, i.e. they return cleanly via done(). When the Email // process starts running again, remote processes will be started again in due course - Log.e(TAG, "EmailProvider unavailable; shutting down"); + LogUtils.e(TAG, "EmailProvider unavailable; shutting down"); // Ask for our service to be restarted; this should kick-start the Email process as well startService(new Intent(this, SyncManager.class)); } catch (RuntimeException e) { // Crash; this is a completely unexpected runtime error - Log.e(TAG, "RuntimeException", e); + LogUtils.e(TAG, "RuntimeException", e); throw e; } finally { shutdown(); @@ -1737,7 +1737,7 @@ public abstract class SyncManager extends Service implements Runnable { * @param account the Account in question * @return whether Email sync is enabled */ - private boolean canSyncEmail(android.accounts.Account account) { + private static boolean canSyncEmail(android.accounts.Account account) { return ContentResolver.getSyncAutomatically(account, EmailContent.AUTHORITY); } diff --git a/src/com/android/mail/utils/LogTag.java b/src/com/android/email/EmailApplication.java similarity index 59% rename from src/com/android/mail/utils/LogTag.java rename to src/com/android/email/EmailApplication.java index b0c39879f..3af203df6 100644 --- a/src/com/android/mail/utils/LogTag.java +++ b/src/com/android/email/EmailApplication.java @@ -1,11 +1,11 @@ -/** - * Copyright (c) 2012, Google Inc. +/* + * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -14,15 +14,16 @@ * limitations under the License. */ -package com.android.mail.utils; +package com.android.email; -public class LogTag { - private static String LOG_TAG = "Email"; +import android.app.Application; - /** - * Get the log tag to apply to logging. - */ - public static String getLogTag() { - return LOG_TAG; +import com.android.mail.utils.LogTag; + +public class EmailApplication extends Application { + private static final String LOG_TAG = "Email"; + + static { + LogTag.setLogTag(LOG_TAG); } } diff --git a/src/com/android/email/EmailConnectivityManager.java b/src/com/android/email/EmailConnectivityManager.java index 6746152d1..90c34143c 100644 --- a/src/com/android/email/EmailConnectivityManager.java +++ b/src/com/android/email/EmailConnectivityManager.java @@ -27,9 +27,9 @@ import android.net.NetworkInfo.State; import android.os.Bundle; import android.os.PowerManager; import android.os.PowerManager.WakeLock; -import android.util.Log; import com.android.email2.ui.MailActivityEmail; +import com.android.mail.utils.LogUtils; /** * Encapsulates functionality of ConnectivityManager for use in the Email application. In @@ -182,14 +182,14 @@ public class EmailConnectivityManager extends BroadcastReceiver { // We're done if there's an active network if (waiting) { if (MailActivityEmail.DEBUG) { - Log.d(TAG, mName + ": Connectivity wait ended"); + LogUtils.d(TAG, mName + ": Connectivity wait ended"); } } return; } else { if (!waiting) { if (MailActivityEmail.DEBUG) { - Log.d(TAG, mName + ": Connectivity waiting..."); + LogUtils.d(TAG, mName + ": Connectivity waiting..."); } waiting = true; } diff --git a/src/com/android/email/LegacyConversions.java b/src/com/android/email/LegacyConversions.java index fcff16b53..4a903d84b 100644 --- a/src/com/android/email/LegacyConversions.java +++ b/src/com/android/email/LegacyConversions.java @@ -21,7 +21,6 @@ import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.net.Uri; -import android.util.Log; import com.android.emailcommon.Logging; import com.android.emailcommon.internet.MimeBodyPart; @@ -42,6 +41,7 @@ import com.android.emailcommon.provider.EmailContent.AttachmentColumns; import com.android.emailcommon.provider.Mailbox; import com.android.emailcommon.utility.AttachmentUtilities; import com.android.mail.providers.UIProvider; +import com.android.mail.utils.LogUtils; import org.apache.commons.io.IOUtils; @@ -227,7 +227,7 @@ public class LegacyConversions { localAttachment.mAccountKey = localMessage.mAccountKey; if (DEBUG_ATTACHMENTS) { - Log.d(Logging.LOG_TAG, "Add attachment " + localAttachment); + LogUtils.d(Logging.LOG_TAG, "Add attachment " + localAttachment); } // To prevent duplication - do we already have a matching attachment? @@ -253,7 +253,7 @@ public class LegacyConversions { attachmentFoundInDb = true; localAttachment.mId = dbAttachment.mId; if (DEBUG_ATTACHMENTS) { - Log.d(Logging.LOG_TAG, "Skipped, found db attachment " + dbAttachment); + LogUtils.d(Logging.LOG_TAG, "Skipped, found db attachment " + dbAttachment); } break; } @@ -364,14 +364,14 @@ public class LegacyConversions { addTextBodyPart(mp, "text/html", null, EmailContent.Body.restoreBodyHtmlWithMessageId(context, localMessage.mId)); } catch (RuntimeException rte) { - Log.d(Logging.LOG_TAG, "Exception while reading html body " + rte.toString()); + LogUtils.d(Logging.LOG_TAG, "Exception while reading html body " + rte.toString()); } try { addTextBodyPart(mp, "text/plain", null, EmailContent.Body.restoreBodyTextWithMessageId(context, localMessage.mId)); } catch (RuntimeException rte) { - Log.d(Logging.LOG_TAG, "Exception while reading text body " + rte.toString()); + LogUtils.d(Logging.LOG_TAG, "Exception while reading text body " + rte.toString()); } boolean isReply = (localMessage.mFlags & EmailContent.Message.FLAG_TYPE_REPLY) != 0; @@ -385,7 +385,7 @@ public class LegacyConversions { addTextBodyPart(mp, "text/plain", BODY_QUOTED_PART_INTRO, EmailContent.Body.restoreIntroTextWithMessageId(context, localMessage.mId)); } catch (RuntimeException rte) { - Log.d(Logging.LOG_TAG, "Exception while reading text reply " + rte.toString()); + LogUtils.d(Logging.LOG_TAG, "Exception while reading text reply " + rte.toString()); } String replyTag = isReply ? BODY_QUOTED_PART_REPLY : BODY_QUOTED_PART_FORWARD; @@ -393,14 +393,14 @@ public class LegacyConversions { addTextBodyPart(mp, "text/html", replyTag, EmailContent.Body.restoreReplyHtmlWithMessageId(context, localMessage.mId)); } catch (RuntimeException rte) { - Log.d(Logging.LOG_TAG, "Exception while reading html reply " + rte.toString()); + LogUtils.d(Logging.LOG_TAG, "Exception while reading html reply " + rte.toString()); } try { addTextBodyPart(mp, "text/plain", replyTag, EmailContent.Body.restoreReplyTextWithMessageId(context, localMessage.mId)); } catch (RuntimeException rte) { - Log.d(Logging.LOG_TAG, "Exception while reading text reply " + rte.toString()); + LogUtils.d(Logging.LOG_TAG, "Exception while reading text reply " + rte.toString()); } } diff --git a/src/com/android/email/Preferences.java b/src/com/android/email/Preferences.java index 5bfbddacd..413e596c4 100644 --- a/src/com/android/email/Preferences.java +++ b/src/com/android/email/Preferences.java @@ -19,11 +19,10 @@ package com.android.email; import android.content.Context; import android.content.SharedPreferences; import android.text.TextUtils; -import android.util.Log; import com.android.emailcommon.Logging; import com.android.emailcommon.provider.Account; -import com.android.mail.providers.UIProvider; +import com.android.mail.utils.LogUtils; import org.json.JSONArray; import org.json.JSONException; @@ -273,7 +272,7 @@ public class Preferences { mTrustedSenders = parseEmailSet(mSharedPreferences.getString(TRUSTED_SENDERS, "")); } catch (JSONException e) { // Something went wrong, and the data is corrupt. Just clear it to be safe. - Log.w(Logging.LOG_TAG, "Trusted sender set corrupted. Clearing"); + LogUtils.w(Logging.LOG_TAG, "Trusted sender set corrupted. Clearing"); mSharedPreferences.edit().putString(TRUSTED_SENDERS, "").apply(); mTrustedSenders = new HashSet(); } @@ -348,8 +347,7 @@ public class Preferences { * It should only be shown once per account. */ public boolean getHasShownRequireManualSync(Context context, Account account) { - return getBoolean(context, account.getEmailAddress(), REQUIRE_MANUAL_SYNC_DIALOG_SHOWN, - false); + return getBoolean(account.getEmailAddress(), REQUIRE_MANUAL_SYNC_DIALOG_SHOWN, false); } /** @@ -357,7 +355,7 @@ public class Preferences { * It should only be shown once per account. */ public void setHasShownRequireManualSync(Context context, Account account, boolean value) { - setBoolean(context, account.getEmailAddress(), REQUIRE_MANUAL_SYNC_DIALOG_SHOWN, value); + setBoolean(account.getEmailAddress(), REQUIRE_MANUAL_SYNC_DIALOG_SHOWN, value); } @@ -378,7 +376,7 @@ public class Preferences { public void dump() { if (Logging.LOGD) { for (String key : mSharedPreferences.getAll().keySet()) { - Log.v(Logging.LOG_TAG, key + " = " + mSharedPreferences.getAll().get(key)); + LogUtils.v(Logging.LOG_TAG, key + " = " + mSharedPreferences.getAll().get(key)); } } } @@ -386,21 +384,21 @@ public class Preferences { /** * Utility method for setting a boolean value on a per-account preference. */ - private void setBoolean(Context context, String account, String key, Boolean value) { + private void setBoolean(String account, String key, Boolean value) { mSharedPreferences.edit().putBoolean(makeKey(account, key), value).apply(); } /** * Utility method for getting a boolean value from a per-account preference. */ - private boolean getBoolean(Context context, String account, String key, boolean def) { + private boolean getBoolean(String account, String key, boolean def) { return mSharedPreferences.getBoolean(makeKey(account, key), def); } /** * Utility method for creating a per account preference key. */ - private String makeKey(String account, String key) { + private static String makeKey(String account, String key) { return account != null ? account + "-" + key : key; } } diff --git a/src/com/android/email/SecurityPolicy.java b/src/com/android/email/SecurityPolicy.java index 875eabb4d..60ecbced9 100644 --- a/src/com/android/email/SecurityPolicy.java +++ b/src/com/android/email/SecurityPolicy.java @@ -31,7 +31,6 @@ import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.os.RemoteException; -import android.util.Log; import com.android.email.provider.EmailProvider; import com.android.email.service.EmailBroadcastProcessorService; @@ -45,6 +44,7 @@ import com.android.emailcommon.provider.EmailContent.PolicyColumns; import com.android.emailcommon.provider.Policy; import com.android.emailcommon.utility.TextUtilities; import com.android.emailcommon.utility.Utility; +import com.android.mail.utils.LogUtils; import com.google.common.annotations.VisibleForTesting; import java.util.ArrayList; @@ -140,7 +140,7 @@ public class SecurityPolicy { while (c.moveToNext()) { policy.restore(c); if (MailActivityEmail.DEBUG) { - Log.d(TAG, "Aggregate from: " + policy); + LogUtils.d(TAG, "Aggregate from: " + policy); } aggregate.mPasswordMinLength = Math.max(policy.mPasswordMinLength, aggregate.mPasswordMinLength); @@ -185,12 +185,12 @@ public class SecurityPolicy { if (aggregate.mPasswordComplexChars == Integer.MIN_VALUE) aggregate.mPasswordComplexChars = 0; if (MailActivityEmail.DEBUG) { - Log.d(TAG, "Calculated Aggregate: " + aggregate); + LogUtils.d(TAG, "Calculated Aggregate: " + aggregate); } return aggregate; } if (MailActivityEmail.DEBUG) { - Log.d(TAG, "Calculated Aggregate: no policy"); + LogUtils.d(TAG, "Calculated Aggregate: no policy"); } return Policy.NO_POLICY; } @@ -232,7 +232,7 @@ public class SecurityPolicy { */ public void reducePolicies() { if (MailActivityEmail.DEBUG) { - Log.d(TAG, "reducePolicies"); + LogUtils.d(TAG, "reducePolicies"); } policiesUpdated(); } @@ -268,7 +268,7 @@ public class SecurityPolicy { if ((reasons & INACTIVE_PROTOCOL_POLICIES) != 0) { sb.append("protocol "); } - Log.d(TAG, sb.toString()); + LogUtils.d(TAG, sb.toString()); } return reasons == 0; } @@ -411,12 +411,12 @@ public class SecurityPolicy { // if empty set, detach from policy manager if (aggregatePolicy == Policy.NO_POLICY) { if (MailActivityEmail.DEBUG) { - Log.d(TAG, "setActivePolicies: none, remove admin"); + LogUtils.d(TAG, "setActivePolicies: none, remove admin"); } dpm.removeActiveAdmin(mAdminName); } else if (isActiveAdmin()) { if (MailActivityEmail.DEBUG) { - Log.d(TAG, "setActivePolicies: " + aggregatePolicy); + LogUtils.d(TAG, "setActivePolicies: " + aggregatePolicy); } // set each policy in the policy manager // password mode & length @@ -496,7 +496,7 @@ public class SecurityPolicy { Policy policy = Policy.restorePolicyWithId(mContext, account.mPolicyKey); if (policy == null) return; if (MailActivityEmail.DEBUG) { - Log.d(TAG, "policiesRequired for " + account.mDisplayName + ": " + policy); + LogUtils.d(TAG, "policiesRequired for " + account.mDisplayName + ": " + policy); } // Mark the account as "on hold". @@ -593,7 +593,7 @@ public class SecurityPolicy { boolean policyChanged = (oldPolicy == null) || !oldPolicy.equals(policy); if (!policyChanged && (TextUtilities.stringOrNullEquals(securityKey, account.mSecuritySyncKey))) { - Log.d(Logging.LOG_TAG, "setAccountPolicy; policy unchanged"); + LogUtils.d(Logging.LOG_TAG, "setAccountPolicy; policy unchanged"); } else { setAccountPolicy(mContext, account, policy, securityKey); policiesUpdated(); @@ -602,7 +602,7 @@ public class SecurityPolicy { boolean setHold = false; if (policy.mProtocolPoliciesUnsupported != null) { // We can't support this, reasons in unsupportedRemotePolicies - Log.d(Logging.LOG_TAG, + LogUtils.d(Logging.LOG_TAG, "Notify policies for " + account.mDisplayName + " not supported."); setHold = true; NotificationController.getInstance(mContext).showSecurityUnsupportedNotification( @@ -612,16 +612,17 @@ public class SecurityPolicy { mContext.getContentResolver().delete(uri, null, null); } else if (isActive(policy)) { if (policyChanged) { - Log.d(Logging.LOG_TAG, "Notify policies for " + account.mDisplayName + " changed."); + LogUtils.d(Logging.LOG_TAG, "Notify policies for " + account.mDisplayName + + " changed."); // Notify that policies changed NotificationController.getInstance(mContext).showSecurityChangedNotification( account); } else { - Log.d(Logging.LOG_TAG, "Policy is active and unchanged; do not notify."); + LogUtils.d(Logging.LOG_TAG, "Policy is active and unchanged; do not notify."); } } else { setHold = true; - Log.d(Logging.LOG_TAG, "Notify policies for " + account.mDisplayName + + LogUtils.d(Logging.LOG_TAG, "Notify policies for " + account.mDisplayName + " are not being enforced."); // Put up a notification NotificationController.getInstance(mContext).showSecurityNeededNotification(account); @@ -647,7 +648,7 @@ public class SecurityPolicy { if (dpm.isAdminActive(mAdminName)) { dpm.wipeData(DevicePolicyManager.WIPE_EXTERNAL_STORAGE); } else { - Log.d(Logging.LOG_TAG, "Could not remote wipe because not device admin."); + LogUtils.d(Logging.LOG_TAG, "Could not remote wipe because not device admin."); } } /** @@ -687,7 +688,7 @@ public class SecurityPolicy { Cursor c = cr.query(Account.CONTENT_URI, EmailContent.ID_PROJECTION, Account.SECURITY_NONZERO_SELECTION, null, null); try { - Log.w(TAG, "Email administration disabled; deleting " + c.getCount() + + LogUtils.w(TAG, "Email administration disabled; deleting " + c.getCount() + " secured account(s)"); while (c.moveToNext()) { long accountId = c.getLong(EmailContent.ID_PROJECTION_COLUMN); diff --git a/src/com/android/email/StopWatch.java b/src/com/android/email/StopWatch.java index 20088b751..5ed299b18 100644 --- a/src/com/android/email/StopWatch.java +++ b/src/com/android/email/StopWatch.java @@ -17,9 +17,9 @@ package com.android.email; import com.android.emailcommon.Logging; +import com.android.mail.utils.LogUtils; import android.os.SystemClock; -import android.util.Log; /** * A simple class to measure elapsed time. @@ -43,7 +43,7 @@ public class StopWatch { mName = name; mStart = getCurrentTime(); mLastSplit = mStart; - Log.w(Logging.LOG_TAG, "StopWatch(" + mName + ") start"); + LogUtils.w(Logging.LOG_TAG, "StopWatch(" + mName + ") start"); } public static StopWatch start(String name) { @@ -53,14 +53,13 @@ public class StopWatch { public void split(String label) { long now = getCurrentTime() ; long elapse = now - mLastSplit; - Log.w(Logging.LOG_TAG, "StopWatch(" + mName + ") split(" + label + ") " + elapse); + LogUtils.w(Logging.LOG_TAG, "StopWatch(" + mName + ") split(" + label + ") " + elapse); mLastSplit = now; } public void stop() { long now = getCurrentTime(); - long elapse = now - mLastSplit; - Log.w(Logging.LOG_TAG, "StopWatch(" + mName + ") stop: " + LogUtils.w(Logging.LOG_TAG, "StopWatch(" + mName + ") stop: " + (now - mLastSplit) + " (total " + (now - mStart) + ")"); } diff --git a/src/com/android/email/activity/ContactStatusLoader.java b/src/com/android/email/activity/ContactStatusLoader.java index ff5df0999..254b3642b 100644 --- a/src/com/android/email/activity/ContactStatusLoader.java +++ b/src/com/android/email/activity/ContactStatusLoader.java @@ -28,10 +28,10 @@ import android.provider.ContactsContract.CommonDataKinds.Photo; import android.provider.ContactsContract.Contacts; import android.provider.ContactsContract.Data; import android.provider.ContactsContract.StatusUpdates; -import android.util.Log; import com.android.emailcommon.Logging; import com.android.emailcommon.utility.Utility; +import com.android.mail.utils.LogUtils; import com.google.common.annotations.VisibleForTesting; /** @@ -134,7 +134,7 @@ public class ContactStatusLoader extends AsyncTaskLoader arg0, View arg1, int arg2, long arg3) { updatePortFromSecurityType(); } + @Override public void onNothingSelected(AdapterView arg0) { } }); // After any text edits, call validateFields() which enables or disables the Next button TextWatcher validationTextWatcher = new TextWatcher() { + @Override public void afterTextChanged(Editable s) { validateFields(); } + @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } + @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } }; // We're editing an existing account; don't allow modification of the user name @@ -220,7 +224,7 @@ public class AccountSetupIncomingFragment extends AccountServerBaseFragment @Override public void onActivityCreated(Bundle savedInstanceState) { if (Logging.DEBUG_LIFECYCLE && MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, "AccountSetupIncomingFragment onActivityCreated"); + LogUtils.d(Logging.LOG_TAG, "AccountSetupIncomingFragment onActivityCreated"); } super.onActivityCreated(savedInstanceState); mClientCertificateSelector.setHostActivity(this); @@ -232,7 +236,7 @@ public class AccountSetupIncomingFragment extends AccountServerBaseFragment @Override public void onStart() { if (Logging.DEBUG_LIFECYCLE && MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, "AccountSetupIncomingFragment onStart"); + LogUtils.d(Logging.LOG_TAG, "AccountSetupIncomingFragment onStart"); } super.onStart(); mStarted = true; @@ -246,7 +250,7 @@ public class AccountSetupIncomingFragment extends AccountServerBaseFragment @Override public void onResume() { if (Logging.DEBUG_LIFECYCLE && MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, "AccountSetupIncomingFragment onResume"); + LogUtils.d(Logging.LOG_TAG, "AccountSetupIncomingFragment onResume"); } super.onResume(); validateFields(); @@ -255,7 +259,7 @@ public class AccountSetupIncomingFragment extends AccountServerBaseFragment @Override public void onPause() { if (Logging.DEBUG_LIFECYCLE && MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, "AccountSetupIncomingFragment onPause"); + LogUtils.d(Logging.LOG_TAG, "AccountSetupIncomingFragment onPause"); } super.onPause(); } @@ -266,7 +270,7 @@ public class AccountSetupIncomingFragment extends AccountServerBaseFragment @Override public void onStop() { if (Logging.DEBUG_LIFECYCLE && MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, "AccountSetupIncomingFragment onStop"); + LogUtils.d(Logging.LOG_TAG, "AccountSetupIncomingFragment onStop"); } super.onStop(); mStarted = false; @@ -278,7 +282,7 @@ public class AccountSetupIncomingFragment extends AccountServerBaseFragment @Override public void onDestroy() { if (Logging.DEBUG_LIFECYCLE && MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, "AccountSetupIncomingFragment onDestroy"); + LogUtils.d(Logging.LOG_TAG, "AccountSetupIncomingFragment onDestroy"); } super.onDestroy(); } @@ -286,7 +290,7 @@ public class AccountSetupIncomingFragment extends AccountServerBaseFragment @Override public void onSaveInstanceState(Bundle outState) { if (Logging.DEBUG_LIFECYCLE && MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, "AccountSetupIncomingFragment onSaveInstanceState"); + LogUtils.d(Logging.LOG_TAG, "AccountSetupIncomingFragment onSaveInstanceState"); } super.onSaveInstanceState(outState); @@ -510,7 +514,7 @@ public class AccountSetupIncomingFragment extends AccountServerBaseFragment serverPort = Integer.parseInt(mPortView.getText().toString().trim()); } catch (NumberFormatException e) { serverPort = getPortFromSecurityType(getSslSelected()); - Log.d(Logging.LOG_TAG, "Non-integer server port; using '" + serverPort + "'"); + LogUtils.d(Logging.LOG_TAG, "Non-integer server port; using '" + serverPort + "'"); } int securityType = (Integer) ((SpinnerOption) mSecurityTypeView.getSelectedItem()).value; recvAuth.setConnection(mBaseScheme, serverAddress, serverPort, securityType); diff --git a/src/com/android/email/activity/setup/AccountSetupOptions.java b/src/com/android/email/activity/setup/AccountSetupOptions.java index c739e3337..912b8a664 100644 --- a/src/com/android/email/activity/setup/AccountSetupOptions.java +++ b/src/com/android/email/activity/setup/AccountSetupOptions.java @@ -28,10 +28,8 @@ import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; -import android.database.Cursor; import android.os.Bundle; import android.os.RemoteException; -import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.ArrayAdapter; @@ -41,7 +39,6 @@ import android.widget.Spinner; import com.android.email.R; import com.android.email.activity.ActivityHelper; import com.android.email.activity.UiUtilities; -import com.android.email.provider.EmailProvider; import com.android.email.service.EmailServiceUtils; import com.android.email.service.EmailServiceUtils.EmailServiceInfo; import com.android.email.service.MailService; @@ -53,17 +50,11 @@ import com.android.emailcommon.service.EmailServiceProxy; import com.android.emailcommon.service.SyncWindow; import com.android.emailcommon.utility.Utility; import com.android.mail.preferences.AccountPreferences; -import com.android.mail.preferences.FolderPreferences; -import com.android.mail.providers.Folder; -import com.android.mail.providers.UIProvider; -import com.android.mail.utils.LogTag; import com.android.mail.utils.LogUtils; import java.io.IOException; public class AccountSetupOptions extends AccountSetupActivity implements OnClickListener { - private static final String LOG_TAG = LogTag.getLogTag(); - private Spinner mCheckFrequencyView; private Spinner mSyncWindowView; private CheckBox mDefaultView; @@ -301,11 +292,11 @@ public class AccountSetupOptions extends AccountSetupActivity implements OnClick }); return; } catch (OperationCanceledException e) { - Log.d(Logging.LOG_TAG, "addAccount was canceled"); + LogUtils.d(Logging.LOG_TAG, "addAccount was canceled"); } catch (IOException e) { - Log.d(Logging.LOG_TAG, "addAccount failed: " + e); + LogUtils.d(Logging.LOG_TAG, "addAccount failed: " + e); } catch (AuthenticatorException e) { - Log.d(Logging.LOG_TAG, "addAccount failed: " + e); + LogUtils.d(Logging.LOG_TAG, "addAccount failed: " + e); } showErrorDialog(R.string.account_setup_failed_dlg_auth_message, R.string.system_account_create_failed); diff --git a/src/com/android/email/activity/setup/AccountSetupOutgoingFragment.java b/src/com/android/email/activity/setup/AccountSetupOutgoingFragment.java index 410aaebb9..eba6bb227 100644 --- a/src/com/android/email/activity/setup/AccountSetupOutgoingFragment.java +++ b/src/com/android/email/activity/setup/AccountSetupOutgoingFragment.java @@ -22,7 +22,6 @@ import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.text.method.DigitsKeyListener; -import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -42,6 +41,7 @@ import com.android.emailcommon.Logging; import com.android.emailcommon.provider.Account; import com.android.emailcommon.provider.HostAuth; import com.android.emailcommon.utility.Utility; +import com.android.mail.utils.LogUtils; /** * Provides UI for SMTP account settings (for IMAP/POP accounts). @@ -75,7 +75,7 @@ public class AccountSetupOutgoingFragment extends AccountServerBaseFragment @Override public void onCreate(Bundle savedInstanceState) { if (Logging.DEBUG_LIFECYCLE && MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, "AccountSetupOutgoingFragment onCreate"); + LogUtils.d(Logging.LOG_TAG, "AccountSetupOutgoingFragment onCreate"); } super.onCreate(savedInstanceState); @@ -89,7 +89,7 @@ public class AccountSetupOutgoingFragment extends AccountServerBaseFragment public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (Logging.DEBUG_LIFECYCLE && MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, "AccountSetupOutgoingFragment onCreateView"); + LogUtils.d(Logging.LOG_TAG, "AccountSetupOutgoingFragment onCreateView"); } int layoutId = mSettingsMode ? R.layout.account_settings_outgoing_fragment @@ -128,14 +128,17 @@ public class AccountSetupOutgoingFragment extends AccountServerBaseFragment // Updates the port when the user changes the security type. This allows // us to show a reasonable default which the user can change. mSecurityTypeView.post(new Runnable() { + @Override public void run() { mSecurityTypeView.setOnItemSelectedListener( new AdapterView.OnItemSelectedListener() { + @Override public void onItemSelected(AdapterView arg0, View arg1, int arg2, long arg3) { updatePortFromSecurityType(); } + @Override public void onNothingSelected(AdapterView arg0) { } }); @@ -143,11 +146,14 @@ public class AccountSetupOutgoingFragment extends AccountServerBaseFragment // Calls validateFields() which enables or disables the Next button TextWatcher validationTextWatcher = new TextWatcher() { + @Override public void afterTextChanged(Editable s) { validateFields(); } + @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } + @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } }; mUsernameView.addTextChangedListener(validationTextWatcher); @@ -167,7 +173,7 @@ public class AccountSetupOutgoingFragment extends AccountServerBaseFragment @Override public void onActivityCreated(Bundle savedInstanceState) { if (Logging.DEBUG_LIFECYCLE && MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, "AccountSetupOutgoingFragment onActivityCreated"); + LogUtils.d(Logging.LOG_TAG, "AccountSetupOutgoingFragment onActivityCreated"); } super.onActivityCreated(savedInstanceState); } @@ -178,7 +184,7 @@ public class AccountSetupOutgoingFragment extends AccountServerBaseFragment @Override public void onStart() { if (Logging.DEBUG_LIFECYCLE && MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, "AccountSetupOutgoingFragment onStart"); + LogUtils.d(Logging.LOG_TAG, "AccountSetupOutgoingFragment onStart"); } super.onStart(); mStarted = true; @@ -191,7 +197,7 @@ public class AccountSetupOutgoingFragment extends AccountServerBaseFragment @Override public void onResume() { if (Logging.DEBUG_LIFECYCLE && MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, "AccountSetupOutgoingFragment onResume"); + LogUtils.d(Logging.LOG_TAG, "AccountSetupOutgoingFragment onResume"); } super.onResume(); validateFields(); @@ -200,7 +206,7 @@ public class AccountSetupOutgoingFragment extends AccountServerBaseFragment @Override public void onPause() { if (Logging.DEBUG_LIFECYCLE && MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, "AccountSetupOutgoingFragment onPause"); + LogUtils.d(Logging.LOG_TAG, "AccountSetupOutgoingFragment onPause"); } super.onPause(); } @@ -211,7 +217,7 @@ public class AccountSetupOutgoingFragment extends AccountServerBaseFragment @Override public void onStop() { if (Logging.DEBUG_LIFECYCLE && MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, "AccountSetupOutgoingFragment onStop"); + LogUtils.d(Logging.LOG_TAG, "AccountSetupOutgoingFragment onStop"); } super.onStop(); mStarted = false; @@ -223,7 +229,7 @@ public class AccountSetupOutgoingFragment extends AccountServerBaseFragment @Override public void onDestroy() { if (Logging.DEBUG_LIFECYCLE && MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, "AccountSetupOutgoingFragment onDestroy"); + LogUtils.d(Logging.LOG_TAG, "AccountSetupOutgoingFragment onDestroy"); } super.onDestroy(); } @@ -231,7 +237,7 @@ public class AccountSetupOutgoingFragment extends AccountServerBaseFragment @Override public void onSaveInstanceState(Bundle outState) { if (Logging.DEBUG_LIFECYCLE && MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, "AccountSetupOutgoingFragment onSaveInstanceState"); + LogUtils.d(Logging.LOG_TAG, "AccountSetupOutgoingFragment onSaveInstanceState"); } super.onSaveInstanceState(outState); @@ -369,7 +375,7 @@ public class AccountSetupOutgoingFragment extends AccountServerBaseFragment serverPort = Integer.parseInt(mPortView.getText().toString().trim()); } catch (NumberFormatException e) { serverPort = getPortFromSecurityType(); - Log.d(Logging.LOG_TAG, "Non-integer server port; using '" + serverPort + "'"); + LogUtils.d(Logging.LOG_TAG, "Non-integer server port; using '" + serverPort + "'"); } int securityType = (Integer)((SpinnerOption)mSecurityTypeView.getSelectedItem()).value; sendAuth.setConnection(mBaseScheme, serverAddress, serverPort, securityType); diff --git a/src/com/android/email/activity/setup/DebugFragment.java b/src/com/android/email/activity/setup/DebugFragment.java index 48dd99818..cea67b2b6 100644 --- a/src/com/android/email/activity/setup/DebugFragment.java +++ b/src/com/android/email/activity/setup/DebugFragment.java @@ -19,7 +19,6 @@ package com.android.email.activity.setup; import android.app.Fragment; import android.content.Context; import android.os.Bundle; -import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -34,6 +33,7 @@ import com.android.email.activity.UiUtilities; import com.android.email.service.EmailServiceUtils; import com.android.email2.ui.MailActivityEmail; import com.android.emailcommon.Logging; +import com.android.mail.utils.LogUtils; public class DebugFragment extends Fragment implements OnCheckedChangeListener, View.OnClickListener { @@ -49,7 +49,7 @@ public class DebugFragment extends Fragment implements OnCheckedChangeListener, public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (Logging.DEBUG_LIFECYCLE && MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, "AccountSetupBasicsFragment onCreateView"); + LogUtils.d(Logging.LOG_TAG, "AccountSetupBasicsFragment onCreateView"); } View view = inflater.inflate(R.layout.debug, container, false); @@ -134,7 +134,7 @@ public class DebugFragment extends Fragment implements OnCheckedChangeListener, WebView webview = new WebView(getActivity()); try { webview.clearCache(true); - Log.w(Logging.LOG_TAG, "Cleard WebView cache."); + LogUtils.w(Logging.LOG_TAG, "Cleard WebView cache."); } finally { webview.destroy(); } diff --git a/src/com/android/email/activity/setup/MailboxSettings.java b/src/com/android/email/activity/setup/MailboxSettings.java index e76951c4f..ad95ec2cc 100644 --- a/src/com/android/email/activity/setup/MailboxSettings.java +++ b/src/com/android/email/activity/setup/MailboxSettings.java @@ -29,7 +29,6 @@ import android.preference.ListPreference; import android.preference.Preference; import android.preference.Preference.OnPreferenceChangeListener; import android.preference.PreferenceActivity; -import android.util.Log; import android.view.MenuItem; import com.android.email.R; @@ -41,6 +40,7 @@ import com.android.emailcommon.provider.EmailContent.MailboxColumns; import com.android.emailcommon.provider.Mailbox; import com.android.emailcommon.provider.Policy; import com.android.emailcommon.utility.EmailAsyncTask; +import com.android.mail.utils.LogUtils; import com.google.common.base.Objects; import com.google.common.base.Preconditions; @@ -292,7 +292,7 @@ public class MailboxSettings extends PreferenceActivity { } mNeedsSave = true; if (MailActivityEmail.DEBUG) { - Log.i(Logging.LOG_TAG, "Setting changed"); + LogUtils.i(Logging.LOG_TAG, "Setting changed"); } // In order to set the current entry to the summary, we need to udpate the value // manually, rather than letting the framework do that (by returning true). @@ -310,7 +310,7 @@ public class MailboxSettings extends PreferenceActivity { final int syncInterval = Integer.valueOf(mSyncIntervalPref.getValue()); final int syncLookback = Integer.valueOf(mSyncLookbackPref.getValue()); if (MailActivityEmail.DEBUG) { - Log.i(Logging.LOG_TAG, "Updating object: " + syncInterval + "," + syncLookback); + LogUtils.i(Logging.LOG_TAG, "Updating object: " + syncInterval + "," + syncLookback); } if (mMailbox.mType == Mailbox.TYPE_INBOX) { mAccount.mSyncInterval = syncInterval; @@ -333,7 +333,7 @@ public class MailboxSettings extends PreferenceActivity { if (!mNeedsSave) { return; } - Log.i(Logging.LOG_TAG, "Saving mailbox settings..."); + LogUtils.i(Logging.LOG_TAG, "Saving mailbox settings..."); enablePreferences(false); // Since the activity will be destroyed... @@ -360,7 +360,7 @@ public class MailboxSettings extends PreferenceActivity { } context.getContentResolver().update(uri, cv, null, null); - Log.i(Logging.LOG_TAG, "Saved: " + uri); + LogUtils.i(Logging.LOG_TAG, "Saved: " + uri); return null; } diff --git a/src/com/android/email/mail/Sender.java b/src/com/android/email/mail/Sender.java index a2fb567a0..238de2c29 100644 --- a/src/com/android/email/mail/Sender.java +++ b/src/com/android/email/mail/Sender.java @@ -18,13 +18,13 @@ package com.android.email.mail; import android.content.Context; import android.content.res.XmlResourceParser; -import android.util.Log; import com.android.email.R; import com.android.emailcommon.Logging; import com.android.emailcommon.mail.MessagingException; import com.android.emailcommon.provider.Account; import com.android.emailcommon.provider.HostAuth; +import com.android.mail.utils.LogUtils; import org.xmlpull.v1.XmlPullParserException; @@ -53,7 +53,7 @@ public abstract class Sender { c.getMethod("newInstance", Account.class, Context.class); o = m.invoke(null, account, context); } catch (Exception e) { - Log.d(Logging.LOG_TAG, String.format( + LogUtils.d(Logging.LOG_TAG, String.format( "exception %s invoking method %s#newInstance(Account, Context) for %s", e.toString(), className, account.mDisplayName)); throw new MessagingException("can not instantiate Sender for " + account.mDisplayName); diff --git a/src/com/android/email/mail/Store.java b/src/com/android/email/mail/Store.java index c3ea23d3c..e2b0e868e 100644 --- a/src/com/android/email/mail/Store.java +++ b/src/com/android/email/mail/Store.java @@ -18,14 +18,12 @@ package com.android.email.mail; import android.content.Context; import android.os.Bundle; -import android.util.Log; import com.android.email.R; import com.android.email.mail.store.ImapStore; import com.android.email.mail.store.Pop3Store; import com.android.email.mail.store.ServiceStore; import com.android.email.mail.transport.MailTransport; -import com.android.email2.ui.MailActivityEmail; import com.android.emailcommon.Logging; import com.android.emailcommon.mail.Folder; import com.android.emailcommon.mail.MessagingException; @@ -33,6 +31,7 @@ import com.android.emailcommon.provider.Account; import com.android.emailcommon.provider.EmailContent; import com.android.emailcommon.provider.HostAuth; import com.android.emailcommon.provider.Mailbox; +import com.android.mail.utils.LogUtils; import com.google.common.annotations.VisibleForTesting; import java.lang.reflect.Method; @@ -102,7 +101,7 @@ public abstract class Store { Method m = klass.getMethod("newInstance", Account.class, Context.class); store = (Store)m.invoke(null, account, appContext); } catch (Exception e) { - Log.d(Logging.LOG_TAG, String.format( + LogUtils.d(Logging.LOG_TAG, String.format( "exception %s invoking method %s#newInstance(Account, Context) for %s", e.toString(), klass.getName(), account.mDisplayName)); throw new MessagingException("Can't instantiate Store for " + account.mDisplayName); diff --git a/src/com/android/email/mail/store/ImapConnection.java b/src/com/android/email/mail/store/ImapConnection.java index ee9acfc2a..948347505 100644 --- a/src/com/android/email/mail/store/ImapConnection.java +++ b/src/com/android/email/mail/store/ImapConnection.java @@ -17,7 +17,6 @@ package com.android.email.mail.store; import android.text.TextUtils; -import android.util.Log; import com.android.email.mail.store.ImapStore.ImapException; import com.android.email.mail.store.imap.ImapConstants; @@ -32,6 +31,7 @@ import com.android.emailcommon.Logging; import com.android.emailcommon.mail.AuthenticationFailedException; import com.android.emailcommon.mail.CertificateValidationException; import com.android.emailcommon.mail.MessagingException; +import com.android.mail.utils.LogUtils; import java.io.IOException; import java.util.ArrayList; @@ -145,7 +145,7 @@ class ImapConnection { mImapStore.ensurePrefixIsValid(); } catch (SSLException e) { if (MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, e.toString()); + LogUtils.d(Logging.LOG_TAG, e.toString()); } throw new CertificateValidationException(e.getMessage(), e); } catch (IOException ioe) { @@ -153,7 +153,7 @@ class ImapConnection { // of other code here that catches IOException and I don't want to break it. // This catch is only here to enhance logging of connection-time issues. if (MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, ioe.toString()); + LogUtils.d(Logging.LOG_TAG, ioe.toString()); } throw ioe; } finally { @@ -390,7 +390,7 @@ class ImapConnection { } catch (ImapException ie) { // Log for debugging, but this is not a fatal problem. if (MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, ie.toString()); + LogUtils.d(Logging.LOG_TAG, ie.toString()); } } catch (IOException ioe) { // Special case to handle malformed OK responses and ignore them. @@ -415,7 +415,7 @@ class ImapConnection { } catch (ImapException ie) { // Log for debugging, but this is not a fatal problem. if (MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, ie.toString()); + LogUtils.d(Logging.LOG_TAG, ie.toString()); } } catch (IOException ioe) { // Special case to handle malformed OK responses and ignore them. @@ -446,7 +446,7 @@ class ImapConnection { executeSimpleCommand(mLoginPhrase, true); } catch (ImapException ie) { if (MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, ie.toString()); + LogUtils.d(Logging.LOG_TAG, ie.toString()); } throw new AuthenticationFailedException(ie.getAlertText(), ie); @@ -470,7 +470,7 @@ class ImapConnection { } catch (ImapException ie) { // Log for debugging, but this is not a fatal problem. if (MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, ie.toString()); + LogUtils.d(Logging.LOG_TAG, ie.toString()); } } catch (IOException ioe) { // Special case to handle malformed OK responses and ignore them. @@ -502,7 +502,7 @@ class ImapConnection { return(queryCapabilities()); } else { if (MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, "TLS not supported but required"); + LogUtils.d(Logging.LOG_TAG, "TLS not supported but required"); } throw new MessagingException(MessagingException.TLS_REQUIRED); } diff --git a/src/com/android/email/mail/store/ImapFolder.java b/src/com/android/email/mail/store/ImapFolder.java index e45e15d8f..8209d4ecb 100644 --- a/src/com/android/email/mail/store/ImapFolder.java +++ b/src/com/android/email/mail/store/ImapFolder.java @@ -19,7 +19,6 @@ package com.android.email.mail.store; import android.content.Context; import android.text.TextUtils; import android.util.Base64DataException; -import android.util.Log; import com.android.email.mail.store.ImapStore.ImapException; import com.android.email.mail.store.ImapStore.ImapMessage; @@ -49,6 +48,7 @@ import com.android.emailcommon.service.SearchParams; import com.android.emailcommon.utility.CountingOutputStream; import com.android.emailcommon.utility.EOLConvertingOutputStream; import com.android.emailcommon.utility.Utility; +import com.android.mail.utils.LogUtils; import com.google.common.annotations.VisibleForTesting; import java.io.IOException; @@ -322,7 +322,7 @@ class ImapFolder extends Folder { } } catch (MessagingException e) { // Log, but, don't abort; failures here don't need to be propagated - Log.d(Logging.LOG_TAG, "Failed to find message", e); + LogUtils.d(Logging.LOG_TAG, "Failed to find message", e); } finally { newFolder.close(false); } @@ -396,7 +396,7 @@ class ImapFolder extends Folder { String command = ImapConstants.UID_SEARCH + " " + searchCriteria; return getSearchUids(mConnection.executeSimpleCommand(command)); } catch (ImapException e) { - Log.d(Logging.LOG_TAG, "ImapException in search: " + searchCriteria); + LogUtils.d(Logging.LOG_TAG, "ImapException in search: " + searchCriteria); return Utility.EMPTY_STRINGS; // not found; } catch (IOException ioe) { throw ioExceptionHandler(mConnection, ioe); @@ -514,7 +514,7 @@ class ImapFolder extends Folder { try { fetchInternal(messages, fp, listener); } catch (RuntimeException e) { // Probably a parser error. - Log.w(Logging.LOG_TAG, "Exception detected: " + e.getMessage()); + LogUtils.w(Logging.LOG_TAG, "Exception detected: " + e.getMessage()); if (mConnection != null) { mConnection.logLastDiscourse(); } @@ -635,7 +635,7 @@ class ImapFolder extends Folder { parseBodyStructure(bs, message, ImapConstants.TEXT); } catch (MessagingException e) { if (Logging.LOGD) { - Log.v(Logging.LOG_TAG, "Error handling message", e); + LogUtils.v(Logging.LOG_TAG, "Error handling message", e); } message.setBody(null); } @@ -1114,7 +1114,7 @@ class ImapFolder extends Folder { private MessagingException ioExceptionHandler(ImapConnection connection, IOException ioe) { if (MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, "IO Exception detected: ", ioe); + LogUtils.d(Logging.LOG_TAG, "IO Exception detected: ", ioe); } connection.close(); if (connection == mConnection) { diff --git a/src/com/android/email/mail/store/ImapStore.java b/src/com/android/email/mail/store/ImapStore.java index b457af3d1..490d70d1b 100644 --- a/src/com/android/email/mail/store/ImapStore.java +++ b/src/com/android/email/mail/store/ImapStore.java @@ -22,11 +22,9 @@ import android.os.Bundle; import android.telephony.TelephonyManager; import android.text.TextUtils; import android.util.Base64; -import android.util.Log; import com.android.email.LegacyConversions; import com.android.email.Preferences; -import com.android.email.R; import com.android.email.mail.Store; import com.android.email.mail.store.imap.ImapConstants; import com.android.email.mail.store.imap.ImapResponse; @@ -45,6 +43,7 @@ import com.android.emailcommon.provider.HostAuth; import com.android.emailcommon.provider.Mailbox; import com.android.emailcommon.service.EmailServiceProxy; import com.android.emailcommon.utility.Utility; +import com.android.mail.utils.LogUtils; import com.beetstra.jutf7.CharsetProvider; import com.google.common.annotations.VisibleForTesting; @@ -204,7 +203,7 @@ public class ImapStore extends Store { id.append(hexUid); id.append('\"'); } catch (NoSuchAlgorithmException e) { - Log.d(Logging.LOG_TAG, "couldn't obtain SHA-1 hash for device UID"); + LogUtils.d(Logging.LOG_TAG, "couldn't obtain SHA-1 hash for device UID"); } return id.toString(); } diff --git a/src/com/android/email/mail/store/Pop3Store.java b/src/com/android/email/mail/store/Pop3Store.java index cee369b1b..6805361bc 100644 --- a/src/com/android/email/mail/store/Pop3Store.java +++ b/src/com/android/email/mail/store/Pop3Store.java @@ -18,9 +18,7 @@ package com.android.email.mail.store; import android.content.Context; import android.os.Bundle; -import android.util.Log; -import com.android.email.R; import com.android.email.mail.Store; import com.android.email.mail.transport.MailTransport; import com.android.email2.ui.MailActivityEmail; @@ -40,6 +38,7 @@ import com.android.emailcommon.service.EmailServiceProxy; import com.android.emailcommon.service.SearchParams; import com.android.emailcommon.utility.LoggingInputStream; import com.android.emailcommon.utility.Utility; +import com.android.mail.utils.LogUtils; import com.google.common.annotations.VisibleForTesting; import org.apache.james.mime4j.EOLConvertingInputStream; @@ -216,7 +215,7 @@ public class Pop3Store extends Store { mTransport.reopenTls(); } else { if (MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, "TLS not supported but required"); + LogUtils.d(Logging.LOG_TAG, "TLS not supported but required"); } throw new MessagingException(MessagingException.TLS_REQUIRED); } @@ -227,14 +226,14 @@ public class Pop3Store extends Store { executeSensitiveCommand("PASS " + mPassword, "PASS /redacted/"); } catch (MessagingException me) { if (MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, me.toString()); + LogUtils.d(Logging.LOG_TAG, me.toString()); } throw new AuthenticationFailedException(null, me); } } catch (IOException ioe) { mTransport.close(); if (MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, ioe.toString()); + LogUtils.d(Logging.LOG_TAG, ioe.toString()); } throw new MessagingException(MessagingException.IOERROR, ioe.toString()); } @@ -258,7 +257,7 @@ public class Pop3Store extends Store { if (statException != null) { mTransport.close(); if (MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, statException.toString()); + LogUtils.d(Logging.LOG_TAG, statException.toString()); } throw new MessagingException("POP3 STAT", statException); } @@ -329,7 +328,7 @@ public class Pop3Store extends Store { } catch (IOException ioe) { mTransport.close(); if (MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, "Unable to index during getMessage " + ioe); + LogUtils.d(Logging.LOG_TAG, "Unable to index during getMessage " + ioe); } throw new MessagingException("getMessages", ioe); } @@ -351,7 +350,7 @@ public class Pop3Store extends Store { } catch (IOException ioe) { mTransport.close(); if (MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, ioe.toString()); + LogUtils.d(Logging.LOG_TAG, ioe.toString()); } throw new MessagingException("getMessages", ioe); } @@ -569,7 +568,7 @@ public class Pop3Store extends Store { response = executeSimpleCommand( String.format(Locale.US, "RETR %d", messageId)); } catch (MessagingException e) { - Log.w(Logging.LOG_TAG, "Can't read message " + messageId); + LogUtils.w(Logging.LOG_TAG, "Can't read message " + messageId); } } } @@ -660,7 +659,7 @@ public class Pop3Store extends Store { catch (IOException ioe) { mTransport.close(); if (MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, ioe.toString()); + LogUtils.d(Logging.LOG_TAG, ioe.toString()); } throw new MessagingException("setFlags()", ioe); } diff --git a/src/com/android/email/mail/store/imap/ImapMemoryLiteral.java b/src/com/android/email/mail/store/imap/ImapMemoryLiteral.java index ea62d52d1..26f5e6c9c 100644 --- a/src/com/android/email/mail/store/imap/ImapMemoryLiteral.java +++ b/src/com/android/email/mail/store/imap/ImapMemoryLiteral.java @@ -19,8 +19,7 @@ package com.android.email.mail.store.imap; import com.android.email.FixedLengthInputStream; import com.android.emailcommon.Logging; import com.android.emailcommon.utility.Utility; - -import android.util.Log; +import com.android.mail.utils.LogUtils; import java.io.ByteArrayInputStream; import java.io.IOException; @@ -45,7 +44,7 @@ public class ImapMemoryLiteral extends ImapString { pos += read; } if (pos != mData.length) { - Log.w(Logging.LOG_TAG, ""); + LogUtils.w(Logging.LOG_TAG, ""); } } diff --git a/src/com/android/email/mail/store/imap/ImapResponseParser.java b/src/com/android/email/mail/store/imap/ImapResponseParser.java index 078cf9f76..0c5d07b44 100644 --- a/src/com/android/email/mail/store/imap/ImapResponseParser.java +++ b/src/com/android/email/mail/store/imap/ImapResponseParser.java @@ -17,7 +17,6 @@ package com.android.email.mail.store.imap; import android.text.TextUtils; -import android.util.Log; import com.android.email.FixedLengthInputStream; import com.android.email.PeekableInputStream; @@ -26,6 +25,7 @@ import com.android.email2.ui.MailActivityEmail; import com.android.emailcommon.Logging; import com.android.emailcommon.mail.MessagingException; import com.android.emailcommon.utility.LoggingInputStream; +import com.android.mail.utils.LogUtils; import java.io.IOException; import java.io.InputStream; @@ -100,7 +100,7 @@ public class ImapResponseParser { private static IOException newEOSException() { final String message = "End of stream reached"; if (MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, message); + LogUtils.d(Logging.LOG_TAG, message); } return new IOException(message); } @@ -162,7 +162,7 @@ public class ImapResponseParser { try { response = parseResponse(); if (MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, "<<< " + response.toString()); + LogUtils.d(Logging.LOG_TAG, "<<< " + response.toString()); } } catch (RuntimeException e) { @@ -177,7 +177,7 @@ public class ImapResponseParser { // Handle this outside of try-catch. We don't have to dump protocol log when getting BYE. if (response.is(0, ImapConstants.BYE)) { - Log.w(Logging.LOG_TAG, ByeException.MESSAGE); + LogUtils.w(Logging.LOG_TAG, ByeException.MESSAGE); response.destroy(); throw new ByeException(); } @@ -201,7 +201,7 @@ public class ImapResponseParser { } } catch (IOException ignore) { } - Log.w(Logging.LOG_TAG, "Exception detected: " + e.getMessage()); + LogUtils.w(Logging.LOG_TAG, "Exception detected: " + e.getMessage()); mDiscourseLogger.logLastDiscourse(); } diff --git a/src/com/android/email/mail/store/imap/ImapString.java b/src/com/android/email/mail/store/imap/ImapString.java index b0ee99d84..d74a7cf0e 100644 --- a/src/com/android/email/mail/store/imap/ImapString.java +++ b/src/com/android/email/mail/store/imap/ImapString.java @@ -17,8 +17,7 @@ package com.android.email.mail.store.imap; import com.android.emailcommon.Logging; - -import android.util.Log; +import com.android.mail.utils.LogUtils; import java.io.ByteArrayInputStream; import java.io.InputStream; @@ -132,7 +131,7 @@ public abstract class ImapString extends ImapElement { mParsedDate = DATE_TIME_FORMAT.parse(getString()); return true; } catch (ParseException e) { - Log.w(Logging.LOG_TAG, getString() + " can't be parsed as a date."); + LogUtils.w(Logging.LOG_TAG, getString() + " can't be parsed as a date."); return false; } } diff --git a/src/com/android/email/mail/store/imap/ImapTempFileLiteral.java b/src/com/android/email/mail/store/imap/ImapTempFileLiteral.java index eda1b568e..4feccc760 100644 --- a/src/com/android/email/mail/store/imap/ImapTempFileLiteral.java +++ b/src/com/android/email/mail/store/imap/ImapTempFileLiteral.java @@ -16,12 +16,11 @@ package com.android.email.mail.store.imap; -import android.util.Log; - import com.android.email.FixedLengthInputStream; import com.android.emailcommon.Logging; import com.android.emailcommon.TempDirectory; import com.android.emailcommon.utility.Utility; +import com.android.mail.utils.LogUtils; import org.apache.commons.io.IOUtils; @@ -77,7 +76,7 @@ public class ImapTempFileLiteral extends ImapString { return new FileInputStream(mFile); } catch (FileNotFoundException e) { // It's probably possible if we're low on storage and the system clears the cache dir. - Log.w(Logging.LOG_TAG, "ImapTempFileLiteral: Temp file not found"); + LogUtils.w(Logging.LOG_TAG, "ImapTempFileLiteral: Temp file not found"); // Return 0 byte stream as a dummy... return new ByteArrayInputStream(new byte[0]); @@ -95,7 +94,7 @@ public class ImapTempFileLiteral extends ImapString { } return Utility.fromAscii(bytes); } catch (IOException e) { - Log.w(Logging.LOG_TAG, "ImapTempFileLiteral: Error while reading temp file", e); + LogUtils.w(Logging.LOG_TAG, "ImapTempFileLiteral: Error while reading temp file", e); return ""; } } @@ -108,7 +107,7 @@ public class ImapTempFileLiteral extends ImapString { } } catch (RuntimeException re) { // Just log and ignore. - Log.w(Logging.LOG_TAG, "Failed to remove temp file: " + re.getMessage()); + LogUtils.w(Logging.LOG_TAG, "Failed to remove temp file: " + re.getMessage()); } super.destroy(); } diff --git a/src/com/android/email/mail/store/imap/ImapUtility.java b/src/com/android/email/mail/store/imap/ImapUtility.java index dc7e98e96..dc024cce7 100644 --- a/src/com/android/email/mail/store/imap/ImapUtility.java +++ b/src/com/android/email/mail/store/imap/ImapUtility.java @@ -17,8 +17,7 @@ package com.android.email.mail.store.imap; import com.android.emailcommon.Logging; - -import android.util.Log; +import com.android.mail.utils.LogUtils; import java.util.ArrayList; @@ -76,7 +75,7 @@ public class ImapUtility { Integer.parseInt(item); // Don't need the value; just ensure it's valid list.add(item); } catch (NumberFormatException e) { - Log.d(Logging.LOG_TAG, "Invalid UID value", e); + LogUtils.d(Logging.LOG_TAG, "Invalid UID value", e); } } else { // range @@ -119,7 +118,7 @@ public class ImapUtility { } } } catch (NumberFormatException e) { - Log.d(Logging.LOG_TAG, "Invalid range value", e); + LogUtils.d(Logging.LOG_TAG, "Invalid range value", e); } String[] stringList = new String[list.size()]; return list.toArray(stringList); diff --git a/src/com/android/email/mail/transport/DiscourseLogger.java b/src/com/android/email/mail/transport/DiscourseLogger.java index a8c85dbe4..60e856963 100644 --- a/src/com/android/email/mail/transport/DiscourseLogger.java +++ b/src/com/android/email/mail/transport/DiscourseLogger.java @@ -17,8 +17,7 @@ package com.android.email.mail.transport; import com.android.emailcommon.Logging; - -import android.util.Log; +import com.android.mail.utils.LogUtils; import java.util.ArrayList; @@ -111,9 +110,9 @@ public class DiscourseLogger { return; } - Log.w(Logging.LOG_TAG, "Last network activities:"); + LogUtils.w(Logging.LOG_TAG, "Last network activities:"); for (String r : getLines()) { - Log.w(Logging.LOG_TAG, r); + LogUtils.w(Logging.LOG_TAG, r); } initBuffer(); } diff --git a/src/com/android/email/mail/transport/MailTransport.java b/src/com/android/email/mail/transport/MailTransport.java index 128596460..c54899cb9 100644 --- a/src/com/android/email/mail/transport/MailTransport.java +++ b/src/com/android/email/mail/transport/MailTransport.java @@ -17,7 +17,6 @@ package com.android.email.mail.transport; import android.content.Context; -import android.util.Log; import com.android.email2.ui.MailActivityEmail; import com.android.emailcommon.Logging; @@ -25,6 +24,7 @@ import com.android.emailcommon.mail.CertificateValidationException; import com.android.emailcommon.mail.MessagingException; import com.android.emailcommon.provider.HostAuth; import com.android.emailcommon.utility.SSLUtils; +import com.android.mail.utils.LogUtils; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; @@ -104,7 +104,7 @@ public class MailTransport { */ public void open() throws MessagingException, CertificateValidationException { if (MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, "*** " + mDebugLabel + " open " + + LogUtils.d(Logging.LOG_TAG, "*** " + mDebugLabel + " open " + getHost() + ":" + String.valueOf(getPort())); } @@ -126,17 +126,17 @@ public class MailTransport { mSocket.setSoTimeout(SOCKET_READ_TIMEOUT); } catch (SSLException e) { if (MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, e.toString()); + LogUtils.d(Logging.LOG_TAG, e.toString()); } throw new CertificateValidationException(e.getMessage(), e); } catch (IOException ioe) { if (MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, ioe.toString()); + LogUtils.d(Logging.LOG_TAG, ioe.toString()); } throw new MessagingException(MessagingException.IOERROR, ioe.toString()); } catch (IllegalArgumentException iae) { if (MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, iae.toString()); + LogUtils.d(Logging.LOG_TAG, iae.toString()); } throw new MessagingException(MessagingException.UNSPECIFIED_EXCEPTION, iae.toString()); } @@ -160,12 +160,12 @@ public class MailTransport { } catch (SSLException e) { if (MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, e.toString()); + LogUtils.d(Logging.LOG_TAG, e.toString()); } throw new CertificateValidationException(e.getMessage(), e); } catch (IOException ioe) { if (MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, ioe.toString()); + LogUtils.d(Logging.LOG_TAG, ioe.toString()); } throw new MessagingException(MessagingException.IOERROR, ioe.toString()); } @@ -261,9 +261,9 @@ public class MailTransport { public void writeLine(String s, String sensitiveReplacement) throws IOException { if (MailActivityEmail.DEBUG) { if (sensitiveReplacement != null && !Logging.DEBUG_SENSITIVE) { - Log.d(Logging.LOG_TAG, ">>> " + sensitiveReplacement); + LogUtils.d(Logging.LOG_TAG, ">>> " + sensitiveReplacement); } else { - Log.d(Logging.LOG_TAG, ">>> " + s); + LogUtils.d(Logging.LOG_TAG, ">>> " + s); } } @@ -292,11 +292,11 @@ public class MailTransport { } } if (d == -1 && MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, "End of stream reached while trying to read line."); + LogUtils.d(Logging.LOG_TAG, "End of stream reached while trying to read line."); } String ret = sb.toString(); if (loggable && MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, "<<< " + ret); + LogUtils.d(Logging.LOG_TAG, "<<< " + ret); } return ret; } diff --git a/src/com/android/email/mail/transport/SmtpSender.java b/src/com/android/email/mail/transport/SmtpSender.java index abd87bd64..c4446fb38 100644 --- a/src/com/android/email/mail/transport/SmtpSender.java +++ b/src/com/android/email/mail/transport/SmtpSender.java @@ -18,7 +18,6 @@ package com.android.email.mail.transport; import android.content.Context; import android.util.Base64; -import android.util.Log; import com.android.email.mail.Sender; import com.android.email2.ui.MailActivityEmail; @@ -32,6 +31,7 @@ import com.android.emailcommon.provider.Account; import com.android.emailcommon.provider.EmailContent.Message; import com.android.emailcommon.provider.HostAuth; import com.android.emailcommon.utility.EOLConvertingOutputStream; +import com.android.mail.utils.LogUtils; import java.io.IOException; import java.net.Inet6Address; @@ -122,7 +122,7 @@ public class SmtpSender extends Sender { result = executeSimpleCommand("EHLO " + localHost); } else { if (MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, "TLS not supported but required"); + LogUtils.d(Logging.LOG_TAG, "TLS not supported but required"); } throw new MessagingException(MessagingException.TLS_REQUIRED); } @@ -144,19 +144,19 @@ public class SmtpSender extends Sender { } else { if (MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, "No valid authentication mechanism found."); + LogUtils.d(Logging.LOG_TAG, "No valid authentication mechanism found."); } throw new MessagingException(MessagingException.AUTH_REQUIRED); } } } catch (SSLException e) { if (MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, e.toString()); + LogUtils.d(Logging.LOG_TAG, e.toString()); } throw new CertificateValidationException(e.getMessage(), e); } catch (IOException ioe) { if (MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, ioe.toString()); + LogUtils.d(Logging.LOG_TAG, ioe.toString()); } throw new MessagingException(MessagingException.IOERROR, ioe.toString()); } diff --git a/src/com/android/email/mail/transport/StatusOutputStream.java b/src/com/android/email/mail/transport/StatusOutputStream.java index 3ffcdc7e6..af78eee0b 100644 --- a/src/com/android/email/mail/transport/StatusOutputStream.java +++ b/src/com/android/email/mail/transport/StatusOutputStream.java @@ -17,8 +17,7 @@ package com.android.email.mail.transport; import com.android.emailcommon.Logging; - -import android.util.Log; +import com.android.mail.utils.LogUtils; import java.io.FilterOutputStream; import java.io.IOException; @@ -26,7 +25,7 @@ import java.io.OutputStream; public class StatusOutputStream extends FilterOutputStream { private long mCount = 0; - + public StatusOutputStream(OutputStream out) { super(out); } @@ -37,7 +36,7 @@ public class StatusOutputStream extends FilterOutputStream { mCount++; if (Logging.LOGD) { if (mCount % 1024 == 0) { - Log.v(Logging.LOG_TAG, "# " + mCount); + LogUtils.v(Logging.LOG_TAG, "# " + mCount); } } } diff --git a/src/com/android/email/provider/AccountReconciler.java b/src/com/android/email/provider/AccountReconciler.java index 1412aaf55..93c510e6a 100644 --- a/src/com/android/email/provider/AccountReconciler.java +++ b/src/com/android/email/provider/AccountReconciler.java @@ -22,13 +22,13 @@ import android.accounts.AuthenticatorException; import android.accounts.OperationCanceledException; import android.content.Context; import android.net.Uri; -import android.util.Log; import com.android.email.NotificationController; import com.android.emailcommon.Logging; import com.android.emailcommon.provider.Account; import com.android.emailcommon.provider.EmailContent; import com.android.emailcommon.provider.Mailbox; +import com.android.mail.utils.LogUtils; import com.google.common.annotations.VisibleForTesting; import java.io.IOException; @@ -118,10 +118,10 @@ public class AccountReconciler { if (EmailContent.count(providerContext, Mailbox.CONTENT_URI, Mailbox.ACCOUNT_KEY + "=?", new String[] { Long.toString(providerAccount.mId) } ) > 0) { - Log.w(Logging.LOG_TAG, + LogUtils.w(Logging.LOG_TAG, "Account reconciler found wrongly incomplete account"); } else { - Log.w(Logging.LOG_TAG, + LogUtils.w(Logging.LOG_TAG, "Account reconciler noticed incomplete account; ignoring"); continue; } @@ -130,7 +130,7 @@ public class AccountReconciler { needsReconciling = true; if (performReconciliation) { // This account has been deleted in the AccountManager! - Log.d(Logging.LOG_TAG, + LogUtils.d(Logging.LOG_TAG, "Account deleted in AccountManager; deleting from provider: " + providerAccountName); Uri uri = EmailProvider.uiUri("uiaccount", providerAccount.mId); @@ -159,7 +159,7 @@ public class AccountReconciler { needsReconciling = true; if (performReconciliation) { - Log.d(Logging.LOG_TAG, + LogUtils.d(Logging.LOG_TAG, "Account deleted from provider; deleting from AccountManager: " + accountManagerAccountName); // Delete the account @@ -170,11 +170,11 @@ public class AccountReconciler { // here, as there is nothing to actually do about them. blockingResult.getResult(); } catch (OperationCanceledException e) { - Log.w(Logging.LOG_TAG, e.toString()); + LogUtils.w(Logging.LOG_TAG, e.toString()); } catch (AuthenticatorException e) { - Log.w(Logging.LOG_TAG, e.toString()); + LogUtils.w(Logging.LOG_TAG, e.toString()); } catch (IOException e) { - Log.w(Logging.LOG_TAG, e.toString()); + LogUtils.w(Logging.LOG_TAG, e.toString()); } } } diff --git a/src/com/android/email/provider/AttachmentProvider.java b/src/com/android/email/provider/AttachmentProvider.java index 3780e2226..4839c8927 100644 --- a/src/com/android/email/provider/AttachmentProvider.java +++ b/src/com/android/email/provider/AttachmentProvider.java @@ -28,7 +28,6 @@ import android.graphics.BitmapFactory; import android.net.Uri; import android.os.Binder; import android.os.ParcelFileDescriptor; -import android.util.Log; import com.android.emailcommon.Logging; import com.android.emailcommon.internet.MimeUtility; @@ -37,6 +36,7 @@ import com.android.emailcommon.provider.EmailContent.Attachment; import com.android.emailcommon.provider.EmailContent.AttachmentColumns; import com.android.emailcommon.utility.AttachmentUtilities; import com.android.emailcommon.utility.AttachmentUtilities.Columns; +import com.android.mail.utils.LogUtils; import com.android.mail.utils.MatrixCursorWithCachedColumns; import java.io.File; @@ -202,11 +202,11 @@ public class AttachmentProvider extends ContentProvider { out.close(); in.close(); } catch (IOException ioe) { - Log.d(Logging.LOG_TAG, "openFile/thumbnail failed with " + + LogUtils.d(Logging.LOG_TAG, "openFile/thumbnail failed with " + ioe.getMessage()); return null; } catch (OutOfMemoryError oome) { - Log.d(Logging.LOG_TAG, "openFile/thumbnail failed with " + + LogUtils.d(Logging.LOG_TAG, "openFile/thumbnail failed with " + oome.getMessage()); return null; } @@ -305,22 +305,22 @@ public class AttachmentProvider extends ContentProvider { return 0; } - private Bitmap createThumbnail(String type, InputStream data) { + private static Bitmap createThumbnail(String type, InputStream data) { if(MimeUtility.mimeTypeMatches(type, "image/*")) { return createImageThumbnail(data); } return null; } - private Bitmap createImageThumbnail(InputStream data) { + private static Bitmap createImageThumbnail(InputStream data) { try { Bitmap bitmap = BitmapFactory.decodeStream(data); return bitmap; } catch (OutOfMemoryError oome) { - Log.d(Logging.LOG_TAG, "createImageThumbnail failed with " + oome.getMessage()); + LogUtils.d(Logging.LOG_TAG, "createImageThumbnail failed with " + oome.getMessage()); return null; } catch (Exception e) { - Log.d(Logging.LOG_TAG, "createImageThumbnail failed with " + e.getMessage()); + LogUtils.d(Logging.LOG_TAG, "createImageThumbnail failed with " + e.getMessage()); return null; } } diff --git a/src/com/android/email/provider/ContentCache.java b/src/com/android/email/provider/ContentCache.java index 4051d3f26..61afe6b94 100644 --- a/src/com/android/email/provider/ContentCache.java +++ b/src/com/android/email/provider/ContentCache.java @@ -23,10 +23,10 @@ import android.database.CursorWindow; import android.database.CursorWrapper; import android.database.MatrixCursor; import android.net.Uri; -import android.util.Log; import android.util.LruCache; import com.android.email2.ui.MailActivityEmail; +import com.android.mail.utils.LogUtils; import com.android.mail.utils.MatrixCursorWithCachedColumns; import com.google.common.annotations.VisibleForTesting; @@ -186,7 +186,7 @@ public final class ContentCache { /*package*/ int invalidateTokens(String id) { if (MailActivityEmail.DEBUG && DEBUG_TOKENS) { - Log.d(mLogTag, "============ Invalidate tokens for: " + id); + LogUtils.d(mLogTag, "============ Invalidate tokens for: " + id); } ArrayList removeList = new ArrayList(); int count = 0; @@ -205,7 +205,7 @@ public final class ContentCache { /*package*/ void invalidate() { if (MailActivityEmail.DEBUG && DEBUG_TOKENS) { - Log.d(mLogTag, "============ List invalidated"); + LogUtils.d(mLogTag, "============ List invalidated"); } for (CacheToken token: this) { token.invalidate(); @@ -217,9 +217,9 @@ public final class ContentCache { boolean result = super.remove(token); if (MailActivityEmail.DEBUG && DEBUG_TOKENS) { if (result) { - Log.d(mLogTag, "============ Removing token for: " + token.mId); + LogUtils.d(mLogTag, "============ Removing token for: " + token.mId); } else { - Log.d(mLogTag, "============ No token found for: " + token.mId); + LogUtils.d(mLogTag, "============ No token found for: " + token.mId); } } return result; @@ -229,7 +229,7 @@ public final class ContentCache { CacheToken token = new CacheToken(id); super.add(token); if (MailActivityEmail.DEBUG && DEBUG_TOKENS) { - Log.d(mLogTag, "============ Taking token for: " + token.mId); + LogUtils.d(mLogTag, "============ Taking token for: " + token.mId); } return token; } @@ -484,14 +484,14 @@ public final class ContentCache { try { if (!token.isValid()) { if (MailActivityEmail.DEBUG && DEBUG_CACHE) { - Log.d(mLogTag, "============ Stale token for " + id); + LogUtils.d(mLogTag, "============ Stale token for " + id); } mStats.mStaleCount++; return c; } if (c != null && Arrays.equals(projection, mBaseProjection) && !sLockCache) { if (MailActivityEmail.DEBUG && DEBUG_CACHE) { - Log.d(mLogTag, "============ Caching cursor for: " + id); + LogUtils.d(mLogTag, "============ Caching cursor for: " + id); } // If we've already cached this cursor, invalidate the older one Cursor existingCursor = get(id); @@ -596,7 +596,7 @@ public final class ContentCache { // Invalidate current tokens int count = mTokenList.invalidateTokens(id); if (MailActivityEmail.DEBUG && DEBUG_TOKENS) { - Log.d(mTokenList.mLogTag, "============ Lock invalidated " + count + + LogUtils.d(mTokenList.mLogTag, "============ Lock invalidated " + count + " tokens for: " + id); } } @@ -633,13 +633,13 @@ public final class ContentCache { Cursor c = get(id); if (c != null) { if (MailActivityEmail.DEBUG && DEBUG_CACHE) { - Log.d(mLogTag, "=========== Unlocking cache for: " + id); + LogUtils.d(mLogTag, "=========== Unlocking cache for: " + id); } if (values != null && !sLockCache) { MatrixCursor cursor = getMatrixCursor(id, mBaseProjection, values); if (cursor != null) { if (MailActivityEmail.DEBUG && DEBUG_CACHE) { - Log.d(mLogTag, "=========== Recaching with new values: " + id); + LogUtils.d(mLogTag, "=========== Recaching with new values: " + id); } cursor.moveToFirst(); mLruCache.put(id, cursor); @@ -676,7 +676,7 @@ public final class ContentCache { */ public synchronized void invalidate(String operation, Uri uri, String selection) { if (DEBUG_CACHE && (operation != null)) { - Log.d(mLogTag, "============ INVALIDATED BY " + operation + ": " + uri + + LogUtils.d(mLogTag, "============ INVALIDATED BY " + operation + ": " + uri + ", SELECTION: " + selection); } mStats.mInvalidateCount++; @@ -740,7 +740,7 @@ public final class ContentCache { } Arrays.sort(array); for (CacheCounter cc: array) { - Log.d("NotCacheable", cc.count + ": " + cc.uri); + LogUtils.d("NotCacheable", cc.count + ": " + cc.uri); } } @@ -842,10 +842,10 @@ public final class ContentCache { for (ContentCache cache: sContentCaches) { if (cache != null) { - Log.d(cache.mName, cache.mStats.toString()); + LogUtils.d(cache.mName, cache.mStats.toString()); totals.addCacheStatistics(cache); } } - Log.d(totals.mName, totals.toString()); + LogUtils.d(totals.mName, totals.toString()); } } diff --git a/src/com/android/email/provider/DBHelper.java b/src/com/android/email/provider/DBHelper.java index 137310107..2c3770e89 100644 --- a/src/com/android/email/provider/DBHelper.java +++ b/src/com/android/email/provider/DBHelper.java @@ -27,7 +27,6 @@ import android.database.sqlite.SQLiteOpenHelper; import android.provider.CalendarContract; import android.provider.ContactsContract; import android.text.TextUtils; -import android.util.Log; import com.android.email.R; import com.android.email2.ui.MailActivityEmail; @@ -514,7 +513,7 @@ public final class DBHelper { + " add " + BodyColumns.INTRO_TEXT + " text"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProviderBody.db from v5 to v6", e); + LogUtils.w(TAG, "Exception upgrading EmailProviderBody.db from v5 to v6", e); } oldVersion = 6; } @@ -524,7 +523,7 @@ public final class DBHelper { + " add " + BodyColumns.QUOTED_TEXT_START_POS + " integer"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProviderBody.db from v6 to v8", e); + LogUtils.w(TAG, "Exception upgrading EmailProviderBody.db from v6 to v8", e); } oldVersion = 8; } @@ -541,7 +540,7 @@ public final class DBHelper { @Override public void onCreate(SQLiteDatabase db) { - Log.d(TAG, "Creating EmailProviderBody database"); + LogUtils.d(TAG, "Creating EmailProviderBody database"); createBodyTable(db); } @@ -574,7 +573,7 @@ public final class DBHelper { @Override public void onCreate(SQLiteDatabase db) { - Log.d(TAG, "Creating EmailProvider database"); + LogUtils.d(TAG, "Creating EmailProvider database"); // Create all tables here; each class has its own method createMessageTable(db); createAttachmentTable(db); @@ -588,7 +587,7 @@ public final class DBHelper { @Override public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) { if (oldVersion == 101 && newVersion == 100) { - Log.d(TAG, "Downgrade from v101 to v100"); + LogUtils.d(TAG, "Downgrade from v101 to v100"); } else { super.onDowngrade(db, oldVersion, newVersion); } @@ -623,7 +622,7 @@ public final class DBHelper { + " add column " + SyncColumns.SERVER_TIMESTAMP + " integer" + ";"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from v5 to v6", e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from v5 to v6", e); } oldVersion = 6; } @@ -640,7 +639,7 @@ public final class DBHelper { + " add column " + AccountColumns.SECURITY_FLAGS + " integer" + ";"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from 7 to 8 " + e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 7 to 8 " + e); } oldVersion = 8; } @@ -653,7 +652,7 @@ public final class DBHelper { + " add column " + AccountColumns.SIGNATURE + " text" + ";"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from 8 to 9 " + e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 8 to 9 " + e); } oldVersion = 9; } @@ -668,7 +667,7 @@ public final class DBHelper { + " add column " + MessageColumns.MEETING_INFO + " text" + ";"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from 9 to 10 " + e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 9 to 10 " + e); } oldVersion = 10; } @@ -681,7 +680,7 @@ public final class DBHelper { + " add column " + AttachmentColumns.FLAGS + " integer" + ";"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from 10 to 11 " + e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 10 to 11 " + e); } oldVersion = 11; } @@ -692,7 +691,7 @@ public final class DBHelper { + " add column " + AttachmentColumns.CONTENT_BYTES + " blob" + ";"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from 11 to 12 " + e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 11 to 12 " + e); } oldVersion = 12; } @@ -704,7 +703,7 @@ public final class DBHelper { recalculateMessageCount(db); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from 12 to 13 " + e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 12 to 13 " + e); } oldVersion = 13; } @@ -715,7 +714,7 @@ public final class DBHelper { +" text" + ";"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from 13 to 14 " + e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 13 to 14 " + e); } oldVersion = 14; } @@ -727,7 +726,7 @@ public final class DBHelper { + " add column " + Message.SNIPPET +" text" + ";"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from 14 to 15 " + e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 14 to 15 " + e); } oldVersion = 15; } @@ -743,7 +742,7 @@ public final class DBHelper { Attachment.TABLE_NAME + "." + Attachment.MESSAGE_KEY + ")"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from 15 to 16 " + e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 15 to 16 " + e); } oldVersion = 16; } @@ -753,7 +752,7 @@ public final class DBHelper { + " add column " + Mailbox.PARENT_KEY + " integer;"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from 16 to 17 " + e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 16 to 17 " + e); } oldVersion = 17; } @@ -771,7 +770,7 @@ public final class DBHelper { convertPolicyFlagsToPolicyTable(db); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from 18 to 19 " + e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 18 to 19 " + e); } oldVersion = 19; } @@ -803,7 +802,7 @@ public final class DBHelper { " integer;"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from 19 to 20 " + e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 19 to 20 " + e); } oldVersion = 20; } @@ -840,7 +839,7 @@ public final class DBHelper { + " add column " + Message.PROTOCOL_SEARCH_INFO +" text" + ";"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from 26 to 27 " + e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 26 to 27 " + e); } oldVersion = 27; } @@ -855,7 +854,7 @@ public final class DBHelper { + " add column " + Policy.PROTOCOL_POLICIES_UNSUPPORTED + " text;"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from 28 to 29 " + e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 28 to 29 " + e); } oldVersion = 29; } @@ -871,7 +870,7 @@ public final class DBHelper { + " add column " + Mailbox.UI_LAST_SYNC_RESULT + " integer;"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from 30 to 31 " + e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 30 to 31 " + e); } oldVersion = 31; } @@ -887,7 +886,7 @@ public final class DBHelper { "=0 where " + Mailbox.LAST_NOTIFIED_MESSAGE_COUNT + " IS NULL"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from 31 to 32 " + e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 31 to 32 " + e); } oldVersion = 32; } @@ -906,7 +905,7 @@ public final class DBHelper { AttachmentColumns.CONTENT_URI + " is not null;"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from 32 to 33 " + e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 32 to 33 " + e); } oldVersion = 33; } @@ -916,7 +915,7 @@ public final class DBHelper { + " add column " + MailboxColumns.TOTAL_COUNT + " integer;"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from 33 to 34 " + e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 33 to 34 " + e); } oldVersion = 34; } @@ -932,7 +931,7 @@ public final class DBHelper { " = " + Mailbox.TYPE_SENT); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from 34 to 35 " + e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 34 to 35 " + e); } oldVersion = 35; } @@ -951,7 +950,7 @@ public final class DBHelper { LEGACY_SCHEME_EAS + "')"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from 35 to 36 " + e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 35 to 36 " + e); } oldVersion = 37; } @@ -961,7 +960,7 @@ public final class DBHelper { + " add column " + MessageColumns.THREAD_TOPIC + " text;"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from 37 to 38 " + e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 37 to 38 " + e); } oldVersion = 38; } @@ -973,7 +972,7 @@ public final class DBHelper { + " add column " + MessageColumns.THREAD_TOPIC + " text;"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from 38 to 39 " + e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 38 to 39 " + e); } oldVersion = 39; } @@ -987,7 +986,7 @@ public final class DBHelper { + " add " + MailboxColumns.HIERARCHICAL_NAME + " text"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from v10x to v103", e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from v10x to v103", e); } oldVersion = 103; } @@ -997,7 +996,7 @@ public final class DBHelper { + " add " + MessageColumns.SYNC_DATA + " text"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from v103 to v104", e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from v103 to v104", e); } oldVersion = 104; } @@ -1009,7 +1008,7 @@ public final class DBHelper { + " add " + MessageColumns.SYNC_DATA + " text"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from v104 to v105", e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from v104 to v105", e); } oldVersion = 105; } @@ -1019,7 +1018,7 @@ public final class DBHelper { + " add " + HostAuthColumns.SERVER_CERT + " blob"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from v105 to v106", e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from v105 to v106", e); } oldVersion = 106; } @@ -1033,7 +1032,7 @@ public final class DBHelper { + " add " + MessageColumns.FLAG_SEEN + " integer"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from v106 to v107", e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from v106 to v107", e); } oldVersion = 107; } @@ -1044,7 +1043,7 @@ public final class DBHelper { oldVersion = 108; } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from v107 to v108", e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from v107 to v108", e); } } @@ -1128,7 +1127,7 @@ public final class DBHelper { + HostAuth.TABLE_NAME + "." + HostAuthColumns.PROTOCOL + "='pop3' ) )"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from 17 to 18 " + e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 17 to 18 " + e); } ContentCache.invalidateAllCaches(); } @@ -1213,9 +1212,9 @@ public final class DBHelper { // If this is a pop3 or imap account, create the account manager // account if (MailActivityEmail.DEBUG) { - Log.d(TAG, "Create AccountManager account for " + protocol + - "account: " + - accountCursor.getString(V21_ACCOUNT_EMAIL)); + LogUtils.d(TAG, "Create AccountManager account for " + protocol + + "account: " + + accountCursor.getString(V21_ACCOUNT_EMAIL)); } createAccountManagerAccount(accountManagerContext, accountCursor.getString(V21_ACCOUNT_EMAIL), @@ -1242,7 +1241,7 @@ public final class DBHelper { } } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception while migrating accounts " + e); + LogUtils.w(TAG, "Exception while migrating accounts " + e); } } @@ -1253,7 +1252,7 @@ public final class DBHelper { + " add column " + Mailbox.LAST_TOUCHED_TIME + " integer default 0;"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from 22 to 23 " + e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 22 to 23 " + e); } } @@ -1264,7 +1263,7 @@ public final class DBHelper { + " add column " + HostAuth.CLIENT_CERT_ALIAS + " text;"); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from 23 to 24 " + e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 23 to 24 " + e); } } @@ -1274,7 +1273,7 @@ public final class DBHelper { createQuickResponseTable(db); } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from 24 to 25 " + e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 24 to 25 " + e); } } @@ -1323,7 +1322,7 @@ public final class DBHelper { } } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from 25 to 26 " + e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 25 to 26 " + e); } } @@ -1359,7 +1358,7 @@ public final class DBHelper { } } catch (SQLException e) { // Shouldn't be needed unless we're debugging and interrupt the process - Log.w(TAG, "Exception upgrading EmailProvider.db from 29 to 30 " + e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 29 to 30 " + e); } } @@ -1374,7 +1373,7 @@ public final class DBHelper { db.execSQL("update Mailbox set " + Mailbox.LAST_NOTIFIED_MESSAGE_COUNT + "=0 where " + Mailbox.LAST_NOTIFIED_MESSAGE_COUNT + " IS NULL"); } catch (SQLException e) { - Log.w(TAG, "Exception upgrading EmailProvider.db from 31 to 32/100 " + e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 31 to 32/100 " + e); } // From 32->33 upgrade @@ -1383,7 +1382,7 @@ public final class DBHelper { "=" + UIProvider.AttachmentState.SAVED + " where " + AttachmentColumns.CONTENT_URI + " is not null;"); } catch (SQLException e) { - Log.w(TAG, "Exception upgrading EmailProvider.db from 32 to 33/100 " + e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 32 to 33/100 " + e); } // From 34->35 upgrade @@ -1397,7 +1396,7 @@ public final class DBHelper { Mailbox.SENT_DEFAULT_TOUCH_TIME + " WHERE " + MailboxColumns.TYPE + " = " + Mailbox.TYPE_SENT); } catch (SQLException e) { - Log.w(TAG, "Exception upgrading EmailProvider.db from 34 to 35/100 " + e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 34 to 35/100 " + e); } // From 35/36->37 @@ -1413,7 +1412,7 @@ public final class DBHelper { HostAuthColumns.ID + " and " + HostAuthColumns.PROTOCOL + "='" + LEGACY_SCHEME_EAS + "')"); } catch (SQLException e) { - Log.w(TAG, "Exception upgrading EmailProvider.db from 35/36 to 37/100 " + e); + LogUtils.w(TAG, "Exception upgrading EmailProvider.db from 35/36 to 37/100 " + e); } } } diff --git a/src/com/android/email/provider/EmailProvider.java b/src/com/android/email/provider/EmailProvider.java index 24e8eeda1..ef617559a 100644 --- a/src/com/android/email/provider/EmailProvider.java +++ b/src/com/android/email/provider/EmailProvider.java @@ -48,7 +48,6 @@ import android.provider.BaseColumns; import android.text.TextUtils; import android.text.format.DateUtils; import android.util.Base64; -import android.util.Log; import com.android.common.content.ProjectionMap; import com.android.email.Preferences; @@ -94,6 +93,7 @@ import com.android.mail.providers.UIProvider.ConversationPriority; import com.android.mail.providers.UIProvider.ConversationSendingState; import com.android.mail.providers.UIProvider.DraftType; import com.android.mail.utils.AttachmentUtils; +import com.android.mail.utils.LogTag; import com.android.mail.utils.LogUtils; import com.android.mail.utils.MatrixCursorWithCachedColumns; import com.android.mail.utils.MatrixCursorWithExtra; @@ -122,7 +122,7 @@ import java.util.regex.Pattern; */ public class EmailProvider extends ContentProvider { - private static final String TAG = "EmailProvider"; + private static final String TAG = LogTag.getLogTag(); public static String EMAIL_APP_MIME_TYPE; @@ -307,7 +307,7 @@ public class EmailProvider extends ContentProvider { if (match < 0) { throw new IllegalArgumentException("Unknown uri: " + uri); } else if (Logging.LOGD) { - Log.v(TAG, methodName + ": uri=" + uri + ", match is " + match); + LogUtils.v(TAG, methodName + ": uri=" + uri + ", match is " + match); } return match; } @@ -347,7 +347,7 @@ public class EmailProvider extends ContentProvider { int count = db.delete(table, column + " not in (select " + foreignColumn + " from " + foreignTable + ")", null); if (count > 0) { - Log.w(TAG, "Found " + count + " orphaned row(s) in " + table); + LogUtils.w(TAG, "Found " + count + " orphaned row(s) in " + table); } } @@ -401,7 +401,7 @@ public class EmailProvider extends ContentProvider { */ private static void restoreIfNeeded(Context context, SQLiteDatabase mainDatabase) { if (MailActivityEmail.DEBUG) { - Log.w(TAG, "restoreIfNeeded..."); + LogUtils.w(TAG, "restoreIfNeeded..."); } // Check for legacy backup String legacyBackup = Preferences.getLegacyBackupPreference(context); @@ -411,7 +411,7 @@ public class EmailProvider extends ContentProvider { if (!TextUtils.isEmpty(legacyBackup)) { backupAccounts(context, mainDatabase); Preferences.clearLegacyBackupPreference(context); - Log.w(TAG, "Created new EmailProvider backup database"); + LogUtils.w(TAG, "Created new EmailProvider backup database"); return; } @@ -421,7 +421,7 @@ public class EmailProvider extends ContentProvider { try { if (c.moveToFirst()) { if (MailActivityEmail.DEBUG) { - Log.w(TAG, "restoreIfNeeded: Account exists."); + LogUtils.w(TAG, "restoreIfNeeded: Account exists."); } return; // At least one account exists. } @@ -985,10 +985,10 @@ public class EmailProvider extends ContentProvider { // TODO Make sure attachments are deleted if (databaseFile.exists() && !bodyFile.exists()) { - Log.w(TAG, "Deleting orphaned EmailProvider database..."); + LogUtils.w(TAG, "Deleting orphaned EmailProvider database..."); databaseFile.delete(); } else if (bodyFile.exists() && !databaseFile.exists()) { - Log.w(TAG, "Deleting orphaned EmailProviderBody database..."); + LogUtils.w(TAG, "Deleting orphaned EmailProviderBody database..."); bodyFile.delete(); } } @@ -1170,7 +1170,8 @@ public class EmailProvider extends ContentProvider { // TODO: There are actually cases where c == null is expected, for example // UI_FOLDER_LOAD_MORE. // Demoting this to a warning for now until we figure out what to do with it. - Log.w(TAG, "Query returning null for uri: " + uri + ", selection: " + selection); + LogUtils.w(TAG, "Query returning null for uri: " + uri + ", selection: " + + selection); } } @@ -1259,7 +1260,7 @@ public class EmailProvider extends ContentProvider { Cursor c = fromDatabase.query(Account.TABLE_NAME, Account.CONTENT_PROJECTION, null, null, null, null, null); if (c == null) return 0; - Log.d(TAG, "fromDatabase accounts: " + c.getCount()); + LogUtils.d(TAG, "fromDatabase accounts: " + c.getCount()); try { // Loop through accounts, copying them and associated host auth's while (c.moveToNext()) { @@ -1306,14 +1307,14 @@ public class EmailProvider extends ContentProvider { toDatabase.setTransactionSuccessful(); } finally { // STOPSHIP: Remove logging here and in at endTransaction() below - Log.d(TAG, "ending toDatabase transaction; copyCount = " + copyCount); + LogUtils.d(TAG, "ending toDatabase transaction; copyCount = " + copyCount); toDatabase.endTransaction(); } } catch (SQLiteException ex) { - Log.w(TAG, "Exception while copying account tables", ex); + LogUtils.w(TAG, "Exception while copying account tables", ex); copyCount = -1; } finally { - Log.d(TAG, "ending fromDatabase transaction; copyCount = " + copyCount); + LogUtils.d(TAG, "ending fromDatabase transaction; copyCount = " + copyCount); fromDatabase.endTransaction(); } return copyCount; @@ -1329,15 +1330,15 @@ public class EmailProvider extends ContentProvider { */ private static int backupAccounts(Context context, SQLiteDatabase mainDatabase) { if (MailActivityEmail.DEBUG) { - Log.d(TAG, "backupAccounts..."); + LogUtils.d(TAG, "backupAccounts..."); } SQLiteDatabase backupDatabase = getBackupDatabase(context); try { int numBackedUp = copyAccountTables(mainDatabase, backupDatabase); if (numBackedUp < 0) { - Log.e(TAG, "Account backup failed!"); + LogUtils.e(TAG, "Account backup failed!"); } else if (MailActivityEmail.DEBUG) { - Log.d(TAG, "Backed up " + numBackedUp + " accounts..."); + LogUtils.d(TAG, "Backed up " + numBackedUp + " accounts..."); } return numBackedUp; } finally { @@ -1352,17 +1353,17 @@ public class EmailProvider extends ContentProvider { */ private static int restoreAccounts(Context context, SQLiteDatabase mainDatabase) { if (MailActivityEmail.DEBUG) { - Log.d(TAG, "restoreAccounts..."); + LogUtils.d(TAG, "restoreAccounts..."); } SQLiteDatabase backupDatabase = getBackupDatabase(context); try { int numRecovered = copyAccountTables(backupDatabase, mainDatabase); if (numRecovered > 0) { - Log.e(TAG, "Recovered " + numRecovered + " accounts!"); + LogUtils.e(TAG, "Recovered " + numRecovered + " accounts!"); } else if (numRecovered < 0) { - Log.e(TAG, "Account recovery failed?"); + LogUtils.e(TAG, "Account recovery failed?"); } else if (MailActivityEmail.DEBUG) { - Log.d(TAG, "No accounts to restore..."); + LogUtils.d(TAG, "No accounts to restore..."); } return numRecovered; } finally { @@ -2509,16 +2510,17 @@ public class EmailProvider extends ContentProvider { service.setTimeout(10); acct = Account.restoreAccountWithId(context, accountId); if (acct == null) { - Log.d(TAG, "getCapabilities() for " + accountId + ": returning 0x0 (no account)"); + LogUtils.d(TAG, "getCapabilities() for " + accountId + + ": returning 0x0 (no account)"); return 0; } capabilities = service.getCapabilities(acct); // STOPSHIP - Log.d(TAG, "getCapabilities() for " + acct.mDisplayName + ": 0x" + + LogUtils.d(TAG, "getCapabilities() for " + acct.mDisplayName + ": 0x" + Integer.toHexString(capabilities) + getBits(capabilities)); } catch (RemoteException e) { // Nothing to do - Log.w(TAG, "getCapabilities() for " + acct.mDisplayName + ": RemoteException"); + LogUtils.w(TAG, "getCapabilities() for " + acct.mDisplayName + ": RemoteException"); } // If the configuration states that feedback is supported, add that capability @@ -3288,7 +3290,7 @@ public class EmailProvider extends ContentProvider { @Override public void close() { super.close(); - Log.d(TAG, "Closing cursor", new Error()); + LogUtils.d(TAG, "Closing cursor", new Error()); } } @@ -4097,7 +4099,7 @@ public class EmailProvider extends ContentProvider { notifyUI(UIPROVIDER_CONVERSATION_NOTIFIER, Long.toString(id)); Mailbox mailbox = Mailbox.restoreMailboxWithId(getContext(), id); if (mailbox == null) { - Log.w(TAG, "No mailbox for notification: " + id); + LogUtils.w(TAG, "No mailbox for notification: " + id); return; } // Notify combined inbox... @@ -4246,7 +4248,7 @@ public class EmailProvider extends ContentProvider { return; } - Log.d(TAG, "Setting sync interval for account " + accountId + " to " + syncInterval + + LogUtils.d(TAG, "Setting sync interval for account " + accountId + " to " + syncInterval + " minutes"); // TODO: Ideally we don't need to do this every time we change the sync interval. @@ -4348,7 +4350,7 @@ public class EmailProvider extends ContentProvider { mSearchParams.mTotalCount); notifyUIFolder(searchMailboxId, accountId); } catch (RemoteException e) { - Log.e("searchMessages", "RemoteException", e); + LogUtils.e("searchMessages", "RemoteException", e); } } return null; @@ -4364,7 +4366,8 @@ public class EmailProvider extends ContentProvider { // TODO: Check the actual mailbox Mailbox inbox = Mailbox.restoreMailboxOfType(getContext(), accountId, Mailbox.TYPE_INBOX); if (inbox == null) { - Log.w(Logging.LOG_TAG, "In uiSearch, inbox doesn't exist for account " + accountId); + LogUtils.w(Logging.LOG_TAG, "In uiSearch, inbox doesn't exist for account " + + accountId); return null; } @@ -4434,7 +4437,7 @@ public class EmailProvider extends ContentProvider { MailActivityEmail.setServicesEnabledSync(context); return 1; } catch (Exception e) { - Log.w(Logging.LOG_TAG, "Exception while deleting account", e); + LogUtils.w(Logging.LOG_TAG, "Exception while deleting account", e); } return 0; } diff --git a/src/com/android/email/provider/FolderPickerActivity.java b/src/com/android/email/provider/FolderPickerActivity.java index cebdae67c..8fd590761 100644 --- a/src/com/android/email/provider/FolderPickerActivity.java +++ b/src/com/android/email/provider/FolderPickerActivity.java @@ -27,7 +27,6 @@ import android.database.ContentObserver; import android.net.Uri; import android.os.Bundle; import android.os.Handler; -import android.util.Log; import com.android.email.R; import com.android.emailcommon.provider.Account; @@ -36,6 +35,7 @@ import com.android.emailcommon.provider.Mailbox; import com.android.emailcommon.provider.EmailContent.AccountColumns; import com.android.emailcommon.provider.EmailContent.MailboxColumns; import com.android.mail.providers.Folder; +import com.android.mail.utils.LogUtils; public class FolderPickerActivity extends Activity implements FolderPickerCallback { private static final String TAG = "FolderPickerActivity"; @@ -47,6 +47,7 @@ public class FolderPickerActivity extends Activity implements FolderPickerCallba private String mAccountName; private boolean mInSetup = true; + @Override public void onCreate(Bundle bundle) { super.onCreate(bundle); Intent i = getIntent(); @@ -58,14 +59,14 @@ public class FolderPickerActivity extends Activity implements FolderPickerCallba if (uri != null) { String id = uri.getQueryParameter("account"); if (id == null) { - Log.w(TAG, "No account # in Uri?"); + LogUtils.w(TAG, "No account # in Uri?"); finish(); return; } try { mAccountId = Long.parseLong(id); } catch (NumberFormatException e) { - Log.w(TAG, "Invalid account # in Uri?"); + LogUtils.w(TAG, "Invalid account # in Uri?"); finish(); return; } @@ -75,13 +76,13 @@ public class FolderPickerActivity extends Activity implements FolderPickerCallba long trashMailboxId = Mailbox.findMailboxOfType(this, mAccountId, Mailbox.TYPE_TRASH); // If we already have a trash mailbox, we're done (if in setup; a race?) if (trashMailboxId != Mailbox.NO_MAILBOX && mInSetup) { - Log.w(TAG, "Trash folder already exists"); + LogUtils.w(TAG, "Trash folder already exists"); finish(); return; } Account account = Account.restoreAccountWithId(this, mAccountId); if (account == null) { - Log.w(TAG, "No account?"); + LogUtils.w(TAG, "No account?"); finish(); } else { mAccountName = account.mDisplayName; @@ -109,6 +110,7 @@ public class FolderPickerActivity extends Activity implements FolderPickerCallba } } + @Override public void onDestroy() { super.onDestroy(); // Clean up @@ -130,6 +132,7 @@ public class FolderPickerActivity extends Activity implements FolderPickerCallba mContext = context; } + @Override public void onChange(boolean selfChange) { Account account = Account.restoreAccountWithId(mContext, mAccountId); // All we care about is whether the folder list is now loaded @@ -208,6 +211,7 @@ public class FolderPickerActivity extends Activity implements FolderPickerCallba finish(); } + @Override public void cancel() { finish(); } diff --git a/src/com/android/email/provider/Utilities.java b/src/com/android/email/provider/Utilities.java index e60c482f0..c21bfa94d 100644 --- a/src/com/android/email/provider/Utilities.java +++ b/src/com/android/email/provider/Utilities.java @@ -21,7 +21,6 @@ import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.net.Uri; -import android.util.Log; import com.android.email.LegacyConversions; import com.android.emailcommon.Logging; @@ -35,6 +34,7 @@ import com.android.emailcommon.provider.EmailContent.MessageColumns; import com.android.emailcommon.provider.EmailContent.SyncColumns; import com.android.emailcommon.provider.Mailbox; import com.android.emailcommon.utility.ConversionUtilities; +import com.android.mail.utils.LogUtils; import java.io.IOException; import java.util.ArrayList; @@ -158,13 +158,13 @@ public class Utilities { context.getContentResolver().update(uri, cv, null, null); } catch (MessagingException me) { - Log.e(Logging.LOG_TAG, "Error while copying downloaded message." + me); + LogUtils.e(Logging.LOG_TAG, "Error while copying downloaded message." + me); } } catch (RuntimeException rte) { - Log.e(Logging.LOG_TAG, "Error while storing downloaded message." + rte.toString()); + LogUtils.e(Logging.LOG_TAG, "Error while storing downloaded message." + rte.toString()); } catch (IOException ioe) { - Log.e(Logging.LOG_TAG, "Error while storing attachment." + ioe.toString()); + LogUtils.e(Logging.LOG_TAG, "Error while storing attachment." + ioe.toString()); } } diff --git a/src/com/android/email/service/AttachmentDownloadService.java b/src/com/android/email/service/AttachmentDownloadService.java index 25356982c..8f1b02453 100644 --- a/src/com/android/email/service/AttachmentDownloadService.java +++ b/src/com/android/email/service/AttachmentDownloadService.java @@ -30,7 +30,6 @@ import android.net.Uri; import android.os.IBinder; import android.os.RemoteException; import android.text.format.DateUtils; -import android.util.Log; import com.android.email.AttachmentInfo; import com.android.email.EmailConnectivityManager; @@ -46,6 +45,7 @@ import com.android.emailcommon.service.EmailServiceStatus; import com.android.emailcommon.service.IEmailServiceCallback; import com.android.emailcommon.utility.AttachmentUtilities; import com.android.emailcommon.utility.Utility; +import com.android.mail.utils.LogUtils; import java.io.File; import java.io.FileDescriptor; @@ -257,14 +257,14 @@ public class AttachmentDownloadService extends Service implements Runnable { long priority = getPriority(att); if (priority == PRIORITY_NONE) { if (MailActivityEmail.DEBUG) { - Log.d(TAG, "== Attachment changed: " + att.mId); + LogUtils.d(TAG, "== Attachment changed: " + att.mId); } // In this case, there is no download priority for this attachment if (req != null) { // If it exists in the map, remove it // NOTE: We don't yet support deleting downloads in progress if (MailActivityEmail.DEBUG) { - Log.d(TAG, "== Attachment " + att.mId + " was in queue, removing"); + LogUtils.d(TAG, "== Attachment " + att.mId + " was in queue, removing"); } remove(req); } @@ -279,7 +279,7 @@ public class AttachmentDownloadService extends Service implements Runnable { // If the request already existed, we'll update the priority (so that the time is // up-to-date); otherwise, we create a new request if (MailActivityEmail.DEBUG) { - Log.d(TAG, "== Download queued for attachment " + att.mId + ", class " + + LogUtils.d(TAG, "== Download queued for attachment " + att.mId + ", class " + req.priority + ", priority time " + req.time); } } @@ -314,7 +314,8 @@ public class AttachmentDownloadService extends Service implements Runnable { */ /*package*/ synchronized void processQueue() { if (MailActivityEmail.DEBUG) { - Log.d(TAG, "== Checking attachment queue, " + mDownloadSet.size() + " entries"); + LogUtils.d(TAG, "== Checking attachment queue, " + mDownloadSet.size() + + " entries"); } Iterator iterator = mDownloadSet.descendingIterator(); @@ -325,7 +326,7 @@ public class AttachmentDownloadService extends Service implements Runnable { // Enforce per-account limit here if (downloadsForAccount(req.accountId) >= MAX_SIMULTANEOUS_DOWNLOADS_PER_ACCOUNT) { if (MailActivityEmail.DEBUG) { - Log.d(TAG, "== Skip #" + req.attachmentId + "; maxed for acct #" + + LogUtils.d(TAG, "== Skip #" + req.attachmentId + "; maxed for acct #" + req.accountId); } continue; @@ -424,7 +425,7 @@ public class AttachmentDownloadService extends Service implements Runnable { long timeSinceCallback = now - req.lastCallbackTime; if (timeSinceCallback > CALLBACK_TIMEOUT) { if (MailActivityEmail.DEBUG) { - Log.d(TAG, "== Download of " + req.attachmentId + " timed out"); + LogUtils.d(TAG, "== Download of " + req.attachmentId + " timed out"); } cancelDownload(req); } @@ -436,7 +437,7 @@ public class AttachmentDownloadService extends Service implements Runnable { // If there are downloads in progress, reset alarm if (!mDownloadsInProgress.isEmpty()) { if (MailActivityEmail.DEBUG) { - Log.d(TAG, "Reschedule watchdog..."); + LogUtils.d(TAG, "Reschedule watchdog..."); } setWatchdogAlarm(); } @@ -458,7 +459,7 @@ public class AttachmentDownloadService extends Service implements Runnable { try { if (MailActivityEmail.DEBUG) { - Log.d(TAG, ">> Starting download for attachment #" + req.attachmentId); + LogUtils.d(TAG, ">> Starting download for attachment #" + req.attachmentId); } startDownload(service, req); } catch (RemoteException e) { @@ -537,7 +538,7 @@ public class AttachmentDownloadService extends Service implements Runnable { if (statusCode == EmailServiceStatus.CONNECTION_ERROR) { // If this needs to be retried, just process the queue again if (MailActivityEmail.DEBUG) { - Log.d(TAG, "== The download for attachment #" + attachmentId + + LogUtils.d(TAG, "== The download for attachment #" + attachmentId + " will be retried"); } if (req != null) { @@ -558,8 +559,8 @@ public class AttachmentDownloadService extends Service implements Runnable { } String status = (statusCode == EmailServiceStatus.SUCCESS) ? "Success" : "Error " + statusCode; - Log.d(TAG, "<< Download finished for attachment #" + attachmentId + "; " + secs + - " seconds from request, status: " + status); + LogUtils.d(TAG, "<< Download finished for attachment #" + attachmentId + "; " + secs + + " seconds from request, status: " + status); } Attachment attachment = Attachment.restoreAttachmentWithId(mContext, attachmentId); @@ -588,7 +589,8 @@ public class AttachmentDownloadService extends Service implements Runnable { if ((req != null) && !Utility.hasUnloadedAttachments(mContext, attachment.mMessageKey)) { if (MailActivityEmail.DEBUG) { - Log.d(TAG, "== Downloads finished for outgoing msg #" + req.messageId); + LogUtils.d(TAG, "== Downloads finished for outgoing msg #" + + req.messageId); } EmailServiceProxy service = EmailServiceUtils.getServiceForAccount( mContext, null, accountId); @@ -670,9 +672,9 @@ public class AttachmentDownloadService extends Service implements Runnable { default: code = Integer.toString(statusCode); break; } if (statusCode != EmailServiceStatus.IN_PROGRESS) { - Log.d(TAG, ">> Attachment " + attachmentId + ": " + code); + LogUtils.d(TAG, ">> Attachment " + attachmentId + ": " + code); } else if (progress >= (req.lastProgress + 15)) { - Log.d(TAG, ">> Attachment " + attachmentId + ": " + progress + "%"); + LogUtils.d(TAG, ">> Attachment " + attachmentId + ": " + progress + "%"); } } req.lastStatusCode = statusCode; @@ -738,7 +740,7 @@ public class AttachmentDownloadService extends Service implements Runnable { DownloadRequest req = mDownloadSet.findDownloadRequest(attachmentId); if (req != null) { if (MailActivityEmail.DEBUG) { - Log.d(TAG, "Dequeued attachmentId: " + attachmentId); + LogUtils.d(TAG, "Dequeued attachmentId: " + attachmentId); } mDownloadSet.remove(req); return true; @@ -859,7 +861,7 @@ public class AttachmentDownloadService extends Service implements Runnable { return true; } else { if (MailActivityEmail.DEBUG) { - Log.d(TAG, ">> Prefetch not allowed for account " + account.mId + "; used " + + LogUtils.d(TAG, ">> Prefetch not allowed for account " + account.mId + "; used " + accountStorage + ", limit " + perAccountMaxStorage); } return false; @@ -880,7 +882,7 @@ public class AttachmentDownloadService extends Service implements Runnable { EmailContent.ID_PROJECTION, "(" + Attachment.FLAGS + " & ?) != 0", new String[] {Integer.toString(mask)}, null); try { - Log.d(TAG, "Count: " + c.getCount()); + LogUtils.d(TAG, "Count: " + c.getCount()); while (c.moveToNext()) { Attachment attachment = Attachment.restoreAttachmentWithId( this, c.getLong(EmailContent.ID_PROJECTION_COLUMN)); @@ -901,7 +903,7 @@ public class AttachmentDownloadService extends Service implements Runnable { mConnectivityManager.waitForConnectivity(); mDownloadSet.processQueue(); if (mDownloadSet.isEmpty()) { - Log.d(TAG, "*** All done; shutting down service"); + LogUtils.d(TAG, "*** All done; shutting down service"); stopSelf(); break; } diff --git a/src/com/android/email/service/EmailBroadcastProcessorService.java b/src/com/android/email/service/EmailBroadcastProcessorService.java index e5d3d3755..5a63620e4 100644 --- a/src/com/android/email/service/EmailBroadcastProcessorService.java +++ b/src/com/android/email/service/EmailBroadcastProcessorService.java @@ -27,7 +27,6 @@ import android.content.Intent; import android.content.pm.PackageManager; import android.database.Cursor; import android.net.Uri; -import android.util.Log; import com.android.email.Preferences; import com.android.email.R; @@ -38,6 +37,7 @@ import com.android.emailcommon.VendorPolicyLoader; import com.android.emailcommon.provider.Account; import com.android.emailcommon.provider.EmailContent.AccountColumns; import com.android.emailcommon.provider.HostAuth; +import com.android.mail.utils.LogUtils; /** * The service that really handles broadcast intents on a worker thread. @@ -139,7 +139,7 @@ public class EmailBroadcastProcessorService extends IntentService { final int initialProgress = progress; if (progress < 1) { - Log.i(Logging.LOG_TAG, "Onetime initialization: 1"); + LogUtils.i(Logging.LOG_TAG, "Onetime initialization: 1"); progress = 1; if (VendorPolicyLoader.getInstance(this).useAlternateExchangeStrings()) { setComponentEnabled(EasAuthenticatorServiceAlternate.class, true); @@ -148,7 +148,7 @@ public class EmailBroadcastProcessorService extends IntentService { } if (progress < 2) { - Log.i(Logging.LOG_TAG, "Onetime initialization: 2"); + LogUtils.i(Logging.LOG_TAG, "Onetime initialization: 2"); progress = 2; setImapDeletePolicy(this); } @@ -160,7 +160,7 @@ public class EmailBroadcastProcessorService extends IntentService { if (progress != initialProgress) { pref.setOneTimeInitializationProgress(progress); - Log.i(Logging.LOG_TAG, "Onetime initialization: completed."); + LogUtils.i(Logging.LOG_TAG, "Onetime initialization: completed."); } } @@ -202,7 +202,7 @@ public class EmailBroadcastProcessorService extends IntentService { } private void onSystemAccountChanged() { - Log.i(Logging.LOG_TAG, "System accounts updated."); + LogUtils.i(Logging.LOG_TAG, "System accounts updated."); reconcileAndStartServices(); } } diff --git a/src/com/android/email/service/EmailServiceStub.java b/src/com/android/email/service/EmailServiceStub.java index 9b8db0fc8..2ac0808b6 100644 --- a/src/com/android/email/service/EmailServiceStub.java +++ b/src/com/android/email/service/EmailServiceStub.java @@ -25,7 +25,6 @@ import android.net.Uri; import android.os.Bundle; import android.os.RemoteException; import android.text.TextUtils; -import android.util.Log; import com.android.email.NotificationController; import com.android.email.mail.Sender; @@ -63,6 +62,7 @@ import com.android.emailcommon.service.SearchParams; import com.android.emailcommon.utility.AttachmentUtilities; import com.android.emailcommon.utility.Utility; import com.android.mail.providers.UIProvider; +import com.android.mail.utils.LogUtils; import java.util.HashSet; @@ -190,7 +190,7 @@ public abstract class EmailServiceStub extends IEmailService.Stub implements IEm mCallback.loadMessageStatus(messageId, 0, 100); } catch (MessagingException me) { - if (Logging.LOGD) Log.v(Logging.LOG_TAG, "", me); + if (Logging.LOGD) LogUtils.v(Logging.LOG_TAG, "", me); mCallback.loadMessageStatus(messageId, EmailServiceStatus.REMOTE_EXCEPTION, 0); } catch (RuntimeException rte) { mCallback.loadMessageStatus(messageId, EmailServiceStatus.REMOTE_EXCEPTION, 0); @@ -313,7 +313,7 @@ public abstract class EmailServiceStub extends IEmailService.Stub implements IEm remoteFolder.close(false); } catch (MessagingException me) { - if (Logging.LOGD) Log.v(Logging.LOG_TAG, "", me); + if (Logging.LOGD) LogUtils.v(Logging.LOG_TAG, "", me); // TODO: Fix this up; consider the best approach ContentValues cv = new ContentValues(); @@ -536,7 +536,7 @@ public abstract class EmailServiceStub extends IEmailService.Stub implements IEm // Don't send messages with unloaded attachments if (Utility.hasUnloadedAttachments(context, messageId)) { if (MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, "Can't send #" + messageId + + LogUtils.d(Logging.LOG_TAG, "Can't send #" + messageId + "; unloaded attachments"); } continue; diff --git a/src/com/android/email/service/EmailServiceUtils.java b/src/com/android/email/service/EmailServiceUtils.java index 4dabefc94..af6d06bbd 100644 --- a/src/com/android/email/service/EmailServiceUtils.java +++ b/src/com/android/email/service/EmailServiceUtils.java @@ -43,7 +43,6 @@ import android.provider.CalendarContract.Calendars; import android.provider.CalendarContract.SyncState; import android.provider.ContactsContract; import android.provider.SyncStateContract; -import android.util.Log; import com.android.email.R; import com.android.emailcommon.Api; @@ -57,6 +56,7 @@ import com.android.emailcommon.service.IEmailService; import com.android.emailcommon.service.IEmailServiceCallback; import com.android.emailcommon.service.SearchParams; import com.android.emailcommon.service.SyncWindow; +import com.android.mail.utils.LogUtils; import com.google.common.collect.Lists; import com.google.common.collect.Maps; @@ -202,7 +202,7 @@ public class EmailServiceUtils { info = getServiceInfo(context, protocol); } if (info == null) { - Log.w(Logging.LOG_TAG, "Returning NullService for " + protocol); + LogUtils.w(Logging.LOG_TAG, "Returning NullService for " + protocol); return new EmailServiceProxy(context, NullService.class, null); } else { return getServiceFromInfo(context, callback, info); @@ -245,11 +245,11 @@ public class EmailServiceUtils { // here, as there is nothing to actually do about them. future.getResult(); } catch (OperationCanceledException e) { - Log.w(Logging.LOG_TAG, e.toString()); + LogUtils.w(Logging.LOG_TAG, e.toString()); } catch (AuthenticatorException e) { - Log.w(Logging.LOG_TAG, e.toString()); + LogUtils.w(Logging.LOG_TAG, e.toString()); } catch (IOException e) { - Log.w(Logging.LOG_TAG, e.toString()); + LogUtils.w(Logging.LOG_TAG, e.toString()); } } @@ -316,7 +316,8 @@ public class EmailServiceUtils { if (!hostAuth.mProtocol.equals(oldInfo.protocol)) { return; } - Log.w(Logging.LOG_TAG, "Converting " + amAccount.name + " to " + newInfo.protocol); + LogUtils.w(Logging.LOG_TAG, "Converting " + amAccount.name + " to " + + newInfo.protocol); final ContentValues accountValues = new ContentValues(); int oldFlags = account.mFlags; @@ -333,7 +334,7 @@ public class EmailServiceUtils { hostValues.put(HostAuth.PROTOCOL, newInfo.protocol); resolver.update(ContentUris.withAppendedId(HostAuth.CONTENT_URI, hostAuth.mId), hostValues, null, null); - Log.w(Logging.LOG_TAG, "Updated HostAuths"); + LogUtils.w(Logging.LOG_TAG, "Updated HostAuths"); try { // Get current settings for the existing AccountManager account @@ -348,8 +349,8 @@ public class EmailServiceUtils { ContactsContract.AUTHORITY); final boolean calendar = ContentResolver.getSyncAutomatically(amAccount, CalendarContract.AUTHORITY); - Log.w(Logging.LOG_TAG, "Email: " + email + ", Contacts: " + contacts + "," + - " Calendar: " + calendar); + LogUtils.w(Logging.LOG_TAG, "Email: " + email + ", Contacts: " + contacts + "," + + " Calendar: " + calendar); // Get sync keys for calendar/contacts final String amName = amAccount.name; @@ -362,7 +363,7 @@ public class EmailServiceUtils { asCalendarSyncAdapter(SyncState.CONTENT_URI, amName, oldType), new android.accounts.Account(amName, oldType)); } catch (RemoteException e) { - Log.w(Logging.LOG_TAG, "Get calendar key FAILED"); + LogUtils.w(Logging.LOG_TAG, "Get calendar key FAILED"); } finally { client.release(); } @@ -374,28 +375,30 @@ public class EmailServiceUtils { ContactsContract.SyncState.CONTENT_URI, new android.accounts.Account(amName, oldType)); } catch (RemoteException e) { - Log.w(Logging.LOG_TAG, "Get contacts key FAILED"); + LogUtils.w(Logging.LOG_TAG, "Get contacts key FAILED"); } finally { client.release(); } if (calendarSyncKey != null) { - Log.w(Logging.LOG_TAG, "Got calendar key: " + new String(calendarSyncKey)); + LogUtils.w(Logging.LOG_TAG, "Got calendar key: " + + new String(calendarSyncKey)); } if (contactsSyncKey != null) { - Log.w(Logging.LOG_TAG, "Got contacts key: " + new String(contactsSyncKey)); + LogUtils.w(Logging.LOG_TAG, "Got contacts key: " + + new String(contactsSyncKey)); } // Set up a new AccountManager account with new type and old settings AccountManagerFuture amFuture = MailService.setupAccountManagerAccount( context, account, email, calendar, contacts, null); finishAccountManagerBlocker(amFuture); - Log.w(Logging.LOG_TAG, "Created new AccountManager account"); + LogUtils.w(Logging.LOG_TAG, "Created new AccountManager account"); // Delete the AccountManager account amFuture = AccountManager.get(context) .removeAccount(amAccount, null, null); finishAccountManagerBlocker(amFuture); - Log.w(Logging.LOG_TAG, "Deleted old AccountManager account"); + LogUtils.w(Logging.LOG_TAG, "Deleted old AccountManager account"); // Restore sync keys for contacts/calendar if (calendarSyncKey != null && calendarSyncKey.length != 0) { @@ -407,9 +410,9 @@ public class EmailServiceUtils { newInfo.accountType), new android.accounts.Account(amName, newInfo.accountType), calendarSyncKey); - Log.w(Logging.LOG_TAG, "Set calendar key..."); + LogUtils.w(Logging.LOG_TAG, "Set calendar key..."); } catch (RemoteException e) { - Log.w(Logging.LOG_TAG, "Set calendar key FAILED"); + LogUtils.w(Logging.LOG_TAG, "Set calendar key FAILED"); } finally { client.release(); } @@ -422,9 +425,9 @@ public class EmailServiceUtils { ContactsContract.SyncState.CONTENT_URI, new android.accounts.Account(amName, newInfo.accountType), contactsSyncKey); - Log.w(Logging.LOG_TAG, "Set contacts key..."); + LogUtils.w(Logging.LOG_TAG, "Set contacts key..."); } catch (RemoteException e) { - Log.w(Logging.LOG_TAG, "Set contacts key FAILED"); + LogUtils.w(Logging.LOG_TAG, "Set contacts key FAILED"); } } @@ -433,19 +436,19 @@ public class EmailServiceUtils { EmailServiceUtils.getServiceFromInfo(context, null, newInfo); try { service.serviceUpdated(amAccount.name); - Log.w(Logging.LOG_TAG, "Updated account settings"); + LogUtils.w(Logging.LOG_TAG, "Updated account settings"); } catch (RemoteException e) { // Old settings won't hurt anyone } } // That's all folks! - Log.w(Logging.LOG_TAG, "Account update completed."); + LogUtils.w(Logging.LOG_TAG, "Account update completed."); } finally { // Clear the incomplete flag on the provider account accountValues.put(AccountColumns.FLAGS, oldFlags); resolver.update(accountUri, accountValues, null, null); - Log.w(Logging.LOG_TAG, "[Incomplete flag cleared]"); + LogUtils.w(Logging.LOG_TAG, "[Incomplete flag cleared]"); } } } finally { @@ -454,7 +457,7 @@ public class EmailServiceUtils { } private static void disableComponent(Context context, Class klass) { - Log.w(Logging.LOG_TAG, "Disabling legacy authenticator " + klass.getSimpleName()); + LogUtils.w(Logging.LOG_TAG, "Disabling legacy authenticator " + klass.getSimpleName()); final ComponentName c = new ComponentName(context, klass); context.getPackageManager().setComponentEnabledSetting(c, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, diff --git a/src/com/android/email/service/ImapService.java b/src/com/android/email/service/ImapService.java index b2d2733e3..1ed3627e1 100644 --- a/src/com/android/email/service/ImapService.java +++ b/src/com/android/email/service/ImapService.java @@ -29,7 +29,6 @@ import android.os.IBinder; import android.os.RemoteCallbackList; import android.os.RemoteException; import android.text.TextUtils; -import android.util.Log; import com.android.email.LegacyConversions; import com.android.email.NotificationController; @@ -62,6 +61,7 @@ import com.android.emailcommon.service.IEmailServiceCallback; import com.android.emailcommon.service.SearchParams; import com.android.emailcommon.utility.AttachmentUtilities; import com.android.mail.providers.UIProvider.AccountCapabilities; +import com.android.mail.utils.LogUtils; import java.util.ArrayList; import java.util.Arrays; @@ -71,9 +71,6 @@ import java.util.HashMap; import java.util.HashSet; public class ImapService extends Service { - private static final String TAG = "ImapService"; - private static final int MAX_SMALL_MESSAGE_SIZE = (25 * 1024); - private static final Flag[] FLAG_LIST_SEEN = new Flag[] { Flag.SEEN }; private static final Flag[] FLAG_LIST_FLAGGED = new Flag[] { Flag.FLAGGED }; private static final Flag[] FLAG_LIST_ANSWERED = new Flag[] { Flag.ANSWERED }; @@ -185,7 +182,7 @@ public class ImapService extends Service { sendMailboxStatus(folder, EmailServiceStatus.SUCCESS); } catch (MessagingException e) { if (Logging.LOGD) { - Log.v(Logging.LOG_TAG, "synchronizeMailbox", e); + LogUtils.v(Logging.LOG_TAG, "synchronizeMailbox", e); } if (e instanceof AuthenticationFailedException) { // Generate authentication notification @@ -310,14 +307,14 @@ public class ImapService extends Service { unseenMessages.add(localMessage.mId); } } catch (MessagingException me) { - Log.e(Logging.LOG_TAG, + LogUtils.e(Logging.LOG_TAG, "Error while copying downloaded message." + me); } } } catch (Exception e) { - Log.e(Logging.LOG_TAG, + LogUtils.e(Logging.LOG_TAG, "Error while storing downloaded message." + e.toString()); } } @@ -684,7 +681,7 @@ public class ImapService extends Service { // Presumably an error here is an account connection failure, so there is // no point in continuing through the rest of the pending updates. if (MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, "Unable to process pending delete for id=" + LogUtils.d(Logging.LOG_TAG, "Unable to process pending delete for id=" + lastMessageId + ": " + me); } } finally { @@ -792,7 +789,7 @@ public class ImapService extends Service { // Presumably an error here is an account connection failure, so there is // no point in continuing through the rest of the pending updates. if (MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, "Unable to process pending upsync for id=" + LogUtils.d(Logging.LOG_TAG, "Unable to process pending upsync for id=" + lastMessageId + ": " + me); } } finally { @@ -881,7 +878,7 @@ public class ImapService extends Service { // Presumably an error here is an account connection failure, so there is // no point in continuing through the rest of the pending updates. if (MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, "Unable to process pending update for id=" + LogUtils.d(Logging.LOG_TAG, "Unable to process pending update for id=" + lastMessageId + ": " + me); } } finally { @@ -915,21 +912,21 @@ public class ImapService extends Service { final boolean deleteUpdate; if (newMessage == null) { deleteUpdate = true; - Log.d(Logging.LOG_TAG, "Upsync failed for null message, id=" + messageId); + LogUtils.d(Logging.LOG_TAG, "Upsync failed for null message, id=" + messageId); } else if (mailbox.mType == Mailbox.TYPE_DRAFTS) { deleteUpdate = false; - Log.d(Logging.LOG_TAG, "Upsync skipped for mailbox=drafts, id=" + messageId); + LogUtils.d(Logging.LOG_TAG, "Upsync skipped for mailbox=drafts, id=" + messageId); } else if (mailbox.mType == Mailbox.TYPE_OUTBOX) { deleteUpdate = false; - Log.d(Logging.LOG_TAG, "Upsync skipped for mailbox=outbox, id=" + messageId); + LogUtils.d(Logging.LOG_TAG, "Upsync skipped for mailbox=outbox, id=" + messageId); } else if (mailbox.mType == Mailbox.TYPE_TRASH) { deleteUpdate = false; - Log.d(Logging.LOG_TAG, "Upsync skipped for mailbox=trash, id=" + messageId); + LogUtils.d(Logging.LOG_TAG, "Upsync skipped for mailbox=trash, id=" + messageId); } else if (newMessage != null && newMessage.mMailboxKey != mailbox.mId) { deleteUpdate = false; - Log.d(Logging.LOG_TAG, "Upsync skipped; mailbox changed, id=" + messageId); + LogUtils.d(Logging.LOG_TAG, "Upsync skipped; mailbox changed, id=" + messageId); } else { - Log.d(Logging.LOG_TAG, "Upsyc triggered for message id=" + messageId); + LogUtils.d(Logging.LOG_TAG, "Upsyc triggered for message id=" + messageId); deleteUpdate = processPendingAppend(context, remoteStore, account, mailbox, newMessage); } if (deleteUpdate) { @@ -988,7 +985,7 @@ public class ImapService extends Service { return; } if (MailActivityEmail.DEBUG) { - Log.d(Logging.LOG_TAG, + LogUtils.d(Logging.LOG_TAG, "Update for msg id=" + newMessage.mId + " read=" + newMessage.mFlagRead + " flagged=" + newMessage.mFlagFavorite @@ -1320,7 +1317,7 @@ public class ImapService extends Service { final Mailbox mailbox = Mailbox.restoreMailboxWithId(context, searchParams.mMailboxId); final Mailbox destMailbox = Mailbox.restoreMailboxWithId(context, destMailboxId); if (account == null || mailbox == null || destMailbox == null) { - Log.d(Logging.LOG_TAG, "Attempted search for " + searchParams + LogUtils.d(Logging.LOG_TAG, "Attempted search for " + searchParams + " but account or mailbox information was missing"); return 0; } @@ -1401,11 +1398,11 @@ public class ImapService extends Service { } Utilities.copyOneMessageToProvider(context, message, localMessage, flag); } catch (MessagingException me) { - Log.e(Logging.LOG_TAG, + LogUtils.e(Logging.LOG_TAG, "Error while copying downloaded message." + me); } } catch (Exception e) { - Log.e(Logging.LOG_TAG, + LogUtils.e(Logging.LOG_TAG, "Error while storing downloaded message." + e.toString()); } } diff --git a/src/com/android/email/service/ImapTempFileLiteral.java b/src/com/android/email/service/ImapTempFileLiteral.java index cc1dd5410..b521036f3 100644 --- a/src/com/android/email/service/ImapTempFileLiteral.java +++ b/src/com/android/email/service/ImapTempFileLiteral.java @@ -16,8 +16,6 @@ package com.android.email.service; -import android.util.Log; - import com.android.email.FixedLengthInputStream; import com.android.email.mail.store.imap.ImapResponse; import com.android.email.mail.store.imap.ImapResponseParser; @@ -25,6 +23,7 @@ import com.android.email.mail.store.imap.ImapString; import com.android.emailcommon.Logging; import com.android.emailcommon.TempDirectory; import com.android.emailcommon.utility.Utility; +import com.android.mail.utils.LogUtils; import org.apache.commons.io.IOUtils; @@ -80,7 +79,7 @@ public class ImapTempFileLiteral extends ImapString { return new FileInputStream(mFile); } catch (FileNotFoundException e) { // It's probably possible if we're low on storage and the system clears the cache dir. - Log.w(Logging.LOG_TAG, "ImapTempFileLiteral: Temp file not found"); + LogUtils.w(Logging.LOG_TAG, "ImapTempFileLiteral: Temp file not found"); // Return 0 byte stream as a dummy... return new ByteArrayInputStream(new byte[0]); @@ -98,7 +97,7 @@ public class ImapTempFileLiteral extends ImapString { } return Utility.fromAscii(bytes); } catch (IOException e) { - Log.w(Logging.LOG_TAG, "ImapTempFileLiteral: Error while reading temp file", e); + LogUtils.w(Logging.LOG_TAG, "ImapTempFileLiteral: Error while reading temp file", e); return ""; } } @@ -111,7 +110,7 @@ public class ImapTempFileLiteral extends ImapString { } } catch (RuntimeException re) { // Just log and ignore. - Log.w(Logging.LOG_TAG, "Failed to remove temp file: " + re.getMessage()); + LogUtils.w(Logging.LOG_TAG, "Failed to remove temp file: " + re.getMessage()); } super.destroy(); } diff --git a/src/com/android/email/service/MailService.java b/src/com/android/email/service/MailService.java index 95e5b7087..0926bd366 100644 --- a/src/com/android/email/service/MailService.java +++ b/src/com/android/email/service/MailService.java @@ -25,7 +25,6 @@ import android.content.Intent; import android.database.Cursor; import android.os.Bundle; import android.os.IBinder; -import android.util.Log; import com.android.email.provider.AccountReconciler; import com.android.email.service.EmailServiceUtils.EmailServiceInfo; @@ -33,6 +32,7 @@ import com.android.email2.ui.MailActivityEmail; import com.android.emailcommon.provider.Account; import com.android.emailcommon.provider.HostAuth; import com.android.emailcommon.utility.EmailAsyncTask; +import com.android.mail.utils.LogUtils; import com.google.common.annotations.VisibleForTesting; import java.util.ArrayList; @@ -104,7 +104,7 @@ public class MailService extends Service { @Override public void run() { - Log.d("MailService", "Reconciling accounts of type " + mInfo.accountType + + LogUtils.d("MailService", "Reconciling accounts of type " + mInfo.accountType + ", protocol " + mInfo.protocol); android.accounts.Account[] accountManagerAccounts = AccountManager.get(mContext) .getAccountsByType(mInfo.accountType); diff --git a/src/com/android/email/service/Pop3Service.java b/src/com/android/email/service/Pop3Service.java index e16ed00bc..d7e753b4d 100644 --- a/src/com/android/email/service/Pop3Service.java +++ b/src/com/android/email/service/Pop3Service.java @@ -28,7 +28,6 @@ import android.net.Uri; import android.os.IBinder; import android.os.RemoteCallbackList; import android.os.RemoteException; -import android.util.Log; import com.android.email.NotificationController; import com.android.email.mail.Store; @@ -46,7 +45,6 @@ import com.android.emailcommon.provider.Account; import com.android.emailcommon.provider.EmailContent; import com.android.emailcommon.provider.EmailContent.Attachment; import com.android.emailcommon.provider.EmailContent.AttachmentColumns; -import com.android.emailcommon.provider.EmailContent.MailboxColumns; import com.android.emailcommon.provider.EmailContent.Message; import com.android.emailcommon.provider.EmailContent.MessageColumns; import com.android.emailcommon.provider.EmailContent.SyncColumns; @@ -58,6 +56,7 @@ import com.android.emailcommon.utility.AttachmentUtilities; import com.android.mail.providers.UIProvider; import com.android.mail.providers.UIProvider.AccountCapabilities; import com.android.mail.providers.UIProvider.AttachmentState; +import com.android.mail.utils.LogUtils; import org.apache.james.mime4j.EOLConvertingInputStream; @@ -148,7 +147,7 @@ public class Pop3Service extends Service { sendMailboxStatus(folder, EmailServiceStatus.SUCCESS); } catch (MessagingException e) { if (Logging.LOGD) { - Log.v(Logging.LOG_TAG, "synchronizeMailbox", e); + LogUtils.v(Logging.LOG_TAG, "synchronizeMailbox", e); } if (e instanceof AuthenticationFailedException) { // Generate authentication notification @@ -198,7 +197,7 @@ public class Pop3Service extends Service { Pop3Folder remoteFolder, ArrayList unsyncedMessages, final Mailbox toMailbox) throws MessagingException { if (MailActivityEmail.DEBUG) { - Log.d(TAG, "Loading " + unsyncedMessages.size() + " unsynced messages"); + LogUtils.d(TAG, "Loading " + unsyncedMessages.size() + " unsynced messages"); } try { int cnt = unsyncedMessages.size(); @@ -214,7 +213,8 @@ public class Pop3Service extends Service { flag = EmailContent.Message.FLAG_LOADED_UNKNOWN; } if (MailActivityEmail.DEBUG) { - Log.d(TAG, "Message is " + (message.isComplete() ? "" : "NOT ") + "complete"); + LogUtils.d(TAG, "Message is " + (message.isComplete() ? "" : "NOT ") + + "complete"); } // If message is incomplete, create a "fake" attachment Utilities.copyOneMessageToProvider(context, message, account, toMailbox, flag); @@ -364,7 +364,7 @@ public class Pop3Service extends Service { } } else { if (MailActivityEmail.DEBUG) { - Log.d(TAG, "*** Message count is zero??"); + LogUtils.d(TAG, "*** Message count is zero??"); } remoteFolder.close(false); return; @@ -405,7 +405,7 @@ public class Pop3Service extends Service { int flag = EmailContent.Message.FLAG_LOADED_COMPLETE; if (!popMessage.isComplete()) { - Log.e(TAG, "How is this possible?"); + LogUtils.e(TAG, "How is this possible?"); } Utilities.copyOneMessageToProvider( context, popMessage, account, mailbox, flag); diff --git a/src/com/android/email/service/PopImapSyncAdapterService.java b/src/com/android/email/service/PopImapSyncAdapterService.java index 838fda092..b9cab8acf 100644 --- a/src/com/android/email/service/PopImapSyncAdapterService.java +++ b/src/com/android/email/service/PopImapSyncAdapterService.java @@ -29,7 +29,6 @@ import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.os.IBinder; -import android.util.Log; import com.android.email.R; import com.android.emailcommon.TempDirectory; @@ -40,6 +39,7 @@ import com.android.emailcommon.provider.EmailContent.AccountColumns; import com.android.emailcommon.provider.EmailContent.Message; import com.android.emailcommon.provider.Mailbox; import com.android.emailcommon.service.EmailServiceProxy; +import com.android.mail.utils.LogUtils; import java.util.ArrayList; @@ -113,7 +113,7 @@ public class PopImapSyncAdapterService extends Service { new String[] {Long.toString(mailbox.mId)}); return; } - Log.d(TAG, "Mailbox: " + mailbox.mDisplayName); + LogUtils.d(TAG, "Mailbox: " + mailbox.mDisplayName); Uri mailboxUri = ContentUris.withAppendedId(Mailbox.CONTENT_URI, mailboxId); ContentValues values = new ContentValues(); @@ -168,7 +168,7 @@ public class PopImapSyncAdapterService extends Service { Account acct = new Account(); acct.restore(c); if (extras.getBoolean(ContentResolver.SYNC_EXTRAS_UPLOAD)) { - Log.d(TAG, "Upload sync request for " + acct.mDisplayName); + LogUtils.d(TAG, "Upload sync request for " + acct.mDisplayName); // See if any boxes have mail... ArrayList mailboxesToUpdate; Cursor updatesCursor = provider.query(Message.UPDATED_CONTENT_URI, @@ -194,8 +194,8 @@ public class PopImapSyncAdapterService extends Service { sync(context, mailboxId, syncResult, false, 0); } } else { - Log.d(TAG, "Sync request for " + acct.mDisplayName); - Log.d(TAG, extras.toString()); + LogUtils.d(TAG, "Sync request for " + acct.mDisplayName); + LogUtils.d(TAG, extras.toString()); long mailboxId = extras.getLong(Mailbox.SYNC_EXTRA_MAILBOX_ID, Mailbox.NO_MAILBOX); boolean isInbox = false; diff --git a/src/com/android/email2/ui/MailActivityEmail.java b/src/com/android/email2/ui/MailActivityEmail.java index 1a259d1c9..07dba5054 100644 --- a/src/com/android/email2/ui/MailActivityEmail.java +++ b/src/com/android/email2/ui/MailActivityEmail.java @@ -25,7 +25,6 @@ import android.content.UriMatcher; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; -import android.util.Log; import com.android.email.NotificationController; import com.android.email.Preferences; @@ -49,12 +48,10 @@ import com.android.mail.utils.LogTag; import com.android.mail.utils.LogUtils; import com.android.mail.utils.Utils; -import java.util.List; - public class MailActivityEmail extends com.android.mail.ui.MailActivity { /** * If this is enabled there will be additional logging information sent to - * Log.d, including protocol dumps. + * LogUtils.d, including protocol dumps. * * This should only be used for logs that are useful for debbuging user problems, * not for internal/development logs. @@ -239,7 +236,7 @@ public class MailActivityEmail extends com.android.mail.ui.MailActivity { * The calls to log() must be guarded with "if (Email.LOGD)" for performance reasons. */ public static void log(String message) { - Log.d(Logging.LOG_TAG, message); + LogUtils.d(Logging.LOG_TAG, message); } /** @@ -261,7 +258,8 @@ public class MailActivityEmail extends com.android.mail.ui.MailActivity { public static void warnIfUiThread() { if (Thread.currentThread().equals(sUiThread)) { - Log.w(Logging.LOG_TAG, "Method called on the UI thread", new Exception("STACK TRACE")); + LogUtils.w(Logging.LOG_TAG, "Method called on the UI thread", + new Exception("STACK TRACE")); } } diff --git a/tests/src/com/android/email/RefreshManagerTest.java b/tests/src/com/android/email/RefreshManagerTest.java index 853c354b1..3c118591f 100644 --- a/tests/src/com/android/email/RefreshManagerTest.java +++ b/tests/src/com/android/email/RefreshManagerTest.java @@ -24,7 +24,6 @@ import com.android.emailcommon.provider.Account; import android.content.Context; import android.test.InstrumentationTestCase; import android.test.suitebuilder.annotation.LargeTest; -import android.util.Log; import junit.framework.Assert; @@ -173,7 +172,7 @@ public class RefreshManagerTest extends InstrumentationTestCase { assertEquals(0, mTarget.getMailboxListStatusForTest(ACCOUNT_1).getLastRefreshTime()); // Done. - Log.w(Logging.LOG_TAG, "" + mController.mListener.getClass()); + LogUtils.w(Logging.LOG_TAG, "" + mController.mListener.getClass()); mController.mListener.updateMailboxListCallback(null, ACCOUNT_1, 100); assertTrue(mListener.mCalledOnRefreshStatusChanged); @@ -271,7 +270,7 @@ public class RefreshManagerTest extends InstrumentationTestCase { assertEquals(0, mTarget.getMessageListStatusForTest(MAILBOX_1).getLastRefreshTime()); // Done. - Log.w(Logging.LOG_TAG, "" + mController.mListener.getClass()); + LogUtils.w(Logging.LOG_TAG, "" + mController.mListener.getClass()); mController.mListener.updateMailboxCallback(null, ACCOUNT_1, MAILBOX_1, 100, 0, null); assertTrue(mListener.mCalledOnRefreshStatusChanged); @@ -373,7 +372,7 @@ public class RefreshManagerTest extends InstrumentationTestCase { mListener.reset(); // Done. - Log.w(Logging.LOG_TAG, "" + mController.mListener.getClass()); + LogUtils.w(Logging.LOG_TAG, "" + mController.mListener.getClass()); mController.mListener.sendMailCallback(null, ACCOUNT_1, -1, 100); assertFalse(mListener.mCalledOnConnectionError); diff --git a/tests/src/com/android/email/TestUtils.java b/tests/src/com/android/email/TestUtils.java index 2eaf37435..87355783c 100644 --- a/tests/src/com/android/email/TestUtils.java +++ b/tests/src/com/android/email/TestUtils.java @@ -23,7 +23,6 @@ import android.content.Context; import android.os.PowerManager; import android.test.MoreAsserts; import android.test.suitebuilder.annotation.LargeTest; -import android.util.Log; import android.view.View; import android.view.ViewParent; @@ -114,7 +113,7 @@ public class TestUtils extends TestCase /* It tests itself */ { * Wait until a {@code Condition} is met. */ public static void waitUntil(String message, Condition condition, int timeoutSeconds) { - Log.d(Logging.LOG_TAG, message + ": Waiting..."); + LogUtils.d(Logging.LOG_TAG, message + ": Waiting..."); final long timeout = System.currentTimeMillis() + timeoutSeconds * 1000; while (System.currentTimeMillis() < timeout) { if (condition.isMet()) { diff --git a/tests/src/com/android/email/activity/MessageComposeTests.java b/tests/src/com/android/email/activity/MessageComposeTests.java index 90e2e8b8c..d91c67319 100644 --- a/tests/src/com/android/email/activity/MessageComposeTests.java +++ b/tests/src/com/android/email/activity/MessageComposeTests.java @@ -24,7 +24,6 @@ import android.test.ActivityInstrumentationTestCase2; import android.test.UiThreadTest; import android.test.suitebuilder.annotation.LargeTest; import android.test.suitebuilder.annotation.SmallTest; -import android.util.Log; import android.view.View; import android.widget.EditText; import android.widget.MultiAutoCompleteTextView; diff --git a/tests/src/com/android/email/mail/transport/MockTransport.java b/tests/src/com/android/email/mail/transport/MockTransport.java index 2c53400d4..bb1c136a9 100644 --- a/tests/src/com/android/email/mail/transport/MockTransport.java +++ b/tests/src/com/android/email/mail/transport/MockTransport.java @@ -18,8 +18,6 @@ package com.android.email.mail.transport; import com.android.email.mail.Transport; -import android.util.Log; - import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -296,12 +294,12 @@ public class MockTransport implements Transport { } if (mQueuedInput.size() == 0) { // MailTransport returns "" at EOS. - Log.w(LOG_TAG, "Underflow reading from MockTransport"); + LogUtils.w(LOG_TAG, "Underflow reading from MockTransport"); return ""; } String line = mQueuedInput.remove(0); if (DEBUG_LOG_STREAMS) { - Log.d(LOG_TAG, "<<< " + line); + LogUtils.d(LOG_TAG, "<<< " + line); } if (SPECIAL_RESPONSE_IOEXCEPTION.equals(line)) { throw new IOException("Expected IOException."); @@ -339,7 +337,7 @@ public class MockTransport implements Transport { @Override public void writeLine(String s, String sensitiveReplacement) throws IOException { if (DEBUG_LOG_STREAMS) { - Log.d(LOG_TAG, ">>> " + s); + LogUtils.d(LOG_TAG, ">>> " + s); } SmtpSenderUnitTests.assertTrue(mOpen); SmtpSenderUnitTests.assertTrue("Overflow writing to MockTransport: Getting " + s, diff --git a/tests/src/com/android/emailcommon/DeviceTests.java b/tests/src/com/android/emailcommon/DeviceTests.java index ff573203c..481d1cc52 100644 --- a/tests/src/com/android/emailcommon/DeviceTests.java +++ b/tests/src/com/android/emailcommon/DeviceTests.java @@ -20,7 +20,6 @@ package com.android.emailcommon; import android.content.Context; import android.telephony.TelephonyManager; import android.test.AndroidTestCase; -import android.util.Log; public class DeviceTests extends AndroidTestCase { @@ -28,7 +27,7 @@ public class DeviceTests extends AndroidTestCase { TelephonyManager tm = (TelephonyManager) getContext().getSystemService(Context.TELEPHONY_SERVICE); if (tm == null) { - Log.w(Logging.LOG_TAG, "TelephonyManager not supported. Skipping."); + LogUtils.w(Logging.LOG_TAG, "TelephonyManager not supported. Skipping."); return; }