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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/history/HistoryAdapter.java

Issue 2654193002: [Android History] List item shadows and width constrained styling (Closed)
Patch Set: Changes from dgn@ and dfalcantara@ reviews Created 3 years, 11 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/history/HistoryAdapter.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryAdapter.java
index 70487af91c97dcef3c76af6252276d0fe8513667..da30057b74c1e3de58fec2b16eed55ab01b32c31 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryAdapter.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryAdapter.java
@@ -4,6 +4,7 @@
package org.chromium.chrome.browser.history;
+import android.content.res.Resources;
import android.support.v7.widget.RecyclerView.ViewHolder;
import android.text.SpannableString;
import android.text.method.LinkMovementMethod;
@@ -12,13 +13,17 @@ import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
+import android.widget.FrameLayout;
import android.widget.TextView;
import org.chromium.base.ContextUtils;
import org.chromium.base.VisibleForTesting;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.history.HistoryProvider.BrowsingHistoryObserver;
+import org.chromium.chrome.browser.preferences.PrefServiceBridge;
import org.chromium.chrome.browser.widget.DateDividedAdapter;
+import org.chromium.chrome.browser.widget.DateDividedAdapter.DateViewHolder;
+import org.chromium.chrome.browser.widget.displaystyle.MarginResizer;
import org.chromium.chrome.browser.widget.selection.SelectableItemViewHolder;
import org.chromium.chrome.browser.widget.selection.SelectionDelegate;
import org.chromium.chrome.browser.widget.selection.SelectionDelegate.SelectionObserver;
@@ -42,12 +47,14 @@ public class HistoryAdapter extends DateDividedAdapter implements BrowsingHistor
private final SelectionDelegate<HistoryItem> mSelectionDelegate;
private final HistoryProvider mHistoryProvider;
- private final HistoryManager mManager;
+ private final HistoryManager mHistoryManager;
+ private final ArrayList<HistoryItemView> mItemViews;
private TextView mSignedInNotSyncedTextView;
private TextView mSignedInSyncedTextView;
private TextView mOtherFormsOfBrowsingHistoryTextView;
private Button mClearBrowsingDataButton;
+ private FrameLayout mClearBrowsingDataButtonContainer;
private boolean mHasOtherFormsOfBrowsingData;
private boolean mHasSyncedData;
@@ -60,8 +67,7 @@ public class HistoryAdapter extends DateDividedAdapter implements BrowsingHistor
private boolean mClearOnNextQueryComplete;
private long mNextQueryEndTime;
private String mQueryText = EMPTY_QUERY;
-
- private final ArrayList<HistoryItemView> mItemViews;
+ private int mDefaultTextMargin;
public HistoryAdapter(SelectionDelegate<HistoryItem> delegate, HistoryManager manager,
HistoryProvider provider) {
@@ -69,7 +75,7 @@ public class HistoryAdapter extends DateDividedAdapter implements BrowsingHistor
mSelectionDelegate = delegate;
mHistoryProvider = provider;
mHistoryProvider.setObserver(this);
- mManager = manager;
+ mHistoryManager = manager;
mItemViews = new ArrayList<>();
}
@@ -155,6 +161,12 @@ public class HistoryAdapter extends DateDividedAdapter implements BrowsingHistor
*/
public void removeItems() {
mHistoryProvider.removeItems();
+
+ // TODO(twellington): this could be optimized by only setting the background for item views
+ // in a group that has changed.
+ for (HistoryItemView itemView : mItemViews) {
+ itemView.setBackgroundResourceForGroupPosition();
+ }
}
/**
@@ -164,6 +176,7 @@ public class HistoryAdapter extends DateDividedAdapter implements BrowsingHistor
for (HistoryItemView itemView : mItemViews) {
itemView.onSignInStateChange();
}
+ updateClearBrowsingDataButtonVisibility();
}
/**
@@ -195,12 +208,12 @@ public class HistoryAdapter extends DateDividedAdapter implements BrowsingHistor
SelectableItemViewHolder<HistoryItem> holder =
(SelectableItemViewHolder<HistoryItem>) current;
holder.displayItem(item);
- ((HistoryItemView) holder.itemView).setHistoryManager(mManager);
+ ((HistoryItemView) holder.itemView).setHistoryManager(mHistoryManager);
}
@Override
protected int getTimedItemViewResId() {
- return R.layout.date_view;
+ return R.layout.history_date_view;
}
@Override
@@ -248,28 +261,43 @@ public class HistoryAdapter extends DateDividedAdapter implements BrowsingHistor
protected BasicViewHolder createHeader(ViewGroup parent) {
ViewGroup v = (ViewGroup) LayoutInflater.from(parent.getContext()).inflate(
R.layout.history_header, parent, false);
+ Resources resources = v.getResources();
mIsHeaderInflated = true;
mClearBrowsingDataButton = (Button) v.findViewById(R.id.clear_browsing_data_button);
mClearBrowsingDataButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
- mManager.openClearBrowsingDataPreference();
+ mHistoryManager.openClearBrowsingDataPreference();
}
});
+ mClearBrowsingDataButtonContainer = (FrameLayout) mClearBrowsingDataButton.getParent();
+ MarginResizer.createWithViewAdapter(mClearBrowsingDataButtonContainer,
+ mHistoryManager.getSelectableListLayout().getUiConfig(),
+ mHistoryManager.getDefaultLateralListItemMarginPx(), 0);
+ updateClearBrowsingDataButtonVisibility();
mSignedInNotSyncedTextView = (TextView) v.findViewById(R.id.signed_in_not_synced);
setPrivacyDisclaimerText(mSignedInNotSyncedTextView,
R.string.android_history_no_synced_results, LEARN_MORE_LINK);
+ MarginResizer.createWithViewAdapter(mSignedInNotSyncedTextView,
+ mHistoryManager.getSelectableListLayout().getUiConfig(),
+ getDefaultTextMargin(resources), mHistoryManager.getListItemLateralShadowSizePx());
mSignedInSyncedTextView = (TextView) v.findViewById(R.id.signed_in_synced);
setPrivacyDisclaimerText(mSignedInSyncedTextView,
R.string.android_history_has_synced_results, LEARN_MORE_LINK);
+ MarginResizer.createWithViewAdapter(mSignedInSyncedTextView,
+ mHistoryManager.getSelectableListLayout().getUiConfig(),
+ getDefaultTextMargin(resources), mHistoryManager.getListItemLateralShadowSizePx());
mOtherFormsOfBrowsingHistoryTextView = (TextView) v.findViewById(
R.id.other_forms_of_browsing_history);
setPrivacyDisclaimerText(mOtherFormsOfBrowsingHistoryTextView,
R.string.android_history_other_forms_of_history, GOOGLE_HISTORY_LINK);
+ MarginResizer.createWithViewAdapter(mOtherFormsOfBrowsingHistoryTextView,
+ mHistoryManager.getSelectableListLayout().getUiConfig(),
+ getDefaultTextMargin(resources), mHistoryManager.getListItemLateralShadowSizePx());
setPrivacyDisclaimerVisibility();
@@ -282,11 +310,21 @@ public class HistoryAdapter extends DateDividedAdapter implements BrowsingHistor
R.layout.indeterminate_progress_view, parent, false));
}
+ @Override
+ protected DateViewHolder createDateViewHolder(ViewGroup parent) {
+ DateViewHolder viewHolder = super.createDateViewHolder(parent);
+ MarginResizer.createWithViewAdapter(viewHolder.itemView,
+ mHistoryManager.getSelectableListLayout().getUiConfig(),
+ getDefaultTextMargin(parent.getResources()),
+ mHistoryManager.getListItemLateralShadowSizePx());
+ return viewHolder;
+ }
+
private void setPrivacyDisclaimerText(TextView view, int stringId, final String url) {
NoUnderlineClickableSpan link = new NoUnderlineClickableSpan() {
@Override
public void onClick(View view) {
- mManager.openUrl(url, null, true);
+ mHistoryManager.openUrl(url, null, true);
}
};
SpannableString spannable = SpanApplier.applySpans(
@@ -308,6 +346,20 @@ public class HistoryAdapter extends DateDividedAdapter implements BrowsingHistor
mHasOtherFormsOfBrowsingData ? View.VISIBLE : View.GONE);
}
+ private void updateClearBrowsingDataButtonVisibility() {
+ mClearBrowsingDataButtonContainer.setVisibility(
+ !PrefServiceBridge.getInstance().canDeleteBrowsingHistory() ? View.GONE :
+ View.VISIBLE);
+ }
+
+ private int getDefaultTextMargin(Resources resources) {
+ if (mDefaultTextMargin == 0) {
+ mDefaultTextMargin = resources.getDimensionPixelSize(
+ R.dimen.history_default_text_margin);
+ }
+ return mDefaultTextMargin;
+ }
+
@VisibleForTesting
TextView getSignedInNotSyncedViewForTests() {
return mSignedInNotSyncedTextView;

Powered by Google App Engine
This is Rietveld 408576698