package com.example.beijing_daxing.base;

import static com.xuexiang.xupdate.entity.UpdateError.ERROR.CHECK_NO_NEW_VERSION;

import android.app.Application;
import android.util.Log;

import com.example.beijing_daxing.uitls.SharedPreferencesUtils;

import com.handheld.uhfr.UHFRManager;
import com.lzy.okgo.OkGo;
import com.lzy.okgo.cache.CacheEntity;
import com.lzy.okgo.cache.CacheMode;
import com.lzy.okgo.cookie.CookieJarImpl;
import com.lzy.okgo.cookie.store.MemoryCookieStore;
import com.lzy.okgo.https.HttpsUtils;
import com.lzy.okgo.interceptor.HttpLoggingInterceptor;
import com.xuexiang.xupdate.XUpdate;

import com.xuexiang.xupdate.easy.service.OkHttpUpdateHttpServiceImpl;
import com.xuexiang.xupdate.entity.UpdateError;
import com.xuexiang.xupdate.listener.OnUpdateFailureListener;
import com.xuexiang.xupdate.proxy.IUpdateHttpService;
import com.xuexiang.xupdate.utils.UpdateUtils;

import org.litepal.LitePal;

import java.util.concurrent.TimeUnit;
import java.util.logging.Level;

import okhttp3.OkHttpClient;


/**
 * @author: wangh
 * @description:
 * @date: 2019/06/11-13:01
 */
public class MyApplication extends Application {

    MyApplication application;
    public static UHFRManager uhfLongerManager;
    @Override
    public void onCreate() {
        super.onCreate();
        application = this;
        LitePal.initialize(this);
        SharedPreferencesUtils.init(getApplicationContext(), "myapp");
        okGoBase();
        getUhfLongerManager();
        XUpdate.get()
                .debug(true)
                .isWifiOnly(false)                                               //默认设置只在wifi下检查版本更新
                .isGet(true)                                                    //默认设置使用get请求检查版本
                .isAutoMode(false)                                              //默认设置非自动模式，可根据具体使用配置
                // .param("versionCode", UpdateUtils.getVersionCode(this))         //设置默认公共请求参数
                // .param("appKey", getPackageName())

                .supportSilentInstall(false)                                     //设置是否支持静默安装，默认是true
                .setIUpdateHttpService(new OkHttpUpdateHttpServiceImpl())           //这个必须设置！实现网络请求功能。
                .init(this);
    }

    public static UHFRManager getUhfLongerManager() {
        if (uhfLongerManager==null){
            try {
                uhfLongerManager = UHFRManager.getInstance();
                uhfLongerManager.setPower(33,33);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        return uhfLongerManager;
    }
    // OKGO 初始化
    private void okGoBase() {
        OkHttpClient.Builder builder = new OkHttpClient.Builder();
        HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor("OkGo");
        // log打印级别，决定了log显示的详细程度
        loggingInterceptor.setPrintLevel(HttpLoggingInterceptor.Level.BODY);
        // log颜色级别，决定了log在控制台显示的颜色
        loggingInterceptor.setColorLevel(Level.SEVERE);
        // 方法一：信任所有证书,不安全有风险
        HttpsUtils.SSLParams sslParams1 = HttpsUtils.getSslSocketFactory();
        builder.sslSocketFactory(sslParams1.sSLSocketFactory, sslParams1.trustManager);
        builder.addInterceptor(loggingInterceptor);
// 全局的读取超时时间
        builder.readTimeout(3000, TimeUnit.MILLISECONDS);
// 全局的写入超时时间
        builder.writeTimeout(3000, TimeUnit.MILLISECONDS);
// 全局的连接超时时间
        builder.connectTimeout(3000, TimeUnit.MILLISECONDS);
        // 使用内存保持cookie，app退出后，cookie消失
        builder.cookieJar(new CookieJarImpl(new MemoryCookieStore()));
        OkGo.getInstance().init(this).setOkHttpClient(builder.build())               // 建议设置OkHttpClient，不设置将使用默认的
                .setCacheMode(CacheMode.NO_CACHE)               // 全局统一缓存模式，默认不使用缓存，可以不传
                .setCacheTime(CacheEntity.CACHE_NEVER_EXPIRE)   // 全局统一缓存时间，默认永不过期，可以不传
                .setRetryCount(3);


    }

}
