Search in sources :

Example 1 with AverageLoadTimeObserver

use of org.mozilla.focus.observer.AverageLoadTimeObserver in project focus-android by mozilla-mobile.

the class BrowserFragment method inflateLayout.

@Override
public View inflateLayout(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    if (savedInstanceState != null && savedInstanceState.containsKey(RESTORE_KEY_DOWNLOAD)) {
        // If this activity was destroyed before we could start a download (e.g. because we were waiting for a permission)
        // then restore the download object.
        pendingDownload = savedInstanceState.getParcelable(RESTORE_KEY_DOWNLOAD);
    }
    final View view = inflater.inflate(R.layout.fragment_browser, container, false);
    videoContainer = (ViewGroup) view.findViewById(R.id.video_container);
    browserContainer = view.findViewById(R.id.browser_container);
    urlBar = view.findViewById(R.id.urlbar);
    statusBar = view.findViewById(R.id.status_bar_background);
    popupTint = view.findViewById(R.id.popup_tint);
    urlView = (TextView) view.findViewById(R.id.display_url);
    progressView = (AnimatedProgressBar) view.findViewById(R.id.progress);
    swipeRefresh = (SwipeRefreshLayout) view.findViewById(R.id.swipe_refresh);
    swipeRefresh.setColorSchemeResources(R.color.colorAccent);
    swipeRefresh.setEnabled(Features.SWIPE_TO_REFRESH);
    swipeRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {

        @Override
        public void onRefresh() {
            reload();
            TelemetryWrapper.swipeReloadEvent();
        }
    });
    session.getUrl().observe(this, new Observer<String>() {

        @Override
        public void onChanged(@Nullable String url) {
            urlView.setText(UrlUtils.stripUserInfo(url));
        }
    });
    setBlockingEnabled(session.isBlockingEnabled());
    session.getLoading().observe(this, new AverageLoadTimeObserver(session));
    session.getLoading().observe(this, new NonNullObserver<Boolean>() {

        @Override
        public void onValueChanged(@NonNull Boolean loading) {
            if (loading) {
                backgroundTransitionGroup.resetTransition();
                progressView.setProgress(5);
                progressView.setVisibility(View.VISIBLE);
            } else {
                if (progressView.getVisibility() == View.VISIBLE) {
                    // We start a transition only if a page was just loading before
                    // allowing to avoid issue #1179
                    backgroundTransitionGroup.startTransition(ANIMATION_DURATION);
                    progressView.setVisibility(View.GONE);
                }
                swipeRefresh.setRefreshing(false);
            }
            updateBlockingBadging(loading || session.isBlockingEnabled());
            updateToolbarButtonStates(loading);
            final BrowserMenu menu = menuWeakReference.get();
            if (menu != null) {
                menu.updateLoading(loading);
            }
        }
    });
    if ((refreshButton = view.findViewById(R.id.refresh)) != null) {
        refreshButton.setOnClickListener(this);
    }
    if ((stopButton = view.findViewById(R.id.stop)) != null) {
        stopButton.setOnClickListener(this);
    }
    if ((forwardButton = view.findViewById(R.id.forward)) != null) {
        forwardButton.setOnClickListener(this);
    }
    if ((backButton = view.findViewById(R.id.back)) != null) {
        backButton.setOnClickListener(this);
    }
    final ImageView blockIcon = (ImageView) view.findViewById(R.id.block_image);
    blockIcon.setImageResource(R.drawable.ic_tracking_protection_disabled);
    blockView = (FrameLayout) view.findViewById(R.id.block);
    securityView = view.findViewById(R.id.security_info);
    session.getSecure().observe(this, new Observer<Boolean>() {

        @Override
        public void onChanged(Boolean secure) {
            if (!session.getLoading().getValue()) {
                if (secure) {
                    securityView.setImageResource(R.drawable.ic_lock);
                } else {
                    if (URLUtil.isHttpUrl(getUrl())) {
                        // HTTP site
                        securityView.setImageResource(R.drawable.ic_internet);
                    } else {
                        // Certificate is bad
                        securityView.setImageResource(R.drawable.ic_warning);
                    }
                }
            } else {
                securityView.setImageResource(R.drawable.ic_internet);
            }
        }
    });
    securityView.setOnClickListener(this);
    session.getProgress().observe(this, new Observer<Integer>() {

        @Override
        public void onChanged(Integer progress) {
            progressView.setProgress(progress);
        }
    });
    menuView = (ImageButton) view.findViewById(R.id.menuView);
    menuView.setOnClickListener(this);
    if (session.isCustomTab()) {
        initialiseCustomTabUi(view);
    } else {
        initialiseNormalBrowserUi(view);
    }
    return view;
}
Also used : ImageView(android.widget.ImageView) IWebView(org.mozilla.focus.web.IWebView) View(android.view.View) TextView(android.widget.TextView) SwipeRefreshLayout(android.support.v4.widget.SwipeRefreshLayout) AverageLoadTimeObserver(org.mozilla.focus.observer.AverageLoadTimeObserver) BrowserMenu(org.mozilla.focus.menu.browser.BrowserMenu) ImageView(android.widget.ImageView)

Aggregations

SwipeRefreshLayout (android.support.v4.widget.SwipeRefreshLayout)1 View (android.view.View)1 ImageView (android.widget.ImageView)1 TextView (android.widget.TextView)1 BrowserMenu (org.mozilla.focus.menu.browser.BrowserMenu)1 AverageLoadTimeObserver (org.mozilla.focus.observer.AverageLoadTimeObserver)1 IWebView (org.mozilla.focus.web.IWebView)1