Search in sources :

Example 1 with Layout

use of org.chromium.chrome.browser.compositor.layouts.Layout in project AndroidChromium by JackyAndroid.

the class ChromeTabbedActivity method toggleOverview.

private void toggleOverview() {
    Tab currentTab = getActivityTab();
    ContentViewCore contentViewCore = currentTab != null ? currentTab.getContentViewCore() : null;
    if (!mLayoutManager.overviewVisible()) {
        getCompositorViewHolder().hideKeyboard(new Runnable() {

            @Override
            public void run() {
                mLayoutManager.showOverview(true);
            }
        });
        if (contentViewCore != null) {
            contentViewCore.setAccessibilityState(false);
        }
    } else {
        Layout activeLayout = mLayoutManager.getActiveLayout();
        if (activeLayout instanceof StackLayout) {
            ((StackLayout) activeLayout).commitOutstandingModelState(LayoutManager.time());
        }
        if (getCurrentTabModel().getCount() != 0) {
            // Don't hide overview if current tab stack is empty()
            mLayoutManager.hideOverview(true);
            // hideOverview could change the current tab.  Update the local variables.
            currentTab = getActivityTab();
            contentViewCore = currentTab != null ? currentTab.getContentViewCore() : null;
            if (contentViewCore != null) {
                contentViewCore.setAccessibilityState(true);
            }
        }
    }
}
Also used : Tab(org.chromium.chrome.browser.tab.Tab) ContentViewCore(org.chromium.content.browser.ContentViewCore) FrameLayout(android.widget.FrameLayout) StackLayout(org.chromium.chrome.browser.compositor.layouts.phone.StackLayout) Layout(org.chromium.chrome.browser.compositor.layouts.Layout) StackLayout(org.chromium.chrome.browser.compositor.layouts.phone.StackLayout)

Example 2 with Layout

use of org.chromium.chrome.browser.compositor.layouts.Layout in project AndroidChromium by JackyAndroid.

the class CompositorView method finalizeLayers.

/**
     * Converts the layout into compositor layers. This is to be called on every frame the layout
     * is changing.
     * @param provider               Provides the layout to be rendered.
     * @param forRotation            Whether or not this is a special draw during a rotation.
     */
public void finalizeLayers(final LayoutProvider provider, boolean forRotation, final DrawingInfo progressBarDrawingInfo) {
    TraceEvent.begin("CompositorView:finalizeLayers");
    Layout layout = provider.getActiveLayout();
    if (layout == null || mNativeCompositorView == 0) {
        TraceEvent.end("CompositorView:finalizeLayers");
        return;
    }
    if (!mPreloadedResources) {
        // Attempt to prefetch any necessary resources
        mResourceManager.preloadResources(AndroidResourceType.STATIC, StaticResourcePreloads.getSynchronousResources(getContext()), StaticResourcePreloads.getAsynchronousResources(getContext()));
        mPreloadedResources = true;
    }
    // IMPORTANT: Do not do anything that impacts the compositor layer tree before this line.
    // If you do, you could inadvertently trigger follow up renders.  For further information
    // see dtrainor@, tedchoc@, or klobag@.
    // TODO(jscholler): change 1.0f to dpToPx once the native part is fully supporting dp.
    mRenderHost.getVisibleViewport(mCacheVisibleViewport);
    mCacheVisibleViewport.right = mCacheVisibleViewport.left + mSurfaceWidth;
    mCacheVisibleViewport.bottom = mCacheVisibleViewport.top + mSurfaceHeight;
    provider.getViewportPixel(mCacheViewport);
    nativeSetLayoutViewport(mNativeCompositorView, mCacheViewport.left, mCacheViewport.top, mCacheViewport.width(), mCacheViewport.height(), mCacheVisibleViewport.left, mCacheVisibleViewport.top, 1.0f);
    SceneLayer sceneLayer = provider.getUpdatedActiveSceneLayer(mCacheViewport, mCacheVisibleViewport, mLayerTitleCache, mTabContentManager, mResourceManager, provider.getFullscreenManager());
    nativeSetSceneLayer(mNativeCompositorView, sceneLayer);
    final LayoutTab[] tabs = layout.getLayoutTabsToRender();
    final int tabsCount = tabs != null ? tabs.length : 0;
    mLastLayerCount = tabsCount;
    TabModelImpl.flushActualTabSwitchLatencyMetric();
    nativeFinalizeLayers(mNativeCompositorView);
    TraceEvent.end("CompositorView:finalizeLayers");
}
Also used : SceneLayer(org.chromium.chrome.browser.compositor.scene_layer.SceneLayer) Layout(org.chromium.chrome.browser.compositor.layouts.Layout) LayoutTab(org.chromium.chrome.browser.compositor.layouts.components.LayoutTab)

Aggregations

Layout (org.chromium.chrome.browser.compositor.layouts.Layout)2 FrameLayout (android.widget.FrameLayout)1 LayoutTab (org.chromium.chrome.browser.compositor.layouts.components.LayoutTab)1 StackLayout (org.chromium.chrome.browser.compositor.layouts.phone.StackLayout)1 SceneLayer (org.chromium.chrome.browser.compositor.scene_layer.SceneLayer)1 Tab (org.chromium.chrome.browser.tab.Tab)1 ContentViewCore (org.chromium.content.browser.ContentViewCore)1