| Index: chrome/android/java/src/org/chromium/chrome/browser/widget/BottomSheetContentController.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/BottomSheetContentController.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/BottomSheetContentController.java
|
| deleted file mode 100644
|
| index 08d04297310cdc79c3872e351fe4b298f32b4d5e..0000000000000000000000000000000000000000
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/widget/BottomSheetContentController.java
|
| +++ /dev/null
|
| @@ -1,177 +0,0 @@
|
| -// Copyright 2017 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -package org.chromium.chrome.browser.widget;
|
| -
|
| -import android.content.Context;
|
| -import android.content.res.Resources;
|
| -import android.support.design.internal.BottomNavigationItemView;
|
| -import android.support.design.internal.BottomNavigationMenuView;
|
| -import android.support.design.widget.BottomNavigationView;
|
| -import android.support.design.widget.BottomNavigationView.OnNavigationItemSelectedListener;
|
| -import android.util.AttributeSet;
|
| -import android.view.MenuItem;
|
| -import android.view.View;
|
| -
|
| -import org.chromium.chrome.R;
|
| -import org.chromium.chrome.browser.bookmarks.BookmarkSheetContent;
|
| -import org.chromium.chrome.browser.download.DownloadSheetContent;
|
| -import org.chromium.chrome.browser.history.HistorySheetContent;
|
| -import org.chromium.chrome.browser.suggestions.SuggestionsBottomSheetContent;
|
| -import org.chromium.chrome.browser.tabmodel.TabModelSelector;
|
| -import org.chromium.chrome.browser.util.MathUtils;
|
| -import org.chromium.chrome.browser.widget.BottomSheet.BottomSheetContent;
|
| -
|
| -import java.lang.reflect.Field;
|
| -import java.util.HashMap;
|
| -import java.util.Iterator;
|
| -import java.util.Map;
|
| -import java.util.Map.Entry;
|
| -
|
| -/**
|
| - * Displays and controls a {@link BottomNavigationView} fixed to the bottom of the
|
| - * {@link BottomSheet}. Also manages {@link BottomSheetContent} displayed in the BottomSheet.
|
| - */
|
| -public class BottomSheetContentController extends BottomNavigationView
|
| - implements BottomSheetObserver, OnNavigationItemSelectedListener {
|
| - private BottomSheet mBottomSheet;
|
| - private TabModelSelector mTabModelSelector;
|
| - private float mDistanceBelowToolbarPx;
|
| - private int mSelectedItemId;
|
| - private boolean mDefaultContentInitialized;
|
| -
|
| - private final Map<Integer, BottomSheetContent> mBottomSheetContents = new HashMap<>();
|
| -
|
| - public BottomSheetContentController(Context context, AttributeSet atts) {
|
| - super(context, atts);
|
| - }
|
| -
|
| - /**
|
| - * Initializes the {@link BottomSheetContentController}.
|
| - * @param bottomSheet The {@link BottomSheet} associated with this bottom nav.
|
| - * @param controlContainerHeight The height of the control container in px.
|
| - * @param tabModelSelector The {@link TabModelSelector} for the application.
|
| - */
|
| - public void init(BottomSheet bottomSheet, int controlContainerHeight,
|
| - TabModelSelector tabModelSelector) {
|
| - mBottomSheet = bottomSheet;
|
| - mBottomSheet.addObserver(this);
|
| - mTabModelSelector = tabModelSelector;
|
| -
|
| - Resources res = getContext().getResources();
|
| - mDistanceBelowToolbarPx = controlContainerHeight
|
| - + res.getDimensionPixelOffset(R.dimen.bottom_nav_space_from_toolbar);
|
| -
|
| - setOnNavigationItemSelectedListener(this);
|
| - disableShiftingMode();
|
| - }
|
| -
|
| - /**
|
| - * Initialize the default {@link BottomSheetContent}.
|
| - */
|
| - public void initializeDefaultContent() {
|
| - if (mDefaultContentInitialized) return;
|
| - showBottomSheetContent(R.id.action_home);
|
| - mDefaultContentInitialized = true;
|
| - }
|
| -
|
| - @Override
|
| - public boolean onNavigationItemSelected(MenuItem item) {
|
| - if (mSelectedItemId == item.getItemId()) return false;
|
| -
|
| - showBottomSheetContent(item.getItemId());
|
| - return true;
|
| - }
|
| -
|
| - @Override
|
| - public void onTransitionPeekToHalf(float transitionFraction) {
|
| - float offsetY = (mBottomSheet.getMinOffset() - mBottomSheet.getSheetOffsetFromBottom())
|
| - + mDistanceBelowToolbarPx;
|
| - setTranslationY((int) Math.max(offsetY, 0f));
|
| - setVisibility(MathUtils.areFloatsEqual(transitionFraction, 0f) ? View.GONE : View.VISIBLE);
|
| - }
|
| -
|
| - @Override
|
| - public void onSheetOpened() {
|
| - if (!mDefaultContentInitialized && mTabModelSelector.getCurrentTab() != null) {
|
| - initializeDefaultContent();
|
| - }
|
| - }
|
| -
|
| - @Override
|
| - public void onSheetClosed() {
|
| - Iterator<Entry<Integer, BottomSheetContent>> contentIterator =
|
| - mBottomSheetContents.entrySet().iterator();
|
| - while (contentIterator.hasNext()) {
|
| - Entry<Integer, BottomSheetContent> entry = contentIterator.next();
|
| - if (entry.getKey() == R.id.action_home) continue;
|
| -
|
| - entry.getValue().destroy();
|
| - contentIterator.remove();
|
| - }
|
| - // TODO(twellington): determine a policy for destroying the SuggestionsBottomSheetContent.
|
| -
|
| - if (mSelectedItemId == 0 || mSelectedItemId == R.id.action_home) return;
|
| -
|
| - showBottomSheetContent(R.id.action_home);
|
| - }
|
| -
|
| - @Override
|
| - public void onLoadUrl(String url) {}
|
| -
|
| - @Override
|
| - public void onSheetOffsetChanged(float heightFraction) {}
|
| -
|
| - // TODO(twellington): remove this once the support library is updated to allow disabling
|
| - // shifting mode or determines shifting mode based on the width of the
|
| - // child views.
|
| - private void disableShiftingMode() {
|
| - BottomNavigationMenuView menuView = (BottomNavigationMenuView) getChildAt(0);
|
| - try {
|
| - Field shiftingMode = menuView.getClass().getDeclaredField("mShiftingMode");
|
| - shiftingMode.setAccessible(true);
|
| - shiftingMode.setBoolean(menuView, false);
|
| - shiftingMode.setAccessible(false);
|
| - for (int i = 0; i < menuView.getChildCount(); i++) {
|
| - BottomNavigationItemView item = (BottomNavigationItemView) menuView.getChildAt(i);
|
| - item.setShiftingMode(false);
|
| - // Set the checked value so that the view will be updated.
|
| - item.setChecked(item.getItemData().isChecked());
|
| - }
|
| - } catch (NoSuchFieldException | IllegalAccessException e) {
|
| - // Do nothing if reflection fails.
|
| - }
|
| - }
|
| -
|
| - private BottomSheetContent getSheetContentForId(int navItemId) {
|
| - BottomSheetContent content = mBottomSheetContents.get(navItemId);
|
| - if (content != null) return content;
|
| -
|
| - if (navItemId == R.id.action_home) {
|
| - content = new SuggestionsBottomSheetContent(
|
| - mTabModelSelector.getCurrentTab().getActivity(), mBottomSheet,
|
| - mTabModelSelector);
|
| - } else if (navItemId == R.id.action_downloads) {
|
| - content = new DownloadSheetContent(mTabModelSelector.getCurrentTab().getActivity(),
|
| - mTabModelSelector.getCurrentModel().isIncognito());
|
| - } else if (navItemId == R.id.action_bookmarks) {
|
| - content = new BookmarkSheetContent(mTabModelSelector.getCurrentTab().getActivity());
|
| - } else if (navItemId == R.id.action_history) {
|
| - content = new HistorySheetContent(mTabModelSelector.getCurrentTab().getActivity());
|
| - }
|
| - mBottomSheetContents.put(navItemId, content);
|
| - return content;
|
| - }
|
| -
|
| - private void showBottomSheetContent(int navItemId) {
|
| - // There are some bugs related to programatically selecting menu items that are fixed in
|
| - // newer support library versions.
|
| - // TODO(twellington): remove this after the support library is rolled.
|
| - if (mSelectedItemId != 0) getMenu().findItem(mSelectedItemId).setChecked(false);
|
| - mSelectedItemId = navItemId;
|
| - getMenu().findItem(mSelectedItemId).setChecked(true);
|
| -
|
| - mBottomSheet.showContent(getSheetContentForId(mSelectedItemId));
|
| - }
|
| -}
|
|
|