package com.sobot.common.utils;

import android.app.Application;
import android.content.res.Resources;

import com.sobot.common.ui.SobotMarkConfig;
import com.sobot.network.apiUtils.SobotHttpUtils;
import com.sobot.network.http.log.SobotNetLogUtils;
import com.sobot.utils.SobotLogUtils;

public class SobotCommonApi {

    /**
     * 初始化
     *
     * @param application
     */
    public static void init(Application application) {
        if (application != null) {
            SobotHttpUtils.init(application);
            SobotGlobalContext.init(application);
        }
    }

    /**
     * 日志显示开关
     *
     * @param isDebug true 显示日志信息 false不显示 默认false
     */
    public static void setShowLogDebug(boolean isDebug) {
        SobotLogUtils.setShowDebug(isDebug);
        SobotNetLogUtils.setShowDebug(true);
    }

    /**
     * 获取开关状态
     *
     * @param markConfig 开关名
     * @return
     * @see SobotMarkConfig 取值
     */
    public static boolean getSwitchMarkStatus(int markConfig) {
        if ((markConfig & (markConfig - 1)) == 0)
            return SobotMarkConfig.getON_OFF(markConfig);
        else {
            throw new Resources.NotFoundException("markConfig 必须为2的指数次幂");
        }
    }

    /**
     * 设置开关状态
     *
     * @param markConfig 开关名 必须为 2 的非负数整数次幂
     * @param isOn
     * @see SobotMarkConfig 取值
     */
    public static void setSwitchMarkStatus(int markConfig, boolean isOn) {
        if ((markConfig & (markConfig - 1)) == 0)
            SobotMarkConfig.setON_OFF(markConfig, isOn);
        else {
            throw new Resources.NotFoundException("markConfig 必须为2的指数次幂");
        }
    }
}
