android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener#org.chromium.chrome.browser.widget.ControlContainer源码实例Demo

下面列出了android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener#org.chromium.chrome.browser.widget.ControlContainer 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: delion   文件: ChromeFullscreenManager.java
/**
 * Creates an instance of the fullscreen mode manager.
 * @param activity The activity that supports fullscreen.
 * @param controlContainer Container holding the controls (Toolbar).
 * @param modelSelector The model selector providing access to the current tab.
 * @param resControlContainerHeight The dimension resource ID for the control container height.
 * @param supportsBrowserOverride Whether we want to disable the token system used by the
                                  browser.
 */
public ChromeFullscreenManager(Activity activity, ControlContainer controlContainer,
        TabModelSelector modelSelector, int resControlContainerHeight,
        boolean supportsBrowserOverride) {
    super(activity.getWindow(), modelSelector);

    mActivity = activity;
    ApplicationStatus.registerStateListenerForActivity(this, activity);
    ((BaseChromiumApplication) activity.getApplication())
            .registerWindowFocusChangedListener(this);

    mWindow = activity.getWindow();
    mHandler = new FullscreenHandler(this);
    assert controlContainer != null;
    mControlContainer = controlContainer;
    Resources resources = mWindow.getContext().getResources();
    mControlContainerHeight = resources.getDimensionPixelSize(resControlContainerHeight);
    mRendererContentOffset = mControlContainerHeight;
    mSupportsBrowserOverride = supportsBrowserOverride;
    updateControlOffset();
}
 
源代码2 项目: AndroidChromium   文件: ChromeActivity.java
/**
 * Initializes the {@link CompositorViewHolder} with the relevant content it needs to properly
 * show content on the screen.
 * @param layoutManager             A {@link LayoutManagerDocument} instance.  This class is
 *                                  responsible for driving all high level screen content and
 *                                  determines which {@link Layout} is shown when.
 * @param urlBar                    The {@link View} representing the URL bar (must be
 *                                  focusable) or {@code null} if none exists.
 * @param contentContainer          A {@link ViewGroup} that can have content attached by
 *                                  {@link Layout}s.
 * @param controlContainer          A {@link ControlContainer} instance to draw.
 */
protected void initializeCompositorContent(
        LayoutManagerDocument layoutManager, View urlBar, ViewGroup contentContainer,
        ControlContainer controlContainer) {
    if (mContextualSearchManager != null) {
        mContextualSearchManager.initialize(contentContainer);
        mContextualSearchManager.setSearchContentViewDelegate(layoutManager);
    }

    layoutManager.addSceneChangeObserver(this);
    mCompositorViewHolder.setLayoutManager(layoutManager);
    mCompositorViewHolder.setFocusable(false);
    mCompositorViewHolder.setControlContainer(controlContainer);
    mCompositorViewHolder.setFullscreenHandler(getFullscreenManager());
    mCompositorViewHolder.setUrlBar(urlBar);
    mCompositorViewHolder.onFinishNativeInitialization(getTabModelSelector(), this,
            getTabContentManager(), contentContainer, mContextualSearchManager,
            mReaderModeManager);

    if (controlContainer != null
            && DeviceClassManager.enableToolbarSwipe()) {
        controlContainer.setSwipeHandler(
                getCompositorViewHolder().getLayoutManager().getTopSwipeHandler());
    }
}
 
源代码3 项目: 365browser   文件: ChromeActivity.java
/**
 * Initializes the {@link CompositorViewHolder} with the relevant content it needs to properly
 * show content on the screen.
 * @param layoutManager             A {@link LayoutManagerDocument} instance.  This class is
 *                                  responsible for driving all high level screen content and
 *                                  determines which {@link Layout} is shown when.
 * @param urlBar                    The {@link View} representing the URL bar (must be
 *                                  focusable) or {@code null} if none exists.
 * @param contentContainer          A {@link ViewGroup} that can have content attached by
 *                                  {@link Layout}s.
 * @param controlContainer          A {@link ControlContainer} instance to draw.
 */
protected void initializeCompositorContent(
        LayoutManagerDocument layoutManager, View urlBar, ViewGroup contentContainer,
        ControlContainer controlContainer) {
    if (mContextualSearchManager != null) {
        mContextualSearchManager.initialize(contentContainer);
        mContextualSearchManager.setSearchContentViewDelegate(layoutManager);
    }

    layoutManager.addSceneChangeObserver(this);
    mCompositorViewHolder.setLayoutManager(layoutManager);
    mCompositorViewHolder.setFocusable(false);
    mCompositorViewHolder.setControlContainer(controlContainer);
    mCompositorViewHolder.setFullscreenHandler(getFullscreenManager());
    mCompositorViewHolder.setUrlBar(urlBar);
    mCompositorViewHolder.onFinishNativeInitialization(getTabModelSelector(), this,
            getTabContentManager(), contentContainer, mContextualSearchManager,
            mReaderModeManager);

    if (controlContainer != null
            && DeviceClassManager.enableToolbarSwipe()) {
        controlContainer.setSwipeHandler(
                getCompositorViewHolder().getLayoutManager().getTopSwipeHandler());
    }
}
 
源代码4 项目: delion   文件: CompositorViewHolder.java
/**
 * @param controlContainer The ControlContainer.
 */
public void setControlContainer(ControlContainer controlContainer) {
    DynamicResourceLoader loader = mCompositorView.getResourceManager() != null
            ? mCompositorView.getResourceManager().getDynamicResourceLoader()
            : null;
    if (loader != null && mControlContainer != null) {
        loader.unregisterResource(R.id.control_container);
    }
    mControlContainer = controlContainer;
    if (loader != null && mControlContainer != null) {
        loader.registerResource(
                R.id.control_container, mControlContainer.getToolbarResourceAdapter());
    }
}
 
源代码5 项目: delion   文件: FullScreenActivity.java
@Override
public void finishNativeInitialization() {
    mTab = createTab();
    getTabModelSelector().setTab(mTab);
    mTab.show(TabSelectionType.FROM_NEW);

    ControlContainer controlContainer = (ControlContainer) findViewById(R.id.control_container);
    initializeCompositorContent(new LayoutManagerDocument(getCompositorViewHolder()),
            (View) controlContainer, (ViewGroup) findViewById(android.R.id.content),
            controlContainer);

    getActivityTab().setFullscreenManager(getFullscreenManager());
    super.finishNativeInitialization();
}
 
源代码6 项目: delion   文件: ChromeActivity.java
/**
 * Initializes the {@link CompositorViewHolder} with the relevant content it needs to properly
 * show content on the screen.
 * @param layoutManager             A {@link LayoutManagerDocument} instance.  This class is
 *                                  responsible for driving all high level screen content and
 *                                  determines which {@link Layout} is shown when.
 * @param urlBar                    The {@link View} representing the URL bar (must be
 *                                  focusable) or {@code null} if none exists.
 * @param contentContainer          A {@link ViewGroup} that can have content attached by
 *                                  {@link Layout}s.
 * @param controlContainer          A {@link ControlContainer} instance to draw.
 */
protected void initializeCompositorContent(
        LayoutManagerDocument layoutManager, View urlBar, ViewGroup contentContainer,
        ControlContainer controlContainer) {
    if (controlContainer != null) {
        mFullscreenManager = createFullscreenManager(controlContainer);
    }

    if (mContextualSearchManager != null) {
        mContextualSearchManager.initialize(contentContainer);
        mContextualSearchManager.setSearchContentViewDelegate(layoutManager);
    }

    layoutManager.addSceneChangeObserver(this);
    mCompositorViewHolder.setLayoutManager(layoutManager);
    mCompositorViewHolder.setFocusable(false);
    mCompositorViewHolder.setControlContainer(controlContainer);
    mCompositorViewHolder.setFullscreenHandler(mFullscreenManager);
    mCompositorViewHolder.setUrlBar(urlBar);
    mCompositorViewHolder.onFinishNativeInitialization(getTabModelSelector(), this,
            getTabContentManager(), contentContainer, mContextualSearchManager,
            mReaderModeManager);

    if (controlContainer != null
            && DeviceClassManager.enableToolbarSwipe(FeatureUtilities.isDocumentMode(this))) {
        controlContainer.setSwipeHandler(
                getCompositorViewHolder().getLayoutManager().getTopSwipeHandler());
    }
}
 
源代码7 项目: AndroidChromium   文件: CompositorViewHolder.java
/**
 * @param controlContainer The ControlContainer.
 */
public void setControlContainer(ControlContainer controlContainer) {
    DynamicResourceLoader loader = mCompositorView.getResourceManager() != null
            ? mCompositorView.getResourceManager().getDynamicResourceLoader()
            : null;
    if (loader != null && mControlContainer != null) {
        loader.unregisterResource(R.id.control_container);
    }
    mControlContainer = controlContainer;
    if (loader != null && mControlContainer != null) {
        loader.registerResource(
                R.id.control_container, mControlContainer.getToolbarResourceAdapter());
    }
}
 
源代码8 项目: AndroidChromium   文件: FullScreenActivity.java
@Override
public void finishNativeInitialization() {
    mTab = createTab();
    handleTabContentChanged();
    getTabModelSelector().setTab(mTab);
    mTab.show(TabSelectionType.FROM_NEW);

    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();
}
 
源代码9 项目: 365browser   文件: CompositorViewHolder.java
/**
 * @param controlContainer The ControlContainer.
 */
public void setControlContainer(ControlContainer controlContainer) {
    DynamicResourceLoader loader = mCompositorView.getResourceManager() != null
            ? mCompositorView.getResourceManager().getDynamicResourceLoader()
            : null;
    if (loader != null && mControlContainer != null) {
        loader.unregisterResource(R.id.control_container);
    }
    mControlContainer = controlContainer;
    if (loader != null && mControlContainer != null) {
        loader.registerResource(
                R.id.control_container, mControlContainer.getToolbarResourceAdapter());
    }
}
 
源代码10 项目: 365browser   文件: FullScreenActivity.java
@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();
}
 
源代码11 项目: delion   文件: EmbedContentViewActivity.java
@Override
protected final ChromeFullscreenManager createFullscreenManager(
        ControlContainer controlContainer) {
    return null;
}
 
源代码12 项目: delion   文件: ChromeFullscreenManager.java
/**
 * @return The toolbar control container.
 */
public ControlContainer getControlContainer() {
    return mControlContainer;
}
 
源代码13 项目: delion   文件: WebappActivity.java
@Override
protected final ChromeFullscreenManager createFullscreenManager(
        ControlContainer controlContainer) {
    return new ChromeFullscreenManager(this, controlContainer, getTabModelSelector(),
            getControlContainerHeightResource(), false /* supportsBrowserOverride */);
}
 
源代码14 项目: AndroidChromium   文件: ChromeFullscreenManager.java
/**
 * Initializes the fullscreen manager with the required dependencies.
 *
 * @param controlContainer Container holding the controls (Toolbar).
 * @param modelSelector The tab model selector that will be monitored for tab changes.
 * @param resControlContainerHeight The dimension resource ID for the control container height.
 */
public void initialize(ControlContainer controlContainer, TabModelSelector modelSelector,
        int resControlContainerHeight) {
    ApplicationStatus.registerStateListenerForActivity(this, mActivity);
    ((BaseChromiumApplication) mActivity.getApplication())
            .registerWindowFocusChangedListener(this);

    mTabModelSelector = modelSelector;
    mTabModelObserver = new TabModelSelectorTabModelObserver(mTabModelSelector) {
        @Override
        public void tabClosureCommitted(Tab tab) {
            setTab(mTabModelSelector.getCurrentTab());
        }

        @Override
        public void allTabsClosureCommitted() {
            setTab(mTabModelSelector.getCurrentTab());
        }

        @Override
        public void tabRemoved(Tab tab) {
            setTab(mTabModelSelector.getCurrentTab());
        }

        @Override
        public void didSelectTab(Tab tab, TabSelectionType type, int lastId) {
            setTab(mTabModelSelector.getCurrentTab());
        }

        @Override
        public void didCloseTab(int tabId, boolean incognito) {
            setTab(mTabModelSelector.getCurrentTab());
        }
    };

    assert controlContainer != null;
    mControlContainer = controlContainer;
    Resources resources = mWindow.getContext().getResources();

    int controlContainerHeight = resources.getDimensionPixelSize(resControlContainerHeight);
    if (mIsBottomControls) {
        mTopControlContainerHeight = 0;
        mBottomControlContainerHeight = controlContainerHeight;
    } else {
        mTopControlContainerHeight = controlContainerHeight;
        mBottomControlContainerHeight = 0;
    }

    mRendererTopContentOffset = mTopControlContainerHeight;
    updateControlOffset();
}
 
源代码15 项目: AndroidChromium   文件: ChromeFullscreenManager.java
/**
 * @return The toolbar control container.
 */
public ControlContainer getControlContainer() {
    return mControlContainer;
}
 
源代码16 项目: AndroidChromium   文件: ChromeActivity.java
@SuppressLint("NewApi")
@Override
public void postInflationStartup() {
    super.postInflationStartup();

    mSnackbarManager = new SnackbarManager(this);
    mDataUseSnackbarController = new DataUseSnackbarController(this, getSnackbarManager());

    mAssistStatusHandler = createAssistStatusHandler();
    if (mAssistStatusHandler != null) {
        if (mTabModelSelector != null) {
            mAssistStatusHandler.setTabModelSelector(mTabModelSelector);
        }
        mAssistStatusHandler.updateAssistState();
    }

    // If a user had ALLOW_LOW_END_DEVICE_UI explicitly set to false then we manually override
    // SysUtils.isLowEndDevice() with a switch so that they continue to see the normal UI. This
    // is only the case for grandfathered-in svelte users. We no longer do so for newer users.
    if (!ChromePreferenceManager.getInstance(this).getAllowLowEndDeviceUi()) {
        CommandLine.getInstance().appendSwitch(
                BaseSwitches.DISABLE_LOW_END_DEVICE_MODE);
    }

    AccessibilityManager manager = (AccessibilityManager)
            getBaseContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
    manager.addAccessibilityStateChangeListener(this);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        mTouchExplorationStateChangeListener = new TouchExplorationStateChangeListener() {
            @Override
            public void onTouchExplorationStateChanged(boolean enabled) {
                checkAccessibility();
            }
        };
        manager.addTouchExplorationStateChangeListener(mTouchExplorationStateChangeListener);
    }

    // Make the activity listen to policy change events
    CombinedPolicyProvider.get().addPolicyChangeListener(this);

    // Set up the animation placeholder to be the SurfaceView. This disables the
    // SurfaceView's 'hole' clipping during animations that are notified to the window.
    mWindowAndroid.setAnimationPlaceholderView(mCompositorViewHolder.getSurfaceView());

    // Inform the WindowAndroid of the keyboard accessory view.
    mWindowAndroid.setKeyboardAccessoryView((ViewGroup) findViewById(R.id.keyboard_accessory));
    initializeToolbar();
    initializeTabModels();
    if (!isFinishing() && getFullscreenManager() != null) {
        getFullscreenManager().initialize(
                (ControlContainer) findViewById(R.id.control_container),
                getTabModelSelector(),
                getControlContainerHeightResource());
    }
}
 
源代码17 项目: AndroidChromium   文件: ChromeActivity.java
/**
 * This function builds the {@link CompositorViewHolder}.  Subclasses *must* call
 * super.setContentView() before using {@link #getTabModelSelector()} or
 * {@link #getCompositorViewHolder()}.
 */
@Override
protected final void setContentView() {
    final long begin = SystemClock.elapsedRealtime();
    TraceEvent.begin("onCreate->setContentView()");

    enableHardwareAcceleration();
    setLowEndTheme();
    int controlContainerLayoutId = getControlContainerLayoutId();
    WarmupManager warmupManager = WarmupManager.getInstance();
    if (warmupManager.hasViewHierarchyWithToolbar(controlContainerLayoutId)) {
        View placeHolderView = new View(this);
        setContentView(placeHolderView);
        ViewGroup contentParent = (ViewGroup) placeHolderView.getParent();
        warmupManager.transferViewHierarchyTo(contentParent);
        contentParent.removeView(placeHolderView);
    } else {
        warmupManager.clearViewHierarchy();

        // Allow disk access for the content view and toolbar container setup.
        // On certain android devices this setup sequence results in disk writes outside
        // of our control, so we have to disable StrictMode to work. See crbug.com/639352.
        StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskWrites();
        try {
            setContentView(R.layout.main);
            if (controlContainerLayoutId != NO_CONTROL_CONTAINER) {
                ViewStub toolbarContainerStub =
                        ((ViewStub) findViewById(R.id.control_container_stub));
                toolbarContainerStub.setLayoutResource(controlContainerLayoutId);
                toolbarContainerStub.inflate();
            }

            // It cannot be assumed that the result of toolbarContainerStub.inflate() will be
            // the control container since it may be wrapped in another view.
            ControlContainer controlContainer =
                    (ControlContainer) findViewById(R.id.control_container);

            // Inflate the correct toolbar layout for the device.
            int toolbarLayoutId = getToolbarLayoutId();
            if (toolbarLayoutId != NO_TOOLBAR_LAYOUT && controlContainer != null) {
                controlContainer.initWithToolbar(toolbarLayoutId);
            }
        } finally {
            StrictMode.setThreadPolicy(oldPolicy);
        }
    }
    TraceEvent.end("onCreate->setContentView()");
    mInflateInitialLayoutDurationMs = SystemClock.elapsedRealtime() - begin;

    // Set the status bar color to black by default. This is an optimization for
    // Chrome not to draw under status and navigation bars when we use the default
    // black status bar
    ApiCompatibilityUtils.setStatusBarColor(getWindow(), Color.BLACK);

    ViewGroup rootView = (ViewGroup) getWindow().getDecorView().getRootView();
    mCompositorViewHolder = (CompositorViewHolder) findViewById(R.id.compositor_view_holder);
    mCompositorViewHolder.setRootView(rootView);

    // Setting fitsSystemWindows to false ensures that the root view doesn't consume the insets.
    rootView.setFitsSystemWindows(false);

    // Add a custom view right after the root view that stores the insets to access later.
    // ContentViewCore needs the insets to determine the portion of the screen obscured by
    // non-content displaying things such as the OSK.
    mInsetObserverView = InsetObserverView.create(this);
    rootView.addView(mInsetObserverView, 0);
}
 
源代码18 项目: 365browser   文件: ChromeFullscreenManager.java
/**
 * Initializes the fullscreen manager with the required dependencies.
 *
 * @param controlContainer Container holding the controls (Toolbar).
 * @param modelSelector The tab model selector that will be monitored for tab changes.
 * @param resControlContainerHeight The dimension resource ID for the control container height.
 */
public void initialize(ControlContainer controlContainer, TabModelSelector modelSelector,
        int resControlContainerHeight) {
    ApplicationStatus.registerStateListenerForActivity(this, mActivity);
    ((BaseChromiumApplication) mActivity.getApplication())
            .registerWindowFocusChangedListener(this);

    mTabModelSelector = modelSelector;
    mTabModelObserver = new TabModelSelectorTabModelObserver(mTabModelSelector) {
        @Override
        public void tabClosureCommitted(Tab tab) {
            setTab(mTabModelSelector.getCurrentTab());
        }

        @Override
        public void allTabsClosureCommitted() {
            setTab(mTabModelSelector.getCurrentTab());
        }

        @Override
        public void tabRemoved(Tab tab) {
            setTab(mTabModelSelector.getCurrentTab());
        }

        @Override
        public void didSelectTab(Tab tab, TabSelectionType type, int lastId) {
            setTab(mTabModelSelector.getCurrentTab());
        }

        @Override
        public void didCloseTab(int tabId, boolean incognito) {
            setTab(mTabModelSelector.getCurrentTab());
        }
    };

    assert controlContainer != null;
    mControlContainer = controlContainer;
    Resources resources = mWindow.getContext().getResources();

    int controlContainerHeight = resources.getDimensionPixelSize(resControlContainerHeight);
    if (mIsBottomControls) {
        mTopControlContainerHeight = 0;
        mBottomControlContainerHeight = controlContainerHeight;
    } else {
        mTopControlContainerHeight = controlContainerHeight;
        mBottomControlContainerHeight = 0;
    }

    mRendererTopContentOffset = mTopControlContainerHeight;
    updateControlOffset();
}
 
源代码19 项目: 365browser   文件: ChromeFullscreenManager.java
/**
 * @return The toolbar control container.
 */
public ControlContainer getControlContainer() {
    return mControlContainer;
}
 
源代码20 项目: 365browser   文件: ChromeActivity.java
@SuppressLint("NewApi")
@Override
public void postInflationStartup() {
    super.postInflationStartup();

    mSnackbarManager = new SnackbarManager(this, null);
    mDataUseSnackbarController = new DataUseSnackbarController(this, getSnackbarManager());

    mAssistStatusHandler = createAssistStatusHandler();
    if (mAssistStatusHandler != null) {
        if (mTabModelSelector != null) {
            mAssistStatusHandler.setTabModelSelector(mTabModelSelector);
        }
        mAssistStatusHandler.updateAssistState();
    }

    // If a user had ALLOW_LOW_END_DEVICE_UI explicitly set to false then we manually override
    // SysUtils.isLowEndDevice() with a switch so that they continue to see the normal UI. This
    // is only the case for grandfathered-in svelte users. We no longer do so for newer users.
    if (!ChromePreferenceManager.getInstance().getAllowLowEndDeviceUi()) {
        CommandLine.getInstance().appendSwitch(
                BaseSwitches.DISABLE_LOW_END_DEVICE_MODE);
    }

    AccessibilityManager manager = (AccessibilityManager)
            getBaseContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
    manager.addAccessibilityStateChangeListener(this);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        mTouchExplorationStateChangeListener = new TouchExplorationStateChangeListener() {
            @Override
            public void onTouchExplorationStateChanged(boolean enabled) {
                checkAccessibility();
            }
        };
        manager.addTouchExplorationStateChangeListener(mTouchExplorationStateChangeListener);
    }

    // Make the activity listen to policy change events
    CombinedPolicyProvider.get().addPolicyChangeListener(this);
    mDidAddPolicyChangeListener = true;

    // Set up the animation placeholder to be the SurfaceView. This disables the
    // SurfaceView's 'hole' clipping during animations that are notified to the window.
    getWindowAndroid().setAnimationPlaceholderView(mCompositorViewHolder.getCompositorView());

    // Inform the WindowAndroid of the keyboard accessory view.
    getWindowAndroid().setKeyboardAccessoryView(
            (ViewGroup) findViewById(R.id.keyboard_accessory));
    initializeToolbar();
    initializeTabModels();
    if (!isFinishing() && getFullscreenManager() != null) {
        getFullscreenManager().initialize(
                (ControlContainer) findViewById(R.id.control_container),
                getTabModelSelector(),
                getControlContainerHeightResource());
    }

    if (mBottomSheet != null) {
        mBottomSheet.setTabModelSelector(mTabModelSelector);
        mBottomSheet.setFullscreenManager(mFullscreenManager);

        mFadingBackgroundView = (FadingBackgroundView) findViewById(R.id.fading_focus_target);
        mBottomSheet.addObserver(new EmptyBottomSheetObserver() {
            @Override
            public void onTransitionPeekToHalf(float transitionFraction) {
                mFadingBackgroundView.setViewAlpha(transitionFraction);
            }
        });
        mFadingBackgroundView.addObserver(mBottomSheet);

        mBottomSheetContentController =
                (BottomSheetContentController) ((ViewStub) findViewById(R.id.bottom_nav_stub))
                        .inflate();
        int controlContainerHeight =
                ((ControlContainer) findViewById(R.id.control_container)).getView().getHeight();
        mBottomSheetContentController.init(
                mBottomSheet, controlContainerHeight, mTabModelSelector, this);
    }
    ((BottomContainer) findViewById(R.id.bottom_container)).initialize(mFullscreenManager);
}
 
源代码21 项目: 365browser   文件: ChromeActivity.java
/**
 * This function builds the {@link CompositorViewHolder}.  Subclasses *must* call
 * super.setContentView() before using {@link #getTabModelSelector()} or
 * {@link #getCompositorViewHolder()}.
 */
@Override
protected final void setContentView() {
    final long begin = SystemClock.elapsedRealtime();
    TraceEvent.begin("onCreate->setContentView()");

    enableHardwareAcceleration();
    setLowEndTheme();
    int controlContainerLayoutId = getControlContainerLayoutId();
    WarmupManager warmupManager = WarmupManager.getInstance();
    if (warmupManager.hasViewHierarchyWithToolbar(controlContainerLayoutId)) {
        View placeHolderView = new View(this);
        setContentView(placeHolderView);
        ViewGroup contentParent = (ViewGroup) placeHolderView.getParent();
        warmupManager.transferViewHierarchyTo(contentParent);
        contentParent.removeView(placeHolderView);
    } else {
        warmupManager.clearViewHierarchy();

        // Allow disk access for the content view and toolbar container setup.
        // On certain android devices this setup sequence results in disk writes outside
        // of our control, so we have to disable StrictMode to work. See crbug.com/639352.
        StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskWrites();
        try {
            setContentView(R.layout.main);
            if (controlContainerLayoutId != NO_CONTROL_CONTAINER) {
                ViewStub toolbarContainerStub =
                        ((ViewStub) findViewById(R.id.control_container_stub));

                toolbarContainerStub.setLayoutResource(controlContainerLayoutId);
                View container = toolbarContainerStub.inflate();
            }

            // It cannot be assumed that the result of toolbarContainerStub.inflate() will be
            // the control container since it may be wrapped in another view.
            ControlContainer controlContainer =
                    (ControlContainer) findViewById(R.id.control_container);

            // Inflate the correct toolbar layout for the device.
            int toolbarLayoutId = getToolbarLayoutId();
            if (toolbarLayoutId != NO_TOOLBAR_LAYOUT && controlContainer != null) {
                controlContainer.initWithToolbar(toolbarLayoutId);
            }

            // Get a handle to the bottom sheet if using the bottom control container.
            if (controlContainerLayoutId == R.layout.bottom_control_container) {
                View coordinator = findViewById(R.id.coordinator);
                mBottomSheet = (BottomSheet) findViewById(R.id.bottom_sheet);
                mBottomSheet.init(coordinator, controlContainer.getView(), this);
            }
        } finally {
            StrictMode.setThreadPolicy(oldPolicy);
        }
    }
    TraceEvent.end("onCreate->setContentView()");
    mInflateInitialLayoutDurationMs = SystemClock.elapsedRealtime() - begin;

    // Set the status bar color to black by default. This is an optimization for
    // Chrome not to draw under status and navigation bars when we use the default
    // black status bar
    setStatusBarColor(null, Color.BLACK);

    ViewGroup rootView = (ViewGroup) getWindow().getDecorView().getRootView();
    mCompositorViewHolder = (CompositorViewHolder) findViewById(R.id.compositor_view_holder);
    mCompositorViewHolder.setRootView(rootView);

    // Setting fitsSystemWindows to false ensures that the root view doesn't consume the insets.
    rootView.setFitsSystemWindows(false);

    // Add a custom view right after the root view that stores the insets to access later.
    // ContentViewCore needs the insets to determine the portion of the screen obscured by
    // non-content displaying things such as the OSK.
    mInsetObserverView = InsetObserverView.create(this);
    rootView.addView(mInsetObserverView, 0);
}
 
源代码22 项目: delion   文件: ChromeActivity.java
/**
 * Create a full-screen manager to be used by this activity.
 * @param controlContainer The control container that will be controlled by the full-screen
 *                         manager.
 * @return A {@link ChromeFullscreenManager} instance that's been created.
 */
protected ChromeFullscreenManager createFullscreenManager(ControlContainer controlContainer) {
    return new ChromeFullscreenManager(this, controlContainer, getTabModelSelector(),
            getControlContainerHeightResource(), true);
}