summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThiru Ramasamy <thiruram@google.com>2020-06-29 23:35:59 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2020-06-29 23:35:59 +0000
commit6f5d4bb8ab5cee74de5b82e8db2c2957cbda3296 (patch)
treef9c33e7bcb4f9362466874307ce2c95630d778cc
parent19797b419b490cd56c048f37b7592b80dcf12f41 (diff)
parent43bf883841790a63ada0145325800aa135da7de2 (diff)
downloadLauncher3-6f5d4bb8ab5cee74de5b82e8db2c2957cbda3296.tar.gz
Merge "Fixes NPE with system shortcuts." into rvc-dev
-rw-r--r--quickstep/recents_ui_overrides/src/com/android/launcher3/appprediction/PredictionUiStateManager.java27
-rw-r--r--quickstep/recents_ui_overrides/src/com/android/launcher3/hybridhotseat/HotseatPredictionController.java8
2 files changed, 22 insertions, 13 deletions
diff --git a/quickstep/recents_ui_overrides/src/com/android/launcher3/appprediction/PredictionUiStateManager.java b/quickstep/recents_ui_overrides/src/com/android/launcher3/appprediction/PredictionUiStateManager.java
index 5e54cd292f..a0f6b044ba 100644
--- a/quickstep/recents_ui_overrides/src/com/android/launcher3/appprediction/PredictionUiStateManager.java
+++ b/quickstep/recents_ui_overrides/src/com/android/launcher3/appprediction/PredictionUiStateManager.java
@@ -52,7 +52,6 @@ import com.android.launcher3.util.MainThreadInitializedObject;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import java.util.Optional;
import java.util.OptionalInt;
import java.util.stream.IntStream;
@@ -315,16 +314,22 @@ public class PredictionUiStateManager implements StateListener<LauncherState>,
* {@link LauncherSettings.Favorites#ITEM_TYPE_DEEP_SHORTCUT}
*/
public OptionalInt getAllAppsRank(@Nullable ItemInfo itemInfo) {
- Optional<ComponentKey> componentKey = Optional.ofNullable(itemInfo)
- .filter(item -> item.itemType == ITEM_TYPE_APPLICATION
- || item.itemType == ITEM_TYPE_SHORTCUT
- || item.itemType == ITEM_TYPE_DEEP_SHORTCUT)
- .map(ItemInfo::getTargetComponent)
- .map(componentName -> new ComponentKey(componentName, itemInfo.user));
-
- return componentKey.map(key -> IntStream.range(0, getCurrentState().apps.size())
- .filter(index -> key.equals(getCurrentState().apps.get(index).getComponentKey()))
- .findFirst()).orElseGet(OptionalInt::empty);
+ if (itemInfo == null || itemInfo.getTargetComponent() == null || itemInfo.user == null) {
+ return OptionalInt.empty();
+ }
+
+ if (itemInfo.itemType == ITEM_TYPE_APPLICATION
+ || itemInfo.itemType == ITEM_TYPE_SHORTCUT
+ || itemInfo.itemType == ITEM_TYPE_DEEP_SHORTCUT) {
+ ComponentKey key = new ComponentKey(itemInfo.getTargetComponent(),
+ itemInfo.user);
+ final List<ComponentKeyMapper> apps = getCurrentState().apps;
+ return IntStream.range(0, apps.size())
+ .filter(index -> key.equals(apps.get(index).getComponentKey()))
+ .findFirst();
+ }
+
+ return OptionalInt.empty();
}
/**
diff --git a/quickstep/recents_ui_overrides/src/com/android/launcher3/hybridhotseat/HotseatPredictionController.java b/quickstep/recents_ui_overrides/src/com/android/launcher3/hybridhotseat/HotseatPredictionController.java
index 1dbb9e2d6b..987cd0fcf6 100644
--- a/quickstep/recents_ui_overrides/src/com/android/launcher3/hybridhotseat/HotseatPredictionController.java
+++ b/quickstep/recents_ui_overrides/src/com/android/launcher3/hybridhotseat/HotseatPredictionController.java
@@ -655,11 +655,15 @@ public class HotseatPredictionController implements DragController.DragListener,
+ ",launchLocation:" + itemInfo.container);
}
- final ComponentKey k = new ComponentKey(itemInfo.getTargetComponent(), itemInfo.user);
+ if (itemInfo.getTargetComponent() == null || itemInfo.user == null) {
+ return;
+ }
+
+ final ComponentKey key = new ComponentKey(itemInfo.getTargetComponent(), itemInfo.user);
final List<ComponentKeyMapper> predictedApps = new ArrayList<>(mComponentKeyMappers);
OptionalInt rank = IntStream.range(0, predictedApps.size())
- .filter((i) -> k.equals(predictedApps.get(i).getComponentKey()))
+ .filter(index -> key.equals(predictedApps.get(index).getComponentKey()))
.findFirst();
if (!rank.isPresent()) {
return;