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

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

Issue 2632493003: [Android History] Styling changes (Closed)
Patch Set: Fix remove button visibility for supervised users 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/HistoryManager.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
index 863b012d1be8cde26ec5787d18f15f8b251396ec..36c32ed21e6d6e2e88dc60844266d888df398bc8 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
@@ -19,9 +19,11 @@ import android.support.v7.widget.RecyclerView.OnScrollListener;
import android.support.v7.widget.Toolbar.OnMenuItemClickListener;
import android.view.LayoutInflater;
import android.view.MenuItem;
+import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
+import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.base.ContextUtils;
import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.metrics.RecordUserAction;
@@ -35,8 +37,10 @@ import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.signin.SigninManager;
import org.chromium.chrome.browser.signin.SigninManager.SignInStateObserver;
import org.chromium.chrome.browser.util.IntentUtils;
+import org.chromium.chrome.browser.widget.FadingShadowView;
import org.chromium.chrome.browser.widget.selection.SelectableListLayout;
import org.chromium.chrome.browser.widget.selection.SelectionDelegate;
+import org.chromium.chrome.browser.widget.selection.SelectionDelegate.SelectionObserver;
import org.chromium.ui.base.DeviceFormFactor;
import java.util.List;
@@ -44,7 +48,8 @@ import java.util.List;
/**
* Displays and manages the UI for browsing history.
*/
-public class HistoryManager implements OnMenuItemClickListener, SignInStateObserver {
+public class HistoryManager implements OnMenuItemClickListener, SignInStateObserver,
+ SelectionObserver<HistoryItem> {
private static final int FAVICON_MAX_CACHE_SIZE_BYTES = 10 * 1024 * 1024; // 10MB
private static final int MEGABYTES_TO_BYTES = 1024 * 1024;
private static final String METRICS_PREFIX = "Android.HistoryPage.";
@@ -57,6 +62,8 @@ public class HistoryManager implements OnMenuItemClickListener, SignInStateObser
private final SelectionDelegate<HistoryItem> mSelectionDelegate;
private final HistoryManagerToolbar mToolbar;
private final TextView mEmptyView;
+ private final FadingShadowView mToolbarShadow;
+ private final RecyclerView mRecyclerView;
private LargeIconBridge mLargeIconBridge;
private boolean mIsSearching;
@@ -69,28 +76,39 @@ public class HistoryManager implements OnMenuItemClickListener, SignInStateObser
mActivity = activity;
mSelectionDelegate = new SelectionDelegate<>();
+ mSelectionDelegate.addObserver(this);
mHistoryAdapter = new HistoryAdapter(mSelectionDelegate, this,
sProviderForTests != null ? sProviderForTests : new BrowsingHistoryBridge());
mSelectableListLayout =
(SelectableListLayout<HistoryItem>) LayoutInflater.from(activity).inflate(
R.layout.history_main, null);
- RecyclerView recyclerView = mSelectableListLayout.initializeRecyclerView(mHistoryAdapter);
+ mRecyclerView = mSelectableListLayout.initializeRecyclerView(mHistoryAdapter);
+
mToolbar = (HistoryManagerToolbar) mSelectableListLayout.initializeToolbar(
R.layout.history_toolbar, mSelectionDelegate, R.string.menu_history, null,
- R.id.normal_menu_group, R.id.selection_mode_menu_group, this);
+ R.id.normal_menu_group, R.id.selection_mode_menu_group,
+ R.color.default_primary_color, false, this);
mToolbar.setManager(this);
+ mToolbarShadow = (FadingShadowView) mSelectableListLayout.findViewById(R.id.shadow);
+ mToolbarShadow.setVisibility(View.GONE);
+
mEmptyView = mSelectableListLayout.initializeEmptyView(
VectorDrawableCompat.create(
mActivity.getResources(), R.drawable.history_big,
mActivity.getTheme()),
R.string.history_manager_empty);
+ // TODO(twellington): remove this after unifying bookmarks and downloads UI with history.
+ mEmptyView.setTextColor(ApiCompatibilityUtils.getColor(mActivity.getResources(),
+ R.color.google_grey_500));
mHistoryAdapter.initialize();
- recyclerView.addOnScrollListener(new OnScrollListener() {
+ mRecyclerView.addOnScrollListener(new OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
+ setToolbarShadowVisibility();
+
if (!mHistoryAdapter.canLoadMoreItems()) return;
// Load more items if the scroll position is close to the bottom of the list.
@@ -140,6 +158,7 @@ public class HistoryManager implements OnMenuItemClickListener, SignInStateObser
return true;
} else if (item.getItemId() == R.id.search_menu_id) {
mToolbar.showSearchView();
+ mToolbarShadow.setVisibility(View.VISIBLE);
mSelectableListLayout.setEmptyViewText(R.string.history_manager_no_results);
recordUserAction("Search");
mIsSearching = true;
@@ -247,6 +266,7 @@ public class HistoryManager implements OnMenuItemClickListener, SignInStateObser
mHistoryAdapter.onEndSearch();
mSelectableListLayout.setEmptyViewText(R.string.history_manager_empty);
mIsSearching = false;
+ setToolbarShadowVisibility();
}
/**
@@ -293,6 +313,11 @@ public class HistoryManager implements OnMenuItemClickListener, SignInStateObser
return mHistoryAdapter;
}
+ @VisibleForTesting
+ View getToolbarShadowForTests() {
+ return mToolbarShadow;
+ }
+
/**
* @param action The user action string to record.
*/
@@ -329,4 +354,16 @@ public class HistoryManager implements OnMenuItemClickListener, SignInStateObser
mToolbar.onSignInStateChange();
mHistoryAdapter.onSignInStateChange();
}
+
+ @Override
+ public void onSelectionStateChange(List<HistoryItem> selectedItems) {
+ mHistoryAdapter.onSelectionStateChange(mSelectionDelegate.isSelectionEnabled());
+ setToolbarShadowVisibility();
+ }
+
+ private void setToolbarShadowVisibility() {
+ boolean showShadow = mRecyclerView.computeVerticalScrollOffset() != 0
+ || mIsSearching || mSelectionDelegate.isSelectionEnabled();
+ mToolbarShadow.setVisibility(showShadow ? View.VISIBLE : View.GONE);
+ }
}

Powered by Google App Engine
This is Rietveld 408576698