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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/ntp/ChromeHomeNewTabPageBase.java

Issue 2831773002: Reland [Home] Close the BottomSheet when a URL is loaded on the NTP (Closed)
Patch Set: Created 3 years, 8 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chrome.browser.ntp; 5 package org.chromium.chrome.browser.ntp;
6 6
7 import android.content.Context; 7 import android.content.Context;
8 import android.support.annotation.CallSuper; 8 import android.support.annotation.CallSuper;
9 import android.support.annotation.Nullable; 9 import android.support.annotation.Nullable;
10 import android.text.TextUtils;
10 import android.view.View; 11 import android.view.View;
11 import android.view.View.OnClickListener; 12 import android.view.View.OnClickListener;
12 13
13 import org.chromium.base.VisibleForTesting; 14 import org.chromium.base.VisibleForTesting;
14 import org.chromium.chrome.R; 15 import org.chromium.chrome.R;
15 import org.chromium.chrome.browser.ChromeTabbedActivity; 16 import org.chromium.chrome.browser.ChromeTabbedActivity;
16 import org.chromium.chrome.browser.NativePage; 17 import org.chromium.chrome.browser.NativePage;
17 import org.chromium.chrome.browser.UrlConstants; 18 import org.chromium.chrome.browser.UrlConstants;
18 import org.chromium.chrome.browser.compositor.layouts.EmptyOverviewModeObserver; 19 import org.chromium.chrome.browser.compositor.layouts.EmptyOverviewModeObserver;
19 import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome; 20 import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome;
20 import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior.Overv iewModeObserver; 21 import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior.Overv iewModeObserver;
21 import org.chromium.chrome.browser.tab.EmptyTabObserver; 22 import org.chromium.chrome.browser.tab.EmptyTabObserver;
22 import org.chromium.chrome.browser.tab.Tab; 23 import org.chromium.chrome.browser.tab.Tab;
23 import org.chromium.chrome.browser.tab.TabObserver; 24 import org.chromium.chrome.browser.tab.TabObserver;
24 import org.chromium.chrome.browser.tabmodel.TabModelSelector; 25 import org.chromium.chrome.browser.tabmodel.TabModelSelector;
25 import org.chromium.chrome.browser.widget.bottomsheet.BottomSheet; 26 import org.chromium.chrome.browser.widget.bottomsheet.BottomSheet;
26 import org.chromium.chrome.browser.widget.bottomsheet.BottomSheetMetrics; 27 import org.chromium.chrome.browser.widget.bottomsheet.BottomSheetMetrics;
28 import org.chromium.content_public.browser.LoadUrlParams;
27 29
28 /** 30 /**
29 * The base class for the new tab pages displayed in Chrome Home. 31 * The base class for the new tab pages displayed in Chrome Home.
30 */ 32 */
31 public abstract class ChromeHomeNewTabPageBase implements NativePage { 33 public abstract class ChromeHomeNewTabPageBase implements NativePage {
32 final Tab mTab; 34 final Tab mTab;
33 final TabObserver mTabObserver; 35 final TabObserver mTabObserver;
34 final TabModelSelector mTabModelSelector; 36 final TabModelSelector mTabModelSelector;
35 final OverviewModeObserver mOverviewModeObserver; 37 final OverviewModeObserver mOverviewModeObserver;
36 @Nullable 38 @Nullable
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 @Override 85 @Override
84 public void onShown(Tab tab) { 86 public void onShown(Tab tab) {
85 onNewTabPageShown(); 87 onNewTabPageShown();
86 } 88 }
87 89
88 @Override 90 @Override
89 public void onHidden(Tab tab) { 91 public void onHidden(Tab tab) {
90 mFadingBackgroundView.setEnabled(true); 92 mFadingBackgroundView.setEnabled(true);
91 if (!mTab.isClosing()) mShowOverviewOnClose = false; 93 if (!mTab.isClosing()) mShowOverviewOnClose = false;
92 } 94 }
95
96 @Override
97 public void onLoadUrl(Tab tab, LoadUrlParams params, int loadType) {
98 // If the NTP is loading, the sheet state will be set to SHEET_S TATE_HALF.
99 if (TextUtils.equals(tab.getUrl(), getUrl())) return;
100
101 mBottomSheet.setSheetState(BottomSheet.SHEET_STATE_PEEK, true);
102 }
93 }; 103 };
94 mTab.addObserver(mTabObserver); 104 mTab.addObserver(mTabObserver);
95 105
96 // If the tab is already showing TabObserver#onShown() won't be called, so we need to call 106 // If the tab is already showing TabObserver#onShown() won't be called, so we need to call
97 // #onNewTabPageShown() directly. 107 // #onNewTabPageShown() directly.
98 boolean tabAlreadyShowing = mTabModelSelector.getCurrentTab() == mTab; 108 boolean tabAlreadyShowing = mTabModelSelector.getCurrentTab() == mTab;
99 if (tabAlreadyShowing) onNewTabPageShown(); 109 if (tabAlreadyShowing) onNewTabPageShown();
100 110
101 // TODO(twellington): disallow moving the NTP to the other window in And roid N+ 111 // TODO(twellington): disallow moving the NTP to the other window in And roid N+
102 // multi-window mode. 112 // multi-window mode.
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 return ((ChromeTabbedActivity) mTab.getActivity()).getLayoutManager(); 192 return ((ChromeTabbedActivity) mTab.getActivity()).getLayoutManager();
183 } 193 }
184 194
185 // Methods for testing. 195 // Methods for testing.
186 196
187 @VisibleForTesting 197 @VisibleForTesting
188 public View getCloseButtonForTests() { 198 public View getCloseButtonForTests() {
189 return mCloseButton; 199 return mCloseButton;
190 } 200 }
191 } 201 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698