Merge "Action icon should be used as a badge instead of main icon" into ub-launcher3-master
diff --git a/src/com/android/launcher3/views/SearchResultIconRow.java b/src/com/android/launcher3/views/SearchResultIconRow.java
index 313ae5e..6438d1d 100644
--- a/src/com/android/launcher3/views/SearchResultIconRow.java
+++ b/src/com/android/launcher3/views/SearchResultIconRow.java
@@ -34,6 +34,7 @@
 import com.android.launcher3.LauncherAppState;
 import com.android.launcher3.allapps.AllAppsGridAdapter.AdapterItemWithPayload;
 import com.android.launcher3.allapps.search.AllAppsSearchBarController;
+import com.android.launcher3.icons.BitmapInfo;
 import com.android.launcher3.icons.LauncherIcons;
 import com.android.launcher3.model.data.ItemInfo;
 import com.android.launcher3.model.data.ItemInfoWithIcon;
@@ -83,7 +84,8 @@
         if (payload.mRemoteAction != null) {
             prepareUsingRemoteAction(payload.mRemoteAction,
                     payload.bundle.getString(SearchTarget.REMOTE_ACTION_TOKEN),
-                    payload.bundle.getBoolean(SearchTarget.REMOTE_ACTION_SHOULD_START));
+                    payload.bundle.getBoolean(SearchTarget.REMOTE_ACTION_SHOULD_START),
+                    payload.type == ItemType.ACTION);
         } else {
             prepareUsingShortcutInfo(payload.shortcuts.get(0));
         }
@@ -102,7 +104,8 @@
         });
     }
 
-    private void prepareUsingRemoteAction(RemoteAction remoteAction, String token, boolean start) {
+    private void prepareUsingRemoteAction(RemoteAction remoteAction, String token, boolean start,
+            boolean useIconToBadge) {
         RemoteActionItemInfo itemInfo = new RemoteActionItemInfo(remoteAction, token, start);
 
         applyFromRemoteActionInfo(itemInfo);
@@ -110,8 +113,17 @@
             // If the Drawable from the remote action is not AdaptiveBitmap, styling will not work.
             try (LauncherIcons li = LauncherIcons.obtain(getContext())) {
                 Drawable d = itemInfo.getRemoteAction().getIcon().loadDrawable(getContext());
-                itemInfo.bitmap = li.createBadgedIconBitmap(d, itemInfo.user,
+                BitmapInfo bitmap = li.createBadgedIconBitmap(d, itemInfo.user,
                         Build.VERSION.SDK_INT);
+
+                if (useIconToBadge) {
+                    BitmapInfo placeholder = li.createIconBitmap(
+                            itemInfo.getRemoteAction().getTitle().toString().substring(0, 1),
+                            bitmap.color);
+                    itemInfo.bitmap = li.badgeBitmap(placeholder.icon, bitmap);
+                } else {
+                    itemInfo.bitmap = bitmap;
+                }
                 reapplyItemInfoAsync(itemInfo);
             }
         });