Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class MainActivity extends Activity {
- protected LinearLayout webViewPlaceholder;
- protected WebView webView;
- private LinearLayout mContentView;
- private MyWebChromeClient mWebChromeClient = null;
- private View mCustomView;
- private FrameLayout mCustomViewContainer;
- private WebChromeClient.CustomViewCallback mCustomViewCallback;
- private boolean isFullScreen = false;
- Button b;
- FrameLayout.LayoutParams LayoutParameters = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT,
- FrameLayout.LayoutParams.MATCH_PARENT);
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- System.out.println("Oncreate is getting called ---------------------------");
- // Initialize the UI
- if(savedInstanceState == null){
- initUI();
- }
- }
- protected void initUI()
- {
- // Retrieve UI elements
- webViewPlaceholder = ((LinearLayout)findViewById(R.id.webViewPlaceholder));
- mContentView = webViewPlaceholder;
- // Initialize the WebView if necessary
- if (webView == null)
- {
- System.out.println("webView == null -----------------------------------");
- // Create the webview
- webView = new WebView(this);
- LinearLayout.LayoutParams webViewLayoutParameters = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
- LinearLayout.LayoutParams.WRAP_CONTENT);
- webView.setLayoutParams(webViewLayoutParameters);
- webView.setBackgroundColor(Color.BLUE);
- WebSettings webSettings = webView.getSettings();
- webSettings.setJavaScriptEnabled(true);
- webSettings.setDomStorageEnabled(true);
- webSettings.setAllowContentAccess(true);
- webSettings.setDomStorageEnabled(true);
- webSettings.setRenderPriority(RenderPriority.HIGH);
- webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
- webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
- if (Build.VERSION.SDK_INT < 8) {
- webSettings.setPluginsEnabled(true);
- } else {
- webSettings.setPluginState(PluginState.ON);
- }
- mWebChromeClient = new MyWebChromeClient();
- // Load a page
- loadWebView("asfas");
- }
- // Attach the WebView to its placeholder
- webViewPlaceholder.addView(webView);
- webView.setWebChromeClient(mWebChromeClient);
- }
- private void loadWebView(final String url) {
- String s = ReadFromfile("link.txt", MainActivity.this);
- s ="<html><head><body>"+s+"</body></html>";
- webView.loadDataWithBaseURL("",Html.fromHtml(s).toString(),"text/html", "UTF-8",null);
- }
- public String ReadFromfile(String fileName, Context context) {
- StringBuilder ReturnString = new StringBuilder();
- InputStream fIn = null;
- InputStreamReader isr = null;
- BufferedReader input = null;
- try {
- fIn = context.getResources().getAssets()
- .open(fileName, context.MODE_WORLD_READABLE);
- isr = new InputStreamReader(fIn);
- input = new BufferedReader(isr);
- String line = "";
- while ((line = input.readLine()) != null) {
- ReturnString.append(line);
- }
- } catch (Exception e) {
- e.getMessage();
- } finally {
- try {
- if (isr != null)
- isr.close();
- if (fIn != null)
- fIn.close();
- if (input != null)
- input.close();
- } catch (Exception e2) {
- e2.getMessage();
- }
- }
- return ReturnString.toString();
- }
- @Override
- public void onConfigurationChanged(Configuration newConfig)
- {
- super.onConfigurationChanged(newConfig);
- }
- @Override
- protected void onSaveInstanceState(Bundle outState)
- {
- super.onSaveInstanceState(outState);
- System.out.println("onSaveInstanceState -------------------------");
- // Save the state of the WebView
- webView.saveState(outState);
- }
- @Override
- protected void onRestoreInstanceState(Bundle savedInstanceState)
- {
- super.onRestoreInstanceState(savedInstanceState);
- System.out.println("onRestoreInstanceState -------------------------");
- // Restore the state of the WebView
- webView.restoreState(savedInstanceState);
- }
- private class MyWebChromeClient extends WebChromeClient implements OnCompletionListener,android.media.MediaPlayer.OnErrorListener{
- @Override
- public void onShowCustomView(View view, CustomViewCallback callback) {
- // if a view already exists then immediately terminate the new one
- System.out.println("onShowCustomView -------------------------");
- if (mCustomView != null) {
- callback.onCustomViewHidden();
- return;
- }
- isFullScreen = true;
- mContentView.setVisibility(View.GONE);
- mCustomViewContainer = new FrameLayout(MainActivity.this);
- mCustomViewContainer.setLayoutParams(LayoutParameters);
- mCustomViewContainer.setBackgroundResource(android.R.color.black);
- view.setLayoutParams(LayoutParameters);
- // Sometimes getting remove view first it parent excepetion on moto devices
- //webViewPlaceholder.removeView(webView);
- // webViewPlaceholder.removeView(webView);
- mCustomViewContainer.addView(view);
- mCustomView = view;
- mCustomViewCallback = callback;
- mCustomViewContainer.setVisibility(View.VISIBLE);
- setContentView(mCustomViewContainer);
- }
- @Override
- public void onHideCustomView() {
- isFullScreen = false;
- if (mCustomView == null) {
- return;
- } else {
- System.out.println("Hiding the things properly :-------------------------------");
- // Hide the custom view.
- mCustomView.setVisibility(View.GONE);
- // Remove the custom view from its container.
- if(mContentView.getParent() != null){
- ((LinearLayout)mContentView.getParent()).removeAllViews();
- }
- // mCustomViewContainer.removeView(mCustomView);
- mCustomView = null;
- mCustomViewContainer.setVisibility(View.GONE);
- mCustomViewCallback.onCustomViewHidden();
- // Show the content view.
- mContentView.setVisibility(View.VISIBLE);
- setContentView(mContentView);//////
- }
- }
- @Override
- public void onCompletion(MediaPlayer mp) {
- System.out.println("onCompletion :---------------------------");
- }
- @Override
- public boolean onError(MediaPlayer mp, int what, int extra) {
- Log.e("WebView","onError :---------------------------");
- return false;
- }
- }
- @Override
- public boolean onKeyDown(int keyCode, KeyEvent event) {
- if(keyCode == KeyEvent.KEYCODE_BACK){
- Log.e("WebView","back pressed :---------------------------");
- if (mCustomViewContainer != null && isFullScreen){
- mWebChromeClient.onHideCustomView();
- return true;
- }
- }else if(keyCode == KeyEvent.KEYCODE_HOME){
- Log.e("WebView","home pressed :---------------------------");
- mWebChromeClient.onHideCustomView();
- }
- return super.onKeyDown(keyCode, event);
- }
- /* @Override
- public void onBackPressed() {
- if (mCustomViewContainer != null)
- mWebChromeClient.onHideCustomView();
- else
- super.onBackPressed();
- }*/
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement