[Omnibox] Apply vertical card pardding to base view, not answer view
This allows the decoration to remain aligned with the answer text. Right
padding is left unchanged since we don't want that to apply to the
action chip carousel.
Bug: 355043942
Change-Id: I8eebc8b304ced364613fbbd6a650d136b9500088
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5735621
Reviewed-by: Tomasz Wiszkowski <ender@google.com>
Commit-Queue: Patrick Noland <pnoland@chromium.org>
Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#1332603}
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionProcessor.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionProcessor.java
index 078b364..f11dcd05 100644
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionProcessor.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionProcessor.java
@@ -77,7 +77,7 @@
boolean suggestionTextColorReversal = checkColorReversalRequired(answerType);
AnswerText[] details;
boolean shouldShowCardUi = false;
- model.set(AnswerSuggestionViewProperties.TOP_PADDING, 0);
+ model.set(BaseSuggestionViewProperties.TOP_PADDING, 0);
model.set(AnswerSuggestionViewProperties.RIGHT_PADDING, 0);
if (suggestion.getAnswerTemplate() != null) {
shouldShowCardUi =
@@ -98,7 +98,7 @@
.getDimensionPixelSize(R.dimen.omnibox_simple_card_leadin);
model.set(BaseSuggestionViewProperties.ACTION_CHIP_LEAD_IN_SPACING, leadInSpacing);
model.set(
- AnswerSuggestionViewProperties.TOP_PADDING,
+ BaseSuggestionViewProperties.TOP_PADDING,
mContext.getResources()
.getDimensionPixelSize(R.dimen.omnibox_simple_card_top_padding));
model.set(AnswerSuggestionViewProperties.RIGHT_PADDING, leadInSpacing);
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionProcessorUnitTest.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionProcessorUnitTest.java
index 877eb62..5f561fd 100644
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionProcessorUnitTest.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionProcessorUnitTest.java
@@ -372,7 +372,7 @@
.getDimensionPixelSize(
org.chromium.chrome.browser.omnibox.R.dimen
.omnibox_simple_card_top_padding),
- suggHelper.mModel.get(AnswerSuggestionViewProperties.TOP_PADDING));
+ suggHelper.mModel.get(BaseSuggestionViewProperties.TOP_PADDING));
Assert.assertEquals(
mContext.getResources()
.getDimensionPixelSize(
@@ -391,7 +391,7 @@
Assert.assertFalse(
suggHelper.mModel.get(BaseSuggestionViewProperties.USE_LARGE_DECORATION));
Assert.assertTrue(suggHelper.mModel.get(BaseSuggestionViewProperties.SHOW_DECORATION));
- Assert.assertEquals(0, suggHelper.mModel.get(AnswerSuggestionViewProperties.TOP_PADDING));
+ Assert.assertEquals(0, suggHelper.mModel.get(BaseSuggestionViewProperties.TOP_PADDING));
Assert.assertEquals(0, suggHelper.mModel.get(AnswerSuggestionViewProperties.RIGHT_PADDING));
Assert.assertEquals(
1, suggHelper.mModel.get(BaseSuggestionViewProperties.ACTION_BUTTONS).size());
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionViewBinder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionViewBinder.java
index ddc464c6..db2048a 100644
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionViewBinder.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionViewBinder.java
@@ -41,13 +41,8 @@
} else if (AnswerSuggestionViewProperties.TEXT_LINE_2_MAX_LINES == propertyKey) {
TextView tv = view.findViewById(R.id.omnibox_answer_line_2);
tv.setMaxLines(model.get(AnswerSuggestionViewProperties.TEXT_LINE_2_MAX_LINES));
- } else if (AnswerSuggestionViewProperties.TOP_PADDING == propertyKey
- || AnswerSuggestionViewProperties.RIGHT_PADDING == propertyKey) {
- view.setPadding(
- 0,
- model.get(AnswerSuggestionViewProperties.TOP_PADDING),
- model.get(AnswerSuggestionViewProperties.RIGHT_PADDING),
- 0);
+ } else if (AnswerSuggestionViewProperties.RIGHT_PADDING == propertyKey) {
+ view.setPadding(0, 0, model.get(AnswerSuggestionViewProperties.RIGHT_PADDING), 0);
}
}
}
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionViewBinderTest.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionViewBinderTest.java
index 8844f31..6ad52a51b 100644
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionViewBinderTest.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionViewBinderTest.java
@@ -40,16 +40,7 @@
@Test
public void setPadding() {
- mModel.set(AnswerSuggestionViewProperties.TOP_PADDING, 12);
- assertEquals(12, mBaseView.getPaddingTop());
-
mModel.set(AnswerSuggestionViewProperties.RIGHT_PADDING, 13);
assertEquals(13, mBaseView.getPaddingRight());
-
- mBaseView.setPadding(0, 0, 0, 0);
- // Both top and right should be set when either one changes.
- mModel.set(AnswerSuggestionViewProperties.TOP_PADDING, 11);
- assertEquals(11, mBaseView.getPaddingTop());
- assertEquals(13, mBaseView.getPaddingRight());
}
}
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionViewProperties.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionViewProperties.java
index 663a076..1793df4 100644
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionViewProperties.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/answer/AnswerSuggestionViewProperties.java
@@ -36,8 +36,11 @@
static final WritableObjectPropertyKey<String> TEXT_LINE_2_ACCESSIBILITY_DESCRIPTION =
new WritableObjectPropertyKey<>();
+ /**
+ * The right padding to apply to the answer suggestion content view. This is distinct from the
+ * padding for the containing BaseSuggestionView, which is controlled separately.
+ */
WritableIntPropertyKey RIGHT_PADDING = new WritableIntPropertyKey();
- WritableIntPropertyKey TOP_PADDING = new WritableIntPropertyKey();
static final PropertyKey[] ALL_UNIQUE_KEYS =
new PropertyKey[] {
@@ -48,7 +51,6 @@
TEXT_LINE_2_MAX_LINES,
TEXT_LINE_2_ACCESSIBILITY_DESCRIPTION,
RIGHT_PADDING,
- TOP_PADDING
};
static final PropertyKey[] ALL_KEYS =
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewBinder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewBinder.java
index e6fbdca..935f905d 100644
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewBinder.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewBinder.java
@@ -148,6 +148,8 @@
}
} else if (BaseSuggestionViewProperties.SHOW_DECORATION == propertyKey) {
view.setShowDecorationIcon(model.get(BaseSuggestionViewProperties.SHOW_DECORATION));
+ } else if (BaseSuggestionViewProperties.TOP_PADDING == propertyKey) {
+ view.setPadding(0, model.get(BaseSuggestionViewProperties.TOP_PADDING), 0, 0);
} else if (BaseSuggestionViewProperties.USE_LARGE_DECORATION == propertyKey) {
view.setUseLargeDecorationIcon(
model.get(BaseSuggestionViewProperties.USE_LARGE_DECORATION));
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewBinderUnitTest.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewBinderUnitTest.java
index d0220af5..4dd3301b 100644
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewBinderUnitTest.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewBinderUnitTest.java
@@ -485,4 +485,10 @@
assertEquals(largeEdgeSize, mIconView.getLayoutParams().height);
assertEquals(largeRoundingRadius, mBaseView.decorationIconOutline.getRadiusForTesting());
}
+
+ @Test
+ public void topPadding() {
+ mModel.set(BaseSuggestionViewProperties.TOP_PADDING, 13);
+ assertEquals(13, mBaseView.getPaddingTop());
+ }
}
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewProcessor.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewProcessor.java
index 04f989b..e3a3433d 100644
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewProcessor.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewProcessor.java
@@ -223,6 +223,7 @@
model.set(
BaseSuggestionViewProperties.ACTION_CHIP_LEAD_IN_SPACING,
OmniboxResourceProvider.getSuggestionDecorationIconSizeWidth(mContext));
+ model.set(BaseSuggestionViewProperties.TOP_PADDING, 0);
if (OmniboxFeatures.isTouchDownTriggerForPrefetchEnabled()
&& !OmniboxFeatures.isLowMemoryDevice()
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewProperties.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewProperties.java
index 01973c0..0810957 100644
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewProperties.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewProperties.java
@@ -131,6 +131,12 @@
/** {@see BaseSuggestionView#setShowDecorationIcon(boolean} */
WritableBooleanPropertyKey SHOW_DECORATION = new WritableBooleanPropertyKey();
+ /**
+ * The top padding to apply to the BaseSuggestionView. This is distinct from the padding for the
+ * contained content view, which is controlled separately.
+ */
+ WritableIntPropertyKey TOP_PADDING = new WritableIntPropertyKey();
+
/** {@see BaseSuggestionView#setUseLargeDecorationIcon(boolean)} */
WritableBooleanPropertyKey USE_LARGE_DECORATION = new WritableBooleanPropertyKey();
@@ -145,6 +151,7 @@
ON_LONG_CLICK,
ON_TOUCH_DOWN_EVENT,
SHOW_DECORATION,
+ TOP_PADDING,
USE_LARGE_DECORATION
};
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/basic/BasicSuggestionProcessorUnitTest.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/basic/BasicSuggestionProcessorUnitTest.java
index 5238aa7..a3402a92 100644
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/basic/BasicSuggestionProcessorUnitTest.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/basic/BasicSuggestionProcessorUnitTest.java
@@ -449,4 +449,11 @@
createUrlSuggestion(OmniboxSuggestionType.URL_WHAT_YOU_TYPED, "", JUnitTestGURLs.URL_1);
Assert.assertNull(mModel.get(SuggestionViewProperties.TEXT_LINE_2_TEXT));
}
+
+ @Test
+ @SmallTest
+ public void topPaddingDefaultZero() {
+ createUrlSuggestion(OmniboxSuggestionType.URL_WHAT_YOU_TYPED, "");
+ Assert.assertEquals(0, mModel.get(BaseSuggestionViewProperties.TOP_PADDING));
+ }
}