diff options
Diffstat (limited to 'src/com/android/launcher3/widget/picker')
5 files changed, 20 insertions, 18 deletions
diff --git a/src/com/android/launcher3/widget/picker/OnHeaderClickListener.java b/src/com/android/launcher3/widget/picker/OnHeaderClickListener.java index 73727515c2..35f11bde47 100644 --- a/src/com/android/launcher3/widget/picker/OnHeaderClickListener.java +++ b/src/com/android/launcher3/widget/picker/OnHeaderClickListener.java @@ -24,5 +24,5 @@ public interface OnHeaderClickListener { /** * Calls when a header is clicked to show / hide widgets for a package. */ - void onHeaderClicked(boolean showWidgets, PackageUserKey packageUserKey); + void onHeaderClicked(boolean showWidgets, PackageUserKey key); } diff --git a/src/com/android/launcher3/widget/picker/WidgetsListAdapter.java b/src/com/android/launcher3/widget/picker/WidgetsListAdapter.java index d52134c81e..0e5a7d7ba9 100644 --- a/src/com/android/launcher3/widget/picker/WidgetsListAdapter.java +++ b/src/com/android/launcher3/widget/picker/WidgetsListAdapter.java @@ -98,7 +98,7 @@ public class WidgetsListAdapter extends Adapter<ViewHolder> implements OnHeaderC private Predicate<WidgetsListBaseEntry> mHeaderAndSelectedContentFilter = entry -> entry instanceof WidgetsListHeaderEntry || entry instanceof WidgetsListSearchHeaderEntry - || new PackageUserKey(entry.mPkgItem.packageName, entry.mPkgItem.user) + || PackageUserKey.fromPackageItemInfo(entry.mPkgItem) .equals(mWidgetsContentVisiblePackageUserKey); @Nullable private Predicate<WidgetsListBaseEntry> mFilter = null; @Nullable private RecyclerView mRecyclerView; @@ -252,10 +252,11 @@ public class WidgetsListAdapter extends Adapter<ViewHolder> implements OnHeaderC return entry instanceof WidgetsListBaseEntry.Header && matchesKey(entry, key); } - private static boolean matchesKey( - @NonNull WidgetsListBaseEntry entry, @Nullable PackageUserKey key) { + private static boolean matchesKey(@NonNull WidgetsListBaseEntry entry, + @Nullable PackageUserKey key) { if (key == null) return false; return entry.mPkgItem.packageName.equals(key.mPackageName) + && entry.mPkgItem.widgetCategory == key.mWidgetCategory && entry.mPkgItem.user.equals(key.mUser); } @@ -434,11 +435,10 @@ public class WidgetsListAdapter extends Adapter<ViewHolder> implements OnHeaderC .filter(entry -> entry instanceof WidgetsListHeaderEntry) .map(entry -> entry.mPkgItem) .collect(Collectors.toMap( - entry -> new PackageUserKey(entry.packageName, entry.user), + entry -> PackageUserKey.fromPackageItemInfo(entry), entry -> entry)); for (WidgetsListBaseEntry visibleEntry: mVisibleEntries) { - PackageUserKey key = new PackageUserKey(visibleEntry.mPkgItem.packageName, - visibleEntry.mPkgItem.user); + PackageUserKey key = PackageUserKey.fromPackageItemInfo(visibleEntry.mPkgItem); PackageItemInfo packageItemInfo = packagesInfo.get(key); if (packageItemInfo != null && !visibleEntry.mPkgItem.title.equals(packageItemInfo.title)) { diff --git a/src/com/android/launcher3/widget/picker/WidgetsListHeader.java b/src/com/android/launcher3/widget/picker/WidgetsListHeader.java index ebd2d1014c..932e06d57b 100644 --- a/src/com/android/launcher3/widget/picker/WidgetsListHeader.java +++ b/src/com/android/launcher3/widget/picker/WidgetsListHeader.java @@ -15,6 +15,8 @@ */ package com.android.launcher3.widget.picker; +import static com.android.launcher3.widget.WidgetSections.NO_CATEGORY; + import android.content.Context; import android.content.res.Resources; import android.content.res.TypedArray; @@ -41,6 +43,8 @@ import com.android.launcher3.model.data.ItemInfoWithIcon; import com.android.launcher3.model.data.PackageItemInfo; import com.android.launcher3.util.PluralMessageFormat; import com.android.launcher3.views.ActivityContext; +import com.android.launcher3.widget.WidgetSections; +import com.android.launcher3.widget.WidgetSections.WidgetSection; import com.android.launcher3.widget.model.WidgetsListHeaderEntry; import com.android.launcher3.widget.model.WidgetsListSearchHeaderEntry; @@ -173,12 +177,12 @@ public final class WidgetsListHeader extends LinearLayout implements ItemInfoUpd private void setIcon(PackageItemInfo info) { Drawable icon; - switch (info.category) { - case PackageItemInfo.CONVERSATIONS: - icon = getContext().getDrawable(R.drawable.ic_conversations_widget_category); - break; - default: - icon = info.newIcon(getContext()); + if (info.widgetCategory == NO_CATEGORY) { + icon = info.newIcon(getContext()); + } else { + WidgetSection widgetSection = WidgetSections.getWidgetSections(getContext()) + .get(info.widgetCategory); + icon = getContext().getDrawable(widgetSection.mSectionDrawable); } applyDrawables(icon); mIconDrawable = icon; diff --git a/src/com/android/launcher3/widget/picker/WidgetsListHeaderViewHolderBinder.java b/src/com/android/launcher3/widget/picker/WidgetsListHeaderViewHolderBinder.java index fadb637054..c6a72855c7 100644 --- a/src/com/android/launcher3/widget/picker/WidgetsListHeaderViewHolderBinder.java +++ b/src/com/android/launcher3/widget/picker/WidgetsListHeaderViewHolderBinder.java @@ -62,9 +62,7 @@ public final class WidgetsListHeaderViewHolderBinder implements (position & POSITION_LAST) != 0, /* isExpanded= */ data.isWidgetListShown())); widgetsListHeader.setOnExpandChangeListener(isExpanded -> - mOnHeaderClickListener.onHeaderClicked( - isExpanded, - new PackageUserKey(data.mPkgItem.packageName, data.mPkgItem.user) - )); + mOnHeaderClickListener.onHeaderClicked(isExpanded, + PackageUserKey.fromPackageItemInfo(data.mPkgItem))); } } diff --git a/src/com/android/launcher3/widget/picker/WidgetsListSearchHeaderViewHolderBinder.java b/src/com/android/launcher3/widget/picker/WidgetsListSearchHeaderViewHolderBinder.java index bff43c101b..2b27fc266a 100644 --- a/src/com/android/launcher3/widget/picker/WidgetsListSearchHeaderViewHolderBinder.java +++ b/src/com/android/launcher3/widget/picker/WidgetsListSearchHeaderViewHolderBinder.java @@ -64,6 +64,6 @@ public final class WidgetsListSearchHeaderViewHolderBinder implements /* isExpanded= */ data.isWidgetListShown())); widgetsListHeader.setOnExpandChangeListener(isExpanded -> mOnHeaderClickListener.onHeaderClicked(isExpanded, - new PackageUserKey(data.mPkgItem.packageName, data.mPkgItem.user))); + PackageUserKey.fromPackageItemInfo(data.mPkgItem))); } } |