package com.yf.scan;

import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;

public class ScannerModule extends ReactContextBaseJavaModule implements Scanner {

    private ScannerImpl scannerImpl;

    public ScannerModule(ReactApplicationContext reactContext) {
        super(reactContext);
    }

    @Override
    public String getName() {
        return "Scan";
    }

    @Override
    @ReactMethod
    public void scan(Promise promise) {
        getScanner().scan(promise);
    }

    private ScannerImpl getScanner() {
        if (scannerImpl == null) {
            scannerImpl = ScannerImpl.of(getCurrentActivity());
            getReactApplicationContext().addActivityEventListener(scannerImpl);
        } else {
            scannerImpl.updateActivity(getCurrentActivity());
        }
        return scannerImpl;
    }
}
