package com.neo.plugins.printer;

import android.util.Base64InputStream;

import com.getcapacitor.NativePlugin;
import com.getcapacitor.Plugin;
import com.getcapacitor.PluginCall;
import com.getcapacitor.PluginMethod;

import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.nio.charset.Charset;

@NativePlugin
public class Printer extends Plugin {

    @PluginMethod
    public void printImage(PluginCall call) {
        Settings settings = new Settings(call.getObject("data"));

        PhotoPrinter pp = new PhotoPrinter(getBridge());

//        Base64InputStream b64is = readStringAsStream(
//            settings.data,
//            settings.charset,
//            settings.base64Flags
//        );

        try {
            pp.print(settings.html, settings.duplex);
        } catch (Exception ex) {
            call.error("Error while printing", ex);
        }

        call.success();
    }

    private Base64InputStream readStringAsStream(String inputString, Charset charset, int base64Flags) {
        final byte[] bytes = inputString.getBytes(charset);

        InputStream is = new ByteArrayInputStream(bytes);

        return new Base64InputStream(is, base64Flags);
    }
}
