package com.hdl.sdk.connect.config; import android.content.Context; import android.text.TextUtils; import com.hdl.hdlhttp.HxHttpConfig; import com.hdl.sdk.common.utils.SPUtils; import com.hdl.sdk.connect.cloud.interceptor.EncryptInterceptor; import com.hdl.sdk.connect.cloud.interceptor.HdlLoginInterceptor; import com.hdl.sdk.connect.cloud.interceptor.SmartHeaderInterceptor; import com.hdl.sdk.sourceos.utils.SPKey; import okhttp3.Interceptor; import okhttp3.logging.HttpLoggingInterceptor; /** * Created by panlili on 2025/3/4 * description: */ public class HDLCloudConfig { private String mBaseUrl; private String mDefBaseUrl; private String mLanguage; private static final String DEF_TOKEN_HEADER_PREFIX = "Bearer "; private HDLCloudConfig() { } private static class SingletonInstance { private static final HDLCloudConfig INSTANCE = new HDLCloudConfig(); } public static HDLCloudConfig getInstance() { return SingletonInstance.INSTANCE; } private Context context; private String appKey, appSecret; private String token, refreshToken; private String tokenHeaderPrefix = DEF_TOKEN_HEADER_PREFIX; public Context getContext() { return context; } public void init(Context context, String appKey, String appSecret, String url) { this.context = context; HxHttpConfig.getInstance().init(context, url) .addInterceptor( new HdlLoginInterceptor(), new EncryptInterceptor(), new SmartHeaderInterceptor()); this.mBaseUrl = url; this.mDefBaseUrl = url; this.appKey = appKey; this.appSecret = appSecret; setBaseUrl(url); } public void addInterceptor(Interceptor... interceptors) { HxHttpConfig.getInstance().addInterceptor(interceptors); } public String getBaseUrl() { if (TextUtils.isEmpty(mBaseUrl)) { mBaseUrl = SPUtils.getString(SPKey.BASE_URL, ""); } return mBaseUrl; } public void setBaseUrl(String mBaseUrl) { this.mBaseUrl = mBaseUrl; HxHttpConfig.getInstance().init(context,mBaseUrl); SPUtils.put(SPKey.BASE_URL, mBaseUrl); } public String getDefBaseUrl() { return mDefBaseUrl; } public void setDefBaseUrl(String mDefBaseUrl) { this.mDefBaseUrl = mDefBaseUrl; } public String getAppKey() { return appKey; } public void setAppKey(String appKey) { this.appKey = appKey; } public String getAppSecret() { return appSecret; } public void setAppSecret(String appSecret) { this.appSecret = appSecret; } public synchronized String getToken() { if (TextUtils.isEmpty(token)) { token = SPUtils.getString(SPKey.TOKEN); } return token; } public synchronized void setToken(String token) { this.token = token; SPUtils.put(SPKey.TOKEN, token); } public synchronized String getRefreshToken() { if (TextUtils.isEmpty(refreshToken)) { refreshToken = SPUtils.getString(SPKey.REFRESH_TOKEN); } return refreshToken; } public synchronized void setRefreshToken(String refreshToken) { this.refreshToken = refreshToken; SPUtils.put(SPKey.REFRESH_TOKEN, refreshToken); } public String getTokenHeaderPrefix() { return tokenHeaderPrefix; } public void setTokenHeaderPrefix(String tokenHeaderPrefix) { this.tokenHeaderPrefix = tokenHeaderPrefix; } public String getLanguage() { return mLanguage; } public void setLanguage(String mLanguage) { this.mLanguage = mLanguage; } }