Commit 0b52d081 authored by Tomasz Wiszkowski's avatar Tomasz Wiszkowski Committed by Commit Bot

Clean up answer-related code from basic suggestion view.

This code removes no longer used code from basic suggestion MVC.

Bug: 987020
Change-Id: Ifb2e4b27ef5586d0be1ffe68b8039d36aac8aef7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1717184
Commit-Queue: Ender <ender@google.com>
Reviewed-by: default avatarTed Choc <tedchoc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#681855}
parent bc225ad5
......@@ -296,11 +296,7 @@
<dimen name="omnibox_suggestion_list_padding_bottom">8dp</dimen>
<dimen name="omnibox_suggestion_first_line_text_size">16sp</dimen>
<dimen name="omnibox_suggestion_second_line_text_size">14sp</dimen>
<dimen name="omnibox_suggestion_answer_line2_vertical_spacing">3dp</dimen>
<dimen name="omnibox_suggestion_edit_url_min_height">60dp</dimen>
<!-- omnibox_suggestion_answer_line2_vertical_spacing + 2dp -->
<dimen name="omnibox_suggestion_answer_image_vertical_spacing">5dp</dimen>
<dimen name="omnibox_suggestion_answer_image_horizontal_spacing">4dp</dimen>
<dimen name="omnibox_suggestion_start_offset_without_icon">18dp</dimen>
<dimen name="omnibox_suggestion_start_offset_with_icon">56dp</dimen>
......@@ -313,7 +309,6 @@
<dimen name="omnibox_suggestion_refine_width">48dp</dimen>
<dimen name="omnibox_suggestion_text_vertical_padding">5dp</dimen>
<dimen name="omnibox_suggestion_multiline_text_vertical_padding">10dp</dimen>
<dimen name="omnibox_suggestion_refine_view_modern_end_padding">4dp</dimen>
<!-- Adding search engine logo to the omnibox. -->
......
......@@ -193,10 +193,6 @@ public class BasicSuggestionProcessor implements SuggestionProcessor {
model.set(SuggestionViewProperties.SUGGESTION_ICON_TYPE, getSuggestionIconType(suggestion));
model.set(SuggestionViewProperties.SUGGESTION_ICON_BITMAP, null);
model.set(SuggestionViewProperties.IS_ANSWER, false);
model.set(SuggestionViewProperties.HAS_ANSWER_IMAGE, false);
model.set(SuggestionViewProperties.ANSWER_IMAGE, null);
model.set(
SuggestionViewProperties.TEXT_LINE_1_TEXT, new SuggestionTextContainer(textLine1));
model.set(SuggestionViewProperties.TEXT_LINE_1_SIZING,
......
......@@ -20,7 +20,6 @@ import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import org.chromium.base.ApiCompatibilityUtils;
......@@ -39,16 +38,6 @@ import java.lang.annotation.RetentionPolicy;
@VisibleForTesting
public class SuggestionView extends ViewGroup implements OnClickListener {
private static final float ANSWER_IMAGE_SCALING_FACTOR = 1.15f;
@IntDef({SuggestionLayoutType.TEXT_SUGGESTION, SuggestionLayoutType.ANSWER,
SuggestionLayoutType.MULTI_LINE_ANSWER})
@Retention(RetentionPolicy.SOURCE)
public @interface SuggestionLayoutType {
int TEXT_SUGGESTION = 0;
int ANSWER = 1;
int MULTI_LINE_ANSWER = 2;
}
@IntDef({SuggestionIconType.FALLBACK, SuggestionIconType.FAVICON})
@Retention(RetentionPolicy.SOURCE)
@interface SuggestionIconType {
......@@ -59,8 +48,6 @@ public class SuggestionView extends ViewGroup implements OnClickListener {
private final int mSuggestionHeight;
private final int mSuggestionAnswerHeight;
private final int mSuggestionMaxHeight;
@SuggestionLayoutType
private int mSuggestionLayoutType;
private SuggestionViewDelegate mSuggestionDelegate;
private int mRefineViewOffsetPx;
......@@ -185,25 +172,15 @@ public class SuggestionView extends ViewGroup implements OnClickListener {
int height = mSuggestionHeight;
boolean refineVisible = mRefineView.getVisibility() == VISIBLE;
int refineWidth = refineVisible ? mRefineWidth : 0;
if (mSuggestionLayoutType == SuggestionLayoutType.MULTI_LINE_ANSWER) {
mContentsView.measure(
MeasureSpec.makeMeasureSpec(width - refineWidth, MeasureSpec.EXACTLY),
MeasureSpec.makeMeasureSpec(mSuggestionMaxHeight, MeasureSpec.AT_MOST));
height = mContentsView.getMeasuredHeight();
} else if (mSuggestionLayoutType == SuggestionLayoutType.ANSWER) {
height = mSuggestionAnswerHeight;
}
setMeasuredDimension(width, height);
// The width will be specified as 0 when determining the height of the popup, so exit early
// after setting the height.
if (width == 0) return;
if (mSuggestionLayoutType != SuggestionLayoutType.MULTI_LINE_ANSWER) {
mContentsView.measure(
MeasureSpec.makeMeasureSpec(width - refineWidth, MeasureSpec.EXACTLY),
MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY));
}
mContentsView.measure(MeasureSpec.makeMeasureSpec(width - refineWidth, MeasureSpec.EXACTLY),
MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY));
mContentsView.getLayoutParams().width = mContentsView.getMeasuredWidth();
mContentsView.getLayoutParams().height = mContentsView.getMeasuredHeight();
......@@ -249,11 +226,6 @@ public class SuggestionView extends ViewGroup implements OnClickListener {
mSuggestionDelegate = delegate;
}
/** Set the type of layout this view is rendering. */
void setSuggestionLayoutType(@SuggestionLayoutType int type) {
mSuggestionLayoutType = type;
}
/** Get the View containing the first line of text. */
TextView getTextLine1() {
return mContentsView.mTextLine1;
......@@ -264,11 +236,6 @@ public class SuggestionView extends ViewGroup implements OnClickListener {
return mContentsView.mTextLine2;
}
/** Get the View containing the answer image to be shown. */
ImageView getAnswerImageView() {
return mContentsView.mAnswerImage;
}
/**
* Specify area width for the suggestion icon.
* This call generally controls suggestion icon visibility.
......@@ -397,7 +364,6 @@ public class SuggestionView extends ViewGroup implements OnClickListener {
private final TextView mTextLine1;
private final TextView mTextLine2;
private final ImageView mAnswerImage;
private boolean mForceIsFocused;
......@@ -443,11 +409,6 @@ public class SuggestionView extends ViewGroup implements OnClickListener {
mTextLine2.setVisibility(INVISIBLE);
mTextLine2.setTextAlignment(TEXT_ALIGNMENT_VIEW_START);
addView(mTextLine2);
mAnswerImage = new ImageView(context);
mAnswerImage.setVisibility(GONE);
mAnswerImage.setScaleType(ImageView.ScaleType.FIT_CENTER);
addView(mAnswerImage);
}
@Override
......@@ -470,16 +431,6 @@ public class SuggestionView extends ViewGroup implements OnClickListener {
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
int imageWidth = 0;
int imageSpacing = 0;
if (mAnswerImage.getVisibility() == VISIBLE) {
imageWidth = mAnswerImage.getMeasuredWidth();
if (imageWidth > 0) {
imageSpacing = getResources().getDimensionPixelOffset(
R.dimen.omnibox_suggestion_answer_image_horizontal_spacing);
}
}
final int height = getMeasuredHeight();
final int line1Height = mTextLine1.getMeasuredHeight();
final int line2Height =
......@@ -496,16 +447,6 @@ public class SuggestionView extends ViewGroup implements OnClickListener {
int line2VerticalOffset = line1VerticalOffset + line1Height;
int answerVerticalOffset = line2VerticalOffset;
if (mAnswerImage.getVisibility() == VISIBLE) {
// The image is positioned vertically aligned with the second text line but
// requires a small additional offset to align with the ascent of the text
// instead of the top of the text which includes some whitespace.
answerVerticalOffset += getResources().getDimensionPixelOffset(
R.dimen.omnibox_suggestion_answer_image_vertical_spacing);
line2VerticalOffset += getResources().getDimensionPixelOffset(
R.dimen.omnibox_suggestion_answer_line2_vertical_spacing);
}
// The text lines total height is larger than this view, snap them to the top and
// bottom of the view.
......@@ -521,8 +462,6 @@ public class SuggestionView extends ViewGroup implements OnClickListener {
final int line1Bottom = line1Top + line1Height;
final int line2Top = t + line2VerticalOffset;
final int line2Bottom = line2Top + line2Height;
final int answerImageTop = t + answerVerticalOffset;
final int answerImageBottom = answerImageTop + mAnswerImage.getMeasuredHeight();
final int line1AdditionalStartPadding =
mSuggestionDelegate.getAdditionalTextLine1StartPadding(
mTextLine1, r - l - mSuggestionIconAreaSizePx);
......@@ -531,17 +470,11 @@ public class SuggestionView extends ViewGroup implements OnClickListener {
int rightStartPos = r - l - mSuggestionIconAreaSizePx;
mTextLine1.layout(
0, line1Top, rightStartPos - line1AdditionalStartPadding, line1Bottom);
mAnswerImage.layout(rightStartPos - imageWidth, answerImageTop, rightStartPos,
answerImageBottom);
mTextLine2.layout(
0, line2Top, rightStartPos - (imageWidth + imageSpacing), line2Bottom);
mTextLine2.layout(0, line2Top, rightStartPos, line2Bottom);
} else {
mTextLine1.layout(mSuggestionIconAreaSizePx + line1AdditionalStartPadding, line1Top,
r - l, line1Bottom);
mAnswerImage.layout(mSuggestionIconAreaSizePx, answerImageTop,
mSuggestionIconAreaSizePx + imageWidth, answerImageBottom);
mTextLine2.layout(mSuggestionIconAreaSizePx + imageWidth + imageSpacing, line2Top,
r - l, line2Bottom);
mTextLine2.layout(mSuggestionIconAreaSizePx, line2Top, r - l, line2Bottom);
}
}
......@@ -557,21 +490,10 @@ public class SuggestionView extends ViewGroup implements OnClickListener {
mTextLine2.measure(MeasureSpec.makeMeasureSpec(maxWidth, MeasureSpec.AT_MOST),
MeasureSpec.makeMeasureSpec(mSuggestionHeight, MeasureSpec.AT_MOST));
if (mAnswerImage.getVisibility() == VISIBLE) {
float textSize = mContentsView.mTextLine2.getTextSize();
int imageSize = (int) (textSize * ANSWER_IMAGE_SCALING_FACTOR);
mAnswerImage.measure(MeasureSpec.makeMeasureSpec(imageSize, MeasureSpec.EXACTLY),
MeasureSpec.makeMeasureSpec(imageSize, MeasureSpec.EXACTLY));
}
if (MeasureSpec.getMode(heightMeasureSpec) == MeasureSpec.AT_MOST) {
int desiredHeight = mTextLine1.getMeasuredHeight() + mTextLine2.getMeasuredHeight();
int additionalPadding = (int) getResources().getDimension(
R.dimen.omnibox_suggestion_text_vertical_padding);
if (mSuggestionLayoutType != SuggestionLayoutType.TEXT_SUGGESTION) {
additionalPadding += (int) getResources().getDimension(
R.dimen.omnibox_suggestion_multiline_text_vertical_padding);
}
desiredHeight += additionalPadding;
desiredHeight = Math.min(MeasureSpec.getSize(heightMeasureSpec), desiredHeight);
super.onMeasure(widthMeasureSpec,
......
......@@ -97,15 +97,6 @@ public class SuggestionViewProperties {
public static final WritableObjectPropertyKey<SuggestionViewDelegate> DELEGATE =
new WritableObjectPropertyKey<>();
/** Whether the suggestion is for an answer. */
public static final WritableBooleanPropertyKey IS_ANSWER = new WritableBooleanPropertyKey();
/** Whether an answer image will be shown. */
public static final WritableBooleanPropertyKey HAS_ANSWER_IMAGE =
new WritableBooleanPropertyKey();
/** The answer image to be shown. */
public static final WritableObjectPropertyKey<Bitmap> ANSWER_IMAGE =
new WritableObjectPropertyKey<>();
/** Whether the suggestion supports refinement. */
public static final WritableBooleanPropertyKey REFINABLE = new WritableBooleanPropertyKey();
......@@ -155,11 +146,11 @@ public class SuggestionViewProperties {
public static final WritableObjectPropertyKey<SuggestionTextContainer> TEXT_LINE_2_TEXT =
new WritableObjectPropertyKey<>();
public static final PropertyKey[] ALL_UNIQUE_KEYS = new PropertyKey[] {DELEGATE, IS_ANSWER,
HAS_ANSWER_IMAGE, ANSWER_IMAGE, REFINABLE, SUGGESTION_ICON_TYPE, TEXT_LINE_1_SIZING,
TEXT_LINE_1_MAX_LINES, TEXT_LINE_1_TEXT_COLOR, TEXT_LINE_1_TEXT_DIRECTION,
TEXT_LINE_1_TEXT, TEXT_LINE_2_SIZING, TEXT_LINE_2_MAX_LINES, TEXT_LINE_2_TEXT_COLOR,
TEXT_LINE_2_TEXT_DIRECTION, TEXT_LINE_2_TEXT, SUGGESTION_ICON_BITMAP};
public static final PropertyKey[] ALL_UNIQUE_KEYS = new PropertyKey[] {DELEGATE, REFINABLE,
SUGGESTION_ICON_TYPE, TEXT_LINE_1_SIZING, TEXT_LINE_1_MAX_LINES, TEXT_LINE_1_TEXT_COLOR,
TEXT_LINE_1_TEXT_DIRECTION, TEXT_LINE_1_TEXT, TEXT_LINE_2_SIZING, TEXT_LINE_2_MAX_LINES,
TEXT_LINE_2_TEXT_COLOR, TEXT_LINE_2_TEXT_DIRECTION, TEXT_LINE_2_TEXT,
SUGGESTION_ICON_BITMAP};
public static final PropertyKey[] ALL_KEYS =
PropertyModel.concatKeys(ALL_UNIQUE_KEYS, SuggestionCommonProperties.ALL_KEYS);
......
......@@ -44,15 +44,6 @@ public class SuggestionViewViewBinder {
} else if (SuggestionCommonProperties.LAYOUT_DIRECTION.equals(propertyKey)) {
ViewCompat.setLayoutDirection(
view, model.get(SuggestionCommonProperties.LAYOUT_DIRECTION));
} else if (SuggestionViewProperties.IS_ANSWER.equals(propertyKey)) {
updateSuggestionLayoutType(view, model);
} else if (SuggestionViewProperties.HAS_ANSWER_IMAGE.equals(propertyKey)) {
int visibility =
model.get(SuggestionViewProperties.HAS_ANSWER_IMAGE) ? View.VISIBLE : View.GONE;
view.getAnswerImageView().setVisibility(visibility);
} else if (SuggestionViewProperties.ANSWER_IMAGE.equals(propertyKey)) {
view.getAnswerImageView().setImageBitmap(
model.get(SuggestionViewProperties.ANSWER_IMAGE));
} else if (SuggestionViewProperties.REFINABLE.equals(propertyKey)) {
boolean refinable = model.get(SuggestionViewProperties.REFINABLE);
view.setRefinable(refinable);
......@@ -66,7 +57,6 @@ public class SuggestionViewViewBinder {
Pair<Integer, Integer> sizing = model.get(SuggestionViewProperties.TEXT_LINE_1_SIZING);
view.getTextLine1().setTextSize(sizing.first, sizing.second);
} else if (SuggestionViewProperties.TEXT_LINE_1_MAX_LINES.equals(propertyKey)) {
updateSuggestionLayoutType(view, model);
updateSuggestionViewTextMaxLines(
view.getTextLine1(), model.get(SuggestionViewProperties.TEXT_LINE_1_MAX_LINES));
} else if (SuggestionViewProperties.TEXT_LINE_1_TEXT_COLOR.equals(propertyKey)) {
......@@ -82,7 +72,6 @@ public class SuggestionViewViewBinder {
Pair<Integer, Integer> sizing = model.get(SuggestionViewProperties.TEXT_LINE_2_SIZING);
view.getTextLine2().setTextSize(sizing.first, sizing.second);
} else if (SuggestionViewProperties.TEXT_LINE_2_MAX_LINES.equals(propertyKey)) {
updateSuggestionLayoutType(view, model);
updateSuggestionViewTextMaxLines(
view.getTextLine2(), model.get(SuggestionViewProperties.TEXT_LINE_2_MAX_LINES));
} else if (SuggestionViewProperties.TEXT_LINE_2_TEXT_COLOR.equals(propertyKey)) {
......@@ -126,22 +115,6 @@ public class SuggestionViewViewBinder {
}
}
private static void updateSuggestionLayoutType(SuggestionView view, PropertyModel model) {
boolean isAnswer = model.get(SuggestionViewProperties.IS_ANSWER);
// Note: only one of these fields will report line count > 0; this depends on the selected
// suggestion layout. Old layout allows multiline response in line 2, new answer layout - in
// line 1.
boolean isMultiline = model.get(SuggestionViewProperties.TEXT_LINE_2_MAX_LINES) > 1
|| model.get(SuggestionViewProperties.TEXT_LINE_1_MAX_LINES) > 1;
if (!isAnswer) {
view.setSuggestionLayoutType(SuggestionView.SuggestionLayoutType.TEXT_SUGGESTION);
} else {
view.setSuggestionLayoutType(isMultiline
? SuggestionView.SuggestionLayoutType.MULTI_LINE_ANSWER
: SuggestionView.SuggestionLayoutType.ANSWER);
}
}
private static void updateSuggestionIcon(SuggestionView view, PropertyModel model) {
if (!model.get(SuggestionCommonProperties.SHOW_SUGGESTION_ICONS)) return;
......
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