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,