Merge Android 12

Bug: 202323961
Merged-In: I745c30269d26b5bef2e5330b565db0cffa3712f5
Change-Id: I96eb8bfee54e9eea557b016ba1a8cc62baba6d02
diff --git a/Android.bp b/Android.bp
index 0a0ca56..475be42 100644
--- a/Android.bp
+++ b/Android.bp
@@ -29,6 +29,28 @@
     ],
 }
 
+android_library {
+    name: "SettingsIntelligence-core",
+    sdk_version: "system_current",
+    srcs: [
+        "src/**/*.java",
+        "proto/**/*.proto",
+    ],
+
+    static_libs: [
+        "androidx.legacy_legacy-support-v4",
+        "androidx.legacy_legacy-support-v13",
+        "androidx.appcompat_appcompat",
+        "androidx.cardview_cardview",
+        "androidx.preference_preference",
+        "androidx.recyclerview_recyclerview",
+        "androidx.legacy_legacy-preference-v14",
+    ],
+    proto: {
+        type: "nano",
+    },
+}
+
 android_app {
     name: "SettingsIntelligence",
     optimize: {
@@ -39,23 +61,6 @@
     privileged: true,
     required: ["privapp_whitelist_com.android.settings.intelligence"],
 
-    libs: ["android.car-stubs"],
-    static_libs: [
-        "androidx.legacy_legacy-support-v4",
-        "androidx.legacy_legacy-support-v13",
-        "androidx.appcompat_appcompat",
-        "androidx.cardview_cardview",
-        "androidx.preference_preference",
-        "androidx.recyclerview_recyclerview",
-        "androidx.legacy_legacy-preference-v14",
-        "car-ui-lib",
-    ],
-    resource_dirs: ["res"],
-    srcs: [
-        "src/**/*.java",
-        "proto/**/*.proto",
-    ],
-    proto: {
-        type: "nano",
-    },
+    static_libs: ["SettingsIntelligence-core"],
+    resource_dirs: [],
 }
diff --git a/OWNERS b/OWNERS
index 620981f..3c22c9a 100644
--- a/OWNERS
+++ b/OWNERS
@@ -2,7 +2,7 @@
 
 # Android auto
 rlagos@google.com # OWNER for SUW related code
-ericberglund@google.com # OWNER for Car Settings related code
+alexstetson@google.com # OWNER for Car Settings related code
 
 # TV Settings
 leifhendrik@google.com
diff --git a/res/values/strings.xml b/res/values/strings.xml
index eb768f5..3445e51 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -19,6 +19,9 @@
     <!-- Applications settings title. If clicked, the user is taken to a screen full of application settings [CHAR_LIMIT=NONE BACKUP_MESSAGE_ID=5281808652705396152] -->
     <string name="applications_settings">App info</string>
 
+    <!-- Class name for AccessibilityServiceResult Task [CHAR_LIMIT=NONE]-->
+    <string name="accessibility_settings_classname">com.android.settings.accessibility.AccessibilitySettings</string>
+
     <!-- Settings title in main settings screen for accessibility settings [CHAR_LIMIT=NONE BACKUP_MESSAGE_ID=3975902491934816215] -->
     <string name="accessibility_settings">Accessibility</string>
 
diff --git a/res/values/themes.xml b/res/values/themes.xml
index c0453b1..66868de 100644
--- a/res/values/themes.xml
+++ b/res/values/themes.xml
@@ -23,6 +23,4 @@
         <item name="android:windowNoTitle">true</item>
         <item name="android:windowSoftInputMode">adjustPan</item>
     </style>
-
-    <style name="Theme.CarSettings" parent="@style/Theme.CarUi.WithToolbar"/>
 </resources>
\ No newline at end of file
diff --git a/res/xml/car_search_fragment.xml b/res/xml/car_search_fragment.xml
deleted file mode 100644
index 201c60a..0000000
--- a/res/xml/car_search_fragment.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2020 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<PreferenceScreen
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:settings="http://schemas.android.com/apk/res-auto"
-    android:title="@string/app_name_settings_intelligence"/>
diff --git a/src/com/android/settings/intelligence/search/SearchActivity.java b/src/com/android/settings/intelligence/search/SearchActivity.java
index 229c926..28e1783 100644
--- a/src/com/android/settings/intelligence/search/SearchActivity.java
+++ b/src/com/android/settings/intelligence/search/SearchActivity.java
@@ -17,36 +17,26 @@
 
 package com.android.settings.intelligence.search;
 
-import androidx.fragment.app.FragmentActivity;
+import android.os.Bundle;
+
 import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentActivity;
 import androidx.fragment.app.FragmentManager;
 
-import android.content.pm.PackageManager;
-import android.os.Bundle;
-import android.view.WindowManager;
-
 import com.android.settings.intelligence.R;
-import com.android.settings.intelligence.search.car.CarSearchFragment;
 
 public class SearchActivity extends FragmentActivity {
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
-        if (isAutomotive()) {
-            // Automotive relies on a different theme. Apply before calling super so that
-            // fragments are restored properly on configuration changes.
-            setTheme(R.style.Theme_CarSettings);
-        }
         super.onCreate(savedInstanceState);
         setContentView(R.layout.search_main);
 
         FragmentManager fragmentManager = getSupportFragmentManager();
         Fragment fragment = fragmentManager.findFragmentById(R.id.main_content);
         if (fragment == null) {
-            fragment = isAutomotive() ?
-                    new CarSearchFragment() : new SearchFragment();
             fragmentManager.beginTransaction()
-                    .add(R.id.main_content, fragment)
+                    .add(R.id.main_content, new SearchFragment())
                     .commit();
         }
     }
@@ -56,8 +46,4 @@
         finish();
         return true;
     }
-
-    private boolean isAutomotive() {
-        return getPackageManager().hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE);
-    }
 }
diff --git a/src/com/android/settings/intelligence/search/car/CarFeatureFactoryImpl.java b/src/com/android/settings/intelligence/search/car/CarFeatureFactoryImpl.java
deleted file mode 100644
index 452ab27..0000000
--- a/src/com/android/settings/intelligence/search/car/CarFeatureFactoryImpl.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.intelligence.search.car;
-
-import androidx.annotation.Keep;
-
-import com.android.settings.intelligence.overlay.FeatureFactoryImpl;
-import com.android.settings.intelligence.search.SearchFeatureProvider;
-
-/**
- * FeatureFactory implementation for car settings search.
- */
-@Keep
-public class CarFeatureFactoryImpl extends FeatureFactoryImpl {
-    @Override
-    public SearchFeatureProvider searchFeatureProvider() {
-        if (mSearchFeatureProvider == null) {
-            mSearchFeatureProvider = new CarSearchFeatureProviderImpl();
-        }
-        return mSearchFeatureProvider;
-    }
-}
diff --git a/src/com/android/settings/intelligence/search/car/CarIntentSearchViewHolder.java b/src/com/android/settings/intelligence/search/car/CarIntentSearchViewHolder.java
deleted file mode 100644
index a8353cd..0000000
--- a/src/com/android/settings/intelligence/search/car/CarIntentSearchViewHolder.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.intelligence.search.car;
-
-import android.content.pm.PackageManager;
-import android.text.TextUtils;
-import android.view.View;
-
-import com.android.settings.intelligence.R;
-import com.android.settings.intelligence.search.AppSearchResult;
-import com.android.settings.intelligence.search.SearchResult;
-
-/**
- * ViewHolder for intent based search results.
- */
-public class CarIntentSearchViewHolder extends CarSearchViewHolder {
-
-    public CarIntentSearchViewHolder(View view) {
-        super(view);
-    }
-
-    @Override
-    public void onBind(CarSearchFragment fragment, SearchResult result) {
-        mTitle.setText(result.title);
-        if (result instanceof AppSearchResult) {
-            AppSearchResult appResult = (AppSearchResult) result;
-            PackageManager pm = fragment.getActivity().getPackageManager();
-            mIcon.setImageDrawable(appResult.info.loadIcon(pm));
-        } else {
-            mIcon.setImageDrawable(result.icon);
-        }
-        bindBreadcrumbView(result);
-
-        itemView.setOnClickListener(v -> fragment.onSearchResultClicked(result));
-    }
-
-    private void bindBreadcrumbView(SearchResult result) {
-        if (result.breadcrumbs == null || result.breadcrumbs.isEmpty()) {
-            mSummary.setVisibility(View.GONE);
-            return;
-        }
-        String breadcrumb = result.breadcrumbs.get(0);
-        int count = result.breadcrumbs.size();
-        for (int i = 1; i < count; i++) {
-            breadcrumb = mContext.getString(R.string.search_breadcrumb_connector,
-                    breadcrumb, result.breadcrumbs.get(i));
-        }
-        if (breadcrumb == null || TextUtils.isEmpty(breadcrumb.trim())) {
-            mSummary.setVisibility(View.GONE);
-        } else {
-            mSummary.setText(breadcrumb);
-            mSummary.setVisibility(View.VISIBLE);
-        }
-    }
-}
diff --git a/src/com/android/settings/intelligence/search/car/CarSearchFeatureProviderImpl.java b/src/com/android/settings/intelligence/search/car/CarSearchFeatureProviderImpl.java
deleted file mode 100644
index 2491cbd..0000000
--- a/src/com/android/settings/intelligence/search/car/CarSearchFeatureProviderImpl.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.intelligence.search.car;
-
-import android.content.Context;
-import android.text.TextUtils;
-import android.util.Log;
-import android.util.Pair;
-import android.view.View;
-
-import com.android.settings.intelligence.search.SearchFeatureProvider;
-import com.android.settings.intelligence.search.SearchFragment;
-import com.android.settings.intelligence.search.SearchResult;
-import com.android.settings.intelligence.search.SearchResultLoader;
-import com.android.settings.intelligence.search.indexing.DatabaseIndexingManager;
-import com.android.settings.intelligence.search.indexing.IndexData;
-import com.android.settings.intelligence.search.indexing.IndexingCallback;
-import com.android.settings.intelligence.search.indexing.car.CarDatabaseIndexingManager;
-import com.android.settings.intelligence.search.query.DatabaseResultTask;
-import com.android.settings.intelligence.search.query.InstalledAppResultTask;
-import com.android.settings.intelligence.search.query.SearchQueryTask;
-import com.android.settings.intelligence.search.savedqueries.SavedQueryLoader;
-import com.android.settings.intelligence.search.sitemap.SiteMapManager;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Locale;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.FutureTask;
-
-/**
- * SearchFeatureProvider for car settings search.
- */
-public class CarSearchFeatureProviderImpl implements SearchFeatureProvider {
-    private static final String TAG = "CarSearchFeatureProvider";
-    private static final long SMART_SEARCH_RANKING_TIMEOUT = 300L;
-
-    private CarDatabaseIndexingManager mDatabaseIndexingManager;
-    private ExecutorService mExecutorService;
-    private SiteMapManager mSiteMapManager;
-
-    @Override
-    public SearchResultLoader getSearchResultLoader(Context context, String query) {
-        return new SearchResultLoader(context, cleanQuery(query));
-    }
-
-    @Override
-    public List<SearchQueryTask> getSearchQueryTasks(Context context, String query) {
-        List<SearchQueryTask> tasks = new ArrayList<>();
-        String cleanQuery = cleanQuery(query);
-        tasks.add(DatabaseResultTask.newTask(context, getSiteMapManager(), cleanQuery));
-        tasks.add(InstalledAppResultTask.newTask(context, getSiteMapManager(), cleanQuery));
-        return tasks;
-    }
-
-    @Override
-    public SavedQueryLoader getSavedQueryLoader(Context context) {
-        return new SavedQueryLoader(context);
-    }
-
-    @Override
-    public DatabaseIndexingManager getIndexingManager(Context context) {
-        if (mDatabaseIndexingManager == null) {
-            mDatabaseIndexingManager = new CarDatabaseIndexingManager(
-                    context.getApplicationContext());
-        }
-        return mDatabaseIndexingManager;
-    }
-
-    @Override
-    public SiteMapManager getSiteMapManager() {
-        if (mSiteMapManager == null) {
-            mSiteMapManager = new SiteMapManager();
-        }
-        return mSiteMapManager;
-    }
-
-    @Override
-    public boolean isIndexingComplete(Context context) {
-        return getIndexingManager(context).isIndexingComplete();
-    }
-
-    @Override
-    public void initFeedbackButton() {
-    }
-
-    @Override
-    public void showFeedbackButton(SearchFragment fragment, View root) {
-    }
-
-    @Override
-    public void hideFeedbackButton(View root) {
-    }
-
-    @Override
-    public void searchResultClicked(Context context, String query, SearchResult searchResult) {
-    }
-
-    @Override
-    public boolean isSmartSearchRankingEnabled(Context context) {
-        return false;
-    }
-
-    @Override
-    public long smartSearchRankingTimeoutMs(Context context) {
-        return SMART_SEARCH_RANKING_TIMEOUT;
-    }
-
-    @Override
-    public void searchRankingWarmup(Context context) {
-    }
-
-    @Override
-    public FutureTask<List<Pair<String, Float>>> getRankerTask(Context context, String query) {
-        return null;
-    }
-
-    @Override
-    public void updateIndexAsync(Context context, IndexingCallback callback) {
-        if (DEBUG) {
-            Log.d(TAG, "updating index async");
-        }
-        getIndexingManager(context).indexDatabase(callback);
-    }
-
-    @Override
-    public ExecutorService getExecutorService() {
-        if (mExecutorService == null) {
-            mExecutorService = Executors.newCachedThreadPool();
-        }
-        return mExecutorService;
-    }
-
-    /**
-     * A generic method to make the query suitable for searching the database.
-     *
-     * @return the cleaned query string
-     */
-    private String cleanQuery(String query) {
-        if (TextUtils.isEmpty(query)) {
-            return null;
-        }
-        if (Locale.getDefault().equals(Locale.JAPAN)) {
-            query = IndexData.normalizeJapaneseString(query);
-        }
-        return query.trim();
-    }
-}
diff --git a/src/com/android/settings/intelligence/search/car/CarSearchFragment.java b/src/com/android/settings/intelligence/search/car/CarSearchFragment.java
deleted file mode 100644
index 702be42..0000000
--- a/src/com/android/settings/intelligence/search/car/CarSearchFragment.java
+++ /dev/null
@@ -1,338 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.intelligence.search.car;
-
-import static com.android.car.ui.core.CarUi.requireInsets;
-import static com.android.car.ui.core.CarUi.requireToolbar;
-import static com.android.car.ui.utils.CarUiUtils.drawableToBitmap;
-
-import android.app.Activity;
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.graphics.Bitmap;
-import android.graphics.drawable.BitmapDrawable;
-import android.graphics.drawable.Drawable;
-import android.os.Bundle;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.View;
-import android.view.inputmethod.InputMethodManager;
-
-import androidx.annotation.NonNull;
-import androidx.loader.app.LoaderManager;
-import androidx.loader.content.Loader;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.android.car.ui.imewidescreen.CarUiImeSearchListItem;
-import com.android.car.ui.preference.PreferenceFragment;
-import com.android.car.ui.recyclerview.CarUiContentListItem;
-import com.android.car.ui.toolbar.MenuItem;
-import com.android.car.ui.toolbar.Toolbar;
-import com.android.car.ui.toolbar.ToolbarController;
-import com.android.settings.intelligence.R;
-import com.android.settings.intelligence.overlay.FeatureFactory;
-import com.android.settings.intelligence.search.AppSearchResult;
-import com.android.settings.intelligence.search.SearchCommon;
-import com.android.settings.intelligence.search.SearchFeatureProvider;
-import com.android.settings.intelligence.search.SearchResult;
-import com.android.settings.intelligence.search.indexing.IndexingCallback;
-import com.android.settings.intelligence.search.savedqueries.car.CarSavedQueryController;
-import com.android.settings.intelligence.search.savedqueries.car.CarSavedQueryViewHolder;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Search fragment for car settings.
- */
-public class CarSearchFragment extends PreferenceFragment implements
-        LoaderManager.LoaderCallbacks<List<? extends SearchResult>>, IndexingCallback {
-    private static final String TAG = "CarSearchFragment";
-    private static final int REQUEST_CODE_NO_OP = 0;
-
-    private SearchFeatureProvider mSearchFeatureProvider;
-
-    private ToolbarController mToolbar;
-    private RecyclerView mRecyclerView;
-
-    private String mQuery;
-    private boolean mShowingSavedQuery;
-
-    private CarSearchResultsAdapter mSearchAdapter;
-    private CarSavedQueryController mSavedQueryController;
-
-    private final RecyclerView.OnScrollListener mScrollListener =
-            new RecyclerView.OnScrollListener() {
-                @Override
-                public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
-                    if (dy != 0) {
-                        hideKeyboard();
-                    }
-                }
-            };
-
-    @Override
-    public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
-        setPreferencesFromResource(R.xml.car_search_fragment, rootKey);
-    }
-
-    protected ToolbarController getToolbar() {
-        return requireToolbar(requireActivity());
-    }
-
-    protected List<MenuItem> getToolbarMenuItems() {
-        return null;
-    }
-
-    @Override
-    public void onAttach(Context context) {
-        super.onAttach(context);
-        mSearchFeatureProvider = FeatureFactory.get(context).searchFeatureProvider();
-    }
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        if (savedInstanceState != null) {
-            mQuery = savedInstanceState.getString(SearchCommon.STATE_QUERY);
-            mShowingSavedQuery = savedInstanceState.getBoolean(
-                    SearchCommon.STATE_SHOWING_SAVED_QUERY);
-        } else {
-            mShowingSavedQuery = true;
-        }
-
-        LoaderManager loaderManager = getLoaderManager();
-        mSearchAdapter = new CarSearchResultsAdapter(/* fragment= */ this);
-        mToolbar = getToolbar();
-        mSavedQueryController = new CarSavedQueryController(
-                getContext(), loaderManager, mSearchAdapter, mToolbar, this);
-        mSearchFeatureProvider.updateIndexAsync(getContext(), /* indexingCallback= */ this);
-    }
-
-    @Override
-    public void onActivityCreated(Bundle savedInstanceState) {
-        super.onActivityCreated(savedInstanceState);
-        if (mToolbar != null) {
-            List<MenuItem> items = getToolbarMenuItems();
-            mToolbar.setTitle(getPreferenceScreen().getTitle());
-            mToolbar.setMenuItems(items);
-            mToolbar.setNavButtonMode(Toolbar.NavButtonMode.BACK);
-            mToolbar.setState(Toolbar.State.SUBPAGE);
-            mToolbar.setState(Toolbar.State.SEARCH);
-            mToolbar.setSearchHint(R.string.abc_search_hint);
-            mToolbar.registerOnSearchListener(this::onQueryTextChange);
-            mToolbar.registerOnSearchCompletedListener(this::onSearchComplete);
-            mToolbar.setShowMenuItemsWhileSearching(true);
-            mToolbar.setSearchQuery(mQuery);
-        }
-        mRecyclerView = getListView();
-        if (mRecyclerView != null) {
-            mRecyclerView.setAdapter(mSearchAdapter);
-            mRecyclerView.addOnScrollListener(mScrollListener);
-        }
-    }
-
-    @Override
-    public void onStart() {
-        super.onStart();
-        onCarUiInsetsChanged(requireInsets(requireActivity()));
-    }
-
-    @Override
-    public void onSaveInstanceState(@NonNull Bundle outState) {
-        super.onSaveInstanceState(outState);
-        outState.putString(SearchCommon.STATE_QUERY, mQuery);
-        outState.putBoolean(SearchCommon.STATE_SHOWING_SAVED_QUERY, mShowingSavedQuery);
-    }
-
-    private void onQueryTextChange(String query) {
-        if (TextUtils.equals(query, mQuery)) {
-            return;
-        }
-        boolean isEmptyQuery = TextUtils.isEmpty(query);
-
-        mQuery = query;
-
-        // If indexing is not finished, register the query text, but don't search.
-        if (!mSearchFeatureProvider.isIndexingComplete(getActivity())) {
-            mToolbar.getProgressBar().setVisible(!isEmptyQuery);
-            return;
-        }
-
-        if (isEmptyQuery) {
-            LoaderManager loaderManager = getLoaderManager();
-            loaderManager.destroyLoader(SearchCommon.SearchLoaderId.SEARCH_RESULT);
-            mShowingSavedQuery = true;
-            mSavedQueryController.loadSavedQueries();
-        } else {
-            restartLoaders();
-        }
-    }
-
-    private void onSearchComplete() {
-        if (!TextUtils.isEmpty(mQuery)) {
-            mSavedQueryController.saveQuery(mQuery);
-        }
-    }
-
-    /**
-     * Gets called when a saved query is clicked.
-     */
-    public void onSavedQueryClicked(CharSequence query) {
-        String queryString = query.toString();
-        mToolbar.setSearchQuery(queryString);
-        onQueryTextChange(queryString);
-    }
-
-    @Override
-    public Loader<List<? extends SearchResult>> onCreateLoader(int id, Bundle args) {
-        Activity activity = getActivity();
-
-        if (id == SearchCommon.SearchLoaderId.SEARCH_RESULT) {
-            return mSearchFeatureProvider.getSearchResultLoader(activity, mQuery);
-        }
-        return null;
-    }
-
-    @Override
-    public void onLoadFinished(Loader<List<? extends SearchResult>> loader,
-            List<? extends SearchResult> data) {
-
-        if (mToolbar.canShowSearchResultItems()) {
-            List<CarUiImeSearchListItem> searchItems = new ArrayList<>();
-            for (SearchResult result : data) {
-                CarUiImeSearchListItem item = new CarUiImeSearchListItem(
-                        CarUiContentListItem.Action.ICON);
-                item.setTitle(result.title);
-                if (result.breadcrumbs != null && !result.breadcrumbs.isEmpty()) {
-                    item.setBody(getBreadcrumb(result));
-                }
-
-                if (result instanceof AppSearchResult) {
-                    AppSearchResult appResult = (AppSearchResult) result;
-                    PackageManager pm = getActivity().getPackageManager();
-                    Drawable drawable = appResult.info.loadIcon(pm);
-                    Bitmap bm = drawableToBitmap(drawable);
-                    BitmapDrawable bitmapDrawable = new BitmapDrawable(getResources(), bm);
-                    item.setIcon(bitmapDrawable);
-                } else if (result.icon != null) {
-                    Bitmap bm = drawableToBitmap(result.icon);
-                    BitmapDrawable bitmapDrawable = new BitmapDrawable(getResources(), bm);
-                    item.setIcon(bitmapDrawable);
-                }
-                item.setOnItemClickedListener(v -> onSearchResultClicked(result));
-
-                searchItems.add(item);
-            }
-            mToolbar.setSearchResultItems(searchItems);
-        }
-
-        mSearchAdapter.postSearchResults(data);
-        mRecyclerView.scrollToPosition(0);
-    }
-
-    private String getBreadcrumb(SearchResult result) {
-        String breadcrumb = result.breadcrumbs.get(0);
-        int count = result.breadcrumbs.size();
-        for (int i = 1; i < count; i++) {
-            breadcrumb = getContext().getString(R.string.search_breadcrumb_connector,
-                    breadcrumb, result.breadcrumbs.get(i));
-        }
-
-        return breadcrumb;
-    }
-
-    /**
-     * Gets called when a search result is clicked.
-     */
-    protected void onSearchResultClicked(SearchResult result) {
-        mSearchFeatureProvider.searchResultClicked(getContext(), mQuery, result);
-        mSavedQueryController.saveQuery(mQuery);
-
-        Intent intent = result.payload.getIntent();
-        if (result instanceof AppSearchResult) {
-            getActivity().startActivity(intent);
-        } else {
-            PackageManager pm = getActivity().getPackageManager();
-            List<ResolveInfo> info = pm.queryIntentActivities(intent, /* flags= */ 0);
-            if (info != null && !info.isEmpty()) {
-                startActivityForResult(intent, REQUEST_CODE_NO_OP);
-            } else {
-                Log.e(TAG, "Cannot launch search result, title: "
-                        + result.title + ", " + intent);
-            }
-        }
-    }
-
-    @Override
-    public void onLoaderReset(Loader<List<? extends SearchResult>> loader) {
-    }
-
-    /**
-     * Gets called when Indexing is completed.
-     */
-    @Override
-    public void onIndexingFinished() {
-        if (getActivity() == null) {
-            return;
-        }
-        mToolbar.getProgressBar().setVisible(false);
-        if (mShowingSavedQuery) {
-            mSavedQueryController.loadSavedQueries();
-        } else {
-            LoaderManager loaderManager = getLoaderManager();
-            loaderManager.initLoader(SearchCommon.SearchLoaderId.SEARCH_RESULT,
-                    /* args= */ null, /* callback= */ this);
-        }
-        requery();
-    }
-
-    private void requery() {
-        if (TextUtils.isEmpty(mQuery)) {
-            return;
-        }
-        String query = mQuery;
-        mQuery = "";
-        onQueryTextChange(query);
-    }
-
-    private void restartLoaders() {
-        mShowingSavedQuery = false;
-        LoaderManager loaderManager = getLoaderManager();
-        loaderManager.restartLoader(SearchCommon.SearchLoaderId.SEARCH_RESULT,
-                /* args= */ null, /* callback= */ this);
-    }
-
-    private void hideKeyboard() {
-        Activity activity = getActivity();
-        if (activity != null) {
-            View view = activity.getCurrentFocus();
-            InputMethodManager imm = (InputMethodManager)
-                    activity.getSystemService(Context.INPUT_METHOD_SERVICE);
-            if (imm.isActive(view)) {
-                imm.hideSoftInputFromWindow(view.getWindowToken(), /* flags= */ 0);
-            }
-        }
-
-        if (mRecyclerView != null) {
-            mRecyclerView.requestFocus();
-        }
-    }
-}
diff --git a/src/com/android/settings/intelligence/search/car/CarSearchResultsAdapter.java b/src/com/android/settings/intelligence/search/car/CarSearchResultsAdapter.java
deleted file mode 100644
index be35482..0000000
--- a/src/com/android/settings/intelligence/search/car/CarSearchResultsAdapter.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.intelligence.search.car;
-
-import android.content.Context;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import androidx.recyclerview.widget.DiffUtil;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.android.settings.intelligence.R;
-import com.android.settings.intelligence.search.ResultPayload;
-import com.android.settings.intelligence.search.SearchResult;
-import com.android.settings.intelligence.search.SearchResultDiffCallback;
-import com.android.settings.intelligence.search.savedqueries.car.CarSavedQueryViewHolder;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * RecyclerView Adapter for the car search results RecyclerView.
- * The adapter uses the CarSearchViewHolder for its view contents.
- */
-public class CarSearchResultsAdapter extends RecyclerView.Adapter<CarSearchViewHolder> {
-
-    private final CarSearchFragment mFragment;
-    private final List<SearchResult> mSearchResults;
-
-    public CarSearchResultsAdapter(CarSearchFragment fragment) {
-        mFragment = fragment;
-        mSearchResults = new ArrayList<>();
-
-        setHasStableIds(true);
-    }
-
-    @Override
-    public CarSearchViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
-        Context context = parent.getContext();
-        LayoutInflater inflater = LayoutInflater.from(context);
-        View view;
-        switch (viewType) {
-            case ResultPayload.PayloadType.INTENT:
-                view = inflater.inflate(R.layout.car_ui_preference, parent,
-                        /* attachToRoot= */ false);
-                return new CarIntentSearchViewHolder(view);
-            case ResultPayload.PayloadType.SAVED_QUERY:
-                view = inflater.inflate(R.layout.car_ui_preference, parent,
-                        /* attachToRoot= */ false);
-                return new CarSavedQueryViewHolder(view);
-            default:
-                return null;
-        }
-    }
-
-    @Override
-    public void onBindViewHolder(CarSearchViewHolder holder, int position) {
-        holder.onBind(mFragment, mSearchResults.get(position));
-    }
-
-    @Override
-    public long getItemId(int position) {
-        return mSearchResults.get(position).hashCode();
-    }
-
-    @Override
-    public int getItemViewType(int position) {
-        return mSearchResults.get(position).viewType;
-    }
-
-    @Override
-    public int getItemCount() {
-        return mSearchResults.size();
-    }
-
-    protected void postSearchResults(List<? extends SearchResult> newSearchResults) {
-        DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(
-                new SearchResultDiffCallback(mSearchResults, newSearchResults));
-        mSearchResults.clear();
-        mSearchResults.addAll(newSearchResults);
-        diffResult.dispatchUpdatesTo(/* adapter= */ this);
-    }
-
-    /**
-     * Displays recent searched queries.
-     */
-    public void displaySavedQuery(List<? extends SearchResult> data) {
-        clearResults();
-        mSearchResults.addAll(data);
-        notifyDataSetChanged();
-    }
-
-    /**
-     * Clear current search results.
-     */
-    public void clearResults() {
-        mSearchResults.clear();
-        notifyDataSetChanged();
-    }
-
-    /**
-     * Get current search results.
-     */
-    public List<SearchResult> getSearchResults() {
-        return mSearchResults;
-    }
-}
diff --git a/src/com/android/settings/intelligence/search/car/CarSearchViewHolder.java b/src/com/android/settings/intelligence/search/car/CarSearchViewHolder.java
deleted file mode 100644
index 2657d9a..0000000
--- a/src/com/android/settings/intelligence/search/car/CarSearchViewHolder.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.intelligence.search.car;
-
-import android.content.Context;
-import android.view.View;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.android.settings.intelligence.search.SearchResult;
-
-/** The ViewHolder for the car search RecyclerView.
- * There are multiple search result types with different UI requirements, such as Intent results
- * and saved query results.
- */
-public abstract class CarSearchViewHolder extends RecyclerView.ViewHolder {
-    protected Context mContext;
-    protected ImageView mIcon;
-    protected TextView mTitle;
-    protected TextView mSummary;
-
-    public CarSearchViewHolder(View view) {
-        super(view);
-        mContext = view.getContext();
-        mIcon = view.findViewById(android.R.id.icon);
-        mTitle = view.findViewById(android.R.id.title);
-        mSummary = view.findViewById(android.R.id.summary);
-    }
-
-    /**
-     * Update the ViewHolder data when bound.
-     */
-    public abstract void onBind(CarSearchFragment fragment, SearchResult result);
-}
diff --git a/src/com/android/settings/intelligence/search/indexing/car/CarDatabaseIndexingManager.java b/src/com/android/settings/intelligence/search/indexing/car/CarDatabaseIndexingManager.java
deleted file mode 100644
index 3026e82..0000000
--- a/src/com/android/settings/intelligence/search/indexing/car/CarDatabaseIndexingManager.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.intelligence.search.indexing.car;
-
-import android.content.Context;
-
-import com.android.settings.intelligence.search.indexing.DatabaseIndexingManager;
-import com.android.settings.intelligence.search.indexing.IndexDataConverter;
-import com.android.settings.intelligence.search.indexing.PreIndexData;
-
-/**
- * Car extension to {@link DatabaseIndexingManager} to use {@link CarIndexDataConverter} for
- * converting {@link PreIndexData} into {@link CarIndexData}.
- */
-public class CarDatabaseIndexingManager extends DatabaseIndexingManager {
-
-    public CarDatabaseIndexingManager(Context context) {
-        super(context);
-    }
-
-    @Override
-    protected IndexDataConverter getIndexDataConverter(Context context) {
-        return new CarIndexDataConverter(context);
-    }
-}
diff --git a/src/com/android/settings/intelligence/search/indexing/car/CarIndexData.java b/src/com/android/settings/intelligence/search/indexing/car/CarIndexData.java
deleted file mode 100644
index a57d003..0000000
--- a/src/com/android/settings/intelligence/search/indexing/car/CarIndexData.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.intelligence.search.indexing.car;
-
-import android.content.Context;
-import android.content.Intent;
-
-import com.android.settings.intelligence.search.indexing.DatabaseIndexingUtils;
-import com.android.settings.intelligence.search.indexing.IndexData;
-
-/**
- * Car data class representing a single row in the Setting Search results database.
- */
-public class CarIndexData extends IndexData {
-
-    public CarIndexData(IndexData.Builder builder) {
-        super(builder);
-    }
-
-    /**
-     * Builder class for {@link CarIndexData}, extending {@link IndexData.Builder}, which replaces
-     * all intents with direct search intents, since CarSettings doesn't support
-     * SearchResultTrampolineIntents.
-     */
-    public static class Builder extends IndexData.Builder {
-        @Override
-        protected Intent buildIntent(Context context) {
-            return DatabaseIndexingUtils.buildDirectSearchResultIntent(getIntentAction(),
-                    getIntentTargetPackage(), getIntentTargetClass(), getKey());
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/com/android/settings/intelligence/search/indexing/car/CarIndexDataConverter.java b/src/com/android/settings/intelligence/search/indexing/car/CarIndexDataConverter.java
deleted file mode 100644
index 11f35cb..0000000
--- a/src/com/android/settings/intelligence/search/indexing/car/CarIndexDataConverter.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.intelligence.search.indexing.car;
-
-import android.content.Context;
-
-import com.android.settings.intelligence.search.indexing.IndexData;
-import com.android.settings.intelligence.search.indexing.IndexDataConverter;
-import com.android.settings.intelligence.search.indexing.PreIndexData;
-
-/**
- * Car helper class to convert {@link PreIndexData} to {@link CarIndexData}.
- */
-public class CarIndexDataConverter extends IndexDataConverter {
-
-    public CarIndexDataConverter(Context context) {
-        super(context);
-    }
-
-    @Override
-    protected IndexData.Builder getIndexDataBuilder() {
-        return new CarIndexData.Builder();
-    }
-}
diff --git a/src/com/android/settings/intelligence/search/query/AccessibilityServiceResultTask.java b/src/com/android/settings/intelligence/search/query/AccessibilityServiceResultTask.java
index cd7b4ad..d6de496 100644
--- a/src/com/android/settings/intelligence/search/query/AccessibilityServiceResultTask.java
+++ b/src/com/android/settings/intelligence/search/query/AccessibilityServiceResultTask.java
@@ -42,8 +42,6 @@
     public static final int QUERY_WORKER_ID = SettingsIntelligenceLogProto.SettingsIntelligenceEvent
             .SEARCH_QUERY_ACCESSIBILITY_SERVICES;
 
-    private static final String ACCESSIBILITY_SETTINGS_CLASSNAME =
-            "com.android.settings.accessibility.AccessibilitySettings";
     private static final int NAME_NO_MATCH = -1;
 
     private final AccessibilityManager mAccessibilityManager;
@@ -88,7 +86,8 @@
             final String componentName = new ComponentName(serviceInfo.packageName,
                     serviceInfo.name).flattenToString();
             final Intent intent = DatabaseIndexingUtils.buildSearchTrampolineIntent(mContext,
-                    ACCESSIBILITY_SETTINGS_CLASSNAME, componentName, screenTitle);
+                    mContext.getString(R.string.accessibility_settings_classname),
+                    componentName, screenTitle);
 
             results.add(new SearchResult.Builder()
                     .setTitle(title)
@@ -111,7 +110,7 @@
     private List<String> getBreadCrumb() {
         if (mBreadcrumb == null || mBreadcrumb.isEmpty()) {
             mBreadcrumb = mSiteMapManager.buildBreadCrumb(
-                    mContext, ACCESSIBILITY_SETTINGS_CLASSNAME,
+                    mContext, mContext.getString(R.string.accessibility_settings_classname),
                     mContext.getString(R.string.accessibility_settings));
         }
         return mBreadcrumb;
diff --git a/src/com/android/settings/intelligence/search/query/CursorToSearchResultConverter.java b/src/com/android/settings/intelligence/search/query/CursorToSearchResultConverter.java
index a57f510..d6d865a 100644
--- a/src/com/android/settings/intelligence/search/query/CursorToSearchResultConverter.java
+++ b/src/com/android/settings/intelligence/search/query/CursorToSearchResultConverter.java
@@ -61,7 +61,7 @@
 
     private final int LONG_TITLE_LENGTH = 20;
 
-    private static final String[] whiteList = {
+    private static final String[] allowList = {
             "main_toggle_wifi",
             "main_toggle_bluetooth",
             "main_toggle_bluetooth_obsolete",
@@ -73,7 +73,7 @@
             "data_usage_enable",
             "button_roaming_key",
     };
-    private static final Set<String> prioritySettings = new HashSet(Arrays.asList(whiteList));
+    private static final Set<String> prioritySettings = new HashSet(Arrays.asList(allowList));
 
 
     public CursorToSearchResultConverter(Context context) {
diff --git a/src/com/android/settings/intelligence/search/savedqueries/car/CarSavedQueryController.java b/src/com/android/settings/intelligence/search/savedqueries/car/CarSavedQueryController.java
deleted file mode 100644
index 4c9a458..0000000
--- a/src/com/android/settings/intelligence/search/savedqueries/car/CarSavedQueryController.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.intelligence.search.savedqueries.car;
-
-import android.content.Context;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.MenuItem;
-
-import androidx.annotation.NonNull;
-import androidx.loader.app.LoaderManager;
-import androidx.loader.content.Loader;
-
-import com.android.car.ui.imewidescreen.CarUiImeSearchListItem;
-import com.android.car.ui.recyclerview.CarUiContentListItem;
-import com.android.car.ui.toolbar.ToolbarController;
-import com.android.settings.intelligence.R;
-import com.android.settings.intelligence.overlay.FeatureFactory;
-import com.android.settings.intelligence.search.SearchCommon;
-import com.android.settings.intelligence.search.SearchFeatureProvider;
-import com.android.settings.intelligence.search.SearchResult;
-import com.android.settings.intelligence.search.car.CarSearchFragment;
-import com.android.settings.intelligence.search.car.CarSearchResultsAdapter;
-import com.android.settings.intelligence.search.savedqueries.SavedQueryRecorder;
-import com.android.settings.intelligence.search.savedqueries.SavedQueryRemover;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Helper class for managing saved queries.
- */
-public class CarSavedQueryController implements LoaderManager.LoaderCallbacks,
-        MenuItem.OnMenuItemClickListener {
-
-    private static final String ARG_QUERY = "remove_query";
-    private static final String TAG = "CarSearchSavedQueryCtrl";
-
-    private static final int MENU_SEARCH_HISTORY = 1000;
-
-    private final Context mContext;
-    private final LoaderManager mLoaderManager;
-    private final SearchFeatureProvider mSearchFeatureProvider;
-    private final CarSearchResultsAdapter mResultAdapter;
-    private ToolbarController mToolbar;
-    private CarSearchFragment mFragment;
-
-    public CarSavedQueryController(Context context, LoaderManager loaderManager,
-            CarSearchResultsAdapter resultsAdapter, @NonNull ToolbarController toolbar,
-            CarSearchFragment fragment) {
-        mContext = context;
-        mLoaderManager = loaderManager;
-        mResultAdapter = resultsAdapter;
-        mSearchFeatureProvider = FeatureFactory.get(context)
-                .searchFeatureProvider();
-        mToolbar = toolbar;
-        mFragment = fragment;
-    }
-
-    @Override
-    public Loader onCreateLoader(int id, Bundle args) {
-        switch (id) {
-            case SearchCommon.SearchLoaderId.SAVE_QUERY_TASK:
-                return new SavedQueryRecorder(mContext, args.getString(ARG_QUERY));
-            case SearchCommon.SearchLoaderId.REMOVE_QUERY_TASK:
-                return new SavedQueryRemover(mContext);
-            case SearchCommon.SearchLoaderId.SAVED_QUERIES:
-                return mSearchFeatureProvider.getSavedQueryLoader(mContext);
-        }
-        return null;
-    }
-
-    @Override
-    public void onLoadFinished(Loader loader, Object data) {
-        switch (loader.getId()) {
-            case SearchCommon.SearchLoaderId.REMOVE_QUERY_TASK:
-                mLoaderManager.restartLoader(SearchCommon.SearchLoaderId.SAVED_QUERIES,
-                        /* args= */ null, /* callback= */ this);
-                break;
-            case SearchCommon.SearchLoaderId.SAVED_QUERIES:
-                if (SearchFeatureProvider.DEBUG) {
-                    Log.d(TAG, "Saved queries loaded");
-                }
-                List<SearchResult> results = (List<SearchResult>) data;
-                if (mToolbar.canShowSearchResultItems()) {
-                    List<CarUiImeSearchListItem> searchItems = new ArrayList<>();
-                    for (SearchResult result : results) {
-                        CarUiImeSearchListItem item = new CarUiImeSearchListItem(
-                                CarUiContentListItem.Action.ICON);
-                        item.setTitle(result.title);
-                        item.setIconResId(R.drawable.ic_restore);
-                        item.setOnItemClickedListener(
-                                v -> mFragment.onSavedQueryClicked(result.title));
-
-                        searchItems.add(item);
-                    }
-                    mToolbar.setSearchResultItems(searchItems);
-                }
-
-                mResultAdapter.displaySavedQuery(results);
-                break;
-        }
-    }
-
-    @Override
-    public void onLoaderReset(Loader loader) {
-    }
-
-    @Override
-    public boolean onMenuItemClick(MenuItem item) {
-        if (item.getItemId() != MENU_SEARCH_HISTORY) {
-            return false;
-        }
-        removeQueries();
-        return true;
-    }
-
-    /**
-     * Save a query to the DB.
-     */
-    public void saveQuery(String query) {
-        Bundle args = new Bundle();
-        args.putString(ARG_QUERY, query);
-        mLoaderManager.restartLoader(SearchCommon.SearchLoaderId.SAVE_QUERY_TASK, args,
-                /* callback= */ this);
-    }
-
-    /**
-     * Remove all saved queries from the DB.
-     */
-    public void removeQueries() {
-        Bundle args = new Bundle();
-        mLoaderManager.restartLoader(SearchCommon.SearchLoaderId.REMOVE_QUERY_TASK, args,
-                /* callback= */ this);
-    }
-
-    /**
-     * Load the saved queries from the DB.
-     */
-    public void loadSavedQueries() {
-        if (SearchFeatureProvider.DEBUG) {
-            Log.d(TAG, "loading saved queries");
-        }
-        mLoaderManager.restartLoader(SearchCommon.SearchLoaderId.SAVED_QUERIES,
-                /* args= */ null, /* callback= */ this);
-    }
-}
\ No newline at end of file
diff --git a/src/com/android/settings/intelligence/search/savedqueries/car/CarSavedQueryViewHolder.java b/src/com/android/settings/intelligence/search/savedqueries/car/CarSavedQueryViewHolder.java
deleted file mode 100644
index 12051a8..0000000
--- a/src/com/android/settings/intelligence/search/savedqueries/car/CarSavedQueryViewHolder.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.intelligence.search.savedqueries.car;
-
-import android.view.View;
-
-import com.android.settings.intelligence.R;
-import com.android.settings.intelligence.search.car.CarSearchFragment;
-import com.android.settings.intelligence.search.car.CarSearchViewHolder;
-import com.android.settings.intelligence.search.SearchResult;
-
-/**
- * ViewHolder for saved queries from past searches.
- */
-public class CarSavedQueryViewHolder extends CarSearchViewHolder {
-
-    public CarSavedQueryViewHolder(View view) {
-        super(view);
-    }
-
-    @Override
-    public void onBind(CarSearchFragment fragment, SearchResult result) {
-        mTitle.setText(result.title);
-        mIcon.setImageResource(R.drawable.ic_restore);
-        mSummary.setVisibility(View.GONE);
-        itemView.setOnClickListener(v -> {
-            fragment.onSavedQueryClicked(result.title);
-        });
-    }
-}