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 @@
<dimen name="omnibox_suggestion_compact_padding">6dp</dimen>
<dimen name="omnibox_suggestion_list_padding_bottom">8dp</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_24dp_icon_size">24dp</dimen>
......
......@@ -38,9 +38,9 @@ public class BaseCarouselSuggestionView extends LinearLayout {
setClickable(false);
setFocusable(false);
setOrientation(VERTICAL);
final int verticalPad = getResources().getDimensionPixelSize(
R.dimen.omnibox_suggestion_semicompact_padding);
setPaddingRelative(0, 0, 0, verticalPad);
final int verticalPad =
getResources().getDimensionPixelSize(R.dimen.omnibox_carousel_suggestion_padding);
setPaddingRelative(0, verticalPad, 0, verticalPad);
mHeader = new HeaderView(context);
mHeader.setLayoutParams(
......@@ -48,6 +48,7 @@ public class BaseCarouselSuggestionView extends LinearLayout {
mHeader.getIconView().setVisibility(GONE);
mHeader.setClickable(false);
mHeader.setFocusable(false);
mHeader.setVisibility(View.GONE);
addView(mHeader);
mRecyclerView = new RecyclerView(context);
......@@ -108,6 +109,11 @@ public class BaseCarouselSuggestionView extends LinearLayout {
return mHeader.getTextView();
}
/** @return Header element. */
View getHeaderView() {
return mHeader;
}
/** @return Adapter used with the embedded RecyclerView. */
SimpleRecyclerViewAdapter getAdapter() {
return (SimpleRecyclerViewAdapter) mRecyclerView.getAdapter();
......
......@@ -4,6 +4,9 @@
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.PropertyKey;
import org.chromium.ui.modelutil.PropertyModel;
......@@ -28,6 +31,18 @@ public final class BaseCarouselSuggestionViewBinder {
}
} else if (key == 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
import org.chromium.ui.modelutil.MVCListAdapter.ListItem;
import org.chromium.ui.modelutil.PropertyKey;
import org.chromium.ui.modelutil.PropertyModel;
import org.chromium.ui.modelutil.PropertyModel.WritableBooleanPropertyKey;
import org.chromium.ui.modelutil.PropertyModel.WritableObjectPropertyKey;
import java.util.Collection;
......@@ -22,7 +23,11 @@ public class BaseCarouselSuggestionViewProperties {
public static final WritableObjectPropertyKey<CharSequence> TITLE =
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 =
PropertyModel.concatKeys(ALL_UNIQUE_KEYS, SuggestionCommonProperties.ALL_KEYS);
......
......@@ -142,8 +142,7 @@ public class MostVisitedTilesProcessor extends BaseCarouselSuggestionProcessor {
}
model.set(BaseCarouselSuggestionViewProperties.TILES, tileList);
model.set(BaseCarouselSuggestionViewProperties.TITLE,
mContext.getResources().getString(R.string.most_visited_tiles_header));
model.set(BaseCarouselSuggestionViewProperties.SHOW_TITLE, false);
}
/**
......
......@@ -4,6 +4,7 @@
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.reset;
import static org.mockito.Mockito.times;
......@@ -11,6 +12,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
import android.content.res.Resources;
import android.view.View;
import android.widget.TextView;
......@@ -22,6 +24,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config;
import org.chromium.chrome.R;
import org.chromium.testing.local.LocalRobolectricTestRunner;
import org.chromium.ui.modelutil.MVCListAdapter.ListItem;
import org.chromium.ui.modelutil.MVCListAdapter.ModelList;
......@@ -38,18 +41,26 @@ import java.util.List;
@RunWith(LocalRobolectricTestRunner.class)
@Config(manifest = Config.NONE)
public class BaseCarouselSuggestionViewBinderUnitTest {
static final int SUGGESTION_VERTICAL_PADDING = 123;
@Mock
BaseCarouselSuggestionView mView;
@Mock
TextView mHeaderTextView;
@Mock
View mHeaderView;
@Mock
View mItemView;
@Mock
SimpleRecyclerViewAdapter mAdapter;
@Mock
Resources mResources;
ModelList mTiles;
PropertyModel mModel;
......@@ -63,8 +74,13 @@ public class BaseCarouselSuggestionViewBinderUnitTest {
mTiles = new ModelList();
when(mView.getHeaderTextView()).thenReturn(mHeaderTextView);
when(mView.getHeaderView()).thenReturn(mHeaderView);
when(mView.getAdapter()).thenReturn(mAdapter);
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
......@@ -110,4 +126,22 @@ public class BaseCarouselSuggestionViewBinderUnitTest {
mModel.set(BaseCarouselSuggestionViewProperties.TILES, null);
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