package com.hht.floatbar.module.web;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;
import android.widget.TextView;

import com.hht.floatbar.R;
import com.hht.floatbar.base.BaseActivity;

import androidx.appcompat.widget.Toolbar;


public class WebViewActivity extends BaseActivity implements WebContract.IWebView {



    TextView mWebTitle;

    Toolbar mWebToolbar;

    ProgressBar mWebProgressBar;

    WebView mWebView;


    @Override
    public int layoutId() {
        return R.layout.activity_web_view;
    }

    @Override
    public void initView() {
        mWebToolbar = findViewById(R.id.web_toolbar);
        mWebTitle = findViewById(R.id.web_title);
        mWebProgressBar = findViewById(R.id.web_progressBar);
        mWebView = findViewById(R.id.web_view);
        
        mWebToolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });


    }

    @Override
    public WebContract.IWebPresenter createPresenter() {
        return new WebPresenter(this);
    }


    @Override
    public Activity getWebViewContext() {
        return this;
    }

    @Override
    public void setGankTitle(String title) {
        mWebTitle.setText(title);
    }

    @Override
    public void loadGankUrl(String url) {
        mWebView.loadUrl(url);
    }

    @SuppressLint("SetJavaScriptEnabled")
    @Override
    public void initWebView() {
        WebSettings settings = mWebView.getSettings();
        settings.setLoadWithOverviewMode(true);
        settings.setJavaScriptEnabled(true);
        settings.setAppCacheEnabled(true);
        settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
        settings.setSupportZoom(true);

        mWebView.setWebChromeClient(new MyWebChrome());
        mWebView.setWebViewClient(new MyWebClient());
    }

    @Override
    public void onBackPressed() {
        if (mWebView.canGoBack()) {
            mWebView.goBack();
        } else {
            finish();
        }
    }

    private class MyWebChrome extends WebChromeClient {
        @Override
        public void onProgressChanged(WebView view, int newProgress) {
            mWebProgressBar.setVisibility(View.VISIBLE);
            mWebProgressBar.setProgress(newProgress);
        }
    }

    private class MyWebClient extends WebViewClient {
        @Override
        public void onPageFinished(WebView view, String url) {
            mWebProgressBar.setVisibility(View.GONE);
        }
    }
}