Advertisement
Guest User

Untitled

a guest
Dec 8th, 2016
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.87 KB | None | 0 0
  1. package ru.matbakhz.zanouba;
  2.  
  3. import android.content.Intent;
  4. import android.graphics.Bitmap;
  5. import android.os.Bundle;
  6. import android.support.v7.widget.Toolbar;
  7. import android.view.MenuItem;
  8. import android.view.View;
  9. import android.webkit.WebView;
  10. import android.webkit.WebViewClient;
  11. import android.widget.RelativeLayout;
  12. import android.widget.Toast;
  13.  
  14. import ru.matbakhz.zanouba.app.App;
  15. import ru.matbakhz.zanouba.common.ActivityBase;
  16.  
  17.  
  18. public class WebViewActivity extends ActivityBase {
  19.  
  20.  
  21. private myWebViewClient mWebViewClient;
  22. private static final String TAG = WebViewActivity.class.getSimpleName();
  23.  
  24. Toolbar toolbar;
  25.  
  26. RelativeLayout mWebViewLoadingScreen, mWebViewErrorScreen, mWebViewContentScreen;
  27.  
  28. WebView mWebView;
  29.  
  30. String sUrl, sTitle;
  31.  
  32. @Override
  33. protected void onCreate(Bundle savedInstanceState) {
  34. super.onCreate(savedInstanceState);
  35. setContentView(R.layout.activity_web_view);
  36.  
  37. // Initialize Toolbar
  38. toolbar = (Toolbar) findViewById(R.id.toolbar);
  39.  
  40. if (toolbar != null) {
  41.  
  42. setSupportActionBar(toolbar);
  43. }
  44.  
  45. getSupportActionBar().setDisplayHomeAsUpEnabled(true);
  46. getSupportActionBar().setHomeButtonEnabled(true);
  47.  
  48. Intent i = getIntent();
  49. sUrl = i.getStringExtra("url");
  50. sTitle = i.getStringExtra("title");
  51.  
  52. getSupportActionBar().setTitle(sTitle);
  53.  
  54. mWebViewErrorScreen = (RelativeLayout) findViewById(R.id.WebViewErrorScreen);
  55. mWebViewLoadingScreen = (RelativeLayout) findViewById(R.id.WebViewLoadingScreen);
  56. mWebViewContentScreen = (RelativeLayout) findViewById(R.id.WebViewContentScreen);
  57.  
  58. mWebView = (WebView) findViewById(R.id.webView);
  59.  
  60. mWebView.setWebViewClient(new WebViewClient() {
  61.  
  62. //If you will not use this method url links are opeen in new brower not in webview
  63. public boolean shouldOverrideUrlLoading(WebView view, String url) {
  64.  
  65. view.loadUrl(url);
  66. return true;
  67. }
  68.  
  69. public void onPageStarted(WebView view, String url, Bitmap favicon) {
  70.  
  71. showLoadingScreen();
  72. }
  73.  
  74. public void onPageFinished(WebView view, String url) {
  75.  
  76. showContentScreen();
  77. }
  78.  
  79. public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
  80.  
  81. showErrorScreen();
  82. Toast.makeText(getApplicationContext(), description, Toast.LENGTH_SHORT).show();
  83. }
  84.  
  85. });
  86.  
  87. mWebChromeClient = new myWebChromeClient();
  88. webView.setWebChromeClient(mWebChromeClient);
  89.  
  90. mWebView.getSettings().setJavaScriptEnabled(true);
  91.  
  92. if (App.getInstance().isConnected()) {
  93.  
  94. mWebView.loadUrl(sUrl);
  95.  
  96. } else {
  97.  
  98. showErrorScreen();
  99. }
  100.  
  101. }
  102.  
  103. @Override
  104. public boolean onOptionsItemSelected(MenuItem item) {
  105. // Handle action bar item clicks here. The action bar will
  106. // automatically handle clicks on the Home/Up button, so long
  107. // as you specify a parent activity in AndroidManifest.xml.
  108.  
  109. switch(item.getItemId()) {
  110.  
  111. case android.R.id.home: {
  112.  
  113. finish();
  114. return true;
  115. }
  116.  
  117. default: {
  118.  
  119. return super.onOptionsItemSelected(item);
  120. }
  121. }
  122. }
  123.  
  124. public void showLoadingScreen() {
  125.  
  126. mWebViewErrorScreen.setVisibility(View.GONE);
  127. mWebViewContentScreen.setVisibility(View.GONE);
  128.  
  129. mWebViewLoadingScreen.setVisibility(View.VISIBLE);
  130. }
  131.  
  132. public void showErrorScreen() {
  133.  
  134. mWebViewLoadingScreen.setVisibility(View.GONE);
  135. mWebViewContentScreen.setVisibility(View.GONE);
  136.  
  137. mWebViewErrorScreen.setVisibility(View.VISIBLE);
  138. }
  139.  
  140. public void showContentScreen() {
  141.  
  142. mWebViewErrorScreen.setVisibility(View.GONE);
  143. mWebViewLoadingScreen.setVisibility(View.GONE);
  144.  
  145. mWebViewContentScreen.setVisibility(View.VISIBLE);
  146. }
  147.  
  148. class myWebChromeClient extends WebChromeClient {
  149. private Bitmap mDefaultVideoPoster;
  150. private View mVideoProgressView;
  151.  
  152. @Override
  153. public void onShowCustomView(View view, int requestedOrientation, CustomViewCallback callback) {
  154. onShowCustomView(view, callback); //To change body of overridden methods use File | Settings | File Templates.
  155. }
  156.  
  157. @Override
  158. public void onShowCustomView(View view,CustomViewCallback callback) {
  159.  
  160. // if a view already exists then immediately terminate the new one
  161. if (mCustomView != null) {
  162. callback.onCustomViewHidden();
  163. return;
  164. }
  165. mCustomView = view;
  166. webView.setVisibility(View.GONE);
  167. customViewContainer.setVisibility(View.VISIBLE);
  168. customViewContainer.addView(view);
  169. customViewCallback = callback;
  170. }
  171.  
  172. @Override
  173. public View getVideoLoadingProgressView() {
  174.  
  175. if (mVideoProgressView == null) {
  176. LayoutInflater inflater = LayoutInflater.from(MyActivity.this);
  177. mVideoProgressView = inflater.inflate(R.layout.video_progress, null);
  178. }
  179. return mVideoProgressView;
  180. }
  181.  
  182. @Override
  183. public void onHideCustomView() {
  184. super.onHideCustomView(); //To change body of overridden methods use File | Settings | File Templates.
  185. if (mCustomView == null)
  186. return;
  187.  
  188. webView.setVisibility(View.VISIBLE);
  189. customViewContainer.setVisibility(View.GONE);
  190.  
  191. // Hide the custom view.
  192. mCustomView.setVisibility(View.GONE);
  193.  
  194. // Remove the custom view from its container.
  195. customViewContainer.removeView(mCustomView);
  196. customViewCallback.onCustomViewHidden();
  197.  
  198. mCustomView = null;
  199. }
  200. }
  201. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement