//package com.sxyz.courtai.base;
//
//import android.content.Intent;
//import android.os.Bundle;
//import android.view.KeyEvent;
//import android.view.View;
//import android.view.ViewGroup;
//import android.webkit.WebView;
//
//import androidx.annotation.ColorInt;
//import androidx.annotation.LayoutRes;
//import androidx.annotation.NonNull;
//import androidx.annotation.Nullable;
//import androidx.appcompat.app.AppCompatActivity;
//
//import com.just.agentweb.AgentWeb;
//import com.just.agentweb.AgentWebSettingsImpl;
//import com.just.agentweb.AgentWebUIControllerImplBase;
//import com.just.agentweb.DefaultWebClient;
//import com.just.agentweb.IAgentWebSettings;
//import com.just.agentweb.IWebLayout;
//import com.just.agentweb.MiddlewareWebChromeBase;
//import com.just.agentweb.MiddlewareWebClientBase;
//import com.just.agentweb.PermissionInterceptor;
//import com.just.agentweb.WebChromeClient;
//import com.just.agentweb.WebViewClient;
//
///**
// * Created by cenxiaozhong on 2017/7/22.
// * <p>
// * source code  https://github.com/Justson/AgentWeb
// */
//
//public abstract class BaseAgentWebActivity extends AppCompatActivity {
//
//    protected AgentWeb mAgentWeb;
//    private AgentWebUIControllerImplBase mAgentWebUIController;
//    private ErrorLayoutEntity mErrorLayoutEntity;
//    private MiddlewareWebChromeBase mMiddleWareWebChrome;
//    private MiddlewareWebClientBase mMiddleWareWebClient;
//
//    @Override
//    protected void onCreate(@Nullable Bundle savedInstanceState) {
//        super.onCreate(savedInstanceState);
//
//    }
//
//    @Override
//    public void setContentView(@LayoutRes int layoutResID) {
//        super.setContentView(layoutResID);
//        buildAgentWeb();
//    }
//
//    @Override
//    public void setContentView(View view) {
//        super.setContentView(view);
//        buildAgentWeb();
//    }
//
//    protected void buildAgentWeb() {
//        ErrorLayoutEntity mErrorLayoutEntity = getErrorLayoutEntity();
//        mAgentWeb = AgentWeb.with(this)
//                .setAgentWebParent(getAgentWebParent(), new ViewGroup.LayoutParams(-1, -1))
//                .useDefaultIndicator(getIndicatorColor(), getIndicatorHeight())
//                .setWebChromeClient(getWebChromeClient())
//                .setWebViewClient(getWebViewClient())
//                .setWebView(getWebView())
//                .setPermissionInterceptor(getPermissionInterceptor())
//                .setWebLayout(getWebLayout())
//                .setAgentWebUIController(getAgentWebUIController())
//                .interceptUnkownUrl()
////                .setWebLayout(new WebLayout(this))
//                .setOpenOtherPageWays(getOpenOtherAppWay())
//                .useMiddlewareWebChrome(getMiddleWareWebChrome())
//                .useMiddlewareWebClient(getMiddleWareWebClient())
//                .setAgentWebWebSettings(getAgentWebSettings())
//                .setMainFrameErrorView(mErrorLayoutEntity.layoutRes, mErrorLayoutEntity.reloadId)
//                .setSecurityType(AgentWeb.SecurityType.STRICT_CHECK)
//                .createAgentWeb()
//                .ready()
//                .go(getUrl());
//
//
//    }
//
//
//    protected @NonNull
//    ErrorLayoutEntity getErrorLayoutEntity() {
//        if (this.mErrorLayoutEntity == null) {
//            this.mErrorLayoutEntity = new ErrorLayoutEntity();
//        }
//        return mErrorLayoutEntity;
//    }
//
//    protected AgentWeb getAgentWeb() {
//        return this.mAgentWeb;
//    }
//
//
//    protected static class ErrorLayoutEntity {
//        private int layoutRes = com.just.agentweb.R.layout.agentweb_error_page;
//        private int reloadId;
//
//        public void setLayoutRes(int layoutRes) {
//            this.layoutRes = layoutRes;
//            if (layoutRes <= 0) {
//                layoutRes = -1;
//            }
//        }
//
//        public void setReloadId(int reloadId) {
//            this.reloadId = reloadId;
//            if (reloadId <= 0) {
//                reloadId = -1;
//            }
//        }
//    }
//
//    @Override
//    public boolean onKeyDown(int keyCode, KeyEvent event) {
//
//        if (mAgentWeb != null && mAgentWeb.handleKeyEvent(keyCode, event)) {
//            return true;
//        }
//        return super.onKeyDown(keyCode, event);
//    }
//
//    @Override
//    protected void onPause() {
//        if (mAgentWeb != null) {
//            mAgentWeb.getWebLifeCycle().onPause();
//        }
//        super.onPause();
//
//    }
//
//    @Override
//    protected void onResume() {
//        if (mAgentWeb != null) {
//            mAgentWeb.getWebLifeCycle().onResume();
//        }
//        super.onResume();
//    }
//
//    @Override
//    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//        super.onActivityResult(requestCode, resultCode, data);
//    }
//
//
//    @Override
//    protected void onDestroy() {
//        if (mAgentWeb != null) {
//            mAgentWeb.getWebLifeCycle().onDestroy();
//        }
//        super.onDestroy();
//    }
//
//
//    protected
//    @Nullable
//    String getUrl() {
//        return null;
//    }
//
//    public @Nullable
//    IAgentWebSettings getAgentWebSettings() {
//        return AgentWebSettingsImpl.getInstance();
//    }
//
//    protected abstract @NonNull
//    ViewGroup getAgentWebParent();
//
//    protected @Nullable
//    WebChromeClient getWebChromeClient() {
//        return null;
//    }
//
//    protected @ColorInt
//    int getIndicatorColor() {
//        return -1;
//    }
//
//    protected int getIndicatorHeight() {
//        return -1;
//    }
//
//    protected @Nullable
//    WebViewClient getWebViewClient() {
//        return null;
//    }
//
//
//    protected @Nullable
//    WebView getWebView() {
//        return null;
//    }
//
//    protected @Nullable
//    IWebLayout getWebLayout() {
//        return null;
//    }
//
//    protected @Nullable
//    PermissionInterceptor getPermissionInterceptor() {
//        return null;
//    }
//
//    public @Nullable
//    AgentWebUIControllerImplBase getAgentWebUIController() {
//        return null;
//    }
//
//    public @Nullable
//    DefaultWebClient.OpenOtherPageWays getOpenOtherAppWay() {
//        return null;
//    }
//
//    protected @NonNull
//    MiddlewareWebChromeBase getMiddleWareWebChrome() {
//        return this.mMiddleWareWebChrome = new MiddlewareWebChromeBase() {
//            @Override
//            public void onReceivedTitle(WebView view, String title) {
//                super.onReceivedTitle(view, title);
//                setTitle(view, title);
//            }
//        };
//    }
//
//    protected void setTitle(WebView view, String title) {
//
//    }
//
//    protected @NonNull
//    MiddlewareWebClientBase getMiddleWareWebClient() {
//        return this.mMiddleWareWebClient = new MiddlewareWebClientBase() {
//        };
//    }
//}
