Close cursor after getting data from DB

Fixes: 64487360
Test: manual

Change-Id: I7d8a7550dca272a62b2c664cc893e4319e628c18
diff --git a/src/com/android/settings/search/DatabaseResultLoader.java b/src/com/android/settings/search/DatabaseResultLoader.java
index 73b383b..7815a45 100644
--- a/src/com/android/settings/search/DatabaseResultLoader.java
+++ b/src/com/android/settings/search/DatabaseResultLoader.java
@@ -17,6 +17,9 @@
 
 package com.android.settings.search;
 
+import static com.android.settings.search.IndexDatabaseHelper.IndexColumns;
+import static com.android.settings.search.IndexDatabaseHelper.Tables.TABLE_PREFS_INDEX;
+
 import android.content.Context;
 import android.database.Cursor;
 import android.database.sqlite.SQLiteDatabase;
@@ -28,9 +31,6 @@
 import java.util.HashSet;
 import java.util.Set;
 
-import static com.android.settings.search.IndexDatabaseHelper.IndexColumns;
-import static com.android.settings.search.IndexDatabaseHelper.Tables.TABLE_PREFS_INDEX;
-
 /**
  * AsyncTask to retrieve Settings, First party app and any intent based results.
  */
@@ -191,10 +191,12 @@
      * @return A set of the matching results.
      */
     private Set<SearchResult> query(String whereClause, String[] selection, int baseRank) {
-        SQLiteDatabase database = IndexDatabaseHelper.getInstance(mContext).getReadableDatabase();
-        final Cursor resultCursor = database.query(TABLE_PREFS_INDEX, SELECT_COLUMNS, whereClause,
-                selection, null, null, null);
-        return mConverter.convertCursor(mSiteMapManager, resultCursor, baseRank);
+        final SQLiteDatabase database =
+                IndexDatabaseHelper.getInstance(mContext).getReadableDatabase();
+        try (Cursor resultCursor = database.query(TABLE_PREFS_INDEX, SELECT_COLUMNS, whereClause,
+                selection, null, null, null)) {
+            return mConverter.convertCursor(mSiteMapManager, resultCursor, baseRank);
+        }
     }
 
     /**
diff --git a/src/com/android/settings/search/SavedQueryLoader.java b/src/com/android/settings/search/SavedQueryLoader.java
index 87457f5..e8efe85 100644
--- a/src/com/android/settings/search/SavedQueryLoader.java
+++ b/src/com/android/settings/search/SavedQueryLoader.java
@@ -34,7 +34,7 @@
 public class SavedQueryLoader extends AsyncLoader<List<? extends SearchResult>> {
 
     // Max number of proposed suggestions
-    @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
+    @VisibleForTesting
     static final int MAX_PROPOSED_SUGGESTIONS = 5;
 
     private final SQLiteDatabase mDatabase;
@@ -51,15 +51,17 @@
 
     @Override
     public List<? extends SearchResult> loadInBackground() {
-        Cursor cursor = mDatabase.query(IndexDatabaseHelper.Tables.TABLE_SAVED_QUERIES /* table */,
+        try (final Cursor cursor = mDatabase.query(
+                IndexDatabaseHelper.Tables.TABLE_SAVED_QUERIES /* table */,
                 new String[]{SavedQueriesColumns.QUERY} /* columns */,
                 null /* selection */,
                 null /* selectionArgs */,
                 null /* groupBy */,
                 null /* having */,
                 "rowId DESC" /* orderBy */,
-                String.valueOf(MAX_PROPOSED_SUGGESTIONS) /* limit */);
-        return convertCursorToResult(cursor);
+                String.valueOf(MAX_PROPOSED_SUGGESTIONS) /* limit */)) {
+            return convertCursorToResult(cursor);
+        }
     }
 
     private List<SearchResult> convertCursorToResult(Cursor cursor) {