Commit 6c1dbfe2 authored by Tomasz Wiszkowski's avatar Tomasz Wiszkowski Committed by Chromium LUCI CQ

Disable header for the Most Visited Tiles.

This change allows BaseCarouselSuggestion to show or hide the
header text depending on whether it is desired to show it.

Bug: 1166302, 1145685
Change-Id: If91da47ab1f121837d6c263dc6d217f2b4452b8f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2634015
Commit-Queue: Tomasz Wiszkowski <ender@google.com>
Reviewed-by: default avatarTed Choc <tedchoc@chromium.org>
Reviewed-by: default avatarFilip Gorski <fgorski@chromium.org>
Cr-Commit-Position: refs/heads/master@{#844337}
parent c38a69ad
...@@ -251,6 +251,7 @@ ...@@ -251,6 +251,7 @@
<dimen name="omnibox_suggestion_compact_padding">6dp</dimen> <dimen name="omnibox_suggestion_compact_padding">6dp</dimen>
<dimen name="omnibox_suggestion_list_padding_bottom">8dp</dimen> <dimen name="omnibox_suggestion_list_padding_bottom">8dp</dimen>
<dimen name="omnibox_suggestion_start_offset_without_icon">18dp</dimen> <dimen name="omnibox_suggestion_start_offset_without_icon">18dp</dimen>
<dimen name="omnibox_carousel_suggestion_padding">12dp</dimen>
<dimen name="omnibox_suggestion_36dp_icon_size">36dp</dimen> <dimen name="omnibox_suggestion_36dp_icon_size">36dp</dimen>
<dimen name="omnibox_suggestion_24dp_icon_size">24dp</dimen> <dimen name="omnibox_suggestion_24dp_icon_size">24dp</dimen>
......
...@@ -38,9 +38,9 @@ public class BaseCarouselSuggestionView extends LinearLayout { ...@@ -38,9 +38,9 @@ public class BaseCarouselSuggestionView extends LinearLayout {
setClickable(false); setClickable(false);
setFocusable(false); setFocusable(false);
setOrientation(VERTICAL); setOrientation(VERTICAL);
final int verticalPad = getResources().getDimensionPixelSize( final int verticalPad =
R.dimen.omnibox_suggestion_semicompact_padding); getResources().getDimensionPixelSize(R.dimen.omnibox_carousel_suggestion_padding);
setPaddingRelative(0, 0, 0, verticalPad); setPaddingRelative(0, verticalPad, 0, verticalPad);
mHeader = new HeaderView(context); mHeader = new HeaderView(context);
mHeader.setLayoutParams( mHeader.setLayoutParams(
...@@ -48,6 +48,7 @@ public class BaseCarouselSuggestionView extends LinearLayout { ...@@ -48,6 +48,7 @@ public class BaseCarouselSuggestionView extends LinearLayout {
mHeader.getIconView().setVisibility(GONE); mHeader.getIconView().setVisibility(GONE);
mHeader.setClickable(false); mHeader.setClickable(false);
mHeader.setFocusable(false); mHeader.setFocusable(false);
mHeader.setVisibility(View.GONE);
addView(mHeader); addView(mHeader);
mRecyclerView = new RecyclerView(context); mRecyclerView = new RecyclerView(context);
...@@ -108,6 +109,11 @@ public class BaseCarouselSuggestionView extends LinearLayout { ...@@ -108,6 +109,11 @@ public class BaseCarouselSuggestionView extends LinearLayout {
return mHeader.getTextView(); return mHeader.getTextView();
} }
/** @return Header element. */
View getHeaderView() {
return mHeader;
}
/** @return Adapter used with the embedded RecyclerView. */ /** @return Adapter used with the embedded RecyclerView. */
SimpleRecyclerViewAdapter getAdapter() { SimpleRecyclerViewAdapter getAdapter() {
return (SimpleRecyclerViewAdapter) mRecyclerView.getAdapter(); return (SimpleRecyclerViewAdapter) mRecyclerView.getAdapter();
......
...@@ -4,6 +4,9 @@ ...@@ -4,6 +4,9 @@
package org.chromium.chrome.browser.omnibox.suggestions.carousel; package org.chromium.chrome.browser.omnibox.suggestions.carousel;
import android.view.View;
import org.chromium.chrome.R;
import org.chromium.ui.modelutil.MVCListAdapter.ListItem; import org.chromium.ui.modelutil.MVCListAdapter.ListItem;
import org.chromium.ui.modelutil.PropertyKey; import org.chromium.ui.modelutil.PropertyKey;
import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.modelutil.PropertyModel;
...@@ -28,6 +31,18 @@ public final class BaseCarouselSuggestionViewBinder { ...@@ -28,6 +31,18 @@ public final class BaseCarouselSuggestionViewBinder {
} }
} else if (key == BaseCarouselSuggestionViewProperties.TITLE) { } else if (key == BaseCarouselSuggestionViewProperties.TITLE) {
view.getHeaderTextView().setText(model.get(BaseCarouselSuggestionViewProperties.TITLE)); view.getHeaderTextView().setText(model.get(BaseCarouselSuggestionViewProperties.TITLE));
} else if (key == BaseCarouselSuggestionViewProperties.SHOW_TITLE) {
final boolean showTitle = model.get(BaseCarouselSuggestionViewProperties.SHOW_TITLE);
final View headerView = view.getHeaderView();
final int verticalPad = view.getResources().getDimensionPixelSize(
R.dimen.omnibox_carousel_suggestion_padding);
if (showTitle) {
headerView.setVisibility(View.VISIBLE);
view.setPaddingRelative(0, 0, 0, verticalPad);
} else {
headerView.setVisibility(View.GONE);
view.setPaddingRelative(0, verticalPad, 0, verticalPad);
}
} }
} }
} }
...@@ -8,6 +8,7 @@ import org.chromium.chrome.browser.omnibox.suggestions.SuggestionCommonPropertie ...@@ -8,6 +8,7 @@ import org.chromium.chrome.browser.omnibox.suggestions.SuggestionCommonPropertie
import org.chromium.ui.modelutil.MVCListAdapter.ListItem; import org.chromium.ui.modelutil.MVCListAdapter.ListItem;
import org.chromium.ui.modelutil.PropertyKey; import org.chromium.ui.modelutil.PropertyKey;
import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.modelutil.PropertyModel;
import org.chromium.ui.modelutil.PropertyModel.WritableBooleanPropertyKey;
import org.chromium.ui.modelutil.PropertyModel.WritableObjectPropertyKey; import org.chromium.ui.modelutil.PropertyModel.WritableObjectPropertyKey;
import java.util.Collection; import java.util.Collection;
...@@ -22,7 +23,11 @@ public class BaseCarouselSuggestionViewProperties { ...@@ -22,7 +23,11 @@ public class BaseCarouselSuggestionViewProperties {
public static final WritableObjectPropertyKey<CharSequence> TITLE = public static final WritableObjectPropertyKey<CharSequence> TITLE =
new WritableObjectPropertyKey<>(); new WritableObjectPropertyKey<>();
public static final PropertyKey[] ALL_UNIQUE_KEYS = new PropertyKey[] {TITLE, TILES}; /** Controls whether the Header should be shown. */
public static final WritableBooleanPropertyKey SHOW_TITLE = new WritableBooleanPropertyKey();
public static final PropertyKey[] ALL_UNIQUE_KEYS =
new PropertyKey[] {TITLE, SHOW_TITLE, TILES};
public static final PropertyKey[] ALL_KEYS = public static final PropertyKey[] ALL_KEYS =
PropertyModel.concatKeys(ALL_UNIQUE_KEYS, SuggestionCommonProperties.ALL_KEYS); PropertyModel.concatKeys(ALL_UNIQUE_KEYS, SuggestionCommonProperties.ALL_KEYS);
......
...@@ -142,8 +142,7 @@ public class MostVisitedTilesProcessor extends BaseCarouselSuggestionProcessor { ...@@ -142,8 +142,7 @@ public class MostVisitedTilesProcessor extends BaseCarouselSuggestionProcessor {
} }
model.set(BaseCarouselSuggestionViewProperties.TILES, tileList); model.set(BaseCarouselSuggestionViewProperties.TILES, tileList);
model.set(BaseCarouselSuggestionViewProperties.TITLE, model.set(BaseCarouselSuggestionViewProperties.SHOW_TITLE, false);
mContext.getResources().getString(R.string.most_visited_tiles_header));
} }
/** /**
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
package org.chromium.chrome.browser.omnibox.suggestions.carousel; package org.chromium.chrome.browser.omnibox.suggestions.carousel;
import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.eq; import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.reset; import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.times; import static org.mockito.Mockito.times;
...@@ -11,6 +12,7 @@ import static org.mockito.Mockito.verify; ...@@ -11,6 +12,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
import android.content.res.Resources;
import android.view.View; import android.view.View;
import android.widget.TextView; import android.widget.TextView;
...@@ -22,6 +24,7 @@ import org.mockito.Mock; ...@@ -22,6 +24,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config; import org.robolectric.annotation.Config;
import org.chromium.chrome.R;
import org.chromium.testing.local.LocalRobolectricTestRunner; import org.chromium.testing.local.LocalRobolectricTestRunner;
import org.chromium.ui.modelutil.MVCListAdapter.ListItem; import org.chromium.ui.modelutil.MVCListAdapter.ListItem;
import org.chromium.ui.modelutil.MVCListAdapter.ModelList; import org.chromium.ui.modelutil.MVCListAdapter.ModelList;
...@@ -38,18 +41,26 @@ import java.util.List; ...@@ -38,18 +41,26 @@ import java.util.List;
@RunWith(LocalRobolectricTestRunner.class) @RunWith(LocalRobolectricTestRunner.class)
@Config(manifest = Config.NONE) @Config(manifest = Config.NONE)
public class BaseCarouselSuggestionViewBinderUnitTest { public class BaseCarouselSuggestionViewBinderUnitTest {
static final int SUGGESTION_VERTICAL_PADDING = 123;
@Mock @Mock
BaseCarouselSuggestionView mView; BaseCarouselSuggestionView mView;
@Mock @Mock
TextView mHeaderTextView; TextView mHeaderTextView;
@Mock
View mHeaderView;
@Mock @Mock
View mItemView; View mItemView;
@Mock @Mock
SimpleRecyclerViewAdapter mAdapter; SimpleRecyclerViewAdapter mAdapter;
@Mock
Resources mResources;
ModelList mTiles; ModelList mTiles;
PropertyModel mModel; PropertyModel mModel;
...@@ -63,8 +74,13 @@ public class BaseCarouselSuggestionViewBinderUnitTest { ...@@ -63,8 +74,13 @@ public class BaseCarouselSuggestionViewBinderUnitTest {
mTiles = new ModelList(); mTiles = new ModelList();
when(mView.getHeaderTextView()).thenReturn(mHeaderTextView); when(mView.getHeaderTextView()).thenReturn(mHeaderTextView);
when(mView.getHeaderView()).thenReturn(mHeaderView);
when(mView.getAdapter()).thenReturn(mAdapter); when(mView.getAdapter()).thenReturn(mAdapter);
when(mAdapter.getModelList()).thenReturn(mTiles); when(mAdapter.getModelList()).thenReturn(mTiles);
when(mView.getResources()).thenReturn(mResources);
when(mResources.getDimensionPixelSize(eq(R.dimen.omnibox_carousel_suggestion_padding)))
.thenReturn(SUGGESTION_VERTICAL_PADDING);
} }
@Test @Test
...@@ -110,4 +126,22 @@ public class BaseCarouselSuggestionViewBinderUnitTest { ...@@ -110,4 +126,22 @@ public class BaseCarouselSuggestionViewBinderUnitTest {
mModel.set(BaseCarouselSuggestionViewProperties.TILES, null); mModel.set(BaseCarouselSuggestionViewProperties.TILES, null);
Assert.assertEquals(0, mTiles.size()); Assert.assertEquals(0, mTiles.size());
} }
@Test
public void headerTitle_visibilityChangeAltersTopPadding() {
mModel.set(BaseCarouselSuggestionViewProperties.SHOW_TITLE, true);
verify(mHeaderView, times(1)).setVisibility(eq(View.VISIBLE));
verify(mHeaderView, times(1)).setVisibility(anyInt());
verify(mView, times(1))
.setPaddingRelative(eq(0), eq(0), eq(0), eq(SUGGESTION_VERTICAL_PADDING));
verify(mView, times(1)).setPaddingRelative(anyInt(), anyInt(), anyInt(), anyInt());
mModel.set(BaseCarouselSuggestionViewProperties.SHOW_TITLE, false);
verify(mHeaderView, times(1)).setVisibility(eq(View.GONE));
verify(mHeaderView, times(2)).setVisibility(anyInt());
verify(mView, times(1))
.setPaddingRelative(eq(0), eq(SUGGESTION_VERTICAL_PADDING), eq(0),
eq(SUGGESTION_VERTICAL_PADDING));
verify(mView, times(2)).setPaddingRelative(anyInt(), anyInt(), anyInt(), anyInt());
}
} }
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