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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/fullscreen/ChromeFullscreenManager.java

Issue 2560043002: ControlContainer is now a child of CompositorViewHolder (Closed)
Patch Set: address comments 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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.fullscreen; 5 package org.chromium.chrome.browser.fullscreen;
6 6
7 import android.app.Activity; 7 import android.app.Activity;
8 import android.content.res.Resources; 8 import android.content.res.Resources;
9 import android.view.Gravity; 9 import android.view.Gravity;
10 import android.view.MotionEvent; 10 import android.view.MotionEvent;
11 import android.view.View; 11 import android.view.View;
12 import android.view.ViewGroup; 12 import android.view.ViewGroup;
13 import android.view.ViewGroup.LayoutParams; 13 import android.view.ViewGroup.LayoutParams;
14 import android.view.Window; 14 import android.view.Window;
15 import android.widget.FrameLayout; 15 import android.widget.FrameLayout;
16 16
17 import org.chromium.base.ActivityState; 17 import org.chromium.base.ActivityState;
18 import org.chromium.base.ApplicationStatus; 18 import org.chromium.base.ApplicationStatus;
19 import org.chromium.base.ApplicationStatus.ActivityStateListener; 19 import org.chromium.base.ApplicationStatus.ActivityStateListener;
20 import org.chromium.base.BaseChromiumApplication; 20 import org.chromium.base.BaseChromiumApplication;
21 import org.chromium.base.BaseChromiumApplication.WindowFocusChangedListener; 21 import org.chromium.base.BaseChromiumApplication.WindowFocusChangedListener;
22 import org.chromium.base.ThreadUtils; 22 import org.chromium.base.ThreadUtils;
23 import org.chromium.base.TraceEvent; 23 import org.chromium.base.TraceEvent;
24 import org.chromium.base.library_loader.LibraryLoader; 24 import org.chromium.base.library_loader.LibraryLoader;
25 import org.chromium.chrome.browser.fullscreen.FullscreenHtmlApiHandler.Fullscree nHtmlApiDelegate; 25 import org.chromium.chrome.browser.fullscreen.FullscreenHtmlApiHandler.Fullscree nHtmlApiDelegate;
26 import org.chromium.chrome.browser.tab.Tab; 26 import org.chromium.chrome.browser.tab.Tab;
27 import org.chromium.chrome.browser.tabmodel.TabModel.TabSelectionType; 27 import org.chromium.chrome.browser.tabmodel.TabModel.TabSelectionType;
28 import org.chromium.chrome.browser.tabmodel.TabModelSelector; 28 import org.chromium.chrome.browser.tabmodel.TabModelSelector;
29 import org.chromium.chrome.browser.tabmodel.TabModelSelectorTabModelObserver; 29 import org.chromium.chrome.browser.tabmodel.TabModelSelectorTabModelObserver;
30 import org.chromium.chrome.browser.util.ViewUtils;
31 import org.chromium.chrome.browser.widget.ControlContainer; 30 import org.chromium.chrome.browser.widget.ControlContainer;
32 import org.chromium.content.browser.ContentVideoView; 31 import org.chromium.content.browser.ContentVideoView;
33 import org.chromium.content.browser.ContentViewCore; 32 import org.chromium.content.browser.ContentViewCore;
34 import org.chromium.content_public.common.BrowserControlsState; 33 import org.chromium.content_public.common.BrowserControlsState;
35 34
36 import java.util.ArrayList; 35 import java.util.ArrayList;
37 36
38 /** 37 /**
39 * A class that manages control and content views to create the fullscreen mode. 38 * A class that manages control and content views to create the fullscreen mode.
40 */ 39 */
(...skipping 548 matching lines...) Expand 10 before | Expand all | Expand 10 after
589 mRendererTopControlOffset = rendererTopControlOffset; 588 mRendererTopControlOffset = rendererTopControlOffset;
590 mRendererBottomControlOffset = rendererBottomControlOffset; 589 mRendererBottomControlOffset = rendererBottomControlOffset;
591 590
592 mRendererTopContentOffset = rendererTopContentOffset; 591 mRendererTopContentOffset = rendererTopContentOffset;
593 updateControlOffset(); 592 updateControlOffset();
594 593
595 updateVisuals(); 594 updateVisuals();
596 } 595 }
597 596
598 /** 597 /**
599 * @param e The dispatched motion event
600 * @return Whether or not this motion event is in the top control container area and should be
601 * consumed.
602 */
603 public boolean onInterceptMotionEvent(MotionEvent e) {
604 int bottomPosition;
605 int topPosition = 0;
606 float offset;
607
608 if (mIsBottomControls) {
609 int[] position = new int[2];
610 ViewUtils.getRelativeLayoutPosition(mControlContainer.getView().getR ootView(),
611 mControlContainer.getView(), position);
612
613 topPosition = position[1];
614 bottomPosition = topPosition + getBottomControlsHeight();
615 offset = getBottomControlOffset();
616 } else {
617 bottomPosition = getTopControlsHeight();
618 offset = getTopControlOffset();
619 }
620
621 return e.getY() < topPosition + offset && e.getY() > bottomPosition + of fset
622 && !mBrowserControlsAndroidViewHidden;
623 }
624
625 /**
626 * Notifies the fullscreen manager that a motion event has occurred. 598 * Notifies the fullscreen manager that a motion event has occurred.
627 * @param e The dispatched motion event. 599 * @param e The dispatched motion event.
628 */ 600 */
629 public void onMotionEvent(MotionEvent e) { 601 public void onMotionEvent(MotionEvent e) {
630 int eventAction = e.getActionMasked(); 602 int eventAction = e.getActionMasked();
631 if (eventAction == MotionEvent.ACTION_DOWN 603 if (eventAction == MotionEvent.ACTION_DOWN
632 || eventAction == MotionEvent.ACTION_POINTER_DOWN) { 604 || eventAction == MotionEvent.ACTION_POINTER_DOWN) {
633 mInGesture = true; 605 mInGesture = true;
634 // TODO(qinmin): Probably there is no need to hide the toast as it w ill go away 606 // TODO(qinmin): Probably there is no need to hide the toast as it w ill go away
635 // by itself. 607 // by itself.
636 getHtmlApiHandler().hideNotificationToast(); 608 getHtmlApiHandler().hideNotificationToast();
637 } else if (eventAction == MotionEvent.ACTION_CANCEL 609 } else if (eventAction == MotionEvent.ACTION_CANCEL
638 || eventAction == MotionEvent.ACTION_UP) { 610 || eventAction == MotionEvent.ACTION_UP) {
639 mInGesture = false; 611 mInGesture = false;
640 updateVisuals(); 612 updateVisuals();
641 } 613 }
642 } 614 }
643 615
644 @Override 616 @Override
645 public void onContentViewScrollingStateChanged(boolean scrolling) { 617 public void onContentViewScrollingStateChanged(boolean scrolling) {
646 mContentViewScrolling = scrolling; 618 mContentViewScrolling = scrolling;
647 if (!scrolling) updateVisuals(); 619 if (!scrolling) updateVisuals();
648 } 620 }
649 } 621 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698