diff --git a/android/java/apk_for_test.flags b/android/java/apk_for_test.flags index edcc6ea3825..c0891be2074 100644 --- a/android/java/apk_for_test.flags +++ b/android/java/apk_for_test.flags @@ -457,6 +457,24 @@ public (...); } +-keep class org.chromium.chrome.browser.omnibox.suggestions.DropdownItemViewInfoListBuilder { + *** mDropdownHeight; + *** mPriorityOrderedSuggestionProcessors; + public (...); +} + +-keep class org.chromium.chrome.browser.omnibox.suggestions.BraveDropdownItemViewInfoListBuilder { + public (...); +} + +-keep class org.chromium.chrome.browser.omnibox.suggestions.DropdownItemViewInfoListManager { + public (...); + *** removeSuggestionsForGroup(...); +} + +-keep class org.chromium.chrome.browser.omnibox.suggestions.BraveDropdownItemViewInfoListManager { + public (...); +} -keep class org.chromium.chrome.browser.ui.default_browser_promo.BraveDefaultBrowserPromoUtils { *** prepareLaunchPromoIfNeeded(...); } diff --git a/android/javatests/org/chromium/chrome/browser/BytecodeTest.java b/android/javatests/org/chromium/chrome/browser/BytecodeTest.java index a7eee44b764..eb35ab2a568 100644 --- a/android/javatests/org/chromium/chrome/browser/BytecodeTest.java +++ b/android/javatests/org/chromium/chrome/browser/BytecodeTest.java @@ -245,6 +245,10 @@ public class BytecodeTest { classExists("org/chromium/chrome/browser/dom_distiller/BraveReaderModeManager")); Assert.assertTrue(classExists( "org/chromium/chrome/browser/share/send_tab_to_self/BraveManageAccountDevicesLinkView")); + Assert.assertTrue(classExists( + "org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator")); + Assert.assertTrue(classExists( + "org/chromium/chrome/browser/omnibox/suggestions/BraveAutocompleteCoordinator")); } @Test @@ -373,6 +377,12 @@ public class BytecodeTest { Assert.assertTrue(methodExists( "org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator", "updateTilePlaceholderVisibility", true, void.class)); + Assert.assertTrue(methodExists( + "org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator", + "createViewProvider", false, null)); + Assert.assertTrue(methodExists( + "org/chromium/chrome/browser/omnibox/suggestions/BraveAutocompleteCoordinator", + "createViewProvider", false, null)); } @Test @@ -572,6 +582,23 @@ public class BytecodeTest { Assert.assertTrue(constructorsMatch( "org/chromium/chrome/browser/crash/ChromePureJavaExceptionReporter", "org/chromium/chrome/browser/crash/BravePureJavaExceptionReporter")); + Assert.assertTrue(constructorsMatch( + "org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator", + "org/chromium/chrome/browser/omnibox/suggestions/BraveAutocompleteCoordinator", + ViewGroup.class, AutocompleteDelegate.class, + OmniboxSuggestionsDropdownEmbedder.class, UrlBarEditingTextStateProvider.class, + Supplier.class, Supplier.class, Supplier.class, LocationBarDataProvider.class, + ObservableSupplier.class, Callback.class, Supplier.class, BookmarkState.class, + JankTracker.class, ExploreIconProvider.class, OmniboxPedalDelegate.class)); + Assert.assertTrue(constructorsMatch( + "org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder", + "org/chromium/chrome/browser/omnibox/suggestions/BraveDropdownItemViewInfoListBuilder", + Supplier.class, BookmarkState.class, ExploreIconProvider.class, + OmniboxPedalDelegate.class)); + Assert.assertTrue(constructorsMatch( + "org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManager", + "org/chromium/chrome/browser/omnibox/suggestions/BraveDropdownItemViewInfoListManager", + ModelList.class, Context.class)); } @Test @@ -724,10 +751,22 @@ public class BytecodeTest { Assert.assertTrue( fieldExists("org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator", "mNativeInitialized", true, boolean.class)); + Assert.assertTrue( + fieldExists("org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator", + "mDropdownViewInfoListManager")); Assert.assertTrue(fieldExists( "org/chromium/chrome/browser/ntp/NewTabPageLayout", "mMvTilesContainerLayout")); Assert.assertTrue( fieldExists("org/chromium/chrome/browser/dom_distiller/ReaderModeManager", "mTab")); + Assert.assertTrue(fieldExists( + "org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator", + "mDropdown")); + Assert.assertTrue(fieldExists( + "org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder", + "mDropdownHeight")); + Assert.assertTrue(fieldExists( + "org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder", + "mPriorityOrderedSuggestionProcessors")); } @Test diff --git a/browser/ui/android/omnibox/BUILD.gn b/browser/ui/android/omnibox/BUILD.gn index 452ece24aa9..9e81b827203 100644 --- a/browser/ui/android/omnibox/BUILD.gn +++ b/browser/ui/android/omnibox/BUILD.gn @@ -8,20 +8,34 @@ import("//chrome/browser/buildflags.gni") android_library("java") { sources = [ + "java/src/org/chromium/chrome/browser/omnibox/OmniboxPrefManager.java", "java/src/org/chromium/chrome/browser/omnibox/status/BraveStatusMediator.java", + "java/src/org/chromium/chrome/browser/omnibox/suggestions/BraveAutocompleteCoordinator.java", "java/src/org/chromium/chrome/browser/omnibox/suggestions/BraveAutocompleteMediator.java", + "java/src/org/chromium/chrome/browser/omnibox/suggestions/BraveDropdownItemViewInfoListBuilder.java", + "java/src/org/chromium/chrome/browser/omnibox/suggestions/BraveDropdownItemViewInfoListManager.java", + "java/src/org/chromium/chrome/browser/omnibox/suggestions/BraveOmniboxSuggestionUiType.java", + "java/src/org/chromium/chrome/browser/omnibox/suggestions/BraveSuggestionHost.java", + "java/src/org/chromium/chrome/browser/omnibox/suggestions/brave_search/BraveSearchBannerProcessor.java", + "java/src/org/chromium/chrome/browser/omnibox/suggestions/brave_search/BraveSearchBannerProperties.java", + "java/src/org/chromium/chrome/browser/omnibox/suggestions/brave_search/BraveSearchBannerViewBinder.java", "java/src/org/chromium/chrome/browser/omnibox/suggestions/editurl/BraveEditUrlSuggestionProcessor.java", ] deps = [ + ":java_resources", "//base:base_java", + "//brave/android/java/org/chromium/chrome/browser/search_engines/settings:java", + "//brave/build/android:android_brave_strings_grd", "//brave/components/p3a_utils", "//chrome/browser/commerce/merchant_viewer/android:java", + "//chrome/browser/flags:java", "//chrome/browser/profiles/android:java", "//chrome/browser/share:java", "//chrome/browser/tab:java", "//chrome/browser/tabmodel:java", "//chrome/browser/ui/android/omnibox:java", + "//chrome/browser/ui/android/omnibox:java_resources", "//components/favicon/android:java", "//components/omnibox/browser:browser_java", "//components/permissions/android:java", @@ -29,6 +43,29 @@ android_library("java") { "//components/search_engines/android:java", "//components/user_prefs/android:java", "//third_party/androidx:androidx_annotation_annotation_java", + "//third_party/androidx:androidx_recyclerview_recyclerview_java", "//ui/android:ui_no_recycler_view_java", ] + + resources_package = "org.chromium.chrome.browser.omnibox" +} + +android_resources("java_resources") { + sources = [ + "java/res/drawable-hdpi/ic_brave_search_banner.png", + "java/res/drawable-mdpi/ic_brave_search_banner.png", + "java/res/drawable-night-hdpi/ic_brave_search_banner.png", + "java/res/drawable-night-mdpi/ic_brave_search_banner.png", + "java/res/drawable-night-xhdpi/ic_brave_search_banner.png", + "java/res/drawable-night-xxhdpi/ic_brave_search_banner.png", + "java/res/drawable-night-xxxhdpi/ic_brave_search_banner.png", + "java/res/drawable-xhdpi/ic_brave_search_banner.png", + "java/res/drawable-xxhdpi/ic_brave_search_banner.png", + "java/res/drawable-xxxhdpi/ic_brave_search_banner.png", + "java/res/drawable/bg_brave_search_banner.xml", + "java/res/layout/omnibox_brave_search_banner.xml", + "java/res/values-night/colors.xml", + "java/res/values/colors.xml", + "java/res/values/dimens.xml", + ] } diff --git a/browser/ui/android/omnibox/java/res/drawable-hdpi/ic_brave_search_banner.png b/browser/ui/android/omnibox/java/res/drawable-hdpi/ic_brave_search_banner.png new file mode 100644 index 00000000000..7a008e1089f Binary files /dev/null and b/browser/ui/android/omnibox/java/res/drawable-hdpi/ic_brave_search_banner.png differ diff --git a/browser/ui/android/omnibox/java/res/drawable-mdpi/ic_brave_search_banner.png b/browser/ui/android/omnibox/java/res/drawable-mdpi/ic_brave_search_banner.png new file mode 100644 index 00000000000..fca47ff7c29 Binary files /dev/null and b/browser/ui/android/omnibox/java/res/drawable-mdpi/ic_brave_search_banner.png differ diff --git a/browser/ui/android/omnibox/java/res/drawable-night-hdpi/ic_brave_search_banner.png b/browser/ui/android/omnibox/java/res/drawable-night-hdpi/ic_brave_search_banner.png new file mode 100644 index 00000000000..c001578b15d Binary files /dev/null and b/browser/ui/android/omnibox/java/res/drawable-night-hdpi/ic_brave_search_banner.png differ diff --git a/browser/ui/android/omnibox/java/res/drawable-night-mdpi/ic_brave_search_banner.png b/browser/ui/android/omnibox/java/res/drawable-night-mdpi/ic_brave_search_banner.png new file mode 100644 index 00000000000..885c3c6ff09 Binary files /dev/null and b/browser/ui/android/omnibox/java/res/drawable-night-mdpi/ic_brave_search_banner.png differ diff --git a/browser/ui/android/omnibox/java/res/drawable-night-xhdpi/ic_brave_search_banner.png b/browser/ui/android/omnibox/java/res/drawable-night-xhdpi/ic_brave_search_banner.png new file mode 100644 index 00000000000..ae2e8353f2c Binary files /dev/null and b/browser/ui/android/omnibox/java/res/drawable-night-xhdpi/ic_brave_search_banner.png differ diff --git a/browser/ui/android/omnibox/java/res/drawable-night-xxhdpi/ic_brave_search_banner.png b/browser/ui/android/omnibox/java/res/drawable-night-xxhdpi/ic_brave_search_banner.png new file mode 100644 index 00000000000..a9c72e21dd3 Binary files /dev/null and b/browser/ui/android/omnibox/java/res/drawable-night-xxhdpi/ic_brave_search_banner.png differ diff --git a/browser/ui/android/omnibox/java/res/drawable-night-xxxhdpi/ic_brave_search_banner.png b/browser/ui/android/omnibox/java/res/drawable-night-xxxhdpi/ic_brave_search_banner.png new file mode 100644 index 00000000000..fe9801f6c46 Binary files /dev/null and b/browser/ui/android/omnibox/java/res/drawable-night-xxxhdpi/ic_brave_search_banner.png differ diff --git a/browser/ui/android/omnibox/java/res/drawable-xhdpi/ic_brave_search_banner.png b/browser/ui/android/omnibox/java/res/drawable-xhdpi/ic_brave_search_banner.png new file mode 100644 index 00000000000..d806a11d902 Binary files /dev/null and b/browser/ui/android/omnibox/java/res/drawable-xhdpi/ic_brave_search_banner.png differ diff --git a/browser/ui/android/omnibox/java/res/drawable-xxhdpi/ic_brave_search_banner.png b/browser/ui/android/omnibox/java/res/drawable-xxhdpi/ic_brave_search_banner.png new file mode 100644 index 00000000000..702f97cbb72 Binary files /dev/null and b/browser/ui/android/omnibox/java/res/drawable-xxhdpi/ic_brave_search_banner.png differ diff --git a/browser/ui/android/omnibox/java/res/drawable-xxxhdpi/ic_brave_search_banner.png b/browser/ui/android/omnibox/java/res/drawable-xxxhdpi/ic_brave_search_banner.png new file mode 100644 index 00000000000..10e28fe4b68 Binary files /dev/null and b/browser/ui/android/omnibox/java/res/drawable-xxxhdpi/ic_brave_search_banner.png differ diff --git a/browser/ui/android/omnibox/java/res/drawable/bg_brave_search_banner.xml b/browser/ui/android/omnibox/java/res/drawable/bg_brave_search_banner.xml new file mode 100644 index 00000000000..912bdaa6386 --- /dev/null +++ b/browser/ui/android/omnibox/java/res/drawable/bg_brave_search_banner.xml @@ -0,0 +1,16 @@ + + + + + + + + diff --git a/browser/ui/android/omnibox/java/res/layout/omnibox_brave_search_banner.xml b/browser/ui/android/omnibox/java/res/layout/omnibox_brave_search_banner.xml new file mode 100644 index 00000000000..7d7188be45e --- /dev/null +++ b/browser/ui/android/omnibox/java/res/layout/omnibox_brave_search_banner.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + +