package com.yongzheng.com.richwebproject.web;

import android.content.Context;
import android.webkit.JavascriptInterface;
import android.widget.Toast;
import com.yongzheng.com.richwebproject.util.LogUtil;

/**
 * 用于JavaScript交互
 */
public class JavaScriptLog {

    private final String TAG = "JavaScriptLog";

    private Context context;

    private JavaScriptCallBack callBack = null;

    private ClickImageCallBack clickImageCallBack = null;

    private CheckStyleCallBack checkStyleCallBack = null;

    private ClickEditLinkCallBack clickEditLinkCallBack = null;

    public JavaScriptLog(Context context, JavaScriptCallBack callBack){
        this.callBack = callBack;
        this.context = context;
    }

    public JavaScriptLog(Context context, ClickImageCallBack callBack){
        this.clickImageCallBack = callBack;
        this.context = context;
    }

    /**
     * 样式识别回调
     * @param callBack
     */
    public void setCheckStyleCallBack(CheckStyleCallBack callBack){
        this.checkStyleCallBack = callBack;
    }

    /**
     * 点击图片回调
     * @param callBack
     */
    public void setClickImageCallBack(ClickImageCallBack callBack){
        this.clickImageCallBack = callBack;
    }

    /**
     * 编辑页面点击超链接回调
     * @param callBack
     */
    public void setClickEditLinkCallBack(ClickEditLinkCallBack callBack){
        this.clickEditLinkCallBack = callBack;
    }

    public JavaScriptLog(){
    }

    /**
     * 点击图片
     */
    public interface JavaScriptCallBack{
        public void clickWebView();
    }

    /**
     * 样式识别回调
     */
    public interface CheckStyleCallBack{
        public void checkStyle(String json);
    }

    /**
     * 点击图片
     */
    public interface ClickImageCallBack{
        public void clickImage(String src);
    }

    public interface ClickEditLinkCallBack{
        public void clickEditLink(String url, String title);
    }

    public JavaScriptLog(Context context){
        this.context = context;
    }

    @JavascriptInterface
    public void toast(String message) {
        Toast.makeText(context,"js:"+message,Toast.LENGTH_SHORT).show();
    }

    @JavascriptInterface
    public void log(String result) {
        LogUtil.v(TAG,"js:"+result);
    }

    /**
     * 点击富文本
     */
    @JavascriptInterface
    public void clickWebView() {
        if (callBack!=null){
            callBack.clickWebView();
        }
    }

    /**
     * 点击图片
     */
    @JavascriptInterface
    public void clickImage(String src){
        LogUtil.v(TAG,"webview点击图片:"+src);
        if (clickImageCallBack!=null){
            clickImageCallBack.clickImage(src);
        }
    }

    /**
     * 传递样式识别数据回来
     * @param json
     */
    @JavascriptInterface
    public void checkStyle(String json){
        LogUtil.v(TAG,"checkStyle:"+json);
        if (checkStyleCallBack!=null){
            checkStyleCallBack.checkStyle(json);
        }
    }

    /**
     * 编辑时候点击超链接
     * @param link
     * @param title
     */
    @JavascriptInterface
    public void clickEditLink(String link, String title){
        LogUtil.v(TAG,"clickEditLink:"+link+"  "+title);
        if (clickEditLinkCallBack!=null){
            clickEditLinkCallBack.clickEditLink(link,title);
        }
    }

}