org.chromium.chrome.browser.omaha.UpdateMenuItemHelper Java Examples

The following examples show how to use org.chromium.chrome.browser.omaha.UpdateMenuItemHelper. 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: ChromeActivity.java    From delion with Apache License 2.0 6 votes vote down vote up
@Override
public void onStartWithNative() {
    super.onStartWithNative();
    UpdateMenuItemHelper.getInstance().onStart();
    getChromeApplication().onStartWithNative();
    FeatureUtilities.setDocumentModeEnabled(FeatureUtilities.isDocumentMode(this));

    if (GSAState.getInstance(this).isGsaAvailable()) {
        mGSAServiceClient = new GSAServiceClient(this);
        mGSAServiceClient.connect();
        createContextReporterIfNeeded();
    } else {
        ContextReporter.reportStatus(ContextReporter.STATUS_GSA_NOT_AVAILABLE);
    }
    mCompositorViewHolder.resetFlags();

    // postDeferredStartupIfNeeded() is called in TabModelSelectorTabObsever#onLoadStopped(),
    // #onPageLoadFinished() and #onCrash(). If we are not actively loading a tab (e.g.
    // in Android N multi-instance, which is created by re-parenting an existing tab),
    // ensure onDeferredStartup() gets called by calling postDeferredStartupIfNeeded() here.
    if (getActivityTab() == null || !getActivityTab().isLoading()) {
        postDeferredStartupIfNeeded();
    }
}
 
Example #2
Source File: ChromeActivity.java    From delion with Apache License 2.0 6 votes vote down vote up
/**
 * All deferred startup tasks that require the activity rather than the app should go here.
 */
private void onDeferredStartupForActivity() {
    BeamController.registerForBeam(this, new BeamProvider() {
        @Override
        public String getTabUrlForBeam() {
            if (isOverlayVisible()) return null;
            if (getActivityTab() == null) return null;
            return getActivityTab().getUrl();
        }
    });

    UpdateMenuItemHelper.getInstance().checkForUpdateOnBackgroundThread(this);

    if (mToolbarManager != null) {
        String simpleName = getClass().getSimpleName();
        RecordHistogram.recordTimesHistogram("MobileStartup.ToolbarInflationTime." + simpleName,
                mInflateInitialLayoutDurationMs, TimeUnit.MILLISECONDS);
        mToolbarManager.onDeferredStartup(getOnCreateTimestampMs(), simpleName);
    }

    if (MultiWindowUtils.getInstance().isInMultiWindowMode(this)) {
        onDeferredStartupForMultiWindowMode();
    }
}
 
Example #3
Source File: ChromeActivity.java    From AndroidChromium with Apache License 2.0 6 votes vote down vote up
@Override
public void onStartWithNative() {
    super.onStartWithNative();
    UpdateMenuItemHelper.getInstance().onStart();
    ChromeActivitySessionTracker.getInstance().onStartWithNative();

    if (GSAState.getInstance(this).isGsaAvailable()) {
        GSAAccountChangeListener.getInstance().connect();
        createContextReporterIfNeeded();
    } else {
        ContextReporter.reportStatus(ContextReporter.STATUS_GSA_NOT_AVAILABLE);
    }
    mCompositorViewHolder.resetFlags();

    // postDeferredStartupIfNeeded() is called in TabModelSelectorTabObsever#onLoadStopped(),
    // #onPageLoadFinished() and #onCrash(). If we are not actively loading a tab (e.g.
    // in Android N multi-instance, which is created by re-parenting an existing tab),
    // ensure onDeferredStartup() gets called by calling postDeferredStartupIfNeeded() here.
    if (getActivityTab() == null || !getActivityTab().isLoading()) {
        postDeferredStartupIfNeeded();
    }
}
 
Example #4
Source File: AppMenu.java    From delion with Apache License 2.0 5 votes vote down vote up
/**
 * Handles clicks on the AppMenu popup.
 * @param menuItem The menu item in the popup that was clicked.
 */
void onItemClick(MenuItem menuItem) {
    if (menuItem.isEnabled()) {
        if (menuItem.getItemId() == R.id.update_menu_id) {
            UpdateMenuItemHelper.getInstance().setMenuItemClicked();
        }
        dismiss();
        mHandler.onOptionsItemSelected(menuItem);
    }
}
 
Example #5
Source File: ChromeActivity.java    From delion with Apache License 2.0 5 votes vote down vote up
/**
 * Callback after UpdateMenuItemHelper#checkForUpdateOnBackgroundThread is complete.
 * @param updateAvailable Whether an update is available.
 */
public void onCheckForUpdate(boolean updateAvailable) {
    if (UpdateMenuItemHelper.getInstance().shouldShowToolbarBadge(this)) {
        mToolbarManager.getToolbar().showAppMenuUpdateBadge();
        mCompositorViewHolder.requestRender();
    } else {
        mToolbarManager.getToolbar().removeAppMenuUpdateBadge(false);
    }
}
 
Example #6
Source File: AppMenu.java    From AndroidChromium with Apache License 2.0 5 votes vote down vote up
/**
 * Handles clicks on the AppMenu popup.
 * @param menuItem The menu item in the popup that was clicked.
 */
void onItemClick(MenuItem menuItem) {
    if (menuItem.isEnabled()) {
        if (menuItem.getItemId() == R.id.update_menu_id) {
            UpdateMenuItemHelper.getInstance().setMenuItemClicked();
        }
        dismiss();
        mHandler.onOptionsItemSelected(menuItem);
    }
}
 
Example #7
Source File: ChromeActivity.java    From AndroidChromium with Apache License 2.0 5 votes vote down vote up
/**
 * All deferred startup tasks that require the activity rather than the app should go here.
 */
private void initDeferredStartupForActivity() {
    DeferredStartupHandler.getInstance().addDeferredTask(new Runnable() {
        @Override
        public void run() {
            if (isActivityDestroyed()) return;
            BeamController.registerForBeam(ChromeActivity.this, new BeamProvider() {
                @Override
                public String getTabUrlForBeam() {
                    if (isOverlayVisible()) return null;
                    if (getActivityTab() == null) return null;
                    return getActivityTab().getUrl();
                }
            });

            UpdateMenuItemHelper.getInstance().checkForUpdateOnBackgroundThread(
                    ChromeActivity.this);
        }
    });

    final String simpleName = getClass().getSimpleName();
    DeferredStartupHandler.getInstance().addDeferredTask(new Runnable() {
        @Override
        public void run() {
            if (isActivityDestroyed()) return;
            if (mToolbarManager != null) {
                RecordHistogram.recordTimesHistogram(
                        "MobileStartup.ToolbarInflationTime." + simpleName,
                        mInflateInitialLayoutDurationMs, TimeUnit.MILLISECONDS);
                mToolbarManager.onDeferredStartup(getOnCreateTimestampMs(), simpleName);
            }

            if (MultiWindowUtils.getInstance().isInMultiWindowMode(ChromeActivity.this)) {
                onDeferredStartupForMultiWindowMode();
            }
        }
    });
}
 
Example #8
Source File: ChromeActivity.java    From AndroidChromium with Apache License 2.0 5 votes vote down vote up
/**
 * Callback after UpdateMenuItemHelper#checkForUpdateOnBackgroundThread is complete.
 * @param updateAvailable Whether an update is available.
 */
public void onCheckForUpdate(boolean updateAvailable) {
    if (UpdateMenuItemHelper.getInstance().shouldShowToolbarBadge(this)) {
        mToolbarManager.getToolbar().showAppMenuUpdateBadge();
        mCompositorViewHolder.requestRender();
    } else {
        mToolbarManager.getToolbar().removeAppMenuUpdateBadge(false);
    }
}
 
Example #9
Source File: AppMenu.java    From 365browser with Apache License 2.0 5 votes vote down vote up
/**
 * Handles clicks on the AppMenu popup.
 * @param menuItem The menu item in the popup that was clicked.
 */
void onItemClick(MenuItem menuItem) {
    if (menuItem.isEnabled()) {
        if (menuItem.getItemId() == R.id.update_menu_id) {
            UpdateMenuItemHelper.getInstance().setMenuItemClicked();
        }
        dismiss();
        mHandler.onOptionsItemSelected(menuItem);
    }
}
 
Example #10
Source File: ChromeActivity.java    From 365browser with Apache License 2.0 5 votes vote down vote up
/**
 * Callback after UpdateMenuItemHelper#checkForUpdateOnBackgroundThread is complete.
 * @param updateAvailable Whether an update is available.
 */
public void onCheckForUpdate(boolean updateAvailable) {
    if (UpdateMenuItemHelper.getInstance().shouldShowToolbarBadge(this)) {
        mToolbarManager.getToolbar().showAppMenuUpdateBadge();
        mCompositorViewHolder.requestRender();
    } else {
        mToolbarManager.getToolbar().removeAppMenuUpdateBadge(false);
    }
}
 
Example #11
Source File: ChromeActivity.java    From delion with Apache License 2.0 4 votes vote down vote up
/**
 * Handles menu item selection and keyboard shortcuts.
 *
 * @param id The ID of the selected menu item (defined in main_menu.xml) or
 *           keyboard shortcut (defined in values.xml).
 * @param fromMenu Whether this was triggered from the menu.
 * @return Whether the action was handled.
 */
public boolean onMenuOrKeyboardAction(int id, boolean fromMenu) {
    if (id == R.id.preferences_id) {
        PreferencesLauncher.launchSettingsPage(this, null);
        RecordUserAction.record("MobileMenuSettings");
    } else if (id == R.id.show_menu) {
        showAppMenuForKeyboardEvent();
    }

    if (id == R.id.update_menu_id) {
        UpdateMenuItemHelper.getInstance().onMenuItemClicked(this);
        return true;
    }

    // All the code below assumes currentTab is not null, so return early if it is null.
    final Tab currentTab = getActivityTab();
    if (currentTab == null) {
        return false;
    } else if (id == R.id.forward_menu_id) {
        if (currentTab.canGoForward()) {
            currentTab.goForward();
            RecordUserAction.record("MobileMenuForward");
            RecordUserAction.record("MobileTabClobbered");
        }
    } else if (id == R.id.bookmark_this_page_id) {
        addOrEditBookmark(currentTab);
        RecordUserAction.record("MobileMenuAddToBookmarks");
    } else if (id == R.id.reload_menu_id) {
        if (currentTab.isLoading()) {
            currentTab.stopLoading();
        } else {
            currentTab.reload();
            RecordUserAction.record("MobileToolbarReload");
        }
    } else if (id == R.id.info_menu_id) {
        WebsiteSettingsPopup.show(
                this, currentTab, null, WebsiteSettingsPopup.OPENED_FROM_MENU);
    } else if (id == R.id.open_history_menu_id) {
        currentTab.loadUrl(
                new LoadUrlParams(UrlConstants.HISTORY_URL, PageTransition.AUTO_TOPLEVEL));
        RecordUserAction.record("MobileMenuHistory");
        StartupMetrics.getInstance().recordOpenedHistory();
    } else if (id == R.id.share_menu_id || id == R.id.direct_share_menu_id) {
        onShareMenuItemSelected(id == R.id.direct_share_menu_id,
                getCurrentTabModel().isIncognito());
    } else if (id == R.id.print_id) {
        PrintingController printingController = getChromeApplication().getPrintingController();
        if (printingController != null && !printingController.isBusy()
                && PrefServiceBridge.getInstance().isPrintingEnabled()) {
            printingController.startPrint(new TabPrinter(currentTab),
                    new PrintManagerDelegateImpl(this));
            RecordUserAction.record("MobileMenuPrint");
        }
    } else if (id == R.id.add_to_homescreen_id) {
        AddToHomescreenDialog.show(this, currentTab);
        RecordUserAction.record("MobileMenuAddToHomescreen");
    } else if (id == R.id.request_desktop_site_id) {
        final boolean reloadOnChange = !currentTab.isNativePage();
        final boolean usingDesktopUserAgent = currentTab.getUseDesktopUserAgent();
        currentTab.setUseDesktopUserAgent(!usingDesktopUserAgent, reloadOnChange);
        RecordUserAction.record("MobileMenuRequestDesktopSite");
    } else if (id == R.id.reader_mode_prefs_id) {
        if (currentTab.getWebContents() != null) {
            RecordUserAction.record("DomDistiller_DistilledPagePrefsOpened");
            AlertDialog.Builder builder =
                    new AlertDialog.Builder(this, R.style.AlertDialogTheme);
            builder.setView(DistilledPagePrefsView.create(this));
            builder.show();
        }
    } else if (id == R.id.help_id) {
        // Since reading back the compositor is asynchronous, we need to do the readback
        // before starting the GoogleHelp.
        String helpContextId = HelpAndFeedback.getHelpContextIdFromUrl(
                this, currentTab.getUrl(), getCurrentTabModel().isIncognito());
        HelpAndFeedback.getInstance(this)
                .show(this, helpContextId, currentTab.getProfile(), currentTab.getUrl());
        RecordUserAction.record("MobileMenuFeedback");
    } else {
        return false;
    }
    return true;
}
 
Example #12
Source File: ChromeActivity.java    From AndroidChromium with Apache License 2.0 4 votes vote down vote up
/**
 * Handles menu item selection and keyboard shortcuts.
 *
 * @param id The ID of the selected menu item (defined in main_menu.xml) or
 *           keyboard shortcut (defined in values.xml).
 * @param fromMenu Whether this was triggered from the menu.
 * @return Whether the action was handled.
 */
public boolean onMenuOrKeyboardAction(int id, boolean fromMenu) {
    if (id == R.id.preferences_id) {
        PreferencesLauncher.launchSettingsPage(this, null);
        RecordUserAction.record("MobileMenuSettings");
    } else if (id == R.id.show_menu) {
        showAppMenuForKeyboardEvent();
    }

    if (id == R.id.update_menu_id) {
        UpdateMenuItemHelper.getInstance().onMenuItemClicked(this);
        return true;
    }

    // All the code below assumes currentTab is not null, so return early if it is null.
    final Tab currentTab = getActivityTab();
    if (currentTab == null) {
        return false;
    } else if (id == R.id.forward_menu_id) {
        if (currentTab.canGoForward()) {
            currentTab.goForward();
            RecordUserAction.record("MobileMenuForward");
            RecordUserAction.record("MobileTabClobbered");
        }
    } else if (id == R.id.bookmark_this_page_id) {
        addOrEditBookmark(currentTab);
        RecordUserAction.record("MobileMenuAddToBookmarks");
    } else if (id == R.id.offline_page_id) {
        DownloadUtils.downloadOfflinePage(this, currentTab);
        RecordUserAction.record("MobileMenuDownloadPage");
    } else if (id == R.id.reload_menu_id) {
        if (currentTab.isLoading()) {
            currentTab.stopLoading();
            RecordUserAction.record("MobileMenuStop");
        } else {
            currentTab.reload();
            RecordUserAction.record("MobileMenuReload");
        }
    } else if (id == R.id.info_menu_id) {
        WebsiteSettingsPopup.show(
                this, currentTab, null, WebsiteSettingsPopup.OPENED_FROM_MENU);
    } else if (id == R.id.open_history_menu_id) {
        currentTab.loadUrl(
                new LoadUrlParams(UrlConstants.HISTORY_URL, PageTransition.AUTO_TOPLEVEL));
        RecordUserAction.record("MobileMenuHistory");
        StartupMetrics.getInstance().recordOpenedHistory();
    } else if (id == R.id.share_menu_id || id == R.id.direct_share_menu_id) {
        onShareMenuItemSelected(id == R.id.direct_share_menu_id,
                getCurrentTabModel().isIncognito());
    } else if (id == R.id.print_id) {
        PrintingController printingController = PrintingControllerImpl.getInstance();
        if (printingController != null && !printingController.isBusy()
                && PrefServiceBridge.getInstance().isPrintingEnabled()) {
            printingController.startPrint(new TabPrinter(currentTab),
                    new PrintManagerDelegateImpl(this));
            RecordUserAction.record("MobileMenuPrint");
        }
    } else if (id == R.id.add_to_homescreen_id) {
        AddToHomescreenManager addToHomescreenManager =
                new AddToHomescreenManager(this, currentTab);
        addToHomescreenManager.start();
        RecordUserAction.record("MobileMenuAddToHomescreen");
    } else if (id == R.id.request_desktop_site_id) {
        final boolean reloadOnChange = !currentTab.isNativePage();
        final boolean usingDesktopUserAgent = currentTab.getUseDesktopUserAgent();
        currentTab.setUseDesktopUserAgent(!usingDesktopUserAgent, reloadOnChange);
        RecordUserAction.record("MobileMenuRequestDesktopSite");
    } else if (id == R.id.reader_mode_prefs_id) {
        if (currentTab.getWebContents() != null) {
            RecordUserAction.record("DomDistiller_DistilledPagePrefsOpened");
            AlertDialog.Builder builder =
                    new AlertDialog.Builder(this, R.style.AlertDialogTheme);
            builder.setView(DistilledPagePrefsView.create(this));
            builder.show();
        }
    } else if (id == R.id.help_id) {
        // Since reading back the compositor is asynchronous, we need to do the readback
        // before starting the GoogleHelp.
        String helpContextId = HelpAndFeedback.getHelpContextIdFromUrl(
                this, currentTab.getUrl(), getCurrentTabModel().isIncognito());
        HelpAndFeedback.getInstance(this)
                .show(this, helpContextId, currentTab.getProfile(), currentTab.getUrl());
        RecordUserAction.record("MobileMenuFeedback");
    } else {
        return false;
    }
    return true;
}
 
Example #13
Source File: ChromeActivity.java    From 365browser with Apache License 2.0 4 votes vote down vote up
/**
 * All deferred startup tasks that require the activity rather than the app should go here.
 */
private void initDeferredStartupForActivity() {
    DeferredStartupHandler.getInstance().addDeferredTask(new Runnable() {
        @Override
        public void run() {
            if (isActivityDestroyed()) return;
            BeamController.registerForBeam(ChromeActivity.this, new BeamProvider() {
                @Override
                public String getTabUrlForBeam() {
                    if (isOverlayVisible()) return null;
                    if (getActivityTab() == null) return null;
                    return getActivityTab().getUrl();
                }
            });

            UpdateMenuItemHelper.getInstance().checkForUpdateOnBackgroundThread(
                    ChromeActivity.this);
        }
    });

    final String simpleName = getClass().getSimpleName();
    DeferredStartupHandler.getInstance().addDeferredTask(new Runnable() {
        @Override
        public void run() {
            if (isActivityDestroyed()) return;
            if (mToolbarManager != null) {
                RecordHistogram.recordTimesHistogram(
                        "MobileStartup.ToolbarInflationTime." + simpleName,
                        mInflateInitialLayoutDurationMs, TimeUnit.MILLISECONDS);
                mToolbarManager.onDeferredStartup(getOnCreateTimestampMs(), simpleName);
            }

            if (MultiWindowUtils.getInstance().isInMultiWindowMode(ChromeActivity.this)) {
                onDeferredStartupForMultiWindowMode();
            }

            long intentTimestamp = IntentHandler.getTimestampFromIntent(getIntent());
            if (intentTimestamp != -1) {
                recordIntentToCreationTime(getOnCreateTimestampMs() - intentTimestamp);
            }
        }
    });

    DeferredStartupHandler.getInstance().addDeferredTask(new Runnable() {
        @Override
        public void run() {
            if (isActivityDestroyed()) return;
            ForcedSigninProcessor.checkCanSignIn(ChromeActivity.this);
        }
    });
    DeferredStartupHandler.getInstance().addDeferredTask(new Runnable() {
        @Override
        public void run() {
            if (isActivityDestroyed() || mBottomSheetContentController == null) return;
            mBottomSheetContentController.initializeDefaultContent();
        }
    });
}