Commit e3355c85 authored by Filip Gorski's avatar Filip Gorski Committed by Commit Bot

[OSL-RV] Removing OmniboxSuggestionsDropdownFactory

Bug: 1075602
Change-Id: I4f053a11ad6dcb564e9fa766daa3abd30de516cf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2522924Reviewed-by: default avatarTomasz Wiszkowski <ender@google.com>
Commit-Queue: Filip Gorski <fgorski@chromium.org>
Cr-Commit-Position: refs/heads/master@{#825069}
parent ac173af7
......@@ -1124,7 +1124,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionUiType.java",
"java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java",
"java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownDelegate.java",
"java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownFactory.java",
"java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsRecyclerView.java",
"java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsRecyclerViewAdapter.java",
"java/src/org/chromium/chrome/browser/omnibox/suggestions/SuggestionCommonProperties.java",
......
......@@ -6,7 +6,6 @@ package org.chromium.chrome.browser.omnibox.suggestions;
import android.content.Context;
import android.os.Handler;
import android.util.Pair;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
......@@ -17,6 +16,7 @@ import androidx.annotation.VisibleForTesting;
import androidx.core.view.ViewCompat;
import org.chromium.base.Callback;
import org.chromium.base.StrictModeContext;
import org.chromium.base.supplier.Supplier;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider;
......@@ -112,24 +112,23 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC
@Override
public void inflate() {
ViewGroup container = (ViewGroup) ((ViewStub) mParent.getRootView().findViewById(
R.id.omnibox_results_container_stub))
.inflate();
Pair<OmniboxSuggestionsDropdown, MVCListAdapter> dropdownAndAdapter =
OmniboxSuggestionsDropdownFactory.provideDropdownAndAdapter(
context, modelList);
OmniboxSuggestionsDropdown dropdown = dropdownAndAdapter.first;
MVCListAdapter adapter = dropdownAndAdapter.second;
OmniboxSuggestionsRecyclerView dropdown;
try (StrictModeContext ignored = StrictModeContext.allowDiskReads()) {
dropdown = new OmniboxSuggestionsRecyclerView(context);
}
// Start with visibility GONE to ensure that show() is called.
// http://crbug.com/517438
dropdown.getViewGroup().setVisibility(View.GONE);
dropdown.getViewGroup().setClipToPadding(false);
// Register a view type for a default omnibox suggestion.
OmniboxSuggestionsRecyclerViewAdapter adapter =
new OmniboxSuggestionsRecyclerViewAdapter(modelList);
dropdown.setAdapter(adapter);
// Note: clang-format does a bad job formatting lambdas so we turn it off here.
// clang-format off
// Register a view type for a default omnibox suggestion.
adapter.registerType(
OmniboxSuggestionUiType.DEFAULT,
parent -> new BaseSuggestionView<View>(
......@@ -182,8 +181,11 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC
HeaderViewBinder::bind);
// clang-format on
mHolder = new SuggestionListViewHolder(container, dropdown);
ViewGroup container = (ViewGroup) ((ViewStub) mParent.getRootView().findViewById(
R.id.omnibox_results_container_stub))
.inflate();
mHolder = new SuggestionListViewHolder(container, dropdown);
for (int i = 0; i < mCallbacks.size(); i++) {
mCallbacks.get(i).onResult(mHolder);
}
......
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.omnibox.suggestions;
import android.content.Context;
import android.util.Pair;
import org.chromium.base.StrictModeContext;
import org.chromium.ui.modelutil.MVCListAdapter;
/**
* Creates and helps set up instances of an appropriate implementation of
* {@link OmniboxSuggestionsDropdown}.
* TODO(crbug.com/1075602): remove this class.
*/
class OmniboxSuggestionsDropdownFactory {
/**
* Provides a {@link OmniboxSuggestionsDropdown} implementation with a matching adapter.
* @param context Android context in which provided implementation will work.
* @param modelList A model list the adapter will work with.
* @return Implementation of the dropdown and adapter as a pair.
*/
static Pair<OmniboxSuggestionsDropdown, MVCListAdapter> provideDropdownAndAdapter(
Context context, MVCListAdapter.ModelList modelList) {
return provideRecyclerView(context, modelList);
}
private static Pair<OmniboxSuggestionsDropdown, MVCListAdapter> provideRecyclerView(
Context context, MVCListAdapter.ModelList modelList) {
OmniboxSuggestionsRecyclerView dropdown;
try (StrictModeContext ignored = StrictModeContext.allowDiskReads()) {
dropdown = new OmniboxSuggestionsRecyclerView(context);
}
OmniboxSuggestionsRecyclerViewAdapter adapter =
new OmniboxSuggestionsRecyclerViewAdapter(modelList);
dropdown.setAdapter(adapter);
return Pair.create(dropdown, adapter);
}
}
......@@ -13,7 +13,6 @@ import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import androidx.core.view.ViewCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
......@@ -25,7 +24,6 @@ import org.chromium.chrome.browser.util.KeyNavigationUtil;
/**
* A widget for showing a list of omnibox suggestions.
*/
@VisibleForTesting
public class OmniboxSuggestionsRecyclerView
extends RecyclerView implements OmniboxSuggestionsDropdown {
private final @NonNull OmniboxSuggestionsDropdownDelegate mDropdownDelegate;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment