| Index: chrome/android/java/src/org/chromium/chrome/browser/webapps/FullScreenActivity.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/FullScreenActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/FullScreenActivity.java
|
| deleted file mode 100644
|
| index a68604a0bd2158d86fb38ad0d1751f300ac5cdcb..0000000000000000000000000000000000000000
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/FullScreenActivity.java
|
| +++ /dev/null
|
| @@ -1,215 +0,0 @@
|
| -// Copyright 2015 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.webapps;
|
| -
|
| -import android.content.Intent;
|
| -import android.util.Pair;
|
| -import android.view.View;
|
| -import android.view.ViewGroup;
|
| -
|
| -import org.chromium.base.annotations.SuppressFBWarnings;
|
| -import org.chromium.chrome.R;
|
| -import org.chromium.chrome.browser.ChromeActivity;
|
| -import org.chromium.chrome.browser.TabState;
|
| -import org.chromium.chrome.browser.compositor.layouts.LayoutManagerDocument;
|
| -import org.chromium.chrome.browser.tab.EmptyTabObserver;
|
| -import org.chromium.chrome.browser.tab.Tab;
|
| -import org.chromium.chrome.browser.tab.TabDelegateFactory;
|
| -import org.chromium.chrome.browser.tab.TabUma.TabCreationState;
|
| -import org.chromium.chrome.browser.tabmodel.SingleTabModelSelector;
|
| -import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType;
|
| -import org.chromium.chrome.browser.tabmodel.TabModel.TabSelectionType;
|
| -import org.chromium.chrome.browser.tabmodel.TabModelSelector;
|
| -import org.chromium.chrome.browser.tabmodel.document.TabDelegate;
|
| -import org.chromium.chrome.browser.widget.ControlContainer;
|
| -import org.chromium.content.browser.ContentViewCore;
|
| -import org.chromium.content_public.browser.LoadUrlParams;
|
| -import org.chromium.content_public.browser.WebContents;
|
| -import org.chromium.content_public.browser.WebContentsObserver;
|
| -
|
| -import java.io.File;
|
| -
|
| -/**
|
| - * Base class for task-focused activities that need to display web content in a nearly UI-less
|
| - * Chrome (InfoBars still appear).
|
| - *
|
| - * This is vaguely analogous to a WebView, but in Chrome. Example applications that might use this
|
| - * Activity would be webapps and streaming media activities - anything where user interaction with
|
| - * the regular browser's UI is either unnecessary or undesirable.
|
| - * Subclasses can override {@link #createUI()} if they need something more exotic.
|
| - */
|
| -@SuppressFBWarnings("URF_UNREAD_FIELD")
|
| -public abstract class FullScreenActivity extends ChromeActivity {
|
| - protected static final String BUNDLE_TAB_ID = "tabId";
|
| - protected static final String BUNDLE_TAB_URL = "tabUrl";
|
| - private static final String TAG = "FullScreenActivity";
|
| -
|
| - private WebContents mWebContents;
|
| - @SuppressWarnings("unused") // Reference needed to prevent GC.
|
| - private WebContentsObserver mWebContentsObserver;
|
| -
|
| - @Override
|
| - protected void onNewIntent(Intent intent) {
|
| - super.onNewIntent(intent);
|
| - setIntent(intent);
|
| - }
|
| -
|
| - @Override
|
| - protected TabModelSelector createTabModelSelector() {
|
| - return new SingleTabModelSelector(this, false, false) {
|
| - @Override
|
| - public Tab openNewTab(LoadUrlParams loadUrlParams, TabLaunchType type, Tab parent,
|
| - boolean incognito) {
|
| - getTabCreator(incognito).createNewTab(loadUrlParams, type, parent);
|
| - return null;
|
| - }
|
| - };
|
| - }
|
| -
|
| - @Override
|
| - protected Pair<TabDelegate, TabDelegate> createTabCreators() {
|
| - return Pair.create(createTabDelegate(false), createTabDelegate(true));
|
| - }
|
| -
|
| - /** Creates TabDelegates for opening new Tabs. */
|
| - protected TabDelegate createTabDelegate(boolean incognito) {
|
| - return new TabDelegate(incognito);
|
| - }
|
| -
|
| - @Override
|
| - public void initializeState() {
|
| - super.initializeState();
|
| -
|
| - Tab tab = createTab();
|
| - getTabModelSelector().setTab(tab);
|
| - handleTabContentChanged();
|
| - tab.show(TabSelectionType.FROM_NEW);
|
| - }
|
| -
|
| - @Override
|
| - public void finishNativeInitialization() {
|
| - ControlContainer controlContainer = (ControlContainer) findViewById(R.id.control_container);
|
| - initializeCompositorContent(new LayoutManagerDocument(getCompositorViewHolder()),
|
| - (View) controlContainer, (ViewGroup) findViewById(android.R.id.content),
|
| - controlContainer);
|
| -
|
| - if (getFullscreenManager() != null) getFullscreenManager().setTab(getActivityTab());
|
| - super.finishNativeInitialization();
|
| - }
|
| -
|
| - @Override
|
| - protected void initializeToolbar() { }
|
| -
|
| - @Override
|
| - public SingleTabModelSelector getTabModelSelector() {
|
| - return (SingleTabModelSelector) super.getTabModelSelector();
|
| - }
|
| -
|
| - /**
|
| - * Creates the {@link Tab} used by the FullScreenActivity.
|
| - * If the {@code savedInstanceState} exists, then the user did not intentionally close the app
|
| - * by swiping it away in the recent tasks list. In that case, we try to restore the tab from
|
| - * disk.
|
| - */
|
| - protected Tab createTab() {
|
| - Tab tab = null;
|
| - boolean unfreeze = false;
|
| -
|
| - int tabId = Tab.INVALID_TAB_ID;
|
| - String tabUrl = null;
|
| - if (getSavedInstanceState() != null) {
|
| - tabId = getSavedInstanceState().getInt(BUNDLE_TAB_ID, Tab.INVALID_TAB_ID);
|
| - tabUrl = getSavedInstanceState().getString(BUNDLE_TAB_URL);
|
| - }
|
| -
|
| - if (tabId != Tab.INVALID_TAB_ID && tabUrl != null && getActivityDirectory() != null) {
|
| - // Restore the tab.
|
| - TabState tabState = TabState.restoreTabState(getActivityDirectory(), tabId);
|
| - tab = new Tab(tabId, Tab.INVALID_TAB_ID, false, this, getWindowAndroid(),
|
| - TabLaunchType.FROM_RESTORE,
|
| - TabCreationState.FROZEN_ON_RESTORE, tabState);
|
| - unfreeze = true;
|
| - }
|
| -
|
| - if (tab == null) {
|
| - tab = new Tab(Tab.INVALID_TAB_ID, Tab.INVALID_TAB_ID, false, this, getWindowAndroid(),
|
| - TabLaunchType.FROM_CHROME_UI, null, null);
|
| - }
|
| -
|
| - tab.initialize(null, getTabContentManager(), createTabDelegateFactory(), false, unfreeze);
|
| - tab.addObserver(new EmptyTabObserver() {
|
| - @Override
|
| - public void onContentChanged(Tab tab) {
|
| - assert tab == getActivityTab();
|
| - handleTabContentChanged();
|
| - }
|
| - });
|
| - return tab;
|
| - }
|
| -
|
| - private void handleTabContentChanged() {
|
| - final Tab tab = getActivityTab();
|
| - assert tab != null;
|
| -
|
| - WebContents webContents = tab.getWebContents();
|
| - if (mWebContents == webContents) return;
|
| -
|
| - // Clean up any old references to the previous WebContents.
|
| - if (mWebContentsObserver != null) {
|
| - mWebContentsObserver.destroy();
|
| - mWebContentsObserver = null;
|
| - }
|
| -
|
| - mWebContents = webContents;
|
| - if (mWebContents == null) return;
|
| -
|
| - ContentViewCore.fromWebContents(webContents).setFullscreenRequiredForOrientationLock(false);
|
| - mWebContentsObserver = new WebContentsObserver(webContents) {
|
| - @Override
|
| - public void didFinishNavigation(String url, boolean isInMainFrame, boolean isErrorPage,
|
| - boolean hasCommitted, boolean isSameDocument, boolean isFragmentNavigation,
|
| - Integer pageTransition, int errorCode, String errorDescription,
|
| - int httpStatusCode) {
|
| - if (hasCommitted && isInMainFrame) {
|
| - // Notify the renderer to permanently hide the top controls since they do
|
| - // not apply to fullscreen content views.
|
| - tab.updateBrowserControlsState(tab.getBrowserControlsStateConstraints(), true);
|
| - }
|
| - }
|
| - };
|
| - }
|
| -
|
| - /**
|
| - * @return {@link TabDelegateFactory} to be used while creating the associated {@link Tab}.
|
| - */
|
| - protected TabDelegateFactory createTabDelegateFactory() {
|
| - return new FullScreenDelegateFactory();
|
| - }
|
| -
|
| - /**
|
| - * @return {@link File} pointing at a directory specific for this class.
|
| - */
|
| - protected File getActivityDirectory() {
|
| - return null;
|
| - }
|
| -
|
| - @Override
|
| - protected boolean handleBackPressed() {
|
| - Tab tab = getActivityTab();
|
| - if (tab == null) return false;
|
| -
|
| - if (exitFullscreenIfShowing()) return true;
|
| -
|
| - if (tab.canGoBack()) {
|
| - tab.goBack();
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - @Override
|
| - public void onCheckForUpdate(boolean updateAvailable) {
|
| - }
|
| -}
|
|
|