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

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

源代码1 项目: delion   文件: AutoSigninSnackbarController.java
/**
 * Displays Auto sign-in snackbar, which communicates to the users that they
 * were signed in to the web site.
 */
@CalledByNative
private static void showSnackbar(Tab tab, String text) {
    SnackbarManager snackbarManager = tab.getSnackbarManager();
    if (snackbarManager == null) return;
    AutoSigninSnackbarController snackbarController =
            new AutoSigninSnackbarController(snackbarManager, tab);
    Snackbar snackbar = Snackbar.make(text, snackbarController, Snackbar.TYPE_NOTIFICATION,
            Snackbar.UMA_AUTO_LOGIN);
    Resources resources = tab.getWindowAndroid().getActivity().get().getResources();
    int backgroundColor = ApiCompatibilityUtils.getColor(resources, R.color.light_active_color);
    Bitmap icon = BitmapFactory.decodeResource(
            resources, R.drawable.account_management_no_picture);
    snackbar.setSingleLine(false).setBackgroundColor(backgroundColor).setProfileImage(icon);
    snackbarManager.showSnackbar(snackbar);
}
 
/**
 * Displays Auto sign-in snackbar, which communicates to the users that they
 * were signed in to the web site.
 */
@CalledByNative
private static void showSnackbar(Tab tab, String text) {
    SnackbarManager snackbarManager = tab.getSnackbarManager();
    if (snackbarManager == null) return;
    AutoSigninSnackbarController snackbarController =
            new AutoSigninSnackbarController(snackbarManager, tab);
    Snackbar snackbar = Snackbar.make(text, snackbarController, Snackbar.TYPE_NOTIFICATION,
            Snackbar.UMA_AUTO_LOGIN);
    Resources resources = tab.getWindowAndroid().getActivity().get().getResources();
    int backgroundColor = ApiCompatibilityUtils.getColor(resources, R.color.light_active_color);
    Bitmap icon = BitmapFactory.decodeResource(
            resources, R.drawable.account_management_no_picture);
    snackbar.setSingleLine(false).setBackgroundColor(backgroundColor).setProfileImage(icon);
    snackbarManager.showSnackbar(snackbar);
}
 
源代码3 项目: 365browser   文件: AutoSigninSnackbarController.java
/**
 * Displays Auto sign-in snackbar, which communicates to the users that they
 * were signed in to the web site.
 */
@CalledByNative
private static void showSnackbar(Tab tab, String text) {
    SnackbarManager snackbarManager = tab.getSnackbarManager();
    if (snackbarManager == null) return;
    AutoSigninSnackbarController snackbarController =
            new AutoSigninSnackbarController(snackbarManager, tab);
    Snackbar snackbar = Snackbar.make(text, snackbarController, Snackbar.TYPE_NOTIFICATION,
            Snackbar.UMA_AUTO_LOGIN);
    Resources resources = tab.getWindowAndroid().getActivity().get().getResources();
    int backgroundColor = ApiCompatibilityUtils.getColor(resources, R.color.light_active_color);
    Bitmap icon = BitmapFactory.decodeResource(
            resources, R.drawable.account_management_no_picture);
    snackbar.setSingleLine(false).setBackgroundColor(backgroundColor).setProfileImage(icon);
    snackbarManager.showSnackbar(snackbar);
}
 
源代码4 项目: 365browser   文件: OfflinePageTabObserver.java
/**
 * Builds a new OfflinePageTabObserver.
 * @param tabModelSelector Tab model selector for the activity.
 * @param snackbarManager The snackbar manager to show and dismiss snackbars.
 * @param snackbarController Controller to use to build the snackbar.
 */
OfflinePageTabObserver(TabModelSelector tabModelSelector, SnackbarManager snackbarManager,
        SnackbarController snackbarController) {
    mSnackbarManager = snackbarManager;
    mSnackbarController = snackbarController;
    mTabModelSelector = tabModelSelector;
    mTabModelObserver = new TabModelSelectorTabModelObserver(tabModelSelector) {
        @Override
        public void tabRemoved(Tab tab) {
            Log.d(TAG, "tabRemoved");
            stopObservingTab(tab);
            mSnackbarManager.dismissSnackbars(mSnackbarController);
        }
    };
    // The first time observer is created snackbar has net yet been shown.
    mIsObservingNetworkChanges = false;
}
 
源代码5 项目: delion   文件: BookmarkUndoController.java
/**
 * Creates an instance of {@link BookmarkUndoController}.
 * @param context The {@link Context} in which snackbar is shown.
 * @param model The bookmark model.
 * @param snackbarManager SnackManager passed from activity.
 */
public BookmarkUndoController(Context context, BookmarkModel model,
        SnackbarManager snackbarManager) {
    mBookmarkModel = model;
    mBookmarkModel.addDeleteObserver(this);
    mSnackbarManager = snackbarManager;
    mContext = context;
}
 
源代码6 项目: delion   文件: OfflinePageTabObserver.java
/**
 * Builds a new OfflinePageTabObserver.
 * @param context Android context.
 * @param snackbarManager The snackbar manager to show and dismiss snackbars.
 * @param snackbarController Controller to use to build the snackbar.
 */
OfflinePageTabObserver(Context context, SnackbarManager snackbarManager,
        SnackbarController snackbarController) {
    mContext = context;
    mSnackbarManager = snackbarManager;
    mSnackbarController = snackbarController;

    // The first time observer is created snackbar has net yet been shown.
    mWasSnackbarShown = false;
    mIsObservingNetworkChanges = false;
}
 
源代码7 项目: delion   文件: OfflinePageUtils.java
/**
 * Shows the "reload" snackbar for the given tab.
 * @param activity The activity owning the tab.
 * @param snackbarController Class to show the snackbar.
 */
public static void showReloadSnackbar(Context context, SnackbarManager snackbarManager,
        final SnackbarController snackbarController, int tabId) {
    if (tabId == Tab.INVALID_TAB_ID) return;

    Log.d(TAG, "showReloadSnackbar called with controller " + snackbarController);
    Snackbar snackbar =
            Snackbar.make(context.getString(R.string.offline_pages_viewing_offline_page),
                    snackbarController, Snackbar.TYPE_ACTION, Snackbar.UMA_OFFLINE_PAGE_RELOAD)
                    .setSingleLine(false).setAction(context.getString(R.string.reload), tabId);
    snackbar.setDuration(SNACKBAR_DURATION);
    snackbarManager.showSnackbar(snackbar);
}
 
源代码8 项目: delion   文件: DownloadSnackbarController.java
public SnackbarManager getSnackbarManager() {
    Activity activity = ApplicationStatus.getLastTrackedFocusedActivity();
    if (activity != null && ApplicationStatus.hasVisibleActivities()
            && activity instanceof SnackbarManager.SnackbarManageable) {
        return ((SnackbarManager.SnackbarManageable) activity).getSnackbarManager();
    }
    return null;
}
 
源代码9 项目: delion   文件: GeolocationSnackbarController.java
/**
 * Shows the geolocation snackbar if it hasn't already been shown and the geolocation snackbar
 * is currently relevant: i.e. the default search engine is Google, location is enabled
 * for Chrome, the tab is not incognito, etc.
 *
 * @param snackbarManager The SnackbarManager used to show the snackbar.
 * @param view Any view that's attached to the view hierarchy.
 * @param isIncognito Whether the currently visible tab is incognito.
 * @param delayMs The delay in ms before the snackbar should be shown. This is intended to
 *                give the keyboard time to animate in.
 */
public static void maybeShowSnackbar(final SnackbarManager snackbarManager, View view,
        boolean isIncognito, int delayMs) {
    final Context context = view.getContext();
    if (getGeolocationSnackbarShown(context)) return;

    // If in incognito mode, don't show the snackbar now, but maybe show it later.
    if (isIncognito) return;

    if (neverShowSnackbar(context)) {
        setGeolocationSnackbarShown(context);
        return;
    }

    Uri searchUri = Uri.parse(TemplateUrlService.getInstance().getUrlForSearchQuery("foo"));
    TypefaceSpan robotoMediumSpan = new TypefaceSpan("sans-serif-medium");
    String messageWithoutSpans = context.getResources().getString(
            R.string.omnibox_geolocation_disclosure, "<b>" + searchUri.getHost() + "</b>");
    SpannableString message = SpanApplier.applySpans(messageWithoutSpans,
            new SpanInfo("<b>", "</b>", robotoMediumSpan));
    String settings = context.getResources().getString(R.string.preferences);
    int durationMs = DeviceClassManager.isAccessibilityModeEnabled(view.getContext())
            ? ACCESSIBILITY_SNACKBAR_DURATION_MS : SNACKBAR_DURATION_MS;
    final GeolocationSnackbarController controller = new GeolocationSnackbarController();
    final Snackbar snackbar = Snackbar
            .make(message, controller, Snackbar.TYPE_ACTION, Snackbar.UMA_OMNIBOX_GEOLOCATION)
            .setAction(settings, view)
            .setSingleLine(false)
            .setDuration(durationMs);

    view.postDelayed(new Runnable() {
        @Override
        public void run() {
            snackbarManager.dismissSnackbars(controller);
            snackbarManager.showSnackbar(snackbar);
            setGeolocationSnackbarShown(context);
        }
    }, delayMs);
}
 
源代码10 项目: AndroidChromium   文件: BookmarkUndoController.java
/**
 * Creates an instance of {@link BookmarkUndoController}.
 * @param context The {@link Context} in which snackbar is shown.
 * @param model The bookmark model.
 * @param snackbarManager SnackManager passed from activity.
 */
public BookmarkUndoController(Context context, BookmarkModel model,
        SnackbarManager snackbarManager) {
    mBookmarkModel = model;
    mBookmarkModel.addDeleteObserver(this);
    mSnackbarManager = snackbarManager;
    mContext = context;
}
 
源代码11 项目: AndroidChromium   文件: OfflinePageTabObserver.java
static void init(Context context, SnackbarManager manager, SnackbarController controller) {
    if (sInstance == null) {
        sInstance = new OfflinePageTabObserver(context, manager, controller);
        return;
    }
    sInstance.reinitialize(context, manager, controller);
}
 
源代码12 项目: AndroidChromium   文件: OfflinePageTabObserver.java
/**
 * Builds a new OfflinePageTabObserver.
 * @param context Android context.
 * @param snackbarManager The snackbar manager to show and dismiss snackbars.
 * @param snackbarController Controller to use to build the snackbar.
 */
OfflinePageTabObserver(Context context, SnackbarManager snackbarManager,
        SnackbarController snackbarController) {
    reinitialize(context, snackbarManager, snackbarController);

    // The first time observer is created snackbar has net yet been shown.
    mIsObservingNetworkChanges = false;
}
 
源代码13 项目: AndroidChromium   文件: OfflinePageTabObserver.java
void reinitialize(Context context, SnackbarManager manager, SnackbarController controller) {
    // TODO(fgorski): Work out if we need to also update network changes observer with the
    // context change.
    mContext = context;
    mSnackbarManager = manager;
    mSnackbarController = controller;
}
 
源代码14 项目: AndroidChromium   文件: OfflinePageUtils.java
/**
 * Shows the "reload" snackbar for the given tab.
 * @param activity The activity owning the tab.
 * @param snackbarController Class to show the snackbar.
 */
public static void showReloadSnackbar(Context context, SnackbarManager snackbarManager,
        final SnackbarController snackbarController, int tabId) {
    if (tabId == Tab.INVALID_TAB_ID) return;

    Log.d(TAG, "showReloadSnackbar called with controller " + snackbarController);
    Snackbar snackbar =
            Snackbar.make(context.getString(R.string.offline_pages_viewing_offline_page),
                    snackbarController, Snackbar.TYPE_ACTION, Snackbar.UMA_OFFLINE_PAGE_RELOAD)
                    .setSingleLine(false).setAction(context.getString(R.string.reload), tabId);
    snackbar.setDuration(sSnackbarDurationMs);
    snackbarManager.showSnackbar(snackbar);
}
 
public SnackbarManager getSnackbarManager() {
    Activity activity = ApplicationStatus.getLastTrackedFocusedActivity();
    if (activity != null && ApplicationStatus.hasVisibleActivities()
            && activity instanceof SnackbarManager.SnackbarManageable) {
        return ((SnackbarManager.SnackbarManageable) activity).getSnackbarManager();
    }
    return null;
}
 
源代码16 项目: AndroidChromium   文件: LocaleManager.java
private void showSnackbar(CharSequence title) {
    SnackbarManager manager = mSnackbarManager.get();
    if (manager == null) return;

    Context context = ContextUtils.getApplicationContext();
    Snackbar snackbar = Snackbar.make(title, mSnackbarController, Snackbar.TYPE_NOTIFICATION,
            Snackbar.UMA_SPECIAL_LOCALE);
    snackbar.setDuration(SNACKBAR_DURATION_MS);
    snackbar.setAction(context.getString(R.string.preferences), null);
    manager.showSnackbar(snackbar);
}
 
/**
 * Shows the geolocation snackbar if it hasn't already been shown and the geolocation snackbar
 * is currently relevant: i.e. the default search engine is Google, location is enabled
 * for Chrome, the tab is not incognito, etc.
 *
 * @param snackbarManager The SnackbarManager used to show the snackbar.
 * @param view Any view that's attached to the view hierarchy.
 * @param isIncognito Whether the currently visible tab is incognito.
 * @param delayMs The delay in ms before the snackbar should be shown. This is intended to
 *                give the keyboard time to animate in.
 */
public static void maybeShowSnackbar(final SnackbarManager snackbarManager, View view,
        boolean isIncognito, int delayMs) {
    final Context context = view.getContext();
    if (ChromeFeatureList.isEnabled(ChromeFeatureList.CONSISTENT_OMNIBOX_GEOLOCATION)) return;
    if (getGeolocationSnackbarShown(context)) return;

    // If in incognito mode, don't show the snackbar now, but maybe show it later.
    if (isIncognito) return;

    if (neverShowSnackbar(context)) {
        setGeolocationSnackbarShown(context);
        return;
    }

    Uri searchUri = Uri.parse(TemplateUrlService.getInstance().getUrlForSearchQuery("foo"));
    TypefaceSpan robotoMediumSpan = new TypefaceSpan("sans-serif-medium");
    String messageWithoutSpans = context.getResources().getString(
            R.string.omnibox_geolocation_disclosure, "<b>" + searchUri.getHost() + "</b>");
    SpannableString message = SpanApplier.applySpans(messageWithoutSpans,
            new SpanInfo("<b>", "</b>", robotoMediumSpan));
    String settings = context.getResources().getString(R.string.preferences);
    int durationMs = DeviceClassManager.isAccessibilityModeEnabled(view.getContext())
            ? ACCESSIBILITY_SNACKBAR_DURATION_MS : SNACKBAR_DURATION_MS;
    final GeolocationSnackbarController controller = new GeolocationSnackbarController();
    final Snackbar snackbar = Snackbar
            .make(message, controller, Snackbar.TYPE_ACTION, Snackbar.UMA_OMNIBOX_GEOLOCATION)
            .setAction(settings, view)
            .setSingleLine(false)
            .setDuration(durationMs);

    view.postDelayed(new Runnable() {
        @Override
        public void run() {
            snackbarManager.dismissSnackbars(controller);
            snackbarManager.showSnackbar(snackbar);
            setGeolocationSnackbarShown(context);
        }
    }, delayMs);
}
 
源代码18 项目: AndroidChromium   文件: BlimpMessageBuilder.java
/**
 * Get {@link SnackbarManager} of current focused activity.
 * @return The SnackbarManager or null if the activity doesn't hold a SnackbarManager.
 */
@VisibleForTesting
protected SnackbarManager getSnackbarManager(Activity activity) {
    if (activity != null && activity instanceof SnackbarManager.SnackbarManageable) {
        return ((SnackbarManager.SnackbarManageable) activity).getSnackbarManager();
    }
    return null;
}
 
源代码19 项目: 365browser   文件: SearchActivity.java
@Override
protected void setContentView() {
    mSnackbarManager = new SnackbarManager(this, null);
    mSearchBoxDataProvider = new SearchBoxDataProvider();

    mContentView = createContentView();
    setContentView(mContentView);

    // Build the search box.
    mSearchBox = (SearchActivityLocationBarLayout) mContentView.findViewById(
            R.id.search_location_bar);
    mSearchBox.setDelegate(this);
    mSearchBox.setToolbarDataProvider(mSearchBoxDataProvider);
    mSearchBox.initializeControls(new WindowDelegate(getWindow()), getWindowAndroid());

    // Kick off everything needed for the user to type into the box.
    beginQuery();
    mSearchBox.showCachedZeroSuggestResultsIfAvailable();

    // Kick off loading of the native library.
    if (!getActivityDelegate().shouldDelayNativeInitialization()) {
        mHandler.post(new Runnable() {
            @Override
            public void run() {
                startDelayedNativeInitialization();
            }
        });
    }
}
 
源代码20 项目: 365browser   文件: BookmarkSheetContent.java
/**
 * @param activity The activity displaying the bookmark manager UI.
 * @param snackbarManager The {@link SnackbarManager} used to display snackbars.
 */
public BookmarkSheetContent(final ChromeActivity activity, SnackbarManager snackbarManager) {
    mBookmarkManager = new BookmarkManager(activity, false, snackbarManager);
    mBookmarkManager.updateForUrl(BookmarkUtils.getLastUsedUrl(activity));
    mContentView = mBookmarkManager.getView();
    mToolbarView = mBookmarkManager.detachToolbarView();
    mToolbarView.addObserver(new SelectableListToolbar.SelectableListToolbarObserver() {
        @Override
        public void onThemeColorChanged(boolean isLightTheme) {
            activity.getBottomSheet().updateHandleTint();
        }
    });
    ((BottomToolbarPhone) activity.getToolbarManager().getToolbar())
            .setOtherToolbarStyle(mToolbarView);
}
 
源代码21 项目: 365browser   文件: BookmarkUndoController.java
/**
 * Creates an instance of {@link BookmarkUndoController}.
 * @param context The {@link Context} in which snackbar is shown.
 * @param model The bookmark model.
 * @param snackbarManager SnackManager passed from activity.
 */
public BookmarkUndoController(Context context, BookmarkModel model,
        SnackbarManager snackbarManager) {
    mBookmarkModel = model;
    mBookmarkModel.addDeleteObserver(this);
    mSnackbarManager = snackbarManager;
    mContext = context;
}
 
源代码22 项目: 365browser   文件: OfflinePageUtils.java
@Override
public void showReloadSnackbar(Context context, SnackbarManager snackbarManager,
        final SnackbarController snackbarController, int tabId) {
    if (tabId == Tab.INVALID_TAB_ID) return;

    Log.d(TAG, "showReloadSnackbar called with controller " + snackbarController);
    Snackbar snackbar =
            Snackbar.make(context.getString(R.string.offline_pages_viewing_offline_page),
                            snackbarController, Snackbar.TYPE_ACTION,
                            Snackbar.UMA_OFFLINE_PAGE_RELOAD)
                    .setSingleLine(false)
                    .setAction(context.getString(R.string.reload), tabId);
    snackbar.setDuration(sSnackbarDurationMs);
    snackbarManager.showSnackbar(snackbar);
}
 
源代码23 项目: 365browser   文件: DownloadSnackbarController.java
public SnackbarManager getSnackbarManager() {
    Activity activity = getActivity();
    if (activity != null && activity instanceof SnackbarManager.SnackbarManageable) {
        return ((SnackbarManager.SnackbarManageable) activity).getSnackbarManager();
    }
    return null;
}
 
源代码24 项目: 365browser   文件: LocaleManager.java
private void showSnackbar(CharSequence title) {
    SnackbarManager manager = mSnackbarManager.get();
    if (manager == null) return;

    Context context = ContextUtils.getApplicationContext();
    Snackbar snackbar = Snackbar.make(title, mSnackbarController, Snackbar.TYPE_NOTIFICATION,
            Snackbar.UMA_SPECIAL_LOCALE);
    snackbar.setDuration(SNACKBAR_DURATION_MS);
    snackbar.setAction(context.getString(R.string.preferences), null);
    manager.showSnackbar(snackbar);
}
 
源代码25 项目: 365browser   文件: GeolocationSnackbarController.java
/**
 * Shows the geolocation snackbar if it hasn't already been shown and the geolocation snackbar
 * is currently relevant: i.e. the default search engine is Google, location is enabled
 * for Chrome, the tab is not incognito, etc.
 *
 * @param snackbarManager The SnackbarManager used to show the snackbar.
 * @param view Any view that's attached to the view hierarchy.
 * @param isIncognito Whether the currently visible tab is incognito.
 * @param delayMs The delay in ms before the snackbar should be shown. This is intended to
 *                give the keyboard time to animate in.
 */
public static void maybeShowSnackbar(final SnackbarManager snackbarManager, View view,
        boolean isIncognito, int delayMs) {
    final Context context = view.getContext();
    if (ChromeFeatureList.isEnabled(ChromeFeatureList.CONSISTENT_OMNIBOX_GEOLOCATION)) return;
    if (getGeolocationSnackbarShown(context)) return;

    // If in incognito mode, don't show the snackbar now, but maybe show it later.
    if (isIncognito) return;

    if (neverShowSnackbar(context)) {
        setGeolocationSnackbarShown(context);
        return;
    }

    Uri searchUri = Uri.parse(TemplateUrlService.getInstance().getUrlForSearchQuery("foo"));
    TypefaceSpan robotoMediumSpan = new TypefaceSpan("sans-serif-medium");
    String messageWithoutSpans = context.getResources().getString(
            R.string.omnibox_geolocation_disclosure, "<b>" + searchUri.getHost() + "</b>");
    SpannableString message = SpanApplier.applySpans(messageWithoutSpans,
            new SpanInfo("<b>", "</b>", robotoMediumSpan));
    String settings = context.getResources().getString(R.string.preferences);
    int durationMs = AccessibilityUtil.isAccessibilityEnabled()
            ? ACCESSIBILITY_SNACKBAR_DURATION_MS : SNACKBAR_DURATION_MS;
    final GeolocationSnackbarController controller = new GeolocationSnackbarController();
    final Snackbar snackbar = Snackbar
            .make(message, controller, Snackbar.TYPE_ACTION, Snackbar.UMA_OMNIBOX_GEOLOCATION)
            .setAction(settings, view)
            .setSingleLine(false)
            .setDuration(durationMs);

    view.postDelayed(new Runnable() {
        @Override
        public void run() {
            snackbarManager.dismissSnackbars(controller);
            snackbarManager.showSnackbar(snackbar);
            setGeolocationSnackbarShown(context);
        }
    }, delayMs);
}
 
源代码26 项目: 365browser   文件: InfoBarContainer.java
public SnackbarManager getSnackbarManager() {
    if (mTab != null && mTab.getActivity() != null) {
        return mTab.getActivity().getSnackbarManager();
    }

    return null;
}
 
源代码27 项目: 365browser   文件: TileGroupDelegateImpl.java
public TileGroupDelegateImpl(ChromeActivity activity, Profile profile,
        TabModelSelector tabModelSelector, SuggestionsNavigationDelegate navigationDelegate,
        SnackbarManager snackbarManager) {
    mContext = activity;
    mSnackbarManager = snackbarManager;
    mTabModelSelector = tabModelSelector;
    mNavigationDelegate = navigationDelegate;
    mMostVisitedSites = buildMostVisitedSites(profile);
}
 
源代码28 项目: 365browser   文件: HistorySheetContent.java
/**
 * @param activity The activity displaying the history manager UI.
 * @param snackbarManager The {@link SnackbarManager} used to display snackbars.
 */
public HistorySheetContent(final ChromeActivity activity, SnackbarManager snackbarManager) {
    mHistoryManager = new HistoryManager(activity, false, snackbarManager);
    mContentView = mHistoryManager.getView();
    mToolbarView = mHistoryManager.detachToolbarView();
    mToolbarView.addObserver(new SelectableListToolbar.SelectableListToolbarObserver() {
        @Override
        public void onThemeColorChanged(boolean isLightTheme) {
            activity.getBottomSheet().updateHandleTint();
        }
    });
    ((BottomToolbarPhone) activity.getToolbarManager().getToolbar())
            .setOtherToolbarStyle(mToolbarView);
}
 
源代码29 项目: delion   文件: BookmarkManager.java
@Override
public SnackbarManager getSnackbarManager() {
    return ((SnackbarManageable) mActivity).getSnackbarManager();
}
 
源代码30 项目: delion   文件: OfflinePageTabObserver.java
static void init(Context context, SnackbarManager manager, SnackbarController controller) {
    sInstance = new OfflinePageTabObserver(context, manager, controller);
}