package com.secspace.lib.common.env;

public class SSettingConfig {
    /**
     * 清除密码最低版本控制，20181203版本加密算法由AES/CBC/PKCS7PADDING改为AES/CBC/PKCS5Padding
     */
    private static final int PWD_MIN_VERSION_CONTROL = 2018120300;

    /**
     * VA私有化版本控制，该版本之后VA类的包换成了com.secure.sandbox,导致无法反序列化，需像rom更新时重新对所有的插件安装一遍
     */
    private static final int VA_PRIVATIZE_VERSION_CONTROL = 2019013000;

    /**
     * 设置APN时是否先清空数据库里的相关数据，默认不清空，通过查询系统库里的原始数据来保证数据准确性
     */
    private static final boolean CLEAR_FIRST_WHEN_SET_PREF_APN = true;

    /**
     * 是否调用设置默认桌面接口,部分rom版本最近任务栏禁用失效，通过禁用桌面的方式可解决其失效问题，因为recent是launcher的页面
     */
    private static final boolean SET_DEFAULT_LAUNCHER = true;

    /**
     * 是否使用Device Owner
     */
    private static final boolean USE_DEVICE_OWNER = false;

    /**
     * 是否使用Device Owner禁用应用,前提是USE_DEVICE_OWNER必须先打开
     */
    private static final boolean USE_DEVICE_OWNER_TO_DISABLE_APP = false;

    /**
     * 切换域时的时间间隔
     */
    private static final long SWITCH_INTERVAL = 6 * 1000;

    /**
     * 是否限制通知访问频率
     */
    private static boolean LIMIT_NOTIFICATION_SEND_RATE = true;


    /**
     * 当发送广播时，如果此时进程未启动，是否先启动进程总开关。true代表全部都可以，false则需要添加白名单
     */
    private static boolean INCLUDE_STOPPED_PACKAGE_FROM_RECEIVER = true;

    /**
     * 是否需要刷新缓存
     */
    public static boolean needRefreshIconCache = false;

    /**
     * 域内是否使用短信
     */
    private static boolean USE_SMS = true;

    /**
     * 域内插件是否在最近任务栏显示。默认false：显示，不显示部分应用会由兼容问题。且显示体验更好，退出安全域时清理task即可
     */
    private static boolean EXCLUDE_FROM_RECENTS = true;


    public static boolean isLimitNotificationSendRate() {
        return LIMIT_NOTIFICATION_SEND_RATE;
    }

    public static int getPwdMinVersionControl() {
        return PWD_MIN_VERSION_CONTROL;
    }

    public static boolean isClearFirstWhenSetPrefApn() {
        return CLEAR_FIRST_WHEN_SET_PREF_APN;
    }

    public static boolean isUseDeviceOwner() {
        return USE_DEVICE_OWNER;
    }

    public static boolean isUseDeviceOwnerToDisableApp() {
        if (USE_DEVICE_OWNER_TO_DISABLE_APP) {
            if (!isUseDeviceOwner()) {
                throw new RuntimeException("must open USE_DEVICE_OWNER!");
            }
        }
        return USE_DEVICE_OWNER_TO_DISABLE_APP;
    }

    public static long getSwitchInterval() {
        return SWITCH_INTERVAL;
    }

    public static boolean isSetDefaultLauncher() {
        return SET_DEFAULT_LAUNCHER;
    }

    public static int getVAPrivatizeVersionControl() {
        return VA_PRIVATIZE_VERSION_CONTROL;
    }

    public static boolean isIncludeStoppedPackageFromReceiver() {
        return INCLUDE_STOPPED_PACKAGE_FROM_RECEIVER;
    }

    public static boolean isUseSms() {
        return USE_SMS;
    }

    public static boolean isExcludeFromRecents() {
        return EXCLUDE_FROM_RECENTS;
    }

}
