From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Wed, 7 Dec 2022 20:32:15 +0100 Subject: Restore adaptive-button-in-top-toolbar-customization This reverts commit 18d03b9cca4e90d2a446ea28266876d8c5fdc4f0. Voice button and legacy share/voice functionality is not restored. License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../ReaderModeToolbarButtonController.java | 5 +++-- .../ContextualPageActionController.java | 4 ++++ .../TabbedAppMenuPropertiesDelegate.java | 4 ---- .../distiller_ui_handle_android.h | 4 ++-- .../segmentation_platform_config.cc | 1 + .../strings/android_chrome_strings.grd | 3 +++ ...tton_group_adaptive_toolbar_preference.xml | 9 +++++++++ .../AdaptiveToolbarButtonController.java | 2 +- .../adaptive/AdaptiveToolbarFeatures.java | 2 +- .../adaptive/AdaptiveToolbarPrefs.java | 2 +- .../AdaptiveToolbarStatePredictor.java | 6 +++++- .../adaptive/AdaptiveToolbarStats.java | 2 ++ ...oButtonGroupAdaptiveToolbarPreference.java | 19 ++++++++++++------- ...ve-button-in-top-toolbar-customization.inc | 1 + 14 files changed, 45 insertions(+), 19 deletions(-) create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Restore-adaptive-button-in-top-toolbar-customization.inc diff --git a/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeToolbarButtonController.java b/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeToolbarButtonController.java --- a/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeToolbarButtonController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeToolbarButtonController.java @@ -4,6 +4,7 @@ package org.chromium.chrome.browser.dom_distiller; +import android.content.res.Resources; import android.content.Context; import android.view.View; @@ -70,11 +71,11 @@ public class ReaderModeToolbarButtonController extends BaseButtonDataProvider modalDialogManager, AppCompatResources.getDrawable(context, R.drawable.ic_mobile_friendly_24dp), context.getString(R.string.reader_mode_cpa_button_text), - /* actionChipLabelResId= */ R.string.reader_mode_cpa_button_text, + /* actionChipLabelResId= */ Resources.ID_NULL, /* supportsTinting= */ true, /* iphCommandBuilder= */ null, AdaptiveToolbarButtonVariant.READER_MODE, - /* tooltipTextResId= */ R.string.show_reading_mode_text); + /* tooltipTextResId= */ R.string.reader_mode_action_chip_label_simplify_page); mReaderModeIphControllerSupplier = readerModeIphControllerSupplier; mActivityTabObserver = diff --git a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java b/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java --- a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java @@ -298,6 +298,10 @@ public class ContextualPageActionController { && mTabSupplier.get().getId() == tab.getId(); if (!isSameTab) return; + if (mSignalAccumulator.getSignal(AdaptiveToolbarButtonVariant.READER_MODE) // + && result == AdaptiveToolbarButtonVariant.UNKNOWN) { + result = AdaptiveToolbarButtonVariant.READER_MODE; + } showDynamicAction(result); }); } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java @@ -1107,10 +1107,6 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm assert shouldShowMoreToolsItem(currentTab); List submenuItems = new ArrayList<>(); - if (shouldShowReaderModeItem(currentTab)) { - submenuItems.add(buildReaderModeItem(currentTab)); - } - if (shouldShowTaskManagerItem()) { submenuItems.add(buildTaskManagerItem()); } diff --git a/chrome/browser/android/dom_distiller/distiller_ui_handle_android.h b/chrome/browser/android/dom_distiller/distiller_ui_handle_android.h --- a/chrome/browser/android/dom_distiller/distiller_ui_handle_android.h +++ b/chrome/browser/android/dom_distiller/distiller_ui_handle_android.h @@ -26,12 +26,12 @@ class DistillerUIHandleAndroid : public DistillerUIHandle { ~DistillerUIHandleAndroid() override = default; void set_render_frame_host(content::RenderFrameHost* host) { - render_frame_host_ = host; + // render_frame_host_ = host; } void OpenSettings() override; private: - raw_ptr render_frame_host_ = nullptr; + // raw_ptr render_frame_host_ = nullptr; }; } // namespace android diff --git a/chrome/browser/segmentation_platform/segmentation_platform_config.cc b/chrome/browser/segmentation_platform/segmentation_platform_config.cc --- a/chrome/browser/segmentation_platform/segmentation_platform_config.cc +++ b/chrome/browser/segmentation_platform/segmentation_platform_config.cc @@ -74,6 +74,7 @@ constexpr int kAdaptiveToolbarDefaultSelectionTTLDays = 56; #if BUILDFLAG(IS_ANDROID) std::unique_ptr GetConfigForAdaptiveToolbar() { + if ((true)) return nullptr; if (!base::FeatureList::IsEnabled( chrome::android::kAdaptiveButtonInTopToolbarCustomizationV2)) { return nullptr; diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd @@ -5243,6 +5243,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d View + + Simplify page + Bookmarks and web history diff --git a/chrome/browser/ui/android/toolbar/java/res/layout/radio_button_group_adaptive_toolbar_preference.xml b/chrome/browser/ui/android/toolbar/java/res/layout/radio_button_group_adaptive_toolbar_preference.xml --- a/chrome/browser/ui/android/toolbar/java/res/layout/radio_button_group_adaptive_toolbar_preference.xml +++ b/chrome/browser/ui/android/toolbar/java/res/layout/radio_button_group_adaptive_toolbar_preference.xml @@ -99,6 +99,15 @@ found in the LICENSE file. app:iconSrc="@drawable/summarize_auto" app:primaryText="@string/adaptive_toolbar_button_preference_page_summary" app:descriptionText="@string/adaptive_toolbar_button_preference_page_summary_description"/> + + diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController.java @@ -356,7 +356,7 @@ public class AdaptiveToolbarButtonController } private boolean isScreenWideEnoughForButton() { - return mScreenWidthDp >= AdaptiveToolbarFeatures.getDeviceMinimumWidthForShowingButton(); + return true; } /** Returns the {@link ButtonDataProvider} used in a single-variant mode. */ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarFeatures.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarFeatures.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarFeatures.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarFeatures.java @@ -77,9 +77,9 @@ public class AdaptiveToolbarFeatures { case AdaptiveToolbarButtonVariant.VOICE: case AdaptiveToolbarButtonVariant.AUTO: case AdaptiveToolbarButtonVariant.GLIC: + case AdaptiveToolbarButtonVariant.READER_MODE: return false; case AdaptiveToolbarButtonVariant.PRICE_TRACKING: - case AdaptiveToolbarButtonVariant.READER_MODE: case AdaptiveToolbarButtonVariant.PRICE_INSIGHTS: case AdaptiveToolbarButtonVariant.DISCOUNTS: case AdaptiveToolbarButtonVariant.TAB_GROUPING: diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarPrefs.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarPrefs.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarPrefs.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarPrefs.java @@ -23,7 +23,7 @@ public class AdaptiveToolbarPrefs { */ public static boolean isCustomizationPreferenceEnabled() { return ChromeSharedPreferences.getInstance() - .readBoolean(ADAPTIVE_TOOLBAR_CUSTOMIZATION_ENABLED, true); + .readBoolean(ADAPTIVE_TOOLBAR_CUSTOMIZATION_ENABLED, false); } /** diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictor.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictor.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictor.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStatePredictor.java @@ -205,12 +205,12 @@ public class AdaptiveToolbarStatePredictor { case AdaptiveToolbarButtonVariant.PAGE_SUMMARY: case AdaptiveToolbarButtonVariant.OPEN_IN_BROWSER: case AdaptiveToolbarButtonVariant.GLIC: + case AdaptiveToolbarButtonVariant.READER_MODE: return true; case AdaptiveToolbarButtonVariant.UNKNOWN: case AdaptiveToolbarButtonVariant.NONE: case AdaptiveToolbarButtonVariant.AUTO: case AdaptiveToolbarButtonVariant.PRICE_TRACKING: - case AdaptiveToolbarButtonVariant.READER_MODE: case AdaptiveToolbarButtonVariant.PRICE_INSIGHTS: case AdaptiveToolbarButtonVariant.TAB_GROUPING: return false; @@ -239,6 +239,10 @@ public class AdaptiveToolbarStatePredictor { * @param callback A callback for results. */ public void readFromSegmentationPlatform(Callback> callback) { + if ((true)) { + callback.onResult(List.of(AdaptiveToolbarButtonVariant.UNKNOWN)); + return; + } if (sSegmentationResultsForTesting != null) { callback.onResult(sSegmentationResultsForTesting); return; diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStats.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStats.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStats.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarStats.java @@ -128,6 +128,8 @@ public class AdaptiveToolbarStats { return AdaptiveToolbarRadioButtonState.OPEN_IN_BROWSER; case AdaptiveToolbarButtonVariant.GLIC: return AdaptiveToolbarRadioButtonState.GLIC; + case AdaptiveToolbarButtonVariant.READER_MODE: + return AdaptiveToolbarRadioButtonState.UNKNOWN; case AdaptiveToolbarButtonVariant.AUTO: switch (uiState.autoButtonCaption) { case AdaptiveToolbarButtonVariant.NEW_TAB: diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/settings/RadioButtonGroupAdaptiveToolbarPreference.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/settings/RadioButtonGroupAdaptiveToolbarPreference.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/settings/RadioButtonGroupAdaptiveToolbarPreference.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/settings/RadioButtonGroupAdaptiveToolbarPreference.java @@ -44,6 +44,7 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut private @Nullable RadioButtonWithDescription mReadAloudButton; private @Nullable RadioButtonWithDescription mPageSummaryButton; private @Nullable RadioButtonWithDescription mGlicButton; + private @Nullable RadioButtonWithDescription mReaderMode; private @AdaptiveToolbarButtonVariant int mSelected; private @AdaptiveToolbarButtonVariant int mAutoButtonCaption; private @Nullable AdaptiveToolbarStatePredictor mStatePredictor; @@ -80,6 +81,7 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut mAutoButton = (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_based_on_usage); + mAutoButton.setVisibility(View.GONE); mNewTabButton = (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_new_tab); mShareButton = (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_share); @@ -87,6 +89,7 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_voice_search); mTranslateButton = (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_translate); + updateButtonVisibility(mTranslateButton, false); mAddToBookmarksButton = (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_add_to_bookmarks); @@ -95,6 +98,8 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut mPageSummaryButton = (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_page_summary); mGlicButton = (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_glic); + mReaderMode = + (RadioButtonWithDescription) holder.findViewById(R.id.adaptive_option_reader_mode); mIsBound = true; @@ -173,13 +178,6 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut mAutoButton.setDescriptionText( getContext().getString(resId, getButtonString(uiState.autoButtonCaption))); - // Description to indicate these buttons only appear on small windows, - // as large windows (tablets) show them elsewhere on UI (strip, omnibox). - resId = R.string.adaptive_toolbar_button_preference_based_on_window_width_description; - String basedOnWindowDesc = getContext().getString(resId); - mNewTabButton.setDescriptionText(basedOnWindowDesc); - mAddToBookmarksButton.setDescriptionText(basedOnWindowDesc); - updateVoiceButtonVisibility(); updateReadAloudButtonVisibility(); updatePageSummaryButtonVisibility(); @@ -212,6 +210,8 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut mSelected = AdaptiveToolbarButtonVariant.PAGE_SUMMARY; } else if (mGlicButton.isChecked()) { mSelected = AdaptiveToolbarButtonVariant.GLIC; + } else if (mReaderMode.isChecked()) { + mSelected = AdaptiveToolbarButtonVariant.READER_MODE; } else { assert false : "No matching setting found."; } @@ -253,6 +253,8 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut return mPageSummaryButton; case AdaptiveToolbarButtonVariant.GLIC: return mGlicButton; + case AdaptiveToolbarButtonVariant.READER_MODE: + return mReaderMode; } return null; } @@ -287,6 +289,9 @@ public class RadioButtonGroupAdaptiveToolbarPreference extends ContainedRadioBut case AdaptiveToolbarButtonVariant.OPEN_IN_BROWSER: stringRes = R.string.menu_open_in_product_default; break; + case AdaptiveToolbarButtonVariant.READER_MODE: + stringRes = R.string.adaptive_toolbar_button_preference_page_summary; + break; default: assert false : "Unknown variant " + variant; } diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Restore-adaptive-button-in-top-toolbar-customization.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Restore-adaptive-button-in-top-toolbar-customization.inc new file mode 100644 --- /dev/null +++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Restore-adaptive-button-in-top-toolbar-customization.inc @@ -0,0 +1 @@ +SET_CROMITE_FEATURE_ENABLED(kAdaptiveButtonInTopToolbarCustomizationV2); --