Using MainThreadExecuter instead of View.post

Change-Id: Ie7ba88bd3bb412d998ecb51095cbaa74b3b39c10
diff --git a/src/com/android/launcher3/IconCache.java b/src/com/android/launcher3/IconCache.java
index 57d23a7..39a80be 100644
--- a/src/com/android/launcher3/IconCache.java
+++ b/src/com/android/launcher3/IconCache.java
@@ -73,8 +73,9 @@
         public boolean isLowResIcon;
     }
 
-    private final HashMap<UserHandleCompat, Bitmap> mDefaultIcons =
-            new HashMap<UserHandleCompat, Bitmap>();
+    private final HashMap<UserHandleCompat, Bitmap> mDefaultIcons = new HashMap<>();
+    private final MainThreadExecutor mMainThreadExecutor = new MainThreadExecutor();
+
     private final Context mContext;
     private final PackageManager mPackageManager;
     private final UserManagerCompat mUserManager;
@@ -357,7 +358,7 @@
                             st.promisedIntent != null ? st.promisedIntent : st.intent,
                             st.user, false);
                 }
-                caller.post(new Runnable() {
+                mMainThreadExecutor.execute(new Runnable() {
 
                     @Override
                     public void run() {