Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ru.matbakhz.zanouba;
- import android.content.Intent;
- import android.graphics.Bitmap;
- import android.os.Bundle;
- import android.support.v7.widget.Toolbar;
- import android.view.MenuItem;
- import android.view.View;
- import android.webkit.WebView;
- import android.webkit.WebViewClient;
- import android.widget.RelativeLayout;
- import android.widget.Toast;
- import ru.matbakhz.zanouba.app.App;
- import ru.matbakhz.zanouba.common.ActivityBase;
- public class WebViewActivity extends ActivityBase {
- private myWebViewClient mWebViewClient;
- private static final String TAG = WebViewActivity.class.getSimpleName();
- Toolbar toolbar;
- RelativeLayout mWebViewLoadingScreen, mWebViewErrorScreen, mWebViewContentScreen;
- WebView mWebView;
- String sUrl, sTitle;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_web_view);
- // Initialize Toolbar
- toolbar = (Toolbar) findViewById(R.id.toolbar);
- if (toolbar != null) {
- setSupportActionBar(toolbar);
- }
- getSupportActionBar().setDisplayHomeAsUpEnabled(true);
- getSupportActionBar().setHomeButtonEnabled(true);
- Intent i = getIntent();
- sUrl = i.getStringExtra("url");
- sTitle = i.getStringExtra("title");
- getSupportActionBar().setTitle(sTitle);
- mWebViewErrorScreen = (RelativeLayout) findViewById(R.id.WebViewErrorScreen);
- mWebViewLoadingScreen = (RelativeLayout) findViewById(R.id.WebViewLoadingScreen);
- mWebViewContentScreen = (RelativeLayout) findViewById(R.id.WebViewContentScreen);
- mWebView = (WebView) findViewById(R.id.webView);
- mWebView.setWebViewClient(new WebViewClient() {
- //If you will not use this method url links are opeen in new brower not in webview
- public boolean shouldOverrideUrlLoading(WebView view, String url) {
- view.loadUrl(url);
- return true;
- }
- public void onPageStarted(WebView view, String url, Bitmap favicon) {
- showLoadingScreen();
- }
- public void onPageFinished(WebView view, String url) {
- showContentScreen();
- }
- public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
- showErrorScreen();
- Toast.makeText(getApplicationContext(), description, Toast.LENGTH_SHORT).show();
- }
- });
- mWebChromeClient = new myWebChromeClient();
- webView.setWebChromeClient(mWebChromeClient);
- mWebView.getSettings().setJavaScriptEnabled(true);
- if (App.getInstance().isConnected()) {
- mWebView.loadUrl(sUrl);
- } else {
- showErrorScreen();
- }
- }
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- // Handle action bar item clicks here. The action bar will
- // automatically handle clicks on the Home/Up button, so long
- // as you specify a parent activity in AndroidManifest.xml.
- switch(item.getItemId()) {
- case android.R.id.home: {
- finish();
- return true;
- }
- default: {
- return super.onOptionsItemSelected(item);
- }
- }
- }
- public void showLoadingScreen() {
- mWebViewErrorScreen.setVisibility(View.GONE);
- mWebViewContentScreen.setVisibility(View.GONE);
- mWebViewLoadingScreen.setVisibility(View.VISIBLE);
- }
- public void showErrorScreen() {
- mWebViewLoadingScreen.setVisibility(View.GONE);
- mWebViewContentScreen.setVisibility(View.GONE);
- mWebViewErrorScreen.setVisibility(View.VISIBLE);
- }
- public void showContentScreen() {
- mWebViewErrorScreen.setVisibility(View.GONE);
- mWebViewLoadingScreen.setVisibility(View.GONE);
- mWebViewContentScreen.setVisibility(View.VISIBLE);
- }
- class myWebChromeClient extends WebChromeClient {
- private Bitmap mDefaultVideoPoster;
- private View mVideoProgressView;
- @Override
- public void onShowCustomView(View view, int requestedOrientation, CustomViewCallback callback) {
- onShowCustomView(view, callback); //To change body of overridden methods use File | Settings | File Templates.
- }
- @Override
- public void onShowCustomView(View view,CustomViewCallback callback) {
- // if a view already exists then immediately terminate the new one
- if (mCustomView != null) {
- callback.onCustomViewHidden();
- return;
- }
- mCustomView = view;
- webView.setVisibility(View.GONE);
- customViewContainer.setVisibility(View.VISIBLE);
- customViewContainer.addView(view);
- customViewCallback = callback;
- }
- @Override
- public View getVideoLoadingProgressView() {
- if (mVideoProgressView == null) {
- LayoutInflater inflater = LayoutInflater.from(MyActivity.this);
- mVideoProgressView = inflater.inflate(R.layout.video_progress, null);
- }
- return mVideoProgressView;
- }
- @Override
- public void onHideCustomView() {
- super.onHideCustomView(); //To change body of overridden methods use File | Settings | File Templates.
- if (mCustomView == null)
- return;
- webView.setVisibility(View.VISIBLE);
- customViewContainer.setVisibility(View.GONE);
- // Hide the custom view.
- mCustomView.setVisibility(View.GONE);
- // Remove the custom view from its container.
- customViewContainer.removeView(mCustomView);
- customViewCallback.onCustomViewHidden();
- mCustomView = null;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement