Search in sources :

Example 1 with SessionsSheetFragment

use of org.mozilla.focus.session.ui.SessionsSheetFragment in project focus-android by mozilla-mobile.

the class MainActivity method onBackPressed.

@Override
public void onBackPressed() {
    final FragmentManager fragmentManager = getSupportFragmentManager();
    final SessionsSheetFragment sessionsSheetFragment = (SessionsSheetFragment) fragmentManager.findFragmentByTag(SessionsSheetFragment.FRAGMENT_TAG);
    if (sessionsSheetFragment != null && sessionsSheetFragment.isVisible() && sessionsSheetFragment.onBackPressed()) {
        // SessionsSheetFragment handles back presses itself (custom animations).
        return;
    }
    final UrlInputFragment urlInputFragment = (UrlInputFragment) fragmentManager.findFragmentByTag(UrlInputFragment.FRAGMENT_TAG);
    if (urlInputFragment != null && urlInputFragment.isVisible() && urlInputFragment.onBackPressed()) {
        // we do not try to remove it from outside.
        return;
    }
    final BrowserFragment browserFragment = (BrowserFragment) fragmentManager.findFragmentByTag(BrowserFragment.FRAGMENT_TAG);
    if (browserFragment != null && browserFragment.isVisible() && browserFragment.onBackPressed()) {
        // in the browsing history.
        return;
    }
    super.onBackPressed();
}
Also used : FragmentManager(android.support.v4.app.FragmentManager) SessionsSheetFragment(org.mozilla.focus.session.ui.SessionsSheetFragment) BrowserFragment(org.mozilla.focus.fragment.BrowserFragment) UrlInputFragment(org.mozilla.focus.fragment.UrlInputFragment)

Example 2 with SessionsSheetFragment

use of org.mozilla.focus.session.ui.SessionsSheetFragment in project focus-android by mozilla-mobile.

the class BrowserFragment method onClick.

@Override
public void onClick(View view) {
    switch(view.getId()) {
        case R.id.menuView:
            BrowserMenu menu = new BrowserMenu(getActivity(), this, session.getCustomTabConfig());
            menu.show(menuView);
            menuWeakReference = new WeakReference<>(menu);
            break;
        case R.id.display_url:
            final Fragment urlFragment = UrlInputFragment.createWithSession(session, urlView);
            getActivity().getSupportFragmentManager().beginTransaction().add(R.id.container, urlFragment, UrlInputFragment.FRAGMENT_TAG).commit();
            break;
        case R.id.erase:
            {
                TelemetryWrapper.eraseEvent();
                erase();
                break;
            }
        case R.id.tabs:
            getActivity().getSupportFragmentManager().beginTransaction().add(R.id.container, new SessionsSheetFragment(), SessionsSheetFragment.FRAGMENT_TAG).commit();
            TelemetryWrapper.openTabsTrayEvent();
            break;
        case R.id.back:
            {
                goBack();
                break;
            }
        case R.id.forward:
            {
                final IWebView webView = getWebView();
                if (webView != null) {
                    webView.goForward();
                }
                break;
            }
        case R.id.refresh:
            {
                reload();
                TelemetryWrapper.menuReloadEvent();
                break;
            }
        case R.id.stop:
            {
                final IWebView webView = getWebView();
                if (webView != null) {
                    webView.stopLoading();
                }
                break;
            }
        case R.id.open_in_firefox_focus:
            {
                sessionManager.moveCustomTabToRegularSessions(session);
                final IWebView webView = getWebView();
                if (webView != null) {
                    webView.saveWebViewState(session);
                }
                final Intent intent = new Intent(getContext(), MainActivity.class);
                intent.setAction(Intent.ACTION_MAIN);
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(intent);
                TelemetryWrapper.openFullBrowser();
                final Activity activity = getActivity();
                if (activity != null) {
                    activity.finish();
                }
                break;
            }
        case R.id.share:
            {
                shareCurrentUrl();
                break;
            }
        case R.id.settings:
            ((LocaleAwareAppCompatActivity) getActivity()).openPreferences();
            break;
        case R.id.open_default:
            {
                final Browsers browsers = new Browsers(getContext(), getUrl());
                final ActivityInfo defaultBrowser = browsers.getDefaultBrowser();
                if (defaultBrowser == null) {
                    // BrowserMenuAdapter.initializeMenu()
                    throw new IllegalStateException("<Open with $Default> was shown when no default browser is set");
                }
                final Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(getUrl()));
                intent.setPackage(defaultBrowser.packageName);
                startActivity(intent);
                if (browsers.isFirefoxDefaultBrowser()) {
                    TelemetryWrapper.openFirefoxEvent();
                } else {
                    TelemetryWrapper.openDefaultAppEvent();
                }
                break;
            }
        case R.id.open_select_browser:
            {
                final Browsers browsers = new Browsers(getContext(), getUrl());
                final ActivityInfo[] apps = browsers.getInstalledBrowsers();
                final ActivityInfo store = browsers.hasFirefoxBrandedBrowserInstalled() ? null : InstallFirefoxActivity.resolveAppStore(getContext());
                final OpenWithFragment fragment = OpenWithFragment.newInstance(apps, getUrl(), store);
                fragment.show(getFragmentManager(), OpenWithFragment.FRAGMENT_TAG);
                TelemetryWrapper.openSelectionEvent();
                break;
            }
        case R.id.customtab_close:
            {
                erase();
                getActivity().finish();
                TelemetryWrapper.closeCustomTabEvent();
                break;
            }
        case R.id.help:
            SessionManager.getInstance().createSession(Source.MENU, SupportUtils.HELP_URL);
            break;
        case R.id.help_trackers:
            SessionManager.getInstance().createSession(Source.MENU, SupportUtils.getSumoURLForTopic(getContext(), SupportUtils.SumoTopic.TRACKERS));
            break;
        case R.id.add_to_homescreen:
            final IWebView webView = getWebView();
            if (webView == null) {
                break;
            }
            final String url = webView.getUrl();
            final String title = webView.getTitle();
            showAddToHomescreenDialog(url, title);
            break;
        case R.id.security_info:
            showSecurityPopUp();
            break;
        default:
            throw new IllegalArgumentException("Unhandled menu item in BrowserFragment");
    }
}
Also used : SessionsSheetFragment(org.mozilla.focus.session.ui.SessionsSheetFragment) LocaleAwareAppCompatActivity(org.mozilla.focus.locale.LocaleAwareAppCompatActivity) ActivityInfo(android.content.pm.ActivityInfo) InstallFirefoxActivity(org.mozilla.focus.activity.InstallFirefoxActivity) MainActivity(org.mozilla.focus.activity.MainActivity) LocaleAwareAppCompatActivity(org.mozilla.focus.locale.LocaleAwareAppCompatActivity) Activity(android.app.Activity) PendingIntent(android.app.PendingIntent) Intent(android.content.Intent) IWebView(org.mozilla.focus.web.IWebView) MainActivity(org.mozilla.focus.activity.MainActivity) Browsers(org.mozilla.focus.utils.Browsers) DialogFragment(android.support.v4.app.DialogFragment) Fragment(android.support.v4.app.Fragment) OpenWithFragment(org.mozilla.focus.open.OpenWithFragment) SessionsSheetFragment(org.mozilla.focus.session.ui.SessionsSheetFragment) OpenWithFragment(org.mozilla.focus.open.OpenWithFragment) BrowserMenu(org.mozilla.focus.menu.browser.BrowserMenu)

Aggregations

SessionsSheetFragment (org.mozilla.focus.session.ui.SessionsSheetFragment)2 Activity (android.app.Activity)1 PendingIntent (android.app.PendingIntent)1 Intent (android.content.Intent)1 ActivityInfo (android.content.pm.ActivityInfo)1 DialogFragment (android.support.v4.app.DialogFragment)1 Fragment (android.support.v4.app.Fragment)1 FragmentManager (android.support.v4.app.FragmentManager)1 InstallFirefoxActivity (org.mozilla.focus.activity.InstallFirefoxActivity)1 MainActivity (org.mozilla.focus.activity.MainActivity)1 BrowserFragment (org.mozilla.focus.fragment.BrowserFragment)1 UrlInputFragment (org.mozilla.focus.fragment.UrlInputFragment)1 LocaleAwareAppCompatActivity (org.mozilla.focus.locale.LocaleAwareAppCompatActivity)1 BrowserMenu (org.mozilla.focus.menu.browser.BrowserMenu)1 OpenWithFragment (org.mozilla.focus.open.OpenWithFragment)1 Browsers (org.mozilla.focus.utils.Browsers)1 IWebView (org.mozilla.focus.web.IWebView)1