package com.reactlibrary;

import android.graphics.Canvas;

import com.facebook.react.uimanager.SimpleViewManager;
import com.facebook.react.uimanager.ThemedReactContext;
import com.facebook.react.uimanager.annotations.ReactProp;
import com.lidong.pdf.listener.OnDrawListener;
import com.lidong.pdf.listener.OnLoadCompleteListener;
import com.lidong.pdf.listener.OnPageChangeListener;

public class RNAndroidPdfViewManager extends SimpleViewManager<RNAndroidPdfView> implements OnPageChangeListener
        ,OnLoadCompleteListener, OnDrawListener {
    public static final String REACT_CLASS = "RNAndroidPdfView";
    RNAndroidPdfView rnAndroidPdfView;
    Context mContext;
            
    @Override
    public String getName() {
        return REACT_CLASS;
    }

    @Override
    protected RNAndroidPdfView createViewInstance(ThemedReactContext reactContext) {
        mContext=reactContext;
        rnAndroidPdfView = new RNAndroidPdfView(reactContext);
        return rnAndroidPdfView;
    }

    @ReactProp(name = "url")
    public void setUrl(RNAndroidPdfView view, String url) {
        if (ActivityCompat.checkSelfPermission(mContext, Manifest.permission.WRITE_EXTERNAL_STORAGE)
            != PackageManager.PERMISSION_GRANTED) {
            Toast.makeText(mContext,"没有读写权限,请打开权限",Toast.LENGTH_SHORT).show();
            //            if(ActivityCompat.shouldShowRequestPermissionRationale(reactContext,Manifest.permission.CALL_PHONE)){
            //                //如果之前有申请，但是被用户拒绝了，则返回true
            //                Toast.makeText(reactContext,"之前有申请权限，但是被拒绝",Toast.LENGTH_SHORT).show();
            //            }else{
            //                Toast.makeText(reactContext,"没有申请过权限，---运行这里",Toast.LENGTH_SHORT).show();
            //            }
        }else {
        view.fileFromLocalStorage(this,this,this,url, "ft.pdf");
        }
    }

    @ReactProp(name = "uri")
    public void setUri(RNAndroidPdfView view, String uri) {
        view.fromAsset(uri).load();

    }

    @Override
    public void onLayerDrawn(Canvas canvas, float pageWidth, float pageHeight, int displayedPage) {

    }

    @Override
    public void loadComplete(int nbPages) {
        RNReactNativeAndroidPdfviewModule.sendEvent("complete");
    }

    @Override
    public void onPageChanged(int page, int pageCount) {

    }


}
