/** * Create an RecentTabsManager to be used with RecentTabsPage and RecentTabsRowAdapter. * * @param tab The Tab that is showing this recent tabs page. * @param profile Profile that is associated with the current session. * @param context the Android context this manager will work in. */ public RecentTabsManager(Tab tab, Profile profile, Context context) { mProfile = profile; mTab = tab; mForeignSessionHelper = buildForeignSessionHelper(mProfile); mNewTabPagePrefs = buildNewTabPagePrefs(mProfile); mFaviconHelper = buildFaviconHelper(); mRecentlyClosedBridge = buildRecentlyClosedBridge(mProfile); mSignInManager = SigninManager.get(context); mContext = context; updateRecentlyClosedTabs(); registerForForeignSessionUpdates(); updateForeignSessions(); mForeignSessionHelper.triggerSessionSync(); registerForSignInAndSyncNotifications(); InvalidationController.get(mContext).onRecentTabsPageOpened(); }
/** * Should be called when this object is no longer needed. Performs necessary listener tear down. */ public void destroy() { mIsDestroyed = true; AndroidSyncSettings.unregisterObserver(mContext, this); mSignInManager.removeSignInStateObserver(this); mSignInManager = null; mFaviconHelper.destroy(); mFaviconHelper = null; mRecentlyClosedBridge.destroy(); mRecentlyClosedBridge = null; mForeignSessionHelper.destroy(); mForeignSessionHelper = null; mUpdatedCallback = null; mNewTabPagePrefs.destroy(); mNewTabPagePrefs = null; InvalidationController.get(mContext).onRecentTabsPageClosed(); }