org.chromium.ui.resources.dynamics.DynamicResourceLoader Java Examples

The following examples show how to use org.chromium.ui.resources.dynamics.DynamicResourceLoader. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: LayoutManagerDocumentTabSwitcher.java    From delion with Apache License 2.0 6 votes vote down vote up
@Override
public void init(TabModelSelector selector, TabCreatorManager creator,
        TabContentManager content, ViewGroup androidContentContainer,
        ContextualSearchManagementDelegate contextualSearchDelegate,
        ReaderModeManagerDelegate readerModeManagerDelegate,
        DynamicResourceLoader dynamicResourceLoader) {
    super.init(selector, creator, content, androidContentContainer, contextualSearchDelegate,
            readerModeManagerDelegate, dynamicResourceLoader);

    mTitleCache = mHost.getTitleCache();
    TabModelSelector documentTabSelector = ChromeApplication.getDocumentTabModelSelector();
    mOverviewListLayout.setTabModelSelector(documentTabSelector, content);
    mOverviewLayout.setTabModelSelector(documentTabSelector, content);

    // TODO(changwan): do we really need this?
    startShowing(getDefaultLayout(), false);
}
 
Example #2
Source File: ContextualSearchPeekPromoControl.java    From AndroidChromium with Apache License 2.0 6 votes vote down vote up
/**
 * @param panel             The panel.
 * @param context           The Android Context used to inflate the View.
 * @param container         The container View used to inflate the View.
 * @param resourceLoader    The resource loader that will handle the snapshot capturing.
 */
public ContextualSearchPeekPromoControl(OverlayPanel panel,
                                        Context context,
                                        ViewGroup container,
                                        DynamicResourceLoader resourceLoader) {
    super(panel, R.layout.contextual_search_peek_promo_text_view,
            R.id.contextual_search_peek_promo_text_view, context, container, resourceLoader);

    final float dpToPx = context.getResources().getDisplayMetrics().density;

    mDefaultHeightPx = context.getResources().getDimensionPixelOffset(
            R.dimen.contextual_search_peek_promo_height);
    mPaddingPx = context.getResources().getDimensionPixelOffset(
            R.dimen.contextual_search_peek_promo_padding);

    mRippleMinimumWidthPx = RIPPLE_MINIMUM_WIDTH_DP * dpToPx;
    mRippleMaximumWidthPx = panel.getMaximumWidthPx();
}
 
Example #3
Source File: ContextualSearchPeekPromoControl.java    From delion with Apache License 2.0 6 votes vote down vote up
/**
 * @param panel             The panel.
 * @param context           The Android Context used to inflate the View.
 * @param container         The container View used to inflate the View.
 * @param resourceLoader    The resource loader that will handle the snapshot capturing.
 */
public ContextualSearchPeekPromoControl(OverlayPanel panel,
                                        Context context,
                                        ViewGroup container,
                                        DynamicResourceLoader resourceLoader) {
    super(panel, R.layout.contextual_search_peek_promo_text_view,
            R.id.contextual_search_peek_promo_text_view, context, container, resourceLoader);

    final float dpToPx = context.getResources().getDisplayMetrics().density;

    mDefaultHeightPx = context.getResources().getDimensionPixelOffset(
            R.dimen.contextual_search_peek_promo_height);
    mPaddingPx = context.getResources().getDimensionPixelOffset(
            R.dimen.contextual_search_peek_promo_padding);

    mRippleMinimumWidthPx = RIPPLE_MINIMUM_WIDTH_DP * dpToPx;
    mRippleMaximumWidthPx = panel.getMaximumWidthPx();
}
 
Example #4
Source File: ContextualSearchPeekPromoControl.java    From 365browser with Apache License 2.0 6 votes vote down vote up
/**
 * @param panel             The panel.
 * @param context           The Android Context used to inflate the View.
 * @param container         The container View used to inflate the View.
 * @param resourceLoader    The resource loader that will handle the snapshot capturing.
 */
public ContextualSearchPeekPromoControl(OverlayPanel panel,
                                        Context context,
                                        ViewGroup container,
                                        DynamicResourceLoader resourceLoader) {
    super(panel, R.layout.contextual_search_peek_promo_text_view,
            R.id.contextual_search_peek_promo_text_view, context, container, resourceLoader);

    final float dpToPx = context.getResources().getDisplayMetrics().density;

    mDefaultHeightPx = context.getResources().getDimensionPixelOffset(
            R.dimen.contextual_search_peek_promo_height);
    mPaddingPx = context.getResources().getDimensionPixelOffset(
            R.dimen.contextual_search_peek_promo_padding);

    mRippleMinimumWidthPx = RIPPLE_MINIMUM_WIDTH_DP * dpToPx;
    mRippleMaximumWidthPx = panel.getMaximumWidthPx();
}
 
Example #5
Source File: OverlayPanelManager.java    From AndroidChromium with Apache License 2.0 5 votes vote down vote up
/**
 * Set the resource loader for all OverlayPanels.
 * @param host The OverlayPanel host.
 */
public void setDynamicResourceLoader(DynamicResourceLoader loader) {
    mDynamicResourceLoader = loader;
    for (OverlayPanel p : mPanelSet) {
        p.setDynamicResourceLoader(loader);
    }
}
 
Example #6
Source File: OverlayPanelInflater.java    From AndroidChromium with Apache License 2.0 5 votes vote down vote up
/**
 * @param panel             The panel.
 * @param layoutId          The XML Layout that declares the View.
 * @param viewId            The id of the root View of the Layout.
 * @param context           The Android Context used to inflate the View.
 * @param container         The container View used to inflate the View.
 * @param resourceLoader    The resource loader that will handle the snapshot capturing.
 */
public OverlayPanelInflater(OverlayPanel panel,
                                int layoutId,
                                int viewId,
                                Context context,
                                ViewGroup container,
                                DynamicResourceLoader resourceLoader) {
    super(layoutId, viewId, context, container, resourceLoader);

    mOverlayPanel = panel;
}
 
Example #7
Source File: ReaderModeBarControl.java    From AndroidChromium with Apache License 2.0 5 votes vote down vote up
/**
 * @param panel             The panel.
 * @param context           The Android Context used to inflate the View.
 * @param container         The container View used to inflate the View.
 * @param resourceLoader    The resource loader that will handle the snapshot capturing.
 */
public ReaderModeBarControl(OverlayPanel panel,
                              Context context,
                              ViewGroup container,
                              DynamicResourceLoader resourceLoader) {
    super(panel, R.layout.reader_mode_text_view, R.id.reader_mode_text_view,
            context, container, resourceLoader);
    invalidate();
}
 
Example #8
Source File: ContextualSearchPromoControl.java    From AndroidChromium with Apache License 2.0 5 votes vote down vote up
/**
 * @param panel             The panel.
 * @param context           The Android Context used to inflate the View.
 * @param container         The container View used to inflate the View.
 * @param resourceLoader    The resource loader that will handle the snapshot capturing.
 */
public ContextualSearchPromoControl(OverlayPanel panel,
                                    ContextualSearchPromoHost host,
                                    Context context,
                                    ViewGroup container,
                                    DynamicResourceLoader resourceLoader) {
    super(panel, R.layout.contextual_search_promo_view,
            R.id.contextual_search_promo, context, container, resourceLoader);

    mDpToPx = context.getResources().getDisplayMetrics().density;

    mHost = host;
}
 
Example #9
Source File: ContextualSearchContextControl.java    From AndroidChromium with Apache License 2.0 5 votes vote down vote up
/**
 * @param panel             The panel.
 * @param context           The Android Context used to inflate the View.
 * @param container         The container View used to inflate the View.
 * @param resourceLoader    The resource loader that will handle the snapshot capturing.
 */
public ContextualSearchContextControl(OverlayPanel panel,
                                      Context context,
                                      ViewGroup container,
                                      DynamicResourceLoader resourceLoader) {
    super(panel, R.layout.contextual_search_context_view, R.id.contextual_search_context_view,
            context, container, resourceLoader);
}
 
Example #10
Source File: ContextualSearchTermControl.java    From AndroidChromium with Apache License 2.0 5 votes vote down vote up
/**
 * @param panel             The panel.
 * @param context           The Android Context used to inflate the View.
 * @param container         The container View used to inflate the View.
 * @param resourceLoader    The resource loader that will handle the snapshot capturing.
 */
public ContextualSearchTermControl(OverlayPanel panel,
                                      Context context,
                                      ViewGroup container,
                                      DynamicResourceLoader resourceLoader) {
    super(panel, R.layout.contextual_search_term_view, R.id.contextual_search_term_view,
            context, container, resourceLoader);
}
 
Example #11
Source File: ContextualSearchBarControl.java    From AndroidChromium with Apache License 2.0 5 votes vote down vote up
/**
 * Constructs a new bottom bar control container by inflating views from XML.
 *
 * @param panel     The panel.
 * @param context   The context used to build this view.
 * @param container The parent view for the bottom bar views.
 * @param loader    The resource loader that will handle the snapshot capturing.
 */
public ContextualSearchBarControl(ContextualSearchPanel panel,
                                  Context context,
                                  ViewGroup container,
                                  DynamicResourceLoader loader) {
    mOverlayPanel = panel;
    mCanPromoteToNewTab = panel.canPromoteToNewTab();
    mImageControl = new ContextualSearchImageControl(panel, context);
    mContextControl = new ContextualSearchContextControl(panel, context, container, loader);
    mSearchTermControl = new ContextualSearchTermControl(panel, context, container, loader);
    mCaptionControl = new ContextualSearchCaptionControl(panel, context, container, loader,
            mCanPromoteToNewTab);
    mQuickActionControl = new ContextualSearchQuickActionControl(context, loader);

    mTextLayerMinHeight = context.getResources().getDimension(
            R.dimen.contextual_search_text_layer_min_height);
    mTermCaptionSpacing = context.getResources().getDimension(
            R.dimen.contextual_search_term_caption_spacing);

    // Divider line values.
    mDividerLineWidth = context.getResources().getDimension(
            R.dimen.contextual_search_divider_line_width);
    mDividerLineHeight = context.getResources().getDimension(
            R.dimen.contextual_search_divider_line_height);
    mDividerLineColor = ApiCompatibilityUtils.getColor(context.getResources(),
            R.color.light_grey);
    mEndButtonWidth = context.getResources().getDimension(
            R.dimen.contextual_search_end_button_width);
    mDpToPx = context.getResources().getDisplayMetrics().density;
}
 
Example #12
Source File: ContextualSearchQuickActionControl.java    From AndroidChromium with Apache License 2.0 5 votes vote down vote up
/**
 * @param context The Android Context used to inflate the View.
 * @param resourceLoader The resource loader that will handle the snapshot capturing.
 */
public ContextualSearchQuickActionControl(Context context,
        DynamicResourceLoader resourceLoader) {
    super(R.layout.contextual_search_quick_action_icon_view,
            R.id.contextual_search_quick_action_icon_view,
            context, null, resourceLoader);
    mContext = context;
}
 
Example #13
Source File: ContextualSearchBarControl.java    From 365browser with Apache License 2.0 5 votes vote down vote up
/**
 * Constructs a new bottom bar control container by inflating views from XML.
 *
 * @param panel     The panel.
 * @param context   The context used to build this view.
 * @param container The parent view for the bottom bar views.
 * @param loader    The resource loader that will handle the snapshot capturing.
 */
public ContextualSearchBarControl(ContextualSearchPanel panel,
                                  Context context,
                                  ViewGroup container,
                                  DynamicResourceLoader loader) {
    mOverlayPanel = panel;
    mCanPromoteToNewTab = panel.canPromoteToNewTab();
    mImageControl = new ContextualSearchImageControl(panel, context);
    mContextControl = new ContextualSearchContextControl(panel, context, container, loader);
    mSearchTermControl = new ContextualSearchTermControl(panel, context, container, loader);
    mCaptionControl = new ContextualSearchCaptionControl(panel, context, container, loader,
            mCanPromoteToNewTab);
    mQuickActionControl = new ContextualSearchQuickActionControl(context, loader);

    mTextLayerMinHeight = context.getResources().getDimension(
            R.dimen.contextual_search_text_layer_min_height);
    mTermCaptionSpacing = context.getResources().getDimension(
            R.dimen.contextual_search_term_caption_spacing);

    // Divider line values.
    mDividerLineWidth = context.getResources().getDimension(
            R.dimen.contextual_search_divider_line_width);
    mDividerLineHeight = context.getResources().getDimension(
            R.dimen.contextual_search_divider_line_height);
    mDividerLineColor = ApiCompatibilityUtils.getColor(context.getResources(),
            R.color.light_grey);
    mEndButtonWidth = context.getResources().getDimension(
            R.dimen.contextual_search_end_button_width);
    mDpToPx = context.getResources().getDisplayMetrics().density;
}
 
Example #14
Source File: ContextualSearchTermControl.java    From 365browser with Apache License 2.0 5 votes vote down vote up
/**
 * @param panel             The panel.
 * @param context           The Android Context used to inflate the View.
 * @param container         The container View used to inflate the View.
 * @param resourceLoader    The resource loader that will handle the snapshot capturing.
 */
public ContextualSearchTermControl(OverlayPanel panel,
                                      Context context,
                                      ViewGroup container,
                                      DynamicResourceLoader resourceLoader) {
    super(panel, R.layout.contextual_search_term_view, R.id.contextual_search_term_view,
            context, container, resourceLoader);
}
 
Example #15
Source File: ContextualSearchContextControl.java    From 365browser with Apache License 2.0 5 votes vote down vote up
/**
 * @param panel             The panel.
 * @param context           The Android Context used to inflate the View.
 * @param container         The container View used to inflate the View.
 * @param resourceLoader    The resource loader that will handle the snapshot capturing.
 */
public ContextualSearchContextControl(OverlayPanel panel,
                                      Context context,
                                      ViewGroup container,
                                      DynamicResourceLoader resourceLoader) {
    super(panel, R.layout.contextual_search_context_view, R.id.contextual_search_context_view,
            context, container, resourceLoader);
}
 
Example #16
Source File: CustomTabLayoutManager.java    From AndroidChromium with Apache License 2.0 5 votes vote down vote up
@Override
public void init(TabModelSelector selector, TabCreatorManager creator,
        TabContentManager content, ViewGroup androidContentContainer,
        ContextualSearchManagementDelegate contextualSearchDelegate,
        ReaderModeManagerDelegate readerModeDelegate,
        DynamicResourceLoader dynamicResourceLoader) {
    super.init(selector, creator, content, androidContentContainer, contextualSearchDelegate,
            readerModeDelegate, dynamicResourceLoader);
    for (TabModel model : selector.getModels()) model.addObserver(mTabModelObserver);
}
 
Example #17
Source File: CompositorViewHolder.java    From 365browser with Apache License 2.0 5 votes vote down vote up
/**
 * @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());
    }
}
 
Example #18
Source File: ContextualSearchPromoControl.java    From 365browser with Apache License 2.0 5 votes vote down vote up
/**
 * @param panel             The panel.
 * @param context           The Android Context used to inflate the View.
 * @param container         The container View used to inflate the View.
 * @param resourceLoader    The resource loader that will handle the snapshot capturing.
 */
public ContextualSearchPromoControl(OverlayPanel panel,
                                    ContextualSearchPromoHost host,
                                    Context context,
                                    ViewGroup container,
                                    DynamicResourceLoader resourceLoader) {
    super(panel, R.layout.contextual_search_promo_view,
            R.id.contextual_search_promo, context, container, resourceLoader);

    mDpToPx = context.getResources().getDisplayMetrics().density;

    mHost = host;
}
 
Example #19
Source File: LayoutManagerChromePhone.java    From 365browser with Apache License 2.0 5 votes vote down vote up
@Override
public void init(TabModelSelector selector, TabCreatorManager creator,
        TabContentManager content, ViewGroup androidContentContainer,
        ContextualSearchManagementDelegate contextualSearchDelegate,
        ReaderModeManagerDelegate readerModeDelegate,
        DynamicResourceLoader dynamicResourceLoader) {
    // Initialize Layouts
    mSimpleAnimationLayout.setTabModelSelector(selector, content);

    super.init(selector, creator, content, androidContentContainer, contextualSearchDelegate,
            readerModeDelegate, dynamicResourceLoader);
}
 
Example #20
Source File: LayoutManager.java    From 365browser with Apache License 2.0 5 votes vote down vote up
/**
 * Initializes the {@link LayoutManager}.  Must be called before using this object.
 * @param selector                 A {@link TabModelSelector} instance.
 * @param creator                  A {@link TabCreatorManager} instance.
 * @param content                  A {@link TabContentManager} instance.
 * @param androidContentContainer  A {@link ViewGroup} for Android views to be bound to.
 * @param contextualSearchDelegate A {@link ContextualSearchDelegate} instance.
 * @param readerModeDelegate       A {@link ReaderModeManagerDelegate} instance.
 * @param dynamicResourceLoader    A {@link DynamicResourceLoader} instance.
 */
public void init(TabModelSelector selector, TabCreatorManager creator,
        TabContentManager content, ViewGroup androidContentContainer,
        ContextualSearchManagementDelegate contextualSearchDelegate,
        ReaderModeManagerDelegate readerModeDelegate,
        DynamicResourceLoader dynamicResourceLoader) {
    mTabModelSelector = selector;
    mContentContainer = androidContentContainer;

    if (mNextActiveLayout != null) startShowing(mNextActiveLayout, true);

    updateLayoutForTabModelSelector();
}
 
Example #21
Source File: OverlayPanelInflater.java    From 365browser with Apache License 2.0 5 votes vote down vote up
/**
 * @param panel             The panel.
 * @param layoutId          The XML Layout that declares the View.
 * @param viewId            The id of the root View of the Layout.
 * @param context           The Android Context used to inflate the View.
 * @param container         The container View used to inflate the View.
 * @param resourceLoader    The resource loader that will handle the snapshot capturing.
 */
public OverlayPanelInflater(OverlayPanel panel,
                                int layoutId,
                                int viewId,
                                Context context,
                                ViewGroup container,
                                DynamicResourceLoader resourceLoader) {
    super(layoutId, viewId, context, container, resourceLoader);

    mOverlayPanel = panel;
}
 
Example #22
Source File: ReaderModeBarControl.java    From 365browser with Apache License 2.0 5 votes vote down vote up
/**
 * @param panel             The panel.
 * @param context           The Android Context used to inflate the View.
 * @param container         The container View used to inflate the View.
 * @param resourceLoader    The resource loader that will handle the snapshot capturing.
 */
public ReaderModeBarControl(OverlayPanel panel,
                              Context context,
                              ViewGroup container,
                              DynamicResourceLoader resourceLoader) {
    super(panel, R.layout.reader_mode_text_view, R.id.reader_mode_text_view,
            context, container, resourceLoader);
    invalidate();
}
 
Example #23
Source File: OverlayPanelManager.java    From 365browser with Apache License 2.0 5 votes vote down vote up
/**
 * Set the resource loader for all OverlayPanels.
 * @param host The OverlayPanel host.
 */
public void setDynamicResourceLoader(DynamicResourceLoader loader) {
    mDynamicResourceLoader = loader;
    for (OverlayPanel p : mPanelSet) {
        p.setDynamicResourceLoader(loader);
    }
}
 
Example #24
Source File: ContextualSearchBarControl.java    From delion with Apache License 2.0 5 votes vote down vote up
/**
 * Constructs a new bottom bar control container by inflating views from XML.
 *
 * @param panel     The panel.
 * @param context   The context used to build this view.
 * @param container The parent view for the bottom bar views.
 * @param loader    The resource loader that will handle the snapshot capturing.
 */
public ContextualSearchBarControl(OverlayPanel panel,
                                  Context context,
                                  ViewGroup container,
                                  DynamicResourceLoader loader) {
    mOverlayPanel = panel;
    mContextControl = new ContextualSearchContextControl(panel, context, container, loader);
    mSearchTermControl = new ContextualSearchTermControl(panel, context, container, loader);
    mCaptionControl = new ContextualSearchCaptionControl(panel, context, container, loader);
}
 
Example #25
Source File: CompositorViewHolder.java    From delion with Apache License 2.0 5 votes vote down vote up
/**
 * @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());
    }
}
 
Example #26
Source File: LayoutManagerChromePhone.java    From delion with Apache License 2.0 5 votes vote down vote up
@Override
public void init(TabModelSelector selector, TabCreatorManager creator,
        TabContentManager content, ViewGroup androidContentContainer,
        ContextualSearchManagementDelegate contextualSearchDelegate,
        ReaderModeManagerDelegate readerModeDelegate,
        DynamicResourceLoader dynamicResourceLoader) {
    // Initialize Layouts
    mSimpleAnimationLayout.setTabModelSelector(selector, content);

    super.init(selector, creator, content, androidContentContainer, contextualSearchDelegate,
            readerModeDelegate, dynamicResourceLoader);
}
 
Example #27
Source File: LayoutManager.java    From delion with Apache License 2.0 5 votes vote down vote up
/**
 * Initializes the {@link LayoutManager}.  Must be called before using this object.
 * @param selector                 A {@link TabModelSelector} instance.
 * @param creator                  A {@link TabCreatorManager} instance.
 * @param content                  A {@link TabContentManager} instance.
 * @param androidContentContainer  A {@link ViewGroup} for Android views to be bound to.
 * @param contextualSearchDelegate A {@link ContextualSearchDelegate} instance.
 * @param readerModeDelegate       A {@link ReaderModeManagerDelegate} instance.
 * @param dynamicResourceLoader    A {@link DynamicResourceLoader} instance.
 */
public void init(TabModelSelector selector, TabCreatorManager creator,
        TabContentManager content, ViewGroup androidContentContainer,
        ContextualSearchManagementDelegate contextualSearchDelegate,
        ReaderModeManagerDelegate readerModeDelegate,
        DynamicResourceLoader dynamicResourceLoader) {
    mTabModelSelector = selector;
    mContentContainer = androidContentContainer;

    if (mNextActiveLayout != null) startShowing(mNextActiveLayout, true);

    updateLayoutForTabModelSelector();
}
 
Example #28
Source File: OverlayPanelInflater.java    From delion with Apache License 2.0 5 votes vote down vote up
/**
 * @param panel             The panel.
 * @param layoutId          The XML Layout that declares the View.
 * @param viewId            The id of the root View of the Layout.
 * @param context           The Android Context used to inflate the View.
 * @param container         The container View used to inflate the View.
 * @param resourceLoader    The resource loader that will handle the snapshot capturing.
 */
public OverlayPanelInflater(OverlayPanel panel,
                                int layoutId,
                                int viewId,
                                Context context,
                                ViewGroup container,
                                DynamicResourceLoader resourceLoader) {
    super(layoutId, viewId, context, container, resourceLoader);

    mOverlayPanel = panel;
}
 
Example #29
Source File: OverlayPanelManager.java    From delion with Apache License 2.0 5 votes vote down vote up
/**
 * Set the resource loader for all OverlayPanels.
 * @param host The OverlayPanel host.
 */
public void setDynamicResourceLoader(DynamicResourceLoader loader) {
    mDynamicResourceLoader = loader;
    for (OverlayPanel p : mPanelSet) {
        p.setDynamicResourceLoader(loader);
    }
}
 
Example #30
Source File: ReaderModeBarControl.java    From delion with Apache License 2.0 5 votes vote down vote up
/**
 * @param panel             The panel.
 * @param context           The Android Context used to inflate the View.
 * @param container         The container View used to inflate the View.
 * @param resourceLoader    The resource loader that will handle the snapshot capturing.
 */
public ReaderModeBarControl(OverlayPanel panel,
                              Context context,
                              ViewGroup container,
                              DynamicResourceLoader resourceLoader) {
    super(panel, R.layout.reader_mode_text_view, R.id.reader_mode_text_view,
            context, container, resourceLoader);
    invalidate();
}