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 @@
<!-- Should match toolbar_height_no_shadow -->
<dimen name="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. -->
<dimen name="tab_strip_and_toolbar_height">56dp</dimen>
......
......@@ -4,7 +4,6 @@
package org.chromium.chrome.browser;
import android.content.Context;
import android.content.res.Resources;
import android.util.TypedValue;
......@@ -23,10 +22,8 @@ public final class ApplicationInitialization {
/**
* Enable fullscreen related startup flags.
* @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(
Resources resources, Context context, int resControlContainerHeight) {
public static void enableFullscreenFlags(Resources resources) {
CommandLine commandLine = CommandLine.getInstance();
if (commandLine.hasSwitch(ChromeSwitches.DISABLE_FULLSCREEN)) return;
......
......@@ -204,7 +204,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
/**
* 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.
......@@ -342,8 +342,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
// not go through ChromeLauncherActivity that would have normally triggered this.
mPartnerBrowserRefreshNeeded = !PartnerBrowserCustomizations.isInitialized();
ApplicationInitialization.enableFullscreenFlags(
getResources(), this, getControlContainerHeightResource());
ApplicationInitialization.enableFullscreenFlags(getResources());
getWindow().setBackgroundDrawable(getBackgroundDrawable());
mFullscreenManager = createFullscreenManager();
......@@ -827,6 +826,13 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
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.
*/
......@@ -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
public final void onAccessibilityStateChanged(boolean enabled) {
checkAccessibility();
......
......@@ -1404,6 +1404,11 @@ public class ChromeTabbedActivity
return R.layout.control_container;
}
@Override
public int getControlContainerHeightResource() {
return R.dimen.control_container_height;
}
@Override
protected int getToolbarLayoutId() {
return isTablet() ? R.layout.toolbar_tablet : R.layout.toolbar_phone;
......
......@@ -9,19 +9,16 @@ import android.content.Intent;
import android.os.Bundle;
import android.provider.Browser;
import android.util.SparseArray;
import android.view.View;
import android.view.ViewGroup;
import org.chromium.base.ActivityState;
import org.chromium.base.ApplicationStatus;
import org.chromium.base.Log;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.compositor.layouts.LayoutManager;
import org.chromium.chrome.browser.fullscreen.ChromeFullscreenManager;
import org.chromium.chrome.browser.fullscreen.FullscreenOptions;
import org.chromium.chrome.browser.tab.Tab;
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.WebContentsObserver;
......@@ -71,10 +68,8 @@ public class FullscreenActivity extends SingleTabActivity {
@Override
public void finishNativeInitialization() {
ControlContainer controlContainer = (ControlContainer) findViewById(R.id.control_container);
initializeCompositorContent(new LayoutManager(getCompositorViewHolder()),
(View) controlContainer, (ViewGroup) findViewById(android.R.id.content),
controlContainer);
initializeCompositorContent(new LayoutManager(getCompositorViewHolder()), null /* urlBar */,
(ViewGroup) findViewById(android.R.id.content), null /* controlContainer */);
if (getFullscreenManager() != null) getFullscreenManager().setTab(getActivityTab());
super.finishNativeInitialization();
......@@ -83,17 +78,6 @@ public class FullscreenActivity extends SingleTabActivity {
@Override
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
protected ChromeFullscreenManager createFullscreenManager() {
// Create a Fullscreen manager that won't change the Tab's fullscreen state when the
......
......@@ -7,7 +7,6 @@ package org.chromium.chrome.browser;
import android.content.Intent;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.view.ViewGroup;
import org.chromium.base.metrics.RecordHistogram;
......@@ -19,7 +18,6 @@ import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabRedirectHandler;
import org.chromium.chrome.browser.tab.TabUma.TabCreationState;
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.common.Referrer;
import org.chromium.ui.base.PageTransition;
......@@ -92,10 +90,8 @@ public class NoTouchActivity extends SingleTabActivity {
@Override
public void finishNativeInitialization() {
View urlBar = null;
ControlContainer controlContainer = null;
initializeCompositorContent(new LayoutManager(getCompositorViewHolder()), urlBar,
(ViewGroup) findViewById(android.R.id.content), controlContainer);
initializeCompositorContent(new LayoutManager(getCompositorViewHolder()), null /* urlBar */,
(ViewGroup) findViewById(android.R.id.content), null /* controlContainer */);
if (getFullscreenManager() != null) getFullscreenManager().setTab(getActivityTab());
super.finishNativeInitialization();
......
......@@ -11,6 +11,7 @@ import android.view.ViewGroup;
import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.base.VisibleForTesting;
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.StateChangeReason;
import org.chromium.chrome.browser.util.MathUtils;
......@@ -689,8 +690,10 @@ abstract class OverlayPanelBase {
// 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
// on the Activity (WebApps have a smaller toolbar for example).
mToolbarHeight = mContext.getResources().getDimension(
getControlContainerHeightResource()) * mPxToDp;
int toolbarHeightResource = getControlContainerHeightResource();
mToolbarHeight = toolbarHeightResource == ChromeActivity.NO_CONTROL_CONTAINER
? 0
: mContext.getResources().getDimension(toolbarHeightResource) * mPxToDp;
}
/**
......
......@@ -21,6 +21,7 @@ import org.chromium.base.ApplicationStatus.WindowFocusChangedListener;
import org.chromium.base.ThreadUtils;
import org.chromium.base.TraceEvent;
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.tab.BrowserControlsVisibilityDelegate;
import org.chromium.chrome.browser.tab.Tab;
......@@ -213,12 +214,11 @@ public class ChromeFullscreenManager
assert controlContainer != null || mControlsPosition == ControlsPosition.NONE;
mControlContainer = controlContainer;
int controlContainerHeight =
mActivity.getResources().getDimensionPixelSize(resControlContainerHeight);
switch (mControlsPosition) {
case ControlsPosition.TOP:
mTopControlContainerHeight = controlContainerHeight;
assert resControlContainerHeight != ChromeActivity.NO_CONTROL_CONTAINER;
mTopControlContainerHeight =
mActivity.getResources().getDimensionPixelSize(resControlContainerHeight);
break;
case ControlsPosition.NONE:
// Treat the case of no controls as controls always being totally offscreen.
......
......@@ -195,9 +195,12 @@ public class TabModalPresenter
Resources resources = mChromeActivity.getResources();
int scrimVerticalMargin =
resources.getDimensionPixelSize(R.dimen.tab_modal_scrim_vertical_margin);
int containerVerticalMargin =
resources.getDimensionPixelSize(mChromeActivity.getControlContainerHeightResource())
- scrimVerticalMargin;
int containerVerticalMargin = -scrimVerticalMargin;
int containerHeightResource = mChromeActivity.getControlContainerHeightResource();
if (containerHeightResource != ChromeActivity.NO_CONTROL_CONTAINER) {
containerVerticalMargin += resources.getDimensionPixelSize(containerHeightResource);
}
MarginLayoutParams params = (MarginLayoutParams) mDialogContainer.getLayoutParams();
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