diff --git a/emailcommon/AndroidManifest.xml b/emailcommon/AndroidManifest.xml index 4659bbbba..c1fcdb4dc 100644 --- a/emailcommon/AndroidManifest.xml +++ b/emailcommon/AndroidManifest.xml @@ -2,5 +2,5 @@ - + diff --git a/emailcommon/src/com/android/emailcommon/utility/EmailAsyncTask.java b/emailcommon/src/com/android/emailcommon/utility/EmailAsyncTask.java index e0db42789..492816b40 100644 --- a/emailcommon/src/com/android/emailcommon/utility/EmailAsyncTask.java +++ b/emailcommon/src/com/android/emailcommon/utility/EmailAsyncTask.java @@ -263,14 +263,17 @@ public final Result get() throws InterruptedException, ExecutionException { return mInnerTask.get(); } + @VisibleForTesting /* package */ final Result callDoInBackgroundForTest(Params... params) { return mInnerTask.doInBackground(params); } + @VisibleForTesting /* package */ final void callOnCancelledForTest(Result result) { mInnerTask.onCancelled(result); } + @VisibleForTesting /* package */ final void callOnPostExecuteForTest(Result result) { mInnerTask.onPostExecute(result); } diff --git a/proguard-test.flags b/proguard-test.flags index 26d7deabf..3daa0bec7 100644 --- a/proguard-test.flags +++ b/proguard-test.flags @@ -91,8 +91,12 @@ *** tempFileExistsForTest(); } +-keepclasseswithmembers class com.android.emailcommon.utility.EmailAsyncTask { + *** callDoInBackgroundForTest(Params...); +} -keepclasseswithmembers class com.android.emailcommon.utility.EmailAsyncTask$Tracker { (); *** getTaskCountForTest(); *** containsTaskForTest(com.android.emailcommon.utility.EmailAsyncTask); } +-keep class com.android.emailcommon.utility.DelayedOperations diff --git a/proguard.flags b/proguard.flags index ce5024591..0a9c2f189 100644 --- a/proguard.flags +++ b/proguard.flags @@ -5,4 +5,4 @@ } -keep class com.android.email.activity.setup.AccountSetupFinal --keep class com.android.email.activity.setup.AccountSettingsFragment \ No newline at end of file +-keep class com.android.email.activity.setup.AccountSettingsFragment diff --git a/provider_src/com/android/email/provider/EmailProvider.java b/provider_src/com/android/email/provider/EmailProvider.java index 4bd9d4d19..00d608f30 100644 --- a/provider_src/com/android/email/provider/EmailProvider.java +++ b/provider_src/com/android/email/provider/EmailProvider.java @@ -129,6 +129,7 @@ import com.android.mail.utils.MimeType; import com.android.mail.utils.Utils; import com.android.mail.widget.BaseWidgetProvider; +import com.android.mail.widget.WidgetService; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Sets; @@ -6139,6 +6140,9 @@ private void notifyWidgets(long mailboxId) { Context context = getContext(); // Lazily initialize these if (mAppWidgetManager == null) { + if (!WidgetService.isWidgetSupported(context)) { + return; + } mAppWidgetManager = AppWidgetManager.getInstance(context); mEmailComponent = new ComponentName(context, WidgetProvider.getProviderName(context)); } diff --git a/tests/src/com/android/email/ThrottleTest.java b/tests/src/com/android/email/ThrottleTest.java index 49adea7b3..e31c51339 100644 --- a/tests/src/com/android/email/ThrottleTest.java +++ b/tests/src/com/android/email/ThrottleTest.java @@ -17,6 +17,7 @@ package com.android.email; import android.os.Handler; +import android.os.Looper; import android.os.Message; import android.test.AndroidTestCase; import android.test.suitebuilder.annotation.SmallTest; @@ -37,7 +38,8 @@ public class ThrottleTest extends AndroidTestCase { private final CountingRunnable mRunnable = new CountingRunnable(); private final MockClock mClock = new MockClock(); private final MockTimer mTimer = new MockTimer(mClock); - private final Throttle mTarget = new Throttle("test", mRunnable, new CallItNowHandler(), + private final Throttle mTarget = new Throttle("test", mRunnable, + new CallItNowHandler(Looper.getMainLooper()), MIN_TIMEOUT, MAX_TIMEOUT, mClock, mTimer); /** @@ -155,9 +157,13 @@ public void run() { /** * Dummy {@link Handler} that executes {@link Runnable}s passed to {@link Handler#post} - * immediately on the current thread. + * immediately via the provided {@link Looper}. */ private static class CallItNowHandler extends Handler { + public CallItNowHandler(Looper looper) { + super(looper); + } + @Override public boolean sendMessageAtTime(Message msg, long uptimeMillis) { msg.getCallback().run();