Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(524)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java

Issue 2396863003: 📰 Spacing and fixes for the sign in promo (Closed)
Patch Set: rebase, address comments Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java
index 9af358449ac4160b8285945afbf4e7187675f9fd..0558282a008b06940c525989c6c0bdeba465392a 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java
@@ -69,7 +69,7 @@
private class ItemTouchCallbacks extends ItemTouchHelper.Callback {
@Override
public void onSwiped(ViewHolder viewHolder, int direction) {
- mRecyclerView.onItemDismissStarted(viewHolder.itemView);
+ mRecyclerView.onItemDismissStarted(viewHolder);
NewTabPageAdapter.this.dismissItem(viewHolder.getAdapterPosition());
}
@@ -79,7 +79,7 @@ public void clearView(RecyclerView recyclerView, ViewHolder viewHolder) {
// not mean that the user went all the way and dismissed the item before releasing it.
// We need to check that the item has been removed.
if (viewHolder.getAdapterPosition() == RecyclerView.NO_POSITION) {
- mRecyclerView.onItemDismissFinished(viewHolder.itemView);
+ mRecyclerView.onItemDismissFinished(viewHolder);
}
super.clearView(recyclerView, viewHolder);
@@ -364,10 +364,10 @@ public int getFirstHeaderPosition() {
}
public int getFirstCardPosition() {
- // TODO(mvanouwerkerk): Don't rely on getFirstHeaderPosition() here.
- int firstHeaderPosition = getFirstHeaderPosition();
- if (firstHeaderPosition == RecyclerView.NO_POSITION) return RecyclerView.NO_POSITION;
- return firstHeaderPosition + 1;
+ for (int i = 0; i < getItemCount(); ++i) {
+ if (CardViewHolder.isCard(getItemViewType(i))) return i;
+ }
+ return RecyclerView.NO_POSITION;
}
public int getLastContentItemPosition() {
@@ -414,7 +414,7 @@ private void updateGroups() {
// TODO(treib,bauerb): Preserve the order of categories we got from getCategories.
mGroups.addAll(mSections.values());
mGroups.add(mSigninPromo);
- if (!mSections.isEmpty()) {
+ if (hasVisibleBelowTheFoldItems()) {
mGroups.add(mFooter);
mGroups.add(mBottomSpacer);
}
@@ -430,7 +430,7 @@ private void removeSection(SuggestionsSection section) {
notifyItemRangeRemoved(startPos, removedItems);
- if (mSections.isEmpty()) {
+ if (!hasVisibleBelowTheFoldItems()) {
mGroups.remove(mFooter);
mGroups.remove(mBottomSpacer);
notifyItemRangeRemoved(startPos + removedItems, 2);
@@ -556,6 +556,13 @@ public void onResult(Boolean result) {
private void dismissPromo() {
// TODO(dgn): accessibility announcement.
mSigninPromo.dismiss();
+
+ if (!hasVisibleBelowTheFoldItems()) {
+ int footerPosition = getLastContentItemPosition();
+ mGroups.remove(mFooter);
+ mGroups.remove(mBottomSpacer);
+ notifyItemRangeRemoved(footerPosition, 2);
+ }
}
/**
@@ -570,9 +577,9 @@ private void dismissPromo() {
}
/**
- * Returns another view holder that should be dismissed as the same time as the provided one.
+ * Returns another view holder that should be dismissed at the same time as the provided one.
*/
- private ViewHolder getDismissSibling(ViewHolder viewHolder) {
+ public ViewHolder getDismissSibling(ViewHolder viewHolder) {
int swipePos = viewHolder.getAdapterPosition();
ItemGroup group = getGroup(swipePos);
@@ -585,6 +592,10 @@ private ViewHolder getDismissSibling(ViewHolder viewHolder) {
return mRecyclerView.findViewHolderForAdapterPosition(siblingPosDelta + swipePos);
}
+ private boolean hasVisibleBelowTheFoldItems() {
+ return !mSections.isEmpty() || mSigninPromo.isShown();
+ }
+
@VisibleForTesting
ItemGroup getGroup(int itemPosition) {
int itemsSkipped = 0;

Powered by Google App Engine
This is Rietveld 408576698