Merge "Fix NPE when calling getSuggestionV2 in adapter."
diff --git a/src/com/android/settings/dashboard/suggestions/SuggestionAdapter.java b/src/com/android/settings/dashboard/suggestions/SuggestionAdapter.java
index 94435bd..38b9d28 100644
--- a/src/com/android/settings/dashboard/suggestions/SuggestionAdapter.java
+++ b/src/com/android/settings/dashboard/suggestions/SuggestionAdapter.java
@@ -220,6 +220,9 @@
 
     public Tile getSuggestion(int position) {
         final long itemId = getItemId(position);
+        if (mSuggestions == null) {
+            return null;
+        }
         for (Tile tile : mSuggestions) {
             if (Objects.hash(tile.title) == itemId) {
                 return tile;
@@ -230,6 +233,9 @@
 
     public Suggestion getSuggestionsV2(int position) {
         final long itemId = getItemId(position);
+        if (mSuggestionsV2 == null) {
+            return null;
+        }
         for (Suggestion suggestion : mSuggestionsV2) {
             if (Objects.hash(suggestion.getId()) == itemId) {
                 return suggestion;
diff --git a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionAdapterTest.java b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionAdapterTest.java
index 1e4ad79..6b80465 100644
--- a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionAdapterTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionAdapterTest.java
@@ -203,7 +203,7 @@
     public void onBindViewHolder_v2_itemViewShouldHandleClick()
             throws PendingIntent.CanceledException {
         final List<Suggestion> packages = makeSuggestionsV2("pkg1");
-        setupSuggestions(mActivity, null /* suggestionV1 */ , packages);
+        setupSuggestions(mActivity, null /* suggestionV1 */, packages);
 
         mSuggestionAdapter.onBindViewHolder(mSuggestionHolder, 0);
         mSuggestionHolder.itemView.performClick();
@@ -233,6 +233,22 @@
         assertThat(itemView.getChildCount()).isEqualTo(1);
     }
 
+    @Test
+    public void getSuggestionsV2_shouldReturnSuggestionWhenMatch() {
+        final List<Suggestion> suggestionsV2 = makeSuggestionsV2("pkg1");
+        setupSuggestions(mActivity, null /* suggestionV1 */, suggestionsV2);
+
+        assertThat(mSuggestionAdapter.getSuggestion(0)).isNull();
+        assertThat(mSuggestionAdapter.getSuggestionsV2(0)).isNotNull();
+
+        List<Tile> suggestionsV1 = makeSuggestions("pkg1");
+        setupSuggestions(mActivity, suggestionsV1, null /* suggestionV2 */);
+
+        assertThat(mSuggestionAdapter.getSuggestionsV2(0)).isNull();
+        assertThat(mSuggestionAdapter.getSuggestion(0)).isNotNull();
+
+    }
+
     private void setupSuggestions(Context context, List<Tile> suggestions,
             List<Suggestion> suggestionsV2) {
         mSuggestionAdapter = new SuggestionAdapter(context, suggestions, suggestionsV2,