package com.ttstd.controlled.utils;

import android.content.Context;
import android.content.SharedPreferences;

/**
 * 模拟点击方式（输入执行器）的可选配置。
 * 默认「自动选择」，由 {@link com.ttstd.controlled.service.ScreenCaptureService}
 * 根据当前权限/环境挑选最合适的执行器；用户也可在此手动指定。
 */
public class InputSettings {

    private static final String PREF_NAME = "controlled_input_prefs";
    private static final String KEY_INPUT_METHOD = "input_method";

    /** 自动选择（按 系统签名 -> Root -> 无障碍 -> 普通 Shell 顺序兜底）。 */
    public static final String METHOD_AUTO = "auto";
    /** 系统隐藏 API 注入（需系统签名 / 共享系统 UID）。 */
    public static final String METHOD_SYSTEM = "system";
    /** Root Shell（input 命令，需 Root 权限）。 */
    public static final String METHOD_ROOT = "root";
    /** 无障碍服务手势（无需 Root / 系统签名）。 */
    public static final String METHOD_ACCESSIBILITY = "accessibility";
    /** 普通 Shell（input 命令，兼容性最差）。 */
    public static final String METHOD_SHELL = "shell";

    /** 获取当前选中的模拟点击方式，默认 {@link #METHOD_AUTO}。 */
    public static String getInputMethod(Context context) {
        return context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE)
                .getString(KEY_INPUT_METHOD, METHOD_AUTO);
    }

    /** 设置模拟点击方式。 */
    public static void setInputMethod(Context context, String method) {
        context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE)
                .edit().putString(KEY_INPUT_METHOD, method == null ? METHOD_AUTO : method).apply();
    }
}
