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: I2437bee7794a69a0467be95688665c6e3d439fe8 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 androidx.recyclerview.widget.RecyclerView.ViewHolder;
|
||||||
|
|
||||||
import com.android.launcher3.R;
|
import com.android.launcher3.R;
|
||||||
import com.android.launcher3.model.data.PackageItemInfo;
|
|
||||||
import com.android.launcher3.recyclerview.ViewHolderBinder;
|
import com.android.launcher3.recyclerview.ViewHolderBinder;
|
||||||
import com.android.launcher3.util.LabelComparator;
|
import com.android.launcher3.util.LabelComparator;
|
||||||
import com.android.launcher3.util.PackageUserKey;
|
import com.android.launcher3.util.PackageUserKey;
|
||||||
@@ -58,7 +57,6 @@ import java.util.Arrays;
|
|||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.OptionalInt;
|
import java.util.OptionalInt;
|
||||||
import java.util.function.IntSupplier;
|
import java.util.function.IntSupplier;
|
||||||
import java.util.function.Predicate;
|
import java.util.function.Predicate;
|
||||||
@@ -174,9 +172,6 @@ public class WidgetsListAdapter extends Adapter<ViewHolder> implements OnHeaderC
|
|||||||
mAllEntries.clear();
|
mAllEntries.clear();
|
||||||
mAllEntries.add(new WidgetListSpaceEntry());
|
mAllEntries.add(new WidgetListSpaceEntry());
|
||||||
tempEntries.stream().sorted(mRowComparator).forEach(mAllEntries::add);
|
tempEntries.stream().sorted(mRowComparator).forEach(mAllEntries::add);
|
||||||
if (shouldClearVisibleEntries()) {
|
|
||||||
mVisibleEntries.clear();
|
|
||||||
}
|
|
||||||
updateVisibleEntries();
|
updateVisibleEntries();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -426,29 +421,6 @@ public class WidgetsListAdapter extends Adapter<ViewHolder> implements OnHeaderC
|
|||||||
updateVisibleEntries();
|
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. */
|
/** Comparator for sorting WidgetListRowEntry based on package title. */
|
||||||
public static class WidgetListBaseRowEntryComparator implements
|
public static class WidgetListBaseRowEntryComparator implements
|
||||||
Comparator<WidgetsListBaseEntry> {
|
Comparator<WidgetsListBaseEntry> {
|
||||||
|
|||||||
Reference in New Issue
Block a user