Loading src/com/android/launcher3/allapps/AllAppsGridAdapter.java +4 −0 Original line number Diff line number Diff line Loading @@ -495,6 +495,10 @@ public class AllAppsGridAdapter extends }); withPayload.setSelectionHandler(selectionHandler); } else { icon.setOnClickListener(mOnIconClickListener); icon.setOnLongClickListener(mOnIconLongClickListener); } break; case VIEW_TYPE_EMPTY_SEARCH: TextView emptyViewText = (TextView) holder.itemView; Loading src/com/android/launcher3/views/HeroSearchResultView.java +22 −7 Original line number Diff line number Diff line Loading @@ -16,12 +16,16 @@ package com.android.launcher3.views; import static com.android.launcher3.LauncherSettings.Favorites.CONTAINER_ALL_APPS; import static com.android.launcher3.util.Executors.MAIN_EXECUTOR; import static com.android.launcher3.util.Executors.MODEL_EXECUTOR; import android.content.Context; import android.content.Intent; import android.content.pm.ShortcutInfo; import android.graphics.Point; import android.os.Bundle; import android.util.AttributeSet; import android.util.Pair; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; Loading @@ -31,9 +35,10 @@ import com.android.launcher3.DeviceProfile; import com.android.launcher3.DragSource; import com.android.launcher3.DropTarget; import com.android.launcher3.Launcher; import com.android.launcher3.LauncherAppState; import com.android.launcher3.R; import com.android.launcher3.allapps.AllAppsGridAdapter.AdapterItemWithPayload; import com.android.launcher3.allapps.search.AllAppsSearchBarController; import com.android.launcher3.allapps.search.AllAppsSearchBarController.PayloadResultHandler; import com.android.launcher3.dragndrop.DragOptions; import com.android.launcher3.dragndrop.DraggableView; import com.android.launcher3.graphics.DragPreviewProvider; Loading @@ -53,7 +58,7 @@ import java.util.List; * A view representing a high confidence app search result that includes shortcuts */ public class HeroSearchResultView extends LinearLayout implements DragSource, AllAppsSearchBarController.PayloadResultHandler<List<ItemInfoWithIcon>> { PayloadResultHandler<List<Pair<ShortcutInfo, ItemInfoWithIcon>>> { public static final int MAX_SHORTCUTS_COUNT = 2; BubbleTextView mBubbleTextView; Loading Loading @@ -119,15 +124,25 @@ public class HeroSearchResultView extends LinearLayout implements DragSource, * Apply {@link ItemInfo} for appIcon and shortcut Icons */ @Override public void applyAdapterInfo(AdapterItemWithPayload<List<ItemInfoWithIcon>> adapterItem) { public void applyAdapterInfo( AdapterItemWithPayload<List<Pair<ShortcutInfo, ItemInfoWithIcon>>> adapterItem) { mBubbleTextView.applyFromApplicationInfo(adapterItem.appInfo); mIconView.setBackground(mBubbleTextView.getIcon()); mIconView.setTag(adapterItem.appInfo); List<ItemInfoWithIcon> shorcutInfos = adapterItem.getPayload(); List<Pair<ShortcutInfo, ItemInfoWithIcon>> shortcutDetails = adapterItem.getPayload(); LauncherAppState appState = LauncherAppState.getInstance(getContext()); for (int i = 0; i < mDeepShortcutTextViews.length; i++) { mDeepShortcutTextViews[i].setVisibility(shorcutInfos.size() > i ? VISIBLE : GONE); if (i < shorcutInfos.size()) { mDeepShortcutTextViews[i].applyFromItemInfoWithIcon(shorcutInfos.get(i)); BubbleTextView shortcutView = mDeepShortcutTextViews[i]; mDeepShortcutTextViews[i].setVisibility(shortcutDetails.size() > i ? VISIBLE : GONE); if (i < shortcutDetails.size()) { Pair<ShortcutInfo, ItemInfoWithIcon> p = shortcutDetails.get(i); //apply ItemInfo and prepare view shortcutView.applyFromItemInfoWithIcon(p.second); MODEL_EXECUTOR.execute(() -> { // load unbadged shortcut in background and update view when icon ready appState.getIconCache().getUnbadgedShortcutIcon(p.second, p.first); MAIN_EXECUTOR.post(() -> shortcutView.reapplyItemInfo(p.second)); }); } } mPlugin = adapterItem.getPlugin(); Loading Loading
src/com/android/launcher3/allapps/AllAppsGridAdapter.java +4 −0 Original line number Diff line number Diff line Loading @@ -495,6 +495,10 @@ public class AllAppsGridAdapter extends }); withPayload.setSelectionHandler(selectionHandler); } else { icon.setOnClickListener(mOnIconClickListener); icon.setOnLongClickListener(mOnIconLongClickListener); } break; case VIEW_TYPE_EMPTY_SEARCH: TextView emptyViewText = (TextView) holder.itemView; Loading
src/com/android/launcher3/views/HeroSearchResultView.java +22 −7 Original line number Diff line number Diff line Loading @@ -16,12 +16,16 @@ package com.android.launcher3.views; import static com.android.launcher3.LauncherSettings.Favorites.CONTAINER_ALL_APPS; import static com.android.launcher3.util.Executors.MAIN_EXECUTOR; import static com.android.launcher3.util.Executors.MODEL_EXECUTOR; import android.content.Context; import android.content.Intent; import android.content.pm.ShortcutInfo; import android.graphics.Point; import android.os.Bundle; import android.util.AttributeSet; import android.util.Pair; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; Loading @@ -31,9 +35,10 @@ import com.android.launcher3.DeviceProfile; import com.android.launcher3.DragSource; import com.android.launcher3.DropTarget; import com.android.launcher3.Launcher; import com.android.launcher3.LauncherAppState; import com.android.launcher3.R; import com.android.launcher3.allapps.AllAppsGridAdapter.AdapterItemWithPayload; import com.android.launcher3.allapps.search.AllAppsSearchBarController; import com.android.launcher3.allapps.search.AllAppsSearchBarController.PayloadResultHandler; import com.android.launcher3.dragndrop.DragOptions; import com.android.launcher3.dragndrop.DraggableView; import com.android.launcher3.graphics.DragPreviewProvider; Loading @@ -53,7 +58,7 @@ import java.util.List; * A view representing a high confidence app search result that includes shortcuts */ public class HeroSearchResultView extends LinearLayout implements DragSource, AllAppsSearchBarController.PayloadResultHandler<List<ItemInfoWithIcon>> { PayloadResultHandler<List<Pair<ShortcutInfo, ItemInfoWithIcon>>> { public static final int MAX_SHORTCUTS_COUNT = 2; BubbleTextView mBubbleTextView; Loading Loading @@ -119,15 +124,25 @@ public class HeroSearchResultView extends LinearLayout implements DragSource, * Apply {@link ItemInfo} for appIcon and shortcut Icons */ @Override public void applyAdapterInfo(AdapterItemWithPayload<List<ItemInfoWithIcon>> adapterItem) { public void applyAdapterInfo( AdapterItemWithPayload<List<Pair<ShortcutInfo, ItemInfoWithIcon>>> adapterItem) { mBubbleTextView.applyFromApplicationInfo(adapterItem.appInfo); mIconView.setBackground(mBubbleTextView.getIcon()); mIconView.setTag(adapterItem.appInfo); List<ItemInfoWithIcon> shorcutInfos = adapterItem.getPayload(); List<Pair<ShortcutInfo, ItemInfoWithIcon>> shortcutDetails = adapterItem.getPayload(); LauncherAppState appState = LauncherAppState.getInstance(getContext()); for (int i = 0; i < mDeepShortcutTextViews.length; i++) { mDeepShortcutTextViews[i].setVisibility(shorcutInfos.size() > i ? VISIBLE : GONE); if (i < shorcutInfos.size()) { mDeepShortcutTextViews[i].applyFromItemInfoWithIcon(shorcutInfos.get(i)); BubbleTextView shortcutView = mDeepShortcutTextViews[i]; mDeepShortcutTextViews[i].setVisibility(shortcutDetails.size() > i ? VISIBLE : GONE); if (i < shortcutDetails.size()) { Pair<ShortcutInfo, ItemInfoWithIcon> p = shortcutDetails.get(i); //apply ItemInfo and prepare view shortcutView.applyFromItemInfoWithIcon(p.second); MODEL_EXECUTOR.execute(() -> { // load unbadged shortcut in background and update view when icon ready appState.getIconCache().getUnbadgedShortcutIcon(p.second, p.first); MAIN_EXECUTOR.post(() -> shortcutView.reapplyItemInfo(p.second)); }); } } mPlugin = adapterItem.getPlugin(); Loading