Hide web preview buttons after 5 secs

This commit is contained in:
Gabriel Calero 2018-07-03 13:21:13 -03:00
parent 21b089fa39
commit 770a31faad
2 changed files with 27 additions and 3 deletions

View file

@ -277,7 +277,7 @@ public class InterfaceActivity extends QtActivity implements WebViewFragment.OnW
} }
if (args != null && args.containsKey(WebViewActivity.WEB_VIEW_ACTIVITY_EXTRA_URL)) { if (args != null && args.containsKey(WebViewActivity.WEB_VIEW_ACTIVITY_EXTRA_URL)) {
WebViewFragment webViewFragment = (WebViewFragment) getFragmentManager().findFragmentByTag("webViewFragment"); WebViewFragment webViewFragment = (WebViewFragment) getFragmentManager().findFragmentByTag("webViewFragment");
webViewFragment.loadUrl((String) args.get(WebViewActivity.WEB_VIEW_ACTIVITY_EXTRA_URL)); webViewFragment.loadUrl((String) args.get(WebViewActivity.WEB_VIEW_ACTIVITY_EXTRA_URL), true);
webViewFragment.setToolbarVisible(true); webViewFragment.setToolbarVisible(true);
webViewFragment.setCloseAction(() -> { webSlidingDrawer.animateClose(); webSlidingDrawer.setVisibility(View.GONE);} ); webViewFragment.setCloseAction(() -> { webSlidingDrawer.animateClose(); webSlidingDrawer.setVisibility(View.GONE);} );
} }

View file

@ -6,6 +6,9 @@ import android.content.Intent;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.net.http.SslError; import android.net.http.SslError;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
import android.view.GestureDetector; import android.view.GestureDetector;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.LayoutInflater; import android.view.LayoutInflater;
@ -30,6 +33,7 @@ public class WebViewFragment extends Fragment implements GestureDetector.OnGestu
public static final String URL = "url"; public static final String URL = "url";
public static final String TOOLBAR_VISIBLE = "toolbar_visible"; public static final String TOOLBAR_VISIBLE = "toolbar_visible";
private static final long DELAY_HIDE_TOOLBAR_MILLIS = 5 * 1000;
private WebView myWebView; private WebView myWebView;
private GestureDetector gestureDetector; private GestureDetector gestureDetector;
@ -40,6 +44,16 @@ public class WebViewFragment extends Fragment implements GestureDetector.OnGestu
private OnWebViewInteractionListener mListener; private OnWebViewInteractionListener mListener;
private Runnable mCloseAction; private Runnable mCloseAction;
private Handler mHandler;
private Runnable mHideToolbar = new Runnable() {
@Override
public void run() {
if (mToolbar != null) {
mToolbar.setVisibility(View.GONE);
}
}
};
public boolean onKeyDown(int keyCode) { public boolean onKeyDown(int keyCode) {
// Check if the key event was the Back button and if there's history // Check if the key event was the Back button and if there's history
@ -54,8 +68,9 @@ public class WebViewFragment extends Fragment implements GestureDetector.OnGestu
return myWebView == null || myWebView.getUrl() == null ? mUrl : myWebView.getUrl(); return myWebView == null || myWebView.getUrl() == null ? mUrl : myWebView.getUrl();
} }
public void loadUrl(String url) { public void loadUrl(String url, boolean showToolbar) {
mUrl = url; mUrl = url;
mToolbarVisible = showToolbar;
loadUrl(myWebView, url); loadUrl(myWebView, url);
} }
@ -64,6 +79,10 @@ public class WebViewFragment extends Fragment implements GestureDetector.OnGestu
webView.getSettings().setLoadWithOverviewMode(true); webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true); webView.getSettings().setUseWideViewPort(true);
webView.loadUrl(url); webView.loadUrl(url);
mToolbar.setVisibility(mToolbarVisible ? View.VISIBLE : View.GONE);
if (mToolbarVisible) {
mHandler.postDelayed(mHideToolbar, DELAY_HIDE_TOOLBAR_MILLIS);
}
} }
public void setToolbarVisible(boolean visible) { public void setToolbarVisible(boolean visible) {
@ -76,6 +95,11 @@ public class WebViewFragment extends Fragment implements GestureDetector.OnGestu
@Override @Override
public boolean onDown(MotionEvent motionEvent) { public boolean onDown(MotionEvent motionEvent) {
mHandler.removeCallbacks(mHideToolbar);
if (mToolbarVisible) {
mToolbar.setVisibility(mToolbarVisible ? View.VISIBLE : View.GONE);
mHandler.postDelayed(mHideToolbar, DELAY_HIDE_TOOLBAR_MILLIS);
}
return false; return false;
} }
@ -143,6 +167,7 @@ public class WebViewFragment extends Fragment implements GestureDetector.OnGestu
View rootView = inflater.inflate(R.layout.fragment_web_view, container, false); View rootView = inflater.inflate(R.layout.fragment_web_view, container, false);
mProgressBar = rootView.findViewById(R.id.toolbarProgressBar); mProgressBar = rootView.findViewById(R.id.toolbarProgressBar);
myWebView = rootView.findViewById(R.id.web_view); myWebView = rootView.findViewById(R.id.web_view);
mHandler = new Handler();
gestureDetector = new GestureDetector(this); gestureDetector = new GestureDetector(this);
gestureDetector.setOnDoubleTapListener(new GestureDetector.OnDoubleTapListener() { gestureDetector.setOnDoubleTapListener(new GestureDetector.OnDoubleTapListener() {
@Override @Override
@ -179,7 +204,6 @@ public class WebViewFragment extends Fragment implements GestureDetector.OnGestu
mCloseAction.run(); mCloseAction.run();
} }
}); });
mToolbar.setVisibility(mToolbarVisible ? View.VISIBLE : View.GONE);
if (mUrl != null) { if (mUrl != null) {
loadUrl(myWebView, mUrl); loadUrl(myWebView, mUrl);
} }