Fix the IME crash on search results clicked

Save the itemId of the item in the cursor.

Bug: 178592271
Test: Manual
Change-Id: I5f42e063123cea1d620368735f50544102acccbb
diff --git a/car-ui-lib/car-ui-lib/src/main/java/com/android/car/ui/imewidescreen/CarUiImeWideScreenController.java b/car-ui-lib/car-ui-lib/src/main/java/com/android/car/ui/imewidescreen/CarUiImeWideScreenController.java
index 05dcdb9..1071e76 100644
--- a/car-ui-lib/car-ui-lib/src/main/java/com/android/car/ui/imewidescreen/CarUiImeWideScreenController.java
+++ b/car-ui-lib/car-ui-lib/src/main/java/com/android/car/ui/imewidescreen/CarUiImeWideScreenController.java
@@ -398,46 +398,52 @@
         String url = CONTENT + getPackageName(mInputEditorInfo) + SEARCH_RESULTS_PROVIDER;
         Uri contentUrl = Uri.parse(url);
         ContentResolver cr = mContext.getContentResolver();
-        Cursor c = cr.query(contentUrl, null, null, null, null);
-        mAutomotiveSearchItems = new ArrayList<>();
-        if (c != null && c.moveToFirst()) {
-            do {
-                CarUiContentListItem searchItem = new CarUiContentListItem(
-                        CarUiContentListItem.Action.ICON);
-                searchItem.setOnItemClickedListener(v -> {
-                    Bundle bundle = new Bundle();
-                    bundle.putString(SEARCH_RESULT_ITEM_ID_LIST,
-                            c.getString(c.getColumnIndex(SearchResultsProvider.ITEM_ID)));
-                    mInputConnection.performPrivateCommand(WIDE_SCREEN_ACTION, bundle);
-                });
-                searchItem.setTitle(c.getString(c.getColumnIndex(SearchResultsProvider.TITLE)));
-                searchItem.setBody(c.getString(c.getColumnIndex(SearchResultsProvider.SUBTITLE)));
-                searchItem.setPrimaryIconType(CarUiContentListItem.IconType.CONTENT);
-                byte[] primaryBlob = c.getBlob(
-                        c.getColumnIndex(SearchResultsProvider.PRIMARY_IMAGE_BLOB));
-                if (primaryBlob != null) {
-                    Bitmap primaryBitmap = Bitmap.CREATOR.createFromParcel(
-                            byteArrayToParcel(primaryBlob));
-                    searchItem.setIcon(
-                            new BitmapDrawable(mContext.getResources(), primaryBitmap));
-                }
-                byte[] secondaryBlob = c.getBlob(
-                        c.getColumnIndex(SearchResultsProvider.SECONDARY_IMAGE_BLOB));
+        try (Cursor c = cr.query(contentUrl, null, null, null, null)) {
+            mAutomotiveSearchItems = new ArrayList<>();
+            if (c != null && c.moveToFirst()) {
+                do {
+                    CarUiContentListItem searchItem = new CarUiContentListItem(
+                            CarUiContentListItem.Action.ICON);
+                    String itemId = c.getString(c.getColumnIndex(SearchResultsProvider.ITEM_ID));
+                    searchItem.setOnItemClickedListener(v -> {
+                        Bundle bundle = new Bundle();
+                        bundle.putString(SEARCH_RESULT_ITEM_ID_LIST, itemId);
+                        mInputConnection.performPrivateCommand(WIDE_SCREEN_ACTION, bundle);
+                    });
+                    searchItem.setTitle(c.getString(
+                            c.getColumnIndex(SearchResultsProvider.TITLE)));
+                    searchItem.setBody(c.getString(
+                            c.getColumnIndex(SearchResultsProvider.SUBTITLE)));
+                    searchItem.setPrimaryIconType(CarUiContentListItem.IconType.CONTENT);
+                    byte[] primaryBlob = c.getBlob(
+                            c.getColumnIndex(
+                                    SearchResultsProvider.PRIMARY_IMAGE_BLOB));
+                    if (primaryBlob != null) {
+                        Bitmap primaryBitmap = Bitmap.CREATOR.createFromParcel(
+                                byteArrayToParcel(primaryBlob));
+                        searchItem.setIcon(
+                                new BitmapDrawable(mContext.getResources(), primaryBitmap));
+                    }
+                    byte[] secondaryBlob = c.getBlob(
+                            c.getColumnIndex(
+                                    SearchResultsProvider.SECONDARY_IMAGE_BLOB));
 
-                if (secondaryBlob != null) {
-                    Bitmap secondaryBitmap = Bitmap.CREATOR.createFromParcel(
-                            byteArrayToParcel(secondaryBlob));
-                    searchItem.setSupplementalIcon(
-                            new BitmapDrawable(mContext.getResources(), secondaryBitmap), v -> {
-                                Bundle bundle = new Bundle();
-                                bundle.putString(SEARCH_RESULT_SUPPLEMENTAL_ICON_ID_LIST,
-                                        c.getString(c.getColumnIndex(
-                                                SearchResultsProvider.SECONDARY_IMAGE_ID)));
-                                mInputConnection.performPrivateCommand(WIDE_SCREEN_ACTION, bundle);
-                            });
-                }
-                mAutomotiveSearchItems.add(searchItem);
-            } while (c.moveToNext());
+                    if (secondaryBlob != null) {
+                        Bitmap secondaryBitmap = Bitmap.CREATOR.createFromParcel(
+                                byteArrayToParcel(secondaryBlob));
+                        searchItem.setSupplementalIcon(
+                                new BitmapDrawable(mContext.getResources(), secondaryBitmap), v -> {
+                                    Bundle bundle = new Bundle();
+                                    bundle.putString(SEARCH_RESULT_SUPPLEMENTAL_ICON_ID_LIST,
+                                            c.getString(c.getColumnIndex(
+                                                    SearchResultsProvider.SECONDARY_IMAGE_ID)));
+                                    mInputConnection.performPrivateCommand(WIDE_SCREEN_ACTION,
+                                            bundle);
+                                });
+                    }
+                    mAutomotiveSearchItems.add(searchItem);
+                } while (c.moveToNext());
+            }
         }
         // delete the results.
         cr.delete(contentUrl, null, null);
diff --git a/car-ui-lib/paintbooth/src/main/java/com/android/car/ui/paintbooth/widescreenime/WideScreenImeActivity.java b/car-ui-lib/paintbooth/src/main/java/com/android/car/ui/paintbooth/widescreenime/WideScreenImeActivity.java
index 71eb954..2eb3063 100644
--- a/car-ui-lib/paintbooth/src/main/java/com/android/car/ui/paintbooth/widescreenime/WideScreenImeActivity.java
+++ b/car-ui-lib/paintbooth/src/main/java/com/android/car/ui/paintbooth/widescreenime/WideScreenImeActivity.java
@@ -101,7 +101,7 @@
                 });
 
         CarUiContentListItem.OnClickListener mainClickListener = i ->
-                Toast.makeText(this, "Item clicked!", Toast.LENGTH_SHORT).show();
+                Toast.makeText(this, "Item clicked! " + i.getTitle(), Toast.LENGTH_SHORT).show();
         CarUiContentListItem.OnClickListener secondaryClickListener = i ->
                 Toast.makeText(this, "Item's secondary action clicked!", Toast.LENGTH_SHORT).show();