package kr.sblog.slimbudget;

import android.content.Intent;
import android.provider.Settings;

import com.getcapacitor.JSObject;
import com.getcapacitor.Plugin;
import com.getcapacitor.PluginCall;
import com.getcapacitor.PluginMethod;
import com.getcapacitor.annotation.CapacitorPlugin;

/**
 * 카드 결제 알림 자동인식 플러그인.
 * - isEnabled: 알림 접근 권한(NotificationListener) 허용 여부
 * - openSettings: 알림 접근 설정 화면 열기
 * 실제 알림 수신/전송은 CardNotifListenerService 가 담당한다.
 */
@CapacitorPlugin(name = "CardNotif")
public class CardNotifPlugin extends Plugin {

    @PluginMethod
    public void isEnabled(PluginCall call) {
        String pkg = getContext().getPackageName();
        String flat = Settings.Secure.getString(
                getContext().getContentResolver(), "enabled_notification_listeners");
        boolean enabled = flat != null && flat.contains(pkg);
        JSObject ret = new JSObject();
        ret.put("enabled", enabled);
        call.resolve(ret);
    }

    @PluginMethod
    public void openSettings(PluginCall call) {
        Intent intent = new Intent(Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        getContext().startActivity(intent);
        call.resolve();
    }
}
