panlili2024
2025-03-05 134209ad70f82051da3ce63471df0cc8f778e57d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
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;
    }
}