304 lines
19 KiB
Diff
304 lines
19 KiB
Diff
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<ListItem> 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<content::RenderFrameHost> render_frame_host_ = nullptr;
|
|
+ // raw_ptr<content::RenderFrameHost> 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<Config> 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, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
|
|
<message name="IDS_READER_MODE_MESSAGE_BUTTON" desc="The label for the button to open the current page in reader mode.">
|
|
View
|
|
</message>
|
|
+ <message name="IDS_READER_MODE_ACTION_CHIP_LABEL_SIMPLIFY_PAGE" desc="The label for the action chip shown on the toolbar to open the current page in reader mode. [CHAR_LIMIT=27]">
|
|
+ Simplify page
|
|
+ </message>
|
|
<message name="IDS_CONTENT_PROVIDER_SEARCH_DESCRIPTION" desc="Description for Chrome's entry in QSB's list of search suggestion providers [CHAR_LIMIT=32]">
|
|
Bookmarks and web history
|
|
</message>
|
|
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"/>
|
|
+ <org.chromium.components.browser_ui.widget.RadioButtonWithDescription
|
|
+ android:id="@+id/adaptive_option_reader_mode"
|
|
+ android:layout_width="match_parent"
|
|
+ android:layout_height="wrap_content"
|
|
+ android:minHeight="@dimen/min_touch_target_size"
|
|
+ android:paddingTop="10dp"
|
|
+ app:iconSrc="@drawable/ic_mobile_friendly_24dp"
|
|
+ app:primaryText="@string/reader_mode_action_chip_label_simplify_page" />
|
|
+
|
|
</org.chromium.components.browser_ui.widget.RadioButtonWithDescriptionLayout>
|
|
|
|
</LinearLayout>
|
|
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<List<Integer>> 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);
|
|
--
|