Commit 4ccd6ded authored by Donn Denman's avatar Donn Denman Committed by Chromium LUCI CQ

[TTS] Add a Feature for Longpress in-panel help.

Adds a new Feature to control whether to show a help section inside
the Panel as a promo for the Longpress experiment.

The Feature implementation is stubbed out.
BUG=1158621

Change-Id: I1dd09eec35ff158a8268ca6d031299412d72a72e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2592393Reviewed-by: default avatarSinan Sahin <sinansahin@google.com>
Reviewed-by: default avatarTheresa  <twellington@chromium.org>
Commit-Queue: Theresa  <twellington@chromium.org>
Auto-Submit: Donn Denman <donnd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#838183}
parent 5fb87804
...@@ -284,6 +284,7 @@ chrome_java_sources = [ ...@@ -284,6 +284,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchContextControl.java", "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchContextControl.java",
"java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchImageControl.java", "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchImageControl.java",
"java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanel.java", "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanel.java",
"java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanelHelp.java",
"java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanelMetrics.java", "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPanelMetrics.java",
"java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPromoControl.java", "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchPromoControl.java",
"java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchQuickActionControl.java", "java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchQuickActionControl.java",
......
...@@ -9,6 +9,7 @@ import android.content.Context; ...@@ -9,6 +9,7 @@ import android.content.Context;
import android.graphics.Rect; import android.graphics.Rect;
import android.graphics.RectF; import android.graphics.RectF;
import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting; import androidx.annotation.VisibleForTesting;
import org.chromium.base.ActivityState; import org.chromium.base.ActivityState;
...@@ -46,6 +47,10 @@ public class ContextualSearchPanel extends OverlayPanel { ...@@ -46,6 +47,10 @@ public class ContextualSearchPanel extends OverlayPanel {
/** The distance of the divider from the end of the bar, in dp. */ /** The distance of the divider from the end of the bar, in dp. */
private final float mEndButtonWidthDp; private final float mEndButtonWidthDp;
/** The Help section of the Panel. */
@NonNull
private final ContextualSearchPanelHelp mPanelHelp;
/** Whether the Panel should be promoted to a new tab after being maximized. */ /** Whether the Panel should be promoted to a new tab after being maximized. */
private boolean mShouldPromoteToTabAfterMaximizing; private boolean mShouldPromoteToTabAfterMaximizing;
...@@ -88,6 +93,7 @@ public class ContextualSearchPanel extends OverlayPanel { ...@@ -88,6 +93,7 @@ public class ContextualSearchPanel extends OverlayPanel {
mEndButtonWidthDp = mContext.getResources().getDimensionPixelSize( mEndButtonWidthDp = mContext.getResources().getDimensionPixelSize(
R.dimen.contextual_search_padded_button_width) R.dimen.contextual_search_padded_button_width)
* mPxToDp; * mPxToDp;
mPanelHelp = new ContextualSearchPanelHelp(context);
} }
@Override @Override
......
// 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.compositor.bottombar.contextualsearch;
import android.content.Context;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
/**
* Controls a section of the Panel that provides end user help messages.
* TODO(donnd): Implement along the lines of {@code ContextualSearchPromoControl}.
*/
public class ContextualSearchPanelHelp {
private final boolean mIsEnabled;
private final String mHelpHeaderText;
private final String mHelpBodyText;
/**
* @param context The current Android {@link Context}.
*/
ContextualSearchPanelHelp(Context context) {
mIsEnabled = ChromeFeatureList.isEnabled(
ChromeFeatureList.CONTEXTUAL_SEARCH_LONGPRESS_PANEL_HELP);
mHelpHeaderText = context.getResources().getString(R.string.contextual_search_help_header);
mHelpBodyText = context.getResources().getString(R.string.contextual_search_help_body);
// TODO(donnd): Update this class and constructor to do useful work.
}
}
...@@ -96,11 +96,8 @@ public class ContextualSearchPromoControl extends OverlayPanelInflater { ...@@ -96,11 +96,8 @@ public class ContextualSearchPromoControl extends OverlayPanelInflater {
* @param container The container View used to inflate the View. * @param container The container View used to inflate the View.
* @param resourceLoader The resource loader that will handle the snapshot capturing. * @param resourceLoader The resource loader that will handle the snapshot capturing.
*/ */
public ContextualSearchPromoControl(OverlayPanel panel, ContextualSearchPromoControl(OverlayPanel panel, ContextualSearchPromoHost host,
ContextualSearchPromoHost host, Context context, ViewGroup container, DynamicResourceLoader resourceLoader) {
Context context,
ViewGroup container,
DynamicResourceLoader resourceLoader) {
super(panel, R.layout.contextual_search_promo_view, super(panel, R.layout.contextual_search_promo_view,
R.id.contextual_search_promo, context, container, resourceLoader); R.id.contextual_search_promo, context, container, resourceLoader);
......
...@@ -164,6 +164,7 @@ const base::Feature* kFeaturesExposedToJava[] = { ...@@ -164,6 +164,7 @@ const base::Feature* kFeaturesExposedToJava[] = {
&kContextualSearchDefinitions, &kContextualSearchDefinitions,
&kContextualSearchLegacyHttpPolicy, &kContextualSearchLegacyHttpPolicy,
&kContextualSearchLiteralSearchTap, &kContextualSearchLiteralSearchTap,
&kContextualSearchLongpressPanelHelp,
&kContextualSearchLongpressResolve, &kContextualSearchLongpressResolve,
&kContextualSearchMlTapSuppression, &kContextualSearchMlTapSuppression,
&kContextualSearchSecondTap, &kContextualSearchSecondTap,
...@@ -455,6 +456,9 @@ const base::Feature kContextualSearchLegacyHttpPolicy{ ...@@ -455,6 +456,9 @@ const base::Feature kContextualSearchLegacyHttpPolicy{
const base::Feature kContextualSearchLiteralSearchTap{ const base::Feature kContextualSearchLiteralSearchTap{
"ContextualSearchLiteralSearchTap", base::FEATURE_DISABLED_BY_DEFAULT}; "ContextualSearchLiteralSearchTap", base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kContextualSearchLongpressPanelHelp{
"ContextualSearchLongpressPanelHelp", base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kContextualSearchLongpressResolve{ const base::Feature kContextualSearchLongpressResolve{
"ContextualSearchLongpressResolve", base::FEATURE_DISABLED_BY_DEFAULT}; "ContextualSearchLongpressResolve", base::FEATURE_DISABLED_BY_DEFAULT};
......
...@@ -60,6 +60,7 @@ extern const base::Feature kContextualSearchDebug; ...@@ -60,6 +60,7 @@ extern const base::Feature kContextualSearchDebug;
extern const base::Feature kContextualSearchDefinitions; extern const base::Feature kContextualSearchDefinitions;
extern const base::Feature kContextualSearchLegacyHttpPolicy; extern const base::Feature kContextualSearchLegacyHttpPolicy;
extern const base::Feature kContextualSearchLiteralSearchTap; extern const base::Feature kContextualSearchLiteralSearchTap;
extern const base::Feature kContextualSearchLongpressPanelHelp;
extern const base::Feature kContextualSearchLongpressResolve; extern const base::Feature kContextualSearchLongpressResolve;
extern const base::Feature kContextualSearchMlTapSuppression; extern const base::Feature kContextualSearchMlTapSuppression;
extern const base::Feature kContextualSearchSecondTap; extern const base::Feature kContextualSearchSecondTap;
......
...@@ -279,6 +279,8 @@ public abstract class ChromeFeatureList { ...@@ -279,6 +279,8 @@ public abstract class ChromeFeatureList {
"ContextualSearchLiteralSearchTap"; "ContextualSearchLiteralSearchTap";
public static final String CONTEXTUAL_SEARCH_ML_TAP_SUPPRESSION = public static final String CONTEXTUAL_SEARCH_ML_TAP_SUPPRESSION =
"ContextualSearchMlTapSuppression"; "ContextualSearchMlTapSuppression";
public static final String CONTEXTUAL_SEARCH_LONGPRESS_PANEL_HELP =
"ContextualSearchLongpressPanelHelp";
public static final String CONTEXTUAL_SEARCH_LONGPRESS_RESOLVE = public static final String CONTEXTUAL_SEARCH_LONGPRESS_RESOLVE =
"ContextualSearchLongpressResolve"; "ContextualSearchLongpressResolve";
public static final String CONTEXTUAL_SEARCH_SECOND_TAP = "ContextualSearchSecondTap"; public static final String CONTEXTUAL_SEARCH_SECOND_TAP = "ContextualSearchSecondTap";
......
...@@ -780,6 +780,12 @@ Touch &amp; hold any word to search. To refine your search, select more or fewer ...@@ -780,6 +780,12 @@ Touch &amp; hold any word to search. To refine your search, select more or fewer
<message name="IDS_CONTEXTUAL_SEARCH_NO_THANKS_BUTTON" desc="A button to confirm and dismiss opt out promo"> <message name="IDS_CONTEXTUAL_SEARCH_NO_THANKS_BUTTON" desc="A button to confirm and dismiss opt out promo">
No thanks No thanks
</message> </message>
<message name="IDS_CONTEXTUAL_SEARCH_HELP_BODY" desc="Some help text that is shown in the body of a paragraph. The text tells the user what gesture to use instead of a previous gesture in order to search.">
To search for a word or phrase, touch and hold it instead of tapping it
</message>
<message name="IDS_CONTEXTUAL_SEARCH_HELP_HEADER" desc="Summary help text that is shown at the top of a paragraph. The text tells the user what gesture to use in order to search.">
Touch &amp; hold to search
</message>
<message name="IDS_DO_NOT_TRACK_TITLE" desc="Title for 'Do Not Track' preference"> <message name="IDS_DO_NOT_TRACK_TITLE" desc="Title for 'Do Not Track' preference">
“Do Not Track” “Do Not Track”
</message> </message>
......
...@@ -44742,6 +44742,7 @@ from previous Chrome versions. ...@@ -44742,6 +44742,7 @@ from previous Chrome versions.
<int value="418769094" label="MixedContentSiteSetting:enabled"/> <int value="418769094" label="MixedContentSiteSetting:enabled"/>
<int value="420160748" label="CornerShortcuts:enabled"/> <int value="420160748" label="CornerShortcuts:enabled"/>
<int value="422307097" label="PhysicalWeb:disabled"/> <int value="422307097" label="PhysicalWeb:disabled"/>
<int value="422670720" label="ContextualSearchLongpressPanelHelp:disabled"/>
<int value="423615350" label="enable-tab-audio-muting"/> <int value="423615350" label="enable-tab-audio-muting"/>
<int value="423855924" label="enable-tab-switcher-theme-colors"/> <int value="423855924" label="enable-tab-switcher-theme-colors"/>
<int value="425072496" label="GridLayoutForNtpShortcuts:enabled"/> <int value="425072496" label="GridLayoutForNtpShortcuts:enabled"/>
...@@ -45478,6 +45479,7 @@ from previous Chrome versions. ...@@ -45478,6 +45479,7 @@ from previous Chrome versions.
<int value="1139363314" label="disable-supervised-user-blacklist"/> <int value="1139363314" label="disable-supervised-user-blacklist"/>
<int value="1139756271" label="WebOTPCrossDevice:enabled"/> <int value="1139756271" label="WebOTPCrossDevice:enabled"/>
<int value="1140541604" label="WinrtGeolocationImplementation:enabled"/> <int value="1140541604" label="WinrtGeolocationImplementation:enabled"/>
<int value="1141918949" label="ContextualSearchLongpressPanelHelp:enabled"/>
<int value="1142515376" label="enable-nacl"/> <int value="1142515376" label="enable-nacl"/>
<int value="1142788238" label="FontCacheScaling:disabled"/> <int value="1142788238" label="FontCacheScaling:disabled"/>
<int value="1142970266" <int value="1142970266"
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