package com.ijoomer.common.classes; import android.annotation.SuppressLint; import android.view.View; import android.view.View.OnClickListener; import android.webkit.WebChromeClient; import android.webkit.WebSettings.PluginState; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.RadioGroup; import android.widget.SeekBar; import com.ijoomer.customviews.IjoomerButton; import com.ijoomer.src.R; import com.ijoomer.theme.ThemeManager; /** * This Class Contains All Method Related To IjoomerWebviewClient. * * @author tasol * */ public class IjoomerWebviewClient extends IjoomerSuperMaster { private WebView webExternalLinks; private IjoomerButton btnClose; private String link = ""; private String IN_CONTENT = ""; SeekBar seekBar; /** * Override methods */ @Override public int setLayoutId() { return ThemeManager.getInstance().getWebview(); } @Override public void initComponents() { webExternalLinks = (WebView) findViewById(R.id.webExternalLinks); btnClose = (IjoomerButton) findViewById(R.id.btnClose); } @SuppressLint("SetJavaScriptEnabled") @SuppressWarnings("deprecation") @Override public void prepareViews() { getIntentData(); seekBar = IjoomerUtilities .getLoadingDialog(getString(R.string.dialog_loading_please_wait)); webExternalLinks.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int progress) { if(seekBar==null){ seekBar = IjoomerUtilities .getLoadingDialog(getString(R.string.dialog_loading_please_wait)); } seekBar.setProgress(progress); if(progress==100){ seekBar=null; } } }); webExternalLinks.setWebViewClient(new WebViewClient()); webExternalLinks.getSettings().setJavaScriptEnabled(true); webExternalLinks.getSettings().setPluginState(PluginState.ON); webExternalLinks.getSettings().setSupportZoom(true); webExternalLinks.getSettings().setBuiltInZoomControls(true); if (link != null && link.length() > 0) { if (!link.startsWith("http://") && !link.startsWith("https://")) { link = "http://" + link; } webExternalLinks.loadUrl(link); } else if (IN_CONTENT != null && IN_CONTENT.trim().length() > 0) { StringBuilder sb = new StringBuilder(); // StringBuilder(); sb.append("<HTML><HEAD><link rel=\"stylesheet\" type=\"text/css\" href=\"weblayout.css\" /></HEAD><body>"); String str = IN_CONTENT.trim(); str = str.replaceAll("<iframe width=\"[0-9]*", "<iframe width=\"100\\%"); str = str.replaceAll("<img[\\w]*", "<img height=\"auto\" style=\"max-width:100\\%\";"); sb.append(str); sb.append("</body></HTML>"); webExternalLinks.loadDataWithBaseURL("file:///android_asset/css/", sb.toString(), "text/html", "utf-8", null); } btnClose.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { finish(); } }); } @Override public void setActionListeners() { } @Override public void onCheckedChanged(RadioGroup group, int checkedId) { } @Override public View setLayoutView() { return null; } @Override public int setHeaderLayoutId() { return 0; } @Override public int setFooterLayoutId() { return 0; } @Override public String[] setTabItemNames() { return null; } @Override public int setTabBarDividerResId() { return 0; } @Override public int setTabItemLayoutId() { return 0; } @Override public int[] setTabItemOnDrawables() { return null; } @Override public int[] setTabItemOffDrawables() { return null; } @Override public int[] setTabItemPressDrawables() { return null; } private void getIntentData() { try { link = this.getIntent().getStringExtra("url"); if (link == null) { IN_CONTENT = this.getIntent().getStringExtra("IN_CONTENT"); } } catch (Exception e) { IN_CONTENT = this.getIntent().getStringExtra("IN_CONTENT"); } } @Override public void onBackPressed() { if(webExternalLinks.canGoBack()){ webExternalLinks.goBack(); }else{ super.onBackPressed(); } } }