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;
}
Aggregations