Merge "Fix widget picker crash" into udc-dev am: 6c3c6b3ae6
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/23477033 Change-Id: I8f75cb4ea64a323c7223200c7841136071987614 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -42,7 +42,6 @@ import androidx.recyclerview.widget.RecyclerView.Adapter;
|
||||
import androidx.recyclerview.widget.RecyclerView.ViewHolder;
|
||||
|
||||
import com.android.launcher3.R;
|
||||
import com.android.launcher3.model.data.PackageItemInfo;
|
||||
import com.android.launcher3.recyclerview.ViewHolderBinder;
|
||||
import com.android.launcher3.util.LabelComparator;
|
||||
import com.android.launcher3.util.PackageUserKey;
|
||||
@@ -58,7 +57,6 @@ import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.OptionalInt;
|
||||
import java.util.function.IntSupplier;
|
||||
import java.util.function.Predicate;
|
||||
@@ -174,9 +172,6 @@ public class WidgetsListAdapter extends Adapter<ViewHolder> implements OnHeaderC
|
||||
mAllEntries.clear();
|
||||
mAllEntries.add(new WidgetListSpaceEntry());
|
||||
tempEntries.stream().sorted(mRowComparator).forEach(mAllEntries::add);
|
||||
if (shouldClearVisibleEntries()) {
|
||||
mVisibleEntries.clear();
|
||||
}
|
||||
updateVisibleEntries();
|
||||
}
|
||||
|
||||
@@ -426,29 +421,6 @@ public class WidgetsListAdapter extends Adapter<ViewHolder> implements OnHeaderC
|
||||
updateVisibleEntries();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns {@code true} if there is a change in {@link #mAllEntries} that results in an
|
||||
* invalidation of {@link #mVisibleEntries}. e.g. there is change in the device language.
|
||||
*/
|
||||
private boolean shouldClearVisibleEntries() {
|
||||
Map<PackageUserKey, PackageItemInfo> packagesInfo =
|
||||
mAllEntries.stream()
|
||||
.filter(entry -> entry instanceof WidgetsListHeaderEntry)
|
||||
.map(entry -> entry.mPkgItem)
|
||||
.collect(Collectors.toMap(
|
||||
entry -> PackageUserKey.fromPackageItemInfo(entry),
|
||||
entry -> entry));
|
||||
for (WidgetsListBaseEntry visibleEntry: mVisibleEntries) {
|
||||
PackageUserKey key = PackageUserKey.fromPackageItemInfo(visibleEntry.mPkgItem);
|
||||
PackageItemInfo packageItemInfo = packagesInfo.get(key);
|
||||
if (packageItemInfo != null
|
||||
&& !visibleEntry.mPkgItem.title.equals(packageItemInfo.title)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/** Comparator for sorting WidgetListRowEntry based on package title. */
|
||||
public static class WidgetListBaseRowEntryComparator implements
|
||||
Comparator<WidgetsListBaseEntry> {
|
||||
|
||||
Reference in New Issue
Block a user