Commit 4b8211d3 authored by Michael Thiessen's avatar Michael Thiessen Committed by Commit Bot

Clean up FullscreenActivity Control Container initialization

Also refactors control container height resource to match how we handle
the control container layout resource.

Change-Id: I1ea13d9adf54a01e18cbf9cb5721883a2d0fdab4
Reviewed-on: https://chromium-review.googlesource.com/c/1338330
Commit-Queue: Michael Thiessen <mthiesse@chromium.org>
Reviewed-by: default avatarYaron Friedman <yfriedman@chromium.org>
Reviewed-by: default avatarMatthew Jones <mdjones@chromium.org>
Cr-Commit-Position: refs/heads/master@{#608969}
parent a8ce1489
<?xml version="1.0" encoding="utf-8"?>
<!-- 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. -->
<org.chromium.chrome.browser.widget.FullscreenControlContainer xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/control_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="invisible" >
</org.chromium.chrome.browser.widget.FullscreenControlContainer>
...@@ -223,7 +223,6 @@ ...@@ -223,7 +223,6 @@
<!-- Should match toolbar_height_no_shadow --> <!-- Should match toolbar_height_no_shadow -->
<dimen name="control_container_height">56dp</dimen> <dimen name="control_container_height">56dp</dimen>
<dimen name="custom_tabs_control_container_height">56dp</dimen> <dimen name="custom_tabs_control_container_height">56dp</dimen>
<dimen name="fullscreen_activity_control_container_height">0dp</dimen>
<!-- The combined height of the tab strip and toolbar. --> <!-- The combined height of the tab strip and toolbar. -->
<dimen name="tab_strip_and_toolbar_height">56dp</dimen> <dimen name="tab_strip_and_toolbar_height">56dp</dimen>
......
...@@ -4,7 +4,6 @@ ...@@ -4,7 +4,6 @@
package org.chromium.chrome.browser; package org.chromium.chrome.browser;
import android.content.Context;
import android.content.res.Resources; import android.content.res.Resources;
import android.util.TypedValue; import android.util.TypedValue;
...@@ -23,10 +22,8 @@ public final class ApplicationInitialization { ...@@ -23,10 +22,8 @@ public final class ApplicationInitialization {
/** /**
* Enable fullscreen related startup flags. * Enable fullscreen related startup flags.
* @param resources Resources to use while calculating initialization constants. * @param resources Resources to use while calculating initialization constants.
* @param resControlContainerHeight The resource id for the height of the browser controls.
*/ */
public static void enableFullscreenFlags( public static void enableFullscreenFlags(Resources resources) {
Resources resources, Context context, int resControlContainerHeight) {
CommandLine commandLine = CommandLine.getInstance(); CommandLine commandLine = CommandLine.getInstance();
if (commandLine.hasSwitch(ChromeSwitches.DISABLE_FULLSCREEN)) return; if (commandLine.hasSwitch(ChromeSwitches.DISABLE_FULLSCREEN)) return;
......
...@@ -204,7 +204,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent> ...@@ -204,7 +204,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
/** /**
* No control container to inflate during initialization. * No control container to inflate during initialization.
*/ */
static final int NO_CONTROL_CONTAINER = -1; public static final int NO_CONTROL_CONTAINER = -1;
/** /**
* No toolbar layout to inflate during initialization. * No toolbar layout to inflate during initialization.
...@@ -342,8 +342,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent> ...@@ -342,8 +342,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
// not go through ChromeLauncherActivity that would have normally triggered this. // not go through ChromeLauncherActivity that would have normally triggered this.
mPartnerBrowserRefreshNeeded = !PartnerBrowserCustomizations.isInitialized(); mPartnerBrowserRefreshNeeded = !PartnerBrowserCustomizations.isInitialized();
ApplicationInitialization.enableFullscreenFlags( ApplicationInitialization.enableFullscreenFlags(getResources());
getResources(), this, getControlContainerHeightResource());
getWindow().setBackgroundDrawable(getBackgroundDrawable()); getWindow().setBackgroundDrawable(getBackgroundDrawable());
mFullscreenManager = createFullscreenManager(); mFullscreenManager = createFullscreenManager();
...@@ -827,6 +826,13 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent> ...@@ -827,6 +826,13 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
return NO_CONTROL_CONTAINER; return NO_CONTROL_CONTAINER;
} }
/**
* @return The resource id that contains how large the browser controls are.
*/
public int getControlContainerHeightResource() {
return NO_CONTROL_CONTAINER;
}
/** /**
* @return The layout ID for the toolbar to use. * @return The layout ID for the toolbar to use.
*/ */
...@@ -1581,13 +1587,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent> ...@@ -1581,13 +1587,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
}; };
} }
/**
* @return The resource id that contains how large the browser controls are.
*/
public int getControlContainerHeightResource() {
return R.dimen.control_container_height;
}
@Override @Override
public final void onAccessibilityStateChanged(boolean enabled) { public final void onAccessibilityStateChanged(boolean enabled) {
checkAccessibility(); checkAccessibility();
......
...@@ -1404,6 +1404,11 @@ public class ChromeTabbedActivity ...@@ -1404,6 +1404,11 @@ public class ChromeTabbedActivity
return R.layout.control_container; return R.layout.control_container;
} }
@Override
public int getControlContainerHeightResource() {
return R.dimen.control_container_height;
}
@Override @Override
protected int getToolbarLayoutId() { protected int getToolbarLayoutId() {
return isTablet() ? R.layout.toolbar_tablet : R.layout.toolbar_phone; return isTablet() ? R.layout.toolbar_tablet : R.layout.toolbar_phone;
......
...@@ -9,19 +9,16 @@ import android.content.Intent; ...@@ -9,19 +9,16 @@ import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.provider.Browser; import android.provider.Browser;
import android.util.SparseArray; import android.util.SparseArray;
import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import org.chromium.base.ActivityState; import org.chromium.base.ActivityState;
import org.chromium.base.ApplicationStatus; import org.chromium.base.ApplicationStatus;
import org.chromium.base.Log; import org.chromium.base.Log;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.compositor.layouts.LayoutManager; import org.chromium.chrome.browser.compositor.layouts.LayoutManager;
import org.chromium.chrome.browser.fullscreen.ChromeFullscreenManager; import org.chromium.chrome.browser.fullscreen.ChromeFullscreenManager;
import org.chromium.chrome.browser.fullscreen.FullscreenOptions; import org.chromium.chrome.browser.fullscreen.FullscreenOptions;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.util.IntentUtils; import org.chromium.chrome.browser.util.IntentUtils;
import org.chromium.chrome.browser.widget.ControlContainer;
import org.chromium.content_public.browser.ScreenOrientationProvider; import org.chromium.content_public.browser.ScreenOrientationProvider;
import org.chromium.content_public.browser.WebContentsObserver; import org.chromium.content_public.browser.WebContentsObserver;
...@@ -71,10 +68,8 @@ public class FullscreenActivity extends SingleTabActivity { ...@@ -71,10 +68,8 @@ public class FullscreenActivity extends SingleTabActivity {
@Override @Override
public void finishNativeInitialization() { public void finishNativeInitialization() {
ControlContainer controlContainer = (ControlContainer) findViewById(R.id.control_container); initializeCompositorContent(new LayoutManager(getCompositorViewHolder()), null /* urlBar */,
initializeCompositorContent(new LayoutManager(getCompositorViewHolder()), (ViewGroup) findViewById(android.R.id.content), null /* controlContainer */);
(View) controlContainer, (ViewGroup) findViewById(android.R.id.content),
controlContainer);
if (getFullscreenManager() != null) getFullscreenManager().setTab(getActivityTab()); if (getFullscreenManager() != null) getFullscreenManager().setTab(getActivityTab());
super.finishNativeInitialization(); super.finishNativeInitialization();
...@@ -83,17 +78,6 @@ public class FullscreenActivity extends SingleTabActivity { ...@@ -83,17 +78,6 @@ public class FullscreenActivity extends SingleTabActivity {
@Override @Override
protected void initializeToolbar() {} protected void initializeToolbar() {}
@Override
protected int getControlContainerLayoutId() {
// TODO(peconn): Determine if there's something more suitable to use here.
return R.layout.fullscreen_control_container;
}
@Override
public int getControlContainerHeightResource() {
return R.dimen.fullscreen_activity_control_container_height;
}
@Override @Override
protected ChromeFullscreenManager createFullscreenManager() { protected ChromeFullscreenManager createFullscreenManager() {
// Create a Fullscreen manager that won't change the Tab's fullscreen state when the // Create a Fullscreen manager that won't change the Tab's fullscreen state when the
......
...@@ -7,7 +7,6 @@ package org.chromium.chrome.browser; ...@@ -7,7 +7,6 @@ package org.chromium.chrome.browser;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.os.SystemClock; import android.os.SystemClock;
import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordHistogram;
...@@ -19,7 +18,6 @@ import org.chromium.chrome.browser.tab.Tab; ...@@ -19,7 +18,6 @@ import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabRedirectHandler; import org.chromium.chrome.browser.tab.TabRedirectHandler;
import org.chromium.chrome.browser.tab.TabUma.TabCreationState; import org.chromium.chrome.browser.tab.TabUma.TabCreationState;
import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType; import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType;
import org.chromium.chrome.browser.widget.ControlContainer;
import org.chromium.content_public.browser.LoadUrlParams; import org.chromium.content_public.browser.LoadUrlParams;
import org.chromium.content_public.common.Referrer; import org.chromium.content_public.common.Referrer;
import org.chromium.ui.base.PageTransition; import org.chromium.ui.base.PageTransition;
...@@ -92,10 +90,8 @@ public class NoTouchActivity extends SingleTabActivity { ...@@ -92,10 +90,8 @@ public class NoTouchActivity extends SingleTabActivity {
@Override @Override
public void finishNativeInitialization() { public void finishNativeInitialization() {
View urlBar = null; initializeCompositorContent(new LayoutManager(getCompositorViewHolder()), null /* urlBar */,
ControlContainer controlContainer = null; (ViewGroup) findViewById(android.R.id.content), null /* controlContainer */);
initializeCompositorContent(new LayoutManager(getCompositorViewHolder()), urlBar,
(ViewGroup) findViewById(android.R.id.content), controlContainer);
if (getFullscreenManager() != null) getFullscreenManager().setTab(getActivityTab()); if (getFullscreenManager() != null) getFullscreenManager().setTab(getActivityTab());
super.finishNativeInitialization(); super.finishNativeInitialization();
......
...@@ -11,6 +11,7 @@ import android.view.ViewGroup; ...@@ -11,6 +11,7 @@ import android.view.ViewGroup;
import org.chromium.base.ApiCompatibilityUtils; import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.base.VisibleForTesting; import org.chromium.base.VisibleForTesting;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel.PanelState; import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel.PanelState;
import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel.StateChangeReason; import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel.StateChangeReason;
import org.chromium.chrome.browser.util.MathUtils; import org.chromium.chrome.browser.util.MathUtils;
...@@ -689,8 +690,10 @@ abstract class OverlayPanelBase { ...@@ -689,8 +690,10 @@ abstract class OverlayPanelBase {
// constructor, once we are able to get the Activity during instantiation. The Activity // constructor, once we are able to get the Activity during instantiation. The Activity
// is needed in order to get the correct height of the Toolbar, which varies depending // is needed in order to get the correct height of the Toolbar, which varies depending
// on the Activity (WebApps have a smaller toolbar for example). // on the Activity (WebApps have a smaller toolbar for example).
mToolbarHeight = mContext.getResources().getDimension( int toolbarHeightResource = getControlContainerHeightResource();
getControlContainerHeightResource()) * mPxToDp; mToolbarHeight = toolbarHeightResource == ChromeActivity.NO_CONTROL_CONTAINER
? 0
: mContext.getResources().getDimension(toolbarHeightResource) * mPxToDp;
} }
/** /**
......
...@@ -21,6 +21,7 @@ import org.chromium.base.ApplicationStatus.WindowFocusChangedListener; ...@@ -21,6 +21,7 @@ import org.chromium.base.ApplicationStatus.WindowFocusChangedListener;
import org.chromium.base.ThreadUtils; import org.chromium.base.ThreadUtils;
import org.chromium.base.TraceEvent; import org.chromium.base.TraceEvent;
import org.chromium.base.library_loader.LibraryLoader; import org.chromium.base.library_loader.LibraryLoader;
import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.fullscreen.FullscreenHtmlApiHandler.FullscreenHtmlApiDelegate; import org.chromium.chrome.browser.fullscreen.FullscreenHtmlApiHandler.FullscreenHtmlApiDelegate;
import org.chromium.chrome.browser.tab.BrowserControlsVisibilityDelegate; import org.chromium.chrome.browser.tab.BrowserControlsVisibilityDelegate;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
...@@ -213,12 +214,11 @@ public class ChromeFullscreenManager ...@@ -213,12 +214,11 @@ public class ChromeFullscreenManager
assert controlContainer != null || mControlsPosition == ControlsPosition.NONE; assert controlContainer != null || mControlsPosition == ControlsPosition.NONE;
mControlContainer = controlContainer; mControlContainer = controlContainer;
int controlContainerHeight =
mActivity.getResources().getDimensionPixelSize(resControlContainerHeight);
switch (mControlsPosition) { switch (mControlsPosition) {
case ControlsPosition.TOP: case ControlsPosition.TOP:
mTopControlContainerHeight = controlContainerHeight; assert resControlContainerHeight != ChromeActivity.NO_CONTROL_CONTAINER;
mTopControlContainerHeight =
mActivity.getResources().getDimensionPixelSize(resControlContainerHeight);
break; break;
case ControlsPosition.NONE: case ControlsPosition.NONE:
// Treat the case of no controls as controls always being totally offscreen. // Treat the case of no controls as controls always being totally offscreen.
......
...@@ -195,9 +195,12 @@ public class TabModalPresenter ...@@ -195,9 +195,12 @@ public class TabModalPresenter
Resources resources = mChromeActivity.getResources(); Resources resources = mChromeActivity.getResources();
int scrimVerticalMargin = int scrimVerticalMargin =
resources.getDimensionPixelSize(R.dimen.tab_modal_scrim_vertical_margin); resources.getDimensionPixelSize(R.dimen.tab_modal_scrim_vertical_margin);
int containerVerticalMargin =
resources.getDimensionPixelSize(mChromeActivity.getControlContainerHeightResource()) int containerVerticalMargin = -scrimVerticalMargin;
- scrimVerticalMargin; int containerHeightResource = mChromeActivity.getControlContainerHeightResource();
if (containerHeightResource != ChromeActivity.NO_CONTROL_CONTAINER) {
containerVerticalMargin += resources.getDimensionPixelSize(containerHeightResource);
}
MarginLayoutParams params = (MarginLayoutParams) mDialogContainer.getLayoutParams(); MarginLayoutParams params = (MarginLayoutParams) mDialogContainer.getLayoutParams();
params.width = ViewGroup.MarginLayoutParams.MATCH_PARENT; params.width = ViewGroup.MarginLayoutParams.MATCH_PARENT;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment