use of org.chromium.chrome.browser.widget.findinpage.FindToolbarObserver in project AndroidChromium by JackyAndroid.
the class ContextualSearchManager method setFindToolbarManager.
/**
* Sets the {@link FindToolbarManager} and attaches an observer that dismisses the Contextual
* Search panel when the find toolbar is shown.
*
* @param findToolbarManager The {@link FindToolbarManager} for the current activity.
*/
public void setFindToolbarManager(FindToolbarManager findToolbarManager) {
if (mFindToolbarManager != null) {
mFindToolbarManager.removeObserver(mFindToolbarObserver);
}
mFindToolbarManager = findToolbarManager;
if (mFindToolbarObserver == null) {
mFindToolbarObserver = new FindToolbarObserver() {
@Override
public void onFindToolbarShown() {
hideContextualSearch(StateChangeReason.UNKNOWN);
}
};
}
mFindToolbarManager.addObserver(mFindToolbarObserver);
}
use of org.chromium.chrome.browser.widget.findinpage.FindToolbarObserver in project AndroidChromium by JackyAndroid.
the class ToolbarManager method initializeWithNative.
/**
* Initialize the manager with the components that had native initialization dependencies.
* <p>
* Calling this must occur after the native library have completely loaded.
*
* @param tabModelSelector The selector that handles tab management.
* @param fullscreenManager The manager in charge of interacting with the fullscreen feature.
* @param findToolbarManager The manager for find in page.
* @param overviewModeBehavior The overview mode manager.
* @param layoutDriver A {@link LayoutManager} instance used to watch for scene changes.
*/
public void initializeWithNative(TabModelSelector tabModelSelector, ChromeFullscreenManager fullscreenManager, final FindToolbarManager findToolbarManager, final OverviewModeBehavior overviewModeBehavior, final LayoutManager layoutDriver, OnClickListener tabSwitcherClickHandler, OnClickListener newTabClickHandler, OnClickListener bookmarkClickHandler, OnClickListener customTabsBackClickHandler) {
assert !mInitializedWithNative;
mTabModelSelector = tabModelSelector;
mToolbar.getLocationBar().updateVisualsForState();
mToolbar.getLocationBar().setUrlToPageUrl();
mToolbar.setFullscreenManager(fullscreenManager);
mToolbar.setOnTabSwitcherClickHandler(tabSwitcherClickHandler);
mToolbar.setOnNewTabClickHandler(newTabClickHandler);
mToolbar.setBookmarkClickHandler(bookmarkClickHandler);
mToolbar.setCustomTabCloseClickHandler(customTabsBackClickHandler);
mToolbar.setLayoutUpdateHost(layoutDriver);
mToolbarModel.initializeWithNative();
mToolbar.addOnAttachStateChangeListener(new OnAttachStateChangeListener() {
@Override
public void onViewDetachedFromWindow(View v) {
Context context = mToolbar.getContext();
HomepageManager.getInstance(context).removeListener(mHomepageStateListener);
mTabModelSelector.removeObserver(mTabModelSelectorObserver);
for (TabModel model : mTabModelSelector.getModels()) {
model.removeObserver(mTabModelObserver);
}
if (mBookmarkBridge != null) {
mBookmarkBridge.destroy();
mBookmarkBridge = null;
}
if (mTemplateUrlObserver != null) {
TemplateUrlService.getInstance().removeObserver(mTemplateUrlObserver);
mTemplateUrlObserver = null;
}
// Remove all previously attached observers from the FindToolbarManager.
if (mFindToolbarManager != null) {
for (FindToolbarObserver observer : mFindToolbarObservers) {
mFindToolbarManager.removeObserver(observer);
}
}
if (overviewModeBehavior != null) {
overviewModeBehavior.removeOverviewModeObserver(mOverviewModeObserver);
}
if (layoutDriver != null) {
layoutDriver.removeSceneChangeObserver(mSceneChangeObserver);
}
}
@Override
public void onViewAttachedToWindow(View v) {
// As we have only just registered for notifications, any that were sent prior to
// this may have been missed.
// Calling refreshSelectedTab in case we missed the initial selection notification.
refreshSelectedTab();
}
});
mFindToolbarManager = findToolbarManager;
assert fullscreenManager != null;
mFullscreenManager = fullscreenManager;
mNativeLibraryReady = false;
// Add observers to the FindToolbarManager.
if (mFindToolbarManager != null) {
for (FindToolbarObserver observer : mFindToolbarObservers) {
mFindToolbarManager.addObserver(observer);
}
}
if (overviewModeBehavior != null) {
overviewModeBehavior.addOverviewModeObserver(mOverviewModeObserver);
}
if (layoutDriver != null)
layoutDriver.addSceneChangeObserver(mSceneChangeObserver);
onNativeLibraryReady();
mInitializedWithNative = true;
}
use of org.chromium.chrome.browser.widget.findinpage.FindToolbarObserver in project AndroidChromium by JackyAndroid.
the class ToolbarManager method initializeWithNative.
/**
* Initialize the manager with the components that had native initialization dependencies.
* <p>
* Calling this must occur after the native library have completely loaded.
*
* @param tabModelSelector The selector that handles tab management.
* @param controlsVisibilityDelegate The delegate to handle visibility of browser controls.
* @param findToolbarManager The manager for find in page.
* @param overviewModeBehavior The overview mode manager.
* @param layoutDriver A {@link LayoutManager} instance used to watch for scene
* changes.
*/
public void initializeWithNative(TabModelSelector tabModelSelector, BrowserStateBrowserControlsVisibilityDelegate controlsVisibilityDelegate, final FindToolbarManager findToolbarManager, final OverviewModeBehavior overviewModeBehavior, final LayoutManager layoutDriver, OnClickListener tabSwitcherClickHandler, OnClickListener newTabClickHandler, OnClickListener bookmarkClickHandler, OnClickListener customTabsBackClickHandler) {
assert !mInitializedWithNative;
mTabModelSelector = tabModelSelector;
mToolbar.getLocationBar().updateVisualsForState();
mToolbar.getLocationBar().setUrlToPageUrl();
mToolbar.setBrowserControlsVisibilityDelegate(controlsVisibilityDelegate);
mToolbar.setOnTabSwitcherClickHandler(tabSwitcherClickHandler);
mToolbar.setOnNewTabClickHandler(newTabClickHandler);
mToolbar.setBookmarkClickHandler(bookmarkClickHandler);
mToolbar.setCustomTabCloseClickHandler(customTabsBackClickHandler);
mToolbar.setLayoutUpdateHost(layoutDriver);
mToolbarModel.initializeWithNative();
mToolbar.addOnAttachStateChangeListener(new OnAttachStateChangeListener() {
@Override
public void onViewDetachedFromWindow(View v) {
Context context = mToolbar.getContext();
HomepageManager.getInstance(context).removeListener(mHomepageStateListener);
mTabModelSelector.removeObserver(mTabModelSelectorObserver);
for (TabModel model : mTabModelSelector.getModels()) {
model.removeObserver(mTabModelObserver);
}
if (mBookmarkBridge != null) {
mBookmarkBridge.destroy();
mBookmarkBridge = null;
}
if (mTemplateUrlObserver != null) {
TemplateUrlService.getInstance().removeObserver(mTemplateUrlObserver);
mTemplateUrlObserver = null;
}
// Remove all previously attached observers from the FindToolbarManager.
if (mFindToolbarManager != null) {
for (FindToolbarObserver observer : mFindToolbarObservers) {
mFindToolbarManager.removeObserver(observer);
}
}
if (overviewModeBehavior != null) {
overviewModeBehavior.removeOverviewModeObserver(mOverviewModeObserver);
}
if (layoutDriver != null) {
layoutDriver.removeSceneChangeObserver(mSceneChangeObserver);
}
}
@Override
public void onViewAttachedToWindow(View v) {
// As we have only just registered for notifications, any that were sent prior to
// this may have been missed.
// Calling refreshSelectedTab in case we missed the initial selection notification.
refreshSelectedTab();
}
});
mFindToolbarManager = findToolbarManager;
assert controlsVisibilityDelegate != null;
mControlsVisibilityDelegate = controlsVisibilityDelegate;
mNativeLibraryReady = false;
// Add observers to the FindToolbarManager.
if (mFindToolbarManager != null) {
for (FindToolbarObserver observer : mFindToolbarObservers) {
mFindToolbarManager.addObserver(observer);
}
}
if (overviewModeBehavior != null) {
overviewModeBehavior.addOverviewModeObserver(mOverviewModeObserver);
}
if (layoutDriver != null)
layoutDriver.addSceneChangeObserver(mSceneChangeObserver);
onNativeLibraryReady();
mInitializedWithNative = true;
}
Aggregations